@action-llama/action-llama 0.13.7 → 0.15.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/agent-docs/AGENTS.md +123 -207
- package/dist/agents/container-entry.d.ts +1 -3
- package/dist/agents/container-entry.d.ts.map +1 -1
- package/dist/agents/container-entry.js +208 -154
- package/dist/agents/container-entry.js.map +1 -1
- package/dist/agents/container-runner.d.ts.map +1 -1
- package/dist/agents/container-runner.js +19 -8
- package/dist/agents/container-runner.js.map +1 -1
- package/dist/agents/context-injection.d.ts +7 -0
- package/dist/agents/context-injection.d.ts.map +1 -0
- package/dist/agents/context-injection.js +27 -0
- package/dist/agents/context-injection.js.map +1 -0
- package/dist/agents/execution-engine.d.ts.map +1 -1
- package/dist/agents/execution-engine.js +99 -109
- package/dist/agents/execution-engine.js.map +1 -1
- package/dist/agents/feedback-monitor.d.ts +56 -0
- package/dist/agents/feedback-monitor.d.ts.map +1 -0
- package/dist/agents/feedback-monitor.js +176 -0
- package/dist/agents/feedback-monitor.js.map +1 -0
- package/dist/agents/feedback-runner.d.ts +28 -0
- package/dist/agents/feedback-runner.d.ts.map +1 -0
- package/dist/agents/feedback-runner.js +138 -0
- package/dist/agents/feedback-runner.js.map +1 -0
- package/dist/agents/model-fallback.d.ts +18 -0
- package/dist/agents/model-fallback.d.ts.map +1 -0
- package/dist/agents/model-fallback.js +40 -0
- package/dist/agents/model-fallback.js.map +1 -0
- package/dist/agents/prompt.d.ts +9 -2
- package/dist/agents/prompt.d.ts.map +1 -1
- package/dist/agents/prompt.js +21 -49
- package/dist/agents/prompt.js.map +1 -1
- package/dist/agents/runner.d.ts +6 -0
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +153 -124
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/session-factory.d.ts +13 -0
- package/dist/agents/session-factory.d.ts.map +1 -0
- package/dist/agents/session-factory.js +27 -0
- package/dist/agents/session-factory.js.map +1 -0
- package/dist/build-info.json +1 -1
- package/dist/cli/commands/agent.d.ts.map +1 -1
- package/dist/cli/commands/agent.js +89 -23
- package/dist/cli/commands/agent.js.map +1 -1
- package/dist/cli/commands/chat.d.ts.map +1 -1
- package/dist/cli/commands/chat.js +26 -43
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/commands/claude.d.ts +4 -0
- package/dist/cli/commands/claude.d.ts.map +1 -0
- package/dist/cli/commands/claude.js +8 -0
- package/dist/cli/commands/claude.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +24 -6
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +8 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +31 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/new.d.ts.map +1 -1
- package/dist/cli/commands/new.js +15 -6
- package/dist/cli/commands/new.js.map +1 -1
- package/dist/cli/commands/run.js +1 -1
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/start.js +3 -3
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/stats.d.ts +9 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +149 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +3 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/main.js +50 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/gateway/index.d.ts +3 -0
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +7 -1
- package/dist/gateway/index.js.map +1 -1
- package/dist/gateway/lock-store.d.ts +10 -0
- package/dist/gateway/lock-store.d.ts.map +1 -1
- package/dist/gateway/lock-store.js +38 -0
- package/dist/gateway/lock-store.js.map +1 -1
- package/dist/gateway/routes/control.d.ts +2 -0
- package/dist/gateway/routes/control.d.ts.map +1 -1
- package/dist/gateway/routes/control.js +56 -0
- package/dist/gateway/routes/control.js.map +1 -1
- package/dist/gateway/routes/dashboard.d.ts +2 -1
- package/dist/gateway/routes/dashboard.d.ts.map +1 -1
- package/dist/gateway/routes/dashboard.js +112 -6
- package/dist/gateway/routes/dashboard.js.map +1 -1
- package/dist/gateway/routes/locks.d.ts.map +1 -1
- package/dist/gateway/routes/locks.js +39 -0
- package/dist/gateway/routes/locks.js.map +1 -1
- package/dist/gateway/routes/logs.d.ts.map +1 -1
- package/dist/gateway/routes/logs.js +4 -5
- package/dist/gateway/routes/logs.js.map +1 -1
- package/dist/gateway/routes/stats.d.ts +4 -0
- package/dist/gateway/routes/stats.d.ts.map +1 -0
- package/dist/gateway/routes/stats.js +25 -0
- package/dist/gateway/routes/stats.js.map +1 -0
- package/dist/gateway/views/agent-detail-page.d.ts +14 -0
- package/dist/gateway/views/agent-detail-page.d.ts.map +1 -0
- package/dist/gateway/views/agent-detail-page.js +416 -0
- package/dist/gateway/views/agent-detail-page.js.map +1 -0
- package/dist/gateway/views/dashboard-page.d.ts.map +1 -1
- package/dist/gateway/views/dashboard-page.js +213 -245
- package/dist/gateway/views/dashboard-page.js.map +1 -1
- package/dist/gateway/views/instance-detail-page.d.ts +30 -0
- package/dist/gateway/views/instance-detail-page.d.ts.map +1 -0
- package/dist/gateway/views/instance-detail-page.js +360 -0
- package/dist/gateway/views/instance-detail-page.js.map +1 -0
- package/dist/gateway/views/layout.d.ts +17 -0
- package/dist/gateway/views/layout.d.ts.map +1 -0
- package/dist/gateway/views/layout.js +153 -0
- package/dist/gateway/views/layout.js.map +1 -0
- package/dist/gateway/views/login-page.d.ts.map +1 -1
- package/dist/gateway/views/login-page.js +24 -37
- package/dist/gateway/views/login-page.js.map +1 -1
- package/dist/gateway/views/project-config-page.d.ts +12 -0
- package/dist/gateway/views/project-config-page.d.ts.map +1 -0
- package/dist/gateway/views/project-config-page.js +199 -0
- package/dist/gateway/views/project-config-page.js.map +1 -0
- package/dist/hooks/runner.d.ts +12 -0
- package/dist/hooks/runner.d.ts.map +1 -0
- package/dist/hooks/runner.js +32 -0
- package/dist/hooks/runner.js.map +1 -0
- package/dist/mcp/server.d.ts +5 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +336 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/scheduler/call-dispatcher.d.ts +2 -2
- package/dist/scheduler/call-dispatcher.js +3 -3
- package/dist/scheduler/call-dispatcher.js.map +1 -1
- package/dist/scheduler/execution.d.ts +5 -2
- package/dist/scheduler/execution.d.ts.map +1 -1
- package/dist/scheduler/execution.js +75 -4
- package/dist/scheduler/execution.js.map +1 -1
- package/dist/scheduler/gateway-setup.d.ts +2 -0
- package/dist/scheduler/gateway-setup.d.ts.map +1 -1
- package/dist/scheduler/gateway-setup.js +21 -2
- package/dist/scheduler/gateway-setup.js.map +1 -1
- package/dist/scheduler/image-builder.js +3 -3
- package/dist/scheduler/image-builder.js.map +1 -1
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +90 -3
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/shutdown.d.ts +2 -0
- package/dist/scheduler/shutdown.d.ts.map +1 -1
- package/dist/scheduler/shutdown.js +4 -1
- package/dist/scheduler/shutdown.js.map +1 -1
- package/dist/scheduler/validation.d.ts.map +1 -1
- package/dist/scheduler/validation.js +5 -3
- package/dist/scheduler/validation.js.map +1 -1
- package/dist/scheduler/watcher.d.ts +1 -1
- package/dist/scheduler/watcher.js +1 -1
- package/dist/scheduler/webhook-setup.d.ts +2 -0
- package/dist/scheduler/webhook-setup.d.ts.map +1 -1
- package/dist/scheduler/webhook-setup.js +2 -0
- package/dist/scheduler/webhook-setup.js.map +1 -1
- package/dist/setup/prompts.d.ts.map +1 -1
- package/dist/setup/prompts.js +35 -6
- package/dist/setup/prompts.js.map +1 -1
- package/dist/setup/scaffold.d.ts +6 -0
- package/dist/setup/scaffold.d.ts.map +1 -1
- package/dist/setup/scaffold.js +185 -7
- package/dist/setup/scaffold.js.map +1 -1
- package/dist/shared/config.d.ts +42 -5
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +126 -20
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/credential-refs.d.ts.map +1 -1
- package/dist/shared/credential-refs.js +8 -0
- package/dist/shared/credential-refs.js.map +1 -1
- package/dist/shared/default-feedback-agent.d.ts +10 -0
- package/dist/shared/default-feedback-agent.d.ts.map +1 -0
- package/dist/shared/default-feedback-agent.js +114 -0
- package/dist/shared/default-feedback-agent.js.map +1 -0
- package/dist/shared/environment.d.ts +0 -1
- package/dist/shared/environment.d.ts.map +1 -1
- package/dist/shared/environment.js +19 -3
- package/dist/shared/environment.js.map +1 -1
- package/dist/shared/frontmatter.d.ts +11 -0
- package/dist/shared/frontmatter.d.ts.map +1 -0
- package/dist/shared/frontmatter.js +30 -0
- package/dist/shared/frontmatter.js.map +1 -0
- package/dist/shared/paths.d.ts +1 -0
- package/dist/shared/paths.d.ts.map +1 -1
- package/dist/shared/paths.js +3 -0
- package/dist/shared/paths.js.map +1 -1
- package/dist/shared/usage.d.ts.map +1 -1
- package/dist/shared/usage.js +52 -7
- package/dist/shared/usage.js.map +1 -1
- package/dist/stats/index.d.ts +3 -0
- package/dist/stats/index.d.ts.map +1 -0
- package/dist/stats/index.js +2 -0
- package/dist/stats/index.js.map +1 -0
- package/dist/stats/store.d.ts +89 -0
- package/dist/stats/store.d.ts.map +1 -0
- package/dist/stats/store.js +242 -0
- package/dist/stats/store.js.map +1 -0
- package/dist/tui/App.d.ts +2 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +132 -5
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/render.d.ts +1 -1
- package/dist/tui/render.d.ts.map +1 -1
- package/dist/tui/render.js +2 -2
- package/dist/tui/render.js.map +1 -1
- package/dist/tui/status-tracker.d.ts +18 -1
- package/dist/tui/status-tracker.d.ts.map +1 -1
- package/dist/tui/status-tracker.js +32 -1
- package/dist/tui/status-tracker.js.map +1 -1
- package/docker/bin/{al-call → al-subagent} +2 -2
- package/docker/bin/{al-check → al-subagent-check} +2 -2
- package/docker/bin/{al-wait → al-subagent-wait} +2 -2
- package/package.json +8 -21
- package/LICENSE +0 -21
- package/README.md +0 -192
- package/dist/gateway/views/logs-page.d.ts +0 -2
- package/dist/gateway/views/logs-page.d.ts.map +0 -1
- package/dist/gateway/views/logs-page.js +0 -280
- package/dist/gateway/views/logs-page.js.map +0 -1
- package/dist/preflight/interpolate.d.ts +0 -10
- package/dist/preflight/interpolate.d.ts.map +0 -1
- package/dist/preflight/interpolate.js +0 -33
- package/dist/preflight/interpolate.js.map +0 -1
- package/dist/preflight/providers/git-clone.d.ts +0 -3
- package/dist/preflight/providers/git-clone.d.ts.map +0 -1
- package/dist/preflight/providers/git-clone.js +0 -36
- package/dist/preflight/providers/git-clone.js.map +0 -1
- package/dist/preflight/providers/http.d.ts +0 -3
- package/dist/preflight/providers/http.d.ts.map +0 -1
- package/dist/preflight/providers/http.js +0 -36
- package/dist/preflight/providers/http.js.map +0 -1
- package/dist/preflight/providers/shell.d.ts +0 -3
- package/dist/preflight/providers/shell.d.ts.map +0 -1
- package/dist/preflight/providers/shell.js +0 -28
- package/dist/preflight/providers/shell.js.map +0 -1
- package/dist/preflight/registry.d.ts +0 -4
- package/dist/preflight/registry.d.ts.map +0 -1
- package/dist/preflight/registry.js +0 -20
- package/dist/preflight/registry.js.map +0 -1
- package/dist/preflight/runner.d.ts +0 -7
- package/dist/preflight/runner.d.ts.map +0 -1
- package/dist/preflight/runner.js +0 -28
- package/dist/preflight/runner.js.map +0 -1
- package/dist/preflight/schema.d.ts +0 -21
- package/dist/preflight/schema.d.ts.map +0 -1
- package/dist/preflight/schema.js +0 -9
- package/dist/preflight/schema.js.map +0 -1
package/dist/setup/scaffold.js
CHANGED
|
@@ -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
|
-
//
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9G,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/setup/scaffold.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/config.d.ts
CHANGED
|
@@ -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 {
|
|
@@ -45,12 +43,19 @@ export interface TelemetryConfig {
|
|
|
45
43
|
headers?: Record<string, string>;
|
|
46
44
|
samplingRate?: number;
|
|
47
45
|
}
|
|
46
|
+
export interface FeedbackConfig {
|
|
47
|
+
enabled: boolean;
|
|
48
|
+
agent?: string;
|
|
49
|
+
errorPatterns?: string[];
|
|
50
|
+
contextLines?: number;
|
|
51
|
+
}
|
|
48
52
|
export interface GlobalConfig {
|
|
49
|
-
|
|
53
|
+
models?: Record<string, ModelConfig>;
|
|
50
54
|
local?: LocalConfig;
|
|
51
55
|
gateway?: GatewayConfig;
|
|
52
56
|
webhooks?: Record<string, WebhookSourceConfig>;
|
|
53
57
|
telemetry?: TelemetryConfig;
|
|
58
|
+
feedback?: FeedbackConfig;
|
|
54
59
|
projectName?: string;
|
|
55
60
|
maxReruns?: number;
|
|
56
61
|
maxCallDepth?: number;
|
|
@@ -59,18 +64,29 @@ export interface GlobalConfig {
|
|
|
59
64
|
/** @deprecated Use workQueueSize instead */
|
|
60
65
|
webhookQueueSize?: number;
|
|
61
66
|
workQueueSize?: number;
|
|
67
|
+
resourceLockTimeout?: number;
|
|
62
68
|
scale?: number;
|
|
63
69
|
}
|
|
70
|
+
export interface AgentHooks {
|
|
71
|
+
pre?: string[];
|
|
72
|
+
post?: string[];
|
|
73
|
+
}
|
|
64
74
|
export interface AgentConfig {
|
|
65
75
|
name: string;
|
|
76
|
+
description?: string;
|
|
66
77
|
credentials: string[];
|
|
67
|
-
|
|
78
|
+
models: ModelConfig[];
|
|
68
79
|
schedule?: string;
|
|
69
80
|
webhooks?: WebhookTrigger[];
|
|
70
|
-
|
|
81
|
+
hooks?: AgentHooks;
|
|
71
82
|
params?: Record<string, unknown>;
|
|
72
83
|
scale?: number;
|
|
73
84
|
timeout?: number;
|
|
85
|
+
feedback?: {
|
|
86
|
+
enabled?: boolean;
|
|
87
|
+
};
|
|
88
|
+
license?: string;
|
|
89
|
+
compatibility?: string;
|
|
74
90
|
}
|
|
75
91
|
/**
|
|
76
92
|
* Load the raw project config.toml without environment merging.
|
|
@@ -85,7 +101,28 @@ export declare function loadProjectConfig(projectPath: string): GlobalConfig;
|
|
|
85
101
|
*/
|
|
86
102
|
export declare function loadGlobalConfig(projectPath: string, envName?: string): GlobalConfig;
|
|
87
103
|
export declare function loadAgentConfig(projectPath: string, agentName: string): AgentConfig;
|
|
104
|
+
/**
|
|
105
|
+
* Load the SKILL.md body (markdown content after frontmatter).
|
|
106
|
+
* Used by image builder and container entry to get agent instructions.
|
|
107
|
+
*/
|
|
108
|
+
export declare function loadAgentBody(projectPath: string, agentName: string): string;
|
|
88
109
|
export declare function validateAgentName(name: string): void;
|
|
89
110
|
export declare function validateAgentConfig(config: AgentConfig): void;
|
|
90
111
|
export declare function discoverAgents(projectPath: string): string[];
|
|
112
|
+
/**
|
|
113
|
+
* Update the project-level scale in config.toml
|
|
114
|
+
*/
|
|
115
|
+
export declare function updateProjectScale(projectPath: string, scale: number): void;
|
|
116
|
+
/**
|
|
117
|
+
* Update an agent's scale in its SKILL.md frontmatter
|
|
118
|
+
*/
|
|
119
|
+
export declare function updateAgentScale(projectPath: string, agentName: string, scale: number): void;
|
|
120
|
+
/**
|
|
121
|
+
* Get current project scale from config
|
|
122
|
+
*/
|
|
123
|
+
export declare function getProjectScale(projectPath: string): number;
|
|
124
|
+
/**
|
|
125
|
+
* Get current agent scale from config
|
|
126
|
+
*/
|
|
127
|
+
export declare function getAgentScale(projectPath: string, agentName: string): number;
|
|
91
128
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/config.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { readFileSync, existsSync, readdirSync, statSync } from "fs";
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync, readdirSync, statSync } from "fs";
|
|
2
2
|
import { resolve } from "path";
|
|
3
|
-
import { parse as parseTOML } from "smol-toml";
|
|
3
|
+
import { parse as parseTOML, stringify as stringifyTOML } 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";
|
|
7
|
+
import { stringify as stringifyYAML } from "yaml";
|
|
6
8
|
// --- Loaders ---
|
|
7
9
|
/**
|
|
8
10
|
* Load the raw project config.toml without environment merging.
|
|
@@ -13,7 +15,12 @@ export function loadProjectConfig(projectPath) {
|
|
|
13
15
|
let config = {};
|
|
14
16
|
if (existsSync(configPath)) {
|
|
15
17
|
const raw = readFileSync(configPath, "utf-8");
|
|
16
|
-
|
|
18
|
+
try {
|
|
19
|
+
config = parseTOML(raw);
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
throw new ConfigError(`Error parsing ${configPath}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
23
|
+
}
|
|
17
24
|
}
|
|
18
25
|
return config;
|
|
19
26
|
}
|
|
@@ -56,29 +63,81 @@ export function loadGlobalConfig(projectPath, envName) {
|
|
|
56
63
|
}
|
|
57
64
|
export function loadAgentConfig(projectPath, agentName) {
|
|
58
65
|
const agentDir = resolve(projectPath, "agents", agentName);
|
|
59
|
-
const
|
|
60
|
-
if (!existsSync(
|
|
61
|
-
throw new ConfigError(`Agent config not found at ${
|
|
62
|
-
}
|
|
63
|
-
const raw = readFileSync(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
const skillPath = resolve(agentDir, "SKILL.md");
|
|
67
|
+
if (!existsSync(skillPath)) {
|
|
68
|
+
throw new ConfigError(`Agent config not found at ${skillPath}.`);
|
|
69
|
+
}
|
|
70
|
+
const raw = readFileSync(skillPath, "utf-8");
|
|
71
|
+
let data;
|
|
72
|
+
try {
|
|
73
|
+
({ data } = parseFrontmatter(raw));
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
throw new ConfigError(`Error parsing ${skillPath}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
77
|
+
}
|
|
78
|
+
const meta = (data.metadata ?? {});
|
|
79
|
+
const parsed = {
|
|
80
|
+
name: agentName,
|
|
81
|
+
// Top-level (platform-allowed)
|
|
82
|
+
description: data.description,
|
|
83
|
+
license: data.license,
|
|
84
|
+
compatibility: data.compatibility,
|
|
85
|
+
// From metadata (AL-specific)
|
|
86
|
+
credentials: meta.credentials,
|
|
87
|
+
models: meta.models,
|
|
88
|
+
schedule: meta.schedule,
|
|
89
|
+
webhooks: meta.webhooks,
|
|
90
|
+
hooks: meta.hooks,
|
|
91
|
+
params: meta.params,
|
|
92
|
+
scale: meta.scale,
|
|
93
|
+
timeout: meta.timeout,
|
|
94
|
+
feedback: meta.feedback,
|
|
95
|
+
};
|
|
96
|
+
// Resolve named model references from global config
|
|
97
|
+
const rawModels = parsed.models;
|
|
98
|
+
if (!rawModels || !Array.isArray(rawModels) || rawModels.length === 0) {
|
|
99
|
+
throw new ConfigError(`Agent "${agentName}" must have a "models" field listing at least one named model.`);
|
|
100
|
+
}
|
|
101
|
+
const global = loadGlobalConfig(projectPath);
|
|
102
|
+
if (!global.models || Object.keys(global.models).length === 0) {
|
|
103
|
+
throw new ConfigError(`No models defined in config.toml [models]. Define at least one named model.`);
|
|
104
|
+
}
|
|
105
|
+
const resolvedModels = [];
|
|
106
|
+
for (const name of rawModels) {
|
|
107
|
+
const modelDef = global.models[name];
|
|
108
|
+
if (!modelDef) {
|
|
109
|
+
const available = Object.keys(global.models).join(", ");
|
|
110
|
+
throw new ConfigError(`Agent "${agentName}" references model "${name}" which is not defined in config.toml. Available: ${available}`);
|
|
71
111
|
}
|
|
112
|
+
resolvedModels.push(modelDef);
|
|
72
113
|
}
|
|
114
|
+
parsed.models = resolvedModels;
|
|
73
115
|
return parsed;
|
|
74
116
|
}
|
|
75
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Load the SKILL.md body (markdown content after frontmatter).
|
|
119
|
+
* Used by image builder and container entry to get agent instructions.
|
|
120
|
+
*/
|
|
121
|
+
export function loadAgentBody(projectPath, agentName) {
|
|
122
|
+
const skillPath = resolve(projectPath, "agents", agentName, "SKILL.md");
|
|
123
|
+
if (!existsSync(skillPath))
|
|
124
|
+
return "";
|
|
125
|
+
const raw = readFileSync(skillPath, "utf-8");
|
|
126
|
+
try {
|
|
127
|
+
const { body } = parseFrontmatter(raw);
|
|
128
|
+
return body;
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
throw new ConfigError(`Error parsing ${skillPath}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const AGENT_NAME_PATTERN = /^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9]))*$/;
|
|
76
135
|
export function validateAgentName(name) {
|
|
77
|
-
if (!name || name.length >
|
|
78
|
-
throw new ConfigError(`Agent name "${name}" is invalid: must be 1-
|
|
136
|
+
if (!name || name.length > 64) {
|
|
137
|
+
throw new ConfigError(`Agent name "${name}" is invalid: must be 1-64 characters.`);
|
|
79
138
|
}
|
|
80
139
|
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).`);
|
|
140
|
+
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
141
|
}
|
|
83
142
|
if (name === "default") {
|
|
84
143
|
throw new ConfigError(`Agent name "default" is reserved. Choose a different name.`);
|
|
@@ -109,10 +168,57 @@ export function discoverAgents(projectPath) {
|
|
|
109
168
|
const entryPath = resolve(agentsPath, entry);
|
|
110
169
|
if (!statSync(entryPath).isDirectory())
|
|
111
170
|
continue;
|
|
112
|
-
if (existsSync(resolve(entryPath, "
|
|
171
|
+
if (existsSync(resolve(entryPath, "SKILL.md"))) {
|
|
113
172
|
agents.push(entry);
|
|
114
173
|
}
|
|
115
174
|
}
|
|
116
175
|
return agents.sort();
|
|
117
176
|
}
|
|
177
|
+
// --- Configuration Update Functions ---
|
|
178
|
+
/**
|
|
179
|
+
* Update the project-level scale in config.toml
|
|
180
|
+
*/
|
|
181
|
+
export function updateProjectScale(projectPath, scale) {
|
|
182
|
+
const config = loadProjectConfig(projectPath);
|
|
183
|
+
config.scale = scale;
|
|
184
|
+
const configPath = resolve(projectPath, "config.toml");
|
|
185
|
+
const tomlStr = stringifyTOML(config);
|
|
186
|
+
writeFileSync(configPath, tomlStr);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Update an agent's scale in its SKILL.md frontmatter
|
|
190
|
+
*/
|
|
191
|
+
export function updateAgentScale(projectPath, agentName, scale) {
|
|
192
|
+
const agentDir = resolve(projectPath, "agents", agentName);
|
|
193
|
+
const skillPath = resolve(agentDir, "SKILL.md");
|
|
194
|
+
if (!existsSync(skillPath)) {
|
|
195
|
+
throw new ConfigError(`Agent config not found at ${skillPath}.`);
|
|
196
|
+
}
|
|
197
|
+
// Read current SKILL.md
|
|
198
|
+
const raw = readFileSync(skillPath, "utf-8");
|
|
199
|
+
const { data, body } = parseFrontmatter(raw);
|
|
200
|
+
// Update the scale in metadata
|
|
201
|
+
const metadata = (data.metadata ?? {});
|
|
202
|
+
metadata.scale = scale;
|
|
203
|
+
// Reconstruct the file with updated metadata
|
|
204
|
+
const updatedData = { ...data, metadata };
|
|
205
|
+
const yamlStr = Object.keys(updatedData).length > 0
|
|
206
|
+
? stringifyYAML(updatedData).trimEnd()
|
|
207
|
+
: "";
|
|
208
|
+
writeFileSync(skillPath, `---\n${yamlStr}\n---\n\n${body}`);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Get current project scale from config
|
|
212
|
+
*/
|
|
213
|
+
export function getProjectScale(projectPath) {
|
|
214
|
+
const config = loadGlobalConfig(projectPath);
|
|
215
|
+
return config.scale ?? 5; // Default project scale
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Get current agent scale from config
|
|
219
|
+
*/
|
|
220
|
+
export function getAgentScale(projectPath, agentName) {
|
|
221
|
+
const config = loadAgentConfig(projectPath, agentName);
|
|
222
|
+
return config.scale ?? 1; // Default agent scale
|
|
223
|
+
}
|
|
118
224
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;
|
|
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,
|
|
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,6 +3,8 @@ 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([
|
|
@@ -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)
|
|
@@ -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;
|
|
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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AgentConfig, GlobalConfig } from "./config.js";
|
|
2
|
+
/**
|
|
3
|
+
* Get the default feedback agent configuration
|
|
4
|
+
*/
|
|
5
|
+
export declare function getDefaultFeedbackAgent(globalConfig: GlobalConfig): AgentConfig;
|
|
6
|
+
/**
|
|
7
|
+
* Get the default feedback agent SKILL.md content
|
|
8
|
+
*/
|
|
9
|
+
export declare function getDefaultFeedbackAgentSkill(): string;
|
|
10
|
+
//# sourceMappingURL=default-feedback-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-feedback-agent.d.ts","sourceRoot":"","sources":["../../src/shared/default-feedback-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1E;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,YAAY,GAAG,WAAW,CAsB/E;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAqFrD"}
|