Skip to content

feat: produce agentic chat bundle from repo #1827

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

awschristou
Copy link
Contributor

This change allows us to produce agentic chat artifacts directly from the repo. A new GitHub Action has been created that will build these artifacts for every commit made to the main and feature/* branches. The artifacts will be available (for a limited time) from the GitHub commit check.

These changes were developed on an Ubuntu WSL image. There are bash scripts involved, which will not run on Windows. The intention is that these are run from a linux based CI compute.

To support this change:

  • a new npm script command ci:generate:agent-standalone has been created in the workspace app/aws-lsp-codewhisperer-runtimes. This is the command that CI compute will run to produce the artifacts.
  • native binary dependencies (ripgrep, workspace indexer) have been directly added to the repo using git LFS. While not ideal, this gives us a faster path to quicker build iteration. In the future we can relocate these away from the repo.
  • most of the scripting has been pulled from the internal repo DEXPRuntimeServerBuildConfiguration, and is mostly unchanged. This way our resulting artifacts are identical to what is currently produced internally. It also makes it easier to review these scripts, comparing them to the internal versions. Optimizations can be made to the scripts over time if desired. Here is where each script came from:
    • download-node.sh: update-node-assets.sh
    • package.sh: package.sh
    • copy-node-assets.ts: copy-node-assets.ts
    • webpack.config.prod.js: webpack.config.js

Upcoming changes will make use of this one in order to make agentic chat builds easier to obtain.

License

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@awschristou awschristou requested a review from a team as a code owner July 3, 2025 01:00
# downloadable artifacts are nicely organized, one per platform.
- name: Prepare and upload artifacts
run: |
platforms=("linux-arm64" "linux-x64" "mac-arm64" "mac-x64" "win-x64")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're currently copying the win-x86 builds to win-arm late in the distribution pipeline. We should introduce support for this, but that should be a separate task on the backlog. My current goal is to port the existing behaviors into the repo, which can then be iterated on.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the size limit of Github LFS? Can it suppport 10GB?

At development time, do we need to pull these?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The largest file is 2gb, but I don't know the cumulative space we're allowed to take up. Ideally we would try to reduce our reliance on LFS over time, but for now the goal is the ability to quickly produce builds.

We do not need these at development time, the intent is that the changes I'm adding are only used by CI jobs.

@@ -0,0 +1,94 @@
#!/bin/bash
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since we are using git lfs anyway, maybe we can also check in node binary?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted to avoid putting too much data in LFS, but then ended up adding the qserver files (500 mb). Unless there is a major concern, I'd prefer to download these for now, since our ideal state is to avoid using LFS.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes - I have a separate task to track that

Copy link
Contributor

@leigaol leigaol left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe merge on Monday just in case this PR failed to build inside the internal pipeline

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants