@joynt/foundry 0.1.52 → 0.1.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Joynt Shops
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,70 @@
1
+ # Joynt Foundry
2
+
3
+ Foundry turns a GitHub Issue into a verified pull request. Comment `@foundry go` on an issue and Foundry claims it, runs a coding agent in an isolated git worktree, runs your verify commands, opens a PR into your integration branch, and stands up a preview if you have one. Humans review on GitHub. Three comments are the whole control surface: `@foundry go`, `@foundry restart`, `@foundry stop`. Every other comment is context the agent reads; labels show status.
4
+
5
+ Foundry is a **GitHub Action**. There is no server to run and no machine to keep awake. Each GitHub event that matters starts a job, the job performs one transition of the task's state machine, and state lives on GitHub: in labels, a structured claim comment, the PR, and the preview comment.
6
+
7
+ Foundry is the orchestration layer, not the agent. It runs Claude Code, aider, or any CLI you configure, and bills your own Claude subscription through `CLAUDE_CODE_OAUTH_TOKEN`.
8
+
9
+ ## What this package is for
10
+
11
+ This package is the Foundry CLI. The Action itself is referenced from your workflow as `joyntshops/foundry@v0` and builds inside the job, so nothing needs to be installed to run Foundry. The CLI is for:
12
+
13
+ - **Setup**: `init` scaffolds a repository; `setup-bot` creates the GitHub App that gives Foundry an identity.
14
+ - **Operating on a task** from any checkout: `reset`, `preview up` / `down` / `status`.
15
+ - **The integration branch**: `review`, `release`, `sync-integration`.
16
+
17
+ It needs Node 18 or later, git, and `gh` authenticated with `gh auth login`.
18
+
19
+ ## Quick start
20
+
21
+ ```bash
22
+ npx @joynt/foundry init
23
+ ```
24
+
25
+ 1. **Scaffold.** From a clone, `init` writes `.joynt-foundry.yml`, `.github/workflows/foundry.yml`, and an issue template, and creates the `state:*` and `mode:*` labels. Set `branches:` to the branches you already deploy from; nothing is renamed.
26
+ 2. **Secrets.** Add `CLAUDE_CODE_OAUTH_TOKEN` from `claude setup-token`. Run `npx @joynt/foundry setup-bot` and add the two App secrets it prints; without the App, PRs the agent opens get no CI.
27
+ 3. **Push** to the default branch. Foundry listens from there.
28
+ 4. **Go.** Open an issue, comment `@foundry go`, and watch Actions → Foundry.
29
+
30
+ The full walkthrough is in [Onboarding](https://github.com/joyntshops/foundry/blob/main/docs/foundry/onboarding.md).
31
+
32
+ ## The loop
33
+
34
+ ```
35
+ human comments @foundry go on an issue
36
+ → claim (state:in-progress + claim comment)
37
+ → worktree from origin/<integration branch>
38
+ → agent runs; transcript is the job log
39
+ → the agent's typed report: done · needs input · plan ready · blocked
40
+ → verify (lint, typecheck, build, test); no PR until green
41
+ → PR into integration · state:ready-for-human-review · preview up
42
+ human reviews; @foundry go <feedback> or "request changes" sends the agent back to the branch
43
+ approve → Foundry rebases, waits for checks, merges → state:done · preview down
44
+ ```
45
+
46
+ ## Install globally
47
+
48
+ ```bash
49
+ npm install -g @joynt/foundry
50
+ foundry --version
51
+ ```
52
+
53
+ Merges to `main` publish a new patch version automatically. The CLI version and the Action ref a workflow pins can differ; nothing depends on them matching.
54
+
55
+ ## Documentation
56
+
57
+ - [Overview](https://github.com/joyntshops/foundry/blob/main/docs/foundry/overview.md): what Foundry does, what it does not, and the security model
58
+ - [Installation](https://github.com/joyntshops/foundry/blob/main/docs/foundry/installation.md) · [Onboarding](https://github.com/joyntshops/foundry/blob/main/docs/foundry/onboarding.md)
59
+ - [Writing a task](https://github.com/joyntshops/foundry/blob/main/docs/foundry/writing-a-task.md) · [Workflows](https://github.com/joyntshops/foundry/blob/main/docs/foundry/workflows.md)
60
+ - [Configuration](https://github.com/joyntshops/foundry/blob/main/docs/foundry/config-reference.md) · [CLI](https://github.com/joyntshops/foundry/blob/main/docs/foundry/cli-reference.md) · [GitHub Action](https://github.com/joyntshops/foundry/blob/main/docs/foundry/github-action.md)
61
+ - [Agent backends](https://github.com/joyntshops/foundry/blob/main/docs/foundry/agent-backends.md) · [Preview environments](https://github.com/joyntshops/foundry/blob/main/docs/foundry/preview-environments.md) · [Troubleshooting](https://github.com/joyntshops/foundry/blob/main/docs/foundry/troubleshooting.md)
62
+ - [Releasing](https://github.com/joyntshops/foundry/blob/main/docs/foundry/releasing.md): how versions and tags are produced
63
+
64
+ A public demo of a repository wired up end to end: [joyntshops/foundry-demo](https://github.com/joyntshops/foundry-demo).
65
+
66
+ Source, issues, and contributing: [github.com/joyntshops/foundry](https://github.com/joyntshops/foundry).
67
+
68
+ ## License
69
+
70
+ MIT.
@@ -259,8 +259,8 @@ async function runInit(opts) {
259
259
  log.info('');
260
260
  log.info('Next steps:');
261
261
  log.info(` 1. Review ${config_js_1.CONFIG_FILENAME}: branches, verify commands, the model`);
262
- log.info(' 2. Add the secrets: CLAUDE_CODE_OAUTH_TOKEN (claude setup-token), then');
263
- log.info(' `foundry setup-bot` for FOUNDRY_APP_ID and FOUNDRY_APP_PRIVATE_KEY');
262
+ log.info(' 2. Add the secret CLAUDE_CODE_OAUTH_TOKEN (claude setup-token), then install the');
263
+ log.info(' public Foundry App on the repo, or run `foundry setup-bot` for a self-owned App');
264
264
  log.info(' 3. Commit and push; the workflow listens once it is on the default branch');
265
265
  log.info(' 4. Open an issue and comment `@foundry go`');
266
266
  log.info('');
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,31 @@
1
1
  {
2
2
  "name": "@joynt/foundry",
3
- "version": "0.1.52",
3
+ "version": "0.1.54",
4
4
  "description": "Developer automation: GitHub Issues → agent sessions → validated PRs",
5
+ "keywords": [
6
+ "github",
7
+ "github-actions",
8
+ "github-action",
9
+ "github-issues",
10
+ "pull-request",
11
+ "coding-agent",
12
+ "ai-agent",
13
+ "agent",
14
+ "claude",
15
+ "claude-code",
16
+ "automation",
17
+ "developer-tools",
18
+ "devops",
19
+ "workflow",
20
+ "code-review",
21
+ "preview-environment",
22
+ "orchestration"
23
+ ],
24
+ "homepage": "https://github.com/joyntshops/foundry#readme",
25
+ "bugs": {
26
+ "url": "https://github.com/joyntshops/foundry/issues"
27
+ },
28
+ "author": "Joynt Shops",
5
29
  "license": "MIT",
6
30
  "bin": {
7
31
  "foundry": "dist/cli.js"
@@ -10,7 +34,9 @@
10
34
  "types": "./dist/index.d.ts",
11
35
  "files": [
12
36
  "dist",
13
- "templates"
37
+ "templates",
38
+ "README.md",
39
+ "LICENSE"
14
40
  ],
15
41
  "scripts": {
16
42
  "build": "tsc",
@@ -12,10 +12,14 @@
12
12
  #
13
13
  # Secrets (repository or organization level):
14
14
  # CLAUDE_CODE_OAUTH_TOKEN required. From `claude setup-token`; bills that Claude plan.
15
- # FOUNDRY_APP_ID, FOUNDRY_APP_PRIVATE_KEY a GitHub App installed on this repo (`foundry setup-bot`).
16
- # With it, Foundry's comments and PRs carry the App's name and
17
- # its PRs trigger the repo's other workflows. Without it the
18
- # job's built-in token is used and agent PRs get no CI.
15
+ # FOUNDRY_APP_ID, FOUNDRY_APP_PRIVATE_KEY only for a self-owned GitHub App (`foundry setup-bot`).
16
+ #
17
+ # Identity: with the public Foundry App installed on this repo and no FOUNDRY_APP_*
18
+ # secrets, the job exchanges its OIDC token (`id-token: write` below) at the
19
+ # Foundry broker for a token scoped to this repo; comments, PRs and commits carry
20
+ # the App's name and its PRs trigger the repo's other workflows. With the secrets,
21
+ # the self-owned App is used instead. With neither, the job's built-in token is
22
+ # used and agent PRs get no CI.
19
23
  name: Foundry
20
24
 
21
25
  on:
@@ -55,6 +59,7 @@ permissions:
55
59
  checks: write # verification results as a check run on the PR
56
60
  actions: write # workflow_dispatch to itself; preview up/down
57
61
  deployments: write # GitHub Deployment records for previews
62
+ id-token: write # OIDC token the Foundry broker exchanges for the public App's token
58
63
 
59
64
  jobs:
60
65
  foundry:
@@ -90,6 +95,7 @@ jobs:
90
95
  FOUNDRY_APP_ID: ${{ secrets.FOUNDRY_APP_ID }} # secrets aren't readable in step `if:`
91
96
 
92
97
  steps:
98
+ # Self-owned App: mint from the secrets.
93
99
  - name: Mint GitHub App token
94
100
  id: app
95
101
  if: env.FOUNDRY_APP_ID != ''
@@ -98,17 +104,25 @@ jobs:
98
104
  app-id: ${{ secrets.FOUNDRY_APP_ID }}
99
105
  private-key: ${{ secrets.FOUNDRY_APP_PRIVATE_KEY }}
100
106
 
107
+ # Public Foundry App: exchange the job's OIDC token at the broker. Warns
108
+ # and leaves its outputs empty when the App is not installed here.
109
+ - name: Token from the Foundry broker
110
+ id: broker
111
+ if: env.FOUNDRY_APP_ID == ''
112
+ uses: joyntshops/foundry/broker-token@v0
113
+
101
114
  # Full history so the integration branch exists for worktrees and diffs.
102
115
  - uses: actions/checkout@v4
103
116
  with:
104
- token: ${{ steps.app.outputs.token || github.token }}
117
+ token: ${{ steps.app.outputs.token || steps.broker.outputs.token || github.token }}
105
118
  fetch-depth: 0
106
119
 
107
120
  - name: Foundry
108
121
  id: foundry
109
122
  uses: joyntshops/foundry@v0
110
123
  with:
111
- github-token: ${{ steps.app.outputs.token || github.token }}
124
+ github-token: ${{ steps.app.outputs.token || steps.broker.outputs.token || github.token }}
125
+ app-slug: ${{ steps.app.outputs.app-slug || steps.broker.outputs.app-slug }}
112
126
  claude-code-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
113
127
 
114
128
  - name: Keep the agent transcript