@action-llama/action-llama 0.1.4 → 0.2.0
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/README.md +63 -59
- package/dist/agents/container-entry.js +36 -9
- package/dist/agents/container-entry.js.map +1 -1
- package/dist/agents/prompt.d.ts.map +1 -1
- package/dist/agents/prompt.js +17 -6
- package/dist/agents/prompt.js.map +1 -1
- package/dist/cli/commands/new.d.ts.map +1 -1
- package/dist/cli/commands/new.js +5 -25
- package/dist/cli/commands/new.js.map +1 -1
- package/dist/cli/commands/{agent/add.d.ts → setup.d.ts} +1 -2
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +60 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +3 -0
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +1 -37
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/main.js +6 -9
- package/dist/cli/main.js.map +1 -1
- package/dist/credentials/builtins/anthropic-key.d.ts +4 -0
- package/dist/credentials/builtins/anthropic-key.d.ts.map +1 -0
- package/dist/credentials/builtins/anthropic-key.js +69 -0
- package/dist/credentials/builtins/anthropic-key.js.map +1 -0
- package/dist/credentials/builtins/github-token.d.ts +4 -0
- package/dist/credentials/builtins/github-token.d.ts.map +1 -0
- package/dist/credentials/builtins/github-token.js +19 -0
- package/dist/credentials/builtins/github-token.js.map +1 -0
- package/dist/credentials/builtins/github-webhook-secret.d.ts +4 -0
- package/dist/credentials/builtins/github-webhook-secret.d.ts.map +1 -0
- package/dist/credentials/builtins/github-webhook-secret.js +12 -0
- package/dist/credentials/builtins/github-webhook-secret.js.map +1 -0
- package/dist/credentials/builtins/id-rsa.d.ts +4 -0
- package/dist/credentials/builtins/id-rsa.d.ts.map +1 -0
- package/dist/credentials/builtins/id-rsa.js +67 -0
- package/dist/credentials/builtins/id-rsa.js.map +1 -0
- package/dist/credentials/builtins/index.d.ts +3 -0
- package/dist/credentials/builtins/index.d.ts.map +1 -0
- package/dist/credentials/builtins/index.js +15 -0
- package/dist/credentials/builtins/index.js.map +1 -0
- package/dist/credentials/builtins/sentry-client-secret.d.ts +4 -0
- package/dist/credentials/builtins/sentry-client-secret.d.ts.map +1 -0
- package/dist/credentials/builtins/sentry-client-secret.js +12 -0
- package/dist/credentials/builtins/sentry-client-secret.js.map +1 -0
- package/dist/credentials/builtins/sentry-token.d.ts +4 -0
- package/dist/credentials/builtins/sentry-token.d.ts.map +1 -0
- package/dist/credentials/builtins/sentry-token.js +72 -0
- package/dist/credentials/builtins/sentry-token.js.map +1 -0
- package/dist/credentials/prompter.d.ts +14 -0
- package/dist/credentials/prompter.d.ts.map +1 -0
- package/dist/credentials/prompter.js +65 -0
- package/dist/credentials/prompter.js.map +1 -0
- package/dist/credentials/registry.d.ts +16 -0
- package/dist/credentials/registry.d.ts.map +1 -0
- package/dist/credentials/registry.js +25 -0
- package/dist/credentials/registry.js.map +1 -0
- package/dist/credentials/schema.d.ts +23 -0
- package/dist/credentials/schema.d.ts.map +1 -0
- package/dist/credentials/schema.js +6 -0
- package/dist/credentials/schema.js.map +1 -0
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +14 -4
- package/dist/scheduler/index.js.map +1 -1
- package/dist/setup/prompts.d.ts +1 -43
- package/dist/setup/prompts.d.ts.map +1 -1
- package/dist/setup/prompts.js +43 -605
- package/dist/setup/prompts.js.map +1 -1
- package/dist/setup/scaffold.d.ts +1 -2
- package/dist/setup/scaffold.d.ts.map +1 -1
- package/dist/setup/scaffold.js +62 -29
- package/dist/setup/scaffold.js.map +1 -1
- package/dist/shared/config.d.ts +1 -2
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +16 -6
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/credentials.d.ts +2 -0
- package/dist/shared/credentials.d.ts.map +1 -1
- package/dist/shared/credentials.js +17 -0
- package/dist/shared/credentials.js.map +1 -1
- package/dist/shared/paths.d.ts +0 -1
- package/dist/shared/paths.d.ts.map +1 -1
- package/dist/shared/paths.js +0 -3
- package/dist/shared/paths.js.map +1 -1
- package/dist/webhooks/definitions/github.d.ts +3 -0
- package/dist/webhooks/definitions/github.d.ts.map +1 -0
- package/dist/webhooks/definitions/github.js +38 -0
- package/dist/webhooks/definitions/github.js.map +1 -0
- package/dist/webhooks/definitions/registry.d.ts +4 -0
- package/dist/webhooks/definitions/registry.d.ts.map +1 -0
- package/dist/webhooks/definitions/registry.js +14 -0
- package/dist/webhooks/definitions/registry.js.map +1 -0
- package/dist/webhooks/definitions/schema.d.ts +19 -0
- package/dist/webhooks/definitions/schema.d.ts.map +1 -0
- package/dist/webhooks/definitions/schema.js +2 -0
- package/dist/webhooks/definitions/schema.js.map +1 -0
- package/dist/webhooks/definitions/sentry.d.ts +3 -0
- package/dist/webhooks/definitions/sentry.d.ts.map +1 -0
- package/dist/webhooks/definitions/sentry.js +22 -0
- package/dist/webhooks/definitions/sentry.js.map +1 -0
- package/dist/webhooks/providers/sentry.d.ts +9 -0
- package/dist/webhooks/providers/sentry.d.ts.map +1 -0
- package/dist/webhooks/providers/sentry.js +108 -0
- package/dist/webhooks/providers/sentry.js.map +1 -0
- package/dist/webhooks/registry.js +2 -2
- package/dist/webhooks/registry.js.map +1 -1
- package/dist/webhooks/types.d.ts +5 -1
- package/dist/webhooks/types.d.ts.map +1 -1
- package/package.json +4 -3
- package/dist/agents/definitions/dev/AGENTS.md +0 -44
- package/dist/agents/definitions/dev/config-definition.json +0 -39
- package/dist/agents/definitions/devops/AGENTS.md +0 -33
- package/dist/agents/definitions/devops/config-definition.json +0 -37
- package/dist/agents/definitions/loader.d.ts +0 -18
- package/dist/agents/definitions/loader.d.ts.map +0 -1
- package/dist/agents/definitions/loader.js +0 -59
- package/dist/agents/definitions/loader.js.map +0 -1
- package/dist/agents/definitions/reviewer/AGENTS.md +0 -37
- package/dist/agents/definitions/reviewer/config-definition.json +0 -24
- package/dist/agents/definitions/schema.d.ts +0 -38
- package/dist/agents/definitions/schema.d.ts.map +0 -1
- package/dist/agents/definitions/schema.js +0 -97
- package/dist/agents/definitions/schema.js.map +0 -1
- package/dist/cli/commands/agent/add.d.ts.map +0 -1
- package/dist/cli/commands/agent/add.js +0 -86
- package/dist/cli/commands/agent/add.js.map +0 -1
package/README.md
CHANGED
|
@@ -33,60 +33,67 @@ Built on [pi.dev](https://github.com/badlogic/pi-mono) as the agent harness.
|
|
|
33
33
|
|
|
34
34
|
## How to get started
|
|
35
35
|
|
|
36
|
+
### 1. Create a project
|
|
37
|
+
|
|
36
38
|
```bash
|
|
37
39
|
npx @action-llama/action-llama@latest new my-project
|
|
40
|
+
cd my-project
|
|
38
41
|
```
|
|
39
42
|
|
|
40
|
-
|
|
43
|
+
This scaffolds the project and sets up your Anthropic credential and default model.
|
|
44
|
+
|
|
45
|
+
### 2. Create and manage agents
|
|
41
46
|
|
|
42
|
-
|
|
47
|
+
```bash
|
|
48
|
+
npx al console
|
|
49
|
+
```
|
|
43
50
|
|
|
44
|
-
|
|
51
|
+
The console is a TUI powered by [Pi](https://github.com/badlogic/pi-mono) that helps you create and manage agents. If no agents exist yet, it will offer to create one for you.
|
|
45
52
|
|
|
46
|
-
|
|
53
|
+
You can also create agents manually — see the [creating agents guide](docs/creating-agents.md).
|
|
47
54
|
|
|
48
|
-
|
|
49
|
-
- **Repos** — which GitHub repos to monitor (fetched from your token)
|
|
50
|
-
- **Trigger label** — the issue label that activates the agent (default: `agent`)
|
|
51
|
-
- **Assignee** — only trigger on issues assigned to this user (default: your GitHub username)
|
|
52
|
-
- **Webhooks** — say **no** for now (requires setting up a GitHub webhook endpoint)
|
|
53
|
-
- **Schedule** — say **yes**, and accept the default `*/5 * * * *` (poll every 5 minutes)
|
|
55
|
+
Or, if you're using your own coding agent just make sure it reads the AGENTS.md in your project root. It should then have everything it needs to create agents.
|
|
54
56
|
|
|
55
|
-
|
|
57
|
+
### 3. Run
|
|
58
|
+
|
|
59
|
+
Once your agents are ready, run the gateway!
|
|
56
60
|
|
|
57
61
|
```bash
|
|
58
|
-
|
|
59
|
-
al start
|
|
62
|
+
npx al start
|
|
60
63
|
```
|
|
61
64
|
|
|
62
|
-
|
|
65
|
+
If any credentials are missing, it will prompt you for them. Credentials are stored in `~/.action-llama-credentials/` (shared across projects, not committed to git).
|
|
63
66
|
|
|
64
|
-
|
|
67
|
+
If you want to set up credentials without starting the gateway:
|
|
65
68
|
|
|
66
|
-
|
|
69
|
+
```bash
|
|
70
|
+
npx al setup
|
|
71
|
+
```
|
|
67
72
|
|
|
68
|
-
|
|
73
|
+
### Project structure
|
|
69
74
|
|
|
70
75
|
```
|
|
71
76
|
my-project/
|
|
72
77
|
package.json # Includes @action-llama/action-llama as a dependency
|
|
78
|
+
AGENTS.md # Project overview and agent creation guide
|
|
73
79
|
config.json # Global config: docker, gateway, webhooks (no secrets)
|
|
74
80
|
dev/ # One directory per agent
|
|
75
|
-
config.
|
|
76
|
-
AGENTS.md # Agent instructions — edit
|
|
81
|
+
agent-config.toml # Agent config: credentials, repos, model, schedule, webhooks, params
|
|
82
|
+
AGENTS.md # Agent instructions (system prompt) — edit to customize behavior
|
|
77
83
|
```
|
|
78
84
|
|
|
79
|
-
Credentials are stored separately in `~/.action-llama-credentials/` (shared across projects, not committed to git).
|
|
80
|
-
|
|
81
85
|
## CLI commands
|
|
82
86
|
|
|
87
|
+
If you installed globally (`npm install -g @action-llama/action-llama`), you can use `al` directly. Otherwise, prefix commands with `npx` (e.g., `npx al start`).
|
|
88
|
+
|
|
83
89
|
| Command | Description |
|
|
84
90
|
|---------|-------------|
|
|
85
|
-
| `al new <name>` |
|
|
91
|
+
| `al new <name>` | Scaffold a new project (sets up Anthropic credential and model defaults) |
|
|
92
|
+
| `al console` | TUI for creating and managing agents |
|
|
93
|
+
| `al setup` | Scan agents and prompt for any missing credentials |
|
|
86
94
|
| `al start` | Start the scheduler — runs agents on their cron schedule and/or webhook triggers |
|
|
87
95
|
| `al status` | Show the current status of all agents |
|
|
88
96
|
| `al logs <agent>` | View log entries for an agent |
|
|
89
|
-
| `al agent add [definition]` | Add a new agent to an existing project (built-in name or custom definition path) |
|
|
90
97
|
|
|
91
98
|
### Common options
|
|
92
99
|
|
|
@@ -102,14 +109,6 @@ Credentials are stored separately in `~/.action-llama-credentials/` (shared acro
|
|
|
102
109
|
|
|
103
110
|
- `--dangerous-no-docker` — disable Docker container isolation and run agents directly on the host
|
|
104
111
|
|
|
105
|
-
## Built-in Agents
|
|
106
|
-
|
|
107
|
-
| Agent | Trigger | Action |
|
|
108
|
-
|-------|---------|--------|
|
|
109
|
-
| **Developer** | Webhook: issue labeled; or poll for labeled issues | Checks out a worktree, implements the fix/feature, runs tests, opens a PR |
|
|
110
|
-
| **PR Reviewer** | Webhook: PR opened/updated; or poll for open PRs | Reviews code for correctness, style, security; approves+merges or requests changes |
|
|
111
|
-
| **DevOps** | Poll for CI failures/Sentry errors | Creates Github issues describing problem and potential fix |
|
|
112
|
-
|
|
113
112
|
## Configuration
|
|
114
113
|
|
|
115
114
|
### Global config (`config.json`)
|
|
@@ -118,7 +117,7 @@ Credentials are stored separately in `~/.action-llama-credentials/` (shared acro
|
|
|
118
117
|
{
|
|
119
118
|
"docker": { "enabled": false },
|
|
120
119
|
"gateway": { "port": 8080 },
|
|
121
|
-
"webhooks": { "
|
|
120
|
+
"webhooks": { "secretCredentials": { "github": "github-webhook-secret" } }
|
|
122
121
|
}
|
|
123
122
|
```
|
|
124
123
|
|
|
@@ -131,32 +130,13 @@ Credentials are stored separately in `~/.action-llama-credentials/` (shared acro
|
|
|
131
130
|
| `docker.timeout` | `3600` | Max container runtime (seconds) |
|
|
132
131
|
| `gateway.port` | `8080` | Gateway server listen port |
|
|
133
132
|
|
|
134
|
-
### Agent config (`<agent>/config.
|
|
135
|
-
|
|
136
|
-
```json
|
|
137
|
-
{
|
|
138
|
-
"credentials": ["github-token", "anthropic-key"],
|
|
139
|
-
"model": { "provider": "anthropic", "model": "claude-sonnet-4-20250514", "thinkingLevel": "medium", "authType": "pi_auth" },
|
|
140
|
-
"prompt": "An issue was just assigned to you. Implement the changes described in the issue.",
|
|
141
|
-
"repos": ["acme/frontend"],
|
|
142
|
-
"schedule": "*/5 * * * *",
|
|
143
|
-
"webhooks": {
|
|
144
|
-
"filters": [{
|
|
145
|
-
"source": "github",
|
|
146
|
-
"events": ["issues"],
|
|
147
|
-
"actions": ["labeled"],
|
|
148
|
-
"labels": ["agent"],
|
|
149
|
-
"assignee": "bot-user"
|
|
150
|
-
}]
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
```
|
|
133
|
+
### Agent config (`<agent>/agent-config.toml`)
|
|
154
134
|
|
|
155
|
-
|
|
135
|
+
See the [agent-config.toml reference](docs/agent-config-reference.md) for all fields. Each agent carries its own model config, so you can run different models per agent (e.g., Opus for dev, Haiku for devops).
|
|
156
136
|
|
|
157
137
|
### Webhooks
|
|
158
138
|
|
|
159
|
-
To use webhooks instead of polling,
|
|
139
|
+
To use webhooks instead of polling, add webhook filters to your `agent-config.toml` and add a webhook in your GitHub repo settings:
|
|
160
140
|
|
|
161
141
|
- **Payload URL**: `http://<your-host>:8080/webhooks/github`
|
|
162
142
|
- **Content type**: `application/json`
|
|
@@ -164,6 +144,30 @@ To use webhooks instead of polling, enable them during `al new` and add a webhoo
|
|
|
164
144
|
|
|
165
145
|
Payloads are validated with HMAC-SHA256 (`x-hub-signature-256`). Webhook filters in `webhooks.filters` support matching on `source`, `repos`, `events`, `actions`, `labels`, `assignee`, `author`, and `branches` (AND logic; omitted fields are not checked).
|
|
166
146
|
|
|
147
|
+
#### Local development with ngrok
|
|
148
|
+
|
|
149
|
+
If you're developing locally and need GitHub to reach your machine, use [ngrok](https://ngrok.com) to create a public tunnel:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# Install ngrok (macOS)
|
|
153
|
+
brew install ngrok
|
|
154
|
+
|
|
155
|
+
# Start a tunnel pointing at the Action Llama gateway port
|
|
156
|
+
ngrok http 8080
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
ngrok will print a forwarding URL like `https://a1b2c3d4.ngrok-free.app`. Use that as your GitHub webhook Payload URL:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
https://a1b2c3d4.ngrok-free.app/webhooks/github
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Keep the ngrok process running alongside `al start`. The tunnel stays active until you stop it. For a stable URL across restarts, sign up for a free ngrok account and use a static domain:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
ngrok http 8080 --url=your-name.ngrok-free.app
|
|
169
|
+
```
|
|
170
|
+
|
|
167
171
|
### Docker mode
|
|
168
172
|
|
|
169
173
|
Set `"docker": { "enabled": true }` in `config.json`. Agents run in isolated containers with credentials mounted read-only at `/credentials/`, a read-only root FS, dropped capabilities, non-root user, and PID/memory/CPU limits. Each container gets a unique shutdown secret for the anti-exfiltration kill switch. The Docker image is built automatically on first run from `docker/Dockerfile`.
|
|
@@ -190,7 +194,7 @@ npm test
|
|
|
190
194
|
|
|
191
195
|
`al start` runs a single Node.js process (the **scheduler**) that:
|
|
192
196
|
|
|
193
|
-
1. Discovers agents in the project directory (each subdirectory with
|
|
197
|
+
1. Discovers agents in the project directory (each subdirectory with an `agent-config.toml`)
|
|
194
198
|
2. Starts a **gateway** HTTP server if webhooks or Docker mode are enabled (health check, webhook receiver, shutdown kill switch)
|
|
195
199
|
3. Creates a **runner** per agent — either `AgentRunner` (host mode) or `ContainerAgentRunner` (Docker mode)
|
|
196
200
|
4. Wires up **cron jobs** and/or **webhook bindings** to trigger each runner
|
|
@@ -200,10 +204,10 @@ npm test
|
|
|
200
204
|
|
|
201
205
|
```
|
|
202
206
|
src/
|
|
203
|
-
cli/ # Command definitions (new, start, status, logs
|
|
204
|
-
setup/ #
|
|
207
|
+
cli/ # Command definitions (new, setup, start, status, logs)
|
|
208
|
+
setup/ # Project scaffolding
|
|
205
209
|
scheduler/ # Scheduler: discovers agents, starts gateway, wires cron + webhooks
|
|
206
|
-
agents/ # Agent runners (host + Docker), prompt builder
|
|
210
|
+
agents/ # Agent runners (host + Docker), prompt builder
|
|
207
211
|
gateway/ # HTTP server: router, health, shutdown, webhook routes
|
|
208
212
|
docker/ # Container lifecycle (launch, wait, logs, remove), image + network
|
|
209
213
|
webhooks/ # Webhook registry, provider interface, GitHub provider
|
|
@@ -213,7 +217,7 @@ src/
|
|
|
213
217
|
|
|
214
218
|
### Extension points
|
|
215
219
|
|
|
216
|
-
- **New agent
|
|
220
|
+
- **New agent** — create a directory with an `agent-config.toml` and `AGENTS.md` in your project. See [creating agents](docs/creating-agents.md).
|
|
217
221
|
- **New webhook provider** — implement the `WebhookProvider` interface in `src/webhooks/providers/` and register it in `src/scheduler/index.ts`. The registry handles routing by `source` field.
|
|
218
222
|
- **Custom runner** — subclass or replace `AgentRunner` in `src/agents/runner.ts` to change how agent sessions are created (different model providers, tool sets, etc.).
|
|
219
223
|
- **Gateway routes** — add routes in `src/gateway/routes/` and register them in `src/gateway/index.ts`.
|
|
@@ -36,15 +36,42 @@ async function main() {
|
|
|
36
36
|
emitLog("error", "missing anthropic-key credential");
|
|
37
37
|
process.exit(1);
|
|
38
38
|
}
|
|
39
|
-
//
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
// Generic credential → env var injection from credential definitions
|
|
40
|
+
const { builtinCredentials } = await import("../credentials/builtins/index.js");
|
|
41
|
+
for (const credId of agentConfig.credentials) {
|
|
42
|
+
const def = builtinCredentials[credId];
|
|
43
|
+
if (!def?.envVars)
|
|
44
|
+
continue;
|
|
45
|
+
if (def.fields.length === 1) {
|
|
46
|
+
// Single-field credential: read as plain text, map to env vars
|
|
47
|
+
const value = readCredential(def.filename);
|
|
48
|
+
if (value) {
|
|
49
|
+
for (const [fieldName, envVar] of Object.entries(def.envVars)) {
|
|
50
|
+
process.env[envVar] = value;
|
|
51
|
+
}
|
|
52
|
+
// Special case: github-token also sets GH_TOKEN alias
|
|
53
|
+
if (credId === "github-token") {
|
|
54
|
+
process.env.GH_TOKEN = value;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// Structured credential: read as JSON, map each field
|
|
60
|
+
const raw = readCredential(def.filename);
|
|
61
|
+
if (raw) {
|
|
62
|
+
try {
|
|
63
|
+
const fields = JSON.parse(raw);
|
|
64
|
+
for (const [fieldName, envVar] of Object.entries(def.envVars)) {
|
|
65
|
+
if (fields[fieldName]) {
|
|
66
|
+
process.env[envVar] = fields[fieldName];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
emitLog("warn", `failed to parse structured credential ${credId}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
48
75
|
}
|
|
49
76
|
const cwd = "/workspace";
|
|
50
77
|
const model = getModel("anthropic", modelId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-entry.js","sourceRoot":"","sources":["../../src/agents/container-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAGvC,sFAAsF;AACtF,SAAS,OAAO,CAAC,KAAa,EAAE,GAAW,EAAE,IAA0B;IACrE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,IAAI,GAAG,gBAAgB,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,+EAA+E;IAC/E,kFAAkF;IAClF,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAEnD,kCAAkC;IAClC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAChD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAW,MAAM,CAAC,SAAS,CAAC;IAC1C,OAAO,MAAM,CAAC,SAAS,CAAC;IACxB,MAAM,WAAW,GAAgB,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;IACxC,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;IAEtD,OAAO,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAE5F,iDAAiD;IACjD,MAAM,YAAY,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IACrD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"container-entry.js","sourceRoot":"","sources":["../../src/agents/container-entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/agents/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/agents/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAW3D,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAqCpE;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAIrE;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAK5F"}
|
package/dist/agents/prompt.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolveCredential } from "../credentials/registry.js";
|
|
1
2
|
function buildConfigBlock(agentConfig) {
|
|
2
3
|
return JSON.stringify({
|
|
3
4
|
repos: agentConfig.repos,
|
|
@@ -11,11 +12,21 @@ export function buildCredentialContext(credentials) {
|
|
|
11
12
|
"",
|
|
12
13
|
"Environment variables already set from credentials:",
|
|
13
14
|
];
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
for (const credId of credentials) {
|
|
16
|
+
let def;
|
|
17
|
+
try {
|
|
18
|
+
def = resolveCredential(credId);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
// Unknown credential — skip context line
|
|
22
|
+
}
|
|
23
|
+
if (def?.agentContext) {
|
|
24
|
+
lines.push(`- ${def.agentContext}`);
|
|
25
|
+
}
|
|
16
26
|
}
|
|
17
|
-
|
|
18
|
-
|
|
27
|
+
// Also note GH_TOKEN alias when github-token is present
|
|
28
|
+
if (credentials.includes("github-token")) {
|
|
29
|
+
// agentContext already mentions GH_TOKEN, but ensure env var is documented
|
|
19
30
|
}
|
|
20
31
|
lines.push("");
|
|
21
32
|
lines.push("Use standard tools directly: `gh` CLI, `git`, `curl`.");
|
|
@@ -31,12 +42,12 @@ export function buildCredentialContext(credentials) {
|
|
|
31
42
|
export function buildScheduledPrompt(agentConfig) {
|
|
32
43
|
const configBlock = buildConfigBlock(agentConfig);
|
|
33
44
|
const credentialBlock = buildCredentialContext(agentConfig.credentials);
|
|
34
|
-
return `<agent-config>\n${configBlock}\n</agent-config>\n\n${credentialBlock}\n\
|
|
45
|
+
return `<agent-config>\n${configBlock}\n</agent-config>\n\n${credentialBlock}\n\nYou are running on a schedule. Check for new work and act on anything you find.`;
|
|
35
46
|
}
|
|
36
47
|
export function buildWebhookPrompt(agentConfig, context) {
|
|
37
48
|
const configBlock = buildConfigBlock(agentConfig);
|
|
38
49
|
const credentialBlock = buildCredentialContext(agentConfig.credentials);
|
|
39
50
|
const webhookBlock = JSON.stringify(context);
|
|
40
|
-
return `<agent-config>\n${configBlock}\n</agent-config>\n\n${credentialBlock}\n\n<webhook-trigger>\n${webhookBlock}\n</webhook-trigger>\n\
|
|
51
|
+
return `<agent-config>\n${configBlock}\n</agent-config>\n\n${credentialBlock}\n\n<webhook-trigger>\n${webhookBlock}\n</webhook-trigger>\n\nA webhook event just fired. Review the trigger context above and take appropriate action.`;
|
|
41
52
|
}
|
|
42
53
|
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/agents/prompt.ts"],"names":[],"mappings":"AAGA,SAAS,gBAAgB,CAAC,WAAwB;IAChD,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,GAAG,WAAW,CAAC,MAAM;KACtB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAqB;IAC1D,MAAM,KAAK,GAAG;QACZ,sBAAsB;QACtB,8DAA8D;QAC9D,EAAE;QACF,qDAAqD;KACtD,CAAC;IAEF,IAAI,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/agents/prompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,SAAS,gBAAgB,CAAC,WAAwB;IAChD,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,GAAG,WAAW,CAAC,MAAM;KACtB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAqB;IAC1D,MAAM,KAAK,GAAG;QACZ,sBAAsB;QACtB,8DAA8D;QAC9D,EAAE;QACF,qDAAqD;KACtD,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,GAAqC,CAAC;QAC1C,IAAI,CAAC;YACH,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;QAED,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACzC,2EAA2E;IAC7E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IACvF,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IACxE,KAAK,CAAC,IAAI,CAAC,6JAA6J,CAAC,CAAC;IAC1K,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAEpC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAwB;IAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,sBAAsB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACxE,OAAO,mBAAmB,WAAW,wBAAwB,eAAe,qFAAqF,CAAC;AACpK,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAAwB,EAAE,OAAuB;IAClF,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,sBAAsB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,mBAAmB,WAAW,wBAAwB,eAAe,0BAA0B,YAAY,mHAAmH,CAAC;AACxO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/new.ts"],"names":[],"mappings":"AAOA,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/new.ts"],"names":[],"mappings":"AAOA,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzD"}
|
package/dist/cli/commands/new.js
CHANGED
|
@@ -6,7 +6,7 @@ import { scaffoldProject } from "../../setup/scaffold.js";
|
|
|
6
6
|
import { CREDENTIALS_DIR } from "../../shared/paths.js";
|
|
7
7
|
export async function execute(name) {
|
|
8
8
|
const projectPath = resolve(process.cwd(), name);
|
|
9
|
-
const { globalConfig,
|
|
9
|
+
const { globalConfig, secrets } = await runSetup();
|
|
10
10
|
console.log("\n--- Writing configuration ---\n");
|
|
11
11
|
// Only write credentials if they're new or changed
|
|
12
12
|
if (secrets.githubToken && secrets.githubToken !== loadCredential("github-token")) {
|
|
@@ -16,13 +16,6 @@ export async function execute(name) {
|
|
|
16
16
|
else {
|
|
17
17
|
console.log(` GitHub token unchanged`);
|
|
18
18
|
}
|
|
19
|
-
if (secrets.sentryToken && secrets.sentryToken !== loadCredential("sentry-token")) {
|
|
20
|
-
writeCredential("sentry-token", secrets.sentryToken);
|
|
21
|
-
console.log(` Wrote ${CREDENTIALS_DIR}/sentry-token`);
|
|
22
|
-
}
|
|
23
|
-
else if (secrets.sentryToken) {
|
|
24
|
-
console.log(` Sentry token unchanged`);
|
|
25
|
-
}
|
|
26
19
|
if (secrets.anthropicKey && secrets.anthropicKey !== loadCredential("anthropic-key")) {
|
|
27
20
|
writeCredential("anthropic-key", secrets.anthropicKey);
|
|
28
21
|
console.log(` Wrote ${CREDENTIALS_DIR}/anthropic-key`);
|
|
@@ -40,23 +33,12 @@ export async function execute(name) {
|
|
|
40
33
|
else if (loadCredential("id_rsa")) {
|
|
41
34
|
console.log(` SSH key unchanged`);
|
|
42
35
|
}
|
|
43
|
-
|
|
44
|
-
writeCredential("github-webhook-secret", secrets.githubWebhookSecret);
|
|
45
|
-
console.log(` Wrote ${CREDENTIALS_DIR}/github-webhook-secret`);
|
|
46
|
-
}
|
|
47
|
-
else if (secrets.githubWebhookSecret) {
|
|
48
|
-
console.log(` GitHub webhook secret unchanged`);
|
|
49
|
-
}
|
|
50
|
-
scaffoldProject(projectPath, globalConfig, agents, name);
|
|
51
|
-
const agentNames = agents.map((a) => a.name);
|
|
36
|
+
scaffoldProject(projectPath, globalConfig, [], name);
|
|
52
37
|
console.log(` Wrote ${projectPath}/package.json`);
|
|
38
|
+
console.log(` Wrote ${projectPath}/AGENTS.md`);
|
|
53
39
|
if (Object.keys(globalConfig).length > 0) {
|
|
54
40
|
console.log(` Wrote ${projectPath}/config.json`);
|
|
55
41
|
}
|
|
56
|
-
for (const name of agentNames) {
|
|
57
|
-
console.log(` Wrote ${projectPath}/${name}/config.json`);
|
|
58
|
-
console.log(` Wrote ${projectPath}/${name}/AGENTS.md`);
|
|
59
|
-
}
|
|
60
42
|
console.log(` Created state directories`);
|
|
61
43
|
console.log("\n--- Installing dependencies ---\n");
|
|
62
44
|
execSync("npm install", { cwd: projectPath, stdio: "inherit" });
|
|
@@ -65,13 +47,11 @@ Setup complete!
|
|
|
65
47
|
|
|
66
48
|
Credentials: ${CREDENTIALS_DIR}/
|
|
67
49
|
Project: ${projectPath}/
|
|
68
|
-
Agents: ${agentNames.join(", ")}
|
|
69
|
-
|
|
70
|
-
Edit <agent>/AGENTS.md to customize agent behavior.
|
|
71
50
|
|
|
72
51
|
Next steps:
|
|
73
52
|
cd ${name}
|
|
74
|
-
al
|
|
53
|
+
npx al console # Start an interactive console to create agents
|
|
54
|
+
npx al start # Start the gateway
|
|
75
55
|
`);
|
|
76
56
|
}
|
|
77
57
|
//# sourceMappingURL=new.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/cli/commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAY;IACxC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjD,MAAM,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../src/cli/commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAY;IACxC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC;IAEnD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAEjD,mDAAmD;IACnD,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,KAAK,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;QAClF,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,WAAW,eAAe,eAAe,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,KAAK,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;QACrF,eAAe,CAAC,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,WAAW,eAAe,gBAAgB,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,WAAW,eAAe,SAAS,CAAC,CAAC;IACnD,CAAC;SAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAErD,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,eAAe,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,YAAY,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,cAAc,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAEhE,OAAO,CAAC,GAAG,CAAC;;;iBAGG,eAAe;iBACf,WAAW;;;OAGrB,IAAI;;;CAGV,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAgBA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDtE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { resolve } from "path";
|
|
2
|
+
import { discoverAgents, loadAgentConfig, loadGlobalConfig } from "../../shared/config.js";
|
|
3
|
+
import { resolveCredential } from "../../credentials/registry.js";
|
|
4
|
+
import { promptCredential } from "../../credentials/prompter.js";
|
|
5
|
+
import { loadCredential, writeCredential, writeStructuredCredential } from "../../shared/credentials.js";
|
|
6
|
+
function writeCredentialValues(def, values) {
|
|
7
|
+
if (Object.keys(values).length === 0)
|
|
8
|
+
return;
|
|
9
|
+
if (def.fields.length === 1) {
|
|
10
|
+
writeCredential(def.filename, values[def.fields[0].name]);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
writeStructuredCredential(def.filename, values);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export async function execute(opts) {
|
|
17
|
+
const projectPath = resolve(opts.project);
|
|
18
|
+
const agents = discoverAgents(projectPath);
|
|
19
|
+
if (agents.length === 0) {
|
|
20
|
+
console.log("No agents found. Create agents first, then re-run setup.");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// Collect all credential IDs from agents and global config
|
|
24
|
+
const credentialIds = new Set();
|
|
25
|
+
for (const name of agents) {
|
|
26
|
+
const config = loadAgentConfig(projectPath, name);
|
|
27
|
+
for (const id of config.credentials) {
|
|
28
|
+
credentialIds.add(id);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const globalConfig = loadGlobalConfig(projectPath);
|
|
32
|
+
if (globalConfig.webhooks?.secretCredentials) {
|
|
33
|
+
for (const id of Object.values(globalConfig.webhooks.secretCredentials)) {
|
|
34
|
+
credentialIds.add(id);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (credentialIds.size === 0) {
|
|
38
|
+
console.log("No credentials required by any agent.");
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
console.log(`\nChecking ${credentialIds.size} credential(s)...\n`);
|
|
42
|
+
let okCount = 0;
|
|
43
|
+
let promptedCount = 0;
|
|
44
|
+
for (const id of credentialIds) {
|
|
45
|
+
const def = resolveCredential(id);
|
|
46
|
+
const existing = loadCredential(def.filename);
|
|
47
|
+
if (existing) {
|
|
48
|
+
console.log(` [ok] ${def.label}`);
|
|
49
|
+
okCount++;
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
const result = await promptCredential(def);
|
|
53
|
+
if (result && Object.keys(result.values).length > 0) {
|
|
54
|
+
writeCredentialValues(def, result.values);
|
|
55
|
+
promptedCount++;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
console.log(`\nDone. ${okCount} already present, ${promptedCount} configured.`);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAMA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDnG"}
|
|
@@ -2,8 +2,11 @@ import { resolve } from "path";
|
|
|
2
2
|
import { loadGlobalConfig } from "../../shared/config.js";
|
|
3
3
|
import { startScheduler } from "../../scheduler/index.js";
|
|
4
4
|
import { StatusTracker } from "../../tui/status-tracker.js";
|
|
5
|
+
import { execute as runSetup } from "./setup.js";
|
|
5
6
|
export async function execute(opts) {
|
|
6
7
|
const projectPath = resolve(opts.project);
|
|
8
|
+
// Ensure all credentials are present before starting
|
|
9
|
+
await runSetup({ project: opts.project });
|
|
7
10
|
const globalConfig = loadGlobalConfig(projectPath);
|
|
8
11
|
// Docker is on by default; --dangerous-no-docker disables it
|
|
9
12
|
if (opts.dangerousNoDocker) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAsD;IAClF,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE1C,qDAAqD;IACrD,MAAM,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEnD,6DAA6D;IAC7D,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,MAAM;YAAE,YAAY,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;YAC9D,YAAY,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;IAC3C,CAAC;SAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAChC,YAAY,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAE/C,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAE1C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAE3H,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1E,aAAa,CAAC,gBAAgB,CAAC;QAC7B,IAAI;QACJ,WAAW;QACX,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,cAAc,EAAE,CAAC,CAAC,eAAe;QACjC,WAAW,EAAE,WAAW,IAAI,EAAE;QAC9B,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC,CAAC;IAEH,uDAAuD;IACvD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC;IAEnD,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhC,qBAAqB;IACrB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAGA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBtE"}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import { resolve } from "path";
|
|
2
|
-
import { existsSync, readFileSync } from "fs";
|
|
3
2
|
import { discoverAgents, loadAgentConfig } from "../../shared/config.js";
|
|
4
|
-
function readStateFile(projectPath, agent, file) {
|
|
5
|
-
const path = resolve(projectPath, ".al", "state", agent, file);
|
|
6
|
-
if (!existsSync(path))
|
|
7
|
-
return {};
|
|
8
|
-
return JSON.parse(readFileSync(path, "utf-8"));
|
|
9
|
-
}
|
|
10
3
|
export async function execute(opts) {
|
|
11
4
|
const projectPath = resolve(opts.project);
|
|
12
5
|
const agentNames = discoverAgents(projectPath);
|
|
@@ -15,36 +8,7 @@ export async function execute(opts) {
|
|
|
15
8
|
const agentConfig = loadAgentConfig(projectPath, name);
|
|
16
9
|
console.log(`${name}:`);
|
|
17
10
|
console.log(` Repos: ${agentConfig.repos.join(", ")}`);
|
|
18
|
-
console.log(` Schedule: ${agentConfig.schedule}`);
|
|
19
|
-
// Show state based on which state files exist
|
|
20
|
-
const stateDir = resolve(projectPath, ".al", "state", name);
|
|
21
|
-
if (existsSync(resolve(stateDir, "active-issues.json"))) {
|
|
22
|
-
const devState = readStateFile(projectPath, name, "active-issues.json");
|
|
23
|
-
const issues = devState.issues || {};
|
|
24
|
-
const inProgress = Object.entries(issues).filter(([_, v]) => v.status === "in_progress");
|
|
25
|
-
const completed = Object.entries(issues).filter(([_, v]) => v.status === "completed");
|
|
26
|
-
console.log(` In progress: ${inProgress.length}`);
|
|
27
|
-
console.log(` Completed: ${completed.length}`);
|
|
28
|
-
for (const [key, val] of inProgress) {
|
|
29
|
-
console.log(` - ${key} (started ${val.startedAt})`);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (existsSync(resolve(stateDir, "reviewed-prs.json"))) {
|
|
33
|
-
const reviewerState = readStateFile(projectPath, name, "reviewed-prs.json");
|
|
34
|
-
const prs = reviewerState.prs || {};
|
|
35
|
-
const prCount = Object.keys(prs).length;
|
|
36
|
-
const approved = Object.values(prs).filter((v) => v.verdict === "approved").length;
|
|
37
|
-
const changesRequested = Object.values(prs).filter((v) => v.verdict === "changes_requested").length;
|
|
38
|
-
console.log(` Total reviewed: ${prCount}`);
|
|
39
|
-
console.log(` Approved: ${approved}`);
|
|
40
|
-
console.log(` Changes req: ${changesRequested}`);
|
|
41
|
-
}
|
|
42
|
-
if (existsSync(resolve(stateDir, "known-errors.json"))) {
|
|
43
|
-
const devopsState = readStateFile(projectPath, name, "known-errors.json");
|
|
44
|
-
const errors = devopsState.errors || {};
|
|
45
|
-
const errorCount = Object.keys(errors).length;
|
|
46
|
-
console.log(` Errors filed: ${errorCount}`);
|
|
47
|
-
}
|
|
11
|
+
console.log(` Schedule: ${agentConfig.schedule || "(none)"}`);
|
|
48
12
|
console.log("");
|
|
49
13
|
}
|
|
50
14
|
console.log(`Agents: ${agentNames.join(", ")}`);
|