@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
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the default feedback agent configuration
|
|
3
|
+
*/
|
|
4
|
+
export function getDefaultFeedbackAgent(globalConfig) {
|
|
5
|
+
// Use the first configured model from global config
|
|
6
|
+
const firstModelName = globalConfig.models ? Object.keys(globalConfig.models)[0] : undefined;
|
|
7
|
+
const firstModel = firstModelName ? globalConfig.models[firstModelName] : undefined;
|
|
8
|
+
if (!firstModel) {
|
|
9
|
+
throw new Error("No models configured in global config - cannot create default feedback agent");
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
name: "default-feedback",
|
|
13
|
+
description: "Built-in feedback agent that fixes SKILL.md syntax and formatting errors",
|
|
14
|
+
credentials: [], // Feedback agent uses same credentials as other agents
|
|
15
|
+
models: [firstModel], // Use the first configured model
|
|
16
|
+
// No schedule or webhooks - this agent is only triggered by feedback events
|
|
17
|
+
hooks: undefined,
|
|
18
|
+
params: {},
|
|
19
|
+
scale: 1, // Only one feedback agent should run at a time
|
|
20
|
+
timeout: 300, // 5 minute timeout for feedback tasks
|
|
21
|
+
license: "MIT",
|
|
22
|
+
compatibility: "action-llama>=0.1.0",
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get the default feedback agent SKILL.md content
|
|
27
|
+
*/
|
|
28
|
+
export function getDefaultFeedbackAgentSkill() {
|
|
29
|
+
return `---
|
|
30
|
+
metadata:
|
|
31
|
+
description: "Built-in feedback agent that fixes SKILL.md syntax and formatting errors"
|
|
32
|
+
license: "MIT"
|
|
33
|
+
compatibility: "action-llama>=0.1.0"
|
|
34
|
+
credentials: []
|
|
35
|
+
models: []
|
|
36
|
+
scale: 1
|
|
37
|
+
timeout: 300
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
# Default Feedback Agent
|
|
41
|
+
|
|
42
|
+
You are a specialized agent that analyzes and fixes SKILL.md files for other agents that encountered errors.
|
|
43
|
+
|
|
44
|
+
## Core Principles
|
|
45
|
+
|
|
46
|
+
**CRITICAL CONSTRAINTS - NEVER VIOLATE THESE:**
|
|
47
|
+
1. **PRESERVE INTENT**: Never change the original purpose or functionality of the agent
|
|
48
|
+
2. **MINIMAL CHANGES**: Only fix clear syntax errors, formatting issues, and obvious typos
|
|
49
|
+
3. **CONSERVATIVE APPROACH**: When in doubt, make no changes at all
|
|
50
|
+
4. **SYNTAX FOCUS**: Fix YAML frontmatter issues, markdown formatting problems, and obvious errors
|
|
51
|
+
|
|
52
|
+
## What You Can Fix
|
|
53
|
+
|
|
54
|
+
✅ **Safe to fix:**
|
|
55
|
+
- Invalid YAML syntax in frontmatter (missing quotes, incorrect indentation, etc.)
|
|
56
|
+
- Malformed markdown structure
|
|
57
|
+
- Obvious typos in configuration fields
|
|
58
|
+
- Missing required frontmatter fields
|
|
59
|
+
- Incorrect data types in configuration
|
|
60
|
+
- Broken markdown syntax that prevents parsing
|
|
61
|
+
|
|
62
|
+
❌ **NEVER change:**
|
|
63
|
+
- The agent's core purpose or mission
|
|
64
|
+
- Business logic or decision-making instructions
|
|
65
|
+
- Specific model choices or parameters (unless clearly wrong data type)
|
|
66
|
+
- Credential requirements
|
|
67
|
+
- Webhook or schedule configurations
|
|
68
|
+
- Custom tools or skills
|
|
69
|
+
- Agent behavior or personality
|
|
70
|
+
|
|
71
|
+
## Process
|
|
72
|
+
|
|
73
|
+
1. **Analyze the Error**: Understand what went wrong from the error message and log context
|
|
74
|
+
2. **Identify Root Cause**: Look for syntax/formatting issues that could cause the error
|
|
75
|
+
3. **Make Minimal Fix**: Apply the smallest possible change to resolve the issue
|
|
76
|
+
4. **Preserve Everything Else**: Ensure all functionality remains exactly the same
|
|
77
|
+
|
|
78
|
+
## Output Instructions
|
|
79
|
+
|
|
80
|
+
- If you identify issues to fix: Write the corrected SKILL.md to \`/tmp/fixed-skill.md\`
|
|
81
|
+
- If no changes are needed: Create an empty file at \`/tmp/no-changes\`
|
|
82
|
+
- Always err on the side of caution - no change is better than the wrong change
|
|
83
|
+
|
|
84
|
+
## Example Fixes
|
|
85
|
+
|
|
86
|
+
**YAML Formatting:**
|
|
87
|
+
\`\`\`yaml
|
|
88
|
+
# WRONG
|
|
89
|
+
models: [gpt-4o] # Missing quotes
|
|
90
|
+
|
|
91
|
+
# RIGHT
|
|
92
|
+
models: ["gpt-4o"]
|
|
93
|
+
\`\`\`
|
|
94
|
+
|
|
95
|
+
**Markdown Structure:**
|
|
96
|
+
\`\`\`markdown
|
|
97
|
+
# WRONG
|
|
98
|
+
## Section
|
|
99
|
+
Missing frontmatter separator
|
|
100
|
+
|
|
101
|
+
# RIGHT
|
|
102
|
+
---
|
|
103
|
+
metadata:
|
|
104
|
+
models: ["gpt-4o"]
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Section
|
|
108
|
+
Content here
|
|
109
|
+
\`\`\`
|
|
110
|
+
|
|
111
|
+
Remember: Your role is technical repair, not creative enhancement. Preserve the original agent's identity and purpose completely.
|
|
112
|
+
`;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=default-feedback-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-feedback-agent.js","sourceRoot":"","sources":["../../src/shared/default-feedback-agent.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,YAA0B;IAChE,oDAAoD;IACpD,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,MAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAErF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IAED,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE,EAAE,EAAE,uDAAuD;QACxE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,iCAAiC;QACvD,4EAA4E;QAC5E,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,CAAC,EAAE,+CAA+C;QACzD,OAAO,EAAE,GAAG,EAAE,sCAAsC;QACpD,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,qBAAqB;KACrC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFR,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/shared/environment.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/shared/environment.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,SAAS,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxJ;AAED,MAAM,WAAW,OAAO;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAqBjF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAYpE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAoBrE;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAKpB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAM3C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAIpF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAmBlG"}
|
|
@@ -11,7 +11,12 @@ export function writeEnvToml(projectPath, updates) {
|
|
|
11
11
|
const envPath = resolve(projectPath, ".env.toml");
|
|
12
12
|
let existing = {};
|
|
13
13
|
if (existsSync(envPath)) {
|
|
14
|
-
|
|
14
|
+
try {
|
|
15
|
+
existing = parseTOML(readFileSync(envPath, "utf-8"));
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
throw new ConfigError(`Error parsing ${envPath}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
19
|
+
}
|
|
15
20
|
}
|
|
16
21
|
for (const [key, value] of Object.entries(updates)) {
|
|
17
22
|
if (value === undefined) {
|
|
@@ -32,7 +37,12 @@ export function loadEnvToml(projectPath) {
|
|
|
32
37
|
if (!existsSync(envPath))
|
|
33
38
|
return undefined;
|
|
34
39
|
const raw = readFileSync(envPath, "utf-8");
|
|
35
|
-
|
|
40
|
+
try {
|
|
41
|
+
return parseTOML(raw);
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
throw new ConfigError(`Error parsing ${envPath}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
45
|
+
}
|
|
36
46
|
}
|
|
37
47
|
/**
|
|
38
48
|
* Load an environment config from ~/.action-llama/environments/<name>.toml.
|
|
@@ -45,7 +55,13 @@ export function loadEnvironmentConfig(name) {
|
|
|
45
55
|
`Run 'al env init ${name}' to create it, or 'al env list' to see available environments.`);
|
|
46
56
|
}
|
|
47
57
|
const raw = readFileSync(envPath, "utf-8");
|
|
48
|
-
|
|
58
|
+
let config;
|
|
59
|
+
try {
|
|
60
|
+
config = parseTOML(raw);
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
throw new ConfigError(`Error parsing ${envPath}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
64
|
+
}
|
|
49
65
|
return config;
|
|
50
66
|
}
|
|
51
67
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/shared/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAe1C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB,EAAE,OAAyB;IACzE,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/shared/environment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface FrontmatterResult {
|
|
2
|
+
data: Record<string, unknown>;
|
|
3
|
+
body: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Parse YAML frontmatter from a markdown string.
|
|
7
|
+
* Frontmatter is delimited by `---` at the start and end.
|
|
8
|
+
* Returns the parsed data and the remaining body.
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseFrontmatter(content: string): FrontmatterResult;
|
|
11
|
+
//# sourceMappingURL=frontmatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../src/shared/frontmatter.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CA4BnE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { parse as parseYAML } from "yaml";
|
|
2
|
+
/**
|
|
3
|
+
* Parse YAML frontmatter from a markdown string.
|
|
4
|
+
* Frontmatter is delimited by `---` at the start and end.
|
|
5
|
+
* Returns the parsed data and the remaining body.
|
|
6
|
+
*/
|
|
7
|
+
export function parseFrontmatter(content) {
|
|
8
|
+
const trimmed = content.trimStart();
|
|
9
|
+
if (!trimmed.startsWith("---")) {
|
|
10
|
+
return { data: {}, body: content };
|
|
11
|
+
}
|
|
12
|
+
const endIdx = trimmed.indexOf("\n---", 3);
|
|
13
|
+
if (endIdx === -1) {
|
|
14
|
+
return { data: {}, body: content };
|
|
15
|
+
}
|
|
16
|
+
const yamlBlock = trimmed.slice(4, endIdx);
|
|
17
|
+
const body = trimmed.slice(endIdx + 4).replace(/^\r?\n/, "");
|
|
18
|
+
let data;
|
|
19
|
+
try {
|
|
20
|
+
data = parseYAML(yamlBlock) ?? {};
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
throw new Error(`Failed to parse YAML frontmatter: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
24
|
+
}
|
|
25
|
+
if (typeof data !== "object" || Array.isArray(data)) {
|
|
26
|
+
return { data: {}, body: content };
|
|
27
|
+
}
|
|
28
|
+
return { data: data, body };
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=frontmatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../src/shared/frontmatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAO1C;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE7D,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,qCAAqC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACvF,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAA+B,EAAE,IAAI,EAAE,CAAC;AACzD,CAAC"}
|
package/dist/shared/paths.d.ts
CHANGED
|
@@ -7,4 +7,5 @@ export declare function projectDir(projectPath: string): string;
|
|
|
7
7
|
export declare function logsDir(projectPath: string): string;
|
|
8
8
|
export declare function eventsDir(projectPath: string): string;
|
|
9
9
|
export declare function agentDir(projectPath: string, agentType: string): string;
|
|
10
|
+
export declare function statsDbPath(projectPath: string): string;
|
|
10
11
|
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/shared/paths.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,QAA4B,CAAC;AACjD,eAAO,MAAM,WAAW,QAAsC,CAAC;AAC/D,eAAO,MAAM,eAAe,QAAsC,CAAC;AACnE,eAAO,MAAM,SAAS,QAAgC,CAAC;AACvD,eAAO,MAAM,gBAAgB,QAAuC,CAAC;AAErE,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvE"}
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/shared/paths.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,QAA4B,CAAC;AACjD,eAAO,MAAM,WAAW,QAAsC,CAAC;AAC/D,eAAO,MAAM,eAAe,QAAsC,CAAC;AACnE,eAAO,MAAM,SAAS,QAAgC,CAAC;AACvD,eAAO,MAAM,gBAAgB,QAAuC,CAAC;AAErE,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEvD"}
|
package/dist/shared/paths.js
CHANGED
|
@@ -17,4 +17,7 @@ export function eventsDir(projectPath) {
|
|
|
17
17
|
export function agentDir(projectPath, agentType) {
|
|
18
18
|
return resolve(projectPath, "agents", agentType);
|
|
19
19
|
}
|
|
20
|
+
export function statsDbPath(projectPath) {
|
|
21
|
+
return resolve(projectPath, ".al", "stats.db");
|
|
22
|
+
}
|
|
20
23
|
//# sourceMappingURL=paths.js.map
|
package/dist/shared/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/shared/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAErE,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,WAAmB;IACzC,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,WAAmB,EAAE,SAAiB;IAC7D,OAAO,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/shared/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAErE,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,WAAmB;IACzC,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,WAAmB,EAAE,SAAiB;IAC7D,OAAO,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAmB;IAC7C,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/shared/usage.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/shared/usage.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,UAAU,CAqE1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAUtE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,UAAU,CAU3C"}
|
package/dist/shared/usage.js
CHANGED
|
@@ -2,14 +2,59 @@
|
|
|
2
2
|
* Convert pi-ai SDK SessionStats to our TokenUsage format
|
|
3
3
|
*/
|
|
4
4
|
export function sessionStatsToUsage(stats) {
|
|
5
|
+
// Handle null/undefined stats
|
|
6
|
+
if (!stats) {
|
|
7
|
+
return zeroTokenUsage();
|
|
8
|
+
}
|
|
9
|
+
// Try multiple possible paths for input tokens
|
|
10
|
+
const inputTokens = stats.usage?.input ?? // Current working format (OpenAI)
|
|
11
|
+
stats.inputTokens ?? // Direct property
|
|
12
|
+
stats.metrics?.input_tokens ?? // Metrics object
|
|
13
|
+
stats.usageMetrics?.inputTokens ?? // Usage metrics object
|
|
14
|
+
stats.anthropic?.usage?.input_tokens ?? // Provider-specific format
|
|
15
|
+
0;
|
|
16
|
+
// Try multiple possible paths for output tokens
|
|
17
|
+
const outputTokens = stats.usage?.output ?? // Current working format (OpenAI)
|
|
18
|
+
stats.outputTokens ?? // Direct property
|
|
19
|
+
stats.metrics?.output_tokens ?? // Metrics object
|
|
20
|
+
stats.usageMetrics?.outputTokens ?? // Usage metrics object
|
|
21
|
+
stats.anthropic?.usage?.output_tokens ?? // Provider-specific format
|
|
22
|
+
0;
|
|
23
|
+
// Try multiple possible paths for cache read tokens
|
|
24
|
+
const cacheReadTokens = stats.usage?.cacheRead ?? // Current working format (OpenAI)
|
|
25
|
+
stats.cacheReadTokens ?? // Direct property
|
|
26
|
+
stats.metrics?.cache_read_tokens ?? // Metrics object
|
|
27
|
+
stats.usageMetrics?.cacheReadTokens ?? // Usage metrics object
|
|
28
|
+
stats.anthropic?.usage?.cache_read_input_tokens ?? // Anthropic cache format
|
|
29
|
+
0;
|
|
30
|
+
// Try multiple possible paths for cache write tokens
|
|
31
|
+
const cacheWriteTokens = stats.usage?.cacheWrite ?? // Current working format (OpenAI)
|
|
32
|
+
stats.cacheWriteTokens ?? // Direct property
|
|
33
|
+
stats.metrics?.cache_write_tokens ?? // Metrics object
|
|
34
|
+
stats.usageMetrics?.cacheWriteTokens ?? // Usage metrics object
|
|
35
|
+
stats.anthropic?.usage?.cache_creation_input_tokens ?? // Anthropic cache format
|
|
36
|
+
0;
|
|
37
|
+
// Calculate total tokens if not provided
|
|
38
|
+
const totalTokens = stats.usage?.totalTokens ?? // Provided total
|
|
39
|
+
stats.totalTokens ?? // Direct property
|
|
40
|
+
stats.metrics?.total_tokens ?? // Metrics object
|
|
41
|
+
inputTokens + outputTokens; // Fallback calculation
|
|
42
|
+
// Try multiple possible paths for cost
|
|
43
|
+
const cost = stats.usage?.cost?.total ?? // Current working format
|
|
44
|
+
stats.cost ?? // Direct property
|
|
45
|
+
stats.metrics?.cost ?? // Metrics object
|
|
46
|
+
stats.usageMetrics?.cost ?? // Usage metrics object
|
|
47
|
+
0;
|
|
48
|
+
// Turn count should be consistent across providers
|
|
49
|
+
const turnCount = stats.turnCount ?? 0;
|
|
5
50
|
return {
|
|
6
|
-
inputTokens
|
|
7
|
-
outputTokens
|
|
8
|
-
cacheReadTokens
|
|
9
|
-
cacheWriteTokens
|
|
10
|
-
totalTokens
|
|
11
|
-
cost
|
|
12
|
-
turnCount
|
|
51
|
+
inputTokens,
|
|
52
|
+
outputTokens,
|
|
53
|
+
cacheReadTokens,
|
|
54
|
+
cacheWriteTokens,
|
|
55
|
+
totalTokens,
|
|
56
|
+
cost,
|
|
57
|
+
turnCount,
|
|
13
58
|
};
|
|
14
59
|
}
|
|
15
60
|
/**
|
package/dist/shared/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/shared/usage.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC5C,OAAO;
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/shared/usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stats/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stats/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export interface RunRecord {
|
|
2
|
+
instanceId: string;
|
|
3
|
+
agentName: string;
|
|
4
|
+
triggerType: string;
|
|
5
|
+
triggerSource?: string;
|
|
6
|
+
result: string;
|
|
7
|
+
exitCode?: number;
|
|
8
|
+
startedAt: number;
|
|
9
|
+
durationMs: number;
|
|
10
|
+
inputTokens?: number;
|
|
11
|
+
outputTokens?: number;
|
|
12
|
+
cacheReadTokens?: number;
|
|
13
|
+
cacheWriteTokens?: number;
|
|
14
|
+
totalTokens?: number;
|
|
15
|
+
costUsd?: number;
|
|
16
|
+
turnCount?: number;
|
|
17
|
+
errorMessage?: string;
|
|
18
|
+
preHookMs?: number;
|
|
19
|
+
postHookMs?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface CallEdgeRecord {
|
|
22
|
+
callerAgent: string;
|
|
23
|
+
callerInstance: string;
|
|
24
|
+
targetAgent: string;
|
|
25
|
+
targetInstance?: string;
|
|
26
|
+
depth: number;
|
|
27
|
+
startedAt: number;
|
|
28
|
+
durationMs?: number;
|
|
29
|
+
status?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface RunQuery {
|
|
32
|
+
agent?: string;
|
|
33
|
+
since?: number;
|
|
34
|
+
limit?: number;
|
|
35
|
+
}
|
|
36
|
+
export interface AgentSummary {
|
|
37
|
+
agentName: string;
|
|
38
|
+
totalRuns: number;
|
|
39
|
+
okRuns: number;
|
|
40
|
+
errorRuns: number;
|
|
41
|
+
avgDurationMs: number;
|
|
42
|
+
totalTokens: number;
|
|
43
|
+
totalCost: number;
|
|
44
|
+
avgPreHookMs: number | null;
|
|
45
|
+
avgPostHookMs: number | null;
|
|
46
|
+
}
|
|
47
|
+
export interface CallEdgeSummary {
|
|
48
|
+
callerAgent: string;
|
|
49
|
+
targetAgent: string;
|
|
50
|
+
count: number;
|
|
51
|
+
avgDepth: number;
|
|
52
|
+
avgDurationMs: number | null;
|
|
53
|
+
}
|
|
54
|
+
export declare class StatsStore {
|
|
55
|
+
private db;
|
|
56
|
+
private stmts;
|
|
57
|
+
constructor(dbPath: string);
|
|
58
|
+
recordRun(run: RunRecord): void;
|
|
59
|
+
recordCallEdge(edge: CallEdgeRecord): number;
|
|
60
|
+
updateCallEdge(id: number, updates: {
|
|
61
|
+
durationMs?: number;
|
|
62
|
+
status?: string;
|
|
63
|
+
targetInstance?: string;
|
|
64
|
+
}): void;
|
|
65
|
+
queryRunsByAgentPaginated(agent: string, limit: number, offset: number): any[];
|
|
66
|
+
countRunsByAgent(agent: string): number;
|
|
67
|
+
queryRunByInstanceId(instanceId: string): any | undefined;
|
|
68
|
+
queryRuns(query?: RunQuery): any[];
|
|
69
|
+
queryAgentSummary(query?: {
|
|
70
|
+
agent?: string;
|
|
71
|
+
since?: number;
|
|
72
|
+
}): AgentSummary[];
|
|
73
|
+
queryGlobalSummary(since?: number): {
|
|
74
|
+
totalRuns: number;
|
|
75
|
+
okRuns: number;
|
|
76
|
+
errorRuns: number;
|
|
77
|
+
totalTokens: number;
|
|
78
|
+
totalCost: number;
|
|
79
|
+
};
|
|
80
|
+
queryCallGraph(query?: {
|
|
81
|
+
since?: number;
|
|
82
|
+
}): CallEdgeSummary[];
|
|
83
|
+
prune(olderThanDays: number): {
|
|
84
|
+
runs: number;
|
|
85
|
+
callEdges: number;
|
|
86
|
+
};
|
|
87
|
+
close(): void;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/stats/store.ts"],"names":[],"mappings":"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"}
|