@action-llama/action-llama 0.13.6 → 0.14.1

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.
Files changed (221) hide show
  1. package/agent-docs/AGENTS.md +123 -207
  2. package/dist/agents/container-entry.d.ts +1 -3
  3. package/dist/agents/container-entry.d.ts.map +1 -1
  4. package/dist/agents/container-entry.js +208 -154
  5. package/dist/agents/container-entry.js.map +1 -1
  6. package/dist/agents/container-runner.d.ts.map +1 -1
  7. package/dist/agents/container-runner.js +19 -8
  8. package/dist/agents/container-runner.js.map +1 -1
  9. package/dist/agents/context-injection.d.ts +7 -0
  10. package/dist/agents/context-injection.d.ts.map +1 -0
  11. package/dist/agents/context-injection.js +27 -0
  12. package/dist/agents/context-injection.js.map +1 -0
  13. package/dist/agents/execution-engine.d.ts.map +1 -1
  14. package/dist/agents/execution-engine.js +99 -109
  15. package/dist/agents/execution-engine.js.map +1 -1
  16. package/dist/agents/model-fallback.d.ts +18 -0
  17. package/dist/agents/model-fallback.d.ts.map +1 -0
  18. package/dist/agents/model-fallback.js +40 -0
  19. package/dist/agents/model-fallback.js.map +1 -0
  20. package/dist/agents/prompt.d.ts +9 -2
  21. package/dist/agents/prompt.d.ts.map +1 -1
  22. package/dist/agents/prompt.js +21 -49
  23. package/dist/agents/prompt.js.map +1 -1
  24. package/dist/agents/runner.d.ts +2 -0
  25. package/dist/agents/runner.d.ts.map +1 -1
  26. package/dist/agents/runner.js +142 -124
  27. package/dist/agents/runner.js.map +1 -1
  28. package/dist/agents/session-factory.d.ts +13 -0
  29. package/dist/agents/session-factory.d.ts.map +1 -0
  30. package/dist/agents/session-factory.js +27 -0
  31. package/dist/agents/session-factory.js.map +1 -0
  32. package/dist/build-info.json +1 -1
  33. package/dist/cli/commands/agent.d.ts.map +1 -1
  34. package/dist/cli/commands/agent.js +43 -23
  35. package/dist/cli/commands/agent.js.map +1 -1
  36. package/dist/cli/commands/chat.d.ts.map +1 -1
  37. package/dist/cli/commands/chat.js +26 -43
  38. package/dist/cli/commands/chat.js.map +1 -1
  39. package/dist/cli/commands/claude.d.ts +4 -0
  40. package/dist/cli/commands/claude.d.ts.map +1 -0
  41. package/dist/cli/commands/claude.js +8 -0
  42. package/dist/cli/commands/claude.js.map +1 -0
  43. package/dist/cli/commands/doctor.d.ts.map +1 -1
  44. package/dist/cli/commands/doctor.js +24 -6
  45. package/dist/cli/commands/doctor.js.map +1 -1
  46. package/dist/cli/commands/mcp.d.ts +8 -0
  47. package/dist/cli/commands/mcp.d.ts.map +1 -0
  48. package/dist/cli/commands/mcp.js +31 -0
  49. package/dist/cli/commands/mcp.js.map +1 -0
  50. package/dist/cli/commands/new.d.ts.map +1 -1
  51. package/dist/cli/commands/new.js +15 -6
  52. package/dist/cli/commands/new.js.map +1 -1
  53. package/dist/cli/commands/run.js +1 -1
  54. package/dist/cli/commands/run.js.map +1 -1
  55. package/dist/cli/commands/start.js +2 -2
  56. package/dist/cli/commands/start.js.map +1 -1
  57. package/dist/cli/commands/stats.d.ts +9 -0
  58. package/dist/cli/commands/stats.d.ts.map +1 -0
  59. package/dist/cli/commands/stats.js +149 -0
  60. package/dist/cli/commands/stats.js.map +1 -0
  61. package/dist/cli/commands/status.d.ts.map +1 -1
  62. package/dist/cli/commands/status.js +3 -0
  63. package/dist/cli/commands/status.js.map +1 -1
  64. package/dist/cli/main.js +50 -3
  65. package/dist/cli/main.js.map +1 -1
  66. package/dist/gateway/index.d.ts +3 -0
  67. package/dist/gateway/index.d.ts.map +1 -1
  68. package/dist/gateway/index.js +7 -1
  69. package/dist/gateway/index.js.map +1 -1
  70. package/dist/gateway/lock-store.d.ts +10 -0
  71. package/dist/gateway/lock-store.d.ts.map +1 -1
  72. package/dist/gateway/lock-store.js +38 -0
  73. package/dist/gateway/lock-store.js.map +1 -1
  74. package/dist/gateway/routes/dashboard.d.ts +2 -1
  75. package/dist/gateway/routes/dashboard.d.ts.map +1 -1
  76. package/dist/gateway/routes/dashboard.js +26 -6
  77. package/dist/gateway/routes/dashboard.js.map +1 -1
  78. package/dist/gateway/routes/locks.d.ts.map +1 -1
  79. package/dist/gateway/routes/locks.js +39 -0
  80. package/dist/gateway/routes/locks.js.map +1 -1
  81. package/dist/gateway/routes/logs.d.ts.map +1 -1
  82. package/dist/gateway/routes/logs.js +4 -5
  83. package/dist/gateway/routes/logs.js.map +1 -1
  84. package/dist/gateway/routes/stats.d.ts +4 -0
  85. package/dist/gateway/routes/stats.d.ts.map +1 -0
  86. package/dist/gateway/routes/stats.js +25 -0
  87. package/dist/gateway/routes/stats.js.map +1 -0
  88. package/dist/gateway/views/agent-detail-page.d.ts +12 -0
  89. package/dist/gateway/views/agent-detail-page.d.ts.map +1 -0
  90. package/dist/gateway/views/agent-detail-page.js +303 -0
  91. package/dist/gateway/views/agent-detail-page.js.map +1 -0
  92. package/dist/gateway/views/dashboard-page.d.ts.map +1 -1
  93. package/dist/gateway/views/dashboard-page.js +179 -245
  94. package/dist/gateway/views/dashboard-page.js.map +1 -1
  95. package/dist/gateway/views/instance-detail-page.d.ts +24 -0
  96. package/dist/gateway/views/instance-detail-page.d.ts.map +1 -0
  97. package/dist/gateway/views/instance-detail-page.js +277 -0
  98. package/dist/gateway/views/instance-detail-page.js.map +1 -0
  99. package/dist/gateway/views/layout.d.ts +17 -0
  100. package/dist/gateway/views/layout.d.ts.map +1 -0
  101. package/dist/gateway/views/layout.js +153 -0
  102. package/dist/gateway/views/layout.js.map +1 -0
  103. package/dist/gateway/views/login-page.d.ts.map +1 -1
  104. package/dist/gateway/views/login-page.js +24 -37
  105. package/dist/gateway/views/login-page.js.map +1 -1
  106. package/dist/hooks/runner.d.ts +12 -0
  107. package/dist/hooks/runner.d.ts.map +1 -0
  108. package/dist/hooks/runner.js +32 -0
  109. package/dist/hooks/runner.js.map +1 -0
  110. package/dist/mcp/server.d.ts +5 -0
  111. package/dist/mcp/server.d.ts.map +1 -0
  112. package/dist/mcp/server.js +336 -0
  113. package/dist/mcp/server.js.map +1 -0
  114. package/dist/remote/push.d.ts.map +1 -1
  115. package/dist/remote/push.js +6 -1
  116. package/dist/remote/push.js.map +1 -1
  117. package/dist/scheduler/call-dispatcher.d.ts +2 -2
  118. package/dist/scheduler/call-dispatcher.js +3 -3
  119. package/dist/scheduler/call-dispatcher.js.map +1 -1
  120. package/dist/scheduler/execution.d.ts +5 -2
  121. package/dist/scheduler/execution.d.ts.map +1 -1
  122. package/dist/scheduler/execution.js +75 -4
  123. package/dist/scheduler/execution.js.map +1 -1
  124. package/dist/scheduler/gateway-setup.d.ts +2 -0
  125. package/dist/scheduler/gateway-setup.d.ts.map +1 -1
  126. package/dist/scheduler/gateway-setup.js +3 -2
  127. package/dist/scheduler/gateway-setup.js.map +1 -1
  128. package/dist/scheduler/image-builder.js +3 -3
  129. package/dist/scheduler/image-builder.js.map +1 -1
  130. package/dist/scheduler/index.d.ts.map +1 -1
  131. package/dist/scheduler/index.js +16 -3
  132. package/dist/scheduler/index.js.map +1 -1
  133. package/dist/scheduler/shutdown.d.ts +2 -0
  134. package/dist/scheduler/shutdown.d.ts.map +1 -1
  135. package/dist/scheduler/shutdown.js +4 -1
  136. package/dist/scheduler/shutdown.js.map +1 -1
  137. package/dist/scheduler/validation.d.ts.map +1 -1
  138. package/dist/scheduler/validation.js +5 -3
  139. package/dist/scheduler/validation.js.map +1 -1
  140. package/dist/scheduler/watcher.d.ts +1 -1
  141. package/dist/scheduler/watcher.js +1 -1
  142. package/dist/scheduler/webhook-setup.d.ts +2 -0
  143. package/dist/scheduler/webhook-setup.d.ts.map +1 -1
  144. package/dist/scheduler/webhook-setup.js +2 -0
  145. package/dist/scheduler/webhook-setup.js.map +1 -1
  146. package/dist/setup/prompts.d.ts.map +1 -1
  147. package/dist/setup/prompts.js +35 -6
  148. package/dist/setup/prompts.js.map +1 -1
  149. package/dist/setup/scaffold.d.ts +6 -0
  150. package/dist/setup/scaffold.d.ts.map +1 -1
  151. package/dist/setup/scaffold.js +185 -7
  152. package/dist/setup/scaffold.js.map +1 -1
  153. package/dist/shared/config.d.ts +16 -5
  154. package/dist/shared/config.d.ts.map +1 -1
  155. package/dist/shared/config.js +75 -18
  156. package/dist/shared/config.js.map +1 -1
  157. package/dist/shared/credential-refs.d.ts.map +1 -1
  158. package/dist/shared/credential-refs.js +9 -5
  159. package/dist/shared/credential-refs.js.map +1 -1
  160. package/dist/shared/environment.d.ts +0 -1
  161. package/dist/shared/environment.d.ts.map +1 -1
  162. package/dist/shared/environment.js +19 -3
  163. package/dist/shared/environment.js.map +1 -1
  164. package/dist/shared/frontmatter.d.ts +11 -0
  165. package/dist/shared/frontmatter.d.ts.map +1 -0
  166. package/dist/shared/frontmatter.js +30 -0
  167. package/dist/shared/frontmatter.js.map +1 -0
  168. package/dist/shared/paths.d.ts +1 -0
  169. package/dist/shared/paths.d.ts.map +1 -1
  170. package/dist/shared/paths.js +3 -0
  171. package/dist/shared/paths.js.map +1 -1
  172. package/dist/stats/index.d.ts +3 -0
  173. package/dist/stats/index.d.ts.map +1 -0
  174. package/dist/stats/index.js +2 -0
  175. package/dist/stats/index.js.map +1 -0
  176. package/dist/stats/store.d.ts +89 -0
  177. package/dist/stats/store.d.ts.map +1 -0
  178. package/dist/stats/store.js +242 -0
  179. package/dist/stats/store.js.map +1 -0
  180. package/dist/tui/status-tracker.d.ts +6 -1
  181. package/dist/tui/status-tracker.d.ts.map +1 -1
  182. package/dist/tui/status-tracker.js +11 -1
  183. package/dist/tui/status-tracker.js.map +1 -1
  184. package/docker/bin/{al-call → al-subagent} +2 -2
  185. package/docker/bin/{al-check → al-subagent-check} +2 -2
  186. package/docker/bin/{al-wait → al-subagent-wait} +2 -2
  187. package/package.json +8 -21
  188. package/LICENSE +0 -21
  189. package/README.md +0 -192
  190. package/dist/gateway/views/logs-page.d.ts +0 -2
  191. package/dist/gateway/views/logs-page.d.ts.map +0 -1
  192. package/dist/gateway/views/logs-page.js +0 -280
  193. package/dist/gateway/views/logs-page.js.map +0 -1
  194. package/dist/preflight/interpolate.d.ts +0 -10
  195. package/dist/preflight/interpolate.d.ts.map +0 -1
  196. package/dist/preflight/interpolate.js +0 -33
  197. package/dist/preflight/interpolate.js.map +0 -1
  198. package/dist/preflight/providers/git-clone.d.ts +0 -3
  199. package/dist/preflight/providers/git-clone.d.ts.map +0 -1
  200. package/dist/preflight/providers/git-clone.js +0 -36
  201. package/dist/preflight/providers/git-clone.js.map +0 -1
  202. package/dist/preflight/providers/http.d.ts +0 -3
  203. package/dist/preflight/providers/http.d.ts.map +0 -1
  204. package/dist/preflight/providers/http.js +0 -36
  205. package/dist/preflight/providers/http.js.map +0 -1
  206. package/dist/preflight/providers/shell.d.ts +0 -3
  207. package/dist/preflight/providers/shell.d.ts.map +0 -1
  208. package/dist/preflight/providers/shell.js +0 -28
  209. package/dist/preflight/providers/shell.js.map +0 -1
  210. package/dist/preflight/registry.d.ts +0 -4
  211. package/dist/preflight/registry.d.ts.map +0 -1
  212. package/dist/preflight/registry.js +0 -20
  213. package/dist/preflight/registry.js.map +0 -1
  214. package/dist/preflight/runner.d.ts +0 -7
  215. package/dist/preflight/runner.d.ts.map +0 -1
  216. package/dist/preflight/runner.js +0 -28
  217. package/dist/preflight/runner.js.map +0 -1
  218. package/dist/preflight/schema.d.ts +0 -21
  219. package/dist/preflight/schema.d.ts.map +0 -1
  220. package/dist/preflight/schema.js +0 -9
  221. package/dist/preflight/schema.js.map +0 -1
@@ -3,6 +3,31 @@ import { validateGitHubToken } from "./validators.js";
3
3
  import { writeCredentialFields } from "../shared/credentials.js";
4
4
  import { resolveCredential } from "../credentials/registry.js";
5
5
  import { promptCredential } from "../credentials/prompter.js";
6
+ /**
7
+ * Derive a short model name from a full model ID.
8
+ * e.g. "claude-sonnet-4-20250514" → "sonnet", "gpt-4o" → "gpt4o"
9
+ */
10
+ function deriveModelName(modelId) {
11
+ // Well-known patterns
12
+ if (modelId.includes("sonnet"))
13
+ return "sonnet";
14
+ if (modelId.includes("opus"))
15
+ return "opus";
16
+ if (modelId.includes("haiku"))
17
+ return "haiku";
18
+ if (modelId.includes("gpt-4o-mini"))
19
+ return "gpt4o-mini";
20
+ if (modelId.includes("gpt-4o"))
21
+ return "gpt4o";
22
+ if (modelId.includes("gpt-4"))
23
+ return "gpt4";
24
+ if (modelId.includes("gpt-3"))
25
+ return "gpt3";
26
+ if (modelId.includes("o1"))
27
+ return "o1";
28
+ // Fallback: strip version suffixes and special chars
29
+ return modelId.replace(/[-_.]\d{4,}.*$/, "").replace(/[^a-z0-9]/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "") || "default";
30
+ }
6
31
  /**
7
32
  * Write credential values to disk using the directory-based layout.
8
33
  */
@@ -136,13 +161,17 @@ export async function runSetup() {
136
161
  }
137
162
  }
138
163
  }
139
- // Build global config
164
+ // Derive a short name from the model ID (e.g. "claude-sonnet-4-20250514" → "sonnet")
165
+ const derivedName = deriveModelName(modelName);
166
+ // Build global config with named models
140
167
  const globalConfig = {
141
- model: {
142
- provider,
143
- model: modelName,
144
- ...(thinkingLevel ? { thinkingLevel } : {}),
145
- authType: "api_key",
168
+ models: {
169
+ [derivedName]: {
170
+ provider,
171
+ model: modelName,
172
+ ...(thinkingLevel ? { thinkingLevel } : {}),
173
+ authType: "api_key",
174
+ },
146
175
  },
147
176
  };
148
177
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/setup/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/setup/prompts.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ export declare const CLAUDE_COMMANDS: Record<string, string>;
2
+ /**
3
+ * Scaffold Claude Code slash commands into .claude/commands/.
4
+ * Skips files that already exist to avoid overwriting user customizations.
5
+ */
6
+ export declare function scaffoldClaudeCommands(projectPath: string): void;
1
7
  import type { GlobalConfig, AgentConfig } from "../shared/config.js";
2
8
  import { writeCredentialField, writeCredentialFields } from "../shared/credentials.js";
3
9
  export { writeCredentialField, writeCredentialFields };
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/setup/scaffold.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGvF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAWD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAgB7E;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,MAAM,GAAE,aAAa,EAAO,EAC5B,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI,CAwGN"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/setup/scaffold.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmIlD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAShE;AAID,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGvF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAWD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAyB7E;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,YAAY,EAC1B,MAAM,GAAE,aAAa,EAAO,EAC5B,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI,CAwHN"}
@@ -1,7 +1,153 @@
1
1
  import { mkdirSync, writeFileSync, existsSync, copyFileSync, symlinkSync, lstatSync, realpathSync } from "fs";
2
2
  import { resolve, relative } from "path";
3
+ // ---------------------------------------------------------------------------
4
+ // Claude Code slash-command templates (.claude/commands/*.md)
5
+ // ---------------------------------------------------------------------------
6
+ export const CLAUDE_COMMANDS = {
7
+ "new-agent": `# Create a new agent
8
+
9
+ Create a new Action Llama agent named \`$ARGUMENTS\`.
10
+
11
+ ## Steps
12
+
13
+ 1. Ask the user for:
14
+ - **Trigger type**: \`schedule\` (cron), \`webhook\`, or both
15
+ - If schedule: a cron expression (e.g. \`*/5 * * * *\`)
16
+ - If webhook: the provider and event (e.g. \`github\` / \`issues.opened\`)
17
+ - **Credentials** needed (e.g. \`github_token\`, \`slack_webhook\`)
18
+ - A one-sentence description of what the agent should do
19
+
20
+ 2. Use \`al_agents\` to list existing agents and avoid name conflicts.
21
+
22
+ 3. Create \`agents/$ARGUMENTS/SKILL.md\` with:
23
+ - YAML frontmatter containing the trigger config and credentials
24
+ - Do NOT include \`name\` or \`model\` in the frontmatter — name is derived from the directory, model is inherited from project config
25
+ - A markdown body with clear instructions for the agent
26
+ - Reference AGENTS.md (symlinked at project root) for the full SKILL.md specification
27
+
28
+ 4. Confirm the agent was created and suggest next steps:
29
+ - \`al doctor\` to verify credentials
30
+ - \`/run\` to test it
31
+ `,
32
+ "run": `# Run an agent
33
+
34
+ Trigger an agent run and report the results.
35
+
36
+ ## Steps
37
+
38
+ 1. Call \`al_status\` to check if the scheduler is running.
39
+ - If not running, call \`al_start\` to start it and wait for it to become ready.
40
+
41
+ 2. Ask the user which agent to run (or use \`$ARGUMENTS\` if provided).
42
+ - If unclear, call \`al_agents\` to list available agents.
43
+
44
+ 3. Call \`al_run\` with the agent name.
45
+
46
+ 4. Wait a few seconds, then call \`al_logs\` with the agent name, \`lines: 200\`, to fetch the run output.
47
+ - If the run is still in progress, wait and poll logs again.
48
+
49
+ 5. Summarize the result:
50
+ - What the agent did (key actions, commits, API calls)
51
+ - Whether it succeeded or failed
52
+ - Any warnings or errors
53
+ `,
54
+ "debug": `# Debug a failing agent
55
+
56
+ Diagnose why an agent is failing and suggest fixes.
57
+
58
+ ## Steps
59
+
60
+ 1. Identify the agent to debug (use \`$ARGUMENTS\` if provided, otherwise ask).
61
+
62
+ 2. Call \`al_logs\` with the agent name, \`level: "warn"\`, \`lines: 500\` to pull recent warnings and errors.
63
+
64
+ 3. Call \`al_agents\` with the agent name to read its full config and SKILL.md body.
65
+
66
+ 4. Analyze the logs and agent configuration to identify the root cause. Common issues:
67
+ - Missing or expired credentials
68
+ - Malformed SKILL.md frontmatter
69
+ - Instructions that lead to tool errors
70
+ - Rate limiting or API failures
71
+ - Docker/container issues
72
+
73
+ 5. Present a diagnosis with:
74
+ - **Root cause**: What's going wrong and why
75
+ - **Evidence**: Relevant log lines
76
+ - **Fix**: Concrete changes to make (SKILL.md edits, credential updates, config changes)
77
+
78
+ 6. Offer to apply the fix directly.
79
+ `,
80
+ "iterate": `# Iterate on an agent
81
+
82
+ Run an agent, analyze its output, and improve its instructions. Repeats up to 3 cycles or until the agent runs cleanly.
83
+
84
+ ## Rules
85
+
86
+ - Only modify the markdown body (instructions) of SKILL.md, not the YAML frontmatter, unless you ask the user first.
87
+ - Stop iterating when the agent completes without errors or after 3 cycles.
88
+
89
+ ## Steps (per cycle)
90
+
91
+ 1. Call \`al_status\` to ensure the scheduler is running. Start it with \`al_start\` if needed.
92
+
93
+ 2. Call \`al_run\` with the agent name (use \`$ARGUMENTS\` if provided).
94
+
95
+ 3. Wait for the run to complete, then call \`al_logs\` with \`lines: 300\` to get the full output.
96
+
97
+ 4. Analyze the result:
98
+ - Did the agent complete its task successfully?
99
+ - Were there errors, unnecessary steps, or suboptimal behavior?
100
+
101
+ 5. If improvements are needed:
102
+ - Read the current SKILL.md file
103
+ - Edit the instruction body to address the issues found
104
+ - Explain what you changed and why
105
+ - Start the next cycle
106
+
107
+ 6. If the run was clean, report success and summarize what was changed across all cycles.
108
+ `,
109
+ "status": `# Status overview
110
+
111
+ Show a rich overview of the Action Llama project status.
112
+
113
+ ## Steps
114
+
115
+ 1. Call \`al_status\` and \`al_agents\` in parallel to gather scheduler state and agent details.
116
+
117
+ 2. Present a formatted overview:
118
+
119
+ **Scheduler**: running/stopped, uptime, gateway URL
120
+
121
+ **Agents**:
122
+ | Agent | State | Trigger | Last Run | Next Run |
123
+ |-------|-------|---------|----------|----------|
124
+ | ... | ... | ... | ... | ... |
125
+
126
+ Include schedule expressions, webhook configs, and credential status for each agent.
127
+
128
+ 3. Add actionable suggestions if relevant:
129
+ - Agents that are paused or erroring
130
+ - Agents that haven't run recently
131
+ - Missing credentials flagged by \`al_agents\`
132
+ `,
133
+ };
134
+ /**
135
+ * Scaffold Claude Code slash commands into .claude/commands/.
136
+ * Skips files that already exist to avoid overwriting user customizations.
137
+ */
138
+ export function scaffoldClaudeCommands(projectPath) {
139
+ const commandsDir = resolve(projectPath, ".claude", "commands");
140
+ mkdirSync(commandsDir, { recursive: true });
141
+ for (const [name, content] of Object.entries(CLAUDE_COMMANDS)) {
142
+ const filePath = resolve(commandsDir, `${name}.md`);
143
+ if (!existsSync(filePath)) {
144
+ writeFileSync(filePath, content);
145
+ }
146
+ }
147
+ }
3
148
  import { fileURLToPath } from "url";
4
149
  import { stringify as stringifyTOML } from "smol-toml";
150
+ import { stringify as stringifyYAML } from "yaml";
5
151
  import { writeCredentialField, writeCredentialFields } from "../shared/credentials.js";
6
152
  import { CONSTANTS } from "../shared/constants.js";
7
153
  export { writeCredentialField, writeCredentialFields };
@@ -29,13 +175,31 @@ function lstatSafe(path) {
29
175
  export function scaffoldAgent(projectPath, agent) {
30
176
  const agentPath = resolve(projectPath, "agents", agent.name);
31
177
  mkdirSync(agentPath, { recursive: true });
32
- // Strip `name` before serializing it's derived from the directory name
33
- const { name: _, ...configToWrite } = agent.config;
34
- writeFileSync(resolve(agentPath, "agent-config.toml"), stringifyTOML(configToWrite) + "\n");
35
- // Write a stub ACTIONS.md if none exists
36
- const actionsPath = resolve(agentPath, "ACTIONS.md");
37
- if (!existsSync(actionsPath)) {
38
- writeFileSync(actionsPath, `# ${agent.name} Agent\n\nCustom agent.\n`);
178
+ // Write a SKILL.md with YAML frontmatter if none exists
179
+ const skillPath = resolve(agentPath, "SKILL.md");
180
+ if (!existsSync(skillPath)) {
181
+ // Strip `name` before serializing it's derived from the directory name.
182
+ // Also strip undefined values and models (resolved at load time from global config).
183
+ // Split into platform-allowed top-level fields and AL-specific metadata.
184
+ const { name: _, models: _m, description, license, compatibility, ...alFields } = agent.config;
185
+ const frontmatter = {};
186
+ if (description)
187
+ frontmatter.description = description;
188
+ if (license)
189
+ frontmatter.license = license;
190
+ if (compatibility)
191
+ frontmatter.compatibility = compatibility;
192
+ const metadata = {};
193
+ for (const [k, v] of Object.entries(alFields)) {
194
+ if (v !== undefined)
195
+ metadata[k] = v;
196
+ }
197
+ if (Object.keys(metadata).length > 0)
198
+ frontmatter.metadata = metadata;
199
+ const yamlStr = Object.keys(frontmatter).length > 0
200
+ ? stringifyYAML(frontmatter).trimEnd()
201
+ : "";
202
+ writeFileSync(skillPath, `---\n${yamlStr}\n---\n\n# ${agent.name} Agent\n\nCustom agent.\n`);
39
203
  }
40
204
  }
41
205
  export function scaffoldProject(projectPath, globalConfig, agents = [], projectName) {
@@ -132,5 +296,19 @@ export function scaffoldProject(projectPath, globalConfig, agents = [], projectN
132
296
  "",
133
297
  ].join("\n"));
134
298
  }
299
+ // Create .mcp.json for Claude Code MCP integration
300
+ const mcpJsonPath = resolve(projectPath, ".mcp.json");
301
+ if (!existsSync(mcpJsonPath)) {
302
+ writeFileSync(mcpJsonPath, JSON.stringify({
303
+ mcpServers: {
304
+ "action-llama": {
305
+ command: "al",
306
+ args: ["mcp", "serve"],
307
+ },
308
+ },
309
+ }, null, 2) + "\n");
310
+ }
311
+ // Scaffold Claude Code slash commands
312
+ scaffoldClaudeCommands(projectPath);
135
313
  }
136
314
  //# sourceMappingURL=scaffold.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/setup/scaffold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/setup/scaffold.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import type { WebhookTrigger } from "../webhooks/types.js";
2
- import type { PreflightStep } from "../preflight/schema.js";
3
2
  export interface ModelConfig {
4
3
  provider: string;
5
4
  model: string;
@@ -30,7 +29,6 @@ export interface VpsConfig {
30
29
  export type CloudConfig = VpsConfig;
31
30
  export interface GatewayConfig {
32
31
  port?: number;
33
- lockTimeout?: number;
34
32
  url?: string;
35
33
  }
36
34
  export interface WebhookSourceConfig {
@@ -46,7 +44,7 @@ export interface TelemetryConfig {
46
44
  samplingRate?: number;
47
45
  }
48
46
  export interface GlobalConfig {
49
- model?: ModelConfig;
47
+ models?: Record<string, ModelConfig>;
50
48
  local?: LocalConfig;
51
49
  gateway?: GatewayConfig;
52
50
  webhooks?: Record<string, WebhookSourceConfig>;
@@ -59,18 +57,26 @@ export interface GlobalConfig {
59
57
  /** @deprecated Use workQueueSize instead */
60
58
  webhookQueueSize?: number;
61
59
  workQueueSize?: number;
60
+ resourceLockTimeout?: number;
62
61
  scale?: number;
63
62
  }
63
+ export interface AgentHooks {
64
+ pre?: string[];
65
+ post?: string[];
66
+ }
64
67
  export interface AgentConfig {
65
68
  name: string;
69
+ description?: string;
66
70
  credentials: string[];
67
- model: ModelConfig;
71
+ models: ModelConfig[];
68
72
  schedule?: string;
69
73
  webhooks?: WebhookTrigger[];
70
- preflight?: PreflightStep[];
74
+ hooks?: AgentHooks;
71
75
  params?: Record<string, unknown>;
72
76
  scale?: number;
73
77
  timeout?: number;
78
+ license?: string;
79
+ compatibility?: string;
74
80
  }
75
81
  /**
76
82
  * Load the raw project config.toml without environment merging.
@@ -85,6 +91,11 @@ export declare function loadProjectConfig(projectPath: string): GlobalConfig;
85
91
  */
86
92
  export declare function loadGlobalConfig(projectPath: string, envName?: string): GlobalConfig;
87
93
  export declare function loadAgentConfig(projectPath: string, agentName: string): AgentConfig;
94
+ /**
95
+ * Load the SKILL.md body (markdown content after frontmatter).
96
+ * Used by image builder and container entry to get agent instructions.
97
+ */
98
+ export declare function loadAgentBody(projectPath: string, agentName: string): string;
88
99
  export declare function validateAgentName(name: string): void;
89
100
  export declare function validateAgentConfig(config: AgentConfig): void;
90
101
  export declare function discoverAgents(projectPath: string): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAW5D,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACxE,QAAQ,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,KAAK,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC;AAGpC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC/C,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAUnE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAmCpF;AAGD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAqBnF;AAID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAgBpD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAW7D;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAoB5D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { resolve } from "path";
3
3
  import { parse as parseTOML } from "smol-toml";
4
4
  import { ConfigError } from "./errors.js";
5
5
  import { resolveEnvironmentName, loadEnvToml, loadEnvironmentConfig, deepMerge, } from "./environment.js";
6
+ import { parseFrontmatter } from "./frontmatter.js";
6
7
  // --- Loaders ---
7
8
  /**
8
9
  * Load the raw project config.toml without environment merging.
@@ -13,7 +14,12 @@ export function loadProjectConfig(projectPath) {
13
14
  let config = {};
14
15
  if (existsSync(configPath)) {
15
16
  const raw = readFileSync(configPath, "utf-8");
16
- config = parseTOML(raw);
17
+ try {
18
+ config = parseTOML(raw);
19
+ }
20
+ catch (err) {
21
+ throw new ConfigError(`Error parsing ${configPath}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
22
+ }
17
23
  }
18
24
  return config;
19
25
  }
@@ -56,29 +62,80 @@ export function loadGlobalConfig(projectPath, envName) {
56
62
  }
57
63
  export function loadAgentConfig(projectPath, agentName) {
58
64
  const agentDir = resolve(projectPath, "agents", agentName);
59
- const tomlPath = resolve(agentDir, "agent-config.toml");
60
- if (!existsSync(tomlPath)) {
61
- throw new ConfigError(`Agent config not found at ${tomlPath}.`);
62
- }
63
- const raw = readFileSync(tomlPath, "utf-8");
64
- const parsed = parseTOML(raw);
65
- parsed.name = agentName;
66
- // Fall back to global [model] if agent doesn't define its own
67
- if (!parsed.model) {
68
- const global = loadGlobalConfig(projectPath);
69
- if (global.model) {
70
- parsed.model = global.model;
65
+ const skillPath = resolve(agentDir, "SKILL.md");
66
+ if (!existsSync(skillPath)) {
67
+ throw new ConfigError(`Agent config not found at ${skillPath}.`);
68
+ }
69
+ const raw = readFileSync(skillPath, "utf-8");
70
+ let data;
71
+ try {
72
+ ({ data } = parseFrontmatter(raw));
73
+ }
74
+ catch (err) {
75
+ throw new ConfigError(`Error parsing ${skillPath}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
76
+ }
77
+ const meta = (data.metadata ?? {});
78
+ const parsed = {
79
+ name: agentName,
80
+ // Top-level (platform-allowed)
81
+ description: data.description,
82
+ license: data.license,
83
+ compatibility: data.compatibility,
84
+ // From metadata (AL-specific)
85
+ credentials: meta.credentials,
86
+ models: meta.models,
87
+ schedule: meta.schedule,
88
+ webhooks: meta.webhooks,
89
+ hooks: meta.hooks,
90
+ params: meta.params,
91
+ scale: meta.scale,
92
+ timeout: meta.timeout,
93
+ };
94
+ // Resolve named model references from global config
95
+ const rawModels = parsed.models;
96
+ if (!rawModels || !Array.isArray(rawModels) || rawModels.length === 0) {
97
+ throw new ConfigError(`Agent "${agentName}" must have a "models" field listing at least one named model.`);
98
+ }
99
+ const global = loadGlobalConfig(projectPath);
100
+ if (!global.models || Object.keys(global.models).length === 0) {
101
+ throw new ConfigError(`No models defined in config.toml [models]. Define at least one named model.`);
102
+ }
103
+ const resolvedModels = [];
104
+ for (const name of rawModels) {
105
+ const modelDef = global.models[name];
106
+ if (!modelDef) {
107
+ const available = Object.keys(global.models).join(", ");
108
+ throw new ConfigError(`Agent "${agentName}" references model "${name}" which is not defined in config.toml. Available: ${available}`);
71
109
  }
110
+ resolvedModels.push(modelDef);
72
111
  }
112
+ parsed.models = resolvedModels;
73
113
  return parsed;
74
114
  }
75
- const AGENT_NAME_PATTERN = /^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/;
115
+ /**
116
+ * Load the SKILL.md body (markdown content after frontmatter).
117
+ * Used by image builder and container entry to get agent instructions.
118
+ */
119
+ export function loadAgentBody(projectPath, agentName) {
120
+ const skillPath = resolve(projectPath, "agents", agentName, "SKILL.md");
121
+ if (!existsSync(skillPath))
122
+ return "";
123
+ const raw = readFileSync(skillPath, "utf-8");
124
+ try {
125
+ const { body } = parseFrontmatter(raw);
126
+ return body;
127
+ }
128
+ catch (err) {
129
+ throw new ConfigError(`Error parsing ${skillPath}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
130
+ }
131
+ }
132
+ const AGENT_NAME_PATTERN = /^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9]))*$/;
76
133
  export function validateAgentName(name) {
77
- if (!name || name.length > 63) {
78
- throw new ConfigError(`Agent name "${name}" is invalid: must be 1-63 characters.`);
134
+ if (!name || name.length > 64) {
135
+ throw new ConfigError(`Agent name "${name}" is invalid: must be 1-64 characters.`);
79
136
  }
80
137
  if (!AGENT_NAME_PATTERN.test(name)) {
81
- throw new ConfigError(`Agent name "${name}" is invalid: must contain only lowercase letters, numbers, and hyphens (cannot start or end with a hyphen).`);
138
+ throw new ConfigError(`Agent name "${name}" is invalid: must contain only lowercase letters, numbers, and hyphens (cannot start or end with a hyphen, no consecutive hyphens).`);
82
139
  }
83
140
  if (name === "default") {
84
141
  throw new ConfigError(`Agent name "default" is reserved. Choose a different name.`);
@@ -109,7 +166,7 @@ export function discoverAgents(projectPath) {
109
166
  const entryPath = resolve(agentsPath, entry);
110
167
  if (!statSync(entryPath).isDirectory())
111
168
  continue;
112
- if (existsSync(resolve(entryPath, "agent-config.toml"))) {
169
+ if (existsSync(resolve(entryPath, "SKILL.md"))) {
113
170
  agents.push(entry);
114
171
  }
115
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"credential-refs.d.ts","sourceRoot":"","sources":["../../src/shared/credential-refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEjF,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGvD,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,aAEnC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAOzE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CA0BlG"}
1
+ {"version":3,"file":"credential-refs.d.ts","sourceRoot":"","sources":["../../src/shared/credential-refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEjF,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKvD,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,aAEnC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAOzE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CA2BlG"}
@@ -3,10 +3,12 @@ import { discoverAgents, loadAgentConfig } from "./config.js";
3
3
  export const WEBHOOK_SECRET_TYPES = {
4
4
  github: "github_webhook_secret",
5
5
  sentry: "sentry_client_secret",
6
+ linear: "linear_webhook_secret",
7
+ mintlify: "mintlify_webhook_secret",
6
8
  };
7
9
  /** Credentials that are always required but may not be explicitly referenced */
8
10
  export const IMPLICIT_CREDENTIAL_REFS = new Set([
9
- "gateway_api_key:default", // Required for gateway authentication
11
+ "gateway_api_key", // Required for gateway authentication
10
12
  ]);
11
13
  /**
12
14
  * Convert credential refs to relative file paths within the credentials directory.
@@ -33,6 +35,12 @@ export function collectCredentialRefs(projectPath, globalConfig) {
33
35
  for (const ref of config.credentials) {
34
36
  credentialRefs.add(ref);
35
37
  }
38
+ // Add provider credentials for all models in the chain
39
+ for (const mc of config.models ?? []) {
40
+ if (mc.authType !== "pi_auth") {
41
+ credentialRefs.add(`${mc.provider}_key`);
42
+ }
43
+ }
36
44
  for (const trigger of config.webhooks || []) {
37
45
  const sourceConfig = webhookSources[trigger.source];
38
46
  if (!sourceConfig)
@@ -43,10 +51,6 @@ export function collectCredentialRefs(projectPath, globalConfig) {
43
51
  }
44
52
  }
45
53
  }
46
- // Add implicit credentials that are always required
47
- for (const ref of IMPLICIT_CREDENTIAL_REFS) {
48
- credentialRefs.add(ref);
49
- }
50
54
  return credentialRefs;
51
55
  }
52
56
  //# sourceMappingURL=credential-refs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"credential-refs.js","sourceRoot":"","sources":["../../src/shared/credential-refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAqB,MAAM,aAAa,CAAC;AAEjF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,MAAM,EAAE,uBAAuB;IAC/B,MAAM,EAAE,sBAAsB;CAC/B,CAAC;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IAC9C,yBAAyB,EAAG,sCAAsC;CACnE,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAiB;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,YAA0B;IACnF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,YAAY;gBAAE,SAAS;YAC5B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,QAAQ,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;gBACxC,cAAc,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC3C,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"credential-refs.js","sourceRoot":"","sources":["../../src/shared/credential-refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAqB,MAAM,aAAa,CAAC;AAEjF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,MAAM,EAAE,uBAAuB;IAC/B,MAAM,EAAE,sBAAsB;IAC9B,MAAM,EAAE,uBAAuB;IAC/B,QAAQ,EAAE,yBAAyB;CACpC,CAAC;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IAC9C,iBAAiB,EAAG,sCAAsC;CAC3D,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAiB;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,YAA0B;IACnF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,uDAAuD;QACvD,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACrC,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC9B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,YAAY;gBAAE,SAAS;YAC5B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,QAAQ,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;gBACxC,cAAc,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -4,7 +4,6 @@ export interface EnvironmentConfig {
4
4
  gateway?: {
5
5
  url?: string;
6
6
  port?: number;
7
- lockTimeout?: number;
8
7
  };
9
8
  telemetry?: {
10
9
  enabled?: boolean;