@astrosheep/keiyaku 2.9.13 → 4.0.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 +10 -130
- package/build/integrations/marketplace/.agents/plugins/marketplace.json +12 -0
- package/build/integrations/marketplace/.claude-plugin/marketplace.json +5 -0
- package/build/integrations/marketplace/plugins/keiyaku/.claude-plugin/plugin.json +7 -0
- package/build/integrations/marketplace/plugins/keiyaku/.codex-plugin/plugin.json +18 -0
- package/build/integrations/marketplace/plugins/keiyaku/opencode.js +16 -0
- package/build/integrations/marketplace/plugins/keiyaku/package.json +8 -0
- package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku/SKILL.md +34 -0
- package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/SKILL.md +50 -0
- package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-task/SKILL.md +62 -0
- package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-workflow/SKILL.md +72 -0
- package/build/src/akuma/activity.d.ts +66 -0
- package/build/src/akuma/activity.js +139 -0
- package/build/src/akuma/akuma.d.ts +116 -0
- package/build/src/akuma/akuma.js +382 -0
- package/build/src/akuma/archetype.d.ts +31 -0
- package/build/src/akuma/archetype.js +188 -0
- package/build/src/akuma/body.d.ts +20 -0
- package/build/src/akuma/body.js +305 -0
- package/build/src/akuma/heart/facts.d.ts +150 -0
- package/build/src/akuma/heart/facts.js +9 -0
- package/build/src/akuma/heart/index.d.ts +78 -0
- package/build/src/akuma/heart/index.js +361 -0
- package/build/src/akuma/heart/rows.d.ts +189 -0
- package/build/src/akuma/heart/rows.js +319 -0
- package/build/src/akuma/heart/schema.d.ts +5 -0
- package/build/src/akuma/heart/schema.js +113 -0
- package/build/src/akuma/identity.d.ts +46 -0
- package/build/src/akuma/identity.js +89 -0
- package/build/src/akuma/index.d.ts +7 -0
- package/build/src/akuma/index.js +3 -0
- package/build/src/akuma/provider.d.ts +123 -0
- package/build/src/akuma/provider.js +235 -0
- package/build/src/akuma/providers/claude.d.ts +84 -0
- package/build/src/akuma/providers/claude.js +305 -0
- package/build/src/akuma/providers/codex-app-server/events.d.ts +110 -0
- package/build/src/akuma/providers/codex-app-server/events.js +337 -0
- package/build/src/akuma/providers/codex-app-server/index.d.ts +27 -0
- package/build/src/akuma/providers/codex-app-server/index.js +162 -0
- package/build/src/akuma/providers/index.d.ts +4 -0
- package/build/src/akuma/providers/index.js +71 -0
- package/build/src/akuma/publication.d.ts +10 -0
- package/build/src/akuma/publication.js +107 -0
- package/build/src/akuma/requests.d.ts +46 -0
- package/build/src/akuma/requests.js +388 -0
- package/build/src/alias/index.d.ts +17 -0
- package/build/src/alias/index.js +104 -0
- package/build/src/body/amend.d.ts +2 -0
- package/build/src/body/amend.js +289 -0
- package/build/src/body/arc.d.ts +2 -0
- package/build/src/body/arc.js +54 -0
- package/build/src/body/decode.d.ts +4 -0
- package/build/src/body/decode.js +146 -0
- package/build/src/body/keys.d.ts +4 -0
- package/build/src/body/keys.js +11 -0
- package/build/src/body/region.d.ts +6 -0
- package/build/src/body/region.js +139 -0
- package/build/src/body/render.d.ts +4 -0
- package/build/src/body/render.js +73 -0
- package/build/src/body/shape.d.ts +29 -0
- package/build/src/body/shape.js +16 -0
- package/build/src/body/types.d.ts +28 -0
- package/build/src/body/verification.d.ts +7 -0
- package/build/src/body/verification.js +25 -0
- package/build/src/cli/accepted.d.ts +16 -0
- package/build/src/cli/accepted.js +65 -0
- package/build/src/cli/actor.d.ts +8 -0
- package/build/src/cli/actor.js +11 -0
- package/build/src/cli/commands/akuma-invoke.d.ts +53 -0
- package/build/src/cli/commands/akuma-invoke.js +68 -0
- package/build/src/cli/commands/akuma.d.ts +42 -0
- package/build/src/cli/commands/akuma.js +224 -0
- package/build/src/cli/commands/amend.d.ts +13 -0
- package/build/src/cli/commands/amend.js +13 -0
- package/build/src/cli/commands/bind.d.ts +12 -0
- package/build/src/cli/commands/bind.js +17 -0
- package/build/src/cli/commands/install.d.ts +25 -0
- package/build/src/cli/commands/install.js +103 -0
- package/build/src/cli/commands/task-invoke.d.ts +9 -0
- package/build/src/cli/commands/task-invoke.js +92 -0
- package/build/src/cli/commands/task.d.ts +16 -0
- package/build/src/cli/commands/task.js +144 -0
- package/build/src/cli/index.d.ts +2 -0
- package/build/src/cli/index.js +3 -0
- package/build/src/cli/invoke.d.ts +17 -0
- package/build/src/cli/invoke.js +265 -0
- package/build/src/cli/main.d.ts +1 -0
- package/build/src/cli/main.js +79 -0
- package/build/src/cli/parse.d.ts +210 -0
- package/build/src/cli/parse.js +375 -0
- package/build/src/cli/render/akuma-tool.d.ts +11 -0
- package/build/src/cli/render/akuma-tool.js +68 -0
- package/build/src/cli/render/akuma.d.ts +6 -0
- package/build/src/cli/render/akuma.js +254 -0
- package/build/src/cli/render/board.d.ts +2 -0
- package/build/src/cli/render/board.js +4 -0
- package/build/src/cli/render/contract.d.ts +4 -0
- package/build/src/cli/render/contract.js +69 -0
- package/build/src/cli/render/kanshi.d.ts +3 -0
- package/build/src/cli/render/kanshi.js +204 -0
- package/build/src/cli/render/refusal.d.ts +2 -0
- package/build/src/cli/render/refusal.js +4 -0
- package/build/src/cli/render/settings.d.ts +3 -0
- package/build/src/cli/render/settings.js +30 -0
- package/build/src/cli/render/task.d.ts +6 -0
- package/build/src/cli/render/task.js +105 -0
- package/build/src/cli/render/terminal.d.ts +10 -0
- package/build/src/cli/render/terminal.js +76 -0
- package/build/src/cli/render/text.d.ts +3 -0
- package/build/src/cli/render/text.js +15 -0
- package/build/src/cli/result.d.ts +55 -0
- package/build/src/cli/selectors.d.ts +9 -0
- package/build/src/cli/selectors.js +66 -0
- package/build/src/cli/usage.d.ts +6 -0
- package/build/src/cli/usage.js +19 -0
- package/build/src/context-root.d.ts +4 -0
- package/build/src/context-root.js +15 -0
- package/build/src/coordination/durable-file.d.ts +1 -0
- package/build/src/coordination/durable-file.js +36 -0
- package/build/src/coordination/sqlite-transaction-lock.d.ts +14 -0
- package/build/src/coordination/sqlite-transaction-lock.js +119 -0
- package/build/src/core/decide.d.ts +45 -0
- package/build/src/core/facts/codec.d.ts +3 -0
- package/build/src/core/facts/codec.js +258 -0
- package/build/src/core/facts/eligibility.d.ts +16 -0
- package/build/src/core/facts/eligibility.js +75 -0
- package/build/src/core/facts/errors.d.ts +3 -0
- package/build/src/core/facts/errors.js +6 -0
- package/build/src/core/facts/fold.d.ts +2 -0
- package/build/src/core/facts/fold.js +97 -0
- package/build/src/core/facts/gate.d.ts +24 -0
- package/build/src/core/facts/gate.js +52 -0
- package/build/src/core/facts/observation.d.ts +12 -0
- package/build/src/core/facts/observation.js +23 -0
- package/build/src/core/facts/offer.d.ts +21 -0
- package/build/src/core/facts/types.d.ts +130 -0
- package/build/src/core/facts/types.js +66 -0
- package/build/src/core/subject.d.ts +21 -0
- package/build/src/core/subject.js +89 -0
- package/build/src/core/verbs/abandon.d.ts +13 -0
- package/build/src/core/verbs/abandon.js +17 -0
- package/build/src/core/verbs/amend.d.ts +14 -0
- package/build/src/core/verbs/amend.js +56 -0
- package/build/src/core/verbs/arc.d.ts +13 -0
- package/build/src/core/verbs/arc.js +25 -0
- package/build/src/core/verbs/attestation.d.ts +13 -0
- package/build/src/core/verbs/attestation.js +21 -0
- package/build/src/core/verbs/bind.d.ts +13 -0
- package/build/src/core/verbs/bind.js +40 -0
- package/build/src/core/verbs/deliver.d.ts +13 -0
- package/build/src/core/verbs/deliver.js +26 -0
- package/build/src/core/verbs/placement.d.ts +13 -0
- package/build/src/core/verbs/placement.js +42 -0
- package/build/src/dispatch/index.d.ts +31 -0
- package/build/src/dispatch/index.js +159 -0
- package/build/src/git/admission.d.ts +18 -0
- package/build/src/git/admission.js +116 -0
- package/build/src/git/delivery.d.ts +20 -0
- package/build/src/git/delivery.js +109 -0
- package/build/src/git/hooks.d.ts +34 -0
- package/build/src/git/hooks.js +258 -0
- package/build/src/git/identity.d.ts +13 -0
- package/build/src/git/identity.js +28 -0
- package/build/src/git/observe.d.ts +38 -0
- package/build/src/git/observe.js +227 -0
- package/build/src/git/reconcile.d.ts +49 -0
- package/build/src/git/reconcile.js +223 -0
- package/build/src/git/repository.d.ts +80 -0
- package/build/src/git/repository.js +456 -0
- package/build/src/git/tree.d.ts +34 -0
- package/build/src/git/tree.js +112 -0
- package/build/src/git/verification.d.ts +14 -0
- package/build/src/git/verification.js +56 -0
- package/build/src/identity/coordinates.d.ts +9 -0
- package/build/src/identity/coordinates.js +20 -0
- package/build/src/identity/normalize.d.ts +8 -0
- package/build/src/identity/normalize.js +45 -0
- package/build/src/identity/selector.d.ts +6 -0
- package/build/src/identity/selector.js +7 -0
- package/build/src/index.d.ts +4 -0
- package/build/src/index.js +2 -0
- package/build/src/kanshi/index.d.ts +5 -0
- package/build/src/kanshi/index.js +2 -0
- package/build/src/kanshi/read.d.ts +5 -0
- package/build/src/kanshi/read.js +100 -0
- package/build/src/kanshi/report.d.ts +35 -0
- package/build/src/kanshi/select.d.ts +8 -0
- package/build/src/kanshi/select.js +21 -0
- package/build/src/library/akuma-creation.d.ts +79 -0
- package/build/src/library/akuma-creation.js +151 -0
- package/build/src/library/configuration.d.ts +26 -0
- package/build/src/library/configuration.js +100 -0
- package/build/src/library/contract.d.ts +145 -0
- package/build/src/library/contract.js +325 -0
- package/build/src/library/input.d.ts +13 -0
- package/build/src/library/input.js +82 -0
- package/build/src/library/keiyaku.d.ts +28 -0
- package/build/src/library/keiyaku.js +16 -0
- package/build/src/library/region.d.ts +17 -0
- package/build/src/library/region.js +30 -0
- package/build/src/library/repo.d.ts +33 -0
- package/build/src/library/repo.js +61 -0
- package/build/src/markdown/diff.d.ts +1 -0
- package/build/src/markdown/diff.js +4 -0
- package/build/src/markdown/lex.d.ts +3 -0
- package/build/src/markdown/lex.js +221 -0
- package/build/src/markdown/parse.d.ts +2 -0
- package/build/src/markdown/parse.js +221 -0
- package/build/src/markdown/query.d.ts +21 -0
- package/build/src/markdown/query.js +51 -0
- package/build/src/markdown/types.d.ts +118 -0
- package/build/src/markdown/types.js +6 -0
- package/build/src/protocol/attempt.d.ts +36 -0
- package/build/src/protocol/attempt.js +119 -0
- package/build/src/protocol/bind.d.ts +25 -0
- package/build/src/protocol/bind.js +62 -0
- package/build/src/protocol/intent.d.ts +52 -0
- package/build/src/protocol/intent.js +129 -0
- package/build/src/protocol/operations.d.ts +140 -0
- package/build/src/protocol/operations.js +373 -0
- package/build/src/protocol/outcome.d.ts +18 -0
- package/build/src/protocol/outcome.js +15 -0
- package/build/src/protocol/read/audit.d.ts +25 -0
- package/build/src/protocol/read/audit.js +39 -0
- package/build/src/protocol/read/documents.d.ts +8 -0
- package/build/src/protocol/read/documents.js +16 -0
- package/build/src/protocol/read/status.d.ts +38 -0
- package/build/src/protocol/read/status.js +47 -0
- package/build/src/protocol/run.d.ts +39 -0
- package/build/src/protocol/run.js +36 -0
- package/build/src/runtime/proc/line-rpc.d.ts +37 -0
- package/build/src/runtime/proc/line-rpc.js +124 -0
- package/build/src/runtime/proc/run.d.ts +54 -0
- package/build/src/runtime/proc/run.js +200 -0
- package/build/src/settings.d.ts +45 -0
- package/build/src/settings.js +99 -0
- package/build/src/settlement/holder.d.ts +15 -0
- package/build/src/settlement/holder.js +113 -0
- package/build/src/settlement/settle.d.ts +36 -0
- package/build/src/settlement/settle.js +91 -0
- package/build/src/task/board.d.ts +65 -0
- package/build/src/task/board.js +155 -0
- package/build/src/task/compose.d.ts +25 -0
- package/build/src/task/compose.js +232 -0
- package/build/src/task/context.d.ts +4 -0
- package/build/src/task/context.js +56 -0
- package/build/src/task/document.d.ts +24 -0
- package/build/src/task/document.js +118 -0
- package/build/src/task/identity.d.ts +12 -0
- package/build/src/task/identity.js +47 -0
- package/build/src/task/index.d.ts +90 -0
- package/build/src/task/index.js +179 -0
- package/build/src/task/operations.d.ts +115 -0
- package/build/src/task/operations.js +194 -0
- package/build/src/task/store.d.ts +22 -0
- package/build/src/task/store.js +114 -0
- package/build/src/verification/declaration.d.ts +22 -0
- package/build/src/verification/declaration.js +14 -0
- package/build/src/verification/producer.d.ts +23 -0
- package/build/src/verification/producer.js +54 -0
- package/package.json +62 -44
- package/build/.tsbuildinfo +0 -1
- package/build/agents/call-terms.js +0 -32
- package/build/agents/harness/activity-values.js +0 -70
- package/build/agents/harness/control-types.js +0 -18
- package/build/agents/harness/event-channel.js +0 -213
- package/build/agents/harness/event-persistence.js +0 -220
- package/build/agents/harness/events.js +0 -48
- package/build/agents/harness/execution-handle.js +0 -172
- package/build/agents/harness/index.js +0 -11
- package/build/agents/harness/outcome-error.js +0 -81
- package/build/agents/harness/outcome.js +0 -220
- package/build/agents/harness/projection.js +0 -369
- package/build/agents/harness/provider-adapter.js +0 -58
- package/build/agents/harness/router.js +0 -30
- package/build/agents/harness/runtime.js +0 -85
- package/build/agents/harness/session.js +0 -15
- package/build/agents/launch-snapshot/model.js +0 -127
- package/build/agents/launch-snapshot/parse-helpers.js +0 -114
- package/build/agents/launch-snapshot/resolve.js +0 -46
- package/build/agents/opencode-sdk.js +0 -159
- package/build/agents/providers/claude-agent-sdk/adapter.js +0 -396
- package/build/agents/providers/claude-agent-sdk/events.js +0 -218
- package/build/agents/providers/claude-agent-sdk/registration.js +0 -225
- package/build/agents/providers/claude-agent-sdk/session-schema.js +0 -2
- package/build/agents/providers/claude-agent-sdk/session.js +0 -172
- package/build/agents/providers/codex-app-server/adapter.js +0 -387
- package/build/agents/providers/codex-app-server/events.js +0 -492
- package/build/agents/providers/codex-app-server/identity.js +0 -1
- package/build/agents/providers/codex-app-server/policy.js +0 -29
- package/build/agents/providers/codex-app-server/registration.js +0 -259
- package/build/agents/providers/codex-app-server/session-schema.js +0 -6
- package/build/agents/providers/codex-app-server/session.js +0 -273
- package/build/agents/providers/event-type-tail.js +0 -16
- package/build/agents/providers/opencode-sdk/adapter.js +0 -402
- package/build/agents/providers/opencode-sdk/events.js +0 -380
- package/build/agents/providers/opencode-sdk/registration.js +0 -146
- package/build/agents/providers/opencode-sdk/session-schema.js +0 -2
- package/build/agents/providers/opencode-sdk/session.js +0 -187
- package/build/agents/providers/pi/adapter.js +0 -285
- package/build/agents/providers/pi/checkpoint.js +0 -49
- package/build/agents/providers/pi/events.js +0 -285
- package/build/agents/providers/pi/registration.js +0 -160
- package/build/agents/providers/pi/session-schema.js +0 -6
- package/build/agents/providers/registration.js +0 -7
- package/build/agents/providers/registry.js +0 -76
- package/build/agents/selector.js +0 -120
- package/build/agents/session.js +0 -29
- package/build/agents/string-tail-buffer.js +0 -44
- package/build/agents/types.js +0 -30
- package/build/artifact-directories.js +0 -22
- package/build/cli/commands/akuma/akuma/handler.js +0 -5
- package/build/cli/commands/akuma/akuma/meta.js +0 -17
- package/build/cli/commands/akuma/catalog.js +0 -10
- package/build/cli/commands/akuma/list/handler.js +0 -15
- package/build/cli/commands/akuma/list/meta-list.js +0 -12
- package/build/cli/commands/akuma/list/meta-ls.js +0 -9
- package/build/cli/commands/akuma/show/handler.js +0 -27
- package/build/cli/commands/akuma/show/meta.js +0 -8
- package/build/cli/commands/akuma.js +0 -186
- package/build/cli/commands/contract/amend/handler.js +0 -17
- package/build/cli/commands/contract/amend/meta.js +0 -13
- package/build/cli/commands/contract/arc/handler.js +0 -16
- package/build/cli/commands/contract/arc/meta.js +0 -28
- package/build/cli/commands/contract/audit/handler.js +0 -42
- package/build/cli/commands/contract/audit/meta.js +0 -17
- package/build/cli/commands/contract/bind/handler.js +0 -39
- package/build/cli/commands/contract/bind/meta.js +0 -96
- package/build/cli/commands/contract/catalog.js +0 -18
- package/build/cli/commands/contract/forfeit/handler.js +0 -17
- package/build/cli/commands/contract/forfeit/meta.js +0 -12
- package/build/cli/commands/contract/log/handler.js +0 -12
- package/build/cli/commands/contract/log/meta.js +0 -12
- package/build/cli/commands/contract/petition/handler.js +0 -64
- package/build/cli/commands/contract/petition/meta.js +0 -23
- package/build/cli/commands/contract/renew/handler.js +0 -65
- package/build/cli/commands/contract/renew/meta.js +0 -19
- package/build/cli/commands/metadata.js +0 -68
- package/build/cli/commands/projection/call/handler.js +0 -43
- package/build/cli/commands/projection/call/meta.js +0 -12
- package/build/cli/commands/projection/catalog.js +0 -16
- package/build/cli/commands/projection/fork/handler.js +0 -61
- package/build/cli/commands/projection/fork/meta.js +0 -12
- package/build/cli/commands/projection/history/handler.js +0 -65
- package/build/cli/commands/projection/history/meta.js +0 -9
- package/build/cli/commands/projection/kill/handler.js +0 -20
- package/build/cli/commands/projection/kill/meta.js +0 -11
- package/build/cli/commands/projection/shared.js +0 -27
- package/build/cli/commands/projection/status/handler.js +0 -42
- package/build/cli/commands/projection/status/meta.js +0 -20
- package/build/cli/commands/projection/tell/handler.js +0 -32
- package/build/cli/commands/projection/tell/meta.js +0 -12
- package/build/cli/commands/projection/wait/handler.js +0 -80
- package/build/cli/commands/projection/wait/meta.js +0 -16
- package/build/cli/commands/registry.js +0 -48
- package/build/cli/commands/shared.js +0 -74
- package/build/cli/commands/skills/catalog.js +0 -6
- package/build/cli/commands/skills/install/handler.js +0 -7
- package/build/cli/commands/skills/install/meta.js +0 -9
- package/build/cli/commands/skills/skills/handler.js +0 -4
- package/build/cli/commands/skills/skills/meta.js +0 -10
- package/build/cli/commands/system/catalog.js +0 -10
- package/build/cli/commands/system/completion/handler.js +0 -10
- package/build/cli/commands/system/completion/meta.js +0 -9
- package/build/cli/commands/system/dump-env/handler.js +0 -3
- package/build/cli/commands/system/dump-env/meta.js +0 -10
- package/build/cli/commands/system/guide/handler.js +0 -4
- package/build/cli/commands/system/guide/meta.js +0 -9
- package/build/cli/commands/task/add/handler.js +0 -38
- package/build/cli/commands/task/add/meta.js +0 -31
- package/build/cli/commands/task/catalog.js +0 -32
- package/build/cli/commands/task/compose/handler.js +0 -18
- package/build/cli/commands/task/compose/meta.js +0 -10
- package/build/cli/commands/task/doctor/handler.js +0 -3
- package/build/cli/commands/task/doctor/meta.js +0 -8
- package/build/cli/commands/task/done/handler.js +0 -10
- package/build/cli/commands/task/done/meta.js +0 -8
- package/build/cli/commands/task/drop/handler.js +0 -8
- package/build/cli/commands/task/drop/meta.js +0 -11
- package/build/cli/commands/task/hold/handler.js +0 -3
- package/build/cli/commands/task/hold/meta.js +0 -8
- package/build/cli/commands/task/log/handler.js +0 -12
- package/build/cli/commands/task/log/meta.js +0 -8
- package/build/cli/commands/task/ls/handler.js +0 -17
- package/build/cli/commands/task/ls/meta.js +0 -8
- package/build/cli/commands/task/note/handler.js +0 -6
- package/build/cli/commands/task/note/meta.js +0 -11
- package/build/cli/commands/task/resume/handler.js +0 -3
- package/build/cli/commands/task/resume/meta.js +0 -8
- package/build/cli/commands/task/shared.js +0 -181
- package/build/cli/commands/task/show/handler.js +0 -13
- package/build/cli/commands/task/show/meta.js +0 -8
- package/build/cli/commands/task/start/handler.js +0 -3
- package/build/cli/commands/task/start/meta.js +0 -8
- package/build/cli/commands/task/stop/handler.js +0 -10
- package/build/cli/commands/task/stop/meta.js +0 -8
- package/build/cli/commands/task/task/handler.js +0 -5
- package/build/cli/commands/task/task/meta.js +0 -11
- package/build/cli/commands/task/update/handler.js +0 -21
- package/build/cli/commands/task/update/meta.js +0 -12
- package/build/cli/commands/verification/handler.js +0 -43
- package/build/cli/commands/verification/meta.js +0 -13
- package/build/cli/completion.js +0 -91
- package/build/cli/draft-artifact.js +0 -50
- package/build/cli/flags.js +0 -321
- package/build/cli/help.js +0 -99
- package/build/cli/index.js +0 -333
- package/build/cli/missing-subcommand.js +0 -7
- package/build/cli/output-stream-error-policy.js +0 -31
- package/build/cli/parse-flags.js +0 -301
- package/build/cli/parse-metadata.js +0 -132
- package/build/cli/parse-selectors.js +0 -83
- package/build/cli/parse.js +0 -250
- package/build/cli/projection-address.js +0 -105
- package/build/cli/render/address.js +0 -101
- package/build/cli/render/amendment-warning.js +0 -8
- package/build/cli/render/arc.js +0 -88
- package/build/cli/render/audit.js +0 -440
- package/build/cli/render/call.js +0 -70
- package/build/cli/render/compact-text.js +0 -3
- package/build/cli/render/errors.js +0 -101
- package/build/cli/render/format.js +0 -226
- package/build/cli/render/kanshi.js +0 -300
- package/build/cli/render/kill.js +0 -9
- package/build/cli/render/lifecycle.js +0 -56
- package/build/cli/render/line-width.js +0 -103
- package/build/cli/render/misc.js +0 -84
- package/build/cli/render/path-prefix-compaction.js +0 -131
- package/build/cli/render/petition.js +0 -85
- package/build/cli/render/projection-activity.js +0 -332
- package/build/cli/render/projection-history.js +0 -77
- package/build/cli/render/response-style.js +0 -27
- package/build/cli/render/shared.js +0 -232
- package/build/cli/render/skills.js +0 -10
- package/build/cli/render/status-indicator.js +0 -47
- package/build/cli/render/status.js +0 -243
- package/build/cli/render/success-response.js +0 -95
- package/build/cli/render/task.js +0 -175
- package/build/cli/render/tell.js +0 -11
- package/build/cli/render/terminal-failure.js +0 -65
- package/build/cli/render/tool-command-normalization.js +0 -137
- package/build/cli/render/tool-ledger-rollup.js +0 -74
- package/build/cli/render/tool-presentation.js +0 -98
- package/build/cli/render/types.js +0 -2
- package/build/cli/render/verification.js +0 -23
- package/build/cli/render/wait.js +0 -343
- package/build/cli/skills-install.js +0 -348
- package/build/cli/subagent-guard.js +0 -25
- package/build/cli/types.js +0 -2
- package/build/config/akuma-loader.js +0 -240
- package/build/config/env-keys.js +0 -57
- package/build/config/env.js +0 -304
- package/build/config/provider-policy-ownership.js +0 -10
- package/build/config/settings/disease.js +0 -33
- package/build/config/settings/knobs.js +0 -14
- package/build/config/settings/loader.js +0 -275
- package/build/config/settings/provider-instance-fields.js +0 -51
- package/build/config/settings/schema.js +0 -113
- package/build/core/address-carrier.js +0 -89
- package/build/core/addressing.js +0 -407
- package/build/core/amend.js +0 -321
- package/build/core/amendment-criteria.js +0 -17
- package/build/core/amendment-warning.js +0 -10
- package/build/core/arc.js +0 -293
- package/build/core/atomic-publish.js +0 -64
- package/build/core/audit/candidate.js +0 -141
- package/build/core/audit/coordinates.js +0 -230
- package/build/core/audit/evidence.js +0 -156
- package/build/core/audit/facade.js +0 -65
- package/build/core/audit/readiness.js +0 -4
- package/build/core/audit/report.js +0 -38
- package/build/core/audit.js +0 -1
- package/build/core/bind-reconciliation.js +0 -409
- package/build/core/bind-workspace.js +0 -115
- package/build/core/bind.js +0 -503
- package/build/core/call/call.js +0 -235
- package/build/core/call/context.js +0 -210
- package/build/core/call/execution.js +0 -255
- package/build/core/call/prompt.js +0 -27
- package/build/core/call/reference.js +0 -24
- package/build/core/call-persist.js +0 -76
- package/build/core/command-markdown.js +0 -45
- package/build/core/context.js +0 -104
- package/build/core/contract-carrier-runtime.js +0 -512
- package/build/core/contract-carrier.js +0 -353
- package/build/core/contract-view.js +0 -319
- package/build/core/contract.js +0 -19
- package/build/core/derived-replay.js +0 -340
- package/build/core/draft.js +0 -400
- package/build/core/execution-coordinate.js +0 -46
- package/build/core/execution-pact.js +0 -126
- package/build/core/forfeit.js +0 -132
- package/build/core/hints.js +0 -34
- package/build/core/identifier-slug.js +0 -116
- package/build/core/ids.js +0 -90
- package/build/core/lifecycle-history.js +0 -48
- package/build/core/lifecycle-recovery.js +0 -122
- package/build/core/lifecycle-runner.js +0 -377
- package/build/core/log.js +0 -50
- package/build/core/markdown/lex.js +0 -274
- package/build/core/markdown/parser.js +0 -260
- package/build/core/markdown/render.js +0 -68
- package/build/core/markdown/sections.js +0 -80
- package/build/core/markdown/titles.js +0 -9
- package/build/core/markdown/types.js +0 -6
- package/build/core/outcome-base.js +0 -185
- package/build/core/places.js +0 -175
- package/build/core/projection/akuma-name.js +0 -43
- package/build/core/projection/generation/database.js +0 -473
- package/build/core/projection/generation/identity.js +0 -84
- package/build/core/projection/generation/ledger.js +0 -91
- package/build/core/projection/generation/model.js +0 -261
- package/build/core/projection/generation/projection-generation-continuation.js +0 -84
- package/build/core/projection/generation/projection-generation-doorbell.js +0 -88
- package/build/core/projection/generation/projection-generation-execution.js +0 -241
- package/build/core/projection/generation/projection-generation-identity.js +0 -21
- package/build/core/projection/generation/projection-generation-launcher.js +0 -154
- package/build/core/projection/generation/projection-generation-process.js +0 -47
- package/build/core/projection/generation/projection-generation-runner.js +0 -489
- package/build/core/projection/generation/projection-generation-runtime.js +0 -46
- package/build/core/projection/generation/protocol.js +0 -68
- package/build/core/projection/generation/store.js +0 -108
- package/build/core/projection/generation/transitions.js +0 -463
- package/build/core/projection/heart.js +0 -9
- package/build/core/projection/index.js +0 -28
- package/build/core/projection/projection-activity.js +0 -273
- package/build/core/projection/projection-alias.js +0 -131
- package/build/core/projection/projection-coordinate.js +0 -61
- package/build/core/projection/projection-core.js +0 -127
- package/build/core/projection/projection-execution-observer.js +0 -270
- package/build/core/projection/projection-history.js +0 -474
- package/build/core/projection/projection-identity.js +0 -11
- package/build/core/projection/projection-kill.js +0 -112
- package/build/core/projection/projection-life-observer.js +0 -101
- package/build/core/projection/projection-mint.js +0 -170
- package/build/core/projection/projection-status-observation.js +0 -434
- package/build/core/projection/projection-status.js +0 -442
- package/build/core/projection/projection-terminal-failure.js +0 -111
- package/build/core/projection/projection-wait.js +0 -337
- package/build/core/projection/projection-wake.js +0 -298
- package/build/core/projection/tell/launch-store.js +0 -244
- package/build/core/projection/tell/model.js +0 -98
- package/build/core/projection/tell/store.js +0 -245
- package/build/core/provider-loader-ports.js +0 -4
- package/build/core/registry.js +0 -100
- package/build/core/renew-build.js +0 -554
- package/build/core/renew-plan.js +0 -264
- package/build/core/renew-rewrite.js +0 -118
- package/build/core/renew.js +0 -345
- package/build/core/repository-ledger/accepted-fold-read.js +0 -22
- package/build/core/repository-ledger/accepted-tail.js +0 -116
- package/build/core/repository-ledger/admission.js +0 -38
- package/build/core/repository-ledger/authoritative-transaction.js +0 -1
- package/build/core/repository-ledger/claim-evidence.js +0 -147
- package/build/core/repository-ledger/codec.js +0 -303
- package/build/core/repository-ledger/current-state-store.js +0 -968
- package/build/core/repository-ledger/fold-repository.js +0 -374
- package/build/core/repository-ledger/fold.js +0 -248
- package/build/core/repository-ledger/git-object-store.js +0 -243
- package/build/core/repository-ledger/history-read.js +0 -15
- package/build/core/repository-ledger/identity.js +0 -60
- package/build/core/repository-ledger/incremental-read.js +0 -153
- package/build/core/repository-ledger/index.js +0 -15
- package/build/core/repository-ledger/inventory-plan.js +0 -75
- package/build/core/repository-ledger/inventory.js +0 -310
- package/build/core/repository-ledger/publication-admission.js +0 -125
- package/build/core/repository-ledger/publication.js +0 -353
- package/build/core/repository-ledger/read-model.js +0 -517
- package/build/core/repository-ledger/transaction-membership.js +0 -78
- package/build/core/repository-ledger/traversal.js +0 -404
- package/build/core/repository-ledger/write-transaction.js +0 -346
- package/build/core/response-artifact-catalog-sqlite.js +0 -112
- package/build/core/response-artifact-catalog.js +0 -7
- package/build/core/response-artifact-id.js +0 -5
- package/build/core/run-control/connection-bound-close.js +0 -41
- package/build/core/run-control/detached-lease-bootstrap.js +0 -208
- package/build/core/run-control/detached-process.js +0 -14
- package/build/core/run-control/index.js +0 -6
- package/build/core/run-control/process-tree.js +0 -139
- package/build/core/run-control/runner-lease.js +0 -172
- package/build/core/run-control/sqlite-process-lifetime-lock.js +0 -174
- package/build/core/scope.js +0 -416
- package/build/core/seal.js +0 -364
- package/build/core/settlement/claim-delivery.js +0 -82
- package/build/core/settlement/claim.js +0 -258
- package/build/core/settlement/index.js +0 -19
- package/build/core/settlement/petition-claim-gates.js +0 -247
- package/build/core/settlement/petition-forfeit.js +0 -46
- package/build/core/settlement/petition-head-guard.js +0 -12
- package/build/core/settlement/petition-io.js +0 -1
- package/build/core/settlement/petition-preview.js +0 -125
- package/build/core/settlement/petition-window.js +0 -50
- package/build/core/settlement/petition.js +0 -315
- package/build/core/settlement/queue-read-model.js +0 -120
- package/build/core/settlement/queue-seat-allocation.js +0 -65
- package/build/core/settlement/queue.js +0 -6
- package/build/core/settlement/settlement.js +0 -385
- package/build/core/settlement/verdict.js +0 -126
- package/build/core/settlement/verification.js +0 -554
- package/build/core/status/board.js +0 -455
- package/build/core/status/drift.js +0 -113
- package/build/core/status/lifecycle.js +0 -11
- package/build/core/stored-agent-event.js +0 -129
- package/build/core/structured-query.js +0 -23
- package/build/core/target-ref.js +0 -10
- package/build/core/task/board.js +0 -248
- package/build/core/task/commands.js +0 -401
- package/build/core/task/compose.js +0 -328
- package/build/core/task/coordinate.js +0 -56
- package/build/core/task/document.js +0 -273
- package/build/core/task/index.js +0 -16
- package/build/core/task/model.js +0 -8
- package/build/core/task/query.js +0 -204
- package/build/core/task/settlement-git.js +0 -423
- package/build/core/task/settlement-policy.js +0 -137
- package/build/core/task/source-board.js +0 -104
- package/build/core/task/source-model.js +0 -1
- package/build/core/task/task-bind-preparation.js +0 -243
- package/build/core/task/task-contract.js +0 -371
- package/build/core/task/task-doctor.js +0 -14
- package/build/core/task/task-file-transaction.js +0 -171
- package/build/core/task/task-git-actor.js +0 -33
- package/build/core/task/task-git-runtime.js +0 -97
- package/build/core/task/task-git-store.js +0 -400
- package/build/core/task/task-repository.js +0 -1
- package/build/core/task/task-store-repository.js +0 -97
- package/build/core/task/task-store.js +0 -1
- package/build/core/task/task-worktree.js +0 -25
- package/build/core/task/task.js +0 -7
- package/build/core/task/tree.js +0 -37
- package/build/core/task/validation.js +0 -48
- package/build/core/transcripts.js +0 -485
- package/build/core/validation.js +0 -17
- package/build/core/verification-declaration.js +0 -95
- package/build/core/worktree-bootstrap.js +0 -195
- package/build/core/worktree-path.js +0 -371
- package/build/errno.js +0 -3
- package/build/flow-error.js +0 -191
- package/build/fs/durability.js +0 -27
- package/build/fs/path-coordinate.js +0 -16
- package/build/generated/version.js +0 -3
- package/build/git/branches.js +0 -84
- package/build/git/commits.js +0 -151
- package/build/git/core.js +0 -86
- package/build/git/diff/parsers.js +0 -181
- package/build/git/diff/pathspec.js +0 -3
- package/build/git/diff/preview.js +0 -38
- package/build/git/diff/read.js +0 -105
- package/build/git/diff/structured.js +0 -127
- package/build/git/diff/types.js +0 -1
- package/build/git/path-coordinate.js +0 -17
- package/build/git/process.js +0 -229
- package/build/git/refs.js +0 -250
- package/build/git/staging.js +0 -79
- package/build/git/streaming-batch.js +0 -354
- package/build/git/worktree.js +0 -175
- package/build/index.js +0 -67
- package/build/keiyaku-constants.js +0 -2
- package/build/keiyaku.js +0 -30
- package/build/telemetry/debug-log.js +0 -40
- package/build/telemetry/logger.js +0 -48
- package/skills/keiyaku/SKILL.md +0 -46
- package/skills/keiyaku-akuma/SKILL.md +0 -97
- package/skills/keiyaku-task/SKILL.md +0 -118
- package/skills/keiyaku-workflow/SKILL.md +0 -191
- /package/build/{agents/launch-snapshot → src/body}/types.js +0 -0
- /package/build/{agents/providers/claude-agent-sdk/terms.js → src/cli/result.js} +0 -0
- /package/build/{agents/providers/codex-app-server/terms.js → src/core/decide.js} +0 -0
- /package/build/{agents/providers/opencode-sdk/terms.js → src/core/facts/offer.js} +0 -0
- /package/build/{agents/providers/pi/terms.js → src/kanshi/report.js} +0 -0
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
export const AGENT_ACTIVITY_WINDOW_SIZE = 10;
|
|
2
|
-
function eventTime(value) {
|
|
3
|
-
const parsed = Date.parse(value);
|
|
4
|
-
return Number.isFinite(parsed) ? parsed : undefined;
|
|
5
|
-
}
|
|
6
|
-
function duration(first, last) {
|
|
7
|
-
if (first === undefined || last === undefined)
|
|
8
|
-
return undefined;
|
|
9
|
-
return Math.max(0, last - first);
|
|
10
|
-
}
|
|
11
|
-
function warningIdentity(warning) {
|
|
12
|
-
if (warning.reason === "rate-limit") {
|
|
13
|
-
return JSON.stringify(warning);
|
|
14
|
-
}
|
|
15
|
-
if (warning.reason === "retry") {
|
|
16
|
-
return JSON.stringify({
|
|
17
|
-
reason: warning.reason,
|
|
18
|
-
attempt: warning.attempt,
|
|
19
|
-
maxRetries: warning.maxRetries,
|
|
20
|
-
retryDelayMs: warning.retryDelayMs,
|
|
21
|
-
errorStatus: warning.errorStatus,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
return JSON.stringify({
|
|
25
|
-
reason: warning.reason,
|
|
26
|
-
originalModel: warning.originalModel,
|
|
27
|
-
fallbackModel: warning.fallbackModel,
|
|
28
|
-
direction: warning.direction,
|
|
29
|
-
signerModel: warning.signerModel,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
function sortEvents(events) {
|
|
33
|
-
return events
|
|
34
|
-
.map((event, index) => ({
|
|
35
|
-
event,
|
|
36
|
-
order: Number.isFinite(event.seq) ? event.seq : index,
|
|
37
|
-
sourceIndex: index,
|
|
38
|
-
}))
|
|
39
|
-
.sort((left, right) => left.order - right.order || left.sourceIndex - right.sourceIndex)
|
|
40
|
-
.map(({ event, order }) => ({ event, order }));
|
|
41
|
-
}
|
|
42
|
-
/** Fold the provider-neutral event ledger once into the bounded UI activity model. */
|
|
43
|
-
export function foldAgentActivity(events, retentionOverride) {
|
|
44
|
-
const sorted = sortEvents(events);
|
|
45
|
-
const latestActivity = new Map();
|
|
46
|
-
const firstActivityCall = new Map();
|
|
47
|
-
const activityObservations = new Map();
|
|
48
|
-
const firstActivityAt = new Map();
|
|
49
|
-
const latestThought = new Map();
|
|
50
|
-
const firstThoughtAt = new Map();
|
|
51
|
-
const thoughtEventCount = new Map();
|
|
52
|
-
const latestMessage = new Map();
|
|
53
|
-
const warnings = new Map();
|
|
54
|
-
const usageByTurn = new Map();
|
|
55
|
-
const turns = [];
|
|
56
|
-
let latestPlan;
|
|
57
|
-
let diagnostic;
|
|
58
|
-
let failure;
|
|
59
|
-
let compacted = false;
|
|
60
|
-
for (const indexed of sorted) {
|
|
61
|
-
const event = indexed.event;
|
|
62
|
-
switch (event.type) {
|
|
63
|
-
case "message":
|
|
64
|
-
{
|
|
65
|
-
const key = JSON.stringify([event.turn, event.id]);
|
|
66
|
-
compacted ||= latestMessage.has(key);
|
|
67
|
-
latestMessage.set(key, indexed);
|
|
68
|
-
}
|
|
69
|
-
break;
|
|
70
|
-
case "activity": {
|
|
71
|
-
compacted ||= latestActivity.has(event.id);
|
|
72
|
-
latestActivity.set(event.id, indexed);
|
|
73
|
-
if (event.phase !== "updated" && !firstActivityCall.has(event.id))
|
|
74
|
-
firstActivityCall.set(event.id, event.call);
|
|
75
|
-
const observations = activityObservations.get(event.id) ?? [];
|
|
76
|
-
observations.push({
|
|
77
|
-
order: indexed.order,
|
|
78
|
-
at: event.at,
|
|
79
|
-
phase: event.phase,
|
|
80
|
-
...(event.result === undefined ? {} : { result: event.result }),
|
|
81
|
-
});
|
|
82
|
-
activityObservations.set(event.id, observations);
|
|
83
|
-
const at = eventTime(event.at);
|
|
84
|
-
if (at !== undefined && !firstActivityAt.has(event.id))
|
|
85
|
-
firstActivityAt.set(event.id, at);
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
case "thought": {
|
|
89
|
-
compacted ||= latestThought.has(event.id);
|
|
90
|
-
latestThought.set(event.id, indexed);
|
|
91
|
-
thoughtEventCount.set(event.id, (thoughtEventCount.get(event.id) ?? 0) + 1);
|
|
92
|
-
const at = eventTime(event.at);
|
|
93
|
-
if (at !== undefined && !firstThoughtAt.has(event.id))
|
|
94
|
-
firstThoughtAt.set(event.id, at);
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
case "warning": {
|
|
98
|
-
const identity = `${event.historyExecutionId ?? ""}:${warningIdentity(event.warning)}`;
|
|
99
|
-
const prior = warnings.get(identity);
|
|
100
|
-
compacted ||= prior !== undefined;
|
|
101
|
-
warnings.set(identity, { latest: indexed, count: (prior?.count ?? 0) + 1 });
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
case "usage":
|
|
105
|
-
usageByTurn.set(event.historyTurnKey ?? String(event.turn), event);
|
|
106
|
-
break;
|
|
107
|
-
case "plan":
|
|
108
|
-
latestPlan = indexed;
|
|
109
|
-
break;
|
|
110
|
-
case "diagnostic":
|
|
111
|
-
diagnostic = { at: event.at, text: event.text };
|
|
112
|
-
break;
|
|
113
|
-
case "fail":
|
|
114
|
-
failure = { at: event.at, message: event.message };
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
const settled = [];
|
|
119
|
-
const pinned = [];
|
|
120
|
-
const ledgerActivities = [];
|
|
121
|
-
for (const indexed of sorted) {
|
|
122
|
-
const event = indexed.event;
|
|
123
|
-
if (event.type === "message" && latestMessage.get(JSON.stringify([event.turn, event.id])) === indexed) {
|
|
124
|
-
settled.push({
|
|
125
|
-
kind: "said",
|
|
126
|
-
order: indexed.order,
|
|
127
|
-
at: event.at,
|
|
128
|
-
turn: event.turn,
|
|
129
|
-
id: event.id,
|
|
130
|
-
text: event.text,
|
|
131
|
-
settled: true,
|
|
132
|
-
});
|
|
133
|
-
continue;
|
|
134
|
-
}
|
|
135
|
-
if (event.type === "activity" && latestActivity.get(event.id) === indexed) {
|
|
136
|
-
const startedAtMs = firstActivityAt.get(event.id);
|
|
137
|
-
const observations = activityObservations.get(event.id) ?? [];
|
|
138
|
-
const call = firstActivityCall.get(event.id) ?? event.call;
|
|
139
|
-
const elapsed = observations.some((observation) => observation.phase === "started")
|
|
140
|
-
&& observations.some((observation) => observation.phase === "completed")
|
|
141
|
-
? duration(startedAtMs, eventTime(event.at))
|
|
142
|
-
: undefined;
|
|
143
|
-
const row = {
|
|
144
|
-
kind: "ran",
|
|
145
|
-
order: indexed.order,
|
|
146
|
-
at: event.at,
|
|
147
|
-
turn: event.turn,
|
|
148
|
-
id: event.id,
|
|
149
|
-
tool: event.tool,
|
|
150
|
-
call,
|
|
151
|
-
...(event.result === undefined ? {} : { result: event.result }),
|
|
152
|
-
truncated: event.truncated === true,
|
|
153
|
-
observations,
|
|
154
|
-
state: event.phase === "completed" ? "completed" : "running",
|
|
155
|
-
...(startedAtMs !== undefined ? { startedAtMs } : {}),
|
|
156
|
-
...(elapsed !== undefined ? { durationMs: elapsed } : {}),
|
|
157
|
-
settled: event.phase === "completed",
|
|
158
|
-
};
|
|
159
|
-
ledgerActivities.push(row);
|
|
160
|
-
(row.settled ? settled : pinned).push(row);
|
|
161
|
-
continue;
|
|
162
|
-
}
|
|
163
|
-
if (event.type === "thought" && latestThought.get(event.id) === indexed) {
|
|
164
|
-
const startedAtMs = firstThoughtAt.get(event.id);
|
|
165
|
-
const elapsed = thoughtEventCount.get(event.id) >= 2
|
|
166
|
-
? duration(startedAtMs, eventTime(event.at))
|
|
167
|
-
: undefined;
|
|
168
|
-
const row = {
|
|
169
|
-
kind: "thought",
|
|
170
|
-
order: indexed.order,
|
|
171
|
-
at: event.at,
|
|
172
|
-
turn: event.turn,
|
|
173
|
-
id: event.id,
|
|
174
|
-
text: event.text,
|
|
175
|
-
final: event.final,
|
|
176
|
-
truncated: event.truncated === true,
|
|
177
|
-
...(startedAtMs !== undefined ? { startedAtMs } : {}),
|
|
178
|
-
...(elapsed !== undefined ? { durationMs: elapsed } : {}),
|
|
179
|
-
settled: event.final,
|
|
180
|
-
};
|
|
181
|
-
(row.settled ? settled : pinned).push(row);
|
|
182
|
-
continue;
|
|
183
|
-
}
|
|
184
|
-
if (event.type === "warning") {
|
|
185
|
-
const aggregate = warnings.get(`${event.historyExecutionId ?? ""}:${warningIdentity(event.warning)}`);
|
|
186
|
-
if (aggregate?.latest !== indexed)
|
|
187
|
-
continue;
|
|
188
|
-
settled.push({
|
|
189
|
-
kind: "warning",
|
|
190
|
-
order: indexed.order,
|
|
191
|
-
at: event.at,
|
|
192
|
-
turn: event.turn,
|
|
193
|
-
warning: event.warning,
|
|
194
|
-
count: aggregate.count,
|
|
195
|
-
settled: true,
|
|
196
|
-
});
|
|
197
|
-
continue;
|
|
198
|
-
}
|
|
199
|
-
if (event.type === "turn" && event.phase === "completed") {
|
|
200
|
-
const usage = usageByTurn.get(event.historyTurnKey ?? String(event.turn));
|
|
201
|
-
turns.push({
|
|
202
|
-
kind: "turn",
|
|
203
|
-
order: indexed.order,
|
|
204
|
-
at: event.at,
|
|
205
|
-
turn: event.turn,
|
|
206
|
-
...(usage
|
|
207
|
-
? {
|
|
208
|
-
inputTokens: usage.inputTokens,
|
|
209
|
-
outputTokens: usage.outputTokens,
|
|
210
|
-
...(usage.cachedInputTokens !== undefined ? { cachedInputTokens: usage.cachedInputTokens } : {}),
|
|
211
|
-
...(usage.costUsd !== undefined ? { costUsd: usage.costUsd } : {}),
|
|
212
|
-
...(usage.model !== undefined ? { model: usage.model } : {}),
|
|
213
|
-
}
|
|
214
|
-
: {}),
|
|
215
|
-
settled: true,
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
settled.sort((left, right) => left.order - right.order);
|
|
220
|
-
pinned.sort((left, right) => left.order - right.order);
|
|
221
|
-
const window = settled.slice(-AGENT_ACTIVITY_WINDOW_SIZE);
|
|
222
|
-
const omittedSettledCount = Math.max(0, settled.length - window.length);
|
|
223
|
-
const visibleOrders = [...window, ...pinned].map((row) => row.order);
|
|
224
|
-
const relevantTurns = visibleOrders.length === 0
|
|
225
|
-
? turns.slice(-1)
|
|
226
|
-
: turns.filter((row) => row.order >= Math.min(...visibleOrders));
|
|
227
|
-
const timeline = [...window, ...relevantTurns, ...pinned].sort((left, right) => left.order - right.order);
|
|
228
|
-
const retainedTimeline = [...settled, ...turns, ...pinned].sort((left, right) => left.order - right.order);
|
|
229
|
-
const truncated = retainedTimeline.some((row) => (row.kind === "ran" || row.kind === "thought") && row.truncated);
|
|
230
|
-
const bounded = sorted.some(({ event }) => event.type === "truncation");
|
|
231
|
-
let plan;
|
|
232
|
-
if (latestPlan?.event.type === "plan") {
|
|
233
|
-
const event = latestPlan.event;
|
|
234
|
-
const active = event.items.find((item) => item.active === true) ?? event.items.find((item) => !item.done);
|
|
235
|
-
plan = {
|
|
236
|
-
order: latestPlan.order,
|
|
237
|
-
at: event.at,
|
|
238
|
-
turn: event.turn,
|
|
239
|
-
id: event.id,
|
|
240
|
-
done: event.items.filter((item) => item.done).length,
|
|
241
|
-
total: event.items.length,
|
|
242
|
-
...(active ? { activeItem: active.text } : {}),
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
return {
|
|
246
|
-
window,
|
|
247
|
-
omittedSettledCount,
|
|
248
|
-
pinned,
|
|
249
|
-
timeline,
|
|
250
|
-
retainedTimeline,
|
|
251
|
-
retention: {
|
|
252
|
-
state: retentionOverride ?? (bounded ? "bounded" : truncated ? "truncated" : compacted ? "compacted" : "complete"),
|
|
253
|
-
retainedCount: retainedTimeline.length,
|
|
254
|
-
range: retainedTimeline.length > 0
|
|
255
|
-
? { first: retainedTimeline[0].order, last: retainedTimeline.at(-1).order }
|
|
256
|
-
: null,
|
|
257
|
-
},
|
|
258
|
-
ledgerActivities,
|
|
259
|
-
ledgerTurns: turns,
|
|
260
|
-
...(plan ? { plan } : {}),
|
|
261
|
-
...(diagnostic ? { diagnostic } : {}),
|
|
262
|
-
...(failure ? { failure } : {}),
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
|
-
/**
|
|
266
|
-
* Public wait/status activity deliberately excludes provider-origin terminal
|
|
267
|
-
* prose. Diagnostic and fail-event text remains available to artifact/internal
|
|
268
|
-
* consumers through the full fold, but has no JSON or human projection path.
|
|
269
|
-
*/
|
|
270
|
-
export function foldPublicProjectionActivity(events, retentionOverride) {
|
|
271
|
-
const { diagnostic: _diagnostic, failure: _failure, ...activity } = foldAgentActivity(events, retentionOverride);
|
|
272
|
-
return activity;
|
|
273
|
-
}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
import { isErrnoException } from "../../errno.js";
|
|
4
|
-
import { syncDirectorySync } from "../../fs/durability.js";
|
|
5
|
-
import { ProjectionStateError, randomHex8 } from "../atomic-publish.js";
|
|
6
|
-
import { resolveProjectionCoordinate } from "./projection-coordinate.js";
|
|
7
|
-
import { isProjectionId } from "./projection-core.js";
|
|
8
|
-
export const PROJECTION_ALIAS_PATTERN = /^[a-z0-9][a-z0-9-]{0,63}$/;
|
|
9
|
-
const MAX_ALIAS_REF_BYTES = 1024;
|
|
10
|
-
export function isProjectionAlias(value) {
|
|
11
|
-
return PROJECTION_ALIAS_PATTERN.test(value);
|
|
12
|
-
}
|
|
13
|
-
export function assertProjectionAlias(value) {
|
|
14
|
-
if (!isProjectionAlias(value)) {
|
|
15
|
-
throw new ProjectionStateError("projection alias must match ^[a-z0-9][a-z0-9-]{0,63}$");
|
|
16
|
-
}
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
export function projectionAliasRootAtCoordinate(coordinate) {
|
|
20
|
-
return path.join(coordinate.physicalRoot, ".keiyaku", "projection-alias");
|
|
21
|
-
}
|
|
22
|
-
export async function projectionAliasRoot(cwd) {
|
|
23
|
-
return projectionAliasRootAtCoordinate(await resolveProjectionCoordinate(cwd));
|
|
24
|
-
}
|
|
25
|
-
function projectionAliasPathAtRoot(root, alias) {
|
|
26
|
-
assertProjectionAlias(alias);
|
|
27
|
-
return path.join(root, alias);
|
|
28
|
-
}
|
|
29
|
-
export async function projectionAliasPath(cwd, alias) {
|
|
30
|
-
return projectionAliasPathAtRoot(await projectionAliasRoot(cwd), alias);
|
|
31
|
-
}
|
|
32
|
-
function invalidAliasRef(filePath) {
|
|
33
|
-
return new ProjectionStateError(`invalid projection alias ref: ${filePath}`);
|
|
34
|
-
}
|
|
35
|
-
function readBoundedRegularAliasRef(filePath) {
|
|
36
|
-
let before;
|
|
37
|
-
try {
|
|
38
|
-
before = fs.lstatSync(filePath);
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
if (isErrnoException(error) && error.code === "ENOENT")
|
|
42
|
-
return undefined;
|
|
43
|
-
throw error;
|
|
44
|
-
}
|
|
45
|
-
if (!before.isFile() || before.size > MAX_ALIAS_REF_BYTES)
|
|
46
|
-
throw invalidAliasRef(filePath);
|
|
47
|
-
let fd;
|
|
48
|
-
try {
|
|
49
|
-
fd = fs.openSync(filePath, fs.constants.O_RDONLY | fs.constants.O_NOFOLLOW);
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
if (isErrnoException(error) && error.code === "ELOOP")
|
|
53
|
-
throw invalidAliasRef(filePath);
|
|
54
|
-
throw error;
|
|
55
|
-
}
|
|
56
|
-
try {
|
|
57
|
-
const opened = fs.fstatSync(fd);
|
|
58
|
-
if (!opened.isFile() || opened.size > MAX_ALIAS_REF_BYTES)
|
|
59
|
-
throw invalidAliasRef(filePath);
|
|
60
|
-
const bytes = Buffer.alloc(opened.size);
|
|
61
|
-
const count = fs.readSync(fd, bytes, 0, bytes.length, 0);
|
|
62
|
-
if (count !== bytes.length)
|
|
63
|
-
throw invalidAliasRef(filePath);
|
|
64
|
-
return bytes.toString("utf8");
|
|
65
|
-
}
|
|
66
|
-
finally {
|
|
67
|
-
fs.closeSync(fd);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/** Undefined means no ref; malformed refs fail closed with their exact sidecar path. */
|
|
71
|
-
export async function readProjectionAliasAtRoot(root, alias) {
|
|
72
|
-
const filePath = projectionAliasPathAtRoot(root, alias);
|
|
73
|
-
const content = readBoundedRegularAliasRef(filePath);
|
|
74
|
-
if (content === undefined)
|
|
75
|
-
return undefined;
|
|
76
|
-
if (!content.endsWith("\n") || content.indexOf("\n") !== content.length - 1)
|
|
77
|
-
throw invalidAliasRef(filePath);
|
|
78
|
-
const id = content.slice(0, -1);
|
|
79
|
-
if (!isProjectionId(id))
|
|
80
|
-
throw invalidAliasRef(filePath);
|
|
81
|
-
return id;
|
|
82
|
-
}
|
|
83
|
-
/** Cwd-facing compatibility entry point; multi-alias callers should reuse a resolved root. */
|
|
84
|
-
export async function readProjectionAlias(cwd, alias) {
|
|
85
|
-
return readProjectionAliasAtRoot(await projectionAliasRoot(cwd), alias);
|
|
86
|
-
}
|
|
87
|
-
/** Atomically replace one alias ref. Aliases intentionally have no multi-ref transaction. */
|
|
88
|
-
async function moveProjectionAliasAtRoot(root, alias, id) {
|
|
89
|
-
assertProjectionAlias(alias);
|
|
90
|
-
if (!isProjectionId(id))
|
|
91
|
-
throw new ProjectionStateError(`invalid projection id: ${id}`);
|
|
92
|
-
const previous = await readProjectionAliasAtRoot(root, alias);
|
|
93
|
-
fs.mkdirSync(root, { recursive: true });
|
|
94
|
-
const target = projectionAliasPathAtRoot(root, alias);
|
|
95
|
-
let temp;
|
|
96
|
-
try {
|
|
97
|
-
for (let attempt = 0; attempt < 16; attempt += 1) {
|
|
98
|
-
const candidate = path.join(root, `.tmp.${randomHex8()}`);
|
|
99
|
-
try {
|
|
100
|
-
const fd = fs.openSync(candidate, fs.constants.O_WRONLY | fs.constants.O_CREAT | fs.constants.O_EXCL, 0o600);
|
|
101
|
-
temp = candidate;
|
|
102
|
-
try {
|
|
103
|
-
fs.writeFileSync(fd, `${id}\n`, "utf8");
|
|
104
|
-
fs.fsyncSync(fd);
|
|
105
|
-
}
|
|
106
|
-
finally {
|
|
107
|
-
fs.closeSync(fd);
|
|
108
|
-
}
|
|
109
|
-
break;
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
if (isErrnoException(error) && error.code === "EEXIST")
|
|
113
|
-
continue;
|
|
114
|
-
throw error;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
if (!temp)
|
|
118
|
-
throw new ProjectionStateError(`failed to create projection alias temp: ${target}`);
|
|
119
|
-
fs.renameSync(temp, target);
|
|
120
|
-
syncDirectorySync(root);
|
|
121
|
-
}
|
|
122
|
-
finally {
|
|
123
|
-
if (temp)
|
|
124
|
-
fs.rmSync(temp, { force: true });
|
|
125
|
-
}
|
|
126
|
-
return previous;
|
|
127
|
-
}
|
|
128
|
-
/** Cwd-facing compatibility entry point; writers with a resolved root avoid rediscovery. */
|
|
129
|
-
export async function moveProjectionAlias(cwd, alias, id) {
|
|
130
|
-
return moveProjectionAliasAtRoot(await projectionAliasRoot(cwd), alias, id);
|
|
131
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import * as path from "node:path";
|
|
2
|
-
import { ProjectionStateError } from "../atomic-publish.js";
|
|
3
|
-
import { createGit, isGitExecutableUnavailable, NOT_GIT_REPOSITORY_PATTERNS, } from "../../git/core.js";
|
|
4
|
-
import { normalizeFilesystemCoordinate } from "../../fs/path-coordinate.js";
|
|
5
|
-
import { gitCommonRootPath, resolveGitCommonRoot } from "../../git/path-coordinate.js";
|
|
6
|
-
/**
|
|
7
|
-
* Resolve projection storage root and authority from one Git probe.
|
|
8
|
-
*
|
|
9
|
-
* A non-bare repository uses the parent of its absolute common Git directory,
|
|
10
|
-
* so every linked worktree shares one coordinate. Repo-free callers retain the
|
|
11
|
-
* existing cwd-local authority until its replacement is legislated.
|
|
12
|
-
*/
|
|
13
|
-
export async function resolveProjectionCoordinate(cwd) {
|
|
14
|
-
cwd = normalizeFilesystemCoordinate(cwd);
|
|
15
|
-
const git = createGit(cwd);
|
|
16
|
-
let response;
|
|
17
|
-
try {
|
|
18
|
-
response = await git.raw([
|
|
19
|
-
"rev-parse",
|
|
20
|
-
"--is-bare-repository",
|
|
21
|
-
"--path-format=absolute",
|
|
22
|
-
"--git-common-dir",
|
|
23
|
-
]);
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
if (isGitExecutableUnavailable(error)) {
|
|
27
|
-
return { physicalRoot: cwd, authority: { kind: "user" } };
|
|
28
|
-
}
|
|
29
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
30
|
-
if (NOT_GIT_REPOSITORY_PATTERNS.some((pattern) => message.includes(pattern))) {
|
|
31
|
-
return { physicalRoot: cwd, authority: { kind: "user" } };
|
|
32
|
-
}
|
|
33
|
-
throw new ProjectionStateError(`cannot resolve projection repository coordinate: ${message}`);
|
|
34
|
-
}
|
|
35
|
-
const [bare, commonDir] = response.trim().split(/\r?\n/);
|
|
36
|
-
const stableRoot = commonDir === undefined ? undefined : gitCommonRootPath(commonDir);
|
|
37
|
-
if (bare !== "false" || !commonDir || !stableRoot || !path.isAbsolute(stableRoot)) {
|
|
38
|
-
return { physicalRoot: cwd, authority: { kind: "user" } };
|
|
39
|
-
}
|
|
40
|
-
let physicalRoot;
|
|
41
|
-
try {
|
|
42
|
-
physicalRoot = await resolveGitCommonRoot(commonDir);
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
throw new ProjectionStateError(`cannot resolve projection repository root ${stableRoot}`, { cause: error });
|
|
46
|
-
}
|
|
47
|
-
return {
|
|
48
|
-
physicalRoot,
|
|
49
|
-
authority: { kind: "repository", stableRoot: physicalRoot },
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Select the filesystem authority for repository projection state.
|
|
54
|
-
*
|
|
55
|
-
* A non-bare repository uses the parent of its absolute common Git directory,
|
|
56
|
-
* so every linked worktree shares one coordinate. Repo-free callers retain the
|
|
57
|
-
* existing cwd-local authority until its replacement is legislated.
|
|
58
|
-
*/
|
|
59
|
-
export async function projectionCoordinateRoot(cwd) {
|
|
60
|
-
return (await resolveProjectionCoordinate(cwd)).physicalRoot;
|
|
61
|
-
}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
import { isErrnoException } from "../../errno.js";
|
|
4
|
-
import { resolveProjectionCoordinate } from "./projection-coordinate.js";
|
|
5
|
-
import { ProjectionStateError, } from "../atomic-publish.js";
|
|
6
|
-
import { isAkumaName } from "./akuma-name.js";
|
|
7
|
-
export { atomicPublishFile, ProjectionStateError, randomHex8 } from "../atomic-publish.js";
|
|
8
|
-
export { isTellCausallyConsumed, } from "./tell/model.js";
|
|
9
|
-
export { bindTellLaunchReservation, claimAllInbox, claimAndReserveFencedTells, claimFencedTells, listTellLaunchBatch, listTellLaunchAdmissions, isTellLaunchAdmissionMember, claimTellToInflight, listTellIds, markTellSubmitted, recordTellReceiptCapabilities, recordTellReceipt, readTellReceiptCapabilities, readTellOriginal, readTellSubmitted, snapshotPendingTells, writeInboxTell, } from "./tell/store.js";
|
|
10
|
-
/** Relative segments for `.keiyaku/projection`. */
|
|
11
|
-
export const PROJECTION_ROOT_SEGMENTS = [".keiyaku", "projection"];
|
|
12
|
-
const PROJECTION_HEX_PATTERN = /^[0-9a-f]{8}$/;
|
|
13
|
-
export function isProjectionId(value) {
|
|
14
|
-
const slash = value.indexOf("/");
|
|
15
|
-
if (slash <= 0 || slash !== value.lastIndexOf("/"))
|
|
16
|
-
return false;
|
|
17
|
-
return isAkumaName(value.slice(0, slash)) && PROJECTION_HEX_PATTERN.test(value.slice(slash + 1));
|
|
18
|
-
}
|
|
19
|
-
/** Derive one projection storage root from already-resolved repository authority. */
|
|
20
|
-
export function projectionRootAtCoordinate(coordinate) {
|
|
21
|
-
return path.join(coordinate.physicalRoot, ...PROJECTION_ROOT_SEGMENTS);
|
|
22
|
-
}
|
|
23
|
-
export async function projectionRoot(cwd) {
|
|
24
|
-
return projectionRootAtCoordinate(await resolveProjectionCoordinate(cwd));
|
|
25
|
-
}
|
|
26
|
-
/** Derive one projection directory from already-resolved repository authority. */
|
|
27
|
-
export function projectionDirAtCoordinate(coordinate, id) {
|
|
28
|
-
if (!isProjectionId(id))
|
|
29
|
-
throw new ProjectionStateError(`invalid projection id: ${id}`);
|
|
30
|
-
const [akuma, hex] = id.split("/");
|
|
31
|
-
return path.join(projectionRootAtCoordinate(coordinate), akuma, hex);
|
|
32
|
-
}
|
|
33
|
-
export async function projectionDir(cwd, id) {
|
|
34
|
-
if (!isProjectionId(id))
|
|
35
|
-
throw new ProjectionStateError(`invalid projection id: ${id}`);
|
|
36
|
-
return projectionDirAtCoordinate(await resolveProjectionCoordinate(cwd), id);
|
|
37
|
-
}
|
|
38
|
-
export function encodeProjectionJson(value) {
|
|
39
|
-
return `${JSON.stringify(value)}\n`;
|
|
40
|
-
}
|
|
41
|
-
export function isoFromNowMs(nowMs) {
|
|
42
|
-
if (!Number.isSafeInteger(nowMs) || nowMs < 0) {
|
|
43
|
-
throw new ProjectionStateError("nowMs must be a safe non-negative integer");
|
|
44
|
-
}
|
|
45
|
-
return new Date(nowMs).toISOString();
|
|
46
|
-
}
|
|
47
|
-
/** A published projection is any visible non-dot real directory under the projection root. */
|
|
48
|
-
export function isPublishedProjection(dir) {
|
|
49
|
-
try {
|
|
50
|
-
return !path.basename(dir).startsWith(".") && fs.lstatSync(dir).isDirectory();
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
const PROJECTION_EXECUTION_ID_PATTERN = /^[0-9A-HJKMNP-TV-Z]{26}$/;
|
|
57
|
-
function assertProjectionExecutionId(executionId) {
|
|
58
|
-
if (!PROJECTION_EXECUTION_ID_PATTERN.test(executionId)) {
|
|
59
|
-
throw new ProjectionStateError(`invalid projection execution id: ${executionId}`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
export function executionEventsPath(projectionDirectory, executionId) {
|
|
63
|
-
assertProjectionExecutionId(executionId);
|
|
64
|
-
return path.join(projectionDirectory, `${executionId}.events.jsonl`);
|
|
65
|
-
}
|
|
66
|
-
export function appendGenerationEvent(projectionDirectory, executionId, event) {
|
|
67
|
-
const filePath = executionEventsPath(projectionDirectory, executionId);
|
|
68
|
-
fs.appendFileSync(filePath, encodeProjectionJson(event), "utf8");
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Read one generation's event ledger. A writer may be interrupted while
|
|
72
|
-
* appending its final line, so only an unterminated final residue is ignored.
|
|
73
|
-
* Earlier complete lines remain strict ledger records.
|
|
74
|
-
*/
|
|
75
|
-
export function readGenerationEvents(projectionDirectory, executionId) {
|
|
76
|
-
return readGenerationEventsWithRetention(projectionDirectory, executionId).events;
|
|
77
|
-
}
|
|
78
|
-
/** Distinguishes a deliberately empty ledger from an absent generation ledger. */
|
|
79
|
-
export function readGenerationEventsWithRetention(projectionDirectory, executionId) {
|
|
80
|
-
let content;
|
|
81
|
-
try {
|
|
82
|
-
content = fs.readFileSync(executionEventsPath(projectionDirectory, executionId), "utf8");
|
|
83
|
-
}
|
|
84
|
-
catch (error) {
|
|
85
|
-
if (isErrnoException(error) && error.code === "ENOENT")
|
|
86
|
-
return { events: [], retention: "unavailable" };
|
|
87
|
-
throw error;
|
|
88
|
-
}
|
|
89
|
-
const lines = content.split("\n");
|
|
90
|
-
const terminated = content.endsWith("\n");
|
|
91
|
-
const completeLines = lines.slice(0, -1);
|
|
92
|
-
const events = [];
|
|
93
|
-
for (const line of completeLines) {
|
|
94
|
-
events.push(JSON.parse(line));
|
|
95
|
-
}
|
|
96
|
-
if (!terminated && lines.at(-1)) {
|
|
97
|
-
try {
|
|
98
|
-
events.push(JSON.parse(lines.at(-1)));
|
|
99
|
-
}
|
|
100
|
-
catch {
|
|
101
|
-
// A concurrent append can leave only this final record incomplete.
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return { events, retention: "available" };
|
|
105
|
-
}
|
|
106
|
-
export function readProjectionEvents(projectionDirectory) {
|
|
107
|
-
let entries;
|
|
108
|
-
try {
|
|
109
|
-
entries = fs.readdirSync(projectionDirectory, { withFileTypes: true });
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
if (isErrnoException(error) && error.code === "ENOENT")
|
|
113
|
-
return [];
|
|
114
|
-
throw error;
|
|
115
|
-
}
|
|
116
|
-
const names = entries
|
|
117
|
-
.filter((entry) => (entry.isFile()
|
|
118
|
-
&& /^[0-9A-HJKMNP-TV-Z]{26}\.events\.jsonl$/.test(entry.name)))
|
|
119
|
-
.map((entry) => entry.name)
|
|
120
|
-
.sort();
|
|
121
|
-
const events = [];
|
|
122
|
-
for (const name of names) {
|
|
123
|
-
const executionId = name.slice(0, -".events.jsonl".length);
|
|
124
|
-
events.push(...readGenerationEvents(projectionDirectory, executionId));
|
|
125
|
-
}
|
|
126
|
-
return events;
|
|
127
|
-
}
|