@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.
Files changed (249) 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/feedback-monitor.d.ts +56 -0
  17. package/dist/agents/feedback-monitor.d.ts.map +1 -0
  18. package/dist/agents/feedback-monitor.js +176 -0
  19. package/dist/agents/feedback-monitor.js.map +1 -0
  20. package/dist/agents/feedback-runner.d.ts +28 -0
  21. package/dist/agents/feedback-runner.d.ts.map +1 -0
  22. package/dist/agents/feedback-runner.js +138 -0
  23. package/dist/agents/feedback-runner.js.map +1 -0
  24. package/dist/agents/model-fallback.d.ts +18 -0
  25. package/dist/agents/model-fallback.d.ts.map +1 -0
  26. package/dist/agents/model-fallback.js +40 -0
  27. package/dist/agents/model-fallback.js.map +1 -0
  28. package/dist/agents/prompt.d.ts +9 -2
  29. package/dist/agents/prompt.d.ts.map +1 -1
  30. package/dist/agents/prompt.js +21 -49
  31. package/dist/agents/prompt.js.map +1 -1
  32. package/dist/agents/runner.d.ts +6 -0
  33. package/dist/agents/runner.d.ts.map +1 -1
  34. package/dist/agents/runner.js +153 -124
  35. package/dist/agents/runner.js.map +1 -1
  36. package/dist/agents/session-factory.d.ts +13 -0
  37. package/dist/agents/session-factory.d.ts.map +1 -0
  38. package/dist/agents/session-factory.js +27 -0
  39. package/dist/agents/session-factory.js.map +1 -0
  40. package/dist/build-info.json +1 -1
  41. package/dist/cli/commands/agent.d.ts.map +1 -1
  42. package/dist/cli/commands/agent.js +89 -23
  43. package/dist/cli/commands/agent.js.map +1 -1
  44. package/dist/cli/commands/chat.d.ts.map +1 -1
  45. package/dist/cli/commands/chat.js +26 -43
  46. package/dist/cli/commands/chat.js.map +1 -1
  47. package/dist/cli/commands/claude.d.ts +4 -0
  48. package/dist/cli/commands/claude.d.ts.map +1 -0
  49. package/dist/cli/commands/claude.js +8 -0
  50. package/dist/cli/commands/claude.js.map +1 -0
  51. package/dist/cli/commands/doctor.d.ts.map +1 -1
  52. package/dist/cli/commands/doctor.js +24 -6
  53. package/dist/cli/commands/doctor.js.map +1 -1
  54. package/dist/cli/commands/mcp.d.ts +8 -0
  55. package/dist/cli/commands/mcp.d.ts.map +1 -0
  56. package/dist/cli/commands/mcp.js +31 -0
  57. package/dist/cli/commands/mcp.js.map +1 -0
  58. package/dist/cli/commands/new.d.ts.map +1 -1
  59. package/dist/cli/commands/new.js +15 -6
  60. package/dist/cli/commands/new.js.map +1 -1
  61. package/dist/cli/commands/run.js +1 -1
  62. package/dist/cli/commands/run.js.map +1 -1
  63. package/dist/cli/commands/start.js +3 -3
  64. package/dist/cli/commands/start.js.map +1 -1
  65. package/dist/cli/commands/stats.d.ts +9 -0
  66. package/dist/cli/commands/stats.d.ts.map +1 -0
  67. package/dist/cli/commands/stats.js +149 -0
  68. package/dist/cli/commands/stats.js.map +1 -0
  69. package/dist/cli/commands/status.d.ts.map +1 -1
  70. package/dist/cli/commands/status.js +3 -0
  71. package/dist/cli/commands/status.js.map +1 -1
  72. package/dist/cli/main.js +50 -3
  73. package/dist/cli/main.js.map +1 -1
  74. package/dist/gateway/index.d.ts +3 -0
  75. package/dist/gateway/index.d.ts.map +1 -1
  76. package/dist/gateway/index.js +7 -1
  77. package/dist/gateway/index.js.map +1 -1
  78. package/dist/gateway/lock-store.d.ts +10 -0
  79. package/dist/gateway/lock-store.d.ts.map +1 -1
  80. package/dist/gateway/lock-store.js +38 -0
  81. package/dist/gateway/lock-store.js.map +1 -1
  82. package/dist/gateway/routes/control.d.ts +2 -0
  83. package/dist/gateway/routes/control.d.ts.map +1 -1
  84. package/dist/gateway/routes/control.js +56 -0
  85. package/dist/gateway/routes/control.js.map +1 -1
  86. package/dist/gateway/routes/dashboard.d.ts +2 -1
  87. package/dist/gateway/routes/dashboard.d.ts.map +1 -1
  88. package/dist/gateway/routes/dashboard.js +112 -6
  89. package/dist/gateway/routes/dashboard.js.map +1 -1
  90. package/dist/gateway/routes/locks.d.ts.map +1 -1
  91. package/dist/gateway/routes/locks.js +39 -0
  92. package/dist/gateway/routes/locks.js.map +1 -1
  93. package/dist/gateway/routes/logs.d.ts.map +1 -1
  94. package/dist/gateway/routes/logs.js +4 -5
  95. package/dist/gateway/routes/logs.js.map +1 -1
  96. package/dist/gateway/routes/stats.d.ts +4 -0
  97. package/dist/gateway/routes/stats.d.ts.map +1 -0
  98. package/dist/gateway/routes/stats.js +25 -0
  99. package/dist/gateway/routes/stats.js.map +1 -0
  100. package/dist/gateway/views/agent-detail-page.d.ts +14 -0
  101. package/dist/gateway/views/agent-detail-page.d.ts.map +1 -0
  102. package/dist/gateway/views/agent-detail-page.js +416 -0
  103. package/dist/gateway/views/agent-detail-page.js.map +1 -0
  104. package/dist/gateway/views/dashboard-page.d.ts.map +1 -1
  105. package/dist/gateway/views/dashboard-page.js +213 -245
  106. package/dist/gateway/views/dashboard-page.js.map +1 -1
  107. package/dist/gateway/views/instance-detail-page.d.ts +30 -0
  108. package/dist/gateway/views/instance-detail-page.d.ts.map +1 -0
  109. package/dist/gateway/views/instance-detail-page.js +360 -0
  110. package/dist/gateway/views/instance-detail-page.js.map +1 -0
  111. package/dist/gateway/views/layout.d.ts +17 -0
  112. package/dist/gateway/views/layout.d.ts.map +1 -0
  113. package/dist/gateway/views/layout.js +153 -0
  114. package/dist/gateway/views/layout.js.map +1 -0
  115. package/dist/gateway/views/login-page.d.ts.map +1 -1
  116. package/dist/gateway/views/login-page.js +24 -37
  117. package/dist/gateway/views/login-page.js.map +1 -1
  118. package/dist/gateway/views/project-config-page.d.ts +12 -0
  119. package/dist/gateway/views/project-config-page.d.ts.map +1 -0
  120. package/dist/gateway/views/project-config-page.js +199 -0
  121. package/dist/gateway/views/project-config-page.js.map +1 -0
  122. package/dist/hooks/runner.d.ts +12 -0
  123. package/dist/hooks/runner.d.ts.map +1 -0
  124. package/dist/hooks/runner.js +32 -0
  125. package/dist/hooks/runner.js.map +1 -0
  126. package/dist/mcp/server.d.ts +5 -0
  127. package/dist/mcp/server.d.ts.map +1 -0
  128. package/dist/mcp/server.js +336 -0
  129. package/dist/mcp/server.js.map +1 -0
  130. package/dist/scheduler/call-dispatcher.d.ts +2 -2
  131. package/dist/scheduler/call-dispatcher.js +3 -3
  132. package/dist/scheduler/call-dispatcher.js.map +1 -1
  133. package/dist/scheduler/execution.d.ts +5 -2
  134. package/dist/scheduler/execution.d.ts.map +1 -1
  135. package/dist/scheduler/execution.js +75 -4
  136. package/dist/scheduler/execution.js.map +1 -1
  137. package/dist/scheduler/gateway-setup.d.ts +2 -0
  138. package/dist/scheduler/gateway-setup.d.ts.map +1 -1
  139. package/dist/scheduler/gateway-setup.js +21 -2
  140. package/dist/scheduler/gateway-setup.js.map +1 -1
  141. package/dist/scheduler/image-builder.js +3 -3
  142. package/dist/scheduler/image-builder.js.map +1 -1
  143. package/dist/scheduler/index.d.ts.map +1 -1
  144. package/dist/scheduler/index.js +90 -3
  145. package/dist/scheduler/index.js.map +1 -1
  146. package/dist/scheduler/shutdown.d.ts +2 -0
  147. package/dist/scheduler/shutdown.d.ts.map +1 -1
  148. package/dist/scheduler/shutdown.js +4 -1
  149. package/dist/scheduler/shutdown.js.map +1 -1
  150. package/dist/scheduler/validation.d.ts.map +1 -1
  151. package/dist/scheduler/validation.js +5 -3
  152. package/dist/scheduler/validation.js.map +1 -1
  153. package/dist/scheduler/watcher.d.ts +1 -1
  154. package/dist/scheduler/watcher.js +1 -1
  155. package/dist/scheduler/webhook-setup.d.ts +2 -0
  156. package/dist/scheduler/webhook-setup.d.ts.map +1 -1
  157. package/dist/scheduler/webhook-setup.js +2 -0
  158. package/dist/scheduler/webhook-setup.js.map +1 -1
  159. package/dist/setup/prompts.d.ts.map +1 -1
  160. package/dist/setup/prompts.js +35 -6
  161. package/dist/setup/prompts.js.map +1 -1
  162. package/dist/setup/scaffold.d.ts +6 -0
  163. package/dist/setup/scaffold.d.ts.map +1 -1
  164. package/dist/setup/scaffold.js +185 -7
  165. package/dist/setup/scaffold.js.map +1 -1
  166. package/dist/shared/config.d.ts +42 -5
  167. package/dist/shared/config.d.ts.map +1 -1
  168. package/dist/shared/config.js +126 -20
  169. package/dist/shared/config.js.map +1 -1
  170. package/dist/shared/credential-refs.d.ts.map +1 -1
  171. package/dist/shared/credential-refs.js +8 -0
  172. package/dist/shared/credential-refs.js.map +1 -1
  173. package/dist/shared/default-feedback-agent.d.ts +10 -0
  174. package/dist/shared/default-feedback-agent.d.ts.map +1 -0
  175. package/dist/shared/default-feedback-agent.js +114 -0
  176. package/dist/shared/default-feedback-agent.js.map +1 -0
  177. package/dist/shared/environment.d.ts +0 -1
  178. package/dist/shared/environment.d.ts.map +1 -1
  179. package/dist/shared/environment.js +19 -3
  180. package/dist/shared/environment.js.map +1 -1
  181. package/dist/shared/frontmatter.d.ts +11 -0
  182. package/dist/shared/frontmatter.d.ts.map +1 -0
  183. package/dist/shared/frontmatter.js +30 -0
  184. package/dist/shared/frontmatter.js.map +1 -0
  185. package/dist/shared/paths.d.ts +1 -0
  186. package/dist/shared/paths.d.ts.map +1 -1
  187. package/dist/shared/paths.js +3 -0
  188. package/dist/shared/paths.js.map +1 -1
  189. package/dist/shared/usage.d.ts.map +1 -1
  190. package/dist/shared/usage.js +52 -7
  191. package/dist/shared/usage.js.map +1 -1
  192. package/dist/stats/index.d.ts +3 -0
  193. package/dist/stats/index.d.ts.map +1 -0
  194. package/dist/stats/index.js +2 -0
  195. package/dist/stats/index.js.map +1 -0
  196. package/dist/stats/store.d.ts +89 -0
  197. package/dist/stats/store.d.ts.map +1 -0
  198. package/dist/stats/store.js +242 -0
  199. package/dist/stats/store.js.map +1 -0
  200. package/dist/tui/App.d.ts +2 -1
  201. package/dist/tui/App.d.ts.map +1 -1
  202. package/dist/tui/App.js +132 -5
  203. package/dist/tui/App.js.map +1 -1
  204. package/dist/tui/render.d.ts +1 -1
  205. package/dist/tui/render.d.ts.map +1 -1
  206. package/dist/tui/render.js +2 -2
  207. package/dist/tui/render.js.map +1 -1
  208. package/dist/tui/status-tracker.d.ts +18 -1
  209. package/dist/tui/status-tracker.d.ts.map +1 -1
  210. package/dist/tui/status-tracker.js +32 -1
  211. package/dist/tui/status-tracker.js.map +1 -1
  212. package/docker/bin/{al-call → al-subagent} +2 -2
  213. package/docker/bin/{al-check → al-subagent-check} +2 -2
  214. package/docker/bin/{al-wait → al-subagent-wait} +2 -2
  215. package/package.json +8 -21
  216. package/LICENSE +0 -21
  217. package/README.md +0 -192
  218. package/dist/gateway/views/logs-page.d.ts +0 -2
  219. package/dist/gateway/views/logs-page.d.ts.map +0 -1
  220. package/dist/gateway/views/logs-page.js +0 -280
  221. package/dist/gateway/views/logs-page.js.map +0 -1
  222. package/dist/preflight/interpolate.d.ts +0 -10
  223. package/dist/preflight/interpolate.d.ts.map +0 -1
  224. package/dist/preflight/interpolate.js +0 -33
  225. package/dist/preflight/interpolate.js.map +0 -1
  226. package/dist/preflight/providers/git-clone.d.ts +0 -3
  227. package/dist/preflight/providers/git-clone.d.ts.map +0 -1
  228. package/dist/preflight/providers/git-clone.js +0 -36
  229. package/dist/preflight/providers/git-clone.js.map +0 -1
  230. package/dist/preflight/providers/http.d.ts +0 -3
  231. package/dist/preflight/providers/http.d.ts.map +0 -1
  232. package/dist/preflight/providers/http.js +0 -36
  233. package/dist/preflight/providers/http.js.map +0 -1
  234. package/dist/preflight/providers/shell.d.ts +0 -3
  235. package/dist/preflight/providers/shell.d.ts.map +0 -1
  236. package/dist/preflight/providers/shell.js +0 -28
  237. package/dist/preflight/providers/shell.js.map +0 -1
  238. package/dist/preflight/registry.d.ts +0 -4
  239. package/dist/preflight/registry.d.ts.map +0 -1
  240. package/dist/preflight/registry.js +0 -20
  241. package/dist/preflight/registry.js.map +0 -1
  242. package/dist/preflight/runner.d.ts +0 -7
  243. package/dist/preflight/runner.d.ts.map +0 -1
  244. package/dist/preflight/runner.js +0 -28
  245. package/dist/preflight/runner.js.map +0 -1
  246. package/dist/preflight/schema.d.ts +0 -21
  247. package/dist/preflight/schema.d.ts.map +0 -1
  248. package/dist/preflight/schema.js +0 -9
  249. 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"}
@@ -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;
@@ -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,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,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,CAcjF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAKpE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAYrE;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"}
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
- existing = parseTOML(readFileSync(envPath, "utf-8"));
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
- return parseTOML(raw);
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
- const config = parseTOML(raw);
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":"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"}
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"}
@@ -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"}
@@ -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
@@ -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,CAU1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAUtE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,UAAU,CAU3C"}
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"}
@@ -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: stats.usage?.input ?? 0,
7
- outputTokens: stats.usage?.output ?? 0,
8
- cacheReadTokens: stats.usage?.cacheRead ?? 0,
9
- cacheWriteTokens: stats.usage?.cacheWrite ?? 0,
10
- totalTokens: stats.usage?.totalTokens ?? 0,
11
- cost: stats.usage?.cost?.total ?? 0,
12
- turnCount: stats.turnCount ?? 0,
51
+ inputTokens,
52
+ outputTokens,
53
+ cacheReadTokens,
54
+ cacheWriteTokens,
55
+ totalTokens,
56
+ cost,
57
+ turnCount,
13
58
  };
14
59
  }
15
60
  /**
@@ -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;QACL,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC;QACpC,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;QACtC,eAAe,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC;QAC5C,gBAAgB,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,IAAI,CAAC;QAC9C,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC;QAC1C,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;QACnC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC;KAChC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,CAAa,EAAE,CAAa;IACxD,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW;QAC1C,YAAY,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;QAC7C,eAAe,EAAE,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe;QACtD,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB;QACzD,WAAW,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW;QAC1C,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;QACrB,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;KACrC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,CAAC;QAClB,gBAAgB,EAAE,CAAC;QACnB,WAAW,EAAE,CAAC;QACd,IAAI,EAAE,CAAC;QACP,SAAS,EAAE,CAAC;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/shared/usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { StatsStore } from "./store.js";
2
+ export type { RunRecord, CallEdgeRecord, RunQuery, AgentSummary, CallEdgeSummary } from "./store.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export { StatsStore } from "./store.js";
2
+ //# sourceMappingURL=index.js.map
@@ -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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"}