@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
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/** the RuntimeMark.tsx rect list, transcribed (x, y, w, h) */
|
|
2
|
+
const CLAWD_BODY_RECTS = [
|
|
3
|
+
[3, 2, 10, 8], // body
|
|
4
|
+
[1, 5, 2, 3], // left arm
|
|
5
|
+
[13, 5, 2, 3], // right arm
|
|
6
|
+
[4, 10, 2, 3], // legs
|
|
7
|
+
[7, 10, 2, 3],
|
|
8
|
+
[10, 10, 2, 3],
|
|
9
|
+
];
|
|
10
|
+
const CLAWD_EYE_RECTS = [
|
|
11
|
+
[5, 4, 1, 2],
|
|
12
|
+
[10, 4, 1, 2],
|
|
13
|
+
];
|
|
14
|
+
/** the 16x16 pixel matrix, derived from the rect list (row-major) */
|
|
15
|
+
export function clawdGrid() {
|
|
16
|
+
const g = Array.from({ length: 16 }, () => Array.from({ length: 16 }, () => 0));
|
|
17
|
+
for (const [x, y, w, h] of CLAWD_BODY_RECTS)
|
|
18
|
+
for (let r = y; r < y + h; r++)
|
|
19
|
+
for (let c = x; c < x + w; c++)
|
|
20
|
+
g[r][c] = 1;
|
|
21
|
+
for (const [x, y, w, h] of CLAWD_EYE_RECTS)
|
|
22
|
+
for (let r = y; r < y + h; r++)
|
|
23
|
+
for (let c = x; c < x + w; c++)
|
|
24
|
+
g[r][c] = 2;
|
|
25
|
+
return g;
|
|
26
|
+
}
|
|
27
|
+
/** FAITHFUL form — 16 cells x 8 rows of half-blocks (▀ paints the top pixel
|
|
28
|
+
* with fg and the bottom with bg): the detail-pane / prototype scale. */
|
|
29
|
+
export function clawdFaithfulRows() {
|
|
30
|
+
const g = clawdGrid();
|
|
31
|
+
const rows = [];
|
|
32
|
+
for (let r = 0; r < 16; r += 2) {
|
|
33
|
+
const segs = [];
|
|
34
|
+
for (let c = 0; c < 16; c++) {
|
|
35
|
+
const top = g[r][c];
|
|
36
|
+
const bot = g[r + 1][c];
|
|
37
|
+
const tok = (p) => (p === 1 ? "clawd" : p === 2 ? "clawdEye" : undefined);
|
|
38
|
+
if (top === 0 && bot === 0)
|
|
39
|
+
segs.push({ text: " " });
|
|
40
|
+
else if (top === bot)
|
|
41
|
+
segs.push({ text: "█", token: tok(top) });
|
|
42
|
+
else if (top === 0)
|
|
43
|
+
segs.push({ text: "▄", token: tok(bot) });
|
|
44
|
+
else if (bot === 0)
|
|
45
|
+
segs.push({ text: "▀", token: tok(top) });
|
|
46
|
+
else
|
|
47
|
+
segs.push({ text: "▀", token: tok(top), bg: tok(bot) });
|
|
48
|
+
}
|
|
49
|
+
rows.push(segs);
|
|
50
|
+
}
|
|
51
|
+
return rows;
|
|
52
|
+
}
|
|
53
|
+
/** quadrant-block downsample: the 16x16 grid → cols x rows cells, each cell
|
|
54
|
+
* a 2x2 quadrant whose quadrants are majority-vote body coverage of their
|
|
55
|
+
* source region. PROVABLY grid-derived (guard finding 4) — the mini forms
|
|
56
|
+
* are OUTPUTS of this function, never hand-picked glyphs. Honest limit: the
|
|
57
|
+
* 1px eyes are below majority threshold at these scales and vanish — that
|
|
58
|
+
* fidelity fact is part of the mr7 packet, not hidden. */
|
|
59
|
+
const QUADRANT_CHARS = {
|
|
60
|
+
0b0000: " ", 0b0001: "▗", 0b0010: "▖", 0b0011: "▄", 0b0100: "▝", 0b0101: "▐",
|
|
61
|
+
0b0110: "▞", 0b0111: "▟", 0b1000: "▘", 0b1001: "▚", 0b1010: "▌", 0b1011: "▙",
|
|
62
|
+
0b1100: "▀", 0b1101: "▜", 0b1110: "▛", 0b1111: "█",
|
|
63
|
+
};
|
|
64
|
+
export function clawdDownsample(cols, rows) {
|
|
65
|
+
const g = clawdGrid();
|
|
66
|
+
const cellW = 16 / cols;
|
|
67
|
+
const cellH = 16 / rows;
|
|
68
|
+
const covered = (x0, y0, x1, y1) => {
|
|
69
|
+
let body = 0;
|
|
70
|
+
let total = 0;
|
|
71
|
+
for (let y = Math.floor(y0); y < Math.ceil(y1); y++)
|
|
72
|
+
for (let x = Math.floor(x0); x < Math.ceil(x1); x++) {
|
|
73
|
+
total++;
|
|
74
|
+
if (g[y][x] !== 0)
|
|
75
|
+
body++;
|
|
76
|
+
}
|
|
77
|
+
return total > 0 && body * 2 >= total; // majority vote
|
|
78
|
+
};
|
|
79
|
+
const out = [];
|
|
80
|
+
for (let r = 0; r < rows; r++) {
|
|
81
|
+
const segs = [];
|
|
82
|
+
for (let c = 0; c < cols; c++) {
|
|
83
|
+
const x0 = c * cellW;
|
|
84
|
+
const y0 = r * cellH;
|
|
85
|
+
const bits = (covered(x0, y0, x0 + cellW / 2, y0 + cellH / 2) ? 0b1000 : 0) |
|
|
86
|
+
(covered(x0 + cellW / 2, y0, x0 + cellW, y0 + cellH / 2) ? 0b0100 : 0) |
|
|
87
|
+
(covered(x0, y0 + cellH / 2, x0 + cellW / 2, y0 + cellH) ? 0b0010 : 0) |
|
|
88
|
+
(covered(x0 + cellW / 2, y0 + cellH / 2, x0 + cellW, y0 + cellH) ? 0b0001 : 0);
|
|
89
|
+
const ch = QUADRANT_CHARS[bits];
|
|
90
|
+
segs.push(ch === " " ? { text: " " } : { text: ch, token: "clawd" });
|
|
91
|
+
}
|
|
92
|
+
out.push(segs);
|
|
93
|
+
}
|
|
94
|
+
return out;
|
|
95
|
+
}
|
|
96
|
+
/** FOUNDER ROUND-2 DESIGN (2026-08-04 via pm-lead): the row mark is a flat
|
|
97
|
+
* claude-terracotta BLOCK with two short dark vertical eye bars centered —
|
|
98
|
+
* no limbs/legs; color + face ARE the mark at 2-cell size. Exact source
|
|
99
|
+
* values: body #ad6755, eyes #181818 (RuntimeMark.tsx). */
|
|
100
|
+
export function clawdFounderMark() {
|
|
101
|
+
// superseded by clawdSquareMark (round-3: wide-rect center-bunch REJECTED);
|
|
102
|
+
// kept for the decision-record lineage only
|
|
103
|
+
return [
|
|
104
|
+
{ text: "╹", token: "clawdEye", bg: "clawd" },
|
|
105
|
+
{ text: "╹", token: "clawdEye", bg: "clawd" },
|
|
106
|
+
];
|
|
107
|
+
}
|
|
108
|
+
/** PICKS-V4 clawd row mark (founder amendment, PICKS-OF-RECORD sha256-16
|
|
109
|
+
* 14afeb74, 2026-08-04 — a bounded refinement INSIDE the locked square-with-
|
|
110
|
+
* eyes direction): the eyes are literally the characters `><` — left eye `>`,
|
|
111
|
+
* right eye `<`, pointing INWARD, squinty (reference image-cache 102).
|
|
112
|
+
* Founder rationale verbatim: eyes at the far edges do not read as eyes;
|
|
113
|
+
* inward angle brackets make it read as a FACE. Dark #181818 eyes ON the
|
|
114
|
+
* #ad6755 terracotta field, unchanged. (Lineage: round-4 shipped the ▘▝
|
|
115
|
+
* outer-quadrant pair; superseded by this amendment.) */
|
|
116
|
+
export function clawdSquareMark() {
|
|
117
|
+
return [
|
|
118
|
+
{ text: ">", token: "clawdEye", bg: "clawd" },
|
|
119
|
+
{ text: "<", token: "clawdEye", bg: "clawd" },
|
|
120
|
+
];
|
|
121
|
+
}
|
|
122
|
+
/** ROUND-3 codex blue-hint CANDIDATES — PICKED at picks v4 (14afeb74):
|
|
123
|
+
* CHEVRON-ONLY, on detail/topology surfaces only (founder delegated; pm-lead
|
|
124
|
+
* ruled the most restrained option). codexMark() below now ships the chevron
|
|
125
|
+
* form; this record keeps the presented variants for decision lineage. Each
|
|
126
|
+
* variant uses the OFFICIAL sampled #6867aa (token codexBlue), never a
|
|
127
|
+
* remembered value. */
|
|
128
|
+
export function codexHintVariants() {
|
|
129
|
+
return {
|
|
130
|
+
none: codexMark(),
|
|
131
|
+
chevron: [
|
|
132
|
+
{ text: ">", token: "codexBlue", bold: true },
|
|
133
|
+
{ text: "_", token: "markInk", bold: true },
|
|
134
|
+
],
|
|
135
|
+
outline: [
|
|
136
|
+
{ text: "▕", token: "codexBlue" },
|
|
137
|
+
{ text: ">", token: "markInk", bold: true },
|
|
138
|
+
{ text: "_", token: "markInk", bold: true },
|
|
139
|
+
{ text: "▏", token: "codexBlue" },
|
|
140
|
+
],
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/** row-mark CANDIDATES for the mr7 pick — both are downsample outputs */
|
|
144
|
+
export function clawdMiniA() {
|
|
145
|
+
return clawdDownsample(2, 1)[0];
|
|
146
|
+
}
|
|
147
|
+
export function clawdMiniB() {
|
|
148
|
+
return clawdDownsample(3, 1)[0];
|
|
149
|
+
}
|
|
150
|
+
/** Codex: the `>_` prompt mark with the PICKS-V4 CHEVRON-ONLY blue hint
|
|
151
|
+
* (item a, 14afeb74): the `>` carries the OFFICIAL sampled #6867aa; the `_`
|
|
152
|
+
* stays light ink. Text stays exactly ASCII `>_` (web-identity: the SAME
|
|
153
|
+
* mark, not a cousin; ❯ remains vetoed). This mark renders on detail +
|
|
154
|
+
* topology surfaces only — the explorer carries no marks (locked). */
|
|
155
|
+
export function codexMark() {
|
|
156
|
+
return [
|
|
157
|
+
{ text: ">", token: "codexBlue", bold: true },
|
|
158
|
+
{ text: "_", token: "markInk", bold: true },
|
|
159
|
+
];
|
|
160
|
+
}
|
|
161
|
+
/** terminal/tty runtime: dark cell + white `>_` — same family, inverted. */
|
|
162
|
+
export function terminalMark() {
|
|
163
|
+
return [
|
|
164
|
+
{ text: ">", token: "bright", bg: "markBg", bold: true },
|
|
165
|
+
{ text: "_", token: "bright", bg: "markBg", bold: true },
|
|
166
|
+
];
|
|
167
|
+
}
|
|
168
|
+
/** the row-scale mark for a served runtime string (placeholder-safe default:
|
|
169
|
+
* miniA for claude until the founder pick lands — swap point, one site) */
|
|
170
|
+
export function runtimeMarkSegs(runtime) {
|
|
171
|
+
const r = (runtime ?? "").toLowerCase();
|
|
172
|
+
if (r.startsWith("claude"))
|
|
173
|
+
return clawdSquareMark(); // round-3 locked square
|
|
174
|
+
if (r.startsWith("codex"))
|
|
175
|
+
return codexMark();
|
|
176
|
+
if (r === "terminal" || r === "tty" || r.startsWith("external"))
|
|
177
|
+
return terminalMark();
|
|
178
|
+
// unknown runtime: honest text token, dimmed — never a fabricated mark
|
|
179
|
+
return [{ text: "?", token: "dim" }];
|
|
180
|
+
}
|
|
181
|
+
/** plain-text width of a mark (all marks are single-cell glyphs) */
|
|
182
|
+
export function markText(segs) {
|
|
183
|
+
return segs.map((s) => s.text).join("");
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=runtime-marks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-marks.js","sourceRoot":"","sources":["../../src/topology/runtime-marks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { GraphCanvas } from "../canvas.js";
|
|
2
|
+
import type { GraphLayout } from "../layout.js";
|
|
3
|
+
import type { StyleContext } from "./hatchet.js";
|
|
4
|
+
export declare function renderBraille(layout: GraphLayout, ctx: StyleContext, width: number, tier1Fallback: boolean): GraphCanvas;
|
|
5
|
+
//# sourceMappingURL=braille.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"braille.d.ts","sourceRoot":"","sources":["../../../src/topology/styles/braille.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAsCjD,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,WAAW,CAsCxH"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// SPIKE — `--style braille`: the optional smooth end (TIER-2, modern
|
|
2
|
+
// terminals). Same boxed nodes as the Hatchet mainline; edges drawn at 2×4
|
|
3
|
+
// sub-cell resolution as braille dot runs. DEMOTED by the founder refinement
|
|
4
|
+
// to an optional style — the proven TIER-1 fallback IS renderHatchet (same
|
|
5
|
+
// layout, box-drawing edges), so degrading loses smoothness, never meaning.
|
|
6
|
+
import { GraphCanvas } from "../canvas.js";
|
|
7
|
+
import { edgeToken } from "../glyphs.js";
|
|
8
|
+
import { drawClipIndicator, drawContainers, drawNodeBox, renderHatchet } from "./hatchet.js";
|
|
9
|
+
// braille dot bits by (subCol 0-1, subRow 0-3)
|
|
10
|
+
const DOT_BITS = [
|
|
11
|
+
[0x01, 0x02, 0x04, 0x40],
|
|
12
|
+
[0x08, 0x10, 0x20, 0x80],
|
|
13
|
+
];
|
|
14
|
+
class BrailleField {
|
|
15
|
+
cells = new Map();
|
|
16
|
+
setDot(px, py, token) {
|
|
17
|
+
const cellX = Math.floor(px / 2);
|
|
18
|
+
const cellY = Math.floor(py / 4);
|
|
19
|
+
const key = `${cellX},${cellY}`;
|
|
20
|
+
const bits = DOT_BITS[px % 2][py % 4];
|
|
21
|
+
const existing = this.cells.get(key);
|
|
22
|
+
this.cells.set(key, { bits: (existing?.bits ?? 0) | bits, token: existing?.token ?? token });
|
|
23
|
+
}
|
|
24
|
+
line(x1, y1, x2, y2, token) {
|
|
25
|
+
const steps = Math.max(Math.abs(x2 - x1), Math.abs(y2 - y1), 1);
|
|
26
|
+
for (let i = 0; i <= steps; i++) {
|
|
27
|
+
this.setDot(Math.round(x1 + ((x2 - x1) * i) / steps), Math.round(y1 + ((y2 - y1) * i) / steps), token);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
blit(canvas) {
|
|
31
|
+
for (const [key, cell] of this.cells) {
|
|
32
|
+
const [x, y] = key.split(",").map(Number);
|
|
33
|
+
if (canvas.charAt(x, y) !== " " || canvas.isProtected(x, y))
|
|
34
|
+
continue; // never dot boxes/text
|
|
35
|
+
canvas.set(x, y, String.fromCharCode(0x2800 + cell.bits), cell.token);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function renderBraille(layout, ctx, width, tier1Fallback) {
|
|
40
|
+
if (tier1Fallback)
|
|
41
|
+
return renderHatchet(layout, ctx, width); // the PROVEN fallback path
|
|
42
|
+
// DRAW ORDER = the hatchet semantics (pm kickback: opacity must be a CLASS
|
|
43
|
+
// invariant, never a draw-order artifact): (1) box-drawing edge runs first,
|
|
44
|
+
// (2) OPAQUE boxes clear any pass-through segment, (3) the braille field
|
|
45
|
+
// blits last but is protected-cell-aware, (4) arrowheads last of all.
|
|
46
|
+
const canvas = new GraphCanvas(width);
|
|
47
|
+
drawContainers(canvas, layout, ctx);
|
|
48
|
+
const field = new BrailleField();
|
|
49
|
+
const arrows = [];
|
|
50
|
+
for (const edge of layout.edges) {
|
|
51
|
+
const from = layout.byId.get(edge.source);
|
|
52
|
+
const to = layout.byId.get(edge.target);
|
|
53
|
+
if (!from || !to)
|
|
54
|
+
continue;
|
|
55
|
+
const token = edgeToken(edge.label);
|
|
56
|
+
const rightward = to.x > from.x;
|
|
57
|
+
const txCell = rightward ? to.x - 1 : to.x + to.w;
|
|
58
|
+
if (from.y === to.y) {
|
|
59
|
+
// CLEAN-BOX refinement: a straight horizontal is already straight —
|
|
60
|
+
// box-drawing ─ aligns mid-cell with the arrowhead (braille ⠤ sits low
|
|
61
|
+
// and kinks the junction); braille earns its keep on DIAGONALS only.
|
|
62
|
+
const [x1, x2] = rightward ? [from.x + from.w, txCell - 1] : [txCell + 1, from.x - 1];
|
|
63
|
+
canvas.hline(x1, x2, from.y + 1, "─", token);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
const sx = (rightward ? from.x + from.w : from.x - 1) * 2;
|
|
67
|
+
const sy = (from.y + 1) * 4 + 2;
|
|
68
|
+
const tx = txCell * 2 + (rightward ? 0 : 1);
|
|
69
|
+
const ty = (to.y + 1) * 4 + 2;
|
|
70
|
+
field.line(sx, sy, tx, ty, token);
|
|
71
|
+
}
|
|
72
|
+
arrows.push({ x: txCell, y: to.y + 1, ch: rightward ? "▸" : "◂", token });
|
|
73
|
+
}
|
|
74
|
+
for (const p of layout.placed)
|
|
75
|
+
drawNodeBox(canvas, p, ctx);
|
|
76
|
+
field.blit(canvas); // protected-aware: never dots a box cell
|
|
77
|
+
for (const a of arrows)
|
|
78
|
+
if (!canvas.isProtected(a.x, a.y))
|
|
79
|
+
canvas.set(a.x, a.y, a.ch, a.token, true);
|
|
80
|
+
drawClipIndicator(canvas, layout, width);
|
|
81
|
+
canvas.text(2, canvas.height + 1, "braille sub-cell edges · TIER-2 (modern terminals) · fallback = hatchet box-drawing", "dim");
|
|
82
|
+
return canvas;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=braille.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"braille.js","sourceRoot":"","sources":["../../../src/topology/styles/braille.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7F,+CAA+C;AAC/C,MAAM,QAAQ,GAAG;IACf,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACxB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CAChB,CAAC;AAEX,MAAM,YAAY;IACR,KAAK,GAAG,IAAI,GAAG,EAA0C,CAAC;IAElE,MAAM,CAAC,EAAU,EAAE,EAAU,EAAE,KAAY;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAE,CAAC,EAAE,GAAG,CAAC,CAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,KAAY;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAmB;QACtB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAqB,CAAC;YAC9D,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,SAAS,CAAC,uBAAuB;YAC9F,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,MAAmB,EAAE,GAAiB,EAAE,KAAa,EAAE,aAAsB;IACzG,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,2BAA2B;IACxF,2EAA2E;IAC3E,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;IACjC,MAAM,MAAM,GAAqF,EAAE,CAAC;IACpG,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;YAAE,SAAS;QAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;YACpB,oEAAoE;YACpE,uEAAuE;YACvE,qEAAqE;YACrE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtF,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM;QAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,yCAAyC;IAC7D,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,qFAAqF,EAAE,KAAK,CAAC,CAAC;IAChI,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { GraphCanvas } from "../canvas.js";
|
|
2
|
+
import { edgeToken } from "../glyphs.js";
|
|
3
|
+
import type { GraphLayout, PlacedNode } from "../layout.js";
|
|
4
|
+
import type { Action } from "../../types.js";
|
|
5
|
+
export interface StyleContext {
|
|
6
|
+
/** host/rig names for drill actions (the SAME Action vocabulary every
|
|
7
|
+
* adapter dispatches — PIN-1) */
|
|
8
|
+
host: string;
|
|
9
|
+
rig: string;
|
|
10
|
+
/** logicalId of the selected node (accent border, like Hatchet) */
|
|
11
|
+
selected?: string | null;
|
|
12
|
+
}
|
|
13
|
+
export declare function drillAction(node: PlacedNode, ctx: StyleContext): Action;
|
|
14
|
+
export declare function drawNodeBox(canvas: GraphCanvas, p: PlacedNode, ctx: StyleContext): void;
|
|
15
|
+
interface Arrow {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
ch: string;
|
|
19
|
+
token: ReturnType<typeof edgeToken>;
|
|
20
|
+
}
|
|
21
|
+
/** straight orthogonal connector; the arrowhead is returned so the caller can
|
|
22
|
+
* draw it LAST (it must survive the node boxes painting over line ends) */
|
|
23
|
+
type Rect = {
|
|
24
|
+
x: number;
|
|
25
|
+
y: number;
|
|
26
|
+
w: number;
|
|
27
|
+
h: number;
|
|
28
|
+
};
|
|
29
|
+
export declare function drawEdge(canvas: GraphCanvas, from: PlacedNode, to: PlacedNode, kind: string, lane?: number, obstacles?: Rect[]): Arrow;
|
|
30
|
+
/** R2 HIGH-1: the LOCKED containment hierarchy drawn as real container boxes
|
|
31
|
+
* — the rig (double border, name tab) wraps pod containers (light border,
|
|
32
|
+
* ▾-name tab, header hit zone → drill pod) which wrap their agent boxes.
|
|
33
|
+
* Containers are BACKGROUNDS (unprotected fills): edges may route across
|
|
34
|
+
* their interiors; agent boxes stay opaque+protected on top. */
|
|
35
|
+
export declare function drawContainers(canvas: GraphCanvas, layout: GraphLayout, ctx: StyleContext): void;
|
|
36
|
+
export declare function renderHatchet(layout: GraphLayout, ctx: StyleContext, width: number): GraphCanvas;
|
|
37
|
+
/** MR8 width-clip honesty: the view never quietly loses right-side nodes —
|
|
38
|
+
* an INDICATOR only (founder-scoped: no scroll, no rework, no cap) */
|
|
39
|
+
export declare function drawClipIndicator(canvas: GraphCanvas, layout: GraphLayout, width: number): void;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=hatchet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hatchet.d.ts","sourceRoot":"","sources":["../../../src/topology/styles/hatchet.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAkB,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B;qCACiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAOvE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAmBvF;AAED,UAAU,KAAK;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;CACrC;AAED;2EAC2E;AAC3E,KAAK,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,SAAI,EAAE,SAAS,GAAE,IAAI,EAAO,GAAG,KAAK,CAmDrI;AAED;;;;gEAIgE;AAChE,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAchG;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAmBhG;AAED;sEACsE;AACtE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI/F"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
// SPIKE — the MAINLINE style (founder-preferred, Hatchet reference):
|
|
2
|
+
// boxed nodes + straight box-drawing connector lines + arrowheads.
|
|
3
|
+
// Info lives INSIDE the node (name line + runtime · ctx% · pod meta line),
|
|
4
|
+
// status lives ON the node (border color + glyph), edge KIND is line COLOR
|
|
5
|
+
// (delegates=teal accent · collaborates=green ok · escalates=amber warn) —
|
|
6
|
+
// NO text labels on the graph (founder refinement). TIER-1 glyphs only.
|
|
7
|
+
import { GraphCanvas } from "../canvas.js";
|
|
8
|
+
import { edgeToken } from "../glyphs.js";
|
|
9
|
+
import { runtimeMarkSegs } from "../runtime-marks.js";
|
|
10
|
+
export function drillAction(node, ctx) {
|
|
11
|
+
const target = {
|
|
12
|
+
host: ctx.host,
|
|
13
|
+
rig: ctx.rig,
|
|
14
|
+
...(node.node.data.podNamespace ? { pod: node.node.data.podNamespace } : {}),
|
|
15
|
+
};
|
|
16
|
+
return { type: "drill", resource: "agent", name: node.node.data.logicalId, target };
|
|
17
|
+
}
|
|
18
|
+
export function drawNodeBox(canvas, p, ctx) {
|
|
19
|
+
const selected = ctx.selected === p.node.data.logicalId;
|
|
20
|
+
const borderToken = selected ? "accent" : p.glyph.token;
|
|
21
|
+
canvas.box(p.x, p.y, p.w, p.h, borderToken);
|
|
22
|
+
canvas.text(p.x + 2, p.y + 1, p.glyph.glyph, p.glyph.token, true);
|
|
23
|
+
canvas.text(p.x + 4, p.y + 1, p.title, "bright", selected);
|
|
24
|
+
if (p.glyph.overlay)
|
|
25
|
+
canvas.text(p.x + 4 + p.title.length + 2, p.y + 1, p.glyph.overlay, "warn", true);
|
|
26
|
+
// S19 MR2: runtime renders as the web-family MARK + adjacent ctx%
|
|
27
|
+
let mx = p.x + 2;
|
|
28
|
+
for (const seg of runtimeMarkSegs(p.node.data.runtime)) {
|
|
29
|
+
canvas.text(mx, p.y + 2, seg.text, seg.token, seg.bold);
|
|
30
|
+
if (seg.bg)
|
|
31
|
+
for (let i = 0; i < seg.text.length; i++)
|
|
32
|
+
canvas.set(mx + i, p.y + 2, seg.text[i], seg.token, seg.bold, seg.bg);
|
|
33
|
+
mx += seg.text.length;
|
|
34
|
+
}
|
|
35
|
+
const ctxText = ` ${p.node.data.contextUsedPercentage == null ? "—" : `${Math.round(p.node.data.contextUsedPercentage)}%`}`;
|
|
36
|
+
canvas.text(mx, p.y + 2, ctxText, "dim");
|
|
37
|
+
// the WHOLE box is the hit surface — every row emits the same drill action
|
|
38
|
+
const action = drillAction(p, ctx);
|
|
39
|
+
for (let row = 0; row < p.h; row++)
|
|
40
|
+
canvas.zone(p.y + row, p.x, p.x + p.w, action);
|
|
41
|
+
}
|
|
42
|
+
export function drawEdge(canvas, from, to, kind, lane = 0, obstacles = []) {
|
|
43
|
+
const token = edgeToken(kind);
|
|
44
|
+
const sy = from.y + 1;
|
|
45
|
+
const ty = to.y + 1;
|
|
46
|
+
if (to.x > from.x + from.w) {
|
|
47
|
+
// rightward: out of source right edge, one corridor turn, into target left edge
|
|
48
|
+
const sx = from.x + from.w;
|
|
49
|
+
const corridor = to.x - 3 - lane * 2;
|
|
50
|
+
canvas.hline(sx, corridor, sy, "─", token);
|
|
51
|
+
if (sy !== ty) {
|
|
52
|
+
canvas.vline(corridor, Math.min(sy, ty), Math.max(sy, ty), "│", token);
|
|
53
|
+
canvas.set(corridor, sy, sy < ty ? "┐" : "┘", token);
|
|
54
|
+
canvas.set(corridor, ty, sy < ty ? "└" : "┌", token);
|
|
55
|
+
}
|
|
56
|
+
canvas.hline(corridor + 1, to.x - 2, ty, "─", token);
|
|
57
|
+
return { x: to.x - 1, y: ty, ch: "▸", token };
|
|
58
|
+
}
|
|
59
|
+
if (to.x + to.w < from.x) {
|
|
60
|
+
// leftward back-edge (escalation): route UNDER the boxes so it never
|
|
61
|
+
// crowds the delegation row — down, left along a low corridor, up into
|
|
62
|
+
// the target's bottom edge (the mockup's curve, box-drawn). The vertical
|
|
63
|
+
// legs pick columns that no OTHER box occupies (obstacle-aware).
|
|
64
|
+
const belowY = Math.max(...[from, to, ...obstacles].map((p) => p.y + p.h)) + 1 + lane;
|
|
65
|
+
const freeColumn = (box, fromRight) => {
|
|
66
|
+
const candidates = [];
|
|
67
|
+
for (let i = 2; i < box.w - 1; i++)
|
|
68
|
+
candidates.push(fromRight ? box.x + box.w - 1 - i : box.x + i);
|
|
69
|
+
for (const x of candidates) {
|
|
70
|
+
const blocked = obstacles.some((p) => p !== box && x >= p.x && x <= p.x + p.w - 1 && p.y + p.h > box.y + box.h && p.y <= belowY);
|
|
71
|
+
if (!blocked)
|
|
72
|
+
return x;
|
|
73
|
+
}
|
|
74
|
+
return box.x + 2;
|
|
75
|
+
};
|
|
76
|
+
const exitX = freeColumn(from, false);
|
|
77
|
+
const enterX = freeColumn(to, true);
|
|
78
|
+
canvas.vline(exitX, from.y + from.h, belowY - 1, "│", token);
|
|
79
|
+
canvas.set(exitX, belowY, "┘", token);
|
|
80
|
+
canvas.hline(enterX + 1, exitX - 1, belowY, "─", token);
|
|
81
|
+
canvas.set(enterX, belowY, "└", token);
|
|
82
|
+
canvas.vline(enterX, to.y + to.h + 1, belowY - 1, "│", token);
|
|
83
|
+
return { x: enterX, y: to.y + to.h, ch: "▴", token };
|
|
84
|
+
}
|
|
85
|
+
// same column: vertical connector
|
|
86
|
+
const x = from.x + Math.min(4, from.w - 2);
|
|
87
|
+
if (to.y > from.y) {
|
|
88
|
+
canvas.vline(x, from.y + from.h, to.y - 2, "│", token);
|
|
89
|
+
return { x, y: to.y - 1, ch: "▾", token };
|
|
90
|
+
}
|
|
91
|
+
canvas.vline(x, to.y + to.h + 1, from.y - 1, "│", token);
|
|
92
|
+
return { x, y: to.y + to.h, ch: "▴", token };
|
|
93
|
+
}
|
|
94
|
+
/** R2 HIGH-1: the LOCKED containment hierarchy drawn as real container boxes
|
|
95
|
+
* — the rig (double border, name tab) wraps pod containers (light border,
|
|
96
|
+
* ▾-name tab, header hit zone → drill pod) which wrap their agent boxes.
|
|
97
|
+
* Containers are BACKGROUNDS (unprotected fills): edges may route across
|
|
98
|
+
* their interiors; agent boxes stay opaque+protected on top. */
|
|
99
|
+
export function drawContainers(canvas, layout, ctx) {
|
|
100
|
+
for (const c of layout.containers) {
|
|
101
|
+
if (c.kind === "rig") {
|
|
102
|
+
canvas.box(c.x, c.y, c.w, c.h, "accent", true, false);
|
|
103
|
+
const tab = ` ▦ RIG ${c.name || ctx.rig} `; // round-3 rig glyph
|
|
104
|
+
canvas.text(c.x + 2, c.y, tab, "accent", true);
|
|
105
|
+
canvas.zone(c.y, c.x + 2, c.x + 2 + tab.length, { type: "drill", resource: "rig", name: c.name || ctx.rig, target: { host: ctx.host } });
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
canvas.box(c.x, c.y, c.w, c.h, "chrome", false, false);
|
|
109
|
+
const tab = ` ≡ ${c.name} `; // round-3 pod glyph
|
|
110
|
+
canvas.text(c.x + 1, c.y, tab, "accent", true);
|
|
111
|
+
canvas.zone(c.y, c.x + 1, c.x + 1 + tab.length, { type: "drill", resource: "pod", name: c.name, target: { host: ctx.host, rig: ctx.rig } });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export function renderHatchet(layout, ctx, width) {
|
|
116
|
+
const canvas = new GraphCanvas(width);
|
|
117
|
+
drawContainers(canvas, layout, ctx);
|
|
118
|
+
// then edges, agent boxes (borders clean up line ends), arrowheads LAST
|
|
119
|
+
const lanes = new Map();
|
|
120
|
+
const arrows = [];
|
|
121
|
+
for (const edge of layout.edges) {
|
|
122
|
+
const from = layout.byId.get(edge.source);
|
|
123
|
+
const to = layout.byId.get(edge.target);
|
|
124
|
+
if (!from || !to)
|
|
125
|
+
continue; // honest: an edge to an unknown node is not drawn as guesswork
|
|
126
|
+
const laneKey = `${to.x}:${to.x + to.w < from.x ? "back" : "fwd"}`;
|
|
127
|
+
const lane = lanes.get(laneKey) ?? 0;
|
|
128
|
+
lanes.set(laneKey, lane + 1);
|
|
129
|
+
arrows.push(drawEdge(canvas, from, to, edge.label, lane, [...layout.placed, ...layout.containers.filter((c) => c.kind === "pod")]));
|
|
130
|
+
}
|
|
131
|
+
for (const p of layout.placed)
|
|
132
|
+
drawNodeBox(canvas, p, ctx);
|
|
133
|
+
for (const a of arrows)
|
|
134
|
+
canvas.set(a.x, a.y, a.ch, a.token, true);
|
|
135
|
+
drawClipIndicator(canvas, layout, width);
|
|
136
|
+
return canvas;
|
|
137
|
+
}
|
|
138
|
+
/** MR8 width-clip honesty: the view never quietly loses right-side nodes —
|
|
139
|
+
* an INDICATOR only (founder-scoped: no scroll, no rework, no cap) */
|
|
140
|
+
export function drawClipIndicator(canvas, layout, width) {
|
|
141
|
+
if (!layout.clipped)
|
|
142
|
+
return;
|
|
143
|
+
const label = " content clipped ▸ ";
|
|
144
|
+
canvas.text(Math.max(width - label.length, 0), 0, label, "warn", true);
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=hatchet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hatchet.js","sourceRoot":"","sources":["../../../src/topology/styles/hatchet.ts"],"names":[],"mappings":"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"}
|