@kynetic-ai/spec 0.9.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/acp/client.d.ts +6 -1
- package/dist/acp/client.d.ts.map +1 -1
- package/dist/acp/client.js +7 -2
- package/dist/acp/client.js.map +1 -1
- package/dist/acp/framing.d.ts +12 -1
- package/dist/acp/framing.d.ts.map +1 -1
- package/dist/acp/framing.js +27 -4
- package/dist/acp/framing.js.map +1 -1
- package/dist/agent-runtime/dispatch.d.ts +292 -0
- package/dist/agent-runtime/dispatch.d.ts.map +1 -0
- package/dist/agent-runtime/dispatch.js +860 -0
- package/dist/agent-runtime/dispatch.js.map +1 -0
- package/dist/agent-runtime/index.d.ts +11 -0
- package/dist/agent-runtime/index.d.ts.map +1 -0
- package/dist/agent-runtime/index.js +11 -0
- package/dist/agent-runtime/index.js.map +1 -0
- package/dist/agent-runtime/invocation.d.ts +86 -0
- package/dist/agent-runtime/invocation.d.ts.map +1 -0
- package/dist/agent-runtime/invocation.js +442 -0
- package/dist/agent-runtime/invocation.js.map +1 -0
- package/dist/agent-runtime/prompts.d.ts +50 -0
- package/dist/agent-runtime/prompts.d.ts.map +1 -0
- package/dist/agent-runtime/prompts.js +108 -0
- package/dist/agent-runtime/prompts.js.map +1 -0
- package/dist/agents/spawner.d.ts.map +1 -1
- package/dist/agents/spawner.js +60 -4
- package/dist/agents/spawner.js.map +1 -1
- package/dist/cli/batch-exec.d.ts.map +1 -1
- package/dist/cli/batch-exec.js +140 -62
- package/dist/cli/batch-exec.js.map +1 -1
- package/dist/cli/batch-write-buffer.d.ts +141 -0
- package/dist/cli/batch-write-buffer.d.ts.map +1 -0
- package/dist/cli/batch-write-buffer.js +400 -0
- package/dist/cli/batch-write-buffer.js.map +1 -0
- package/dist/cli/commands/agent.d.ts +20 -0
- package/dist/cli/commands/agent.d.ts.map +1 -0
- package/dist/cli/commands/agent.js +831 -0
- package/dist/cli/commands/agent.js.map +1 -0
- package/dist/cli/commands/inbox.d.ts.map +1 -1
- package/dist/cli/commands/inbox.js +46 -22
- package/dist/cli/commands/inbox.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/item.d.ts.map +1 -1
- package/dist/cli/commands/item.js +22 -16
- package/dist/cli/commands/item.js.map +1 -1
- package/dist/cli/commands/log.js +1 -1
- package/dist/cli/commands/log.js.map +1 -1
- package/dist/cli/commands/meta.d.ts.map +1 -1
- package/dist/cli/commands/meta.js +168 -6
- package/dist/cli/commands/meta.js.map +1 -1
- package/dist/cli/commands/module.d.ts.map +1 -1
- package/dist/cli/commands/module.js +2 -1
- package/dist/cli/commands/module.js.map +1 -1
- package/dist/cli/commands/plan-import.js +19 -3
- package/dist/cli/commands/plan-import.js.map +1 -1
- package/dist/cli/commands/plan.d.ts.map +1 -1
- package/dist/cli/commands/plan.js +87 -43
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/ralph.d.ts +5 -56
- package/dist/cli/commands/ralph.d.ts.map +1 -1
- package/dist/cli/commands/ralph.js +52 -1502
- package/dist/cli/commands/ralph.js.map +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +22 -13
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +70 -11
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/session/checkpoint.d.ts.map +1 -1
- package/dist/cli/commands/session/checkpoint.js +7 -2
- package/dist/cli/commands/session/checkpoint.js.map +1 -1
- package/dist/cli/commands/session/commands.d.ts.map +1 -1
- package/dist/cli/commands/session/commands.js +15 -0
- package/dist/cli/commands/session/commands.js.map +1 -1
- package/dist/cli/commands/session/context.d.ts.map +1 -1
- package/dist/cli/commands/session/context.js +10 -5
- package/dist/cli/commands/session/context.js.map +1 -1
- package/dist/cli/commands/session/log.d.ts +1 -0
- package/dist/cli/commands/session/log.d.ts.map +1 -1
- package/dist/cli/commands/session/log.js +124 -8
- package/dist/cli/commands/session/log.js.map +1 -1
- package/dist/cli/commands/session/stale-close.d.ts +17 -0
- package/dist/cli/commands/session/stale-close.d.ts.map +1 -0
- package/dist/cli/commands/session/stale-close.js +378 -0
- package/dist/cli/commands/session/stale-close.js.map +1 -0
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +95 -0
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/skill-crud.d.ts.map +1 -1
- package/dist/cli/commands/skill-crud.js +4 -3
- package/dist/cli/commands/skill-crud.js.map +1 -1
- package/dist/cli/commands/skill-diff.d.ts.map +1 -1
- package/dist/cli/commands/skill-diff.js +15 -0
- package/dist/cli/commands/skill-diff.js.map +1 -1
- package/dist/cli/commands/skill-install.d.ts.map +1 -1
- package/dist/cli/commands/skill-install.js +50 -18
- package/dist/cli/commands/skill-install.js.map +1 -1
- package/dist/cli/commands/task.d.ts.map +1 -1
- package/dist/cli/commands/task.js +536 -310
- package/dist/cli/commands/task.js.map +1 -1
- package/dist/cli/commands/tasks.js +1 -1
- package/dist/cli/commands/tasks.js.map +1 -1
- package/dist/cli/commands/triage.d.ts.map +1 -1
- package/dist/cli/commands/triage.js +37 -13
- package/dist/cli/commands/triage.js.map +1 -1
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +65 -25
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/help/content.d.ts.map +1 -1
- package/dist/cli/help/content.js +5 -0
- package/dist/cli/help/content.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +5 -1
- package/dist/cli/output.js.map +1 -1
- package/dist/daemon/project-context.ts +22 -0
- package/dist/daemon/routes/agent-dispatch.ts +279 -0
- package/dist/daemon/routes/items.ts +22 -0
- package/dist/daemon/routes/meta.ts +141 -1
- package/dist/daemon/routes/plans.ts +147 -0
- package/dist/daemon/routes/sessions.ts +180 -0
- package/dist/daemon/routes/tasks.ts +198 -0
- package/dist/daemon/routes/validation.ts +1 -1
- package/dist/daemon/server.ts +77 -21
- package/dist/daemon/websocket/handler.ts +67 -6
- package/dist/daemon/websocket/lifecycle.ts +19 -0
- package/dist/daemon/websocket/pubsub.ts +74 -3
- package/dist/export/html.d.ts.map +1 -1
- package/dist/export/html.js +5 -2
- package/dist/export/html.js.map +1 -1
- package/dist/export/triage.d.ts +1 -1
- package/dist/export/triage.d.ts.map +1 -1
- package/dist/export/triage.js +5 -3
- package/dist/export/triage.js.map +1 -1
- package/dist/parser/alignment.d.ts.map +1 -1
- package/dist/parser/alignment.js +10 -5
- package/dist/parser/alignment.js.map +1 -1
- package/dist/parser/assess.js +1 -1
- package/dist/parser/assess.js.map +1 -1
- package/dist/parser/config.d.ts +6 -6
- package/dist/parser/meta.d.ts.map +1 -1
- package/dist/parser/meta.js +9 -8
- package/dist/parser/meta.js.map +1 -1
- package/dist/parser/plan-document.d.ts +12 -12
- package/dist/parser/plans.d.ts +7 -0
- package/dist/parser/plans.d.ts.map +1 -1
- package/dist/parser/plans.js +100 -15
- package/dist/parser/plans.js.map +1 -1
- package/dist/parser/refs.d.ts +5 -0
- package/dist/parser/refs.d.ts.map +1 -1
- package/dist/parser/refs.js +17 -12
- package/dist/parser/refs.js.map +1 -1
- package/dist/parser/shadow.d.ts +1 -1
- package/dist/parser/shadow.d.ts.map +1 -1
- package/dist/parser/shadow.js +71 -4
- package/dist/parser/shadow.js.map +1 -1
- package/dist/parser/skill-render.d.ts.map +1 -1
- package/dist/parser/skill-render.js +6 -3
- package/dist/parser/skill-render.js.map +1 -1
- package/dist/parser/validate.d.ts.map +1 -1
- package/dist/parser/validate.js +35 -76
- package/dist/parser/validate.js.map +1 -1
- package/dist/parser/yaml.d.ts +24 -5
- package/dist/parser/yaml.d.ts.map +1 -1
- package/dist/parser/yaml.js +224 -64
- package/dist/parser/yaml.js.map +1 -1
- package/dist/schema/meta.d.ts +457 -119
- package/dist/schema/meta.d.ts.map +1 -1
- package/dist/schema/meta.js +56 -0
- package/dist/schema/meta.js.map +1 -1
- package/dist/schema/plan.d.ts +22 -22
- package/dist/schema/spec.d.ts +39 -39
- package/dist/schema/task.d.ts +43 -32
- package/dist/schema/task.d.ts.map +1 -1
- package/dist/schema/task.js +5 -0
- package/dist/schema/task.js.map +1 -1
- package/dist/sessions/store.d.ts +126 -0
- package/dist/sessions/store.d.ts.map +1 -1
- package/dist/sessions/store.js +440 -22
- package/dist/sessions/store.js.map +1 -1
- package/dist/sessions/types.d.ts +75 -17
- package/dist/sessions/types.d.ts.map +1 -1
- package/dist/sessions/types.js +51 -1
- package/dist/sessions/types.js.map +1 -1
- package/dist/triage/actions.d.ts +1 -0
- package/dist/triage/actions.d.ts.map +1 -1
- package/dist/triage/actions.js +34 -7
- package/dist/triage/actions.js.map +1 -1
- package/dist/utils/commit.js +1 -1
- package/dist/utils/commit.js.map +1 -1
- package/dist/web-ui/_app/env.js +1 -0
- package/dist/web-ui/_app/immutable/assets/0.BJaYkGW2.css +1 -0
- package/dist/web-ui/_app/immutable/assets/9.SzGLxi4x.css +1 -0
- package/dist/web-ui/_app/immutable/assets/select-trigger.CV-KWLNP.css +1 -0
- package/dist/web-ui/_app/immutable/chunks/-lc0BifF.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/62JVKtnb.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/8RBjHMN1.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/B5LJFxqa.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/B5wTVqxm.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/B6VSmczZ.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/B8a0xDxR.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BEOQc37C.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BHtYorjv.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BJ0JX3ea.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BMuCqDX8.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BP352uRn.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BUZujXJ2.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BVA9Exy-.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BWET-efb.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BXkNecpt.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BYzrIfX8.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BkOJ8DkV.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BpuwufMc.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BwMO4RrG.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BysXJlZb.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/C076q4JN.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/C33JaVbg.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/CGtqifKp.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/CHDZZ7OG.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/CPPfDSei.js +5 -0
- package/dist/web-ui/_app/immutable/chunks/CUir3f4J.js +60 -0
- package/dist/web-ui/_app/immutable/chunks/Cncwi6fQ.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/CrCIbn0C.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/CwELQvbx.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/D3vxvonu.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/D6TVmR9T.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/D7LTux4W.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/D82RulSH.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/D9QNBZM2.js +2 -0
- package/dist/web-ui/_app/immutable/chunks/DAMmvwn4.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DAh4Wfku.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DAx07bEQ.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DBYE9jOd.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DOno4cA2.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DQA8NZIH.js +2 -0
- package/dist/web-ui/_app/immutable/chunks/DRfPm2bo.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DhQhksaB.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DjG7s6hm.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DjcCz-PU.js +2 -0
- package/dist/web-ui/_app/immutable/chunks/DkltRNvh.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DlaTnPKL.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DvA-KON-.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DxCk-KHc.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DzO4hlg9.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/Eo4gF7ih.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/ExCq5swK.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/T3zZGv51.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/XZumBYeP.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/_ySfNjkF.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/iEtR5cV6.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/k_Qegko0.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/pE6cYWlS.js +1 -0
- package/dist/web-ui/_app/immutable/entry/app.Cgu6uKeS.js +2 -0
- package/dist/web-ui/_app/immutable/entry/start.9XifnLoB.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/0.DISwcKSK.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/1.Cx2Ufqp1.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/10.C3z8ijXL.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/11.DZdIjZmM.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/12.FsIGfAOa.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/13.DZoFwagf.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/14.DaIzDKbQ.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/15.BYyt4XWF.js +2 -0
- package/dist/web-ui/_app/immutable/nodes/16.CQkSqpOe.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/2.Bkf_j2UJ.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/3.kaMCurJG.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/4.BSsFPTHG.js +2 -0
- package/dist/web-ui/_app/immutable/nodes/5.CpPlcCEZ.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/6.BN4FqQmY.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/7.9kBYIZik.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/8.BuijtZ6B.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/9.C-Weba8R.js +1 -0
- package/dist/web-ui/_app/version.json +1 -0
- package/dist/web-ui/index.html +39 -0
- package/dist/web-ui/robots.txt +3 -0
- package/package.json +4 -2
- package/plugin/.claude-plugin/marketplace.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/plugins/kspec/skills/task-work/SKILL.md +25 -2
- package/templates/agents-sections/06-ralph-loop.md +64 -11
- package/templates/skills/task-work/SKILL.md +25 -2
- package/dist/ralph/cli-renderer.d.ts +0 -27
- package/dist/ralph/cli-renderer.d.ts.map +0 -1
- package/dist/ralph/cli-renderer.js +0 -250
- package/dist/ralph/cli-renderer.js.map +0 -1
- package/dist/ralph/events.d.ts +0 -65
- package/dist/ralph/events.d.ts.map +0 -1
- package/dist/ralph/events.js +0 -600
- package/dist/ralph/events.js.map +0 -1
- package/dist/ralph/index.d.ts +0 -11
- package/dist/ralph/index.d.ts.map +0 -1
- package/dist/ralph/index.js +0 -16
- package/dist/ralph/index.js.map +0 -1
- package/dist/ralph/loop-errors.d.ts +0 -83
- package/dist/ralph/loop-errors.d.ts.map +0 -1
- package/dist/ralph/loop-errors.js +0 -150
- package/dist/ralph/loop-errors.js.map +0 -1
- package/dist/ralph/subagent.d.ts +0 -127
- package/dist/ralph/subagent.d.ts.map +0 -1
- package/dist/ralph/subagent.js +0 -268
- package/dist/ralph/subagent.js.map +0 -1
- package/dist/ralph/wrap-up.d.ts +0 -127
- package/dist/ralph/wrap-up.d.ts.map +0 -1
- package/dist/ralph/wrap-up.js +0 -271
- package/dist/ralph/wrap-up.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/sessions/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/sessions/store.ts"],"names":[],"mappings":"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"}
|
package/dist/sessions/store.js
CHANGED
|
@@ -17,6 +17,7 @@ import * as path from "node:path";
|
|
|
17
17
|
import { createHash, randomUUID } from "node:crypto";
|
|
18
18
|
import { parse as parseTOML, stringify as stringifyTOML } from "smol-toml";
|
|
19
19
|
import * as YAML from "yaml";
|
|
20
|
+
import { shadowAutoCommit } from "../parser/shadow.js";
|
|
20
21
|
import { SessionEventSchema, SessionMetadataSchema, TaskBudgetSchema, } from "./types.js";
|
|
21
22
|
// ─── Constants ───────────────────────────────────────────────────────────────
|
|
22
23
|
const SESSIONS_DIR = "sessions";
|
|
@@ -29,6 +30,7 @@ const BLOBS_DIR = "blobs";
|
|
|
29
30
|
const EVENT_LINE_MAX_BYTES = 256 * 1024;
|
|
30
31
|
const EVENT_FIELD_EXTERNALIZE_BYTES = 16 * 1024;
|
|
31
32
|
const EVENT_PREVIEW_MAX_BYTES = 512;
|
|
33
|
+
const EVENT_SEQ_TAIL_READ_BYTES = EVENT_LINE_MAX_BYTES + 1024;
|
|
32
34
|
// ─── Path Helpers ────────────────────────────────────────────────────────────
|
|
33
35
|
/**
|
|
34
36
|
* Get the sessions directory path within a spec directory.
|
|
@@ -90,10 +92,13 @@ export async function createSession(specDir, input) {
|
|
|
90
92
|
// Create session directory
|
|
91
93
|
await fsPromises.mkdir(sessionDir, { recursive: true });
|
|
92
94
|
// Build full metadata
|
|
95
|
+
// AC: @session-model-evolution ac-1 — include trigger and agent_id when provided
|
|
93
96
|
const metadata = {
|
|
94
97
|
id: input.id,
|
|
95
98
|
task_id: input.task_id,
|
|
96
99
|
agent_type: input.agent_type,
|
|
100
|
+
agent_id: input.agent_id,
|
|
101
|
+
trigger: input.trigger,
|
|
97
102
|
status: input.status ?? "active",
|
|
98
103
|
started_at: input.started_at ?? new Date().toISOString(),
|
|
99
104
|
ended_at: undefined,
|
|
@@ -120,7 +125,13 @@ export async function getSession(specDir, sessionId) {
|
|
|
120
125
|
try {
|
|
121
126
|
const content = await fsPromises.readFile(metadataPath, "utf-8");
|
|
122
127
|
const raw = YAML.parse(content);
|
|
123
|
-
|
|
128
|
+
const parsed = SessionMetadataSchema.parse(raw);
|
|
129
|
+
// AC: @session-model-evolution ac-2 — materialize defaults for legacy sessions
|
|
130
|
+
return {
|
|
131
|
+
...parsed,
|
|
132
|
+
trigger: parsed.trigger ?? "legacy",
|
|
133
|
+
agent_id: parsed.agent_id ?? parsed.agent_type,
|
|
134
|
+
};
|
|
124
135
|
}
|
|
125
136
|
catch {
|
|
126
137
|
return null;
|
|
@@ -174,6 +185,30 @@ export async function listSessions(specDir) {
|
|
|
174
185
|
return [];
|
|
175
186
|
}
|
|
176
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Count completed sessions grouped by agent_id.
|
|
190
|
+
*
|
|
191
|
+
* Reads only session metadata (not events.jsonl) for performance.
|
|
192
|
+
* A session counts as "completed" if its status is "completed".
|
|
193
|
+
*
|
|
194
|
+
* @param specDir - The .kspec directory path
|
|
195
|
+
* @returns Map of agent_id to completed session count
|
|
196
|
+
*/
|
|
197
|
+
export async function getCompletedSessionCountsByAgent(specDir) {
|
|
198
|
+
const sessionIds = await listSessions(specDir);
|
|
199
|
+
const counts = {};
|
|
200
|
+
// Read metadata in parallel for performance
|
|
201
|
+
const metadataResults = await Promise.all(sessionIds.map((id) => getSession(specDir, id)));
|
|
202
|
+
for (const metadata of metadataResults) {
|
|
203
|
+
if (!metadata)
|
|
204
|
+
continue;
|
|
205
|
+
if (metadata.status !== "completed")
|
|
206
|
+
continue;
|
|
207
|
+
const agentId = metadata.agent_id ?? metadata.agent_type;
|
|
208
|
+
counts[agentId] = (counts[agentId] || 0) + 1;
|
|
209
|
+
}
|
|
210
|
+
return counts;
|
|
211
|
+
}
|
|
177
212
|
/**
|
|
178
213
|
* Check if a session exists.
|
|
179
214
|
*/
|
|
@@ -443,22 +478,70 @@ export async function resolveSessionBlobPointers(specDir, sessionId, value) {
|
|
|
443
478
|
}
|
|
444
479
|
return value;
|
|
445
480
|
}
|
|
481
|
+
function extractLastEventSeq(content) {
|
|
482
|
+
const lines = content.split("\n");
|
|
483
|
+
for (let i = lines.length - 1; i >= 0; i -= 1) {
|
|
484
|
+
const line = lines[i].trim();
|
|
485
|
+
if (line.length === 0) {
|
|
486
|
+
continue;
|
|
487
|
+
}
|
|
488
|
+
try {
|
|
489
|
+
const parsed = JSON.parse(line);
|
|
490
|
+
if (isRecord(parsed) &&
|
|
491
|
+
typeof parsed.seq === "number" &&
|
|
492
|
+
Number.isInteger(parsed.seq) &&
|
|
493
|
+
parsed.seq >= 0) {
|
|
494
|
+
return parsed.seq;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
catch {
|
|
498
|
+
// Ignore malformed lines and continue scanning backward.
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
return null;
|
|
502
|
+
}
|
|
446
503
|
/**
|
|
447
|
-
* Get
|
|
504
|
+
* Get next sequence number from the last stored event.
|
|
448
505
|
*
|
|
449
|
-
*
|
|
450
|
-
*
|
|
451
|
-
* @returns Number of events in the session
|
|
506
|
+
* Reads a bounded tail slice for O(1) seq lookup; falls back to full scan only
|
|
507
|
+
* if the tail slice cannot be parsed (for example, partial line boundary).
|
|
452
508
|
*/
|
|
453
|
-
async function
|
|
509
|
+
async function getNextEventSeq(specDir, sessionId) {
|
|
454
510
|
const eventsPath = getSessionEventsPath(specDir, sessionId);
|
|
511
|
+
let fileHandle = null;
|
|
455
512
|
try {
|
|
456
|
-
|
|
457
|
-
const
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
513
|
+
fileHandle = await fsPromises.open(eventsPath, "r");
|
|
514
|
+
const stats = await fileHandle.stat();
|
|
515
|
+
if (stats.size === 0) {
|
|
516
|
+
return 0;
|
|
517
|
+
}
|
|
518
|
+
const readBytes = Math.min(stats.size, EVENT_SEQ_TAIL_READ_BYTES);
|
|
519
|
+
const startOffset = stats.size - readBytes;
|
|
520
|
+
const buffer = Buffer.alloc(readBytes);
|
|
521
|
+
await fileHandle.read(buffer, 0, readBytes, startOffset);
|
|
522
|
+
let tailContent = buffer.toString("utf-8");
|
|
523
|
+
if (startOffset > 0) {
|
|
524
|
+
// Drop potential partial first line from tail slice.
|
|
525
|
+
const firstNewline = tailContent.indexOf("\n");
|
|
526
|
+
tailContent = firstNewline === -1 ? "" : tailContent.slice(firstNewline + 1);
|
|
527
|
+
}
|
|
528
|
+
const tailSeq = extractLastEventSeq(tailContent);
|
|
529
|
+
if (tailSeq !== null) {
|
|
530
|
+
return tailSeq + 1;
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
catch (error) {
|
|
534
|
+
if (error.code === "ENOENT") {
|
|
535
|
+
return 0;
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
finally {
|
|
539
|
+
await fileHandle?.close().catch(() => undefined);
|
|
540
|
+
}
|
|
541
|
+
try {
|
|
542
|
+
const fullContent = await fsPromises.readFile(eventsPath, "utf-8");
|
|
543
|
+
const fullSeq = extractLastEventSeq(fullContent);
|
|
544
|
+
return fullSeq === null ? 0 : fullSeq + 1;
|
|
462
545
|
}
|
|
463
546
|
catch {
|
|
464
547
|
return 0;
|
|
@@ -487,8 +570,8 @@ export async function appendEvent(specDir, input) {
|
|
|
487
570
|
const eventsPath = getSessionEventsPath(specDir, input.session_id);
|
|
488
571
|
// Ensure session directory exists (lazy creation)
|
|
489
572
|
await fsPromises.mkdir(sessionDir, { recursive: true });
|
|
490
|
-
//
|
|
491
|
-
const seq = input.seq ?? (await
|
|
573
|
+
// Derive next sequence number from the last stored event.
|
|
574
|
+
const seq = input.seq ?? (await getNextEventSeq(specDir, input.session_id));
|
|
492
575
|
// Build full event
|
|
493
576
|
const event = {
|
|
494
577
|
ts: input.ts ?? Date.now(),
|
|
@@ -765,6 +848,321 @@ export async function getLastEvent(specDir, sessionId) {
|
|
|
765
848
|
}
|
|
766
849
|
return events[events.length - 1];
|
|
767
850
|
}
|
|
851
|
+
// ─── Stale Session Candidate Selection ──────────────────────────────────────
|
|
852
|
+
const RELATIVE_DURATION_PATTERN = /^(\d+)([hdwm])$/i;
|
|
853
|
+
const STALE_DEFAULTS = {
|
|
854
|
+
olderThan: "24h",
|
|
855
|
+
inactiveFor: "6h",
|
|
856
|
+
livenessGuard: "5m",
|
|
857
|
+
};
|
|
858
|
+
function durationGuidance(flag) {
|
|
859
|
+
return `--${flag} accepts relative durations only (h, d, w, m), for example 6h, 7d, 2w, 1m`;
|
|
860
|
+
}
|
|
861
|
+
function parseRelativeDurationMs(rawValue) {
|
|
862
|
+
const match = rawValue.match(RELATIVE_DURATION_PATTERN);
|
|
863
|
+
if (!match)
|
|
864
|
+
return null;
|
|
865
|
+
const amount = parseInt(match[1], 10);
|
|
866
|
+
const unit = match[2].toLowerCase();
|
|
867
|
+
if (Number.isNaN(amount))
|
|
868
|
+
return null;
|
|
869
|
+
switch (unit) {
|
|
870
|
+
case "h":
|
|
871
|
+
return amount * 60 * 60 * 1000;
|
|
872
|
+
case "d":
|
|
873
|
+
return amount * 24 * 60 * 60 * 1000;
|
|
874
|
+
case "w":
|
|
875
|
+
return amount * 7 * 24 * 60 * 60 * 1000;
|
|
876
|
+
case "m":
|
|
877
|
+
return amount * 60 * 1000;
|
|
878
|
+
default:
|
|
879
|
+
return null;
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
function parseCriteriaDuration(field, value) {
|
|
883
|
+
const parsed = parseRelativeDurationMs(value);
|
|
884
|
+
if (parsed !== null) {
|
|
885
|
+
return { ok: true, ms: parsed };
|
|
886
|
+
}
|
|
887
|
+
const parsedDate = new Date(value);
|
|
888
|
+
const appearsAbsolute = !Number.isNaN(parsedDate.getTime());
|
|
889
|
+
return {
|
|
890
|
+
ok: false,
|
|
891
|
+
field,
|
|
892
|
+
value,
|
|
893
|
+
message: appearsAbsolute
|
|
894
|
+
? `Invalid value for --${field}: "${value}" (absolute timestamps are not supported)`
|
|
895
|
+
: `Invalid value for --${field}: "${value}"`,
|
|
896
|
+
guidance: durationGuidance(field),
|
|
897
|
+
};
|
|
898
|
+
}
|
|
899
|
+
export function resolveStaleSessionCriteria(input) {
|
|
900
|
+
const olderThan = input.olderThan ?? STALE_DEFAULTS.olderThan;
|
|
901
|
+
const inactiveFor = input.inactiveFor ?? STALE_DEFAULTS.inactiveFor;
|
|
902
|
+
const livenessGuard = input.livenessGuard ?? STALE_DEFAULTS.livenessGuard;
|
|
903
|
+
const olderThanParsed = parseCriteriaDuration("older-than", olderThan);
|
|
904
|
+
if (!olderThanParsed.ok)
|
|
905
|
+
return olderThanParsed;
|
|
906
|
+
const olderThanMs = olderThanParsed.ms;
|
|
907
|
+
const inactiveForParsed = parseCriteriaDuration("inactive-for", inactiveFor);
|
|
908
|
+
if (!inactiveForParsed.ok)
|
|
909
|
+
return inactiveForParsed;
|
|
910
|
+
const inactiveForMs = inactiveForParsed.ms;
|
|
911
|
+
const livenessGuardParsed = parseCriteriaDuration("liveness-guard", livenessGuard);
|
|
912
|
+
if (!livenessGuardParsed.ok)
|
|
913
|
+
return livenessGuardParsed;
|
|
914
|
+
const livenessGuardMs = livenessGuardParsed.ms;
|
|
915
|
+
return {
|
|
916
|
+
ok: true,
|
|
917
|
+
criteria: {
|
|
918
|
+
olderThan,
|
|
919
|
+
olderThanMs,
|
|
920
|
+
inactiveFor,
|
|
921
|
+
inactiveForMs,
|
|
922
|
+
livenessGuard,
|
|
923
|
+
livenessGuardMs,
|
|
924
|
+
},
|
|
925
|
+
};
|
|
926
|
+
}
|
|
927
|
+
/**
|
|
928
|
+
* Resolve most recent activity timestamp for stale-session candidate checks.
|
|
929
|
+
*
|
|
930
|
+
* Unlike readEvents(), this is strict: corrupt events are surfaced as failures
|
|
931
|
+
* so stale auto-close can skip unsafe sessions.
|
|
932
|
+
*/
|
|
933
|
+
export async function getSessionActivityForStaleCheck(specDir, sessionId) {
|
|
934
|
+
const metadata = await getSession(specDir, sessionId);
|
|
935
|
+
if (!metadata) {
|
|
936
|
+
return {
|
|
937
|
+
ok: false,
|
|
938
|
+
reason: "invalid_started_at",
|
|
939
|
+
detail: `Session metadata missing or unreadable for ${sessionId}`,
|
|
940
|
+
};
|
|
941
|
+
}
|
|
942
|
+
const startedAtTs = new Date(metadata.started_at).getTime();
|
|
943
|
+
if (Number.isNaN(startedAtTs)) {
|
|
944
|
+
return {
|
|
945
|
+
ok: false,
|
|
946
|
+
reason: "invalid_started_at",
|
|
947
|
+
detail: `Session ${sessionId} has invalid started_at timestamp`,
|
|
948
|
+
};
|
|
949
|
+
}
|
|
950
|
+
const eventsPath = getSessionEventsPath(specDir, sessionId);
|
|
951
|
+
let content;
|
|
952
|
+
try {
|
|
953
|
+
content = await fsPromises.readFile(eventsPath, "utf-8");
|
|
954
|
+
}
|
|
955
|
+
catch (err) {
|
|
956
|
+
if (err instanceof Error && "code" in err && err.code === "ENOENT") {
|
|
957
|
+
return {
|
|
958
|
+
ok: true,
|
|
959
|
+
activity: {
|
|
960
|
+
lastActivityAt: metadata.started_at,
|
|
961
|
+
lastActivityTs: startedAtTs,
|
|
962
|
+
source: "started_at",
|
|
963
|
+
},
|
|
964
|
+
};
|
|
965
|
+
}
|
|
966
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
967
|
+
return {
|
|
968
|
+
ok: false,
|
|
969
|
+
reason: "events_unreadable",
|
|
970
|
+
detail: `Unable to read events.jsonl for ${sessionId}: ${message}`,
|
|
971
|
+
};
|
|
972
|
+
}
|
|
973
|
+
const lines = content
|
|
974
|
+
.split("\n")
|
|
975
|
+
.map((line) => line.trim())
|
|
976
|
+
.filter((line) => line.length > 0);
|
|
977
|
+
if (lines.length === 0) {
|
|
978
|
+
return {
|
|
979
|
+
ok: true,
|
|
980
|
+
activity: {
|
|
981
|
+
lastActivityAt: metadata.started_at,
|
|
982
|
+
lastActivityTs: startedAtTs,
|
|
983
|
+
source: "started_at",
|
|
984
|
+
},
|
|
985
|
+
};
|
|
986
|
+
}
|
|
987
|
+
let latestTs = null;
|
|
988
|
+
for (let i = 0; i < lines.length; i++) {
|
|
989
|
+
const line = lines[i];
|
|
990
|
+
try {
|
|
991
|
+
const parsed = JSON.parse(line);
|
|
992
|
+
const event = SessionEventSchema.parse(parsed);
|
|
993
|
+
if (latestTs === null || event.ts > latestTs) {
|
|
994
|
+
latestTs = event.ts;
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
catch {
|
|
998
|
+
return {
|
|
999
|
+
ok: false,
|
|
1000
|
+
reason: "events_corrupt",
|
|
1001
|
+
detail: `Corrupt events.jsonl for ${sessionId}: invalid line ${i + 1}`,
|
|
1002
|
+
};
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
if (latestTs === null) {
|
|
1006
|
+
return {
|
|
1007
|
+
ok: true,
|
|
1008
|
+
activity: {
|
|
1009
|
+
lastActivityAt: metadata.started_at,
|
|
1010
|
+
lastActivityTs: startedAtTs,
|
|
1011
|
+
source: "started_at",
|
|
1012
|
+
},
|
|
1013
|
+
};
|
|
1014
|
+
}
|
|
1015
|
+
return {
|
|
1016
|
+
ok: true,
|
|
1017
|
+
activity: {
|
|
1018
|
+
lastActivityAt: new Date(latestTs).toISOString(),
|
|
1019
|
+
lastActivityTs: latestTs,
|
|
1020
|
+
source: "event",
|
|
1021
|
+
},
|
|
1022
|
+
};
|
|
1023
|
+
}
|
|
1024
|
+
export function evaluateStaleSession(startedAt, activity, criteria, nowMs = Date.now()) {
|
|
1025
|
+
const startedAtMs = new Date(startedAt).getTime();
|
|
1026
|
+
const ageMs = nowMs - startedAtMs;
|
|
1027
|
+
const inactivityMs = nowMs - activity.lastActivityTs;
|
|
1028
|
+
const meetsAgeThreshold = ageMs >= criteria.olderThanMs;
|
|
1029
|
+
const meetsInactivityThreshold = inactivityMs >= criteria.inactiveForMs;
|
|
1030
|
+
const blockedByLivenessGuard = inactivityMs < criteria.livenessGuardMs;
|
|
1031
|
+
const eligible = meetsAgeThreshold &&
|
|
1032
|
+
meetsInactivityThreshold &&
|
|
1033
|
+
!blockedByLivenessGuard;
|
|
1034
|
+
return {
|
|
1035
|
+
startedAt,
|
|
1036
|
+
lastActivityAt: activity.lastActivityAt,
|
|
1037
|
+
lastActivitySource: activity.source,
|
|
1038
|
+
ageMs,
|
|
1039
|
+
inactivityMs,
|
|
1040
|
+
meetsAgeThreshold,
|
|
1041
|
+
meetsInactivityThreshold,
|
|
1042
|
+
blockedByLivenessGuard,
|
|
1043
|
+
eligible,
|
|
1044
|
+
};
|
|
1045
|
+
}
|
|
1046
|
+
export async function selectStaleActiveSessions(specDir, criteriaInput = {}, nowMs = Date.now()) {
|
|
1047
|
+
const criteriaResolved = resolveStaleSessionCriteria(criteriaInput);
|
|
1048
|
+
if (!criteriaResolved.ok) {
|
|
1049
|
+
throw new Error(`${criteriaResolved.message}. ${criteriaResolved.guidance}`);
|
|
1050
|
+
}
|
|
1051
|
+
const criteria = criteriaResolved.criteria;
|
|
1052
|
+
const sessionIds = await listSessions(specDir);
|
|
1053
|
+
const evaluations = [];
|
|
1054
|
+
const candidates = [];
|
|
1055
|
+
const skipped = [];
|
|
1056
|
+
for (const sessionId of sessionIds) {
|
|
1057
|
+
const metadata = await getSession(specDir, sessionId);
|
|
1058
|
+
if (!metadata || metadata.status !== "active")
|
|
1059
|
+
continue;
|
|
1060
|
+
const activityResult = await getSessionActivityForStaleCheck(specDir, sessionId);
|
|
1061
|
+
if (!activityResult.ok) {
|
|
1062
|
+
skipped.push({
|
|
1063
|
+
sessionId,
|
|
1064
|
+
reason: activityResult.reason,
|
|
1065
|
+
detail: activityResult.detail,
|
|
1066
|
+
});
|
|
1067
|
+
continue;
|
|
1068
|
+
}
|
|
1069
|
+
const evaluation = evaluateStaleSession(metadata.started_at, activityResult.activity, criteria, nowMs);
|
|
1070
|
+
const withSessionId = {
|
|
1071
|
+
sessionId,
|
|
1072
|
+
...evaluation,
|
|
1073
|
+
};
|
|
1074
|
+
evaluations.push(withSessionId);
|
|
1075
|
+
if (withSessionId.eligible) {
|
|
1076
|
+
candidates.push(withSessionId);
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
return {
|
|
1080
|
+
criteria,
|
|
1081
|
+
totalActiveSessions: evaluations.length + skipped.length,
|
|
1082
|
+
evaluations,
|
|
1083
|
+
candidates,
|
|
1084
|
+
skipped,
|
|
1085
|
+
skippedCount: skipped.length,
|
|
1086
|
+
failureCount: skipped.length,
|
|
1087
|
+
};
|
|
1088
|
+
}
|
|
1089
|
+
/**
|
|
1090
|
+
* Build canonical close_reason for stale auto-abandon updates.
|
|
1091
|
+
*
|
|
1092
|
+
* Canonical format:
|
|
1093
|
+
* auto-abandoned:older-than=<duration>,inactive-for=<duration>,liveness-guard=<duration>,last-activity=<iso>
|
|
1094
|
+
*/
|
|
1095
|
+
export function buildAutoAbandonedCloseReason(criteria, evaluation) {
|
|
1096
|
+
const segments = [
|
|
1097
|
+
`older-than=${criteria.olderThan}`,
|
|
1098
|
+
`inactive-for=${criteria.inactiveFor}`,
|
|
1099
|
+
`liveness-guard=${criteria.livenessGuard}`,
|
|
1100
|
+
`last-activity=${evaluation.lastActivityAt}`,
|
|
1101
|
+
];
|
|
1102
|
+
return `auto-abandoned:${segments.join(",")}`;
|
|
1103
|
+
}
|
|
1104
|
+
/**
|
|
1105
|
+
* Apply abandoned metadata to stale session candidates.
|
|
1106
|
+
*
|
|
1107
|
+
* All updates in a single invocation share one ended_at timestamp, which lets
|
|
1108
|
+
* the caller persist and commit the batch atomically with one shadow commit.
|
|
1109
|
+
*/
|
|
1110
|
+
export async function applyAutoAbandonMetadata(specDir, selection, options) {
|
|
1111
|
+
const dryRun = options?.dryRun === true;
|
|
1112
|
+
const endedAt = new Date(options?.nowMs ?? Date.now()).toISOString();
|
|
1113
|
+
const updates = [];
|
|
1114
|
+
for (const candidate of selection.candidates) {
|
|
1115
|
+
const closeReason = buildAutoAbandonedCloseReason(selection.criteria, candidate);
|
|
1116
|
+
updates.push({
|
|
1117
|
+
sessionId: candidate.sessionId,
|
|
1118
|
+
status: "abandoned",
|
|
1119
|
+
endedAt,
|
|
1120
|
+
closeReason,
|
|
1121
|
+
});
|
|
1122
|
+
if (dryRun)
|
|
1123
|
+
continue;
|
|
1124
|
+
const metadata = await getSession(specDir, candidate.sessionId);
|
|
1125
|
+
if (!metadata)
|
|
1126
|
+
continue;
|
|
1127
|
+
const updated = {
|
|
1128
|
+
...metadata,
|
|
1129
|
+
status: "abandoned",
|
|
1130
|
+
ended_at: endedAt,
|
|
1131
|
+
close_reason: closeReason,
|
|
1132
|
+
};
|
|
1133
|
+
const metadataPath = getSessionMetadataPath(specDir, candidate.sessionId);
|
|
1134
|
+
const content = YAML.stringify(updated, {
|
|
1135
|
+
indent: 2,
|
|
1136
|
+
lineWidth: 100,
|
|
1137
|
+
sortMapEntries: false,
|
|
1138
|
+
});
|
|
1139
|
+
await fsPromises.writeFile(metadataPath, content, "utf-8");
|
|
1140
|
+
}
|
|
1141
|
+
let shadowCommitted;
|
|
1142
|
+
if (!dryRun && updates.length > 0 && options?.shadowCommitMessage) {
|
|
1143
|
+
shadowCommitted = await shadowAutoCommit(specDir, options.shadowCommitMessage);
|
|
1144
|
+
}
|
|
1145
|
+
return {
|
|
1146
|
+
dryRun,
|
|
1147
|
+
updatedCount: updates.length,
|
|
1148
|
+
updates,
|
|
1149
|
+
shadowCommitted,
|
|
1150
|
+
};
|
|
1151
|
+
}
|
|
1152
|
+
// ─── Session Log Summaries ───────────────────────────────────────────────────
|
|
1153
|
+
/**
|
|
1154
|
+
* Determine session type from metadata for display.
|
|
1155
|
+
* - "invocation": New agent runtime session (has trigger != "legacy" or agent_id)
|
|
1156
|
+
* - "loop": Legacy ralph loop session (no trigger, or trigger === "legacy")
|
|
1157
|
+
*
|
|
1158
|
+
* AC: @session-model-evolution ac-6
|
|
1159
|
+
*/
|
|
1160
|
+
function resolveSessionType(metadata) {
|
|
1161
|
+
if (metadata.trigger && metadata.trigger !== "legacy") {
|
|
1162
|
+
return "invocation";
|
|
1163
|
+
}
|
|
1164
|
+
return "loop";
|
|
1165
|
+
}
|
|
768
1166
|
/**
|
|
769
1167
|
* Count lines in events.jsonl without parsing JSON.
|
|
770
1168
|
* Much faster than readEvents() for large files.
|
|
@@ -798,8 +1196,13 @@ async function countIterations(specDir, sessionId) {
|
|
|
798
1196
|
* Count task completions by scanning events for tool calls that invoke
|
|
799
1197
|
* `kspec task complete` or `npm run dev -- task complete`.
|
|
800
1198
|
*
|
|
801
|
-
*
|
|
802
|
-
*
|
|
1199
|
+
* Handles multiple adapter formats:
|
|
1200
|
+
* - claude-code-acp: rawInput.command is a string in tool_call_update events
|
|
1201
|
+
* - claude-agent-acp: rawInput.command is a string in tool_call_update events
|
|
1202
|
+
* (initial tool_call event has empty rawInput {})
|
|
1203
|
+
* - codex-acp: rawInput.command is an array ['/usr/bin/bash', '-lc', 'kspec task complete @ref']
|
|
1204
|
+
* in tool_call events; actual command is at index 2
|
|
1205
|
+
*
|
|
803
1206
|
* We use a fast substring check before JSON parsing for performance.
|
|
804
1207
|
*/
|
|
805
1208
|
async function countTaskCompletions(specDir, sessionId) {
|
|
@@ -814,12 +1217,15 @@ async function countTaskCompletions(specDir, sessionId) {
|
|
|
814
1217
|
// Quick substring pre-filter: only parse lines that might contain task complete commands
|
|
815
1218
|
if (!line.includes("task complete"))
|
|
816
1219
|
continue;
|
|
817
|
-
// Must be a tool_call event (session.update with sessionUpdate: "tool_call")
|
|
818
|
-
if (!line.includes('"tool_call"'))
|
|
819
|
-
continue;
|
|
820
1220
|
try {
|
|
821
1221
|
const event = JSON.parse(line);
|
|
822
|
-
const
|
|
1222
|
+
const rawCommand = event?.data?.update?.rawInput?.command;
|
|
1223
|
+
// Normalize: string (claude-*-acp) or array like [bash, -lc, cmd] (codex-acp)
|
|
1224
|
+
const command = typeof rawCommand === "string"
|
|
1225
|
+
? rawCommand
|
|
1226
|
+
: Array.isArray(rawCommand) && rawCommand.length > 0
|
|
1227
|
+
? rawCommand[rawCommand.length - 1]
|
|
1228
|
+
: undefined;
|
|
823
1229
|
if (typeof command === "string" && /\btask complete\b/.test(command)) {
|
|
824
1230
|
count++;
|
|
825
1231
|
}
|
|
@@ -861,6 +1267,9 @@ export async function getSessionLogSummary(specDir, sessionId) {
|
|
|
861
1267
|
id: metadata.id,
|
|
862
1268
|
status: metadata.status,
|
|
863
1269
|
agent_type: metadata.agent_type,
|
|
1270
|
+
session_type: resolveSessionType(metadata),
|
|
1271
|
+
trigger: metadata.trigger,
|
|
1272
|
+
task_id: metadata.task_id,
|
|
864
1273
|
started_at: metadata.started_at,
|
|
865
1274
|
ended_at: metadata.ended_at,
|
|
866
1275
|
duration_ms: durationMs,
|
|
@@ -1015,7 +1424,13 @@ function extractTaskTransitions(events) {
|
|
|
1015
1424
|
for (const event of events) {
|
|
1016
1425
|
if (event.type === "session.update") {
|
|
1017
1426
|
const data = event.data;
|
|
1018
|
-
const
|
|
1427
|
+
const rawCommand = data?.update?.rawInput?.command;
|
|
1428
|
+
// Normalize: string (claude-*-acp) or array like [bash, -lc, cmd] (codex-acp)
|
|
1429
|
+
const command = typeof rawCommand === "string"
|
|
1430
|
+
? rawCommand
|
|
1431
|
+
: Array.isArray(rawCommand) && rawCommand.length > 0
|
|
1432
|
+
? rawCommand[rawCommand.length - 1]
|
|
1433
|
+
: undefined;
|
|
1019
1434
|
if (typeof command === "string") {
|
|
1020
1435
|
if (/\btask start\b/.test(command)) {
|
|
1021
1436
|
const ref = extractTaskRef(command);
|
|
@@ -1194,6 +1609,7 @@ export async function getSessionLogDetail(specDir, sessionId) {
|
|
|
1194
1609
|
id: metadata.id,
|
|
1195
1610
|
status: metadata.status,
|
|
1196
1611
|
agent_type: metadata.agent_type,
|
|
1612
|
+
session_type: resolveSessionType(metadata),
|
|
1197
1613
|
task_id: metadata.task_id,
|
|
1198
1614
|
started_at: metadata.started_at,
|
|
1199
1615
|
ended_at: metadata.ended_at,
|
|
@@ -1232,6 +1648,8 @@ export function computeSessionLogStats(summaries) {
|
|
|
1232
1648
|
active: 0,
|
|
1233
1649
|
completed: 0,
|
|
1234
1650
|
abandoned: 0,
|
|
1651
|
+
timed_out: 0,
|
|
1652
|
+
failed: 0,
|
|
1235
1653
|
};
|
|
1236
1654
|
for (const s of summaries) {
|
|
1237
1655
|
totalEvents += s.event_count;
|
|
@@ -1243,7 +1661,7 @@ export function computeSessionLogStats(summaries) {
|
|
|
1243
1661
|
const n = summaries.length;
|
|
1244
1662
|
// Build status breakdown
|
|
1245
1663
|
const statusBreakdown = [];
|
|
1246
|
-
for (const status of ["completed", "active", "abandoned"]) {
|
|
1664
|
+
for (const status of ["completed", "active", "abandoned", "timed_out", "failed"]) {
|
|
1247
1665
|
const count = statusCounts[status] || 0;
|
|
1248
1666
|
if (count > 0) {
|
|
1249
1667
|
statusBreakdown.push({
|