@astrosheep/keiyaku 4.5.29 → 4.6.2
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/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku/SKILL.md +0 -13
- package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/SKILL.md +47 -78
- package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/references/automation.md +54 -41
- package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-babysit/SKILL.md +10 -0
- package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-bind/SKILL.md +27 -9
- package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-workflow/SKILL.md +68 -71
- package/build/src/akuma/akuma-call.d.ts +53 -0
- package/build/src/akuma/akuma-call.js +113 -0
- package/build/src/akuma/akuma-instance.d.ts +20 -18
- package/build/src/akuma/akuma-instance.js +65 -175
- package/build/src/akuma/akuma-observe.d.ts +3 -21
- package/build/src/akuma/akuma-observe.js +7 -24
- package/build/src/akuma/{akuma-handle.d.ts → akuma-owner.d.ts} +55 -27
- package/build/src/akuma/{akuma-handle.js → akuma-owner.js} +24 -23
- package/build/src/akuma/akuma-selection-execution.d.ts +51 -0
- package/build/src/akuma/akuma-selection-execution.js +134 -0
- package/build/src/akuma/{fleet-execution.d.ts → akuma-wait.d.ts} +24 -44
- package/build/src/akuma/akuma-wait.js +113 -0
- package/build/src/akuma/akuma.d.ts +35 -89
- package/build/src/akuma/akuma.js +148 -30
- package/build/src/akuma/archetype.d.ts +12 -0
- package/build/src/akuma/archetype.js +47 -19
- package/build/src/akuma/body.d.ts +76 -36
- package/build/src/akuma/body.js +84 -49
- package/build/src/akuma/call-initial-tell.d.ts +131 -22
- package/build/src/akuma/call-initial-tell.js +31 -1
- package/build/src/akuma/call-request.d.ts +237 -31
- package/build/src/akuma/call-request.js +67 -94
- package/build/src/akuma/coordinate.d.ts +15 -5
- package/build/src/akuma/coordinate.js +12 -22
- package/build/src/akuma/dispatch-association.d.ts +1 -1
- package/build/src/akuma/dispatch-association.js +1 -10
- package/build/src/akuma/heart/activity-schema.d.ts +325 -0
- package/build/src/akuma/heart/activity-schema.js +53 -0
- package/build/src/akuma/heart/facts.d.ts +1 -6
- package/build/src/akuma/heart/index.d.ts +3 -1
- package/build/src/akuma/heart/index.js +4 -1
- package/build/src/akuma/heart/rows.d.ts +49 -2
- package/build/src/akuma/heart/rows.js +16 -2
- package/build/src/akuma/heart/soul.d.ts +1 -0
- package/build/src/akuma/heart/soul.js +6 -4
- package/build/src/akuma/heart/tells.d.ts +1 -0
- package/build/src/akuma/heart/tells.js +18 -0
- package/build/src/akuma/identity.d.ts +10 -7
- package/build/src/akuma/identity.js +23 -0
- package/build/src/akuma/index.d.ts +10 -8
- package/build/src/akuma/index.js +2 -2
- package/build/src/akuma/nuke.d.ts +3 -0
- package/build/src/akuma/nuke.js +13 -7
- package/build/src/akuma/projection.d.ts +0 -5
- package/build/src/akuma/projection.js +22 -43
- package/build/src/akuma/provider-recipe.d.ts +58 -13
- package/build/src/akuma/provider-recipe.js +62 -80
- package/build/src/akuma/provider.d.ts +6 -76
- package/build/src/akuma/provider.js +11 -219
- package/build/src/akuma/providers/acp/config.d.ts +2 -0
- package/build/src/akuma/providers/acp/config.js +26 -1
- package/build/src/akuma/providers/acp/core.d.ts +7 -0
- package/build/src/akuma/providers/acp/core.js +49 -18
- package/build/src/akuma/providers/acp/index.js +14 -6
- package/build/src/akuma/providers/grok-build/index.js +44 -13
- package/build/src/akuma/providers/index.d.ts +3 -3
- package/build/src/akuma/providers/index.js +2 -13
- package/build/src/akuma/providers/opencode-sdk/event-stream.d.ts +28 -0
- package/build/src/akuma/providers/opencode-sdk/event-stream.js +92 -0
- package/build/src/akuma/providers/opencode-sdk/events.d.ts +0 -1
- package/build/src/akuma/providers/opencode-sdk/index.js +200 -64
- package/build/src/akuma/providers/opencode-sdk/session.d.ts +41 -1
- package/build/src/akuma/providers/opencode-sdk/session.js +69 -2
- package/build/src/akuma/providers/pi/events.js +5 -2
- package/build/src/akuma/providers/pi/index.d.ts +3 -4
- package/build/src/akuma/providers/pi/index.js +99 -45
- package/build/src/akuma/publication.d.ts +84 -3
- package/build/src/akuma/publication.js +145 -2
- package/build/src/akuma/read-pool.d.ts +2 -0
- package/build/src/akuma/read-pool.js +15 -0
- package/build/src/akuma/request-rendezvous.js +10 -0
- package/build/src/akuma/request-serve.js +7 -0
- package/build/src/akuma/request-wire.d.ts +14 -26
- package/build/src/akuma/request-wire.js +4 -0
- package/build/src/akuma/requests.d.ts +0 -2
- package/build/src/akuma/requests.js +0 -17
- package/build/src/akuma/{fleet-observation.d.ts → selection-observation.d.ts} +37 -36
- package/build/src/akuma/selection-observation.js +65 -0
- package/build/src/akuma/{fleet-owner-port.d.ts → selection-owner-port.d.ts} +3 -3
- package/build/src/akuma/{fleet-owner-port.js → selection-owner-port.js} +11 -17
- package/build/src/akuma/{fleet-request.d.ts → selection-request.d.ts} +42 -82
- package/build/src/akuma/{fleet-request.js → selection-request.js} +92 -136
- package/build/src/akuma/turn-drive.js +73 -14
- package/build/src/akuma-body.js +91 -56
- package/build/src/body/amend.d.ts +5 -0
- package/build/src/body/amend.js +26 -50
- package/build/src/body/arc.d.ts +4 -2
- package/build/src/body/arc.js +19 -26
- package/build/src/body/criteria.d.ts +6 -0
- package/build/src/body/criteria.js +37 -0
- package/build/src/body/decode.js +5 -42
- package/build/src/body/region.d.ts +5 -0
- package/build/src/body/region.js +45 -2
- package/build/src/body/render.js +2 -4
- package/build/src/cli/activity.d.ts +26 -0
- package/build/src/cli/activity.js +75 -0
- package/build/src/cli/actor.d.ts +3 -1
- package/build/src/cli/actor.js +15 -2
- package/build/src/cli/commands/akuma-grammar.d.ts +75 -0
- package/build/src/cli/commands/akuma-grammar.js +414 -0
- package/build/src/cli/commands/akuma.d.ts +5 -69
- package/build/src/cli/commands/akuma.js +352 -319
- package/build/src/cli/commands/amend.d.ts +4 -5
- package/build/src/cli/commands/amend.js +1 -2
- package/build/src/cli/commands/bind.d.ts +4 -5
- package/build/src/cli/commands/bind.js +7 -10
- package/build/src/cli/commands/contract-grammar.d.ts +112 -0
- package/build/src/cli/commands/contract-grammar.js +282 -0
- package/build/src/cli/commands/contract-help.d.ts +17 -22
- package/build/src/cli/commands/contract-help.js +37 -24
- package/build/src/cli/commands/contract.d.ts +18 -97
- package/build/src/cli/commands/contract.js +621 -233
- package/build/src/cli/commands/install.d.ts +1 -1
- package/build/src/cli/commands/install.js +2 -2
- package/build/src/cli/commands/task-grammar.d.ts +19 -0
- package/build/src/cli/commands/task-grammar.js +438 -0
- package/build/src/cli/commands/task-query.js +23 -104
- package/build/src/cli/commands/task.d.ts +5 -20
- package/build/src/cli/commands/task.js +414 -364
- package/build/src/cli/coordinates.d.ts +10 -0
- package/build/src/cli/coordinates.js +20 -0
- package/build/src/cli/draft.d.ts +7 -1
- package/build/src/cli/main.js +10 -1
- package/build/src/cli/parse.d.ts +8 -9
- package/build/src/cli/parse.js +62 -62
- package/build/src/cli/render/akuma-activity.d.ts +54 -36
- package/build/src/cli/render/akuma-activity.js +262 -242
- package/build/src/cli/render/akuma-tool.d.ts +8 -4
- package/build/src/cli/render/akuma-tool.js +6 -5
- package/build/src/cli/render/akuma.d.ts +36 -16
- package/build/src/cli/render/akuma.js +65 -132
- package/build/src/cli/render/audit.d.ts +6 -2
- package/build/src/cli/render/audit.js +59 -28
- package/build/src/cli/render/catalog.d.ts +11 -2
- package/build/src/cli/render/catalog.js +75 -95
- package/build/src/cli/render/contract-history.d.ts +3 -1
- package/build/src/cli/render/contract-history.js +215 -22
- package/build/src/cli/render/contract-observation.d.ts +10 -5
- package/build/src/cli/render/contract-observation.js +29 -46
- package/build/src/cli/render/contract.d.ts +10 -3
- package/build/src/cli/render/contract.js +252 -103
- package/build/src/cli/render/effects.d.ts +26 -0
- package/build/src/cli/render/effects.js +41 -0
- package/build/src/cli/render/execution-progress.d.ts +18 -6
- package/build/src/cli/render/execution-progress.js +34 -31
- package/build/src/cli/render/kanshi-akuma.d.ts +1 -2
- package/build/src/cli/render/kanshi-akuma.js +5 -26
- package/build/src/cli/render/kanshi.js +107 -128
- package/build/src/cli/render/marks.d.ts +13 -0
- package/build/src/cli/render/marks.js +74 -0
- package/build/src/cli/render/nuke.js +18 -7
- package/build/src/cli/render/receipt.d.ts +10 -4
- package/build/src/cli/render/receipt.js +124 -44
- package/build/src/cli/render/reconcile.d.ts +5 -0
- package/build/src/cli/render/reconcile.js +152 -0
- package/build/src/cli/render/refusal.d.ts +21 -4
- package/build/src/cli/render/refusal.js +60 -33
- package/build/src/cli/render/region.js +3 -2
- package/build/src/cli/render/settings.js +2 -12
- package/build/src/cli/render/task.d.ts +37 -6
- package/build/src/cli/render/task.js +161 -157
- package/build/src/cli/render/terminal.d.ts +20 -1
- package/build/src/cli/render/terminal.js +92 -18
- package/build/src/cli/runtime.d.ts +32 -8
- package/build/src/cli/runtime.js +157 -165
- package/build/src/cli/selectors.d.ts +5 -2
- package/build/src/cli/selectors.js +11 -3
- package/build/src/cli/streams.d.ts +11 -0
- package/build/src/cli/streams.js +32 -0
- package/build/src/cli/usage.d.ts +2 -0
- package/build/src/cli/usage.js +12 -8
- package/build/src/contract-guidance.js +3 -7
- package/build/src/contract-worktree.d.ts +20 -28
- package/build/src/contract-worktree.js +18 -70
- package/build/src/coordination/durable-file.d.ts +2 -2
- package/build/src/coordination/durable-file.js +0 -27
- package/build/src/core/facts/codec.d.ts +1 -2
- package/build/src/core/facts/codec.js +6 -7
- package/build/src/core/facts/gate.d.ts +0 -1
- package/build/src/core/facts/gate.js +0 -82
- package/build/src/core/facts/types.d.ts +1 -2
- package/build/src/core/verbs/abandon.d.ts +2 -6
- package/build/src/core/verbs/abandon.js +0 -16
- package/build/src/core/verbs/amend.d.ts +0 -1
- package/build/src/core/verbs/amend.js +0 -20
- package/build/src/core/verbs/arc.d.ts +7 -8
- package/build/src/core/verbs/arc.js +2 -19
- package/build/src/core/verbs/attestation.d.ts +2 -6
- package/build/src/core/verbs/attestation.js +0 -16
- package/build/src/core/verbs/bind.d.ts +0 -1
- package/build/src/core/verbs/bind.js +0 -16
- package/build/src/core/verbs/deliver.d.ts +0 -1
- package/build/src/core/verbs/deliver.js +0 -16
- package/build/src/core/verbs/placement.d.ts +2 -1
- package/build/src/core/verbs/placement.js +10 -59
- package/build/src/git/admission.d.ts +6 -4
- package/build/src/git/admission.js +4 -0
- package/build/src/git/hooks.d.ts +55 -30
- package/build/src/git/hooks.js +30 -3
- package/build/src/git/identity.d.ts +6 -0
- package/build/src/git/identity.js +47 -0
- package/build/src/git/integration.d.ts +31 -13
- package/build/src/git/integration.js +32 -1
- package/build/src/git/nuke.d.ts +10 -1
- package/build/src/git/nuke.js +31 -11
- package/build/src/git/observe.js +2 -15
- package/build/src/git/private-state-seat.d.ts +6 -7
- package/build/src/git/private-state-seat.js +8 -6
- package/build/src/git/read-observation.d.ts +6 -1
- package/build/src/git/read-observation.js +81 -46
- package/build/src/git/reconcile.d.ts +117 -40
- package/build/src/git/reconcile.js +169 -40
- package/build/src/git/scratch.d.ts +7 -4
- package/build/src/git/scratch.js +28 -6
- package/build/src/git/target-placement.d.ts +53 -38
- package/build/src/git/target-placement.js +69 -54
- package/build/src/git/tender.d.ts +37 -28
- package/build/src/git/tender.js +39 -0
- package/build/src/git/terminal-reconcile.js +21 -23
- package/build/src/git/terminal-seal.d.ts +8 -6
- package/build/src/git/terminal-seal.js +10 -0
- package/build/src/git/workspace.d.ts +29 -15
- package/build/src/git/workspace.js +28 -2
- package/build/src/identity/normalize.js +19 -6
- package/build/src/index.d.ts +78 -7
- package/build/src/index.js +52 -4
- package/build/src/kanshi/read.d.ts +3 -3
- package/build/src/kanshi/read.js +21 -21
- package/build/src/kanshi/report.d.ts +9 -8
- package/build/src/kanshi/roster.d.ts +2 -0
- package/build/src/kanshi/roster.js +2 -0
- package/build/src/kanshi/select.js +7 -3
- package/build/src/library/address.d.ts +3 -7
- package/build/src/library/address.js +7 -7
- package/build/src/library/akuma-creation.d.ts +21 -32
- package/build/src/library/akuma-creation.js +148 -165
- package/build/src/library/akumas.d.ts +20 -22
- package/build/src/library/akumas.js +43 -20
- package/build/src/library/bind.d.ts +107 -13
- package/build/src/library/bind.js +29 -23
- package/build/src/library/continuation.d.ts +556 -28
- package/build/src/library/continuation.js +29 -54
- package/build/src/library/contract-composition.d.ts +40 -0
- package/build/src/library/contract-composition.js +105 -0
- package/build/src/library/contract-creation.d.ts +7 -0
- package/build/src/library/contract-creation.js +192 -0
- package/build/src/library/contract-execution.d.ts +29 -40
- package/build/src/library/contract-execution.js +503 -128
- package/build/src/library/contract-operations.d.ts +275 -134
- package/build/src/library/contract-operations.js +83 -92
- package/build/src/library/contract-outcomes.d.ts +71 -0
- package/build/src/library/contract-outcomes.js +32 -0
- package/build/src/library/contract-settings.d.ts +25 -0
- package/build/src/library/contract-settings.js +135 -0
- package/build/src/library/contract-types.d.ts +17 -38
- package/build/src/library/delivery.d.ts +530 -10
- package/build/src/library/delivery.js +20 -45
- package/build/src/library/input.d.ts +3 -1
- package/build/src/library/input.js +11 -16
- package/build/src/library/invocation.d.ts +87 -0
- package/build/src/library/invocation.js +290 -0
- package/build/src/library/keiyaku.d.ts +45 -22
- package/build/src/library/keiyaku.js +134 -8
- package/build/src/library/nuke.d.ts +2 -11
- package/build/src/library/nuke.js +70 -57
- package/build/src/library/outcome.d.ts +13196 -0
- package/build/src/library/outcome.js +487 -0
- package/build/src/library/reconcile.d.ts +96 -24
- package/build/src/library/reconcile.js +102 -42
- package/build/src/library/refusal.d.ts +470 -42
- package/build/src/library/refusal.js +55 -143
- package/build/src/library/region.d.ts +15 -7
- package/build/src/library/region.js +23 -3
- package/build/src/library/repo.d.ts +2 -12
- package/build/src/library/repo.js +1 -22
- package/build/src/library/selection.d.ts +121 -0
- package/build/src/library/{fleet.js → selection.js} +169 -152
- package/build/src/plugin/public.d.ts +2 -0
- package/build/src/protocol/abandon.d.ts +2 -2
- package/build/src/protocol/abandon.js +1 -0
- package/build/src/protocol/amend.js +1 -0
- package/build/src/protocol/arc.d.ts +6 -4
- package/build/src/protocol/attempt.d.ts +4 -2
- package/build/src/protocol/attempt.js +10 -0
- package/build/src/protocol/audit.d.ts +255 -52
- package/build/src/protocol/audit.js +63 -5
- package/build/src/protocol/bind.d.ts +18 -17
- package/build/src/protocol/bind.js +9 -28
- package/build/src/protocol/completion.d.ts +256 -22
- package/build/src/protocol/completion.js +100 -12
- package/build/src/protocol/deliver.d.ts +34 -23
- package/build/src/protocol/deliver.js +39 -25
- package/build/src/protocol/execution-observation.d.ts +36 -37
- package/build/src/protocol/execution-observation.js +7 -9
- package/build/src/protocol/intent.d.ts +101 -30
- package/build/src/protocol/intent.js +74 -1
- package/build/src/protocol/operations.d.ts +570 -64
- package/build/src/protocol/operations.js +189 -9
- package/build/src/protocol/outcome.d.ts +2 -1
- package/build/src/protocol/placement.d.ts +2 -2
- package/build/src/protocol/placement.js +3 -1
- package/build/src/protocol/progress.d.ts +108 -65
- package/build/src/protocol/progress.js +82 -132
- package/build/src/protocol/read/status.d.ts +4 -3
- package/build/src/protocol/read/status.js +6 -5
- package/build/src/protocol/reconcile.d.ts +3 -3
- package/build/src/protocol/reconcile.js +4 -0
- package/build/src/protocol/reintegrate.d.ts +2 -2
- package/build/src/protocol/review.d.ts +30 -12
- package/build/src/protocol/review.js +15 -24
- package/build/src/protocol/run.d.ts +34 -5
- package/build/src/protocol/run.js +24 -12
- package/build/src/runtime/proc/windows-launch.exe +0 -0
- package/build/src/settings.d.ts +0 -10
- package/build/src/settings.js +0 -76
- package/build/src/settlement/holder.d.ts +1 -1
- package/build/src/settlement/settle.d.ts +25 -16
- package/build/src/settlement/settle.js +80 -20
- package/build/src/task/board.d.ts +3 -1
- package/build/src/task/board.js +13 -17
- package/build/src/task/catalog.d.ts +0 -4
- package/build/src/task/catalog.js +0 -15
- package/build/src/task/compose-language.d.ts +19 -9
- package/build/src/task/compose-language.js +30 -20
- package/build/src/task/compose.d.ts +7 -37
- package/build/src/task/compose.js +20 -2
- package/build/src/task/created-observation.d.ts +0 -1
- package/build/src/task/created-observation.js +1 -4
- package/build/src/task/document.d.ts +12 -2
- package/build/src/task/document.js +4 -0
- package/build/src/task/identity.d.ts +4 -1
- package/build/src/task/identity.js +21 -17
- package/build/src/task/index.d.ts +36 -16
- package/build/src/task/index.js +103 -96
- package/build/src/task/lifecycle-operations.d.ts +1 -1
- package/build/src/task/mutation-result.d.ts +647 -586
- package/build/src/task/mutation-result.js +79 -46
- package/build/src/task/mutation.d.ts +298 -270
- package/build/src/task/mutation.js +93 -110
- package/build/src/task/operation-types.d.ts +6 -49
- package/build/src/task/operations.d.ts +2 -1
- package/build/src/task/operations.js +35 -12
- package/build/src/task/query.d.ts +9 -3
- package/build/src/task/query.js +42 -16
- package/build/src/task/store.d.ts +2 -1
- package/build/src/task/store.js +10 -14
- package/build/src/verification/declaration.d.ts +0 -1
- package/build/src/verification/declaration.js +1 -18
- package/build/src/verification/execution.d.ts +6 -2
- package/build/src/verification/observation.d.ts +1 -1
- package/package.json +2 -18
- package/build/src/akuma/akuma-product.d.ts +0 -58
- package/build/src/akuma/akuma-product.js +0 -276
- package/build/src/akuma/fleet-execution.js +0 -234
- package/build/src/akuma/fleet-observation.js +0 -97
- package/build/src/cli/accepted.d.ts +0 -24
- package/build/src/cli/accepted.js +0 -167
- package/build/src/cli/catalog.d.ts +0 -45
- package/build/src/cli/catalog.js +0 -1
- package/build/src/cli/commands/akuma-invoke.d.ts +0 -114
- package/build/src/cli/commands/akuma-invoke.js +0 -375
- package/build/src/cli/commands/contract-invoke.d.ts +0 -34
- package/build/src/cli/commands/contract-invoke.js +0 -259
- package/build/src/cli/commands/nuke.d.ts +0 -10
- package/build/src/cli/commands/nuke.js +0 -20
- package/build/src/cli/commands/status-set.d.ts +0 -4
- package/build/src/cli/commands/status-set.js +0 -52
- package/build/src/cli/commands/task-invoke.d.ts +0 -49
- package/build/src/cli/commands/task-invoke.js +0 -306
- package/build/src/cli/invoke.d.ts +0 -27
- package/build/src/cli/invoke.js +0 -521
- package/build/src/cli/render/board.d.ts +0 -3
- package/build/src/cli/render/board.js +0 -25
- package/build/src/cli/render/status-set.d.ts +0 -5
- package/build/src/cli/render/status-set.js +0 -19
- package/build/src/cli/render/text.d.ts +0 -3
- package/build/src/cli/render/text.js +0 -33
- package/build/src/cli/result.d.ts +0 -240
- package/build/src/cli/result.js +0 -1
- package/build/src/git/result-codec.d.ts +0 -29
- package/build/src/git/result-codec.js +0 -309
- package/build/src/kanshi/fleet.d.ts +0 -6
- package/build/src/kanshi/fleet.js +0 -27
- package/build/src/library/audit.d.ts +0 -29
- package/build/src/library/audit.js +0 -41
- package/build/src/library/composition.d.ts +0 -15
- package/build/src/library/composition.js +0 -28
- package/build/src/library/configuration.d.ts +0 -4
- package/build/src/library/configuration.js +0 -2
- package/build/src/library/contract-bind.d.ts +0 -31
- package/build/src/library/contract-bind.js +0 -140
- package/build/src/library/contract-forwarding.d.ts +0 -55
- package/build/src/library/contract-forwarding.js +0 -67
- package/build/src/library/contract-handle.d.ts +0 -50
- package/build/src/library/contract-handle.js +0 -385
- package/build/src/library/contract.d.ts +0 -46
- package/build/src/library/contract.js +0 -73
- package/build/src/library/execution-result.d.ts +0 -243
- package/build/src/library/execution-result.js +0 -101
- package/build/src/library/execution.d.ts +0 -8
- package/build/src/library/execution.js +0 -102
- package/build/src/library/fleet.d.ts +0 -83
- package/build/src/library/mutation.d.ts +0 -501
- package/build/src/library/mutation.js +0 -248
- package/build/src/library/result-codec.d.ts +0 -2
- package/build/src/library/result-codec.js +0 -12
- package/build/src/protocol/result-codec.d.ts +0 -23
- package/build/src/protocol/result-codec.js +0 -488
- package/build/src/settlement/result-codec.d.ts +0 -2
- package/build/src/settlement/result-codec.js +0 -56
- package/build/src/task/public.d.ts +0 -2
- package/build/src/task/public.js +0 -1
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import type { ActivityRow, SnapshotRow } from "../../akuma/
|
|
1
|
+
import type { ActivityRow, SnapshotRow } from "../../akuma/projection.js";
|
|
2
2
|
import type { AkumaObservation } from "../../index.js";
|
|
3
|
-
type
|
|
3
|
+
type StatusTimelineRow = Extract<AkumaObservation["status"]["timeline"]["entries"][number], {
|
|
4
4
|
kind: "row";
|
|
5
5
|
}>["row"];
|
|
6
|
-
type ToolRow = Extract<ActivityRow | SnapshotRow |
|
|
6
|
+
type ToolRow = Extract<ActivityRow | SnapshotRow | StatusTimelineRow, {
|
|
7
7
|
kind: "tool";
|
|
8
8
|
}>;
|
|
9
9
|
/** The bounded body of a generic tool row, including its terminal diagnostic. */
|
|
10
10
|
export declare function toolContent(row: ToolRow, columns: number): string;
|
|
11
|
-
export declare function toolLabel(row: ToolRow): string;
|
|
12
11
|
/** The trailing failure, duration, or message clause one settled tool row carries, otherwise the empty string. */
|
|
13
12
|
export declare function toolDiagnostic(row: ToolRow): string;
|
|
14
13
|
export type ToolRepr = Readonly<{
|
|
@@ -23,6 +22,11 @@ export type ToolRepr = Readonly<{
|
|
|
23
22
|
diagnostic?: string;
|
|
24
23
|
}>;
|
|
25
24
|
}>;
|
|
25
|
+
/** The one diffstat renderer: unknown stays unknown, known renders compact additions and removals. */
|
|
26
|
+
export declare function renderDiffstat(diffstat: Readonly<{
|
|
27
|
+
added: number;
|
|
28
|
+
removed: number;
|
|
29
|
+
}> | undefined): string;
|
|
26
30
|
/** Pure provider-neutral tool presentation; it performs no activity selection. */
|
|
27
31
|
export declare function toolRepr(row: ToolRow): ToolRepr;
|
|
28
32
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { displayColumns, truncateDisplayText } from "./terminal.js";
|
|
2
1
|
import { normalizeToolCommand } from "./akuma-tool-command.js";
|
|
2
|
+
import { displayColumns, truncateDisplayText } from "./terminal.js";
|
|
3
3
|
/** The bounded body of a generic tool row, including its terminal diagnostic. */
|
|
4
4
|
export function toolContent(row, columns) {
|
|
5
5
|
const input = row.call.kind === "other" ? row.call.input : undefined;
|
|
@@ -24,9 +24,6 @@ export function toolContent(row, columns) {
|
|
|
24
24
|
}
|
|
25
25
|
return `${truncateDisplayText(text, width)}${diagnostic}`;
|
|
26
26
|
}
|
|
27
|
-
export function toolLabel(row) {
|
|
28
|
-
return toolCore(row).label;
|
|
29
|
-
}
|
|
30
27
|
/** The trailing failure, duration, or message clause one settled tool row carries, otherwise the empty string. */
|
|
31
28
|
export function toolDiagnostic(row) {
|
|
32
29
|
const suffix = result(row);
|
|
@@ -156,6 +153,10 @@ function commonOtherText(row) {
|
|
|
156
153
|
}
|
|
157
154
|
return undefined;
|
|
158
155
|
}
|
|
156
|
+
/** The one diffstat renderer: unknown stays unknown, known renders compact additions and removals. */
|
|
157
|
+
export function renderDiffstat(diffstat) {
|
|
158
|
+
return diffstat === undefined ? "~" : `+${diffstat.added} -${diffstat.removed}`;
|
|
159
|
+
}
|
|
159
160
|
function fileChange(call, state) {
|
|
160
161
|
const first = call.changes[0];
|
|
161
162
|
if (first === undefined)
|
|
@@ -174,7 +175,7 @@ function fileChange(call, state) {
|
|
|
174
175
|
removed: sum.removed + change.diffstat.removed,
|
|
175
176
|
}), { added: 0, removed: 0 })
|
|
176
177
|
: undefined;
|
|
177
|
-
const detail = `${call.changes.length === 1 ? "" : " ..."} — ${totals
|
|
178
|
+
const detail = `${call.changes.length === 1 ? "" : " ..."} — ${renderDiffstat(totals)}`;
|
|
178
179
|
return { label, text: `${before}${path}${detail}`, pathPreview: { before, path, detail } };
|
|
179
180
|
}
|
|
180
181
|
/** One provider-neutral core owns every tool-kind label and non-generic body. */
|
|
@@ -1,25 +1,45 @@
|
|
|
1
|
-
import type { CallWaitHead } from "../../index.js";
|
|
2
|
-
import type { AkumaInvocationResult } from "../commands/akuma-invoke.js";
|
|
3
|
-
import type { ParsedCommand } from "../parse.js";
|
|
4
|
-
import { type ObservedCallHead } from "./akuma-activity.js";
|
|
5
|
-
import type { AkumaTellWaitResult } from "../../akuma/fleet-observation.js";
|
|
6
|
-
import type { AkuId } from "../../akuma/identity.js";
|
|
7
1
|
import type { LiveStatusObservation } from "../../akuma/akuma-observe.js";
|
|
8
|
-
import type { TellResult } from "../../akuma/
|
|
2
|
+
import type { TellResult } from "../../akuma/body.js";
|
|
3
|
+
import type { AkuId } from "../../akuma/identity.js";
|
|
4
|
+
import type { AkumaAskResult, AkumaKillResult, AkumaObservation, AkumaTellResult, AkumaWaitResult } from "../../akuma/selection-observation.js";
|
|
5
|
+
import type { CallWaitHead, ForkResult } from "../../index.js";
|
|
6
|
+
import type { CallResult } from "../../library/akuma-creation.js";
|
|
7
|
+
import type { AkumaHistoryResult } from "../../library/selection.js";
|
|
8
|
+
import { type ObservedCallHead } from "./akuma-activity.js";
|
|
9
9
|
import { type TextRenderContext } from "./terminal.js";
|
|
10
|
-
export type
|
|
10
|
+
export type AskProgress = Readonly<{
|
|
11
11
|
admitted: (tell: TellResult, id: AkuId) => readonly string[];
|
|
12
12
|
observe: (observation: LiveStatusObservation) => readonly string[];
|
|
13
|
-
|
|
13
|
+
frame: () => readonly string[];
|
|
14
|
+
flush: () => readonly string[];
|
|
15
|
+
conclude: (result: AkumaAskResult) => readonly string[];
|
|
14
16
|
}>;
|
|
15
|
-
export declare function
|
|
16
|
-
export declare function waitedTellProgress(result:
|
|
17
|
-
export declare function akumaRawAnswer(result: AkumaInvocationResult): string | undefined;
|
|
17
|
+
export declare function askProgressStream(akuma: AkuId | undefined, alias: string | undefined, context: TextRenderContext): AskProgress;
|
|
18
|
+
export declare function waitedTellProgress(result: AkumaAskResult, alias: string | undefined, context: TextRenderContext): string;
|
|
18
19
|
/** The shared identity frame for one admitted call input. */
|
|
19
20
|
export declare function callObservationHead(input: Readonly<{
|
|
20
21
|
akuma: string;
|
|
21
22
|
}> & CallWaitHead): ObservedCallHead;
|
|
22
|
-
export declare function
|
|
23
|
-
export declare function
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
export declare function renderCallText(result: CallResult, streamed: boolean, context: TextRenderContext): string;
|
|
24
|
+
export declare function renderWaitText(result: AkumaWaitResult, presentation: Readonly<{
|
|
25
|
+
alias?: string;
|
|
26
|
+
startedAt?: number;
|
|
27
|
+
selection?: readonly import("./akuma-activity.js").WaitSelectedIdentity[];
|
|
28
|
+
}>, context?: TextRenderContext): string;
|
|
29
|
+
export declare function renderStatusText(status: AkumaObservation, alias: string | undefined, context?: TextRenderContext): string;
|
|
30
|
+
export declare function renderTellText(result: AkumaTellResult, alias: string | undefined, context?: TextRenderContext, options?: Readonly<{
|
|
31
|
+
identity?: boolean;
|
|
32
|
+
}>): string;
|
|
33
|
+
export declare function renderHistoryText(result: AkumaHistoryResult, presentation: Readonly<{
|
|
34
|
+
alias?: string;
|
|
35
|
+
id?: string;
|
|
36
|
+
last?: boolean;
|
|
37
|
+
}>, context?: TextRenderContext): string;
|
|
38
|
+
export declare function renderForkText(receipt: ForkResult): string;
|
|
39
|
+
export declare function renderKillText(result: AkumaKillResult, alias: string | undefined, context: TextRenderContext): string;
|
|
40
|
+
export declare function callExitCode(result: CallResult): number;
|
|
41
|
+
export declare function killExitCode(result: AkumaKillResult): number;
|
|
42
|
+
export declare function tellExitCode(result: AkumaTellResult): number;
|
|
43
|
+
export declare function askExitCode(result: AkumaAskResult): number;
|
|
44
|
+
export declare function forkExitCode(receipt: ForkResult): number;
|
|
45
|
+
export declare function historyExitCode(result: AkumaHistoryResult, id: string | undefined): number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DEFAULT_CONTEXT,
|
|
1
|
+
import { DEFAULT_CONTEXT, associatedIdentity, historyText, inputWaitStream, killResultText, snapshotHeading, snapshotText, tellText, waitText, } from "./akuma-activity.js";
|
|
2
2
|
import { safeText } from "./terminal.js";
|
|
3
|
-
export function
|
|
3
|
+
export function askProgressStream(akuma, alias, context) {
|
|
4
4
|
let target = akuma;
|
|
5
5
|
const stream = inputWaitStream(context, () => {
|
|
6
6
|
if (target === undefined)
|
|
@@ -13,19 +13,12 @@ export function tellWaitProgressStream(akuma, alias, context) {
|
|
|
13
13
|
return stream.admitted({
|
|
14
14
|
at: tell.row.at,
|
|
15
15
|
sequence: tell.row.sequence,
|
|
16
|
-
rows: [
|
|
17
|
-
tellText({
|
|
18
|
-
kind: "akuma",
|
|
19
|
-
action: "tell",
|
|
20
|
-
mode: "ordinary",
|
|
21
|
-
result: { akuma: target, tell },
|
|
22
|
-
body: "",
|
|
23
|
-
...(alias === undefined ? {} : { alias }),
|
|
24
|
-
}, context, { identity: false }),
|
|
25
|
-
],
|
|
16
|
+
rows: [tellText({ akuma: target, tell }, alias, context, { identity: false })],
|
|
26
17
|
});
|
|
27
18
|
},
|
|
28
19
|
observe: (observation) => stream.observe(observation),
|
|
20
|
+
frame: () => stream.frame(),
|
|
21
|
+
flush: () => stream.flush(),
|
|
29
22
|
conclude: (result) => [
|
|
30
23
|
stream.conclude({
|
|
31
24
|
kind: "observed",
|
|
@@ -36,12 +29,9 @@ export function tellWaitProgressStream(akuma, alias, context) {
|
|
|
36
29
|
};
|
|
37
30
|
}
|
|
38
31
|
export function waitedTellProgress(result, alias, context) {
|
|
39
|
-
const stream =
|
|
32
|
+
const stream = askProgressStream(result.akuma, alias, context);
|
|
40
33
|
return [...stream.admitted(result.tell, result.akuma), ...stream.conclude(result)].join("\n");
|
|
41
34
|
}
|
|
42
|
-
export function akumaRawAnswer(result) {
|
|
43
|
-
return akumaActivityRawAnswer(result);
|
|
44
|
-
}
|
|
45
35
|
function dispatchLines(stage) {
|
|
46
36
|
if (stage.kind === "none")
|
|
47
37
|
return [];
|
|
@@ -69,30 +59,33 @@ export function callObservationHead(input) {
|
|
|
69
59
|
facts,
|
|
70
60
|
};
|
|
71
61
|
}
|
|
72
|
-
function
|
|
73
|
-
if (
|
|
62
|
+
export function renderCallText(result, streamed, context) {
|
|
63
|
+
if (streamed)
|
|
74
64
|
return "";
|
|
75
65
|
const head = callObservationHead({
|
|
76
|
-
akuma: result.
|
|
77
|
-
dispatch: result.
|
|
78
|
-
alias: result.
|
|
66
|
+
akuma: result.akuma,
|
|
67
|
+
dispatch: result.dispatch,
|
|
68
|
+
alias: result.alias,
|
|
79
69
|
});
|
|
80
|
-
if (result.result.observation.kind === "
|
|
70
|
+
if (result.observation.kind === "detached" || result.observation.kind === "born") {
|
|
71
|
+
const branches = [
|
|
72
|
+
...(head.contract.kind === "associated" ? [safeText(head.contract.contractId)] : []),
|
|
73
|
+
safeText(result.execution.cwd),
|
|
74
|
+
];
|
|
81
75
|
return [
|
|
82
|
-
associatedIdentity(result.
|
|
83
|
-
...(
|
|
84
|
-
` cwd ${safeText(result.result.execution.cwd)}`,
|
|
76
|
+
associatedIdentity(result.akuma, head.alias),
|
|
77
|
+
...branches.map((fact, index) => `${index === branches.length - 1 ? "└─" : "├─"} ${fact}`),
|
|
85
78
|
...head.facts,
|
|
86
79
|
].join("\n");
|
|
87
80
|
}
|
|
88
|
-
if (result.
|
|
81
|
+
if (result.observation.kind === "failed") {
|
|
89
82
|
return [
|
|
90
83
|
...snapshotHeading(head.id, head.alias, head.contract),
|
|
91
84
|
...head.facts,
|
|
92
|
-
`! error ${safeText(result.
|
|
85
|
+
`! error ${safeText(result.observation.failure.diagnostic)}`,
|
|
93
86
|
].join("\n");
|
|
94
87
|
}
|
|
95
|
-
const inputObservation = result.
|
|
88
|
+
const inputObservation = result.observation;
|
|
96
89
|
const stream = inputWaitStream(context, () => head, { cursor: "empty" });
|
|
97
90
|
stream.admitted({ at: inputObservation.tell.row.at, rows: [] });
|
|
98
91
|
return stream.conclude({
|
|
@@ -101,119 +94,59 @@ function callText(result, context) {
|
|
|
101
94
|
...(inputObservation.completedAt === undefined ? {} : { completedAt: inputObservation.completedAt }),
|
|
102
95
|
});
|
|
103
96
|
}
|
|
104
|
-
export function
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
? tellText(result, context)
|
|
124
|
-
: mutationObservationStageText(result.result.id, result.result.observation, context, {
|
|
125
|
-
...(result.alias === undefined ? {} : { alias: result.alias }),
|
|
126
|
-
showLife: false,
|
|
127
|
-
});
|
|
128
|
-
case "history":
|
|
129
|
-
return historyText(command, result, context);
|
|
130
|
-
case "fork": {
|
|
131
|
-
if (result.receipt.kind !== "forked")
|
|
132
|
-
return result.receipt.kind === "unknown-history"
|
|
133
|
-
? `${result.receipt.at} has no matching retained answered turn`
|
|
134
|
-
: result.receipt.kind === "provider-cannot-fork"
|
|
135
|
-
? `${result.receipt.provider} cannot fork`
|
|
136
|
-
: result.receipt.diagnostic;
|
|
137
|
-
const contractId = result.receipt.dispatch.kind === "dispatched" ? result.receipt.dispatch.dispatch.contractId : undefined;
|
|
138
|
-
return associatedIdentity(result.receipt.child, undefined, contractId === undefined ? { kind: "none" } : { kind: "associated", contractId });
|
|
139
|
-
}
|
|
140
|
-
case "kill":
|
|
141
|
-
return result.result.results
|
|
142
|
-
.map((member) => killResultText(member.id, member.evidence, result.alias))
|
|
143
|
-
.join("\n\n");
|
|
97
|
+
export function renderWaitText(result, presentation, context = DEFAULT_CONTEXT) {
|
|
98
|
+
return waitText(result, presentation, context);
|
|
99
|
+
}
|
|
100
|
+
export function renderStatusText(status, alias, context = DEFAULT_CONTEXT) {
|
|
101
|
+
return snapshotText(status, context, ...(alias === undefined ? [{}] : [{ alias }]));
|
|
102
|
+
}
|
|
103
|
+
export function renderTellText(result, alias, context = DEFAULT_CONTEXT, options = {}) {
|
|
104
|
+
return tellText(result, alias, context, options);
|
|
105
|
+
}
|
|
106
|
+
export function renderHistoryText(result, presentation, context = DEFAULT_CONTEXT) {
|
|
107
|
+
return historyText(result, presentation, context);
|
|
108
|
+
}
|
|
109
|
+
export function renderForkText(receipt) {
|
|
110
|
+
if (receipt.kind !== "forked") {
|
|
111
|
+
if (receipt.kind === "unknown-history")
|
|
112
|
+
return `${receipt.at} has no matching retained answered turn`;
|
|
113
|
+
if (receipt.kind === "provider-cannot-fork")
|
|
114
|
+
return `${receipt.provider} cannot fork`;
|
|
115
|
+
return receipt.diagnostic;
|
|
144
116
|
}
|
|
117
|
+
const contractId = receipt.dispatch.kind === "dispatched" ? receipt.dispatch.dispatch.contractId : undefined;
|
|
118
|
+
return associatedIdentity(receipt.child, undefined, contractId === undefined ? { kind: "none" } : { kind: "associated", contractId });
|
|
119
|
+
}
|
|
120
|
+
export function renderKillText(result, alias, context) {
|
|
121
|
+
void context;
|
|
122
|
+
return result.results.map((member) => killResultText(member.id, member.evidence, alias)).join("\n\n");
|
|
145
123
|
}
|
|
146
|
-
function callExitCode(result) {
|
|
147
|
-
if (result.result.
|
|
148
|
-
result.result.alias.kind === "failed" ||
|
|
149
|
-
result.result.observation.kind === "failed")
|
|
124
|
+
export function callExitCode(result) {
|
|
125
|
+
if (result.dispatch.kind === "failed" || result.alias.kind === "failed" || result.observation.kind === "failed")
|
|
150
126
|
return 2;
|
|
151
|
-
if (result.
|
|
127
|
+
if (result.observation.kind !== "observed")
|
|
152
128
|
return 0;
|
|
153
|
-
return result.
|
|
154
|
-
result.
|
|
129
|
+
return result.observation.observation.reason === "failed" ||
|
|
130
|
+
result.observation.observation.reason === "invalid-output"
|
|
155
131
|
? 2
|
|
156
132
|
: 0;
|
|
157
133
|
}
|
|
158
|
-
function killExitCode(result) {
|
|
159
|
-
return result.
|
|
134
|
+
export function killExitCode(result) {
|
|
135
|
+
return result.results.some((member) => member.evidence === "unavailable" || member.evidence === "hung" || member.evidence === "untidy")
|
|
160
136
|
? 1
|
|
161
137
|
: 0;
|
|
162
138
|
}
|
|
163
|
-
function tellExitCode(result) {
|
|
164
|
-
|
|
165
|
-
return 0;
|
|
166
|
-
if (result.mode === "wait")
|
|
167
|
-
return result.result.observation.reason === "failed" || result.result.observation.reason === "invalid-output"
|
|
168
|
-
? 2
|
|
169
|
-
: 0;
|
|
170
|
-
return result.mode === "ordinary"
|
|
171
|
-
? result.result.tell.wake.kind === "failed"
|
|
172
|
-
? 2
|
|
173
|
-
: 0
|
|
174
|
-
: result.result.receipt.kind === "interrupted"
|
|
175
|
-
? 0
|
|
176
|
-
: 1;
|
|
177
|
-
}
|
|
178
|
-
function forkExitCode(result) {
|
|
179
|
-
return result.receipt.kind === "forked" ? 0 : result.receipt.kind === "upstream-forked" ? 2 : 1;
|
|
180
|
-
}
|
|
181
|
-
function historyExitCode(result) {
|
|
182
|
-
if (result.mode !== "exact")
|
|
183
|
-
return 0;
|
|
184
|
-
return result.historyResult.kind === "exact" ? 0 : 1;
|
|
185
|
-
}
|
|
186
|
-
export function akumaExitCode(result) {
|
|
187
|
-
switch (result.action) {
|
|
188
|
-
case "call":
|
|
189
|
-
return callExitCode(result);
|
|
190
|
-
case "kill":
|
|
191
|
-
return killExitCode(result);
|
|
192
|
-
case "tell":
|
|
193
|
-
return tellExitCode(result);
|
|
194
|
-
case "fork":
|
|
195
|
-
return forkExitCode(result);
|
|
196
|
-
case "history":
|
|
197
|
-
return historyExitCode(result);
|
|
198
|
-
default:
|
|
199
|
-
return 0;
|
|
200
|
-
}
|
|
139
|
+
export function tellExitCode(result) {
|
|
140
|
+
return result.tell.wake.kind === "failed" ? 2 : 0;
|
|
201
141
|
}
|
|
202
|
-
export function
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
if (
|
|
210
|
-
return
|
|
211
|
-
|
|
212
|
-
return result.mode === "schema" ? result.result : result.result;
|
|
213
|
-
if (result.action === "kill")
|
|
214
|
-
return result.result;
|
|
215
|
-
return result.historyResult;
|
|
216
|
-
}
|
|
217
|
-
export function renderAkumaJson(result) {
|
|
218
|
-
return JSON.stringify(akumaJsonValue(result));
|
|
142
|
+
export function askExitCode(result) {
|
|
143
|
+
return result.observation.reason === "failed" || result.observation.reason === "invalid-output" ? 2 : 0;
|
|
144
|
+
}
|
|
145
|
+
export function forkExitCode(receipt) {
|
|
146
|
+
return receipt.kind === "forked" ? 0 : receipt.kind === "upstream-forked" ? 2 : 1;
|
|
147
|
+
}
|
|
148
|
+
export function historyExitCode(result, id) {
|
|
149
|
+
if (id === undefined)
|
|
150
|
+
return 0;
|
|
151
|
+
return result.kind === "exact" ? 0 : 1;
|
|
219
152
|
}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AuditOutcome } from "../../index.js";
|
|
2
2
|
import { type TextRenderContext } from "./terminal.js";
|
|
3
|
-
|
|
3
|
+
type AcceptedAudit = Extract<AuditOutcome, {
|
|
4
|
+
kind: "accepted";
|
|
5
|
+
}>;
|
|
6
|
+
export declare function renderAcceptedAudit(result: AcceptedAudit, context?: TextRenderContext): string;
|
|
7
|
+
export {};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { effectCleanup, effectExecutionStops } from "./effects.js";
|
|
2
|
+
import { executionCleanupLines, executionStopLines, receiptPayload, receiptRow, reuseLines, stopLines, titleLines, } from "./receipt.js";
|
|
2
3
|
import { renderRefusalFacts } from "./refusal.js";
|
|
4
|
+
import { abbreviateGitIds, displayGitId } from "./contract-observation.js";
|
|
3
5
|
import { DEFAULT_CLI_COLUMNS, gitShortStat, renderTextBlock, safeText } from "./terminal.js";
|
|
4
6
|
const CHILD = " ";
|
|
5
7
|
function workspaceEvidence(workspace) {
|
|
6
|
-
return [`${CHILD}
|
|
8
|
+
return [`${CHILD}worktree ${safeText(workspace.path)}`];
|
|
7
9
|
}
|
|
8
|
-
function candidateLines(report, columns, addressed) {
|
|
10
|
+
function candidateLines(report, columns, addressed, abbreviations) {
|
|
9
11
|
const candidate = report.candidate;
|
|
10
12
|
const lines = [];
|
|
11
13
|
if (candidate.kind === "blocked") {
|
|
@@ -15,9 +17,10 @@ function candidateLines(report, columns, addressed) {
|
|
|
15
17
|
}
|
|
16
18
|
const identity = candidate.identity;
|
|
17
19
|
receiptRow(lines, " ", "candidate", [{ text: "ready" }], columns);
|
|
18
|
-
lines.push(`${CHILD}
|
|
19
|
-
lines.push(`${CHILD}integration
|
|
20
|
-
|
|
20
|
+
lines.push(`${CHILD}candidate ${displayGitId(identity.tenderSnapshot, abbreviations)}`);
|
|
21
|
+
lines.push(`${CHILD}integration result ${displayGitId(identity.integration.snapshot, abbreviations)}`);
|
|
22
|
+
if (!/^0{40}$/u.test(identity.integration.changeId))
|
|
23
|
+
lines.push(`${CHILD}content identity (not commit) ${displayGitId(identity.integration.changeId, abbreviations)}`);
|
|
21
24
|
lines.push(...workspaceEvidence(candidate.workspace));
|
|
22
25
|
lines.push(...renderTextBlock(gitShortStat(candidate.scope), CHILD, columns));
|
|
23
26
|
if (candidate.scope.paths !== undefined) {
|
|
@@ -31,50 +34,76 @@ function candidateLines(report, columns, addressed) {
|
|
|
31
34
|
}
|
|
32
35
|
function verificationLines(verification, columns, addressed) {
|
|
33
36
|
const lines = [];
|
|
37
|
+
if (verification.kind === "undeclared") {
|
|
38
|
+
receiptRow(lines, " ", "verification", [{ text: "none declared" }], columns);
|
|
39
|
+
return lines;
|
|
40
|
+
}
|
|
34
41
|
if (verification.kind === "not-run") {
|
|
35
|
-
receiptRow(lines, " ", "verification", [{ text: "not
|
|
42
|
+
receiptRow(lines, " ", "verification", [{ text: "not run" }], columns);
|
|
36
43
|
return lines;
|
|
37
44
|
}
|
|
38
45
|
if (verification.kind === "stopped") {
|
|
39
46
|
return stopLines(verification.stop, columns, addressed);
|
|
40
47
|
}
|
|
41
|
-
|
|
48
|
+
if (verification.kind === "reused") {
|
|
49
|
+
receiptRow(lines, " ", "verification", [{ text: "reused" }, { text: verification.verdict }], columns);
|
|
50
|
+
lines.push(...reuseLines(verification, columns));
|
|
51
|
+
if (verification.summary !== undefined)
|
|
52
|
+
receiptPayload(lines, "summary", auditSummary(verification.summary));
|
|
53
|
+
return lines;
|
|
54
|
+
}
|
|
55
|
+
receiptRow(lines, verification.kind === "satisfied" ? "✓" : "!", "verification", [{ text: verification.kind }, { text: `${verification.passed} of ${verification.total}` }], columns);
|
|
42
56
|
if (verification.summary !== undefined) {
|
|
43
|
-
receiptPayload(lines, "summary", verification.summary);
|
|
57
|
+
receiptPayload(lines, "summary", auditSummary(verification.summary));
|
|
44
58
|
}
|
|
45
59
|
return lines;
|
|
46
60
|
}
|
|
61
|
+
function auditSummary(summary) {
|
|
62
|
+
return summary.replace(/\[(\d+) (bash|zsh|pwsh) exit (-?\d+)( output-truncated)?\]/gu, (_, number, executor, exit, truncated) => `declaration ${number} · ${executor} exit ${exit}${truncated ?? ""}`);
|
|
63
|
+
}
|
|
47
64
|
function admittedCandidateLines(report, columns) {
|
|
48
65
|
const delivery = report.delivery;
|
|
49
66
|
if (delivery === undefined)
|
|
50
67
|
return [];
|
|
51
68
|
const verification = delivery.verification;
|
|
69
|
+
if (verification.kind === "undeclared")
|
|
70
|
+
return [];
|
|
52
71
|
const detail = verification.kind === "recorded" ? `${verification.kind} ${verification.verdict}` : verification.kind;
|
|
53
72
|
const lines = [];
|
|
54
73
|
receiptRow(lines, verification.kind === "unrecorded" ? "!" : " ", "admitted verification", [{ text: detail }], columns);
|
|
55
74
|
return lines;
|
|
56
75
|
}
|
|
57
|
-
function targetLines(
|
|
76
|
+
function targetLines(report, columns, addressed, abbreviations) {
|
|
77
|
+
const target = report.target;
|
|
58
78
|
const lines = [];
|
|
59
79
|
if (target.kind === "not-observed") {
|
|
60
80
|
receiptRow(lines, " ", "target", [{ text: "not-observed" }], columns);
|
|
61
81
|
return lines;
|
|
62
82
|
}
|
|
63
83
|
if (target.kind === "placeable") {
|
|
64
|
-
receiptRow(lines, " ", "target", [
|
|
84
|
+
receiptRow(lines, " ", "target", [
|
|
85
|
+
{ text: "placeable" },
|
|
86
|
+
{
|
|
87
|
+
text: `${target.ref.replace(/^refs\/heads\//u, "")} @ ${displayGitId(target.head, abbreviations)}${report.targetLag?.kind === "counted" && report.targetLag.behind > 0 ? ` · behind ${report.targetLag.behind}` : report.targetLag?.kind === "unknown" ? " · behind unknown" : ""}`,
|
|
88
|
+
opaque: true,
|
|
89
|
+
},
|
|
90
|
+
], columns);
|
|
65
91
|
return lines;
|
|
66
92
|
}
|
|
67
93
|
if (target.kind === "moved") {
|
|
68
94
|
receiptRow(lines, "!", "target", [
|
|
69
95
|
{ text: "moved" },
|
|
70
96
|
{ text: target.ref, opaque: true },
|
|
71
|
-
{
|
|
97
|
+
{
|
|
98
|
+
text: `${displayGitId(target.expected, abbreviations)} -> ${target.observed === null ? "absent" : displayGitId(target.observed, abbreviations)}`,
|
|
99
|
+
opaque: true,
|
|
100
|
+
},
|
|
72
101
|
], columns);
|
|
73
102
|
return lines;
|
|
74
103
|
}
|
|
75
104
|
if (target.kind === "failed") {
|
|
76
105
|
receiptRow(lines, "!", "target", [{ text: "failed" }], columns);
|
|
77
|
-
receiptPayload(lines, "
|
|
106
|
+
receiptPayload(lines, "reason", target.diagnostic);
|
|
78
107
|
return lines;
|
|
79
108
|
}
|
|
80
109
|
receiptRow(lines, "!", "target", [{ text: "refused" }], columns);
|
|
@@ -83,29 +112,31 @@ function targetLines(target, columns, addressed) {
|
|
|
83
112
|
}
|
|
84
113
|
function obligationLines(result, columns) {
|
|
85
114
|
return [
|
|
86
|
-
...executionCleanupLines(result.
|
|
87
|
-
...executionStopLines(result.
|
|
115
|
+
...executionCleanupLines(effectCleanup(result.effects).filter((issue) => issue.kind !== "worktree-leak"), columns, result.contract),
|
|
116
|
+
...executionStopLines(effectExecutionStops(result.effects), columns),
|
|
88
117
|
];
|
|
89
118
|
}
|
|
90
|
-
function recordLines(result, columns) {
|
|
91
|
-
if (result.facts.length === 0)
|
|
92
|
-
return [];
|
|
93
|
-
const rows = [];
|
|
94
|
-
for (const fact of result.facts) {
|
|
95
|
-
receiptRow(rows, " ", "journal", [{ text: fact.entry, opaque: true }, { text: `· ${fact.kind}` }], columns);
|
|
96
|
-
}
|
|
97
|
-
return rows;
|
|
98
|
-
}
|
|
99
119
|
export function renderAcceptedAudit(result, context) {
|
|
100
|
-
const report = result.
|
|
120
|
+
const report = result.value;
|
|
101
121
|
const columns = context?.columns ?? DEFAULT_CLI_COLUMNS;
|
|
122
|
+
const ids = report.candidate.kind === "ready"
|
|
123
|
+
? [
|
|
124
|
+
report.candidate.identity.tenderSnapshot,
|
|
125
|
+
report.candidate.identity.integration.snapshot,
|
|
126
|
+
report.candidate.identity.integration.changeId,
|
|
127
|
+
]
|
|
128
|
+
: [];
|
|
129
|
+
if (report.target.kind === "placeable")
|
|
130
|
+
ids.push(report.target.head);
|
|
131
|
+
if (report.target.kind === "moved")
|
|
132
|
+
ids.push(report.target.expected, report.target.observed ?? "");
|
|
133
|
+
const abbreviations = abbreviateGitIds(ids);
|
|
102
134
|
return [
|
|
103
135
|
...titleLines("✓", "audit", result.contract, columns),
|
|
104
|
-
...candidateLines(report, columns, result.contract),
|
|
136
|
+
...candidateLines(report, columns, result.contract, abbreviations),
|
|
105
137
|
...admittedCandidateLines(report, columns),
|
|
106
138
|
...verificationLines(report.verification, columns, result.contract),
|
|
107
|
-
...targetLines(report
|
|
139
|
+
...targetLines(report, columns, result.contract, abbreviations),
|
|
108
140
|
...obligationLines(result, columns),
|
|
109
|
-
...recordLines(result, columns),
|
|
110
141
|
].join("\n");
|
|
111
142
|
}
|
|
@@ -1,2 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { AkumaList } from "../../akuma/akuma.js";
|
|
2
|
+
import type { ArchetypeCatalogRow } from "../../akuma/archetype.js";
|
|
3
|
+
import type { ContractList } from "../../library/contract-types.js";
|
|
4
|
+
import type { TaskPage, TaskRow } from "../../task/index.js";
|
|
5
|
+
export declare function renderAkumaCatalogue(list: AkumaList, archetype: string | null): string;
|
|
6
|
+
export declare function renderContractCatalogue(list: ContractList): string;
|
|
7
|
+
export declare function renderArchetypeCatalogue(list: Readonly<{
|
|
8
|
+
rows: readonly ArchetypeCatalogRow[];
|
|
9
|
+
hasMore: boolean;
|
|
10
|
+
}>): string;
|
|
11
|
+
export declare function renderTaskCatalogue(list: TaskPage<TaskRow>, namespace: readonly string[]): string;
|