@kynetic-ai/spec 0.11.0 → 0.12.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 +55 -455
- package/dist/agent-runtime/bootstrap.d.ts +31 -0
- package/dist/agent-runtime/bootstrap.d.ts.map +1 -0
- package/dist/agent-runtime/bootstrap.js +302 -0
- package/dist/agent-runtime/bootstrap.js.map +1 -0
- package/dist/agent-runtime/dispatch.d.ts +119 -10
- package/dist/agent-runtime/dispatch.d.ts.map +1 -1
- package/dist/agent-runtime/dispatch.js +1154 -219
- package/dist/agent-runtime/dispatch.js.map +1 -1
- package/dist/agent-runtime/invocation.d.ts +28 -1
- package/dist/agent-runtime/invocation.d.ts.map +1 -1
- package/dist/agent-runtime/invocation.js +171 -59
- package/dist/agent-runtime/invocation.js.map +1 -1
- package/dist/agent-runtime/prompts.d.ts +9 -0
- package/dist/agent-runtime/prompts.d.ts.map +1 -1
- package/dist/agent-runtime/prompts.js +42 -7
- package/dist/agent-runtime/prompts.js.map +1 -1
- package/dist/agent-runtime/session-event-accumulator.d.ts +83 -0
- package/dist/agent-runtime/session-event-accumulator.d.ts.map +1 -0
- package/dist/agent-runtime/session-event-accumulator.js +203 -0
- package/dist/agent-runtime/session-event-accumulator.js.map +1 -0
- package/dist/agent-runtime/session-event-types.d.ts +67 -0
- package/dist/agent-runtime/session-event-types.d.ts.map +1 -0
- package/dist/agent-runtime/session-event-types.js +13 -0
- package/dist/agent-runtime/session-event-types.js.map +1 -0
- package/dist/agent-runtime/workspace.d.ts +244 -0
- package/dist/agent-runtime/workspace.d.ts.map +1 -0
- package/dist/agent-runtime/workspace.js +2025 -0
- package/dist/agent-runtime/workspace.js.map +1 -0
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/adapters.js +58 -13
- package/dist/agents/adapters.js.map +1 -1
- package/dist/agents/spawner.d.ts +8 -0
- package/dist/agents/spawner.d.ts.map +1 -1
- package/dist/agents/spawner.js +25 -3
- package/dist/agents/spawner.js.map +1 -1
- package/dist/cli/batch-exec.js +1 -1
- package/dist/cli/batch-exec.js.map +1 -1
- package/dist/cli/command-annotations.d.ts +15 -3
- package/dist/cli/command-annotations.d.ts.map +1 -1
- package/dist/cli/command-annotations.js +23 -3
- package/dist/cli/command-annotations.js.map +1 -1
- package/dist/cli/commands/agent.d.ts +2 -0
- package/dist/cli/commands/agent.d.ts.map +1 -1
- package/dist/cli/commands/agent.js +144 -27
- package/dist/cli/commands/agent.js.map +1 -1
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +5 -5
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/derive.d.ts.map +1 -1
- package/dist/cli/commands/derive.js +118 -3
- package/dist/cli/commands/derive.js.map +1 -1
- package/dist/cli/commands/guard.d.ts.map +1 -1
- package/dist/cli/commands/guard.js +8 -6
- package/dist/cli/commands/guard.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/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +20 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/item.d.ts.map +1 -1
- package/dist/cli/commands/item.js +205 -47
- package/dist/cli/commands/item.js.map +1 -1
- package/dist/cli/commands/log.d.ts.map +1 -1
- package/dist/cli/commands/log.js +24 -10
- package/dist/cli/commands/log.js.map +1 -1
- package/dist/cli/commands/plan-import.d.ts +3 -3
- package/dist/cli/commands/plan-import.d.ts.map +1 -1
- package/dist/cli/commands/plan-import.js +213 -528
- 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 +533 -83
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/review.d.ts +14 -0
- package/dist/cli/commands/review.d.ts.map +1 -0
- package/dist/cli/commands/review.js +1142 -0
- package/dist/cli/commands/review.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +1 -0
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/serve.js +33 -10
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/session/checkpoint.d.ts +2 -4
- package/dist/cli/commands/session/checkpoint.d.ts.map +1 -1
- package/dist/cli/commands/session/checkpoint.js +6 -107
- 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 +33 -23
- package/dist/cli/commands/session/commands.js.map +1 -1
- package/dist/cli/commands/session/compact.js +4 -4
- package/dist/cli/commands/session/compact.js.map +1 -1
- package/dist/cli/commands/session/create.js +2 -2
- package/dist/cli/commands/session/create.js.map +1 -1
- package/dist/cli/commands/session/format.d.ts.map +1 -1
- package/dist/cli/commands/session/format.js +1 -6
- package/dist/cli/commands/session/format.js.map +1 -1
- package/dist/cli/commands/session/log.d.ts +32 -7
- package/dist/cli/commands/session/log.d.ts.map +1 -1
- package/dist/cli/commands/session/log.js +166 -60
- package/dist/cli/commands/session/log.js.map +1 -1
- package/dist/cli/commands/session/migrate.d.ts +9 -0
- package/dist/cli/commands/session/migrate.d.ts.map +1 -0
- package/dist/cli/commands/session/migrate.js +46 -0
- package/dist/cli/commands/session/migrate.js.map +1 -0
- package/dist/cli/commands/session/stale-close.d.ts.map +1 -1
- package/dist/cli/commands/session/stale-close.js +5 -8
- package/dist/cli/commands/session/stale-close.js.map +1 -1
- package/dist/cli/commands/session/types.d.ts +1 -1
- package/dist/cli/commands/session/types.d.ts.map +1 -1
- package/dist/cli/commands/setup.d.ts +2 -2
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +287 -257
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/shadow.d.ts.map +1 -1
- package/dist/cli/commands/shadow.js +147 -31
- package/dist/cli/commands/shadow.js.map +1 -1
- package/dist/cli/commands/skill-crud.d.ts +7 -0
- package/dist/cli/commands/skill-crud.d.ts.map +1 -1
- package/dist/cli/commands/skill-crud.js +41 -18
- 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 +29 -3
- 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 +5 -4
- 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 +359 -49
- package/dist/cli/commands/task.js.map +1 -1
- package/dist/cli/commands/trait.d.ts.map +1 -1
- package/dist/cli/commands/trait.js +5 -27
- package/dist/cli/commands/trait.js.map +1 -1
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +113 -52
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +69 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +26 -0
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +108 -1
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/sync-mode.d.ts +44 -0
- package/dist/cli/sync-mode.d.ts.map +1 -0
- package/dist/cli/sync-mode.js +64 -0
- package/dist/cli/sync-mode.js.map +1 -0
- package/dist/daemon/middleware/project-context.ts +25 -7
- package/dist/daemon/project-context.ts +18 -0
- package/dist/daemon/routes/agent-dispatch.ts +99 -22
- package/dist/daemon/routes/aggregation.ts +184 -0
- package/dist/daemon/routes/inbox.ts +5 -0
- package/dist/daemon/routes/items.ts +145 -0
- package/dist/daemon/routes/meta.ts +1 -1
- package/dist/daemon/routes/projects.ts +28 -6
- package/dist/daemon/routes/ref-resolution.ts +119 -0
- package/dist/daemon/routes/refs.ts +42 -0
- package/dist/daemon/routes/session-related.ts +140 -0
- package/dist/daemon/routes/sessions.ts +420 -19
- package/dist/daemon/routes/tasks.ts +62 -5
- package/dist/daemon/routes/triage.ts +40 -1
- package/dist/daemon/server.ts +143 -49
- package/dist/daemon/session-sync.ts +11 -0
- package/dist/daemon/shadow-sync.ts +11 -0
- package/dist/daemon/watcher.ts +56 -5
- package/dist/daemon/websocket/project-resolution.ts +77 -0
- package/dist/export/json.d.ts.map +1 -1
- package/dist/export/json.js +104 -1
- package/dist/export/json.js.map +1 -1
- package/dist/export/types.d.ts +52 -1
- package/dist/export/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/parser/agent-detection.d.ts +1 -1
- package/dist/parser/agent-detection.d.ts.map +1 -1
- package/dist/parser/agent-detection.js +10 -0
- package/dist/parser/agent-detection.js.map +1 -1
- package/dist/parser/config.d.ts +397 -2
- package/dist/parser/config.d.ts.map +1 -1
- package/dist/parser/config.js +125 -3
- package/dist/parser/config.js.map +1 -1
- package/dist/parser/dispatch-workspaces.d.ts +18 -0
- package/dist/parser/dispatch-workspaces.d.ts.map +1 -0
- package/dist/parser/dispatch-workspaces.js +209 -0
- package/dist/parser/dispatch-workspaces.js.map +1 -0
- package/dist/parser/doctor.d.ts.map +1 -1
- package/dist/parser/doctor.js +27 -8
- package/dist/parser/doctor.js.map +1 -1
- package/dist/parser/file-lock.d.ts.map +1 -1
- package/dist/parser/file-lock.js +9 -2
- package/dist/parser/file-lock.js.map +1 -1
- package/dist/parser/index.d.ts +6 -0
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +6 -0
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/plans.d.ts.map +1 -1
- package/dist/parser/plans.js +1 -0
- package/dist/parser/plans.js.map +1 -1
- package/dist/parser/refs.d.ts +8 -1
- package/dist/parser/refs.d.ts.map +1 -1
- package/dist/parser/refs.js +27 -1
- package/dist/parser/refs.js.map +1 -1
- package/dist/parser/review-operations.d.ts +72 -0
- package/dist/parser/review-operations.d.ts.map +1 -0
- package/dist/parser/review-operations.js +185 -0
- package/dist/parser/review-operations.js.map +1 -0
- package/dist/parser/review-task-integration.d.ts +78 -0
- package/dist/parser/review-task-integration.d.ts.map +1 -0
- package/dist/parser/review-task-integration.js +173 -0
- package/dist/parser/review-task-integration.js.map +1 -0
- package/dist/parser/review-threads.d.ts +101 -0
- package/dist/parser/review-threads.d.ts.map +1 -0
- package/dist/parser/review-threads.js +222 -0
- package/dist/parser/review-threads.js.map +1 -0
- package/dist/parser/review-validation.d.ts +69 -0
- package/dist/parser/review-validation.d.ts.map +1 -0
- package/dist/parser/review-validation.js +207 -0
- package/dist/parser/review-validation.js.map +1 -0
- package/dist/parser/reviews.d.ts +58 -0
- package/dist/parser/reviews.d.ts.map +1 -0
- package/dist/parser/reviews.js +230 -0
- package/dist/parser/reviews.js.map +1 -0
- package/dist/parser/session-branch.d.ts +91 -0
- package/dist/parser/session-branch.d.ts.map +1 -0
- package/dist/parser/session-branch.js +565 -0
- package/dist/parser/session-branch.js.map +1 -0
- package/dist/parser/session-sync-scheduler.d.ts +53 -0
- package/dist/parser/session-sync-scheduler.d.ts.map +1 -0
- package/dist/parser/session-sync-scheduler.js +100 -0
- package/dist/parser/session-sync-scheduler.js.map +1 -0
- package/dist/parser/setup-status.d.ts +7 -1
- package/dist/parser/setup-status.d.ts.map +1 -1
- package/dist/parser/setup-status.js +104 -39
- package/dist/parser/setup-status.js.map +1 -1
- package/dist/parser/shadow-sync-scheduler.d.ts +71 -0
- package/dist/parser/shadow-sync-scheduler.d.ts.map +1 -0
- package/dist/parser/shadow-sync-scheduler.js +139 -0
- package/dist/parser/shadow-sync-scheduler.js.map +1 -0
- package/dist/parser/shadow.d.ts +121 -14
- package/dist/parser/shadow.d.ts.map +1 -1
- package/dist/parser/shadow.js +752 -27
- package/dist/parser/shadow.js.map +1 -1
- package/dist/parser/skill-render.d.ts +24 -0
- package/dist/parser/skill-render.d.ts.map +1 -1
- package/dist/parser/skill-render.js +98 -26
- package/dist/parser/skill-render.js.map +1 -1
- package/dist/parser/validate.d.ts +43 -3
- package/dist/parser/validate.d.ts.map +1 -1
- package/dist/parser/validate.js +204 -30
- package/dist/parser/validate.js.map +1 -1
- package/dist/parser/yaml.d.ts +47 -11
- package/dist/parser/yaml.d.ts.map +1 -1
- package/dist/parser/yaml.js +329 -149
- package/dist/parser/yaml.js.map +1 -1
- package/dist/review/checks.d.ts +97 -0
- package/dist/review/checks.d.ts.map +1 -0
- package/dist/review/checks.js +175 -0
- package/dist/review/checks.js.map +1 -0
- package/dist/review/index.d.ts +3 -0
- package/dist/review/index.d.ts.map +1 -0
- package/dist/review/index.js +3 -0
- package/dist/review/index.js.map +1 -0
- package/dist/review/subject-bindings.d.ts +83 -0
- package/dist/review/subject-bindings.d.ts.map +1 -0
- package/dist/review/subject-bindings.js +175 -0
- package/dist/review/subject-bindings.js.map +1 -0
- package/dist/schema/common.d.ts +26 -0
- package/dist/schema/common.d.ts.map +1 -1
- package/dist/schema/common.js +13 -0
- package/dist/schema/common.js.map +1 -1
- package/dist/schema/dispatch-workspace.d.ts +2643 -0
- package/dist/schema/dispatch-workspace.d.ts.map +1 -0
- package/dist/schema/dispatch-workspace.js +187 -0
- package/dist/schema/dispatch-workspace.js.map +1 -0
- package/dist/schema/inbox.d.ts +8 -8
- package/dist/schema/index.d.ts +2 -0
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +2 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/meta.d.ts +648 -116
- package/dist/schema/meta.d.ts.map +1 -1
- package/dist/schema/meta.js +27 -0
- package/dist/schema/meta.js.map +1 -1
- package/dist/schema/plan.d.ts +30 -19
- package/dist/schema/plan.d.ts.map +1 -1
- package/dist/schema/plan.js +3 -1
- package/dist/schema/plan.js.map +1 -1
- package/dist/schema/review-records.d.ts +2676 -0
- package/dist/schema/review-records.d.ts.map +1 -0
- package/dist/schema/review-records.js +232 -0
- package/dist/schema/review-records.js.map +1 -0
- package/dist/schema/spec.d.ts +32 -14
- package/dist/schema/spec.d.ts.map +1 -1
- package/dist/schema/spec.js +5 -0
- package/dist/schema/spec.js.map +1 -1
- package/dist/schema/task.d.ts +187 -29
- package/dist/schema/task.d.ts.map +1 -1
- package/dist/schema/task.js +12 -2
- package/dist/schema/task.js.map +1 -1
- package/dist/schema/triage.d.ts +22 -22
- package/dist/sessions/cache.d.ts +119 -0
- package/dist/sessions/cache.d.ts.map +1 -0
- package/dist/sessions/cache.js +284 -0
- package/dist/sessions/cache.js.map +1 -0
- package/dist/sessions/index.d.ts +1 -0
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +2 -0
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/legacy.d.ts +77 -0
- package/dist/sessions/legacy.d.ts.map +1 -0
- package/dist/sessions/legacy.js +146 -0
- package/dist/sessions/legacy.js.map +1 -0
- package/dist/sessions/store.d.ts +103 -73
- package/dist/sessions/store.d.ts.map +1 -1
- package/dist/sessions/store.js +335 -186
- package/dist/sessions/store.js.map +1 -1
- package/dist/sessions/types.d.ts +44 -16
- package/dist/sessions/types.d.ts.map +1 -1
- package/dist/sessions/types.js +11 -2
- package/dist/sessions/types.js.map +1 -1
- package/dist/strings/errors.d.ts +32 -0
- package/dist/strings/errors.d.ts.map +1 -1
- package/dist/strings/errors.js +17 -0
- package/dist/strings/errors.js.map +1 -1
- package/dist/strings/labels.d.ts +1 -0
- package/dist/strings/labels.d.ts.map +1 -1
- package/dist/strings/labels.js +1 -0
- package/dist/strings/labels.js.map +1 -1
- package/dist/utils/activity.d.ts +101 -0
- package/dist/utils/activity.d.ts.map +1 -0
- package/dist/utils/activity.js +408 -0
- package/dist/utils/activity.js.map +1 -0
- package/dist/utils/git.d.ts +31 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +87 -0
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/web-ui/_app/immutable/assets/0.tmlwn-Ih.css +1 -0
- package/dist/web-ui/_app/immutable/assets/9.BwwJybWx.css +1 -0
- package/dist/web-ui/_app/immutable/chunks/2KqE8gtn.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/70-t_QvE.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/AiWQj974.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{CPPfDSei.js → B25nWFyA.js} +4 -4
- package/dist/web-ui/_app/immutable/chunks/{DBYE9jOd.js → B2bcA_Q_.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/B5e5HYyB.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/B7-5z6eA.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/B7bGmhK0.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{DzO4hlg9.js → B8tYZKAE.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/{B5LJFxqa.js → BFGAyJjD.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/BG0850zf.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{DAMmvwn4.js → BG8eSzAd.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/BIMxXS8I.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BSzL1fpU.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BYtjHfeq.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{DxCk-KHc.js → Bp5pFYXL.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/{B8a0xDxR.js → BsJFsuAT.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/BvpNHcD6.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/BypqA25-.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{BVA9Exy-.js → C0w6WDm5.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/C5_PAZ0y.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/CDRO15Iv.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/CF1CoqD5.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/CS2sa4_m.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{BJ0JX3ea.js → CWUQwB9H.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/CY5FDdSU.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/C_7MTDoj.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{D3vxvonu.js → CaAJD3dl.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/{BP352uRn.js → ChB5iyEL.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/{pE6cYWlS.js → ChQD-6N8.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/{Eo4gF7ih.js → CqbsoCwA.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/DCeJW50p.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{Cncwi6fQ.js → DJtZNgcs.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/DKIeaprD.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DLd2uVIA.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{DjcCz-PU.js → DW_subyT.js} +2 -2
- package/dist/web-ui/_app/immutable/chunks/DbU6lVn0.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/Dc7ZCC5m.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/Dd5umPsk.js +2 -0
- package/dist/web-ui/_app/immutable/chunks/{BysXJlZb.js → Dg_zDpDS.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/Dgqu8Yuc.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DmxsPZTB.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DphTaFUB.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DqK4iHp0.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{D9QNBZM2.js → DqT6OH_u.js} +2 -2
- package/dist/web-ui/_app/immutable/chunks/Ds9I9wQb.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/Du5ng3u4.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/DxJw79Wi.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/GFTX8GgV.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{C076q4JN.js → HNjs76Zz.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/HVMjDi4_.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{BkOJ8DkV.js → P0A_fJvS.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/T3vGWjIL.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/VTmrX9Qu.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{k_Qegko0.js → Xvwhx_F1.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/Yyz1XMQA.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{62JVKtnb.js → dh5HeqUr.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/fZMteyca.js +62 -0
- package/dist/web-ui/_app/immutable/chunks/{D82RulSH.js → gPrj-hqC.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/htcWMiYN.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{CwELQvbx.js → oTsvd9y4.js} +1 -1
- package/dist/web-ui/_app/immutable/chunks/qJfLUwU4.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/xCtiO_JE.js +1 -0
- package/dist/web-ui/_app/immutable/chunks/{DvA-KON-.js → y4GeEH6k.js} +1 -1
- package/dist/web-ui/_app/immutable/entry/app.C4h_eOn6.js +2 -0
- package/dist/web-ui/_app/immutable/entry/start.CQFTf9ep.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/0.Dh1xO970.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/1.l75D3Opx.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/10.DBidBPc-.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/11.Ab0gUKWe.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/12.CMsnoxfs.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/13.D8YKuknB.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/14.DZ0aan7y.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/15.CUIKreDL.js +2 -0
- package/dist/web-ui/_app/immutable/nodes/16.BWc8--BO.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/2.CDUonbuh.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/3.Ctg3M00i.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/4.Ci-JDwbA.js +2 -0
- package/dist/web-ui/_app/immutable/nodes/5.CTyEDAq0.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/6.BTZZqsAb.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/7.BI52g_Jo.js +137 -0
- package/dist/web-ui/_app/immutable/nodes/8.3hZPaB9x.js +1 -0
- package/dist/web-ui/_app/immutable/nodes/9.DS49kvwl.js +29 -0
- package/dist/web-ui/_app/version.json +1 -1
- package/dist/web-ui/favicon-192.png +0 -0
- package/dist/web-ui/favicon-32.png +0 -0
- package/dist/web-ui/favicon.ico +0 -0
- package/dist/web-ui/index.html +14 -14
- package/package.json +12 -6
- package/plugin/.claude-plugin/marketplace.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/plugins/kspec/skills/merge/SKILL.md +127 -0
- package/plugin/plugins/kspec/skills/plan/SKILL.md +55 -26
- package/plugin/plugins/kspec/skills/review/SKILL.md +350 -133
- package/plugin/plugins/kspec/skills/task-work/SKILL.md +96 -106
- package/templates/agents-sections/04-pr-workflow.md +15 -12
- package/templates/agents-sections/06-ralph-loop.md +15 -10
- package/templates/skills/manifest.yaml +25 -7
- package/templates/skills/merge/SKILL.md +120 -0
- package/templates/skills/plan/SKILL.md +55 -26
- package/templates/skills/review/SKILL.md +346 -130
- package/templates/skills/task-work/SKILL.md +93 -103
- package/dist/web-ui/_app/immutable/assets/0.BJaYkGW2.css +0 -1
- package/dist/web-ui/_app/immutable/assets/9.SzGLxi4x.css +0 -1
- package/dist/web-ui/_app/immutable/chunks/-lc0BifF.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/8RBjHMN1.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/B5wTVqxm.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/B6VSmczZ.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BEOQc37C.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BHtYorjv.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BMuCqDX8.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BUZujXJ2.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BWET-efb.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BXkNecpt.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BYzrIfX8.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BpuwufMc.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/BwMO4RrG.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/C33JaVbg.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/CGtqifKp.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/CHDZZ7OG.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/CUir3f4J.js +0 -60
- package/dist/web-ui/_app/immutable/chunks/CrCIbn0C.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/D6TVmR9T.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/D7LTux4W.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DAh4Wfku.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DAx07bEQ.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DOno4cA2.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DQA8NZIH.js +0 -2
- package/dist/web-ui/_app/immutable/chunks/DRfPm2bo.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DhQhksaB.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DjG7s6hm.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DkltRNvh.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/DlaTnPKL.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/ExCq5swK.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/T3zZGv51.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/XZumBYeP.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/_ySfNjkF.js +0 -1
- package/dist/web-ui/_app/immutable/chunks/iEtR5cV6.js +0 -1
- package/dist/web-ui/_app/immutable/entry/app.Cgu6uKeS.js +0 -2
- package/dist/web-ui/_app/immutable/entry/start.9XifnLoB.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/0.DISwcKSK.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/1.Cx2Ufqp1.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/10.C3z8ijXL.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/11.DZdIjZmM.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/12.FsIGfAOa.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/13.DZoFwagf.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/14.DaIzDKbQ.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/15.BYyt4XWF.js +0 -2
- package/dist/web-ui/_app/immutable/nodes/16.CQkSqpOe.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/2.Bkf_j2UJ.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/3.kaMCurJG.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/4.BSsFPTHG.js +0 -2
- package/dist/web-ui/_app/immutable/nodes/5.CpPlcCEZ.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/6.BN4FqQmY.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/7.9kBYIZik.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/8.BuijtZ6B.js +0 -1
- package/dist/web-ui/_app/immutable/nodes/9.C-Weba8R.js +0 -1
package/dist/schema/triage.d.ts
CHANGED
|
@@ -35,13 +35,13 @@ export declare const TriageRecordSchema: z.ZodEffects<z.ZodObject<{
|
|
|
35
35
|
updated_at: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodString]>>;
|
|
36
36
|
}, "strip", z.ZodTypeAny, {
|
|
37
37
|
status: "pending" | "triaged" | "acted_on";
|
|
38
|
-
_ulid: string;
|
|
39
38
|
created_at: string;
|
|
39
|
+
_ulid: string;
|
|
40
40
|
inbox_ref: string;
|
|
41
41
|
item_snapshot: string;
|
|
42
42
|
evidence_refs: string[];
|
|
43
|
-
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
44
43
|
updated_at?: string | undefined;
|
|
44
|
+
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
45
45
|
reasoning?: string | undefined;
|
|
46
46
|
decided_by?: string | undefined;
|
|
47
47
|
override_reasoning?: string | undefined;
|
|
@@ -51,12 +51,12 @@ export declare const TriageRecordSchema: z.ZodEffects<z.ZodObject<{
|
|
|
51
51
|
result_ref?: string | undefined;
|
|
52
52
|
}, {
|
|
53
53
|
status: "pending" | "triaged" | "acted_on";
|
|
54
|
-
_ulid: string;
|
|
55
54
|
created_at: string;
|
|
55
|
+
_ulid: string;
|
|
56
56
|
inbox_ref: string;
|
|
57
57
|
item_snapshot: string;
|
|
58
|
-
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
59
58
|
updated_at?: string | undefined;
|
|
59
|
+
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
60
60
|
reasoning?: string | undefined;
|
|
61
61
|
decided_by?: string | undefined;
|
|
62
62
|
evidence_refs?: string[] | undefined;
|
|
@@ -67,13 +67,13 @@ export declare const TriageRecordSchema: z.ZodEffects<z.ZodObject<{
|
|
|
67
67
|
result_ref?: string | undefined;
|
|
68
68
|
}>, {
|
|
69
69
|
status: "pending" | "triaged" | "acted_on";
|
|
70
|
-
_ulid: string;
|
|
71
70
|
created_at: string;
|
|
71
|
+
_ulid: string;
|
|
72
72
|
inbox_ref: string;
|
|
73
73
|
item_snapshot: string;
|
|
74
74
|
evidence_refs: string[];
|
|
75
|
-
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
76
75
|
updated_at?: string | undefined;
|
|
76
|
+
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
77
77
|
reasoning?: string | undefined;
|
|
78
78
|
decided_by?: string | undefined;
|
|
79
79
|
override_reasoning?: string | undefined;
|
|
@@ -83,12 +83,12 @@ export declare const TriageRecordSchema: z.ZodEffects<z.ZodObject<{
|
|
|
83
83
|
result_ref?: string | undefined;
|
|
84
84
|
}, {
|
|
85
85
|
status: "pending" | "triaged" | "acted_on";
|
|
86
|
-
_ulid: string;
|
|
87
86
|
created_at: string;
|
|
87
|
+
_ulid: string;
|
|
88
88
|
inbox_ref: string;
|
|
89
89
|
item_snapshot: string;
|
|
90
|
-
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
91
90
|
updated_at?: string | undefined;
|
|
91
|
+
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
92
92
|
reasoning?: string | undefined;
|
|
93
93
|
decided_by?: string | undefined;
|
|
94
94
|
evidence_refs?: string[] | undefined;
|
|
@@ -115,8 +115,8 @@ export declare const TriageRecordInputSchema: z.ZodObject<{
|
|
|
115
115
|
inbox_ref: string;
|
|
116
116
|
item_snapshot: string;
|
|
117
117
|
status?: "pending" | "triaged" | "acted_on" | undefined;
|
|
118
|
-
_ulid?: string | undefined;
|
|
119
118
|
created_at?: string | undefined;
|
|
119
|
+
_ulid?: string | undefined;
|
|
120
120
|
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
121
121
|
reasoning?: string | undefined;
|
|
122
122
|
decided_by?: string | undefined;
|
|
@@ -125,8 +125,8 @@ export declare const TriageRecordInputSchema: z.ZodObject<{
|
|
|
125
125
|
inbox_ref: string;
|
|
126
126
|
item_snapshot: string;
|
|
127
127
|
status?: "pending" | "triaged" | "acted_on" | undefined;
|
|
128
|
-
_ulid?: string | undefined;
|
|
129
128
|
created_at?: string | undefined;
|
|
129
|
+
_ulid?: string | undefined;
|
|
130
130
|
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
131
131
|
reasoning?: string | undefined;
|
|
132
132
|
decided_by?: string | undefined;
|
|
@@ -156,13 +156,13 @@ export declare const TriageFileSchema: z.ZodObject<{
|
|
|
156
156
|
updated_at: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodString]>>;
|
|
157
157
|
}, "strip", z.ZodTypeAny, {
|
|
158
158
|
status: "pending" | "triaged" | "acted_on";
|
|
159
|
-
_ulid: string;
|
|
160
159
|
created_at: string;
|
|
160
|
+
_ulid: string;
|
|
161
161
|
inbox_ref: string;
|
|
162
162
|
item_snapshot: string;
|
|
163
163
|
evidence_refs: string[];
|
|
164
|
-
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
165
164
|
updated_at?: string | undefined;
|
|
165
|
+
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
166
166
|
reasoning?: string | undefined;
|
|
167
167
|
decided_by?: string | undefined;
|
|
168
168
|
override_reasoning?: string | undefined;
|
|
@@ -172,12 +172,12 @@ export declare const TriageFileSchema: z.ZodObject<{
|
|
|
172
172
|
result_ref?: string | undefined;
|
|
173
173
|
}, {
|
|
174
174
|
status: "pending" | "triaged" | "acted_on";
|
|
175
|
-
_ulid: string;
|
|
176
175
|
created_at: string;
|
|
176
|
+
_ulid: string;
|
|
177
177
|
inbox_ref: string;
|
|
178
178
|
item_snapshot: string;
|
|
179
|
-
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
180
179
|
updated_at?: string | undefined;
|
|
180
|
+
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
181
181
|
reasoning?: string | undefined;
|
|
182
182
|
decided_by?: string | undefined;
|
|
183
183
|
evidence_refs?: string[] | undefined;
|
|
@@ -188,13 +188,13 @@ export declare const TriageFileSchema: z.ZodObject<{
|
|
|
188
188
|
result_ref?: string | undefined;
|
|
189
189
|
}>, {
|
|
190
190
|
status: "pending" | "triaged" | "acted_on";
|
|
191
|
-
_ulid: string;
|
|
192
191
|
created_at: string;
|
|
192
|
+
_ulid: string;
|
|
193
193
|
inbox_ref: string;
|
|
194
194
|
item_snapshot: string;
|
|
195
195
|
evidence_refs: string[];
|
|
196
|
-
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
197
196
|
updated_at?: string | undefined;
|
|
197
|
+
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
198
198
|
reasoning?: string | undefined;
|
|
199
199
|
decided_by?: string | undefined;
|
|
200
200
|
override_reasoning?: string | undefined;
|
|
@@ -204,12 +204,12 @@ export declare const TriageFileSchema: z.ZodObject<{
|
|
|
204
204
|
result_ref?: string | undefined;
|
|
205
205
|
}, {
|
|
206
206
|
status: "pending" | "triaged" | "acted_on";
|
|
207
|
-
_ulid: string;
|
|
208
207
|
created_at: string;
|
|
208
|
+
_ulid: string;
|
|
209
209
|
inbox_ref: string;
|
|
210
210
|
item_snapshot: string;
|
|
211
|
-
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
212
211
|
updated_at?: string | undefined;
|
|
212
|
+
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
213
213
|
reasoning?: string | undefined;
|
|
214
214
|
decided_by?: string | undefined;
|
|
215
215
|
evidence_refs?: string[] | undefined;
|
|
@@ -223,13 +223,13 @@ export declare const TriageFileSchema: z.ZodObject<{
|
|
|
223
223
|
kynetic_triage: string;
|
|
224
224
|
triage: {
|
|
225
225
|
status: "pending" | "triaged" | "acted_on";
|
|
226
|
-
_ulid: string;
|
|
227
226
|
created_at: string;
|
|
227
|
+
_ulid: string;
|
|
228
228
|
inbox_ref: string;
|
|
229
229
|
item_snapshot: string;
|
|
230
230
|
evidence_refs: string[];
|
|
231
|
-
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
232
231
|
updated_at?: string | undefined;
|
|
232
|
+
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
233
233
|
reasoning?: string | undefined;
|
|
234
234
|
decided_by?: string | undefined;
|
|
235
235
|
override_reasoning?: string | undefined;
|
|
@@ -241,12 +241,12 @@ export declare const TriageFileSchema: z.ZodObject<{
|
|
|
241
241
|
}, {
|
|
242
242
|
triage: {
|
|
243
243
|
status: "pending" | "triaged" | "acted_on";
|
|
244
|
-
_ulid: string;
|
|
245
244
|
created_at: string;
|
|
245
|
+
_ulid: string;
|
|
246
246
|
inbox_ref: string;
|
|
247
247
|
item_snapshot: string;
|
|
248
|
-
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
249
248
|
updated_at?: string | undefined;
|
|
249
|
+
action?: "promote" | "delete" | "defer" | "spec-gap" | "duplicate" | undefined;
|
|
250
250
|
reasoning?: string | undefined;
|
|
251
251
|
decided_by?: string | undefined;
|
|
252
252
|
evidence_refs?: string[] | undefined;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session summary cache.
|
|
3
|
+
*
|
|
4
|
+
* In-memory cache for session metadata. Reads only session.yaml files —
|
|
5
|
+
* never reads events.jsonl. Summary stats for closed sessions come from
|
|
6
|
+
* persisted metadata fields. Active sessions get live event counts from
|
|
7
|
+
* an in-memory counter incremented on each event append.
|
|
8
|
+
*
|
|
9
|
+
* AC Coverage:
|
|
10
|
+
* - @session-summary-cache ac-cache-build: Build cache on first request
|
|
11
|
+
* - @session-summary-cache ac-cache-invalidate: Detect changes via directory listing diff
|
|
12
|
+
* - @session-summary-cache ac-cache-graceful: Skip corrupt/missing entries with warning
|
|
13
|
+
* - @session-list-pagination-api ac-metadata-only: List path reads only session.yaml
|
|
14
|
+
* - @session-summary-cache ac-active-refresh: Re-read metadata for active sessions on each request
|
|
15
|
+
* - @session-summary-cache ac-persist-on-close: Closed sessions read persisted stats from metadata
|
|
16
|
+
* - @session-summary-cache ac-live-counter: Active sessions serve event_count from in-memory counter
|
|
17
|
+
*/
|
|
18
|
+
import { type SessionLogSummary } from "./store.js";
|
|
19
|
+
/**
|
|
20
|
+
* In-memory cache for session summaries.
|
|
21
|
+
*
|
|
22
|
+
* Usage:
|
|
23
|
+
* const cache = new SessionSummaryCache();
|
|
24
|
+
* const summaries = await cache.getAll(sessionsDir);
|
|
25
|
+
*/
|
|
26
|
+
export declare class SessionSummaryCache {
|
|
27
|
+
/** Cached summaries keyed by session ID */
|
|
28
|
+
private entries;
|
|
29
|
+
/** Set of session IDs from last directory listing, used for invalidation */
|
|
30
|
+
private knownSessionIds;
|
|
31
|
+
/** Whether the cache has been populated at least once */
|
|
32
|
+
private initialized;
|
|
33
|
+
/** In-flight promise for cache build to prevent concurrent builds */
|
|
34
|
+
private buildPromise;
|
|
35
|
+
/**
|
|
36
|
+
* Live event counters for active sessions.
|
|
37
|
+
* Incremented on each event append, served as event_count for active sessions.
|
|
38
|
+
* Discarded when a session closes (persisted value takes over).
|
|
39
|
+
* AC: @session-summary-cache ac-live-counter
|
|
40
|
+
*/
|
|
41
|
+
private liveEventCounts;
|
|
42
|
+
/**
|
|
43
|
+
* Get all session summaries, using cache when possible.
|
|
44
|
+
*
|
|
45
|
+
* AC: @session-summary-cache ac-cache-build — First call builds cache from disk.
|
|
46
|
+
* AC: @session-summary-cache ac-cache-invalidate — Subsequent calls diff directory listing.
|
|
47
|
+
* AC: @session-summary-cache ac-active-refresh — Active sessions get stats recomputed.
|
|
48
|
+
*/
|
|
49
|
+
getAll(sessionsDir: string): Promise<SessionLogSummary[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Get a single session's full summary, including stats from events.jsonl.
|
|
52
|
+
* Always computes fresh stats (not metadata-only) for detail views.
|
|
53
|
+
*/
|
|
54
|
+
get(sessionsDir: string, sessionId: string): Promise<SessionLogSummary | null>;
|
|
55
|
+
/**
|
|
56
|
+
* Invalidate a specific session's cache entry.
|
|
57
|
+
* Next access will re-read from disk.
|
|
58
|
+
*/
|
|
59
|
+
invalidate(sessionId: string): void;
|
|
60
|
+
/**
|
|
61
|
+
* Clear the entire cache. Next getAll() will rebuild from disk.
|
|
62
|
+
*/
|
|
63
|
+
clear(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Increment the live event counter for an active session.
|
|
66
|
+
* Called when an event is appended to events.jsonl during a running invocation.
|
|
67
|
+
* AC: @session-summary-cache ac-live-counter
|
|
68
|
+
*/
|
|
69
|
+
incrementEventCount(sessionId: string): void;
|
|
70
|
+
/**
|
|
71
|
+
* Discard the live event counter for a session.
|
|
72
|
+
* Called when a session closes — the persisted stats in session.yaml take over.
|
|
73
|
+
* AC: @session-summary-cache ac-live-counter
|
|
74
|
+
*/
|
|
75
|
+
discardLiveCounter(sessionId: string): void;
|
|
76
|
+
/**
|
|
77
|
+
* Get the current live event count for a session (for testing/inspection).
|
|
78
|
+
*/
|
|
79
|
+
getLiveEventCount(sessionId: string): number;
|
|
80
|
+
/**
|
|
81
|
+
* Build the cache from scratch by reading all session directories.
|
|
82
|
+
*
|
|
83
|
+
* AC: @session-summary-cache ac-cache-build — Reads all session.yaml files.
|
|
84
|
+
* AC: @session-summary-cache ac-cache-graceful — Skips corrupt/missing entries.
|
|
85
|
+
*
|
|
86
|
+
* Uses in-flight promise dedup to prevent concurrent builds.
|
|
87
|
+
*/
|
|
88
|
+
private build;
|
|
89
|
+
private doBuild;
|
|
90
|
+
/**
|
|
91
|
+
* Refresh the cache by detecting changes since last build.
|
|
92
|
+
*
|
|
93
|
+
* AC: @session-summary-cache ac-cache-invalidate — Detects new/removed sessions
|
|
94
|
+
* via directory listing diff and updates only affected entries.
|
|
95
|
+
* AC: @session-summary-cache ac-active-refresh — Recomputes stats for active sessions.
|
|
96
|
+
*/
|
|
97
|
+
private refresh;
|
|
98
|
+
/**
|
|
99
|
+
* Get mtime of session.yaml for change detection.
|
|
100
|
+
* Returns 0 if the file doesn't exist.
|
|
101
|
+
*/
|
|
102
|
+
private getMetadataMtime;
|
|
103
|
+
/**
|
|
104
|
+
* List session directories (same logic as listSessions in store.ts).
|
|
105
|
+
*/
|
|
106
|
+
private listSessionDirs;
|
|
107
|
+
/**
|
|
108
|
+
* Return all cached summaries as an array.
|
|
109
|
+
* AC: @session-summary-cache ac-live-counter — Active sessions get event_count
|
|
110
|
+
* from the in-memory live counter instead of the (stale) metadata value.
|
|
111
|
+
*/
|
|
112
|
+
private summaries;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get (or create) a SessionSummaryCache scoped to a specific sessionsDir.
|
|
116
|
+
* Ensures multi-project daemon requests don't share cached session data.
|
|
117
|
+
*/
|
|
118
|
+
export declare function getSessionCache(sessionsDir: string): SessionSummaryCache;
|
|
119
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/sessions/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,YAAY,CAAC;AAWpB;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,2CAA2C;IAC3C,OAAO,CAAC,OAAO,CAAiC;IAEhD,4EAA4E;IAC5E,OAAO,CAAC,eAAe,CAAqB;IAE5C,yDAAyD;IACzD,OAAO,CAAC,WAAW,CAAS;IAE5B,qEAAqE;IACrE,OAAO,CAAC,YAAY,CAA8B;IAElD;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAA6B;IAEpD;;;;;;OAMG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAU/D;;;OAGG;IACG,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAKpC;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK5C;;;;OAIG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI5C;;;;;;;OAOG;YACW,KAAK;YAaL,OAAO;IA+BrB;;;;;;OAMG;YACW,OAAO;IA+ErB;;;OAGG;YACW,gBAAgB;IAa9B;;OAEG;YACW,eAAe;IAW7B;;;;OAIG;IACH,OAAO,CAAC,SAAS;CASlB;AAWD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAOxE"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session summary cache.
|
|
3
|
+
*
|
|
4
|
+
* In-memory cache for session metadata. Reads only session.yaml files —
|
|
5
|
+
* never reads events.jsonl. Summary stats for closed sessions come from
|
|
6
|
+
* persisted metadata fields. Active sessions get live event counts from
|
|
7
|
+
* an in-memory counter incremented on each event append.
|
|
8
|
+
*
|
|
9
|
+
* AC Coverage:
|
|
10
|
+
* - @session-summary-cache ac-cache-build: Build cache on first request
|
|
11
|
+
* - @session-summary-cache ac-cache-invalidate: Detect changes via directory listing diff
|
|
12
|
+
* - @session-summary-cache ac-cache-graceful: Skip corrupt/missing entries with warning
|
|
13
|
+
* - @session-list-pagination-api ac-metadata-only: List path reads only session.yaml
|
|
14
|
+
* - @session-summary-cache ac-active-refresh: Re-read metadata for active sessions on each request
|
|
15
|
+
* - @session-summary-cache ac-persist-on-close: Closed sessions read persisted stats from metadata
|
|
16
|
+
* - @session-summary-cache ac-live-counter: Active sessions serve event_count from in-memory counter
|
|
17
|
+
*/
|
|
18
|
+
import * as path from "node:path";
|
|
19
|
+
import * as fsPromises from "node:fs/promises";
|
|
20
|
+
import { getSessionLogSummary, getSessionMetadataOnly, } from "./store.js";
|
|
21
|
+
/**
|
|
22
|
+
* In-memory cache for session summaries.
|
|
23
|
+
*
|
|
24
|
+
* Usage:
|
|
25
|
+
* const cache = new SessionSummaryCache();
|
|
26
|
+
* const summaries = await cache.getAll(sessionsDir);
|
|
27
|
+
*/
|
|
28
|
+
export class SessionSummaryCache {
|
|
29
|
+
/** Cached summaries keyed by session ID */
|
|
30
|
+
entries = new Map();
|
|
31
|
+
/** Set of session IDs from last directory listing, used for invalidation */
|
|
32
|
+
knownSessionIds = new Set();
|
|
33
|
+
/** Whether the cache has been populated at least once */
|
|
34
|
+
initialized = false;
|
|
35
|
+
/** In-flight promise for cache build to prevent concurrent builds */
|
|
36
|
+
buildPromise = null;
|
|
37
|
+
/**
|
|
38
|
+
* Live event counters for active sessions.
|
|
39
|
+
* Incremented on each event append, served as event_count for active sessions.
|
|
40
|
+
* Discarded when a session closes (persisted value takes over).
|
|
41
|
+
* AC: @session-summary-cache ac-live-counter
|
|
42
|
+
*/
|
|
43
|
+
liveEventCounts = new Map();
|
|
44
|
+
/**
|
|
45
|
+
* Get all session summaries, using cache when possible.
|
|
46
|
+
*
|
|
47
|
+
* AC: @session-summary-cache ac-cache-build — First call builds cache from disk.
|
|
48
|
+
* AC: @session-summary-cache ac-cache-invalidate — Subsequent calls diff directory listing.
|
|
49
|
+
* AC: @session-summary-cache ac-active-refresh — Active sessions get stats recomputed.
|
|
50
|
+
*/
|
|
51
|
+
async getAll(sessionsDir) {
|
|
52
|
+
if (!this.initialized) {
|
|
53
|
+
await this.build(sessionsDir);
|
|
54
|
+
return this.summaries();
|
|
55
|
+
}
|
|
56
|
+
await this.refresh(sessionsDir);
|
|
57
|
+
return this.summaries();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get a single session's full summary, including stats from events.jsonl.
|
|
61
|
+
* Always computes fresh stats (not metadata-only) for detail views.
|
|
62
|
+
*/
|
|
63
|
+
async get(sessionsDir, sessionId) {
|
|
64
|
+
const summary = await getSessionLogSummary(sessionsDir, sessionId);
|
|
65
|
+
return summary;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Invalidate a specific session's cache entry.
|
|
69
|
+
* Next access will re-read from disk.
|
|
70
|
+
*/
|
|
71
|
+
invalidate(sessionId) {
|
|
72
|
+
this.entries.delete(sessionId);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Clear the entire cache. Next getAll() will rebuild from disk.
|
|
76
|
+
*/
|
|
77
|
+
clear() {
|
|
78
|
+
this.entries.clear();
|
|
79
|
+
this.knownSessionIds.clear();
|
|
80
|
+
this.initialized = false;
|
|
81
|
+
this.buildPromise = null;
|
|
82
|
+
this.liveEventCounts.clear();
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Increment the live event counter for an active session.
|
|
86
|
+
* Called when an event is appended to events.jsonl during a running invocation.
|
|
87
|
+
* AC: @session-summary-cache ac-live-counter
|
|
88
|
+
*/
|
|
89
|
+
incrementEventCount(sessionId) {
|
|
90
|
+
const current = this.liveEventCounts.get(sessionId) ?? 0;
|
|
91
|
+
this.liveEventCounts.set(sessionId, current + 1);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Discard the live event counter for a session.
|
|
95
|
+
* Called when a session closes — the persisted stats in session.yaml take over.
|
|
96
|
+
* AC: @session-summary-cache ac-live-counter
|
|
97
|
+
*/
|
|
98
|
+
discardLiveCounter(sessionId) {
|
|
99
|
+
this.liveEventCounts.delete(sessionId);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get the current live event count for a session (for testing/inspection).
|
|
103
|
+
*/
|
|
104
|
+
getLiveEventCount(sessionId) {
|
|
105
|
+
return this.liveEventCounts.get(sessionId) ?? 0;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Build the cache from scratch by reading all session directories.
|
|
109
|
+
*
|
|
110
|
+
* AC: @session-summary-cache ac-cache-build — Reads all session.yaml files.
|
|
111
|
+
* AC: @session-summary-cache ac-cache-graceful — Skips corrupt/missing entries.
|
|
112
|
+
*
|
|
113
|
+
* Uses in-flight promise dedup to prevent concurrent builds.
|
|
114
|
+
*/
|
|
115
|
+
async build(sessionsDir) {
|
|
116
|
+
if (this.buildPromise) {
|
|
117
|
+
return this.buildPromise;
|
|
118
|
+
}
|
|
119
|
+
this.buildPromise = this.doBuild(sessionsDir);
|
|
120
|
+
try {
|
|
121
|
+
await this.buildPromise;
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
this.buildPromise = null;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async doBuild(sessionsDir) {
|
|
128
|
+
const sessionIds = await this.listSessionDirs(sessionsDir);
|
|
129
|
+
this.knownSessionIds = new Set(sessionIds);
|
|
130
|
+
// AC: @session-list-pagination-api ac-metadata-only — Read only session.yaml, not events.jsonl
|
|
131
|
+
const results = await Promise.all(sessionIds.map(async (id) => {
|
|
132
|
+
// AC: @session-summary-cache ac-cache-graceful
|
|
133
|
+
try {
|
|
134
|
+
const summary = await getSessionMetadataOnly(sessionsDir, id);
|
|
135
|
+
const mtimeMs = await this.getMetadataMtime(sessionsDir, id);
|
|
136
|
+
return { id, summary, mtimeMs };
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
console.warn(`[session-cache] Skipping session ${id}: ${err instanceof Error ? err.message : String(err)}`);
|
|
140
|
+
return { id, summary: null, mtimeMs: 0 };
|
|
141
|
+
}
|
|
142
|
+
}));
|
|
143
|
+
this.entries.clear();
|
|
144
|
+
for (const { id, summary, mtimeMs } of results) {
|
|
145
|
+
if (summary) {
|
|
146
|
+
this.entries.set(id, { summary, mtimeMs });
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
this.initialized = true;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Refresh the cache by detecting changes since last build.
|
|
153
|
+
*
|
|
154
|
+
* AC: @session-summary-cache ac-cache-invalidate — Detects new/removed sessions
|
|
155
|
+
* via directory listing diff and updates only affected entries.
|
|
156
|
+
* AC: @session-summary-cache ac-active-refresh — Recomputes stats for active sessions.
|
|
157
|
+
*/
|
|
158
|
+
async refresh(sessionsDir) {
|
|
159
|
+
const currentIds = await this.listSessionDirs(sessionsDir);
|
|
160
|
+
const currentSet = new Set(currentIds);
|
|
161
|
+
// Find new sessions (in current listing but not in cache)
|
|
162
|
+
const newIds = currentIds.filter((id) => !this.knownSessionIds.has(id));
|
|
163
|
+
// Find removed sessions (in cache but not in current listing)
|
|
164
|
+
const removedIds = [...this.knownSessionIds].filter((id) => !currentSet.has(id));
|
|
165
|
+
// Find active sessions that need stats refresh
|
|
166
|
+
// AC: @session-summary-cache ac-active-refresh
|
|
167
|
+
const activeIds = [...this.entries.values()]
|
|
168
|
+
.filter((entry) => entry.summary.status === "active")
|
|
169
|
+
.map((entry) => entry.summary.id);
|
|
170
|
+
// AC: @session-summary-cache ac-cache-invalidate — Detect in-place session.yaml changes
|
|
171
|
+
// Check mtime of session.yaml for all existing non-active cached sessions
|
|
172
|
+
const mtimeChangedIds = [];
|
|
173
|
+
const existingNonActiveIds = [...this.entries.entries()]
|
|
174
|
+
.filter(([, entry]) => entry.summary.status !== "active")
|
|
175
|
+
.map(([id]) => id)
|
|
176
|
+
.filter((id) => currentSet.has(id)); // still exists on disk
|
|
177
|
+
if (existingNonActiveIds.length > 0) {
|
|
178
|
+
const mtimeChecks = await Promise.all(existingNonActiveIds.map(async (id) => {
|
|
179
|
+
const currentMtime = await this.getMetadataMtime(sessionsDir, id);
|
|
180
|
+
const cached = this.entries.get(id);
|
|
181
|
+
return { id, changed: cached != null && currentMtime !== cached.mtimeMs };
|
|
182
|
+
}));
|
|
183
|
+
for (const { id, changed } of mtimeChecks) {
|
|
184
|
+
if (changed) {
|
|
185
|
+
mtimeChangedIds.push(id);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// Remove deleted sessions from cache
|
|
190
|
+
for (const id of removedIds) {
|
|
191
|
+
this.entries.delete(id);
|
|
192
|
+
}
|
|
193
|
+
// AC: @session-list-pagination-api ac-metadata-only — Read only session.yaml, not events.jsonl
|
|
194
|
+
const idsToRefresh = [...new Set([...newIds, ...activeIds, ...mtimeChangedIds])];
|
|
195
|
+
if (idsToRefresh.length > 0) {
|
|
196
|
+
const results = await Promise.all(idsToRefresh.map(async (id) => {
|
|
197
|
+
// AC: @session-summary-cache ac-cache-graceful
|
|
198
|
+
try {
|
|
199
|
+
const summary = await getSessionMetadataOnly(sessionsDir, id);
|
|
200
|
+
const mtimeMs = await this.getMetadataMtime(sessionsDir, id);
|
|
201
|
+
return { id, summary, mtimeMs };
|
|
202
|
+
}
|
|
203
|
+
catch (err) {
|
|
204
|
+
console.warn(`[session-cache] Skipping session ${id}: ${err instanceof Error ? err.message : String(err)}`);
|
|
205
|
+
return { id, summary: null, mtimeMs: 0 };
|
|
206
|
+
}
|
|
207
|
+
}));
|
|
208
|
+
for (const { id, summary, mtimeMs } of results) {
|
|
209
|
+
if (summary) {
|
|
210
|
+
this.entries.set(id, { summary, mtimeMs });
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
// Remove from cache if it was there (e.g., active session that became unreadable)
|
|
214
|
+
this.entries.delete(id);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Update known session IDs
|
|
219
|
+
this.knownSessionIds = currentSet;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Get mtime of session.yaml for change detection.
|
|
223
|
+
* Returns 0 if the file doesn't exist.
|
|
224
|
+
*/
|
|
225
|
+
async getMetadataMtime(sessionsDir, sessionId) {
|
|
226
|
+
try {
|
|
227
|
+
const metadataPath = path.join(sessionsDir, sessionId, "session.yaml");
|
|
228
|
+
const stat = await fsPromises.stat(metadataPath);
|
|
229
|
+
return stat.mtimeMs;
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
return 0;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* List session directories (same logic as listSessions in store.ts).
|
|
237
|
+
*/
|
|
238
|
+
async listSessionDirs(sessionsDir) {
|
|
239
|
+
try {
|
|
240
|
+
const entries = await fsPromises.readdir(sessionsDir, {
|
|
241
|
+
withFileTypes: true,
|
|
242
|
+
});
|
|
243
|
+
return entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
return [];
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Return all cached summaries as an array.
|
|
251
|
+
* AC: @session-summary-cache ac-live-counter — Active sessions get event_count
|
|
252
|
+
* from the in-memory live counter instead of the (stale) metadata value.
|
|
253
|
+
*/
|
|
254
|
+
summaries() {
|
|
255
|
+
return [...this.entries.values()].map((e) => {
|
|
256
|
+
const liveCount = this.liveEventCounts.get(e.summary.id);
|
|
257
|
+
if (e.summary.status === "active" && liveCount !== undefined) {
|
|
258
|
+
return { ...e.summary, event_count: liveCount };
|
|
259
|
+
}
|
|
260
|
+
return e.summary;
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Per-sessionsDir cache registry.
|
|
266
|
+
*
|
|
267
|
+
* The daemon is multi-project: each request can target a different project root,
|
|
268
|
+
* each with its own sessionsDir. This registry ensures cache instances are scoped
|
|
269
|
+
* per sessionsDir to prevent cross-project session bleed.
|
|
270
|
+
*/
|
|
271
|
+
const cacheRegistry = new Map();
|
|
272
|
+
/**
|
|
273
|
+
* Get (or create) a SessionSummaryCache scoped to a specific sessionsDir.
|
|
274
|
+
* Ensures multi-project daemon requests don't share cached session data.
|
|
275
|
+
*/
|
|
276
|
+
export function getSessionCache(sessionsDir) {
|
|
277
|
+
let cache = cacheRegistry.get(sessionsDir);
|
|
278
|
+
if (!cache) {
|
|
279
|
+
cache = new SessionSummaryCache();
|
|
280
|
+
cacheRegistry.set(sessionsDir, cache);
|
|
281
|
+
}
|
|
282
|
+
return cache;
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/sessions/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/sessions/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sessions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,YAAY,CAAC;AAE3B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sessions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,YAAY,CAAC;AAE3B,cAAc,YAAY,CAAC;AAE3B,cAAc,YAAY,CAAC"}
|
package/dist/sessions/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sessions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8BAA8B;AAC9B,cAAc,YAAY,CAAC;AAC3B,kBAAkB;AAClB,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sessions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8BAA8B;AAC9B,cAAc,YAAY,CAAC;AAC3B,kBAAkB;AAClB,cAAc,YAAY,CAAC;AAC3B,kBAAkB;AAClB,cAAc,YAAY,CAAC"}
|