@openrig/cli 0.4.7 → 0.5.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/daemon/assets/claude-statusline-context.cjs +40 -8
- package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +0 -0
- package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +120 -0
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +0 -0
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +0 -0
- package/daemon/assets/plugins/openrig-core/skills/delegating-work/SKILL.md +43 -0
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +2 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +50 -57
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +84 -19
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +2 -0
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +2 -1
- package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +1 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts +36 -9
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +216 -49
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +8 -2
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +4 -2
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +12 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +34 -7
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/pi-resume.d.ts +1 -1
- package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-resume.js +7 -2
- package/daemon/dist/adapters/pi-resume.js.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.js +4 -1
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/yolo-mode.d.ts +23 -0
- package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -0
- package/daemon/dist/adapters/yolo-mode.js +49 -0
- package/daemon/dist/adapters/yolo-mode.js.map +1 -0
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/db/migrations/055_node_permission_policy.d.ts +13 -0
- package/daemon/dist/db/migrations/055_node_permission_policy.d.ts.map +1 -0
- package/daemon/dist/db/migrations/055_node_permission_policy.js +17 -0
- package/daemon/dist/db/migrations/055_node_permission_policy.js.map +1 -0
- package/daemon/dist/db/migrations/056_rig_permission_policy.d.ts +13 -0
- package/daemon/dist/db/migrations/056_rig_permission_policy.d.ts.map +1 -0
- package/daemon/dist/db/migrations/056_rig_permission_policy.js +17 -0
- package/daemon/dist/db/migrations/056_rig_permission_policy.js.map +1 -0
- package/daemon/dist/db/migrations/057_node_policy_provenance.d.ts +19 -0
- package/daemon/dist/db/migrations/057_node_policy_provenance.d.ts.map +1 -0
- package/daemon/dist/db/migrations/057_node_policy_provenance.js +26 -0
- package/daemon/dist/db/migrations/057_node_policy_provenance.js.map +1 -0
- package/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts +15 -0
- package/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts.map +1 -0
- package/daemon/dist/db/migrations/058_rig_policy_provenance.js +22 -0
- package/daemon/dist/db/migrations/058_rig_policy_provenance.js.map +1 -0
- package/daemon/dist/domain/agent-activity-store.d.ts +1 -0
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
- package/daemon/dist/domain/agent-activity-store.js +2 -2
- package/daemon/dist/domain/agent-activity-store.js.map +1 -1
- package/daemon/dist/domain/builtin-policy-reference.d.ts +13 -0
- package/daemon/dist/domain/builtin-policy-reference.d.ts.map +1 -0
- package/daemon/dist/domain/builtin-policy-reference.js +58 -0
- package/daemon/dist/domain/builtin-policy-reference.js.map +1 -0
- package/daemon/dist/domain/claude-activity-hooks.d.ts +33 -0
- package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -0
- package/daemon/dist/domain/claude-activity-hooks.js +60 -0
- package/daemon/dist/domain/claude-activity-hooks.js.map +1 -0
- package/daemon/dist/domain/context-packs/bundle-assembler.d.ts +30 -0
- package/daemon/dist/domain/context-packs/bundle-assembler.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/bundle-assembler.js +31 -1
- package/daemon/dist/domain/context-packs/bundle-assembler.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts +69 -14
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.js +263 -48
- package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts +2 -2
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
- package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/manifest-parser.js +11 -0
- package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/daemon/dist/domain/context-packs/ref-safety.d.ts +11 -0
- package/daemon/dist/domain/context-packs/ref-safety.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/ref-safety.js +46 -0
- package/daemon/dist/domain/context-packs/ref-safety.js.map +1 -0
- package/daemon/dist/domain/context-packs/token-estimate.d.ts +3 -0
- package/daemon/dist/domain/context-packs/token-estimate.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/token-estimate.js +5 -0
- package/daemon/dist/domain/context-packs/token-estimate.js.map +1 -0
- package/daemon/dist/domain/native-resume-probe.d.ts +1 -1
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +11 -4
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.js +2 -2
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/permission-policy/policy-ref.d.ts +89 -0
- package/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +1 -0
- package/daemon/dist/domain/permission-policy/policy-ref.js +171 -0
- package/daemon/dist/domain/permission-policy/policy-ref.js.map +1 -0
- package/daemon/dist/domain/permission-policy/policy-spec.d.ts +34 -0
- package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -0
- package/daemon/dist/domain/permission-policy/policy-spec.js +106 -0
- package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts +14 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.js +26 -2
- package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
- package/daemon/dist/domain/provider/claude-usage-reader.d.ts +44 -0
- package/daemon/dist/domain/provider/claude-usage-reader.d.ts.map +1 -0
- package/daemon/dist/domain/provider/claude-usage-reader.js +112 -0
- package/daemon/dist/domain/provider/claude-usage-reader.js.map +1 -0
- package/daemon/dist/domain/provider/codex-auth-reader.d.ts +18 -0
- package/daemon/dist/domain/provider/codex-auth-reader.d.ts.map +1 -0
- package/daemon/dist/domain/provider/codex-auth-reader.js +64 -0
- package/daemon/dist/domain/provider/codex-auth-reader.js.map +1 -0
- package/daemon/dist/domain/provider/host-usage-rollup.d.ts +51 -0
- package/daemon/dist/domain/provider/host-usage-rollup.d.ts.map +1 -0
- package/daemon/dist/domain/provider/host-usage-rollup.js +162 -0
- package/daemon/dist/domain/provider/host-usage-rollup.js.map +1 -0
- package/daemon/dist/domain/provider/provider-collect.d.ts +22 -0
- package/daemon/dist/domain/provider/provider-collect.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-collect.js +74 -0
- package/daemon/dist/domain/provider/provider-collect.js.map +1 -0
- package/daemon/dist/domain/provider/provider-policy.d.ts +38 -0
- package/daemon/dist/domain/provider/provider-policy.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-policy.js +76 -0
- package/daemon/dist/domain/provider/provider-policy.js.map +1 -0
- package/daemon/dist/domain/provider/provider-read-model.d.ts +28 -0
- package/daemon/dist/domain/provider/provider-read-model.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-read-model.js +68 -0
- package/daemon/dist/domain/provider/provider-read-model.js.map +1 -0
- package/daemon/dist/domain/provider/provider-service-impl.d.ts +26 -0
- package/daemon/dist/domain/provider/provider-service-impl.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-service-impl.js +83 -0
- package/daemon/dist/domain/provider/provider-service-impl.js.map +1 -0
- package/daemon/dist/domain/provider/provider-service.d.ts +33 -0
- package/daemon/dist/domain/provider/provider-service.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-service.js +6 -0
- package/daemon/dist/domain/provider/provider-service.js.map +1 -0
- package/daemon/dist/domain/provider/provider-signals.d.ts +76 -0
- package/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-signals.js +144 -0
- package/daemon/dist/domain/provider/provider-signals.js.map +1 -0
- package/daemon/dist/domain/provider/provider-types.d.ts +101 -0
- package/daemon/dist/domain/provider/provider-types.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-types.js +7 -0
- package/daemon/dist/domain/provider/provider-types.js.map +1 -0
- package/daemon/dist/domain/provider/reactive-tap.d.ts +29 -0
- package/daemon/dist/domain/provider/reactive-tap.d.ts.map +1 -0
- package/daemon/dist/domain/provider/reactive-tap.js +80 -0
- package/daemon/dist/domain/provider/reactive-tap.js.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts +14 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +90 -6
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.js +10 -1
- package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +45 -0
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +75 -1
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +6 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +8 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +25 -24
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +190 -69
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +22 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +76 -0
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +25 -0
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +7 -11
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/scope/attestation-lineage.generated.d.ts +14 -0
- package/daemon/dist/domain/scope/attestation-lineage.generated.d.ts.map +1 -0
- package/daemon/dist/domain/scope/attestation-lineage.generated.js +26 -0
- package/daemon/dist/domain/scope/attestation-lineage.generated.js.map +1 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts +13 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-approve.js +50 -10
- package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +7 -1
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
- package/daemon/dist/domain/startup-validation.js +18 -54
- package/daemon/dist/domain/startup-validation.js.map +1 -1
- package/daemon/dist/domain/stream-store.d.ts +4 -0
- package/daemon/dist/domain/stream-store.d.ts.map +1 -1
- package/daemon/dist/domain/stream-store.js +15 -2
- package/daemon/dist/domain/stream-store.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +4 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +2 -0
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +19 -9
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js +1 -1
- package/daemon/dist/routes/agent-images.d.ts.map +1 -1
- package/daemon/dist/routes/agent-images.js +2 -0
- package/daemon/dist/routes/agent-images.js.map +1 -1
- package/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/daemon/dist/routes/context-packs.js +157 -75
- package/daemon/dist/routes/context-packs.js.map +1 -1
- package/daemon/dist/routes/provider.d.ts +3 -0
- package/daemon/dist/routes/provider.d.ts.map +1 -0
- package/daemon/dist/routes/provider.js +124 -0
- package/daemon/dist/routes/provider.js.map +1 -0
- package/daemon/dist/routes/rigs.js +8 -0
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/scope-approve.d.ts.map +1 -1
- package/daemon/dist/routes/scope-approve.js +6 -3
- package/daemon/dist/routes/scope-approve.js.map +1 -1
- package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
- package/daemon/dist/routes/scope-audit.js +4 -1
- package/daemon/dist/routes/scope-audit.js.map +1 -1
- package/daemon/dist/routes/stream.d.ts.map +1 -1
- package/daemon/dist/routes/stream.js +71 -1
- package/daemon/dist/routes/stream.js.map +1 -1
- package/daemon/dist/server.d.ts +3 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +5 -0
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +38 -12
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/developing.md +39 -0
- package/daemon/docs/reference/rig-spec.md +19 -0
- package/daemon/policies/builtin/locked.policy.md +24 -0
- package/daemon/policies/builtin/open.policy.md +24 -0
- package/daemon/policies/builtin/standard.policy.md +25 -0
- package/daemon/policies/builtin/yolo.policy.md +20 -0
- package/daemon/policies/examples/my-cautious-dev.policy.md +40 -0
- package/daemon/specs/agents/apps/vault-specialist/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/reviewer/agent.yaml +1 -1
- package/daemon/specs/agents/design/product-designer/agent.yaml +1 -1
- package/daemon/specs/agents/development/implementer/agent.yaml +1 -1
- package/daemon/specs/agents/development/qa/agent.yaml +1 -1
- package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +1 -1
- package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +1 -1
- package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -1
- package/daemon/specs/agents/product-management/pm/agent.yaml +1 -0
- package/daemon/specs/agents/research/analyst/agent.yaml +1 -1
- package/daemon/specs/agents/research/synthesizer/agent.yaml +1 -1
- package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -1
- package/daemon/specs/agents/shared/agent.yaml +6 -0
- package/daemon/specs/agents/shared/runtime/claude-activity-hooks.json +4 -0
- package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +1 -20
- package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +0 -2
- package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +1 -0
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +0 -0
- package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +1 -0
- package/dist/bin-wrapper.d.ts.map +1 -1
- package/dist/bin-wrapper.js +7 -0
- package/dist/bin-wrapper.js.map +1 -1
- package/dist/build-info.js +3 -3
- package/dist/commands/agent-image.d.ts.map +1 -1
- package/dist/commands/agent-image.js +2 -1
- package/dist/commands/agent-image.js.map +1 -1
- package/dist/commands/broadcast.d.ts.map +1 -1
- package/dist/commands/broadcast.js +37 -2
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/context.d.ts +2 -7
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +391 -213
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/provider.d.ts +4 -0
- package/dist/commands/provider.d.ts.map +1 -0
- package/dist/commands/provider.js +218 -0
- package/dist/commands/provider.js.map +1 -0
- package/dist/commands/ps.d.ts +7 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +34 -4
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +38 -8
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +48 -4
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +70 -11
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts +14 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +131 -8
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/stream.d.ts +1 -0
- package/dist/commands/stream.d.ts.map +1 -1
- package/dist/commands/stream.js +93 -0
- package/dist/commands/stream.js.map +1 -1
- package/dist/commands/tui.d.ts +4 -0
- package/dist/commands/tui.d.ts.map +1 -0
- package/dist/commands/tui.js +29 -0
- package/dist/commands/tui.js.map +1 -0
- package/dist/commands/walk.d.ts +19 -0
- package/dist/commands/walk.d.ts.map +1 -0
- package/dist/commands/walk.js +139 -0
- package/dist/commands/walk.js.map +1 -0
- package/dist/context-resolve.d.ts +14 -0
- package/dist/context-resolve.d.ts.map +1 -0
- package/dist/context-resolve.js +40 -0
- package/dist/context-resolve.js.map +1 -0
- package/dist/front-door.d.ts +31 -0
- package/dist/front-door.d.ts.map +1 -0
- package/dist/front-door.js +114 -0
- package/dist/front-door.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/scope/attestation-lineage.d.ts +14 -0
- package/dist/lib/scope/attestation-lineage.d.ts.map +1 -0
- package/dist/lib/scope/attestation-lineage.js +34 -0
- package/dist/lib/scope/attestation-lineage.js.map +1 -0
- package/package.json +4 -2
- package/tui/dist/daemon-client.d.ts +56 -0
- package/tui/dist/daemon-client.d.ts.map +1 -0
- package/tui/dist/daemon-client.js +99 -0
- package/tui/dist/daemon-client.js.map +1 -0
- package/tui/dist/demo-data.d.ts +3 -0
- package/tui/dist/demo-data.d.ts.map +1 -0
- package/tui/dist/demo-data.js +52 -0
- package/tui/dist/demo-data.js.map +1 -0
- package/tui/dist/detail.d.ts +34 -0
- package/tui/dist/detail.d.ts.map +1 -0
- package/tui/dist/detail.js +47 -0
- package/tui/dist/detail.js.map +1 -0
- package/tui/dist/grammar.d.ts +3 -0
- package/tui/dist/grammar.d.ts.map +1 -0
- package/tui/dist/grammar.js +66 -0
- package/tui/dist/grammar.js.map +1 -0
- package/tui/dist/hydrate.d.ts +78 -0
- package/tui/dist/hydrate.d.ts.map +1 -0
- package/tui/dist/hydrate.js +294 -0
- package/tui/dist/hydrate.js.map +1 -0
- package/tui/dist/index.d.ts +12 -0
- package/tui/dist/index.d.ts.map +1 -0
- package/tui/dist/index.js +12 -0
- package/tui/dist/index.js.map +1 -0
- package/tui/dist/input.d.ts +21 -0
- package/tui/dist/input.d.ts.map +1 -0
- package/tui/dist/input.js +128 -0
- package/tui/dist/input.js.map +1 -0
- package/tui/dist/live.d.ts +20 -0
- package/tui/dist/live.d.ts.map +1 -0
- package/tui/dist/live.js +67 -0
- package/tui/dist/live.js.map +1 -0
- package/tui/dist/main.d.ts +3 -0
- package/tui/dist/main.d.ts.map +1 -0
- package/tui/dist/main.js +184 -0
- package/tui/dist/main.js.map +1 -0
- package/tui/dist/motion.d.ts +13 -0
- package/tui/dist/motion.d.ts.map +1 -0
- package/tui/dist/motion.js +31 -0
- package/tui/dist/motion.js.map +1 -0
- package/tui/dist/navigator.d.ts +21 -0
- package/tui/dist/navigator.d.ts.map +1 -0
- package/tui/dist/navigator.js +168 -0
- package/tui/dist/navigator.js.map +1 -0
- package/tui/dist/refresh.d.ts +3 -0
- package/tui/dist/refresh.d.ts.map +1 -0
- package/tui/dist/refresh.js +9 -0
- package/tui/dist/refresh.js.map +1 -0
- package/tui/dist/render.d.ts +21 -0
- package/tui/dist/render.d.ts.map +1 -0
- package/tui/dist/render.js +807 -0
- package/tui/dist/render.js.map +1 -0
- package/tui/dist/sections.d.ts +4 -0
- package/tui/dist/sections.d.ts.map +1 -0
- package/tui/dist/sections.js +19 -0
- package/tui/dist/sections.js.map +1 -0
- package/tui/dist/socket-server.d.ts +24 -0
- package/tui/dist/socket-server.d.ts.map +1 -0
- package/tui/dist/socket-server.js +85 -0
- package/tui/dist/socket-server.js.map +1 -0
- package/tui/dist/state.d.ts +51 -0
- package/tui/dist/state.d.ts.map +1 -0
- package/tui/dist/state.js +480 -0
- package/tui/dist/state.js.map +1 -0
- package/tui/dist/stylize.d.ts +4 -0
- package/tui/dist/stylize.d.ts.map +1 -0
- package/tui/dist/stylize.js +248 -0
- package/tui/dist/stylize.js.map +1 -0
- package/tui/dist/theme.d.ts +19 -0
- package/tui/dist/theme.d.ts.map +1 -0
- package/tui/dist/theme.js +86 -0
- package/tui/dist/theme.js.map +1 -0
- package/tui/dist/topology/canvas.d.ts +43 -0
- package/tui/dist/topology/canvas.d.ts.map +1 -0
- package/tui/dist/topology/canvas.js +131 -0
- package/tui/dist/topology/canvas.js.map +1 -0
- package/tui/dist/topology/fixture.d.ts +4 -0
- package/tui/dist/topology/fixture.d.ts.map +1 -0
- package/tui/dist/topology/fixture.js +71 -0
- package/tui/dist/topology/fixture.js.map +1 -0
- package/tui/dist/topology/glyphs.d.ts +21 -0
- package/tui/dist/topology/glyphs.d.ts.map +1 -0
- package/tui/dist/topology/glyphs.js +49 -0
- package/tui/dist/topology/glyphs.js.map +1 -0
- package/tui/dist/topology/graph-types.d.ts +39 -0
- package/tui/dist/topology/graph-types.d.ts.map +1 -0
- package/tui/dist/topology/graph-types.js +2 -0
- package/tui/dist/topology/graph-types.js.map +1 -0
- package/tui/dist/topology/layout.d.ts +52 -0
- package/tui/dist/topology/layout.d.ts.map +1 -0
- package/tui/dist/topology/layout.js +118 -0
- package/tui/dist/topology/layout.js.map +1 -0
- package/tui/dist/topology/render-graph.d.ts +8 -0
- package/tui/dist/topology/render-graph.d.ts.map +1 -0
- package/tui/dist/topology/render-graph.js +20 -0
- package/tui/dist/topology/render-graph.js.map +1 -0
- package/tui/dist/topology/runtime-marks.d.ts +53 -0
- package/tui/dist/topology/runtime-marks.d.ts.map +1 -0
- package/tui/dist/topology/runtime-marks.js +185 -0
- package/tui/dist/topology/runtime-marks.js.map +1 -0
- package/tui/dist/topology/styles/braille.d.ts +5 -0
- package/tui/dist/topology/styles/braille.d.ts.map +1 -0
- package/tui/dist/topology/styles/braille.js +84 -0
- package/tui/dist/topology/styles/braille.js.map +1 -0
- package/tui/dist/topology/styles/hatchet.d.ts +41 -0
- package/tui/dist/topology/styles/hatchet.d.ts.map +1 -0
- package/tui/dist/topology/styles/hatchet.js +146 -0
- package/tui/dist/topology/styles/hatchet.js.map +1 -0
- package/tui/dist/types.d.ts +362 -0
- package/tui/dist/types.d.ts.map +1 -0
- package/tui/dist/types.js +6 -0
- package/tui/dist/types.js.map +1 -0
- package/ui/dist/assets/{index-DkNi0RT8.js → index-Dv5VaLCN.js} +135 -135
- package/ui/dist/index.html +1 -1
- package/daemon/specs/agents/shared/skills/pm/backlog-capture/SKILL.md +0 -43
- package/daemon/specs/agents/shared/skills/pm/context-builder/SKILL.md +0 -87
- package/daemon/specs/agents/shared/skills/pm/exec-summary/SKILL.md +0 -84
- package/daemon/specs/agents/shared/skills/pm/office-hours/SKILL.md +0 -129
- package/daemon/specs/agents/shared/skills/pm/plan-review/SKILL.md +0 -98
- package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +0 -113
- package/daemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md +0 -76
- package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +0 -148
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +0 -266
- package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +0 -213
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/CREATION-LOG.md +0 -119
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-academic.md +0 -14
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-1.md +0 -58
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-2.md +0 -68
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-3.md +0 -69
- package/dist/commands/context-pack.d.ts +0 -4
- package/dist/commands/context-pack.d.ts.map +0 -1
- package/dist/commands/context-pack.js +0 -357
- package/dist/commands/context-pack.js.map +0 -1
|
@@ -1,26 +1,54 @@
|
|
|
1
|
+
import { type PlainFileAssembly } from "./bundle-assembler.js";
|
|
1
2
|
import { type ContextPackEntry, type ContextPackSourceType } from "./context-pack-types.js";
|
|
2
3
|
export interface ContextPackLibraryRoot {
|
|
3
|
-
/** Absolute path to a
|
|
4
|
+
/** Absolute path to a discovery root. Slice-03 Atom 2: a pack is any
|
|
5
|
+
* NESTED directory containing manifest.yaml; its ref is the relative
|
|
6
|
+
* path from this root (spec §2 path-like refs, e.g.
|
|
7
|
+
* `packs/compaction-restore`). */
|
|
4
8
|
path: string;
|
|
5
9
|
sourceType: ContextPackSourceType;
|
|
6
10
|
}
|
|
7
11
|
export interface ContextPackLibraryOpts {
|
|
8
12
|
roots: ContextPackLibraryRoot[];
|
|
13
|
+
/** Narrow test seam for Atom 3's cleanup-on-write-failure contract. */
|
|
14
|
+
writeFile?: (path: string, data: string | Buffer) => void;
|
|
9
15
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
export interface ComposeContextPackSource {
|
|
17
|
+
/** Absolute source path, resolved by the local CLI caller. */
|
|
18
|
+
path: string;
|
|
19
|
+
/** Original caller spelling retained as YAML-serialized provenance. */
|
|
20
|
+
label: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ComposeContextPackResult extends PlainFileAssembly {
|
|
23
|
+
ref: string;
|
|
24
|
+
entry: ContextPackEntry;
|
|
25
|
+
}
|
|
26
|
+
/** Stable opaque id = `context-pack:<ref>` (Slice-03 Atom 5). The path-like ref
|
|
27
|
+
* IS the identity, so the id is unique per pack — two refs that share a manifest
|
|
28
|
+
* name+version no longer collide — and it keeps the `context-pack:` prefix the
|
|
29
|
+
* UI's library-review dispatch keys on. Colon-id name:version addressing/parsing
|
|
30
|
+
* was removed with the legacy index; resolution is by-ref only. */
|
|
31
|
+
export declare function contextPackId(ref: string): string;
|
|
32
|
+
export { estimateTokensFromBytes } from "./token-estimate.js";
|
|
20
33
|
export declare class ContextPackLibraryService {
|
|
21
|
-
|
|
34
|
+
/** Slice-03 Atom 2 (guard correction b74e4576): the PRIMARY index — the
|
|
35
|
+
* normalized safe path-like ref IS the pack identity (spec §2 "refs are
|
|
36
|
+
* the contract"). getByRef/list/scan().count all observe THIS map; same
|
|
37
|
+
* ref across roots is last-root-wins here, so precedence holds everywhere
|
|
38
|
+
* (one row, one count, one resolution). Distinct refs with identical
|
|
39
|
+
* manifest name/version are independent entries by construction. */
|
|
40
|
+
private entriesByRef;
|
|
22
41
|
private readonly roots;
|
|
42
|
+
private readonly writeFile;
|
|
23
43
|
constructor(opts: ContextPackLibraryOpts);
|
|
44
|
+
/** Slice-03 Atom 2 — recursive path-addressed discovery: walk a root and
|
|
45
|
+
* return every NESTED dir containing manifest.yaml, with its path-like
|
|
46
|
+
* ref. Packs are LEAVES: a manifest-bearing dir's subtree belongs to that
|
|
47
|
+
* pack, so discovery does not descend below it (a nested manifest would
|
|
48
|
+
* make the outer pack's files ambiguous). Symlinked dirs are never
|
|
49
|
+
* traversed (dirent.isDirectory() is lstat-shaped — the pre-Atom-2
|
|
50
|
+
* semantics, carried into the recursion). */
|
|
51
|
+
private discoverPackDirs;
|
|
24
52
|
/** Re-walk all roots, replace the in-memory index, return a count. */
|
|
25
53
|
scan(): {
|
|
26
54
|
count: number;
|
|
@@ -29,9 +57,36 @@ export declare class ContextPackLibraryService {
|
|
|
29
57
|
error: string;
|
|
30
58
|
}>;
|
|
31
59
|
};
|
|
60
|
+
/** Slice-03 Atom 2 — RESOLVE trust boundary: get a pack by its path-like
|
|
61
|
+
* ref. An unsafe ref is a structured, fail-visible error BEFORE any
|
|
62
|
+
* lookup; a safe-but-absent ref is an honest null. */
|
|
63
|
+
getByRef(ref: string): ContextPackEntry | null;
|
|
64
|
+
/** Slice-03 Atom 4 — DELETE trust boundary: remove a pack by its path-like
|
|
65
|
+
* ref. Safety ordering mirrors getByRef/compose: an unsafe ref is a
|
|
66
|
+
* structured, fail-visible error BEFORE any filesystem op; a safe-but-absent
|
|
67
|
+
* ref is an honest pack_not_found; a shipped `builtin` pack is REFUSED — rm
|
|
68
|
+
* mirrors add's operator-writable contract (add only ever writes into the
|
|
69
|
+
* user_file root, and rm never rmSyncs shipped assets under the package
|
|
70
|
+
* directory). On success the pack directory is deleted and a re-scan makes
|
|
71
|
+
* the ref stop resolving (durable removal). */
|
|
72
|
+
removeByRef(ref: string): {
|
|
73
|
+
removed: boolean;
|
|
74
|
+
ref: string;
|
|
75
|
+
removedPath: string;
|
|
76
|
+
};
|
|
32
77
|
list(): ContextPackEntry[];
|
|
33
|
-
|
|
34
|
-
|
|
78
|
+
/**
|
|
79
|
+
* Atom 3: compose named files into one durable path-ref pack.
|
|
80
|
+
*
|
|
81
|
+
* Safety ordering is load-bearing: validate the ref first; reject every
|
|
82
|
+
* existing/hidden/unsafe namespace and preflight every source before the
|
|
83
|
+
* first mutation. Members are written before manifest.yaml, so discovery
|
|
84
|
+
* can never observe a partial pack. A failed write removes the new target.
|
|
85
|
+
*/
|
|
86
|
+
composeFromFiles(opts: {
|
|
87
|
+
outRef: string;
|
|
88
|
+
sources: ComposeContextPackSource[];
|
|
89
|
+
}): ComposeContextPackResult;
|
|
35
90
|
/** Resolve the absolute file path for a pack entry's file, with a
|
|
36
91
|
* containment check that prevents path-traversal escaping the pack
|
|
37
92
|
* directory. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-pack-library-service.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/context-pack-library-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context-pack-library-service.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/context-pack-library-service.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAInF,OAAO,EAEL,KAAK,gBAAgB,EAErB,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,sBAAsB;IACrC;;;uCAGmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,qBAAqB,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,uEAAuE;IACvE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,wBAAwB;IACvC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED;;;;oEAIoE;AACpE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,qBAAa,yBAAyB;IACpC;;;;;yEAKqE;IACrE,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgD;gBAE9D,IAAI,EAAE,sBAAsB;IAKxC;;;;;;kDAM8C;IAC9C,OAAO,CAAC,gBAAgB;IAuBxB,sEAAsE;IACtE,IAAI,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE;IAoC3E;;2DAEuD;IACvD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAS9C;;;;;;;oDAOgD;IAChD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;IAuBhF,IAAI,IAAI,gBAAgB,EAAE;IAS1B;;;;;;;OAOG;IACH,gBAAgB,CAAC,IAAI,EAAE;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,wBAAwB,EAAE,CAAC;KACrC,GAAG,wBAAwB;IAqL5B;;qBAEiB;IACjB,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAmB3E,OAAO,CAAC,aAAa;CAuDtB"}
|
|
@@ -6,61 +6,93 @@
|
|
|
6
6
|
// daemon HTTP routes + UI library + send mechanism. Workspace-surface
|
|
7
7
|
// reconciliation: the operator's filesystem edit always wins on next
|
|
8
8
|
// scan() (matches PL-004 Phase D's contract for workflow_specs).
|
|
9
|
-
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
10
|
-
import { join, relative } from "node:path";
|
|
9
|
+
import { existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync, } from "node:fs";
|
|
10
|
+
import { dirname, extname, join, relative, sep } from "node:path";
|
|
11
|
+
import { stringify as stringifyYaml } from "yaml";
|
|
12
|
+
import { assemblePlainFiles } from "./bundle-assembler.js";
|
|
13
|
+
import { assertSafePackRef } from "./ref-safety.js";
|
|
11
14
|
import { parseManifest } from "./manifest-parser.js";
|
|
15
|
+
import { estimateTokensFromBytes } from "./token-estimate.js";
|
|
12
16
|
import { ContextPackError, } from "./context-pack-types.js";
|
|
13
|
-
/** Stable id
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const rest = id.slice("context-pack:".length);
|
|
21
|
-
const last = rest.lastIndexOf(":");
|
|
22
|
-
if (last === -1)
|
|
23
|
-
return null;
|
|
24
|
-
return { name: rest.slice(0, last), version: rest.slice(last + 1) };
|
|
25
|
-
}
|
|
26
|
-
/** Daemon-derived per-file token estimate. Same heuristic the existing
|
|
27
|
-
* context-usage-store uses (≈4 chars/token); cheap, stable, no
|
|
28
|
-
* dependency on a tokenizer library. */
|
|
29
|
-
export function estimateTokensFromBytes(bytes) {
|
|
30
|
-
return Math.ceil(bytes / 4);
|
|
17
|
+
/** Stable opaque id = `context-pack:<ref>` (Slice-03 Atom 5). The path-like ref
|
|
18
|
+
* IS the identity, so the id is unique per pack — two refs that share a manifest
|
|
19
|
+
* name+version no longer collide — and it keeps the `context-pack:` prefix the
|
|
20
|
+
* UI's library-review dispatch keys on. Colon-id name:version addressing/parsing
|
|
21
|
+
* was removed with the legacy index; resolution is by-ref only. */
|
|
22
|
+
export function contextPackId(ref) {
|
|
23
|
+
return `context-pack:${ref}`;
|
|
31
24
|
}
|
|
25
|
+
export { estimateTokensFromBytes } from "./token-estimate.js";
|
|
32
26
|
export class ContextPackLibraryService {
|
|
33
|
-
|
|
27
|
+
/** Slice-03 Atom 2 (guard correction b74e4576): the PRIMARY index — the
|
|
28
|
+
* normalized safe path-like ref IS the pack identity (spec §2 "refs are
|
|
29
|
+
* the contract"). getByRef/list/scan().count all observe THIS map; same
|
|
30
|
+
* ref across roots is last-root-wins here, so precedence holds everywhere
|
|
31
|
+
* (one row, one count, one resolution). Distinct refs with identical
|
|
32
|
+
* manifest name/version are independent entries by construction. */
|
|
33
|
+
entriesByRef = new Map();
|
|
34
34
|
roots;
|
|
35
|
+
writeFile;
|
|
35
36
|
constructor(opts) {
|
|
36
37
|
this.roots = opts.roots;
|
|
38
|
+
this.writeFile = opts.writeFile ?? ((path, data) => writeFileSync(path, data));
|
|
37
39
|
}
|
|
38
|
-
/**
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
/** Slice-03 Atom 2 — recursive path-addressed discovery: walk a root and
|
|
41
|
+
* return every NESTED dir containing manifest.yaml, with its path-like
|
|
42
|
+
* ref. Packs are LEAVES: a manifest-bearing dir's subtree belongs to that
|
|
43
|
+
* pack, so discovery does not descend below it (a nested manifest would
|
|
44
|
+
* make the outer pack's files ambiguous). Symlinked dirs are never
|
|
45
|
+
* traversed (dirent.isDirectory() is lstat-shaped — the pre-Atom-2
|
|
46
|
+
* semantics, carried into the recursion). */
|
|
47
|
+
discoverPackDirs(rootPath) {
|
|
48
|
+
const found = [];
|
|
49
|
+
const walk = (dir) => {
|
|
43
50
|
let dirents;
|
|
44
51
|
try {
|
|
45
|
-
dirents =
|
|
46
|
-
? readdirSync(root.path, { withFileTypes: true })
|
|
47
|
-
: [];
|
|
52
|
+
dirents = readdirSync(dir, { withFileTypes: true });
|
|
48
53
|
}
|
|
49
54
|
catch {
|
|
50
|
-
|
|
55
|
+
return;
|
|
51
56
|
}
|
|
52
57
|
for (const dirent of dirents) {
|
|
53
58
|
if (!dirent.isDirectory())
|
|
54
59
|
continue;
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
60
|
+
const child = join(dir, dirent.name);
|
|
61
|
+
if (existsSync(join(child, "manifest.yaml"))) {
|
|
62
|
+
found.push({ packDir: child, ref: relative(rootPath, child).split(sep).join("/") });
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
walk(child);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
if (existsSync(rootPath))
|
|
70
|
+
walk(rootPath);
|
|
71
|
+
return found;
|
|
72
|
+
}
|
|
73
|
+
/** Re-walk all roots, replace the in-memory index, return a count. */
|
|
74
|
+
scan() {
|
|
75
|
+
const nextByRef = new Map();
|
|
76
|
+
const errors = [];
|
|
77
|
+
for (const root of this.roots) {
|
|
78
|
+
for (const { packDir, ref } of this.discoverPackDirs(root.path)) {
|
|
79
|
+
// DISCOVERY trust boundary (Atom 2): every discovered ref passes the
|
|
80
|
+
// sealed per-segment contract; an unsafe on-disk ref is a STRUCTURED,
|
|
81
|
+
// FAIL-VISIBLE error and the pack is skipped — never indexed.
|
|
82
|
+
try {
|
|
83
|
+
assertSafePackRef(ref);
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
errors.push({ source: packDir, error: err.message });
|
|
58
87
|
continue;
|
|
88
|
+
}
|
|
59
89
|
try {
|
|
60
|
-
const entry = this.readPackEntry(packDir,
|
|
61
|
-
//
|
|
62
|
-
//
|
|
63
|
-
|
|
90
|
+
const entry = this.readPackEntry(packDir, join(packDir, "manifest.yaml"), root, ref);
|
|
91
|
+
// PRIMARY identity = the ref. Same ref across roots: last root wins
|
|
92
|
+
// (workspace > user_file > builtin in the startup-configured discovery
|
|
93
|
+
// order), so list/count/resolve agree. Distinct refs never collide,
|
|
94
|
+
// whatever their manifests say.
|
|
95
|
+
nextByRef.set(ref, entry);
|
|
64
96
|
}
|
|
65
97
|
catch (err) {
|
|
66
98
|
errors.push({
|
|
@@ -72,17 +104,198 @@ export class ContextPackLibraryService {
|
|
|
72
104
|
}
|
|
73
105
|
}
|
|
74
106
|
}
|
|
75
|
-
this.
|
|
76
|
-
return { count:
|
|
107
|
+
this.entriesByRef = nextByRef;
|
|
108
|
+
return { count: nextByRef.size, errors };
|
|
77
109
|
}
|
|
78
|
-
|
|
79
|
-
|
|
110
|
+
/** Slice-03 Atom 2 — RESOLVE trust boundary: get a pack by its path-like
|
|
111
|
+
* ref. An unsafe ref is a structured, fail-visible error BEFORE any
|
|
112
|
+
* lookup; a safe-but-absent ref is an honest null. */
|
|
113
|
+
getByRef(ref) {
|
|
114
|
+
try {
|
|
115
|
+
assertSafePackRef(ref);
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
throw new ContextPackError("unsafe_ref", err.message, { ref });
|
|
119
|
+
}
|
|
120
|
+
return this.entriesByRef.get(ref) ?? null;
|
|
121
|
+
}
|
|
122
|
+
/** Slice-03 Atom 4 — DELETE trust boundary: remove a pack by its path-like
|
|
123
|
+
* ref. Safety ordering mirrors getByRef/compose: an unsafe ref is a
|
|
124
|
+
* structured, fail-visible error BEFORE any filesystem op; a safe-but-absent
|
|
125
|
+
* ref is an honest pack_not_found; a shipped `builtin` pack is REFUSED — rm
|
|
126
|
+
* mirrors add's operator-writable contract (add only ever writes into the
|
|
127
|
+
* user_file root, and rm never rmSyncs shipped assets under the package
|
|
128
|
+
* directory). On success the pack directory is deleted and a re-scan makes
|
|
129
|
+
* the ref stop resolving (durable removal). */
|
|
130
|
+
removeByRef(ref) {
|
|
131
|
+
try {
|
|
132
|
+
assertSafePackRef(ref);
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
throw new ContextPackError("unsafe_ref", err.message, { ref });
|
|
136
|
+
}
|
|
137
|
+
const entry = this.entriesByRef.get(ref);
|
|
138
|
+
if (!entry) {
|
|
139
|
+
throw new ContextPackError("pack_not_found", `context pack ref '${ref}' not found in the library`, { ref });
|
|
140
|
+
}
|
|
141
|
+
if (entry.sourceType === "builtin") {
|
|
142
|
+
throw new ContextPackError("pack_not_removable", `context pack ref '${ref}' is a shipped builtin pack and cannot be removed`, { ref, sourceType: entry.sourceType });
|
|
143
|
+
}
|
|
144
|
+
const removedPath = entry.sourcePath;
|
|
145
|
+
rmSync(removedPath, { recursive: true, force: true });
|
|
146
|
+
this.scan();
|
|
147
|
+
return { removed: true, ref, removedPath };
|
|
80
148
|
}
|
|
81
|
-
|
|
82
|
-
|
|
149
|
+
list() {
|
|
150
|
+
// primary-ref-index view: one row per ref; ref is the deterministic
|
|
151
|
+
// tiebreaker for identical manifest name/version
|
|
152
|
+
return Array.from(this.entriesByRef.values()).sort((a, b) => a.name.localeCompare(b.name) || a.version.localeCompare(b.version) || a.relativePath.localeCompare(b.relativePath));
|
|
83
153
|
}
|
|
84
|
-
|
|
85
|
-
|
|
154
|
+
/**
|
|
155
|
+
* Atom 3: compose named files into one durable path-ref pack.
|
|
156
|
+
*
|
|
157
|
+
* Safety ordering is load-bearing: validate the ref first; reject every
|
|
158
|
+
* existing/hidden/unsafe namespace and preflight every source before the
|
|
159
|
+
* first mutation. Members are written before manifest.yaml, so discovery
|
|
160
|
+
* can never observe a partial pack. A failed write removes the new target.
|
|
161
|
+
*/
|
|
162
|
+
composeFromFiles(opts) {
|
|
163
|
+
// FIRST trust-boundary operation: the sealed Atom-1 validator.
|
|
164
|
+
try {
|
|
165
|
+
assertSafePackRef(opts.outRef);
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
throw new ContextPackError("unsafe_ref", err.message, { ref: opts.outRef });
|
|
169
|
+
}
|
|
170
|
+
if (opts.sources.length === 0) {
|
|
171
|
+
throw new ContextPackError("missing_files", "context composition requires at least one --from file", { missingFiles: [] });
|
|
172
|
+
}
|
|
173
|
+
// Complete source preflight precedes every output/store conflict check.
|
|
174
|
+
const missingFiles = opts.sources
|
|
175
|
+
.filter((source) => !existsSync(source.path))
|
|
176
|
+
.map((source) => source.path);
|
|
177
|
+
if (missingFiles.length > 0) {
|
|
178
|
+
throw new ContextPackError("missing_files", `context composition source file(s) not found: ${missingFiles.join(", ")}`, { missingFiles });
|
|
179
|
+
}
|
|
180
|
+
const allowedSuffixes = new Set([".md", ".markdown", ".yaml", ".yml", ".txt"]);
|
|
181
|
+
const members = opts.sources.map((source, index) => {
|
|
182
|
+
let content;
|
|
183
|
+
try {
|
|
184
|
+
if (!statSync(source.path).isFile())
|
|
185
|
+
throw new Error("source is not a regular file");
|
|
186
|
+
content = readFileSync(source.path);
|
|
187
|
+
}
|
|
188
|
+
catch (err) {
|
|
189
|
+
throw new ContextPackError("file_read_failed", `failed to read composition source ${source.path}: ${err.message}`, { path: source.path });
|
|
190
|
+
}
|
|
191
|
+
const candidateSuffix = extname(source.label).toLowerCase();
|
|
192
|
+
const suffix = allowedSuffixes.has(candidateSuffix) ? candidateSuffix : ".txt";
|
|
193
|
+
return {
|
|
194
|
+
path: `source-${String(index + 1).padStart(4, "0")}${suffix}`,
|
|
195
|
+
label: source.label,
|
|
196
|
+
content,
|
|
197
|
+
};
|
|
198
|
+
});
|
|
199
|
+
const writeRoot = this.roots.find((root) => root.sourceType === "user_file");
|
|
200
|
+
if (!writeRoot) {
|
|
201
|
+
throw new ContextPackError("store_unavailable", "context pack composition requires a writable user_file store root");
|
|
202
|
+
}
|
|
203
|
+
// Refresh before checking so the exact ref is rejected in ANY root, not
|
|
204
|
+
// merely at the user target path. This preserves Atom-2 precedence truth.
|
|
205
|
+
this.scan();
|
|
206
|
+
if (this.entriesByRef.has(opts.outRef)) {
|
|
207
|
+
throw new ContextPackError("pack_exists", `context pack ref '${opts.outRef}' already exists in the library`, { ref: opts.outRef });
|
|
208
|
+
}
|
|
209
|
+
const segments = opts.outRef.split("/");
|
|
210
|
+
const targetDir = join(writeRoot.path, ...segments);
|
|
211
|
+
// lstat sees dangling symlinks too; any physical exact target is a
|
|
212
|
+
// conflict and is never overwritten or merged.
|
|
213
|
+
try {
|
|
214
|
+
lstatSync(targetDir);
|
|
215
|
+
throw new ContextPackError("pack_exists", `context pack target '${targetDir}' already exists`, { ref: opts.outRef, targetDir });
|
|
216
|
+
}
|
|
217
|
+
catch (err) {
|
|
218
|
+
if (err instanceof ContextPackError)
|
|
219
|
+
throw err;
|
|
220
|
+
const code = err.code;
|
|
221
|
+
// ENOTDIR means an ancestor is a file; the namespace walk below turns
|
|
222
|
+
// that into the structured unsafe_ref_namespace contract.
|
|
223
|
+
if (code !== "ENOENT" && code !== "ENOTDIR")
|
|
224
|
+
throw err;
|
|
225
|
+
}
|
|
226
|
+
// Atom-2 treats manifest-bearing dirs as leaves. Reject an undiscoverable
|
|
227
|
+
// child, and reject symlink/non-directory namespace segments before any
|
|
228
|
+
// mkdir can follow them.
|
|
229
|
+
let cursor = writeRoot.path;
|
|
230
|
+
for (const segment of segments.slice(0, -1)) {
|
|
231
|
+
cursor = join(cursor, segment);
|
|
232
|
+
let stat;
|
|
233
|
+
try {
|
|
234
|
+
stat = lstatSync(cursor);
|
|
235
|
+
}
|
|
236
|
+
catch (err) {
|
|
237
|
+
if (err.code === "ENOENT")
|
|
238
|
+
break;
|
|
239
|
+
throw err;
|
|
240
|
+
}
|
|
241
|
+
if (stat.isSymbolicLink() || !stat.isDirectory()) {
|
|
242
|
+
throw new ContextPackError("unsafe_ref_namespace", `context pack ref '${opts.outRef}' crosses a symlink or non-directory namespace segment '${cursor}'`, { ref: opts.outRef, segmentPath: cursor });
|
|
243
|
+
}
|
|
244
|
+
if (existsSync(join(cursor, "manifest.yaml"))) {
|
|
245
|
+
throw new ContextPackError("pack_ref_below_pack", `context pack ref '${opts.outRef}' is below existing pack leaf '${cursor}'`, { ref: opts.outRef, ancestor: cursor });
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
const name = segments.at(-1);
|
|
249
|
+
const manifest = stringifyYaml({
|
|
250
|
+
name,
|
|
251
|
+
version: "1",
|
|
252
|
+
purpose: `Composed from ${members.length} ordered files`,
|
|
253
|
+
files: members.map((member) => ({
|
|
254
|
+
path: member.path,
|
|
255
|
+
role: "source",
|
|
256
|
+
summary: member.label,
|
|
257
|
+
})),
|
|
258
|
+
});
|
|
259
|
+
let createdTarget = false;
|
|
260
|
+
try {
|
|
261
|
+
mkdirSync(dirname(targetDir), { recursive: true });
|
|
262
|
+
try {
|
|
263
|
+
mkdirSync(targetDir);
|
|
264
|
+
createdTarget = true;
|
|
265
|
+
}
|
|
266
|
+
catch (err) {
|
|
267
|
+
if (err.code === "EEXIST") {
|
|
268
|
+
throw new ContextPackError("pack_exists", `context pack target '${targetDir}' already exists`, { ref: opts.outRef, targetDir });
|
|
269
|
+
}
|
|
270
|
+
throw err;
|
|
271
|
+
}
|
|
272
|
+
for (const member of members) {
|
|
273
|
+
this.writeFile(join(targetDir, member.path), member.content);
|
|
274
|
+
}
|
|
275
|
+
// Manifest last: only complete packs become discoverable.
|
|
276
|
+
this.writeFile(join(targetDir, "manifest.yaml"), manifest);
|
|
277
|
+
}
|
|
278
|
+
catch (err) {
|
|
279
|
+
if (createdTarget)
|
|
280
|
+
rmSync(targetDir, { recursive: true, force: true });
|
|
281
|
+
if (err instanceof ContextPackError)
|
|
282
|
+
throw err;
|
|
283
|
+
throw new ContextPackError("pack_write_failed", `failed to write context pack '${opts.outRef}': ${err.message}`, { ref: opts.outRef, targetDir });
|
|
284
|
+
}
|
|
285
|
+
this.scan();
|
|
286
|
+
const entry = this.entriesByRef.get(opts.outRef);
|
|
287
|
+
if (!entry || entry.sourcePath !== targetDir) {
|
|
288
|
+
rmSync(targetDir, { recursive: true, force: true });
|
|
289
|
+
this.scan();
|
|
290
|
+
throw new ContextPackError("pack_write_failed", `composed context pack '${opts.outRef}' was not discoverable at its durable ref`, { ref: opts.outRef, targetDir });
|
|
291
|
+
}
|
|
292
|
+
const assembled = assemblePlainFiles({
|
|
293
|
+
files: members.map((member) => ({
|
|
294
|
+
path: member.path,
|
|
295
|
+
content: member.content.toString("utf-8"),
|
|
296
|
+
})),
|
|
297
|
+
});
|
|
298
|
+
return { ref: opts.outRef, entry, ...assembled };
|
|
86
299
|
}
|
|
87
300
|
/** Resolve the absolute file path for a pack entry's file, with a
|
|
88
301
|
* containment check that prevents path-traversal escaping the pack
|
|
@@ -97,7 +310,7 @@ export class ContextPackLibraryService {
|
|
|
97
310
|
}
|
|
98
311
|
return abs;
|
|
99
312
|
}
|
|
100
|
-
readPackEntry(packDir, manifestPath, root) {
|
|
313
|
+
readPackEntry(packDir, manifestPath, root, ref) {
|
|
101
314
|
const raw = readFileSync(manifestPath, "utf-8");
|
|
102
315
|
const manifest = parseManifest(raw, manifestPath);
|
|
103
316
|
let mostRecentMtime = 0;
|
|
@@ -130,14 +343,16 @@ export class ContextPackLibraryService {
|
|
|
130
343
|
});
|
|
131
344
|
const derivedEstimatedTokens = files.reduce((acc, f) => acc + (f.estimatedTokens ?? 0), 0);
|
|
132
345
|
return {
|
|
133
|
-
id:
|
|
346
|
+
// id and relativePath share ONE source of truth: the discovered path-like
|
|
347
|
+
// ref (posix-joined). The id is `context-pack:<ref>` — opaque, unique.
|
|
348
|
+
id: contextPackId(ref),
|
|
134
349
|
kind: "context-pack",
|
|
135
350
|
name: manifest.name,
|
|
136
351
|
version: manifest.version,
|
|
137
352
|
purpose: manifest.purpose ?? null,
|
|
138
353
|
sourceType: root.sourceType,
|
|
139
354
|
sourcePath: packDir,
|
|
140
|
-
relativePath:
|
|
355
|
+
relativePath: ref,
|
|
141
356
|
updatedAt: new Date(mostRecentMtime || Date.now()).toISOString(),
|
|
142
357
|
manifestEstimatedTokens: typeof manifest.estimatedTokens === "number" ? manifest.estimatedTokens : null,
|
|
143
358
|
derivedEstimatedTokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-pack-library-service.js","sourceRoot":"","sources":["../../../src/domain/context-packs/context-pack-library-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context-pack-library-service.js","sourceRoot":"","sources":["../../../src/domain/context-packs/context-pack-library-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,8 +57,8 @@ export interface ContextPackEntryFile {
|
|
|
57
57
|
estimatedTokens: number | null;
|
|
58
58
|
}
|
|
59
59
|
export declare class ContextPackError extends Error {
|
|
60
|
-
readonly code: "manifest_missing" | "manifest_parse_error" | "manifest_invalid" | "pack_not_found" | "file_outside_pack" | "file_read_failed";
|
|
60
|
+
readonly code: "manifest_missing" | "manifest_parse_error" | "manifest_invalid" | "pack_not_found" | "file_outside_pack" | "file_read_failed" | "unsafe_ref" | "missing_files" | "pack_exists" | "pack_ref_below_pack" | "unsafe_ref_namespace" | "pack_write_failed" | "store_unavailable" | "pack_not_removable";
|
|
61
61
|
readonly details?: Record<string, unknown> | undefined;
|
|
62
|
-
constructor(code: "manifest_missing" | "manifest_parse_error" | "manifest_invalid" | "pack_not_found" | "file_outside_pack" | "file_read_failed", message: string, details?: Record<string, unknown> | undefined);
|
|
62
|
+
constructor(code: "manifest_missing" | "manifest_parse_error" | "manifest_invalid" | "pack_not_found" | "file_outside_pack" | "file_read_failed" | "unsafe_ref" | "missing_files" | "pack_exists" | "pack_ref_below_pack" | "unsafe_ref_namespace" | "pack_write_failed" | "store_unavailable" | "pack_not_removable", message: string, details?: Record<string, unknown> | undefined);
|
|
63
63
|
}
|
|
64
64
|
//# sourceMappingURL=context-pack-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-pack-types.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/context-pack-types.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb;wEACoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC;;uEAEmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAE1E,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B;2CACuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,qBAAqB,CAAC;IAClC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB;qEACiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;oEACgE;IAChE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;oDAEgD;IAChD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,kEAAkE;IAClE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,qBAAa,gBAAiB,SAAQ,KAAK;aAEvB,IAAI,EAChB,kBAAkB,GAClB,sBAAsB,GACtB,kBAAkB,GAClB,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB;
|
|
1
|
+
{"version":3,"file":"context-pack-types.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/context-pack-types.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb;wEACoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC;;uEAEmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAE1E,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B;2CACuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,qBAAqB,CAAC;IAClC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB;qEACiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;oEACgE;IAChE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;oDAEgD;IAChD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,kEAAkE;IAClE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,qBAAa,gBAAiB,SAAQ,KAAK;aAEvB,IAAI,EAChB,kBAAkB,GAClB,sBAAsB,GACtB,kBAAkB,GAClB,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,GAGlB,YAAY,GAEZ,eAAe,GACf,aAAa,GACb,qBAAqB,GACrB,sBAAsB,GACtB,mBAAmB,GACnB,mBAAmB,GAInB,oBAAoB;aAER,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAtBjC,IAAI,EAChB,kBAAkB,GAClB,sBAAsB,GACtB,kBAAkB,GAClB,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,GAGlB,YAAY,GAEZ,eAAe,GACf,aAAa,GACb,qBAAqB,GACrB,sBAAsB,GACtB,mBAAmB,GACnB,mBAAmB,GAInB,oBAAoB,EACxB,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-pack-types.js","sourceRoot":"","sources":["../../../src/domain/context-packs/context-pack-types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,gBAAgB;AAChB,EAAE;AACF,sEAAsE;AACtE,wEAAwE;AACxE,sEAAsE;AACtE,EAAE;AACF,2DAA2D;AAC3D,4DAA4D;AAC5D,sEAAsE;AACtE,oCAAoC;AAiEpC,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAEvB;
|
|
1
|
+
{"version":3,"file":"context-pack-types.js","sourceRoot":"","sources":["../../../src/domain/context-packs/context-pack-types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,gBAAgB;AAChB,EAAE;AACF,sEAAsE;AACtE,wEAAwE;AACxE,sEAAsE;AACtE,EAAE;AACF,2DAA2D;AAC3D,4DAA4D;AAC5D,sEAAsE;AACtE,oCAAoC;AAiEpC,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAEvB;IAsBA;IAvBlB,YACkB,IAoBQ,EACxB,OAAe,EACC,OAAiC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC;QAxBC,SAAI,GAAJ,IAAI,CAoBI;QAER,YAAO,GAAP,OAAO,CAA0B;QAGjD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-parser.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/manifest-parser.ts"],"names":[],"mappings":"AAQA,OAAO,EAAoB,KAAK,mBAAmB,EAAgC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest-parser.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/manifest-parser.ts"],"names":[],"mappings":"AAQA,OAAO,EAAoB,KAAK,mBAAmB,EAAgC,MAAM,yBAAyB,CAAC;AAKnH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,mBAAmB,CA0HtF"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
// (no fs touches in the parser itself; caller hands in raw YAML).
|
|
7
7
|
import { parse as parseYaml } from "yaml";
|
|
8
8
|
import { ContextPackError } from "./context-pack-types.js";
|
|
9
|
+
import { isSafePackVersion } from "./ref-safety.js";
|
|
9
10
|
const ALLOWED_FILE_SUFFIXES = [".md", ".markdown", ".yaml", ".yml", ".txt"];
|
|
10
11
|
export function parseManifest(rawYaml, sourcePath) {
|
|
11
12
|
let parsed;
|
|
@@ -30,6 +31,16 @@ export function parseManifest(rawYaml, sourcePath) {
|
|
|
30
31
|
throw new ContextPackError("manifest_invalid", `manifest at ${sourcePath} is missing required field 'version'`, { sourcePath });
|
|
31
32
|
}
|
|
32
33
|
const version = String(versionRaw);
|
|
34
|
+
// Slice-03 lineage repair (R2 HIGH-2): enforce the bounded, delimiter-free
|
|
35
|
+
// version predicate at the ingestion chokepoint — a colon-bearing version
|
|
36
|
+
// forges a `<name>:<version>` store id and an overlong one breaches the OS
|
|
37
|
+
// filename bound. Rejecting here covers every scan/install path that flows
|
|
38
|
+
// through the parser.
|
|
39
|
+
if (!isSafePackVersion(version)) {
|
|
40
|
+
throw new ContextPackError("manifest_invalid", `manifest at ${sourcePath} has an invalid version '${version}' — a version must be a single bounded token ` +
|
|
41
|
+
`[A-Za-z0-9][A-Za-z0-9._+-]{0,31} (no ':' or other separator, no whitespace, ≤32 chars) so it cannot ` +
|
|
42
|
+
`forge a '<name>:<version>' store id or breach the OS filename bound.`, { sourcePath });
|
|
43
|
+
}
|
|
33
44
|
const purpose = typeof obj["purpose"] === "string" ? obj["purpose"] : undefined;
|
|
34
45
|
const filesRaw = obj["files"];
|
|
35
46
|
if (!Array.isArray(filesRaw)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-parser.js","sourceRoot":"","sources":["../../../src/domain/context-packs/manifest-parser.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,UAAU;AACV,EAAE;AACF,oEAAoE;AACpE,+DAA+D;AAC/D,kEAAkE;AAElE,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAA0D,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest-parser.js","sourceRoot":"","sources":["../../../src/domain/context-packs/manifest-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A path-like pack ref is one or more `/`-separated segments, each a safe segment. Empty ref, an
|
|
3
|
+
* absolute path (empty leading segment), a double/trailing slash (empty segment), a '.'/'..'
|
|
4
|
+
* traversal segment, or any injection char in a segment → NOT safe.
|
|
5
|
+
*/
|
|
6
|
+
export declare function isSafePackRef(ref: string): boolean;
|
|
7
|
+
/** Throwing form for write/resolve sites — packs must stay inside the context store root. */
|
|
8
|
+
export declare function assertSafePackRef(ref: string): void;
|
|
9
|
+
/** A pack version must be a single bounded token (no separators, whitespace, '@', or ':'). */
|
|
10
|
+
export declare function isSafePackVersion(version: string): boolean;
|
|
11
|
+
//# sourceMappingURL=ref-safety.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ref-safety.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/ref-safety.ts"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQlD;AAED,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAQnD;AAED,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D"}
|