@telora/daemon 0.19.47 → 0.19.82
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-info.json +8 -3
- package/dist/assembly-engine.d.ts +9 -0
- package/dist/assembly-engine.d.ts.map +1 -1
- package/dist/assembly-engine.js.map +1 -1
- package/dist/audit-hooks.js +1 -1
- package/dist/branch-status.js +2 -2
- package/dist/branch-status.js.map +1 -1
- package/dist/ci-sensor-loop.d.ts +47 -0
- package/dist/ci-sensor-loop.d.ts.map +1 -0
- package/dist/ci-sensor-loop.js +116 -0
- package/dist/ci-sensor-loop.js.map +1 -0
- package/dist/ci-status-git.d.ts +52 -0
- package/dist/ci-status-git.d.ts.map +1 -0
- package/dist/ci-status-git.js +86 -0
- package/dist/ci-status-git.js.map +1 -0
- package/dist/ci-status.d.ts +122 -0
- package/dist/ci-status.d.ts.map +1 -0
- package/dist/ci-status.js +114 -0
- package/dist/ci-status.js.map +1 -0
- package/dist/cli/connect/agents.d.ts +24 -0
- package/dist/cli/connect/agents.d.ts.map +1 -0
- package/dist/cli/connect/agents.js +65 -0
- package/dist/cli/connect/agents.js.map +1 -0
- package/dist/cli/connect/claude.d.ts +31 -0
- package/dist/cli/connect/claude.d.ts.map +1 -0
- package/dist/cli/connect/claude.js +104 -0
- package/dist/cli/connect/claude.js.map +1 -0
- package/dist/cli/connect/cline.d.ts +37 -0
- package/dist/cli/connect/cline.d.ts.map +1 -0
- package/dist/cli/connect/cline.js +115 -0
- package/dist/cli/connect/cline.js.map +1 -0
- package/dist/cli/connect/codex.d.ts +44 -0
- package/dist/cli/connect/codex.d.ts.map +1 -0
- package/dist/cli/connect/codex.js +111 -0
- package/dist/cli/connect/codex.js.map +1 -0
- package/dist/cli/connect/ide.d.ts +69 -0
- package/dist/cli/connect/ide.d.ts.map +1 -0
- package/dist/cli/connect/ide.js +134 -0
- package/dist/cli/connect/ide.js.map +1 -0
- package/dist/cli/connect/scaffolding.d.ts +31 -0
- package/dist/cli/connect/scaffolding.d.ts.map +1 -0
- package/dist/cli/connect/scaffolding.js +52 -0
- package/dist/cli/connect/scaffolding.js.map +1 -0
- package/dist/cli/connect/shared.d.ts +30 -0
- package/dist/cli/connect/shared.d.ts.map +1 -0
- package/dist/cli/connect/shared.js +11 -0
- package/dist/cli/connect/shared.js.map +1 -0
- package/dist/cli/connect.d.ts +9 -210
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +10 -526
- package/dist/cli/connect.js.map +1 -1
- package/dist/cli/open.js +2 -2
- package/dist/completion/event.d.ts +2 -0
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +19 -2
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/merge-phase.d.ts +3 -0
- package/dist/completion/merge-phase.d.ts.map +1 -1
- package/dist/completion/merge-phase.js +35 -3
- package/dist/completion/merge-phase.js.map +1 -1
- package/dist/completion/read-only-pristine.d.ts +1 -1
- package/dist/completion/read-only-pristine.d.ts.map +1 -1
- package/dist/completion/read-only-pristine.js +1 -1
- package/dist/completion/read-only-pristine.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts +30 -3
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +203 -15
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/status-advance-phase.js +1 -1
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/completion/team-completion.d.ts.map +1 -1
- package/dist/completion/team-completion.js +22 -2
- package/dist/completion/team-completion.js.map +1 -1
- package/dist/completion/team-lifecycle.js +1 -1
- package/dist/completion/terminated-work-reconcile.js +1 -1
- package/dist/completion/terminated-work-reconcile.js.map +1 -1
- package/dist/condition-evaluators.d.ts +41 -2
- package/dist/condition-evaluators.d.ts.map +1 -1
- package/dist/condition-evaluators.js +37 -288
- package/dist/condition-evaluators.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +23 -0
- package/dist/config.js.map +1 -1
- package/dist/context-audit.d.ts +1 -1
- package/dist/context-audit.d.ts.map +1 -1
- package/dist/context-lock.d.ts +1 -1
- package/dist/context-lock.d.ts.map +1 -1
- package/dist/control-state.d.ts +2 -2
- package/dist/control-state.d.ts.map +1 -1
- package/dist/control-state.js +4 -3
- package/dist/control-state.js.map +1 -1
- package/dist/daemon-process.d.ts +1 -1
- package/dist/daemon-process.d.ts.map +1 -1
- package/dist/delivery-advance-block.d.ts +1 -1
- package/dist/delivery-advance-block.d.ts.map +1 -1
- package/dist/delivery-advance-block.js +1 -1
- package/dist/delivery-advance-block.js.map +1 -1
- package/dist/delivery-lifecycle.js +1 -1
- package/dist/delivery-reconciler-shadow.d.ts +1 -1
- package/dist/delivery-reconciler-shadow.d.ts.map +1 -1
- package/dist/delivery-reconciler-shadow.js +1 -1
- package/dist/delivery-reconciler-shadow.js.map +1 -1
- package/dist/directive-executor.js +1 -1
- package/dist/directive-executor.js.map +1 -1
- package/dist/drift-eval-loop.d.ts.map +1 -1
- package/dist/drift-eval-loop.js +6 -14
- package/dist/drift-eval-loop.js.map +1 -1
- package/dist/escalations.d.ts +1 -1
- package/dist/escalations.d.ts.map +1 -1
- package/dist/escalations.js +1 -1
- package/dist/escalations.js.map +1 -1
- package/dist/evaluation-context.d.ts +2 -33
- package/dist/evaluation-context.d.ts.map +1 -1
- package/dist/evaluation-context.js +2 -56
- package/dist/evaluation-context.js.map +1 -1
- package/dist/focus-engine.d.ts +14 -5
- package/dist/focus-engine.d.ts.map +1 -1
- package/dist/focus-engine.js +35 -289
- package/dist/focus-engine.js.map +1 -1
- package/dist/focus-executor.d.ts +10 -791
- package/dist/focus-executor.d.ts.map +1 -1
- package/dist/focus-executor.js +81 -1572
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-lifecycle.js +2 -2
- package/dist/focus-lifecycle.js.map +1 -1
- package/dist/focus-loop-registry.d.ts +52 -0
- package/dist/focus-loop-registry.d.ts.map +1 -0
- package/dist/focus-loop-registry.js +328 -0
- package/dist/focus-loop-registry.js.map +1 -0
- package/dist/focus-merge.d.ts +1 -1
- package/dist/focus-merge.d.ts.map +1 -1
- package/dist/focus-merge.js +6 -6
- package/dist/focus-merge.js.map +1 -1
- package/dist/focus-phase.d.ts +4 -0
- package/dist/focus-phase.d.ts.map +1 -1
- package/dist/focus-phase.js +3 -3
- package/dist/focus-phase.js.map +1 -1
- package/dist/focus-prompt-builder.d.ts.map +1 -1
- package/dist/focus-prompt-builder.js +4 -1
- package/dist/focus-prompt-builder.js.map +1 -1
- package/dist/focus-stage-lifecycle/planning-release.d.ts +197 -0
- package/dist/focus-stage-lifecycle/planning-release.d.ts.map +1 -0
- package/dist/focus-stage-lifecycle/planning-release.js +312 -0
- package/dist/focus-stage-lifecycle/planning-release.js.map +1 -0
- package/dist/focus-stage-lifecycle/review-convergence.d.ts +133 -0
- package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +1 -0
- package/dist/focus-stage-lifecycle/review-convergence.js +235 -0
- package/dist/focus-stage-lifecycle/review-convergence.js.map +1 -0
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +133 -0
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -0
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +365 -0
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -0
- package/dist/focus-stage-lifecycle.d.ts +22 -421
- package/dist/focus-stage-lifecycle.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle.js +24 -832
- package/dist/focus-stage-lifecycle.js.map +1 -1
- package/dist/{git-activity.d.ts → git/activity.d.ts} +1 -1
- package/dist/git/activity.d.ts.map +1 -0
- package/dist/{git-activity.js → git/activity.js} +2 -2
- package/dist/git/activity.js.map +1 -0
- package/dist/{git-branch.d.ts → git/branch.d.ts} +2 -2
- package/dist/git/branch.d.ts.map +1 -0
- package/dist/{git-branch.js → git/branch.js} +2 -2
- package/dist/git/branch.js.map +1 -0
- package/dist/{git-fetch.d.ts → git/fetch.d.ts} +2 -2
- package/dist/git/fetch.d.ts.map +1 -0
- package/dist/{git-fetch.js → git/fetch.js} +1 -1
- package/dist/git/fetch.js.map +1 -0
- package/dist/{git-genesis.d.ts → git/genesis.d.ts} +3 -3
- package/dist/git/genesis.d.ts.map +1 -0
- package/dist/{git-genesis.js → git/genesis.js} +5 -5
- package/dist/git/genesis.js.map +1 -0
- package/dist/git/index.d.ts +36 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +36 -0
- package/dist/git/index.js.map +1 -0
- package/dist/{git-integration.d.ts → git/integration.d.ts} +2 -2
- package/dist/git/integration.d.ts.map +1 -0
- package/dist/{git-integration.js → git/integration.js} +4 -4
- package/dist/git/integration.js.map +1 -0
- package/dist/{git-merge-helpers.d.ts → git/merge-helpers.d.ts} +3 -3
- package/dist/git/merge-helpers.d.ts.map +1 -0
- package/dist/{git-merge-helpers.js → git/merge-helpers.js} +3 -3
- package/dist/git/merge-helpers.js.map +1 -0
- package/dist/{git-merge-lock.d.ts → git/merge-lock.d.ts} +1 -1
- package/dist/git/merge-lock.d.ts.map +1 -0
- package/dist/{git-merge-lock.js → git/merge-lock.js} +1 -1
- package/dist/git/merge-lock.js.map +1 -0
- package/dist/{git-merge-strategies.d.ts → git/merge-strategies.d.ts} +2 -2
- package/dist/git/merge-strategies.d.ts.map +1 -0
- package/dist/{git-merge-strategies.js → git/merge-strategies.js} +3 -3
- package/dist/git/merge-strategies.js.map +1 -0
- package/dist/{git-merge.d.ts → git/merge.d.ts} +4 -4
- package/dist/git/merge.d.ts.map +1 -0
- package/dist/{git-merge.js → git/merge.js} +4 -4
- package/dist/git/merge.js.map +1 -0
- package/dist/{git-state-detector.d.ts → git/state-detector.d.ts} +2 -2
- package/dist/git/state-detector.d.ts.map +1 -0
- package/dist/{git-state-detector.js → git/state-detector.js} +7 -7
- package/dist/git/state-detector.js.map +1 -0
- package/dist/{git-types.d.ts → git/types.d.ts} +2 -2
- package/dist/git/types.d.ts.map +1 -0
- package/dist/{git-types.js → git/types.js} +1 -1
- package/dist/git/types.js.map +1 -0
- package/dist/{git-utils.d.ts → git/utils.d.ts} +1 -1
- package/dist/git/utils.d.ts.map +1 -0
- package/dist/{git-utils.js → git/utils.js} +2 -2
- package/dist/git/utils.js.map +1 -0
- package/dist/git.d.ts +5 -5
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +10 -10
- package/dist/git.js.map +1 -1
- package/dist/guard-engine.d.ts +3 -2
- package/dist/guard-engine.d.ts.map +1 -1
- package/dist/guard-engine.js +2 -2
- package/dist/guard-engine.js.map +1 -1
- package/dist/install-probe-tick.d.ts +63 -0
- package/dist/install-probe-tick.d.ts.map +1 -0
- package/dist/install-probe-tick.js +137 -0
- package/dist/install-probe-tick.js.map +1 -0
- package/dist/install-probe.d.ts +115 -0
- package/dist/install-probe.d.ts.map +1 -0
- package/dist/install-probe.js +197 -0
- package/dist/install-probe.js.map +1 -0
- package/dist/listener-auto-advance.d.ts.map +1 -1
- package/dist/listener-auto-advance.js +31 -0
- package/dist/listener-auto-advance.js.map +1 -1
- package/dist/listener.js +5 -5
- package/dist/listener.js.map +1 -1
- package/dist/{loop-context-audit-pass.d.ts → loops/context-audit-pass.d.ts} +4 -4
- package/dist/loops/context-audit-pass.d.ts.map +1 -0
- package/dist/{loop-context-audit-pass.js → loops/context-audit-pass.js} +7 -7
- package/dist/loops/context-audit-pass.js.map +1 -0
- package/dist/{loop-engine-types.d.ts → loops/engine-types.d.ts} +1 -1
- package/dist/loops/engine-types.d.ts.map +1 -0
- package/dist/{loop-engine-types.js → loops/engine-types.js} +1 -1
- package/dist/loops/engine-types.js.map +1 -0
- package/dist/{loop-engine.d.ts → loops/engine.d.ts} +6 -6
- package/dist/loops/engine.d.ts.map +1 -0
- package/dist/{loop-engine.js → loops/engine.js} +13 -13
- package/dist/loops/engine.js.map +1 -0
- package/dist/{loop-event-bus.d.ts → loops/event-bus.d.ts} +1 -1
- package/dist/loops/event-bus.d.ts.map +1 -0
- package/dist/{loop-event-bus.js → loops/event-bus.js} +1 -1
- package/dist/loops/event-bus.js.map +1 -0
- package/dist/loops/index.d.ts +33 -0
- package/dist/loops/index.d.ts.map +1 -0
- package/dist/loops/index.js +32 -0
- package/dist/loops/index.js.map +1 -0
- package/dist/{loop-llm-client.d.ts → loops/llm-client.d.ts} +3 -3
- package/dist/loops/llm-client.d.ts.map +1 -0
- package/dist/{loop-llm-client.js → loops/llm-client.js} +3 -3
- package/dist/loops/llm-client.js.map +1 -0
- package/dist/{loop-llm-flag.d.ts → loops/llm-flag.d.ts} +1 -1
- package/dist/loops/llm-flag.d.ts.map +1 -0
- package/dist/{loop-llm-flag.js → loops/llm-flag.js} +1 -1
- package/dist/loops/llm-flag.js.map +1 -0
- package/dist/{loop-operational-block.d.ts → loops/operational-block.d.ts} +1 -1
- package/dist/loops/operational-block.d.ts.map +1 -0
- package/dist/{loop-operational-block.js → loops/operational-block.js} +1 -1
- package/dist/loops/operational-block.js.map +1 -0
- package/dist/{loop-prompt-builder.d.ts → loops/prompt-builder.d.ts} +2 -2
- package/dist/loops/prompt-builder.d.ts.map +1 -0
- package/dist/{loop-prompt-builder.js → loops/prompt-builder.js} +1 -1
- package/dist/loops/prompt-builder.js.map +1 -0
- package/dist/{loop-variance.d.ts → loops/variance.d.ts} +1 -1
- package/dist/loops/variance.d.ts.map +1 -0
- package/dist/{loop-variance.js → loops/variance.js} +1 -1
- package/dist/loops/variance.js.map +1 -0
- package/dist/merge-back-loop.d.ts.map +1 -1
- package/dist/merge-back-loop.js +4 -3
- package/dist/merge-back-loop.js.map +1 -1
- package/dist/merge-detector.js +2 -2
- package/dist/merge-detector.js.map +1 -1
- package/dist/{nexus-endpoint-clearance.d.ts → nexus/endpoint-clearance.d.ts} +2 -2
- package/dist/nexus/endpoint-clearance.d.ts.map +1 -0
- package/dist/{nexus-endpoint-clearance.js → nexus/endpoint-clearance.js} +2 -2
- package/dist/nexus/endpoint-clearance.js.map +1 -0
- package/dist/{nexus-escalation-bridge.d.ts → nexus/escalation-bridge.d.ts} +1 -1
- package/dist/nexus/escalation-bridge.d.ts.map +1 -0
- package/dist/{nexus-escalation-bridge.js → nexus/escalation-bridge.js} +2 -2
- package/dist/nexus/escalation-bridge.js.map +1 -0
- package/dist/{nexus-incoming.d.ts → nexus/incoming.d.ts} +2 -2
- package/dist/nexus/incoming.d.ts.map +1 -0
- package/dist/{nexus-incoming.js → nexus/incoming.js} +2 -2
- package/dist/nexus/incoming.js.map +1 -0
- package/dist/nexus/index.d.ts +20 -0
- package/dist/nexus/index.d.ts.map +1 -0
- package/dist/nexus/index.js +20 -0
- package/dist/nexus/index.js.map +1 -0
- package/dist/{nexus-intake-spawn.d.ts → nexus/intake-spawn.d.ts} +3 -3
- package/dist/nexus/intake-spawn.d.ts.map +1 -0
- package/dist/{nexus-intake-spawn.js → nexus/intake-spawn.js} +1 -1
- package/dist/nexus/intake-spawn.js.map +1 -0
- package/dist/{nexus-intake.d.ts → nexus/intake.d.ts} +2 -2
- package/dist/nexus/intake.d.ts.map +1 -0
- package/dist/{nexus-intake.js → nexus/intake.js} +4 -4
- package/dist/nexus/intake.js.map +1 -0
- package/dist/{nexus-return.d.ts → nexus/return.d.ts} +3 -3
- package/dist/nexus/return.d.ts.map +1 -0
- package/dist/{nexus-return.js → nexus/return.js} +4 -4
- package/dist/nexus/return.js.map +1 -0
- package/dist/otlp/index.d.ts +19 -0
- package/dist/otlp/index.d.ts.map +1 -0
- package/dist/otlp/index.js +19 -0
- package/dist/otlp/index.js.map +1 -0
- package/dist/{otlp-log-parser.d.ts → otlp/log-parser.d.ts} +2 -2
- package/dist/otlp/log-parser.d.ts.map +1 -0
- package/dist/{otlp-log-parser.js → otlp/log-parser.js} +5 -6
- package/dist/otlp/log-parser.js.map +1 -0
- package/dist/{otlp-metric-parser.d.ts → otlp/metric-parser.d.ts} +2 -2
- package/dist/otlp/metric-parser.d.ts.map +1 -0
- package/dist/{otlp-metric-parser.js → otlp/metric-parser.js} +4 -5
- package/dist/otlp/metric-parser.js.map +1 -0
- package/dist/{otlp-port-manager.d.ts → otlp/port-manager.d.ts} +1 -1
- package/dist/otlp/port-manager.d.ts.map +1 -0
- package/dist/{otlp-port-manager.js → otlp/port-manager.js} +1 -1
- package/dist/otlp/port-manager.js.map +1 -0
- package/dist/{otlp-receiver.d.ts → otlp/receiver.d.ts} +2 -2
- package/dist/otlp/receiver.d.ts.map +1 -0
- package/dist/{otlp-receiver.js → otlp/receiver.js} +5 -33
- package/dist/otlp/receiver.js.map +1 -0
- package/dist/{otlp-types.d.ts → otlp/types.d.ts} +1 -9
- package/dist/otlp/types.d.ts.map +1 -0
- package/dist/{otlp-types.js → otlp/types.js} +1 -27
- package/dist/otlp/types.js.map +1 -0
- package/dist/pipeline-config.d.ts +1 -1
- package/dist/{prd-controller.d.ts → prd/controller.d.ts} +7 -7
- package/dist/prd/controller.d.ts.map +1 -0
- package/dist/{prd-controller.js → prd/controller.js} +11 -11
- package/dist/prd/controller.js.map +1 -0
- package/dist/{prd-divergence.d.ts → prd/divergence.d.ts} +2 -2
- package/dist/prd/divergence.d.ts.map +1 -0
- package/dist/{prd-divergence.js → prd/divergence.js} +1 -1
- package/dist/prd/divergence.js.map +1 -0
- package/dist/{prd-focus-pushdown.d.ts → prd/focus-pushdown.d.ts} +2 -2
- package/dist/prd/focus-pushdown.d.ts.map +1 -0
- package/dist/{prd-focus-pushdown.js → prd/focus-pushdown.js} +3 -3
- package/dist/prd/focus-pushdown.js.map +1 -0
- package/dist/{prd-frontier.d.ts → prd/frontier.d.ts} +2 -2
- package/dist/prd/frontier.d.ts.map +1 -0
- package/dist/{prd-frontier.js → prd/frontier.js} +1 -1
- package/dist/prd/frontier.js.map +1 -0
- package/dist/prd/index.d.ts +26 -0
- package/dist/prd/index.d.ts.map +1 -0
- package/dist/prd/index.js +25 -0
- package/dist/prd/index.js.map +1 -0
- package/dist/{prd-steward.d.ts → prd/steward.d.ts} +4 -4
- package/dist/prd/steward.d.ts.map +1 -0
- package/dist/{prd-steward.js → prd/steward.js} +4 -4
- package/dist/prd/steward.js.map +1 -0
- package/dist/{prd-viability.d.ts → prd/viability.d.ts} +2 -2
- package/dist/prd/viability.d.ts.map +1 -0
- package/dist/{prd-viability.js → prd/viability.js} +1 -1
- package/dist/prd/viability.js.map +1 -0
- package/dist/product-scaffold.js +2 -2
- package/dist/product-scaffold.js.map +1 -1
- package/dist/prompt-contradictions.d.ts +55 -0
- package/dist/prompt-contradictions.d.ts.map +1 -0
- package/dist/prompt-contradictions.js +114 -0
- package/dist/prompt-contradictions.js.map +1 -0
- package/dist/prompt-listing.d.ts +19 -0
- package/dist/prompt-listing.d.ts.map +1 -1
- package/dist/prompt-listing.js +49 -0
- package/dist/prompt-listing.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts +3 -2
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +70 -97
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/persona-sections.d.ts +12 -0
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +29 -2
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/prompt-sections/role-sections.js +2 -2
- package/dist/prompt-sections/role-sections.js.map +1 -1
- package/dist/queries/context-assembly.d.ts +14 -4
- package/dist/queries/context-assembly.d.ts.map +1 -1
- package/dist/queries/context-assembly.js +14 -4
- package/dist/queries/context-assembly.js.map +1 -1
- package/dist/queries/context-lock-queries.js +1 -1
- package/dist/queries/context-lock-queries.js.map +1 -1
- package/dist/queries/deliveries.d.ts +45 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +2 -0
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/focuses.d.ts +17 -7
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +27 -9
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/index.d.ts +1 -1
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +1 -1
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/schemas.d.ts +4 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +8 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/reality-pole.js +1 -1
- package/dist/resolvers/escalation-answers.d.ts +40 -0
- package/dist/resolvers/escalation-answers.d.ts.map +1 -1
- package/dist/resolvers/escalation-answers.js +54 -35
- package/dist/resolvers/escalation-answers.js.map +1 -1
- package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
- package/dist/resolvers/git-diff-against-base.js +4 -1
- package/dist/resolvers/git-diff-against-base.js.map +1 -1
- package/dist/resolvers/prd-context.js +1 -1
- package/dist/resolvers/shared/wiki.d.ts +27 -0
- package/dist/resolvers/shared/wiki.d.ts.map +1 -1
- package/dist/resolvers/shared/wiki.js +39 -0
- package/dist/resolvers/shared/wiki.js.map +1 -1
- package/dist/sensor-sweep.js +1 -1
- package/dist/spawn/delivered-manifest.d.ts +42 -0
- package/dist/spawn/delivered-manifest.d.ts.map +1 -0
- package/dist/spawn/delivered-manifest.js +64 -0
- package/dist/spawn/delivered-manifest.js.map +1 -0
- package/dist/spawn/model-routing.d.ts +277 -0
- package/dist/spawn/model-routing.d.ts.map +1 -0
- package/dist/spawn/model-routing.js +464 -0
- package/dist/spawn/model-routing.js.map +1 -0
- package/dist/spawn/process-spawn.d.ts +137 -0
- package/dist/spawn/process-spawn.d.ts.map +1 -0
- package/dist/spawn/process-spawn.js +385 -0
- package/dist/spawn/process-spawn.js.map +1 -0
- package/dist/spawn/prompt-assembly.d.ts +170 -0
- package/dist/spawn/prompt-assembly.d.ts.map +1 -0
- package/dist/spawn/prompt-assembly.js +272 -0
- package/dist/spawn/prompt-assembly.js.map +1 -0
- package/dist/spawn/shared.d.ts +96 -0
- package/dist/spawn/shared.d.ts.map +1 -0
- package/dist/spawn/shared.js +14 -0
- package/dist/spawn/shared.js.map +1 -0
- package/dist/spawn/spawn-decision.d.ts +239 -0
- package/dist/spawn/spawn-decision.d.ts.map +1 -0
- package/dist/spawn/spawn-decision.js +437 -0
- package/dist/spawn/spawn-decision.js.map +1 -0
- package/dist/spawn/worktree-session.d.ts +105 -0
- package/dist/spawn/worktree-session.d.ts.map +1 -0
- package/dist/spawn/worktree-session.js +216 -0
- package/dist/spawn/worktree-session.js.map +1 -0
- package/dist/spawner/lifecycle.js +5 -5
- package/dist/spawner/lifecycle.js.map +1 -1
- package/dist/spawner/resolution.js +4 -4
- package/dist/spawner/resolution.js.map +1 -1
- package/dist/stall-detector-config.d.ts +4 -0
- package/dist/stall-detector-config.d.ts.map +1 -1
- package/dist/stall-detector-config.js +6 -0
- package/dist/stall-detector-config.js.map +1 -1
- package/dist/state-cascade.js +1 -1
- package/dist/state-cascade.js.map +1 -1
- package/dist/trigger-executor.d.ts +5 -9
- package/dist/trigger-executor.d.ts.map +1 -1
- package/dist/trigger-executor.js +14 -36
- package/dist/trigger-executor.js.map +1 -1
- package/dist/types/config.d.ts +44 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/focus.d.ts +13 -0
- package/dist/types/focus.d.ts.map +1 -1
- package/dist/types/workflow.d.ts +1 -3
- package/dist/types/workflow.d.ts.map +1 -1
- package/dist/unified-engine-lifecycle.js +1 -1
- package/dist/unified-init.d.ts +3 -3
- package/dist/unified-init.d.ts.map +1 -1
- package/dist/unified-init.js +9 -25
- package/dist/unified-init.js.map +1 -1
- package/dist/unified-shell.d.ts +3 -3
- package/dist/unified-shell.js +4 -4
- package/dist/unified-shell.js.map +1 -1
- package/dist/verification-baseline.d.ts +112 -0
- package/dist/verification-baseline.d.ts.map +1 -0
- package/dist/verification-baseline.js +264 -0
- package/dist/verification-baseline.js.map +1 -0
- package/dist/verification-config.d.ts +53 -0
- package/dist/verification-config.d.ts.map +1 -0
- package/dist/verification-config.js +72 -0
- package/dist/verification-config.js.map +1 -0
- package/dist/verification-default-on.d.ts +87 -0
- package/dist/verification-default-on.d.ts.map +1 -0
- package/dist/verification-default-on.js +186 -0
- package/dist/verification-default-on.js.map +1 -0
- package/dist/verification-deterministic.d.ts +56 -0
- package/dist/verification-deterministic.d.ts.map +1 -0
- package/dist/verification-deterministic.js +123 -0
- package/dist/verification-deterministic.js.map +1 -0
- package/dist/verification-engine.d.ts +22 -15
- package/dist/verification-engine.d.ts.map +1 -1
- package/dist/verification-engine.js +94 -65
- package/dist/verification-engine.js.map +1 -1
- package/dist/verification-failure-parser.d.ts +48 -0
- package/dist/verification-failure-parser.d.ts.map +1 -0
- package/dist/verification-failure-parser.js +102 -0
- package/dist/verification-failure-parser.js.map +1 -0
- package/dist/verification-feedback.d.ts +58 -0
- package/dist/verification-feedback.d.ts.map +1 -0
- package/dist/verification-feedback.js +110 -0
- package/dist/verification-feedback.js.map +1 -0
- package/dist/{worktree-focus.d.ts → worktree/focus.d.ts} +2 -2
- package/dist/worktree/focus.d.ts.map +1 -0
- package/dist/{worktree-focus.js → worktree/focus.js} +7 -7
- package/dist/worktree/focus.js.map +1 -0
- package/dist/worktree/index.d.ts +16 -0
- package/dist/worktree/index.d.ts.map +1 -0
- package/dist/worktree/index.js +16 -0
- package/dist/worktree/index.js.map +1 -0
- package/dist/{worktree-safety.d.ts → worktree/safety.d.ts} +1 -1
- package/dist/worktree/safety.d.ts.map +1 -0
- package/dist/{worktree-safety.js → worktree/safety.js} +2 -2
- package/dist/worktree/safety.js.map +1 -0
- package/dist/{worktree-state.d.ts → worktree/state.d.ts} +1 -1
- package/dist/worktree/state.d.ts.map +1 -0
- package/dist/{worktree-state.js → worktree/state.js} +6 -6
- package/dist/worktree/state.js.map +1 -0
- package/dist/worktree.d.ts +1 -1
- package/dist/worktree.js +5 -5
- package/dist/worktree.js.map +1 -1
- package/package.json +5 -4
- package/dist/git-activity.d.ts.map +0 -1
- package/dist/git-activity.js.map +0 -1
- package/dist/git-branch.d.ts.map +0 -1
- package/dist/git-branch.js.map +0 -1
- package/dist/git-fetch.d.ts.map +0 -1
- package/dist/git-fetch.js.map +0 -1
- package/dist/git-genesis.d.ts.map +0 -1
- package/dist/git-genesis.js.map +0 -1
- package/dist/git-integration.d.ts.map +0 -1
- package/dist/git-integration.js.map +0 -1
- package/dist/git-merge-helpers.d.ts.map +0 -1
- package/dist/git-merge-helpers.js.map +0 -1
- package/dist/git-merge-lock.d.ts.map +0 -1
- package/dist/git-merge-lock.js.map +0 -1
- package/dist/git-merge-strategies.d.ts.map +0 -1
- package/dist/git-merge-strategies.js.map +0 -1
- package/dist/git-merge.d.ts.map +0 -1
- package/dist/git-merge.js.map +0 -1
- package/dist/git-state-detector.d.ts.map +0 -1
- package/dist/git-state-detector.js.map +0 -1
- package/dist/git-types.d.ts.map +0 -1
- package/dist/git-types.js.map +0 -1
- package/dist/git-utils.d.ts.map +0 -1
- package/dist/git-utils.js.map +0 -1
- package/dist/loop-context-audit-pass.d.ts.map +0 -1
- package/dist/loop-context-audit-pass.js.map +0 -1
- package/dist/loop-engine-types.d.ts.map +0 -1
- package/dist/loop-engine-types.js.map +0 -1
- package/dist/loop-engine.d.ts.map +0 -1
- package/dist/loop-engine.js.map +0 -1
- package/dist/loop-event-bus.d.ts.map +0 -1
- package/dist/loop-event-bus.js.map +0 -1
- package/dist/loop-llm-client.d.ts.map +0 -1
- package/dist/loop-llm-client.js.map +0 -1
- package/dist/loop-llm-flag.d.ts.map +0 -1
- package/dist/loop-llm-flag.js.map +0 -1
- package/dist/loop-operational-block.d.ts.map +0 -1
- package/dist/loop-operational-block.js.map +0 -1
- package/dist/loop-prompt-builder.d.ts.map +0 -1
- package/dist/loop-prompt-builder.js.map +0 -1
- package/dist/loop-variance.d.ts.map +0 -1
- package/dist/loop-variance.js.map +0 -1
- package/dist/nexus-endpoint-clearance.d.ts.map +0 -1
- package/dist/nexus-endpoint-clearance.js.map +0 -1
- package/dist/nexus-escalation-bridge.d.ts.map +0 -1
- package/dist/nexus-escalation-bridge.js.map +0 -1
- package/dist/nexus-incoming.d.ts.map +0 -1
- package/dist/nexus-incoming.js.map +0 -1
- package/dist/nexus-intake-spawn.d.ts.map +0 -1
- package/dist/nexus-intake-spawn.js.map +0 -1
- package/dist/nexus-intake.d.ts.map +0 -1
- package/dist/nexus-intake.js.map +0 -1
- package/dist/nexus-return.d.ts.map +0 -1
- package/dist/nexus-return.js.map +0 -1
- package/dist/otlp-log-parser.d.ts.map +0 -1
- package/dist/otlp-log-parser.js.map +0 -1
- package/dist/otlp-metric-parser.d.ts.map +0 -1
- package/dist/otlp-metric-parser.js.map +0 -1
- package/dist/otlp-port-manager.d.ts.map +0 -1
- package/dist/otlp-port-manager.js.map +0 -1
- package/dist/otlp-receiver.d.ts.map +0 -1
- package/dist/otlp-receiver.js.map +0 -1
- package/dist/otlp-types.d.ts.map +0 -1
- package/dist/otlp-types.js.map +0 -1
- package/dist/prd-controller.d.ts.map +0 -1
- package/dist/prd-controller.js.map +0 -1
- package/dist/prd-divergence.d.ts.map +0 -1
- package/dist/prd-divergence.js.map +0 -1
- package/dist/prd-focus-pushdown.d.ts.map +0 -1
- package/dist/prd-focus-pushdown.js.map +0 -1
- package/dist/prd-frontier.d.ts.map +0 -1
- package/dist/prd-frontier.js.map +0 -1
- package/dist/prd-steward.d.ts.map +0 -1
- package/dist/prd-steward.js.map +0 -1
- package/dist/prd-viability.d.ts.map +0 -1
- package/dist/prd-viability.js.map +0 -1
- package/dist/worktree-focus.d.ts.map +0 -1
- package/dist/worktree-focus.js.map +0 -1
- package/dist/worktree-safety.d.ts.map +0 -1
- package/dist/worktree-safety.js.map +0 -1
- package/dist/worktree-state.d.ts.map +0 -1
- package/dist/worktree-state.js.map +0 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex harness config writer: registration of the Telora MCP server in the
|
|
3
|
+
* operator's personal `~/.codex/config.toml`. Extracted verbatim from
|
|
4
|
+
* `../connect.ts` and re-exported from there for import stability.
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
7
|
+
import { resolve } from 'node:path';
|
|
8
|
+
import { homedir } from 'node:os';
|
|
9
|
+
import { resolveMcpServerPath } from '../../mcp-resolution.js';
|
|
10
|
+
// Delimiter comments wrapping the Telora MCP block in the operator's
|
|
11
|
+
// ~/.codex/config.toml. TOML comments start with '#', so these are inert to
|
|
12
|
+
// the parser yet let us replace exactly our block on re-runs.
|
|
13
|
+
const TELORA_CODEX_MCP_BEGIN = '# BEGIN TELORA MCP';
|
|
14
|
+
const TELORA_CODEX_MCP_END = '# END TELORA MCP';
|
|
15
|
+
/**
|
|
16
|
+
* Render the delimited Telora MCP block for the operator's personal
|
|
17
|
+
* `~/.codex/config.toml`. Mirrors the `.mcp.json` shape (command=node + the
|
|
18
|
+
* resolved abs path to @telora/mcp-products) but as a TOML `[mcp_servers.telora]`
|
|
19
|
+
* table, the form Codex reads. Profile is `human` (operator-interactive),
|
|
20
|
+
* matching the `.mcp.json` the Claude path writes.
|
|
21
|
+
*
|
|
22
|
+
* Carries the MCP profile ONLY -- never workstation identity. Identity
|
|
23
|
+
* (`TELORA_URL` / `TELORA_TRACKER_ID`) resolves from the single source
|
|
24
|
+
* `~/.telora/daemon.json` via the MCP server's `loadCredentials()` fallback,
|
|
25
|
+
* so a persisted copy here would only be a drift hazard. Keeping it out is the
|
|
26
|
+
* single-source invariant (the `.mcp.json` builder omits it for the same
|
|
27
|
+
* reason).
|
|
28
|
+
*
|
|
29
|
+
* Values are emitted as JSON-encoded TOML string literals, which is valid TOML
|
|
30
|
+
* for the path value we control here.
|
|
31
|
+
*/
|
|
32
|
+
export function renderCodexMcpBlock(params) {
|
|
33
|
+
const lines = [
|
|
34
|
+
TELORA_CODEX_MCP_BEGIN,
|
|
35
|
+
`[mcp_servers.telora]`,
|
|
36
|
+
`command = "node"`,
|
|
37
|
+
`args = [${JSON.stringify(params.mcpServerPath)}]`,
|
|
38
|
+
`[mcp_servers.telora.env]`,
|
|
39
|
+
`TELORA_MCP_PROFILE = "human"`,
|
|
40
|
+
TELORA_CODEX_MCP_END,
|
|
41
|
+
];
|
|
42
|
+
return lines.join('\n') + '\n';
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Register the Telora MCP server in the operator's personal
|
|
46
|
+
* `~/.codex/config.toml` (NOT the per-product execution CODEX_HOME -- that is
|
|
47
|
+
* `codex-provision.ts`, a separate concern). This is what makes the Telora
|
|
48
|
+
* tool surface reachable from the operator's interactive Codex chat.
|
|
49
|
+
*
|
|
50
|
+
* Idempotent delimited merge, mirroring `writeOrMergeClaudeMd`: replace the
|
|
51
|
+
* `# BEGIN/END TELORA MCP` block in place if present, append it if absent,
|
|
52
|
+
* never duplicate. When the computed content equals what is on disk, NO write
|
|
53
|
+
* occurs. `homeOverride` lets tests target a temp HOME.
|
|
54
|
+
*
|
|
55
|
+
* Best-effort: if the MCP package cannot be resolved, prints a warning and
|
|
56
|
+
* returns without touching the file (the connect flow must not abort).
|
|
57
|
+
*/
|
|
58
|
+
export function writeOrMergeCodexMcpToml(io, params = {}) {
|
|
59
|
+
let mcpServerPath;
|
|
60
|
+
try {
|
|
61
|
+
mcpServerPath = resolveMcpServerPath();
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
io.err(`Warning: could not resolve @telora/mcp-products; skipping Codex MCP registration: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const home = params.homeOverride ?? homedir();
|
|
68
|
+
const dir = resolve(home, '.codex');
|
|
69
|
+
const path = resolve(dir, 'config.toml');
|
|
70
|
+
const block = renderCodexMcpBlock({ mcpServerPath });
|
|
71
|
+
if (!existsSync(dir))
|
|
72
|
+
mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
73
|
+
if (!existsSync(path)) {
|
|
74
|
+
writeFileSync(path, block, { mode: 0o600 });
|
|
75
|
+
io.out(`Wrote ${path}.\n`);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const existing = readFileSync(path, 'utf-8');
|
|
79
|
+
const beginIdx = existing.indexOf(TELORA_CODEX_MCP_BEGIN);
|
|
80
|
+
let newContent;
|
|
81
|
+
let message;
|
|
82
|
+
if (beginIdx === -1) {
|
|
83
|
+
const sep = existing.endsWith('\n') ? '\n' : '\n\n';
|
|
84
|
+
newContent = existing.trimEnd().length === 0 ? block : existing + sep + block;
|
|
85
|
+
message = `Registered Telora MCP server in ${path}.\n`;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const endIdx = existing.indexOf(TELORA_CODEX_MCP_END, beginIdx);
|
|
89
|
+
if (endIdx === -1) {
|
|
90
|
+
const sep = existing.endsWith('\n') ? '\n' : '\n\n';
|
|
91
|
+
newContent = existing + sep + block;
|
|
92
|
+
message = `Registered Telora MCP server in ${path} (prior block was malformed).\n`;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const after = endIdx + TELORA_CODEX_MCP_END.length;
|
|
96
|
+
const trailingNewline = existing[after] === '\n' ? 1 : 0;
|
|
97
|
+
newContent =
|
|
98
|
+
existing.slice(0, beginIdx) +
|
|
99
|
+
block.trimEnd() +
|
|
100
|
+
'\n' +
|
|
101
|
+
existing.slice(after + trailingNewline);
|
|
102
|
+
message = `Refreshed Telora MCP server registration in ${path}.\n`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Idempotency guard: skip the write when nothing would change.
|
|
106
|
+
if (newContent === existing)
|
|
107
|
+
return;
|
|
108
|
+
writeFileSync(path, newContent, { mode: 0o600 });
|
|
109
|
+
io.out(message);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=codex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/cli/connect/codex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,qEAAqE;AACrE,4EAA4E;AAC5E,8DAA8D;AAC9D,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AACpD,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEhD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAEnC;IACC,MAAM,KAAK,GAAG;QACZ,sBAAsB;QACtB,sBAAsB;QACtB,kBAAkB;QAClB,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG;QAClD,0BAA0B;QAC1B,8BAA8B;QAC9B,oBAAoB;KACrB,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,wBAAwB,CACtC,EAAa,EACb,SAAoC,EAAE;IAEtC,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,aAAa,GAAG,oBAAoB,EAAE,CAAC;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,GAAG,CACJ,qFACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;IAErD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAE1D,IAAI,UAAkB,CAAC;IACvB,IAAI,OAAe,CAAC;IACpB,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QACpD,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;QAC9E,OAAO,GAAG,mCAAmC,IAAI,KAAK,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;YACpD,UAAU,GAAG,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;YACpC,OAAO,GAAG,mCAAmC,IAAI,iCAAiC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC;YACnD,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,UAAU;gBACR,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;oBAC3B,KAAK,CAAC,OAAO,EAAE;oBACf,IAAI;oBACJ,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC;YAC1C,OAAO,GAAG,+CAA+C,IAAI,KAAK,CAAC;QACrE,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO;IAEpC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IDE (cursor / vscode) harness config writers: the project MCP config and the
|
|
3
|
+
* combined AGENTS.md + MCP scaffolding. Extracted verbatim from `../connect.ts`
|
|
4
|
+
* and re-exported from there for import stability.
|
|
5
|
+
*/
|
|
6
|
+
import type { AgentsMdConnectionInvariant } from '../../templates/agents-md.js';
|
|
7
|
+
import type { ConnectIO } from './shared.js';
|
|
8
|
+
/**
|
|
9
|
+
* Default `TELORA_MCP_PRELOAD` for the IDE harnesses (cursor / vscode).
|
|
10
|
+
*
|
|
11
|
+
* Static-surface clients ignore `tools/list_changed`, so `telora_discover`
|
|
12
|
+
* lazy-loading never becomes callable mid-session -- they need the domains
|
|
13
|
+
* they will actually use registered at startup. This modest set (escalations,
|
|
14
|
+
* wiki, reality-tree planning) covers inspection + light-operator work while
|
|
15
|
+
* keeping the active tool surface under the ~40-tool ceiling those clients
|
|
16
|
+
* impose. Operators can widen it by editing the generated MCP config.
|
|
17
|
+
*/
|
|
18
|
+
export declare const DEFAULT_IDE_HARNESS_PRELOAD = "agent,wiki,reality_trees";
|
|
19
|
+
/** IDE (cursor / vscode) harness kinds -- the subset that writes a project MCP config. */
|
|
20
|
+
export type IdeHarness = 'cursor' | 'vscode';
|
|
21
|
+
/**
|
|
22
|
+
* The MCP-registration sentence spliced into the AGENTS.md seed body for each
|
|
23
|
+
* IDE harness. Both Cursor and VS Code read AGENTS.md natively, but they load
|
|
24
|
+
* MCP from different project files, so the seeded discipline must name the
|
|
25
|
+
* right one. (`renderAgentsMd` defaults to the Codex `~/.codex/config.toml`
|
|
26
|
+
* location; these override it.)
|
|
27
|
+
*/
|
|
28
|
+
export declare const IDE_MCP_REGISTRATION_SENTENCE: Record<IdeHarness, string>;
|
|
29
|
+
/** Project-relative path of the MCP config file for each IDE harness. */
|
|
30
|
+
export declare const IDE_MCP_CONFIG_PATH: Record<IdeHarness, string>;
|
|
31
|
+
/**
|
|
32
|
+
* Build the project-level MCP config object for an IDE harness.
|
|
33
|
+
*
|
|
34
|
+
* Cursor reads `.cursor/mcp.json` with a top-level `mcpServers` map (the same
|
|
35
|
+
* shape as `.mcp.json`). VS Code reads `.vscode/mcp.json` with a top-level
|
|
36
|
+
* `servers` map whose entries declare `type: "stdio"`.
|
|
37
|
+
*
|
|
38
|
+
* Both carry the MCP profile + domain-preload env ONLY -- never workstation
|
|
39
|
+
* identity. Identity (`TELORA_URL` / `TELORA_TRACKER_ID`) resolves from the
|
|
40
|
+
* single source `~/.telora/daemon.json` via the MCP server's
|
|
41
|
+
* `loadCredentials()` fallback, so a persisted copy here would only drift --
|
|
42
|
+
* the same single-source invariant the `.mcp.json` / Codex / Cline builders
|
|
43
|
+
* hold. The preload env is what makes these static-surface clients usable:
|
|
44
|
+
* it registers the named domains at startup rather than via `telora_discover`.
|
|
45
|
+
*/
|
|
46
|
+
export declare function renderIdeMcpConfig(kind: IdeHarness, params: {
|
|
47
|
+
mcpServerPath: string;
|
|
48
|
+
preload: string;
|
|
49
|
+
}): Record<string, unknown>;
|
|
50
|
+
/**
|
|
51
|
+
* Write the Telora project MCP config for an IDE harness (`.cursor/mcp.json`
|
|
52
|
+
* or `.vscode/mcp.json`).
|
|
53
|
+
*
|
|
54
|
+
* Idempotent JSON merge, mirroring `writeOrMergeClineMcpSettings`: preserve any
|
|
55
|
+
* user-authored server entries, replace only the `telora` key, and skip the
|
|
56
|
+
* write when nothing would change. Best-effort: if the MCP package cannot be
|
|
57
|
+
* resolved, prints a warning and returns without touching the file (the connect
|
|
58
|
+
* flow must not abort). `params.preload` defaults to `DEFAULT_IDE_HARNESS_PRELOAD`.
|
|
59
|
+
*/
|
|
60
|
+
export declare function writeIdeMcpConfig(repoPath: string, kind: IdeHarness, io: ConnectIO, params?: {
|
|
61
|
+
preload?: string;
|
|
62
|
+
}): void;
|
|
63
|
+
/**
|
|
64
|
+
* Write the full IDE-harness scaffolding (AGENTS.md seed + project MCP config)
|
|
65
|
+
* for `cursor` or `vscode`. Extracted so both `connect --harness <ide>` and the
|
|
66
|
+
* token-free `harness add <ide>` verb write byte-identical output.
|
|
67
|
+
*/
|
|
68
|
+
export declare function writeIdeHarnessScaffolding(repoPath: string, kind: IdeHarness, inv: AgentsMdConnectionInvariant, io: ConnectIO): void;
|
|
69
|
+
//# sourceMappingURL=ide.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ide.d.ts","sourceRoot":"","sources":["../../../src/cli/connect/ide.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,6BAA6B,CAAC;AAEtE,0FAA0F;AAC1F,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAGpE,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAG1D,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,SAAS,EACb,MAAM,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,IAAI,CAsDN;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,2BAA2B,EAChC,EAAE,EAAE,SAAS,GACZ,IAAI,CAON"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IDE (cursor / vscode) harness config writers: the project MCP config and the
|
|
3
|
+
* combined AGENTS.md + MCP scaffolding. Extracted verbatim from `../connect.ts`
|
|
4
|
+
* and re-exported from there for import stability.
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
7
|
+
import { resolve } from 'node:path';
|
|
8
|
+
import { resolveMcpServerPath } from '../../mcp-resolution.js';
|
|
9
|
+
import { writeOrMergeAgentsMd } from './agents.js';
|
|
10
|
+
/**
|
|
11
|
+
* Default `TELORA_MCP_PRELOAD` for the IDE harnesses (cursor / vscode).
|
|
12
|
+
*
|
|
13
|
+
* Static-surface clients ignore `tools/list_changed`, so `telora_discover`
|
|
14
|
+
* lazy-loading never becomes callable mid-session -- they need the domains
|
|
15
|
+
* they will actually use registered at startup. This modest set (escalations,
|
|
16
|
+
* wiki, reality-tree planning) covers inspection + light-operator work while
|
|
17
|
+
* keeping the active tool surface under the ~40-tool ceiling those clients
|
|
18
|
+
* impose. Operators can widen it by editing the generated MCP config.
|
|
19
|
+
*/
|
|
20
|
+
export const DEFAULT_IDE_HARNESS_PRELOAD = 'agent,wiki,reality_trees';
|
|
21
|
+
/**
|
|
22
|
+
* The MCP-registration sentence spliced into the AGENTS.md seed body for each
|
|
23
|
+
* IDE harness. Both Cursor and VS Code read AGENTS.md natively, but they load
|
|
24
|
+
* MCP from different project files, so the seeded discipline must name the
|
|
25
|
+
* right one. (`renderAgentsMd` defaults to the Codex `~/.codex/config.toml`
|
|
26
|
+
* location; these override it.)
|
|
27
|
+
*/
|
|
28
|
+
export const IDE_MCP_REGISTRATION_SENTENCE = {
|
|
29
|
+
cursor: 'The Telora MCP server is registered in `.cursor/mcp.json`.',
|
|
30
|
+
vscode: 'The Telora MCP server is registered in `.vscode/mcp.json`.',
|
|
31
|
+
};
|
|
32
|
+
/** Project-relative path of the MCP config file for each IDE harness. */
|
|
33
|
+
export const IDE_MCP_CONFIG_PATH = {
|
|
34
|
+
cursor: '.cursor/mcp.json',
|
|
35
|
+
vscode: '.vscode/mcp.json',
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Build the project-level MCP config object for an IDE harness.
|
|
39
|
+
*
|
|
40
|
+
* Cursor reads `.cursor/mcp.json` with a top-level `mcpServers` map (the same
|
|
41
|
+
* shape as `.mcp.json`). VS Code reads `.vscode/mcp.json` with a top-level
|
|
42
|
+
* `servers` map whose entries declare `type: "stdio"`.
|
|
43
|
+
*
|
|
44
|
+
* Both carry the MCP profile + domain-preload env ONLY -- never workstation
|
|
45
|
+
* identity. Identity (`TELORA_URL` / `TELORA_TRACKER_ID`) resolves from the
|
|
46
|
+
* single source `~/.telora/daemon.json` via the MCP server's
|
|
47
|
+
* `loadCredentials()` fallback, so a persisted copy here would only drift --
|
|
48
|
+
* the same single-source invariant the `.mcp.json` / Codex / Cline builders
|
|
49
|
+
* hold. The preload env is what makes these static-surface clients usable:
|
|
50
|
+
* it registers the named domains at startup rather than via `telora_discover`.
|
|
51
|
+
*/
|
|
52
|
+
export function renderIdeMcpConfig(kind, params) {
|
|
53
|
+
const env = {
|
|
54
|
+
TELORA_MCP_PROFILE: 'human',
|
|
55
|
+
TELORA_MCP_PRELOAD: params.preload,
|
|
56
|
+
};
|
|
57
|
+
if (kind === 'cursor') {
|
|
58
|
+
return {
|
|
59
|
+
mcpServers: {
|
|
60
|
+
telora: { command: 'node', args: [params.mcpServerPath], env },
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
servers: {
|
|
66
|
+
telora: { type: 'stdio', command: 'node', args: [params.mcpServerPath], env },
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Write the Telora project MCP config for an IDE harness (`.cursor/mcp.json`
|
|
72
|
+
* or `.vscode/mcp.json`).
|
|
73
|
+
*
|
|
74
|
+
* Idempotent JSON merge, mirroring `writeOrMergeClineMcpSettings`: preserve any
|
|
75
|
+
* user-authored server entries, replace only the `telora` key, and skip the
|
|
76
|
+
* write when nothing would change. Best-effort: if the MCP package cannot be
|
|
77
|
+
* resolved, prints a warning and returns without touching the file (the connect
|
|
78
|
+
* flow must not abort). `params.preload` defaults to `DEFAULT_IDE_HARNESS_PRELOAD`.
|
|
79
|
+
*/
|
|
80
|
+
export function writeIdeMcpConfig(repoPath, kind, io, params = {}) {
|
|
81
|
+
let mcpServerPath;
|
|
82
|
+
try {
|
|
83
|
+
mcpServerPath = resolveMcpServerPath();
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
io.err(`Warning: could not resolve @telora/mcp-products; skipping ${kind} MCP registration: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const dir = resolve(repoPath, kind === 'cursor' ? '.cursor' : '.vscode');
|
|
90
|
+
const path = resolve(dir, 'mcp.json');
|
|
91
|
+
const mapKey = kind === 'cursor' ? 'mcpServers' : 'servers';
|
|
92
|
+
const desired = renderIdeMcpConfig(kind, {
|
|
93
|
+
mcpServerPath,
|
|
94
|
+
preload: params.preload ?? DEFAULT_IDE_HARNESS_PRELOAD,
|
|
95
|
+
});
|
|
96
|
+
if (!existsSync(dir))
|
|
97
|
+
mkdirSync(dir, { recursive: true });
|
|
98
|
+
let parsed = {};
|
|
99
|
+
if (existsSync(path)) {
|
|
100
|
+
try {
|
|
101
|
+
const candidate = JSON.parse(readFileSync(path, 'utf-8'));
|
|
102
|
+
if (candidate && typeof candidate === 'object' && !Array.isArray(candidate)) {
|
|
103
|
+
parsed = candidate;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
io.err(`Warning: ${path} is not valid JSON; leaving it alone: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const existingServers = parsed[mapKey] && typeof parsed[mapKey] === 'object' && !Array.isArray(parsed[mapKey])
|
|
112
|
+
? parsed[mapKey]
|
|
113
|
+
: {};
|
|
114
|
+
const desiredServers = desired[mapKey];
|
|
115
|
+
const next = {
|
|
116
|
+
...parsed,
|
|
117
|
+
[mapKey]: { ...existingServers, telora: desiredServers.telora },
|
|
118
|
+
};
|
|
119
|
+
const content = JSON.stringify(next, null, 2) + '\n';
|
|
120
|
+
if (existsSync(path) && readFileSync(path, 'utf-8') === content)
|
|
121
|
+
return;
|
|
122
|
+
writeFileSync(path, content);
|
|
123
|
+
io.out(`Registered Telora MCP server in ${path}.\n`);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Write the full IDE-harness scaffolding (AGENTS.md seed + project MCP config)
|
|
127
|
+
* for `cursor` or `vscode`. Extracted so both `connect --harness <ide>` and the
|
|
128
|
+
* token-free `harness add <ide>` verb write byte-identical output.
|
|
129
|
+
*/
|
|
130
|
+
export function writeIdeHarnessScaffolding(repoPath, kind, inv, io) {
|
|
131
|
+
writeOrMergeAgentsMd(repoPath, { ...inv, mcpRegistrationSentence: IDE_MCP_REGISTRATION_SENTENCE[kind] }, io);
|
|
132
|
+
writeIdeMcpConfig(repoPath, kind, io);
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=ide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ide.js","sourceRoot":"","sources":["../../../src/cli/connect/ide.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,0BAA0B,CAAC;AAKtE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAA+B;IACvE,MAAM,EAAE,4DAA4D;IACpE,MAAM,EAAE,4DAA4D;CACrE,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAA+B;IAC7D,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,kBAAkB;CAC3B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAgB,EAChB,MAAkD;IAElD,MAAM,GAAG,GAA2B;QAClC,kBAAkB,EAAE,OAAO;QAC3B,kBAAkB,EAAE,MAAM,CAAC,OAAO;KACnC,CAAC;IACF,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO;YACL,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE;aAC/D;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE;YACP,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE;SAC9E;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,IAAgB,EAChB,EAAa,EACb,SAA+B,EAAE;IAEjC,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,aAAa,GAAG,oBAAoB,EAAE,CAAC;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,GAAG,CACJ,6DAA6D,IAAI,sBAC/D,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,EAAE;QACvC,aAAa;QACb,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,2BAA2B;KACvD,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1D,IAAI,MAAM,GAA4B,EAAE,CAAC;IACzC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5E,MAAM,GAAG,SAAoC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,EAAE,CAAC,GAAG,CACJ,YAAY,IAAI,yCACd,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;YACF,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GACnB,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpF,CAAC,CAAE,MAAM,CAAC,MAAM,CAA6B;QAC7C,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAA4B,CAAC;IAClE,MAAM,IAAI,GAAG;QACX,GAAG,MAAM;QACT,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,eAAe,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE;KAChE,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAErD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,OAAO;QAAE,OAAO;IACxE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7B,EAAE,CAAC,GAAG,CAAC,mCAAmC,IAAI,KAAK,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAgB,EAChB,IAAgB,EAChB,GAAgC,EAChC,EAAa;IAEb,oBAAoB,CAClB,QAAQ,EACR,EAAE,GAAG,GAAG,EAAE,uBAAuB,EAAE,6BAA6B,CAAC,IAAI,CAAC,EAAE,EACxE,EAAE,CACH,CAAC;IACF,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-harness scaffolding dispatcher + the harness-specific `.gitignore`
|
|
3
|
+
* entries. This is the ONE place the per-harness writer set is dispatched.
|
|
4
|
+
* Extracted verbatim from `../connect.ts` and re-exported from there for import
|
|
5
|
+
* stability.
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentsMdConnectionInvariant } from '../../templates/agents-md.js';
|
|
8
|
+
import type { ConnectIO, OperatorHarness } from './shared.js';
|
|
9
|
+
/**
|
|
10
|
+
* The `.gitignore` entries a harness's scaffolding requires beyond the always-
|
|
11
|
+
* added `.telora/` + `.mcp.json`. Only the IDE harnesses add a project MCP
|
|
12
|
+
* config (per-user-machine, absolute path -> not shared).
|
|
13
|
+
*/
|
|
14
|
+
export declare function harnessGitignoreEntries(harness: OperatorHarness): string[];
|
|
15
|
+
/**
|
|
16
|
+
* Write the harness-specific agent scaffolding for the chosen operator harness.
|
|
17
|
+
* This is the ONE place the per-harness writer set is dispatched, so both
|
|
18
|
+
* `connect --harness <h>` and the token-free `harness add <h>` verb produce
|
|
19
|
+
* byte-identical output for a given identity.
|
|
20
|
+
*
|
|
21
|
+
* - claude: CLAUDE.md + .claude/settings.json
|
|
22
|
+
* - codex: AGENTS.md + Telora MCP in ~/.codex/config.toml
|
|
23
|
+
* - cline: .cline/rules/telora.md + Telora MCP in ~/.cline settings
|
|
24
|
+
* - cursor: AGENTS.md + .cursor/mcp.json (preload env)
|
|
25
|
+
* - vscode: AGENTS.md + .vscode/mcp.json (preload env)
|
|
26
|
+
*
|
|
27
|
+
* Does NOT touch `.gitignore` -- callers pair this with
|
|
28
|
+
* `ensureGitignoreEntries(repoPath, io, harnessGitignoreEntries(harness))`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function writeHarnessScaffolding(repoPath: string, harness: OperatorHarness, inv: AgentsMdConnectionInvariant, io: ConnectIO): void;
|
|
31
|
+
//# sourceMappingURL=scaffolding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffolding.d.ts","sourceRoot":"","sources":["../../../src/cli/connect/scaffolding.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAO9D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE,CAE1E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE,2BAA2B,EAChC,EAAE,EAAE,SAAS,GACZ,IAAI,CAaN"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-harness scaffolding dispatcher + the harness-specific `.gitignore`
|
|
3
|
+
* entries. This is the ONE place the per-harness writer set is dispatched.
|
|
4
|
+
* Extracted verbatim from `../connect.ts` and re-exported from there for import
|
|
5
|
+
* stability.
|
|
6
|
+
*/
|
|
7
|
+
import { writeOrMergeClaudeMd, writeOrMergeClaudeSettings } from './claude.js';
|
|
8
|
+
import { writeOrMergeAgentsMd } from './agents.js';
|
|
9
|
+
import { writeOrMergeCodexMcpToml } from './codex.js';
|
|
10
|
+
import { writeClineProjectRules, writeOrMergeClineMcpSettings } from './cline.js';
|
|
11
|
+
import { IDE_MCP_CONFIG_PATH, writeIdeHarnessScaffolding } from './ide.js';
|
|
12
|
+
/**
|
|
13
|
+
* The `.gitignore` entries a harness's scaffolding requires beyond the always-
|
|
14
|
+
* added `.telora/` + `.mcp.json`. Only the IDE harnesses add a project MCP
|
|
15
|
+
* config (per-user-machine, absolute path -> not shared).
|
|
16
|
+
*/
|
|
17
|
+
export function harnessGitignoreEntries(harness) {
|
|
18
|
+
return harness === 'cursor' || harness === 'vscode' ? [IDE_MCP_CONFIG_PATH[harness]] : [];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Write the harness-specific agent scaffolding for the chosen operator harness.
|
|
22
|
+
* This is the ONE place the per-harness writer set is dispatched, so both
|
|
23
|
+
* `connect --harness <h>` and the token-free `harness add <h>` verb produce
|
|
24
|
+
* byte-identical output for a given identity.
|
|
25
|
+
*
|
|
26
|
+
* - claude: CLAUDE.md + .claude/settings.json
|
|
27
|
+
* - codex: AGENTS.md + Telora MCP in ~/.codex/config.toml
|
|
28
|
+
* - cline: .cline/rules/telora.md + Telora MCP in ~/.cline settings
|
|
29
|
+
* - cursor: AGENTS.md + .cursor/mcp.json (preload env)
|
|
30
|
+
* - vscode: AGENTS.md + .vscode/mcp.json (preload env)
|
|
31
|
+
*
|
|
32
|
+
* Does NOT touch `.gitignore` -- callers pair this with
|
|
33
|
+
* `ensureGitignoreEntries(repoPath, io, harnessGitignoreEntries(harness))`.
|
|
34
|
+
*/
|
|
35
|
+
export function writeHarnessScaffolding(repoPath, harness, inv, io) {
|
|
36
|
+
if (harness === 'codex') {
|
|
37
|
+
writeOrMergeAgentsMd(repoPath, inv, io);
|
|
38
|
+
writeOrMergeCodexMcpToml(io);
|
|
39
|
+
}
|
|
40
|
+
else if (harness === 'cline') {
|
|
41
|
+
writeClineProjectRules(repoPath, inv, io);
|
|
42
|
+
writeOrMergeClineMcpSettings(io);
|
|
43
|
+
}
|
|
44
|
+
else if (harness === 'cursor' || harness === 'vscode') {
|
|
45
|
+
writeIdeHarnessScaffolding(repoPath, harness, inv, io);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
writeOrMergeClaudeMd(repoPath, inv.productName ?? null, io);
|
|
49
|
+
writeOrMergeClaudeSettings(repoPath, io);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=scaffolding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffolding.js","sourceRoot":"","sources":["../../../src/cli/connect/scaffolding.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAE3E;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAwB;IAC9D,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAgB,EAChB,OAAwB,EACxB,GAAgC,EAChC,EAAa;IAEb,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACxC,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAC/B,sBAAsB,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1C,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACxD,0BAA0B,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5D,0BAA0B,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types + helpers for the connect-flow per-harness config writers.
|
|
3
|
+
*
|
|
4
|
+
* These live here (rather than in `../connect.ts`) so the per-harness writer
|
|
5
|
+
* modules under `connect/` can depend on them WITHOUT importing from
|
|
6
|
+
* `../connect.ts` -- which itself re-exports the writers, so that would be an
|
|
7
|
+
* import cycle. `connect.ts` imports these from here too; the dependency edge
|
|
8
|
+
* only ever points connect.ts -> connect/shared.ts, never back.
|
|
9
|
+
*/
|
|
10
|
+
export interface ConnectIO {
|
|
11
|
+
/** stdout writer (defaults to process.stdout.write). */
|
|
12
|
+
out: (msg: string) => void;
|
|
13
|
+
/** stderr writer (defaults to process.stderr.write). */
|
|
14
|
+
err: (msg: string) => void;
|
|
15
|
+
/** Fetch implementation (defaults to globalThis.fetch). */
|
|
16
|
+
fetch: typeof fetch;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The operator's chosen INTERACTIVE harness for the declare-intent workflow.
|
|
20
|
+
* This is independent of the daemon's per-product execution engine (which is
|
|
21
|
+
* resolved separately, from product config). `claude` is the default and its
|
|
22
|
+
* scaffolding path is byte-for-byte unchanged from before this option existed.
|
|
23
|
+
*
|
|
24
|
+
* `cursor` and `vscode` are inspection-and-light-operator IDE harnesses: both
|
|
25
|
+
* read AGENTS.md natively and take a project MCP config (`.cursor/mcp.json` /
|
|
26
|
+
* `.vscode/mcp.json`) carrying the domain-preload env so a static-surface
|
|
27
|
+
* client lands with a deterministic tool set under its ~40-tool ceiling.
|
|
28
|
+
*/
|
|
29
|
+
export type OperatorHarness = 'claude' | 'codex' | 'cline' | 'cursor' | 'vscode';
|
|
30
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/cli/connect/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,SAAS;IACxB,wDAAwD;IACxD,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,wDAAwD;IACxD,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,2DAA2D;IAC3D,KAAK,EAAE,OAAO,KAAK,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types + helpers for the connect-flow per-harness config writers.
|
|
3
|
+
*
|
|
4
|
+
* These live here (rather than in `../connect.ts`) so the per-harness writer
|
|
5
|
+
* modules under `connect/` can depend on them WITHOUT importing from
|
|
6
|
+
* `../connect.ts` -- which itself re-exports the writers, so that would be an
|
|
7
|
+
* import cycle. `connect.ts` imports these from here too; the dependency edge
|
|
8
|
+
* only ever points connect.ts -> connect/shared.ts, never back.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/cli/connect/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|