specrails-desktop 2.55.0 → 2.56.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/cli/dist/args.js +80 -0
- package/cli/dist/desktop-client.js +125 -0
- package/cli/dist/desktop-control.js +339 -0
- package/cli/dist/format.js +45 -0
- package/cli/dist/help.js +68 -0
- package/cli/dist/output.js +47 -0
- package/cli/dist/run-command.js +340 -0
- package/cli/dist/specrails-desktop.js +41 -1107
- package/cli/dist/status.js +111 -0
- package/client/dist/assets/{ActivityFeedPage-ILXMZXcb.js → ActivityFeedPage-DdMNmVBk.js} +1 -1
- package/client/dist/assets/{AgentBrowserCapture-UcsupCy7.js → AgentBrowserCapture-CeerUf--.js} +1 -1
- package/client/dist/assets/{AgentModeAnalyticsPane-CQuxYh8B.js → AgentModeAnalyticsPane-BjGb-8rh.js} +2 -2
- package/client/dist/assets/{AgentModeCodePane-zPWbW7ei.js → AgentModeCodePane-8XRkQEo_.js} +2 -2
- package/client/dist/assets/{AgentModeJobsPane-CInByIdl.js → AgentModeJobsPane-BN3dgJOA.js} +1 -1
- package/client/dist/assets/{AgentsPage-BWvgxaBv.js → AgentsPage-DfHWgP_x.js} +1 -1
- package/client/dist/assets/{AnalyticsPage-DP3jakv-.js → AnalyticsPage-CyfhYiBn.js} +1 -1
- package/client/dist/assets/{CodePage-BKXiwE5a.js → CodePage-C2Nf-Q5W.js} +1 -1
- package/client/dist/assets/{DesktopAnalyticsPage-DryJOaMz.js → DesktopAnalyticsPage-tc0p4jJW.js} +1 -1
- package/client/dist/assets/{DocsDialog-BsCG9ksG.js → DocsDialog-Br3bczCp.js} +1 -1
- package/client/dist/assets/{DocsPage-Cc-GeKYl.js → DocsPage-BcDr2cBm.js} +1 -1
- package/client/dist/assets/{ExportDropdown-ClahJdDn.js → ExportDropdown-BVGKEgkd.js} +1 -1
- package/client/dist/assets/{InteractiveJobComposer-DfLF6N0f.js → InteractiveJobComposer-DFPpdg2D.js} +1 -1
- package/client/dist/assets/{JobDetailModal-DHeur9YK.js → JobDetailModal-BdOv-l-M.js} +1 -1
- package/client/dist/assets/{JobDetailPage-CraDKzeG.js → JobDetailPage-vBbNeRuz.js} +1 -1
- package/client/dist/assets/{JobsPage-CcbuSwj7.js → JobsPage-CJCtPhIz.js} +1 -1
- package/client/dist/assets/{LoopBuilderPage-BKtNp494.js → LoopBuilderPage-BemvUOxy.js} +1 -1
- package/client/dist/assets/{LoopPreviewModal-DbZd9isy.js → LoopPreviewModal-C6hNAeYN.js} +1 -1
- package/client/dist/assets/{LoopsPage-DEg6sIkG.js → LoopsPage-BZr0quvh.js} +1 -1
- package/client/dist/assets/{MinimizedChatsContext-BGtEjWsc.js → MinimizedChatsContext-D3QzgV0B.js} +1 -1
- package/client/dist/assets/{PluginsPage-BVqSsPzL.js → PluginsPage-DOpTV75p.js} +1 -1
- package/client/dist/assets/{ProjectSettingsDialog-CAjLgJAZ.js → ProjectSettingsDialog-Dkwrn0z1.js} +1 -1
- package/client/dist/assets/{RepositoryDeliveries-DrcrxLe0.js → RepositoryDeliveries-Du2UCf1a.js} +1 -1
- package/client/dist/assets/{RepositoryScopeSelector-CAGY3xW6.js → RepositoryScopeSelector-hPGZNRBm.js} +1 -1
- package/client/dist/assets/ReviewPacketPage-DcOq-UTA.js +4 -0
- package/client/dist/assets/{TemplatePreviewModal-Bqs-9fhn.js → TemplatePreviewModal-Cejcquah.js} +1 -1
- package/client/dist/assets/{TicketDetailModalContext-C0jQ5yOk.js → TicketDetailModalContext-DAK-NoK6.js} +1 -1
- package/client/dist/assets/{Trans-DtWlCJN9.js → Trans-DEbgkuAY.js} +1 -1
- package/client/dist/assets/{dashboard-CTfEtkqX.js → dashboard-B9uWNGO2.js} +1 -1
- package/client/dist/assets/{dashboard-DMklepmz.js → dashboard-BIwmO9wc.js} +1 -1
- package/client/dist/assets/{dashboard-DBAP2_SQ.js → dashboard-BV4vOZkR.js} +1 -1
- package/client/dist/assets/{dashboard-D40HP2ks.js → dashboard-Bf6MPVsM.js} +1 -1
- package/client/dist/assets/{dashboard-Csf1yGSN.js → dashboard-C8klWVvZ.js} +1 -1
- package/client/dist/assets/{dashboard-C29Qwa-L.js → dashboard-D1ORhPF0.js} +1 -1
- package/client/dist/assets/{dashboard-Cr4D8oMn.js → dashboard-DSubvs9x.js} +1 -1
- package/client/dist/assets/{dashboard-CSJzf5OT.js → dashboard-px_vlRx_.js} +1 -1
- package/client/dist/assets/{formatDistanceToNow-DYmvOA3R.js → formatDistanceToNow-Cc2u5FwQ.js} +1 -1
- package/client/dist/assets/{getTimezoneOffsetInMilliseconds-BAhW5E6V.js → getTimezoneOffsetInMilliseconds-BHm2U-w1.js} +1 -1
- package/client/dist/assets/index-C51x61Bz.css +2 -0
- package/client/dist/assets/{index-BfAZg5DG.js → index-Cxb288Rj.js} +29 -29
- package/client/dist/assets/{jira-api-B27Za5FP.js → jira-api-DrGxiD9p.js} +1 -1
- package/client/dist/assets/packet-8nn9RsU7.js +1 -0
- package/client/dist/assets/packet-B0H15elv.js +1 -0
- package/client/dist/assets/packet-BQvBgrwh.js +1 -0
- package/client/dist/assets/packet-BR7mO0-a.js +1 -0
- package/client/dist/assets/packet-BgcQ6q_K.js +1 -0
- package/client/dist/assets/packet-D2s92Jnn.js +1 -0
- package/client/dist/assets/packet-YbtcD1HS.js +1 -0
- package/client/dist/assets/packet-c0Qj_9eX.js +1 -0
- package/client/dist/assets/{project-repositories-DixIZHTA.js → project-repositories-9Wzs0coQ.js} +1 -1
- package/client/dist/assets/{spending-BGmZBX5B.js → spending-T5GM7wpn.js} +1 -1
- package/client/dist/assets/{useDesktop-CPB4cnwI.js → useDesktop-QogiN0zR.js} +1 -1
- package/client/dist/assets/{useRuntimeRuns-DEQ9HdAM.js → useRuntimeRuns-Dqmz9fS9.js} +1 -1
- package/client/dist/assets/{useSharedWebSocket-DcPRKR8R.js → useSharedWebSocket-Dz-HI6De.js} +2 -2
- package/client/dist/index.html +17 -17
- package/docs/codex.md +5 -5
- package/docs/customizing.md +1 -1
- package/docs/gemini-cli-provider-study.md +14 -14
- package/docs/gemini-core-support-evaluation.md +1 -1
- package/docs/gemini.md +5 -5
- package/docs/internals/README.md +6 -2
- package/docs/internals/adding-a-provider.md +22 -15
- package/docs/internals/agent-runtime-framework-evaluation.md +8 -8
- package/docs/internals/api-reference.md +2 -2
- package/docs/internals/architecture.md +9 -9
- package/docs/internals/browser-capture-performance.md +3 -3
- package/docs/internals/code-explorer-story.md +2 -2
- package/docs/internals/companion-rails-as-loops-contract.md +2 -2
- package/docs/internals/core-runtime-updates.md +5 -0
- package/docs/internals/embedded-browser-native-webview-evaluation.md +5 -5
- package/docs/internals/gemini-mcp-registration.md +2 -2
- package/docs/internals/global-artifacts-alignment-contract.md +1 -1
- package/docs/internals/global-artifacts-relocation-evaluation.md +1 -1
- package/docs/internals/interactive-jobs.md +8 -8
- package/docs/internals/legacy-implementation-notes.md +722 -0
- package/docs/internals/loop-step-log-explorer.md +8 -8
- package/docs/internals/mission-rail-cards.md +14 -14
- package/docs/internals/modular-architecture.md +107 -0
- package/docs/internals/profiles.md +1 -1
- package/docs/internals/programmatic-agent-runtime.md +66 -0
- package/docs/internals/project-builder.md +18 -18
- package/docs/internals/review-packet.md +8 -8
- package/docs/internals/safe-pr-review-flow.md +11 -11
- package/docs/internals/source-architecture.md +131 -0
- package/docs/internals/source-map.md +1356 -0
- package/docs/internals/spec-addenda.md +65 -9
- package/docs/internals/switch-to-agent-mode-design.md +11 -11
- package/docs/tracking-cost.md +1 -1
- package/package.json +5 -2
- package/server/dist/agent-mcp-config.js +1 -1
- package/server/dist/attachment-manager.js +1 -1
- package/server/dist/build-dirs.js +2 -2
- package/server/dist/config.js +0 -3
- package/server/dist/core-completion.js +1 -1
- package/server/dist/core-execution.js +1 -1
- package/server/dist/db/activity.js +39 -0
- package/server/dist/db/connection.js +41 -0
- package/server/dist/db/conversations.js +48 -0
- package/server/dist/db/jobs.js +251 -0
- package/server/dist/db/migrations.js +1521 -0
- package/server/dist/db/proposals.js +50 -0
- package/server/dist/db/settings.js +15 -0
- package/server/dist/db/stats.js +61 -0
- package/server/dist/db/telemetry.js +56 -0
- package/server/dist/db/templates.js +37 -0
- package/server/dist/db/types.js +2 -0
- package/server/dist/db.js +66 -2224
- package/server/dist/desktop-db.js +3 -3
- package/server/dist/desktop-router.js +8 -8
- package/server/dist/git-diagnostics.js +1 -1
- package/server/dist/index.js +11 -11
- package/server/dist/integration-branch.js +3 -14
- package/server/dist/jira/jira-issue-fields.js +0 -1
- package/server/dist/jira/jira-materializer.js +1 -1
- package/server/dist/jira/jira-sync-manager.js +1 -1
- package/server/dist/mcp/guide.js +16 -2
- package/server/dist/mcp/mcp-admin-router.js +1 -1
- package/server/dist/mcp/mcp-server.js +1 -1
- package/server/dist/mcp/tools/catalog.js +2 -0
- package/server/dist/mcp/tools/jobs.js +23 -5
- package/server/dist/mcp/tools/rails.js +2 -2
- package/server/dist/mcp/tools/recovery.js +35 -0
- package/server/dist/mcp/tools/specs.js +2 -2
- package/server/dist/mcp/tools/support.js +4 -1
- package/server/dist/mcp/tools/types.js +3 -3
- package/server/dist/mobile/mobile-gateway.js +1 -1
- package/server/dist/mobile/mobile-missions.js +1 -1
- package/server/dist/{desktop-analytics.js → modules/accounting/runtime/desktop-analytics.js} +2 -2
- package/server/dist/{pricing.js → modules/accounting/runtime/pricing.js} +10 -3
- package/server/dist/{result-event.js → modules/accounting/runtime/result-event.js} +3 -3
- package/server/dist/{spending.js → modules/accounting/runtime/spending.js} +0 -3
- package/server/dist/{telemetry-compactor.js → modules/accounting/runtime/telemetry-compactor.js} +1 -1
- package/server/dist/{telemetry-receiver.js → modules/accounting/runtime/telemetry-receiver.js} +2 -2
- package/server/dist/{agent-runtime-bridge.js → modules/agent-runtime/runtime/agent-runtime-bridge.js} +2 -2
- package/server/dist/{agent-runtime-controls-router.js → modules/agent-runtime/runtime/agent-runtime-controls-router.js} +16 -0
- package/server/dist/{agent-runtime-controls.js → modules/agent-runtime/runtime/agent-runtime-controls.js} +100 -8
- package/server/dist/{agent-runtime-effective-config.js → modules/agent-runtime/runtime/agent-runtime-effective-config.js} +1 -1
- package/server/dist/{agent-runtime-loader.js → modules/agent-runtime/runtime/agent-runtime-loader.js} +3 -3
- package/server/dist/{agent-runtime-paths.js → modules/agent-runtime/runtime/agent-runtime-paths.js} +1 -1
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-recovery.js +53 -0
- package/server/dist/{agent-runtime-settings-router.js → modules/agent-runtime/runtime/agent-runtime-settings-router.js} +2 -2
- package/server/dist/{agent-runtime-settings.js → modules/agent-runtime/runtime/agent-runtime-settings.js} +3 -3
- package/server/dist/{agent-runtime-settlement.js → modules/agent-runtime/runtime/agent-runtime-settlement.js} +6 -6
- package/server/dist/{agent-defaults.js → modules/agents/runtime/agent-defaults.js} +3 -3
- package/server/dist/{agent-generator.js → modules/agents/runtime/agent-generator.js} +7 -7
- package/server/dist/{agent-refine-manager.js → modules/agents/runtime/agent-refine-manager.js} +5 -5
- package/server/dist/{agent-store.js → modules/agents/runtime/agent-store.js} +1 -1
- package/server/dist/{profile-manager.js → modules/agents/runtime/profile-manager.js} +2 -2
- package/server/dist/{profiles-router.js → modules/agents/runtime/profiles-router.js} +5 -5
- package/server/dist/{browser-capture-manager.js → modules/browser/runtime/browser-capture-manager.js} +2 -4
- package/server/dist/{browser-playwright.js → modules/browser/runtime/browser-playwright.js} +1 -1
- package/server/dist/{blueprint-chat-manager.js → modules/builder/runtime/blueprint-chat-manager.js} +7 -7
- package/server/dist/{blueprint-commit.js → modules/builder/runtime/blueprint-commit.js} +8 -8
- package/server/dist/{blueprint-draft-parser.js → modules/builder/runtime/blueprint-draft-parser.js} +1 -1
- package/server/dist/{blueprint-generation.js → modules/builder/runtime/blueprint-generation.js} +1 -1
- package/server/dist/{blueprint-operator-prompt.js → modules/builder/runtime/blueprint-operator-prompt.js} +1 -1
- package/server/dist/{blueprint-router.js → modules/builder/runtime/blueprint-router.js} +3 -3
- package/server/dist/{blueprint-spec-quality.js → modules/builder/runtime/blueprint-spec-quality.js} +1 -1
- package/server/dist/{milestone-chain.js → modules/builder/runtime/milestone-chain.js} +1 -1
- package/server/dist/{milestone-progress.js → modules/builder/runtime/milestone-progress.js} +6 -6
- package/server/dist/{code-activity.js → modules/code/runtime/code-activity.js} +1 -1
- package/server/dist/{code-explorer-router.js → modules/code/runtime/code-explorer-router.js} +5 -5
- package/server/dist/{file-provenance.js → modules/code/runtime/file-provenance.js} +1 -1
- package/server/dist/{file-story-manager.js → modules/code/runtime/file-story-manager.js} +2 -2
- package/server/dist/{file-story.js → modules/code/runtime/file-story.js} +2 -2
- package/server/dist/{file-summary-generator.js → modules/code/runtime/file-summary-generator.js} +3 -3
- package/server/dist/{file-summary-manager.js → modules/code/runtime/file-summary-manager.js} +3 -3
- package/server/dist/{project-code-discovery.js → modules/code/runtime/project-code-discovery.js} +2 -2
- package/server/dist/modules/conversations/domain/draft-stream.js +91 -0
- package/server/dist/modules/conversations/domain/recovery-context.js +101 -0
- package/server/dist/modules/conversations/index.js +10 -0
- package/server/dist/{chat-manager.js → modules/conversations/runtime/chat-manager.js} +32 -216
- package/server/dist/{context-budget.js → modules/conversations/runtime/context-budget.js} +1 -1
- package/server/dist/{explore-cwd-manager.js → modules/conversations/runtime/explore-cwd-manager.js} +1 -1
- package/server/dist/{explore-smash.js → modules/conversations/runtime/explore-smash.js} +1 -1
- package/server/dist/{explore-stdin-session.js → modules/conversations/runtime/explore-stdin-session.js} +1 -1
- package/server/dist/modules/delivery/adapters/decisions/chains.js +138 -0
- package/server/dist/modules/delivery/adapters/decisions/contracts.js +2 -0
- package/server/dist/modules/delivery/adapters/decisions/create.js +234 -0
- package/server/dist/modules/delivery/adapters/decisions/discard.js +251 -0
- package/server/dist/modules/delivery/adapters/decisions/dispatch.js +107 -0
- package/server/dist/modules/delivery/adapters/decisions/evidence.js +205 -0
- package/server/dist/modules/delivery/adapters/decisions/merge-local.js +338 -0
- package/server/dist/modules/delivery/adapters/decisions/metadata.js +109 -0
- package/server/dist/modules/delivery/adapters/decisions/observations.js +260 -0
- package/server/dist/modules/delivery/adapters/decisions/ownership.js +83 -0
- package/server/dist/modules/delivery/adapters/decisions/publish.js +242 -0
- package/server/dist/modules/delivery/adapters/decisions/recovery.js +425 -0
- package/server/dist/modules/delivery/adapters/decisions/retry.js +112 -0
- package/server/dist/modules/delivery/adapters/decisions/transitions.js +94 -0
- package/server/dist/modules/delivery/domain/decision-policy.js +50 -0
- package/server/dist/modules/delivery/domain/state.js +2 -0
- package/server/dist/modules/delivery/index.js +7 -0
- package/server/dist/{active-pr-continuation.js → modules/delivery/runtime/active-pr-continuation.js} +2 -2
- package/server/dist/{delivery-evidence.js → modules/delivery/runtime/delivery-evidence.js} +3 -3
- package/server/dist/{multi-repo-bases.js → modules/delivery/runtime/multi-repo-bases.js} +1 -1
- package/server/dist/{multi-repo-checkout.js → modules/delivery/runtime/multi-repo-checkout.js} +4 -4
- package/server/dist/{multi-repo-delivery.js → modules/delivery/runtime/multi-repo-delivery.js} +4 -4
- package/server/dist/{multi-repo-execution.js → modules/delivery/runtime/multi-repo-execution.js} +8 -8
- package/server/dist/{pr-body.js → modules/delivery/runtime/pr-body.js} +1 -1
- package/server/dist/{pr-follow-up-scope.js → modules/delivery/runtime/pr-follow-up-scope.js} +2 -2
- package/server/dist/{pr-follow-up.js → modules/delivery/runtime/pr-follow-up.js} +1 -1
- package/server/dist/{pr-naming.js → modules/delivery/runtime/pr-naming.js} +1 -1
- package/server/dist/{pr-publisher.js → modules/delivery/runtime/pr-publisher.js} +2 -2
- package/server/dist/{rail-isolated-launch.js → modules/delivery/runtime/rail-isolated-launch.js} +29 -27
- package/server/dist/{rail-launch-parser.js → modules/delivery/runtime/rail-launch-parser.js} +2 -2
- package/server/dist/{rail-merge-orchestrator.js → modules/delivery/runtime/rail-merge-orchestrator.js} +5 -5
- package/server/dist/modules/delivery/runtime/rail-pr-decision.js +12 -0
- package/server/dist/{rail-pr-delivery.js → modules/delivery/runtime/rail-pr-delivery.js} +1 -1
- package/server/dist/{rail-pr-store.js → modules/delivery/runtime/rail-pr-store.js} +2 -2
- package/server/dist/{rail-pr-ticket-effects.js → modules/delivery/runtime/rail-pr-ticket-effects.js} +3 -3
- package/server/dist/{rail-worktree-release.js → modules/delivery/runtime/rail-worktree-release.js} +4 -4
- package/server/dist/{rails-router.js → modules/delivery/runtime/rails-router.js} +66 -67
- package/server/dist/{review-packet.js → modules/delivery/runtime/review-packet.js} +3 -3
- package/server/dist/modules/execution/adapters/budget-storage.js +21 -0
- package/server/dist/modules/execution/adapters/usage-reader.js +38 -0
- package/server/dist/modules/execution/application/enforce-budget.js +14 -0
- package/server/dist/modules/execution/application/record-job-invocations.js +64 -0
- package/server/dist/modules/execution/application/recover-job-usage.js +200 -0
- package/server/dist/modules/execution/domain/job-accounting.js +2 -0
- package/server/dist/modules/execution/domain/scheduling.js +24 -0
- package/server/dist/modules/execution/domain/usage.js +21 -0
- package/server/dist/modules/execution/index.js +14 -0
- package/server/dist/modules/execution/ports.js +2 -0
- package/server/dist/{accept-ladder.js → modules/execution/runtime/accept-ladder.js} +1 -1
- package/server/dist/{interactive-job-session.js → modules/execution/runtime/interactive-job-session.js} +11 -11
- package/server/dist/{job-phase-breakdown.js → modules/execution/runtime/job-phase-breakdown.js} +1 -1
- package/server/dist/{queue-manager.js → modules/execution/runtime/queue-manager.js} +74 -491
- package/server/dist/{revision-seed.js → modules/execution/runtime/revision-seed.js} +1 -1
- package/server/dist/{spawn-lifecycle.js → modules/execution/runtime/spawn-lifecycle.js} +3 -3
- package/server/dist/{stuck-run-detector.js → modules/execution/runtime/stuck-run-detector.js} +1 -1
- package/server/dist/{loop-command-catalog.js → modules/loops/runtime/loop-command-catalog.js} +1 -1
- package/server/dist/{loop-executors.js → modules/loops/runtime/loop-executors.js} +17 -17
- package/server/dist/{loop-factory.js → modules/loops/runtime/loop-factory.js} +2 -21
- package/server/dist/{loop-graph.js → modules/loops/runtime/loop-graph.js} +25 -0
- package/server/dist/{loop-role-engines.js → modules/loops/runtime/loop-role-engines.js} +4 -4
- package/server/dist/{loop-run-manager.js → modules/loops/runtime/loop-run-manager.js} +101 -26
- package/server/dist/{loop-runs-store.js → modules/loops/runtime/loop-runs-store.js} +1 -1
- package/server/dist/{loop-shell-invocation.js → modules/loops/runtime/loop-shell-invocation.js} +2 -2
- package/server/dist/{loop-step-idle.js → modules/loops/runtime/loop-step-idle.js} +1 -1
- package/server/dist/{loop-templates.js → modules/loops/runtime/loop-templates.js} +24 -29
- package/server/dist/{loops-router.js → modules/loops/runtime/loops-router.js} +2 -2
- package/server/dist/{agent-chat-manager.js → modules/missions/runtime/agent-chat-manager.js} +19 -19
- package/server/dist/{agent-chat-router.js → modules/missions/runtime/agent-chat-router.js} +6 -6
- package/server/dist/{agent-context-resolver.js → modules/missions/runtime/agent-context-resolver.js} +8 -8
- package/server/dist/{agent-failure-briefing.js → modules/missions/runtime/agent-failure-briefing.js} +4 -2
- package/server/dist/{agent-fence-promotion.js → modules/missions/runtime/agent-fence-promotion.js} +1 -1
- package/server/dist/{agent-input-store.js → modules/missions/runtime/agent-input-store.js} +1 -1
- package/server/dist/{agent-operator-prompt.js → modules/missions/runtime/agent-operator-prompt.js} +75 -12
- package/server/dist/{agent-spec-framing.js → modules/missions/runtime/agent-spec-framing.js} +4 -4
- package/server/dist/{agent-steering.js → modules/missions/runtime/agent-steering.js} +1 -1
- package/server/dist/{mission-run-notify.js → modules/missions/runtime/mission-run-notify.js} +5 -2
- package/server/dist/modules/project-settings/adapters/http.js +24 -0
- package/server/dist/modules/project-settings/adapters/sqlite.js +120 -0
- package/server/dist/modules/project-settings/application.js +11 -0
- package/server/dist/modules/project-settings/domain.js +95 -0
- package/server/dist/modules/project-settings/index.js +11 -0
- package/server/dist/modules/project-settings/ports.js +2 -0
- package/server/dist/{contract-refine-runner.js → modules/specs/runtime/contract-refine-runner.js} +12 -12
- package/server/dist/{proposal-manager.js → modules/specs/runtime/proposal-manager.js} +8 -8
- package/server/dist/{smash-runner.js → modules/specs/runtime/smash-runner.js} +26 -58
- package/server/dist/{spec-addenda-core.js → modules/specs/runtime/spec-addenda-core.js} +2 -2
- package/server/dist/{spec-addenda.js → modules/specs/runtime/spec-addenda.js} +3 -3
- package/server/dist/{spec-launcher-manager.js → modules/specs/runtime/spec-launcher-manager.js} +8 -8
- package/server/dist/{spec-models.js → modules/specs/runtime/spec-models.js} +1 -1
- package/server/dist/{ticket-watcher.js → modules/specs/runtime/ticket-watcher.js} +1 -1
- package/server/dist/{background-process-control.js → modules/terminals/runtime/background-process-control.js} +1 -1
- package/server/dist/{background-process-service.js → modules/terminals/runtime/background-process-service.js} +3 -3
- package/server/dist/{background-process-store.js → modules/terminals/runtime/background-process-store.js} +1 -1
- package/server/dist/{background-windows-bootstrap.js → modules/terminals/runtime/background-windows-bootstrap.js} +3 -3
- package/server/dist/{terminal-manager.js → modules/terminals/runtime/terminal-manager.js} +3 -3
- package/server/dist/project-git.js +1 -1
- package/server/dist/project-profile-support.js +32 -0
- package/server/dist/project-registry.js +34 -40
- package/server/dist/project-router-background-processes.js +1 -1
- package/server/dist/project-router-chat.js +6 -6
- package/server/dist/project-router-git.js +1 -1
- package/server/dist/project-router-helpers.js +2 -2
- package/server/dist/project-router-jobs.js +14 -12
- package/server/dist/project-router-loop-runs.js +12 -12
- package/server/dist/project-router-settings.js +15 -75
- package/server/dist/project-router-setup.js +2 -2
- package/server/dist/project-router-spending.js +4 -4
- package/server/dist/project-router-terminals.js +4 -4
- package/server/dist/project-router-tickets.js +14 -14
- package/server/dist/project-router.js +13 -13
- package/server/dist/providers/claude-adapter.js +3 -2
- package/server/dist/providers/codex-adapter.js +3 -3
- package/server/dist/providers/gemini-adapter.js +1 -1
- package/server/dist/providers/telemetry-env.js +55 -0
- package/server/dist/runtime-role-prompts-router.js +2 -2
- package/server/dist/setup-manager.js +2 -48
- package/server/dist/shared/git-branch-name.js +16 -0
- package/server/dist/transient-children.js +3 -3
- package/server/dist/util/distribute-int.js +33 -0
- package/client/dist/assets/ReviewPacketPage-D-UjTef3.js +0 -4
- package/client/dist/assets/index-BAtqmAZR.css +0 -2
- package/client/dist/assets/packet-CjS_478C.js +0 -1
- package/client/dist/assets/packet-D69dKsHN.js +0 -1
- package/client/dist/assets/packet-D9rU6Oxo.js +0 -1
- package/client/dist/assets/packet-DMDFoamg.js +0 -1
- package/client/dist/assets/packet-Dd2RMs1h.js +0 -1
- package/client/dist/assets/packet-DjC9OibC.js +0 -1
- package/client/dist/assets/packet-DwPtJoDz.js +0 -1
- package/client/dist/assets/packet-ceahDg8_.js +0 -1
- package/server/dist/rail-pr-decision.js +0 -2377
- package/server/dist/ticket-broadcast.js +0 -47
- /package/server/dist/{ai-invocations.js → modules/accounting/runtime/ai-invocations.js} +0 -0
- /package/server/dist/{codex-otel-bridge.js → modules/accounting/runtime/codex-otel-bridge.js} +0 -0
- /package/server/dist/{metrics.js → modules/accounting/runtime/metrics.js} +0 -0
- /package/server/dist/{telemetry-export.js → modules/accounting/runtime/telemetry-export.js} +0 -0
- /package/server/dist/{agent-runtime-accounting.js → modules/agent-runtime/runtime/agent-runtime-accounting.js} +0 -0
- /package/server/dist/{agent-runtime-events.js → modules/agent-runtime/runtime/agent-runtime-events.js} +0 -0
- /package/server/dist/{agent-runtime-history.js → modules/agent-runtime/runtime/agent-runtime-history.js} +0 -0
- /package/server/dist/{agent-runtime-metrics.js → modules/agent-runtime/runtime/agent-runtime-metrics.js} +0 -0
- /package/server/dist/{agent-runtime-package.js → modules/agent-runtime/runtime/agent-runtime-package.js} +0 -0
- /package/server/dist/{agent-runtime-repositories.js → modules/agent-runtime/runtime/agent-runtime-repositories.js} +0 -0
- /package/server/dist/{agent-runtime-verification-suggestions.js → modules/agent-runtime/runtime/agent-runtime-verification-suggestions.js} +0 -0
- /package/server/dist/{agent-refine-db.js → modules/agents/runtime/agent-refine-db.js} +0 -0
- /package/server/dist/{browser-capture-types.js → modules/browser/runtime/browser-capture-types.js} +0 -0
- /package/server/dist/{browser-context-pool.js → modules/browser/runtime/browser-context-pool.js} +0 -0
- /package/server/dist/{browser-network.js → modules/browser/runtime/browser-network.js} +0 -0
- /package/server/dist/{browser-viewport.js → modules/browser/runtime/browser-viewport.js} +0 -0
- /package/server/dist/{blueprint-render.js → modules/builder/runtime/blueprint-render.js} +0 -0
- /package/server/dist/{blueprint-spec-fixtures.js → modules/builder/runtime/blueprint-spec-fixtures.js} +0 -0
- /package/server/dist/{blueprint-store.js → modules/builder/runtime/blueprint-store.js} +0 -0
- /package/server/dist/{blueprint-types.js → modules/builder/runtime/blueprint-types.js} +0 -0
- /package/server/dist/{builder-cwd-manager.js → modules/builder/runtime/builder-cwd-manager.js} +0 -0
- /package/server/dist/{milestone-chain-store.js → modules/builder/runtime/milestone-chain-store.js} +0 -0
- /package/server/dist/{changes-reader.js → modules/code/runtime/changes-reader.js} +0 -0
- /package/server/dist/{context-scope.js → modules/conversations/runtime/context-scope.js} +0 -0
- /package/server/dist/{explore-contract-refine.js → modules/conversations/runtime/explore-contract-refine.js} +0 -0
- /package/server/dist/{explore-draft-title.js → modules/conversations/runtime/explore-draft-title.js} +0 -0
- /package/server/dist/{merge-manager.js → modules/delivery/runtime/merge-manager.js} +0 -0
- /package/server/dist/{multi-repo-execution-store.js → modules/delivery/runtime/multi-repo-execution-store.js} +0 -0
- /package/server/dist/{pr-lifecycle.js → modules/delivery/runtime/pr-lifecycle.js} +0 -0
- /package/server/dist/{rail-isolation.js → modules/delivery/runtime/rail-isolation.js} +0 -0
- /package/server/dist/{rail-pr-recovery-git.js → modules/delivery/runtime/rail-pr-recovery-git.js} +0 -0
- /package/server/dist/{rail-worktrees-store.js → modules/delivery/runtime/rail-worktrees-store.js} +0 -0
- /package/server/dist/{rails-store.js → modules/delivery/runtime/rails-store.js} +0 -0
- /package/server/dist/{job-listing.js → modules/execution/runtime/job-listing.js} +0 -0
- /package/server/dist/{job-spawn-idempotency.js → modules/execution/runtime/job-spawn-idempotency.js} +0 -0
- /package/server/dist/{run-duration-stats.js → modules/execution/runtime/run-duration-stats.js} +0 -0
- /package/server/dist/{verification-sentinel.js → modules/execution/runtime/verification-sentinel.js} +0 -0
- /package/server/dist/{loop-constants.js → modules/loops/runtime/loop-constants.js} +0 -0
- /package/server/dist/{loop-decider.js → modules/loops/runtime/loop-decider.js} +0 -0
- /package/server/dist/{loop-effect.js → modules/loops/runtime/loop-effect.js} +0 -0
- /package/server/dist/{loop-preview.js → modules/loops/runtime/loop-preview.js} +0 -0
- /package/server/dist/{loop-templates-ported.js → modules/loops/runtime/loop-templates-ported.js} +0 -0
- /package/server/dist/{loops-store.js → modules/loops/runtime/loops-store.js} +0 -0
- /package/server/dist/{agent-chat-registry.js → modules/missions/runtime/agent-chat-registry.js} +0 -0
- /package/server/dist/{agent-cwd-manager.js → modules/missions/runtime/agent-cwd-manager.js} +0 -0
- /package/server/dist/{agent-tier.js → modules/missions/runtime/agent-tier.js} +0 -0
- /package/server/dist/{spec-contract-prompt.js → modules/specs/runtime/spec-contract-prompt.js} +0 -0
- /package/server/dist/{spec-draft-parser.js → modules/specs/runtime/spec-draft-parser.js} +0 -0
- /package/server/dist/{ticket-store.js → modules/specs/runtime/ticket-store.js} +0 -0
- /package/server/dist/{terminal-marks-store.js → modules/terminals/runtime/terminal-marks-store.js} +0 -0
- /package/server/dist/{terminal-osc-parser.js → modules/terminals/runtime/terminal-osc-parser.js} +0 -0
- /package/server/dist/{terminal-settings.js → modules/terminals/runtime/terminal-settings.js} +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SettingsValidationError = exports.WORKTREE_ENV_NAME_RE = exports.DEFAULT_FREESTYLE_PRE_PROMPT = void 0;
|
|
4
|
+
exports.normalizeWorktreeEnvPassthrough = normalizeWorktreeEnvPassthrough;
|
|
5
|
+
exports.parseProjectSettingsPatch = parseProjectSettingsPatch;
|
|
6
|
+
const git_branch_name_1 = require("../../shared/git-branch-name");
|
|
7
|
+
/**
|
|
8
|
+
* Default pre-prompt used by provider-capable Freestyle rails when the project
|
|
9
|
+
* has no per-project override. Freestyle skips the OpenSpec pipeline entirely:
|
|
10
|
+
* it hands the selected autonomous provider the spec text plus this instruction and lets it work
|
|
11
|
+
* autonomously end-to-end.
|
|
12
|
+
*/
|
|
13
|
+
exports.DEFAULT_FREESTYLE_PRE_PROMPT = [
|
|
14
|
+
'You are operating in FREESTYLE: fully autonomous, end-to-end implementation.',
|
|
15
|
+
'Implement the following spec COMPLETELY in this repository. You have full access to the codebase and tools.',
|
|
16
|
+
'Work independently until the feature is done: write the code, the tests, update docs as needed, and make sure everything builds and the test suite passes.',
|
|
17
|
+
'Do NOT follow any structured architect/developer/reviewer pipeline — use your own judgement and the repo conventions.',
|
|
18
|
+
'Never ask for confirmation; there is no human to answer. Choose the recommended option and proceed.',
|
|
19
|
+
'Run every command in the FOREGROUND and wait for it to finish — never background a command (no run_in_background, no trailing `&`): your reply ends the step and anything still running is killed with its output lost.',
|
|
20
|
+
].join('\n');
|
|
21
|
+
exports.WORKTREE_ENV_NAME_RE = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
22
|
+
const WORKTREE_ENV_MAX_NAMES = 64;
|
|
23
|
+
const WORKTREE_ENV_MAX_NAME_LENGTH = 128;
|
|
24
|
+
function normalizeWorktreeEnvPassthrough(value) {
|
|
25
|
+
if (!Array.isArray(value))
|
|
26
|
+
throw new Error('worktreeEnvPassthrough must be an array of environment variable names');
|
|
27
|
+
const out = [];
|
|
28
|
+
const seen = new Set();
|
|
29
|
+
for (const raw of value) {
|
|
30
|
+
if (typeof raw !== 'string')
|
|
31
|
+
throw new Error('worktreeEnvPassthrough entries must be strings');
|
|
32
|
+
const name = raw.trim();
|
|
33
|
+
if (!name)
|
|
34
|
+
continue;
|
|
35
|
+
if (name.length > WORKTREE_ENV_MAX_NAME_LENGTH)
|
|
36
|
+
throw new Error(`environment variable name is too long: ${name.slice(0, 24)}...`);
|
|
37
|
+
if (!exports.WORKTREE_ENV_NAME_RE.test(name))
|
|
38
|
+
throw new Error(`invalid environment variable name: ${name}`);
|
|
39
|
+
if (seen.has(name))
|
|
40
|
+
continue;
|
|
41
|
+
seen.add(name);
|
|
42
|
+
out.push(name);
|
|
43
|
+
if (out.length > WORKTREE_ENV_MAX_NAMES)
|
|
44
|
+
throw new Error(`worktreeEnvPassthrough can contain at most ${WORKTREE_ENV_MAX_NAMES} names`);
|
|
45
|
+
}
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
class SettingsValidationError extends Error {
|
|
49
|
+
constructor(message) {
|
|
50
|
+
super(message);
|
|
51
|
+
this.name = 'SettingsValidationError';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.SettingsValidationError = SettingsValidationError;
|
|
55
|
+
/** Preserve the existing PATCH contract, including boolean coercion and ignored
|
|
56
|
+
* unknown fields. Validate the whole input before the repository can write. */
|
|
57
|
+
function parseProjectSettingsPatch(input) {
|
|
58
|
+
const values = (input ?? {});
|
|
59
|
+
const patch = {};
|
|
60
|
+
if (values.pipelineTelemetryEnabled !== undefined) {
|
|
61
|
+
patch.pipelineTelemetryEnabled = Boolean(values.pipelineTelemetryEnabled);
|
|
62
|
+
}
|
|
63
|
+
const validModels = ['sonnet', 'opus', 'haiku'];
|
|
64
|
+
if (values.orchestratorModel !== undefined) {
|
|
65
|
+
if (typeof values.orchestratorModel !== 'string' || !validModels.includes(values.orchestratorModel)) {
|
|
66
|
+
throw new SettingsValidationError(`orchestratorModel must be one of: ${validModels.join(', ')}`);
|
|
67
|
+
}
|
|
68
|
+
patch.orchestratorModel = values.orchestratorModel;
|
|
69
|
+
}
|
|
70
|
+
for (const key of ['prePrompt', 'freestylePrePrompt']) {
|
|
71
|
+
if (values[key] !== undefined) {
|
|
72
|
+
if (typeof values[key] !== 'string')
|
|
73
|
+
throw new SettingsValidationError(`${key} must be a string`);
|
|
74
|
+
patch[key] = values[key];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (values.worktreeEnvPassthrough !== undefined) {
|
|
78
|
+
try {
|
|
79
|
+
patch.worktreeEnvPassthrough = normalizeWorktreeEnvPassthrough(values.worktreeEnvPassthrough);
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
throw new SettingsValidationError(error instanceof Error ? error.message : 'invalid worktreeEnvPassthrough');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (values.integrationBranch !== undefined) {
|
|
86
|
+
const branch = values.integrationBranch;
|
|
87
|
+
if (typeof branch !== 'string')
|
|
88
|
+
throw new SettingsValidationError('integrationBranch must be a string');
|
|
89
|
+
if (branch.trim() !== '' && !(0, git_branch_name_1.isValidBranchName)(branch)) {
|
|
90
|
+
throw new SettingsValidationError('integrationBranch is not a valid branch name');
|
|
91
|
+
}
|
|
92
|
+
patch.integrationBranch = branch;
|
|
93
|
+
}
|
|
94
|
+
return patch;
|
|
95
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SettingsValidationError = exports.normalizeWorktreeEnvPassthrough = exports.WORKTREE_ENV_NAME_RE = exports.DEFAULT_FREESTYLE_PRE_PROMPT = exports.createProjectSettingsService = void 0;
|
|
4
|
+
// Public application API. Infrastructure adapters are wired only at composition roots.
|
|
5
|
+
var application_1 = require("./application");
|
|
6
|
+
Object.defineProperty(exports, "createProjectSettingsService", { enumerable: true, get: function () { return application_1.createProjectSettingsService; } });
|
|
7
|
+
var domain_1 = require("./domain");
|
|
8
|
+
Object.defineProperty(exports, "DEFAULT_FREESTYLE_PRE_PROMPT", { enumerable: true, get: function () { return domain_1.DEFAULT_FREESTYLE_PRE_PROMPT; } });
|
|
9
|
+
Object.defineProperty(exports, "WORKTREE_ENV_NAME_RE", { enumerable: true, get: function () { return domain_1.WORKTREE_ENV_NAME_RE; } });
|
|
10
|
+
Object.defineProperty(exports, "normalizeWorktreeEnvPassthrough", { enumerable: true, get: function () { return domain_1.normalizeWorktreeEnvPassthrough; } });
|
|
11
|
+
Object.defineProperty(exports, "SettingsValidationError", { enumerable: true, get: function () { return domain_1.SettingsValidationError; } });
|
package/server/dist/{contract-refine-runner.js → modules/specs/runtime/contract-refine-runner.js}
RENAMED
|
@@ -23,19 +23,19 @@ exports.runContractRefineForQuick = runContractRefineForQuick;
|
|
|
23
23
|
const node_crypto_1 = require("node:crypto");
|
|
24
24
|
const node_readline_1 = require("node:readline");
|
|
25
25
|
const tree_kill_1 = __importDefault(require("tree-kill"));
|
|
26
|
-
const cli_prompt_1 = require("
|
|
27
|
-
const spawn_lifecycle_1 = require("
|
|
28
|
-
const providers_1 = require("
|
|
29
|
-
const runtime_1 = require("
|
|
30
|
-
const explore_contract_refine_1 = require("
|
|
31
|
-
const db_1 = require("
|
|
32
|
-
const explore_cwd_manager_1 = require("
|
|
33
|
-
const ai_invocations_1 = require("
|
|
34
|
-
const result_event_1 = require("
|
|
26
|
+
const cli_prompt_1 = require("../../../util/cli-prompt");
|
|
27
|
+
const spawn_lifecycle_1 = require("../../execution/runtime/spawn-lifecycle");
|
|
28
|
+
const providers_1 = require("../../../providers");
|
|
29
|
+
const runtime_1 = require("../../../providers/runtime");
|
|
30
|
+
const explore_contract_refine_1 = require("../../conversations/runtime/explore-contract-refine");
|
|
31
|
+
const db_1 = require("../../../db");
|
|
32
|
+
const explore_cwd_manager_1 = require("../../conversations/runtime/explore-cwd-manager");
|
|
33
|
+
const ai_invocations_1 = require("../../accounting/runtime/ai-invocations");
|
|
34
|
+
const result_event_1 = require("../../accounting/runtime/result-event");
|
|
35
35
|
const ticket_store_1 = require("./ticket-store");
|
|
36
|
-
const workspace_resolution_1 = require("
|
|
37
|
-
const process_admission_1 = require("
|
|
38
|
-
const transient_children_1 = require("
|
|
36
|
+
const workspace_resolution_1 = require("../../../workspace-resolution");
|
|
37
|
+
const process_admission_1 = require("../../../process-admission");
|
|
38
|
+
const transient_children_1 = require("../../../transient-children");
|
|
39
39
|
const REFINE_TIMEOUT_MS = 60_000;
|
|
40
40
|
const CLAUDE_MISSING_SESSION_DIAGNOSTIC = 'No conversation found with session ID';
|
|
41
41
|
/**
|
|
@@ -7,14 +7,14 @@ exports.ProposalManager = void 0;
|
|
|
7
7
|
const readline_1 = require("readline");
|
|
8
8
|
const crypto_1 = require("crypto");
|
|
9
9
|
const tree_kill_1 = __importDefault(require("tree-kill"));
|
|
10
|
-
const cli_prompt_1 = require("
|
|
11
|
-
const db_1 = require("
|
|
12
|
-
const command_resolver_1 = require("
|
|
13
|
-
const providers_1 = require("
|
|
14
|
-
const runtime_1 = require("
|
|
15
|
-
const result_event_1 = require("
|
|
16
|
-
const ai_invocations_1 = require("
|
|
17
|
-
const workspace_resolution_1 = require("
|
|
10
|
+
const cli_prompt_1 = require("../../../util/cli-prompt");
|
|
11
|
+
const db_1 = require("../../../db");
|
|
12
|
+
const command_resolver_1 = require("../../../command-resolver");
|
|
13
|
+
const providers_1 = require("../../../providers");
|
|
14
|
+
const runtime_1 = require("../../../providers/runtime");
|
|
15
|
+
const result_event_1 = require("../../accounting/runtime/result-event");
|
|
16
|
+
const ai_invocations_1 = require("../../accounting/runtime/ai-invocations");
|
|
17
|
+
const workspace_resolution_1 = require("../../../workspace-resolution");
|
|
18
18
|
// ─── ProposalManager ──────────────────────────────────────────────────────────
|
|
19
19
|
class ProposalManager {
|
|
20
20
|
_broadcast;
|
|
@@ -1,14 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* SPECs SMASH — Runner
|
|
4
|
-
*
|
|
5
|
-
* Standalone orchestrator for a single SMASH turn. Spawns a fresh `claude`
|
|
6
|
-
* with the byte-stable SMASH system prompt, parses the JSON response, then
|
|
7
|
-
* atomically flips the parent ticket to `is_epic` and inserts N child
|
|
8
|
-
* tickets inside a single `mutateStore` callback.
|
|
9
|
-
*
|
|
10
|
-
* See openspec/changes/add-specs-smash.
|
|
11
|
-
*/
|
|
12
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
3
|
if (k2 === undefined) k2 = k;
|
|
14
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -55,21 +45,32 @@ exports.applySmashUndo = applySmashUndo;
|
|
|
55
45
|
exports.applyDeleteEpicChildren = applyDeleteEpicChildren;
|
|
56
46
|
exports.runSmash = runSmash;
|
|
57
47
|
exports.runSmashUndo = runSmashUndo;
|
|
48
|
+
const distribute_int_1 = require("../../../util/distribute-int");
|
|
49
|
+
/**
|
|
50
|
+
* SPECs SMASH — Runner
|
|
51
|
+
*
|
|
52
|
+
* Standalone orchestrator for a single SMASH turn. Spawns a fresh `claude`
|
|
53
|
+
* with the byte-stable SMASH system prompt, parses the JSON response, then
|
|
54
|
+
* atomically flips the parent ticket to `is_epic` and inserts N child
|
|
55
|
+
* tickets inside a single `mutateStore` callback.
|
|
56
|
+
*
|
|
57
|
+
* See openspec/changes/add-specs-smash.
|
|
58
|
+
*/
|
|
58
59
|
const node_crypto_1 = require("node:crypto");
|
|
59
60
|
const node_readline_1 = require("node:readline");
|
|
60
61
|
const tree_kill_1 = __importDefault(require("tree-kill"));
|
|
61
|
-
const cli_prompt_1 = require("
|
|
62
|
-
const spawn_lifecycle_1 = require("
|
|
63
|
-
const providers_1 = require("
|
|
64
|
-
const explore_smash_1 = require("
|
|
65
|
-
const explore_cwd_manager_1 = require("
|
|
66
|
-
const workspace_resolution_1 = require("
|
|
67
|
-
const ai_invocations_1 = require("
|
|
68
|
-
const result_event_1 = require("
|
|
62
|
+
const cli_prompt_1 = require("../../../util/cli-prompt");
|
|
63
|
+
const spawn_lifecycle_1 = require("../../execution/runtime/spawn-lifecycle");
|
|
64
|
+
const providers_1 = require("../../../providers");
|
|
65
|
+
const explore_smash_1 = require("../../conversations/runtime/explore-smash");
|
|
66
|
+
const explore_cwd_manager_1 = require("../../conversations/runtime/explore-cwd-manager");
|
|
67
|
+
const workspace_resolution_1 = require("../../../workspace-resolution");
|
|
68
|
+
const ai_invocations_1 = require("../../accounting/runtime/ai-invocations");
|
|
69
|
+
const result_event_1 = require("../../accounting/runtime/result-event");
|
|
69
70
|
const ticket_store_1 = require("./ticket-store");
|
|
70
71
|
const ticket_store_2 = require("./ticket-store");
|
|
71
|
-
const runtime_1 = require("
|
|
72
|
-
const transient_children_1 = require("
|
|
72
|
+
const runtime_1 = require("../../../providers/runtime");
|
|
73
|
+
const transient_children_1 = require("../../../transient-children");
|
|
73
74
|
/** Resolve the tickets-store path for a SMASH run: the gated `ticketsPath` when
|
|
74
75
|
* the caller threaded it (relocation-aware), else the legacy repo-relative
|
|
75
76
|
* derivation. */
|
|
@@ -419,39 +420,6 @@ function recordSafely(deps, adapter, ticketId, runId, startedAt, finishedAt, sta
|
|
|
419
420
|
console.error('[smash-runner] recordInvocation failed:', err);
|
|
420
421
|
}
|
|
421
422
|
}
|
|
422
|
-
/**
|
|
423
|
-
* Distribute an integer `total` across `n` buckets using the largest-remainder
|
|
424
|
-
* method so the per-bucket values sum EXACTLY to `total` (no floor loss). The
|
|
425
|
-
* base share goes to every bucket; the leftover remainder is handed out one
|
|
426
|
-
* unit at a time to the leading buckets. Returns `undefined` when the input is
|
|
427
|
-
* absent so the recorded row carries no value (rather than a spurious 0).
|
|
428
|
-
*
|
|
429
|
-
* LOW-9: the previous `Math.floor(total / n)` dropped up to n-1 units per field
|
|
430
|
-
* and — because SMASH turn counts (1-30) are the same magnitude as the child
|
|
431
|
-
* count (3-8) — regularly collapsed num_turns to 0 for every child.
|
|
432
|
-
*/
|
|
433
|
-
function distributeInt(total, n) {
|
|
434
|
-
if (total === null || total === undefined)
|
|
435
|
-
return new Array(n).fill(undefined);
|
|
436
|
-
const t = Math.trunc(total);
|
|
437
|
-
const base = Math.floor(t / n);
|
|
438
|
-
let remainder = t - base * n;
|
|
439
|
-
const out = new Array(n);
|
|
440
|
-
for (let i = 0; i < n; i++) {
|
|
441
|
-
// Hand the leftover to the leading buckets; sign-safe for negative totals.
|
|
442
|
-
if (remainder > 0) {
|
|
443
|
-
out[i] = base + 1;
|
|
444
|
-
remainder -= 1;
|
|
445
|
-
}
|
|
446
|
-
else if (remainder < 0) {
|
|
447
|
-
out[i] = base - 1;
|
|
448
|
-
remainder += 1;
|
|
449
|
-
}
|
|
450
|
-
else
|
|
451
|
-
out[i] = base;
|
|
452
|
-
}
|
|
453
|
-
return out;
|
|
454
|
-
}
|
|
455
423
|
/**
|
|
456
424
|
* On a successful SMASH, attribute the spawn cost/tokens proportionally to
|
|
457
425
|
* each Sub-Spec so the per-child spending line is populated immediately.
|
|
@@ -473,11 +441,11 @@ function recordChildrenInvocations(deps, adapter, childrenIds, runId, startedAt,
|
|
|
473
441
|
return v / n;
|
|
474
442
|
};
|
|
475
443
|
// Largest-remainder splits for the integer fields (sum exactly to the total).
|
|
476
|
-
const tokensIn =
|
|
477
|
-
const tokensOut =
|
|
478
|
-
const tokensCacheRead =
|
|
479
|
-
const tokensCacheCreate =
|
|
480
|
-
const numTurns =
|
|
444
|
+
const tokensIn = (0, distribute_int_1.distributeIntEvenly)(normalised.tokens_in, n);
|
|
445
|
+
const tokensOut = (0, distribute_int_1.distributeIntEvenly)(normalised.tokens_out, n);
|
|
446
|
+
const tokensCacheRead = (0, distribute_int_1.distributeIntEvenly)(normalised.tokens_cache_read, n);
|
|
447
|
+
const tokensCacheCreate = (0, distribute_int_1.distributeIntEvenly)(normalised.tokens_cache_create, n);
|
|
448
|
+
const numTurns = (0, distribute_int_1.distributeIntEvenly)(normalised.num_turns, n);
|
|
481
449
|
childrenIds.forEach((childId, i) => {
|
|
482
450
|
// LOW-12: try/catch INSIDE the loop so one failed row (e.g. a transient
|
|
483
451
|
// SQLITE_BUSY) cannot abandon the remaining children's cost.
|
|
@@ -19,9 +19,9 @@ exports.parseSpecAddendaReport = parseSpecAddendaReport;
|
|
|
19
19
|
// The PURE half of the spec-addenda contract: types, validation, the briefing
|
|
20
20
|
// every phase of a run receives, and the per-addendum report parser. No Node
|
|
21
21
|
// APIs — this module is shared by server and client (the client copy lives at
|
|
22
|
-
// client/src/lib/spec-addenda-core.ts and MUST stay byte-identical; a parity
|
|
22
|
+
// client/src/features/specs/lib/spec-addenda-core.ts and MUST stay byte-identical; a parity
|
|
23
23
|
// test guards that). Ids, hashing and the ticket-store lifecycle live in
|
|
24
|
-
// server/spec-addenda.ts.
|
|
24
|
+
// server/modules/specs/runtime/spec-addenda.ts.
|
|
25
25
|
//
|
|
26
26
|
// WHY ADDENDA EXIST. Iterating on a spec that already has work behind it (a
|
|
27
27
|
// delivered PR, a merged feature, a half-done implementation) used to have one
|
|
@@ -31,7 +31,7 @@ exports.settleSpecAddendaAt = settleSpecAddendaAt;
|
|
|
31
31
|
exports.reopenSpecAddenda = reopenSpecAddenda;
|
|
32
32
|
exports.broadcastSpecAddendaChange = broadcastSpecAddendaChange;
|
|
33
33
|
// ─── Spec addenda — the Node half (ids, hashing, ticket-store lifecycle) ─────
|
|
34
|
-
// See server/spec-addenda-core.ts for the contract and the WHY. This module
|
|
34
|
+
// See server/modules/specs/runtime/spec-addenda-core.ts for the contract and the WHY. This module
|
|
35
35
|
// owns everything that touches the ticket store: creating/editing addenda on a
|
|
36
36
|
// ticket, CLAIMING them for a launch (open → in_flight), SETTLING them when the
|
|
37
37
|
// job/run ends (in_flight → applied, or back to open on failure/cancel) and
|
|
@@ -39,9 +39,9 @@ exports.broadcastSpecAddendaChange = broadcastSpecAddendaChange;
|
|
|
39
39
|
// `mutateStore` (advisory lock + atomic rename) and never touches any other
|
|
40
40
|
// ticket field — in particular never `description`.
|
|
41
41
|
const crypto_1 = require("crypto");
|
|
42
|
-
const ids_1 = require("
|
|
42
|
+
const ids_1 = require("../../../ids");
|
|
43
43
|
const ticket_store_1 = require("./ticket-store");
|
|
44
|
-
const workspace_resolution_1 = require("
|
|
44
|
+
const workspace_resolution_1 = require("../../../workspace-resolution");
|
|
45
45
|
const spec_addenda_core_1 = require("./spec-addenda-core");
|
|
46
46
|
__exportStar(require("./spec-addenda-core"), exports);
|
|
47
47
|
function specAddendumHash(input) {
|
package/server/dist/{spec-launcher-manager.js → modules/specs/runtime/spec-launcher-manager.js}
RENAMED
|
@@ -7,14 +7,14 @@ exports.SpecLauncherManager = void 0;
|
|
|
7
7
|
const readline_1 = require("readline");
|
|
8
8
|
const crypto_1 = require("crypto");
|
|
9
9
|
const tree_kill_1 = __importDefault(require("tree-kill"));
|
|
10
|
-
const command_resolver_1 = require("
|
|
11
|
-
const cli_prompt_1 = require("
|
|
12
|
-
const providers_1 = require("
|
|
13
|
-
const result_event_1 = require("
|
|
14
|
-
const ai_invocations_1 = require("
|
|
15
|
-
const runtime_1 = require("
|
|
16
|
-
const loop_command_catalog_1 = require("
|
|
17
|
-
const workspace_resolution_1 = require("
|
|
10
|
+
const command_resolver_1 = require("../../../command-resolver");
|
|
11
|
+
const cli_prompt_1 = require("../../../util/cli-prompt");
|
|
12
|
+
const providers_1 = require("../../../providers");
|
|
13
|
+
const result_event_1 = require("../../accounting/runtime/result-event");
|
|
14
|
+
const ai_invocations_1 = require("../../accounting/runtime/ai-invocations");
|
|
15
|
+
const runtime_1 = require("../../../providers/runtime");
|
|
16
|
+
const loop_command_catalog_1 = require("../../loops/runtime/loop-command-catalog");
|
|
17
|
+
const workspace_resolution_1 = require("../../../workspace-resolution");
|
|
18
18
|
// ─── SpecLauncherManager ──────────────────────────────────────────────────────
|
|
19
19
|
class SpecLauncherManager {
|
|
20
20
|
_broadcast;
|
|
@@ -4,7 +4,7 @@ exports.PROVIDER_DEFAULT_MODEL = exports.KIMI_MODELS = exports.GEMINI_MODELS = e
|
|
|
4
4
|
exports.getModelsForProvider = getModelsForProvider;
|
|
5
5
|
exports.isValidModelForProvider = isValidModelForProvider;
|
|
6
6
|
exports.getProviderDefault = getProviderDefault;
|
|
7
|
-
const providers_1 = require("
|
|
7
|
+
const providers_1 = require("../../../providers");
|
|
8
8
|
exports.CLAUDE_MODELS = [
|
|
9
9
|
{ value: 'sonnet', label: 'Claude Sonnet' },
|
|
10
10
|
{ value: 'fable', label: 'Claude Fable' },
|
|
@@ -7,7 +7,7 @@ exports.TicketWatcher = void 0;
|
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const chokidar_1 = require("chokidar");
|
|
10
|
-
const workspace_resolution_1 = require("
|
|
10
|
+
const workspace_resolution_1 = require("../../../workspace-resolution");
|
|
11
11
|
const TICKET_FILE = '.specrails/local-tickets.json';
|
|
12
12
|
const DEBOUNCE_MS = 150;
|
|
13
13
|
/**
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.createBackgroundProcessControl = createBackgroundProcessControl;
|
|
7
7
|
const child_process_1 = require("child_process");
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const win_spawn_1 = require("
|
|
9
|
+
const win_spawn_1 = require("../../../util/win-spawn");
|
|
10
10
|
function gone(error) { return error?.code === 'ESRCH'; }
|
|
11
11
|
let windowsSnapshotPending;
|
|
12
12
|
async function windowsSnapshot(fresh = false) {
|
|
@@ -9,9 +9,9 @@ exports.backgroundProcessHooks = backgroundProcessHooks;
|
|
|
9
9
|
exports.backgroundStartBusyReason = backgroundStartBusyReason;
|
|
10
10
|
exports.stopOwnedBackgroundProcess = stopOwnedBackgroundProcess;
|
|
11
11
|
const node_path_1 = __importDefault(require("node:path"));
|
|
12
|
-
const loop_runs_store_1 = require("
|
|
13
|
-
const project_repositories_1 = require("
|
|
14
|
-
const transient_children_1 = require("
|
|
12
|
+
const loop_runs_store_1 = require("../../loops/runtime/loop-runs-store");
|
|
13
|
+
const project_repositories_1 = require("../../../project-repositories");
|
|
14
|
+
const transient_children_1 = require("../../../transient-children");
|
|
15
15
|
/** The same scope and lifecycle policy applies to REST and the mission MCP. */
|
|
16
16
|
function resolveBackgroundCwd(repositoryRoot, cwd) {
|
|
17
17
|
if (cwd !== undefined && typeof cwd !== 'string')
|
|
@@ -8,7 +8,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
10
10
|
const crypto_1 = require("crypto");
|
|
11
|
-
const secure_fs_1 = require("
|
|
11
|
+
const secure_fs_1 = require("../../../util/secure-fs");
|
|
12
12
|
exports.BACKGROUND_HISTORY_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
|
|
13
13
|
exports.BACKGROUND_HISTORY_MAX_LINES = 10_000;
|
|
14
14
|
exports.BACKGROUND_HISTORY_MAX_LINE_CHARS = 4000;
|
|
@@ -11,9 +11,9 @@ const node_fs_1 = require("node:fs");
|
|
|
11
11
|
const node_os_1 = require("node:os");
|
|
12
12
|
const node_path_1 = __importDefault(require("node:path"));
|
|
13
13
|
const node_crypto_1 = require("node:crypto");
|
|
14
|
-
const path_resolver_1 = require("
|
|
15
|
-
const win_spawn_1 = require("
|
|
16
|
-
const windows_job_supervisor_1 = require("
|
|
14
|
+
const path_resolver_1 = require("../../../path-resolver");
|
|
15
|
+
const win_spawn_1 = require("../../../util/win-spawn");
|
|
16
|
+
const windows_job_supervisor_1 = require("../../../windows-job-supervisor");
|
|
17
17
|
// PowerShell startup and Add-Type compilation can exceed 15s on cold Windows
|
|
18
18
|
// ARM runners. Keep preparation bounded without admitting any application code.
|
|
19
19
|
exports.WINDOWS_JOB_PREPARATION_TIMEOUT_MS = 60_000;
|
|
@@ -14,11 +14,11 @@ exports._resetTerminalManagerForTest = _resetTerminalManagerForTest;
|
|
|
14
14
|
const fs_1 = __importDefault(require("fs"));
|
|
15
15
|
const path_1 = __importDefault(require("path"));
|
|
16
16
|
const node_pty_1 = require("node-pty");
|
|
17
|
-
const ids_1 = require("
|
|
18
|
-
const win_spawn_1 = require("
|
|
17
|
+
const ids_1 = require("../../../ids");
|
|
18
|
+
const win_spawn_1 = require("../../../util/win-spawn");
|
|
19
19
|
const terminal_osc_parser_1 = require("./terminal-osc-parser");
|
|
20
20
|
const terminal_marks_store_1 = require("./terminal-marks-store");
|
|
21
|
-
const terminal_shell_integration_1 = require("
|
|
21
|
+
const terminal_shell_integration_1 = require("../../../terminal-shell-integration");
|
|
22
22
|
exports.TERMINAL_SCROLLBACK_BYTES = 262_144;
|
|
23
23
|
exports.TERMINAL_KILL_GRACE_MS = 2_000;
|
|
24
24
|
/**
|
|
@@ -7,7 +7,7 @@ exports.compactCheckoutError = compactCheckoutError;
|
|
|
7
7
|
exports.checkoutProjectBranch = checkoutProjectBranch;
|
|
8
8
|
exports.checkoutProjectReviewBranch = checkoutProjectReviewBranch;
|
|
9
9
|
const child_process_1 = require("child_process");
|
|
10
|
-
const file_provenance_1 = require("./file-provenance");
|
|
10
|
+
const file_provenance_1 = require("./modules/code/runtime/file-provenance");
|
|
11
11
|
const integration_branch_1 = require("./integration-branch");
|
|
12
12
|
// ─── Project git info + branch switch (Agent-Mode git bar) ────────────────────
|
|
13
13
|
//
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.projectSupportsProfiles = projectSupportsProfiles;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
/** Detect whether a project's installed specrails-core version supports the
|
|
10
|
+
* profile-aware pipeline (shipped in 4.1.0). Returns false when the version
|
|
11
|
+
* file is missing or unparseable so we default to legacy (safer). */
|
|
12
|
+
function projectSupportsProfiles(projectPath) {
|
|
13
|
+
const candidates = [
|
|
14
|
+
path_1.default.join(projectPath, '.specrails', 'specrails-version'),
|
|
15
|
+
path_1.default.join(projectPath, '.specrails-version'),
|
|
16
|
+
];
|
|
17
|
+
for (const p of candidates) {
|
|
18
|
+
if (!fs_1.default.existsSync(p))
|
|
19
|
+
continue;
|
|
20
|
+
try {
|
|
21
|
+
const raw = fs_1.default.readFileSync(p, 'utf8').trim();
|
|
22
|
+
const [ma, mi, pa] = raw.split('.').map((n) => parseInt(n, 10));
|
|
23
|
+
if (isNaN(ma) || isNaN(mi) || isNaN(pa))
|
|
24
|
+
return false;
|
|
25
|
+
return ma > 4 || (ma === 4 && mi > 1) || (ma === 4 && mi === 1 && pa >= 0);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
@@ -6,57 +6,58 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.ProjectRegistry = void 0;
|
|
7
7
|
exports.emitRecoveredPrDelivery = emitRecoveredPrDelivery;
|
|
8
8
|
exports.reprojectActivePrDeliveries = reprojectActivePrDeliveries;
|
|
9
|
-
const
|
|
9
|
+
const project_profile_support_1 = require("./project-profile-support");
|
|
10
|
+
const agent_runtime_controls_router_1 = require("./modules/agent-runtime/runtime/agent-runtime-controls-router");
|
|
10
11
|
const path_1 = __importDefault(require("path"));
|
|
11
12
|
const fs_1 = __importDefault(require("fs"));
|
|
12
13
|
const os_1 = __importDefault(require("os"));
|
|
13
14
|
const db_1 = require("./db");
|
|
14
15
|
const project_repositories_1 = require("./project-repositories");
|
|
15
|
-
const multi_repo_execution_store_1 = require("./multi-repo-execution-store");
|
|
16
|
-
const queue_manager_1 = require("./queue-manager");
|
|
17
|
-
const agent_defaults_1 = require("./agent-defaults");
|
|
18
|
-
const chat_manager_1 = require("./chat-manager");
|
|
16
|
+
const multi_repo_execution_store_1 = require("./modules/delivery/runtime/multi-repo-execution-store");
|
|
17
|
+
const queue_manager_1 = require("./modules/execution/runtime/queue-manager");
|
|
18
|
+
const agent_defaults_1 = require("./modules/agents/runtime/agent-defaults");
|
|
19
|
+
const chat_manager_1 = require("./modules/conversations/runtime/chat-manager");
|
|
19
20
|
const setup_manager_1 = require("./setup-manager");
|
|
20
|
-
const proposal_manager_1 = require("./proposal-manager");
|
|
21
|
-
const agent_refine_manager_1 = require("./agent-refine-manager");
|
|
22
|
-
const file_summary_manager_1 = require("./file-summary-manager");
|
|
23
|
-
const file_summary_generator_1 = require("./file-summary-generator");
|
|
21
|
+
const proposal_manager_1 = require("./modules/specs/runtime/proposal-manager");
|
|
22
|
+
const agent_refine_manager_1 = require("./modules/agents/runtime/agent-refine-manager");
|
|
23
|
+
const file_summary_manager_1 = require("./modules/code/runtime/file-summary-manager");
|
|
24
|
+
const file_summary_generator_1 = require("./modules/code/runtime/file-summary-generator");
|
|
24
25
|
const providers_1 = require("./providers");
|
|
25
|
-
const agent_refine_db_1 = require("./agent-refine-db");
|
|
26
|
-
const spec_launcher_manager_1 = require("./spec-launcher-manager");
|
|
26
|
+
const agent_refine_db_1 = require("./modules/agents/runtime/agent-refine-db");
|
|
27
|
+
const spec_launcher_manager_1 = require("./modules/specs/runtime/spec-launcher-manager");
|
|
27
28
|
const webhook_manager_1 = require("./webhook-manager");
|
|
28
|
-
const ticket_watcher_1 = require("./ticket-watcher");
|
|
29
|
-
const terminal_manager_1 = require("./terminal-manager");
|
|
30
|
-
const browser_capture_manager_1 = require("./browser-capture-manager");
|
|
31
|
-
const browser_context_pool_1 = require("./browser-context-pool");
|
|
32
|
-
const explore_cwd_manager_1 = require("./explore-cwd-manager");
|
|
29
|
+
const ticket_watcher_1 = require("./modules/specs/runtime/ticket-watcher");
|
|
30
|
+
const terminal_manager_1 = require("./modules/terminals/runtime/terminal-manager");
|
|
31
|
+
const browser_capture_manager_1 = require("./modules/browser/runtime/browser-capture-manager");
|
|
32
|
+
const browser_context_pool_1 = require("./modules/browser/runtime/browser-context-pool");
|
|
33
|
+
const explore_cwd_manager_1 = require("./modules/conversations/runtime/explore-cwd-manager");
|
|
33
34
|
const hooks_1 = require("./hooks");
|
|
34
35
|
const transient_children_1 = require("./transient-children");
|
|
35
|
-
const telemetry_receiver_1 = require("./telemetry-receiver");
|
|
36
|
+
const telemetry_receiver_1 = require("./modules/accounting/runtime/telemetry-receiver");
|
|
36
37
|
const artifact_registry_1 = require("./artifact-registry");
|
|
37
38
|
const workspace_resolution_1 = require("./workspace-resolution");
|
|
38
39
|
const project_env_1 = require("./project-env");
|
|
39
40
|
const workspace_manager_1 = require("./workspace-manager");
|
|
40
|
-
const ticket_store_1 = require("./ticket-store");
|
|
41
|
-
const spec_addenda_1 = require("./spec-addenda");
|
|
41
|
+
const ticket_store_1 = require("./modules/specs/runtime/ticket-store");
|
|
42
|
+
const spec_addenda_1 = require("./modules/specs/runtime/spec-addenda");
|
|
42
43
|
const jira_sync_manager_1 = require("./jira/jira-sync-manager");
|
|
43
|
-
const stuck_run_detector_1 = require("./stuck-run-detector");
|
|
44
|
-
const milestone_progress_1 = require("./milestone-progress");
|
|
45
|
-
const milestone_chain_1 = require("./milestone-chain");
|
|
44
|
+
const stuck_run_detector_1 = require("./modules/execution/runtime/stuck-run-detector");
|
|
45
|
+
const milestone_progress_1 = require("./modules/builder/runtime/milestone-progress");
|
|
46
|
+
const milestone_chain_1 = require("./modules/builder/runtime/milestone-chain");
|
|
46
47
|
const internal_api_1 = require("./internal-api");
|
|
47
|
-
const blueprint_render_1 = require("./blueprint-render");
|
|
48
|
+
const blueprint_render_1 = require("./modules/builder/runtime/blueprint-render");
|
|
48
49
|
const worktree_manager_1 = require("./worktree-manager");
|
|
49
50
|
const integration_branch_1 = require("./integration-branch");
|
|
50
51
|
const db_2 = require("./db");
|
|
51
|
-
const loop_run_manager_1 = require("./loop-run-manager");
|
|
52
|
-
const loop_executors_1 = require("./loop-executors");
|
|
53
|
-
const rail_isolated_launch_1 = require("./rail-isolated-launch");
|
|
54
|
-
const rail_isolation_1 = require("./rail-isolation");
|
|
55
|
-
const rail_pr_store_1 = require("./rail-pr-store");
|
|
56
|
-
const agent_chat_registry_1 = require("./agent-chat-registry");
|
|
57
|
-
const rail_pr_ticket_effects_1 = require("./rail-pr-ticket-effects");
|
|
58
|
-
const loop_runs_store_1 = require("./loop-runs-store");
|
|
59
|
-
const rails_store_1 = require("./rails-store");
|
|
52
|
+
const loop_run_manager_1 = require("./modules/loops/runtime/loop-run-manager");
|
|
53
|
+
const loop_executors_1 = require("./modules/loops/runtime/loop-executors");
|
|
54
|
+
const rail_isolated_launch_1 = require("./modules/delivery/runtime/rail-isolated-launch");
|
|
55
|
+
const rail_isolation_1 = require("./modules/delivery/runtime/rail-isolation");
|
|
56
|
+
const rail_pr_store_1 = require("./modules/delivery/runtime/rail-pr-store");
|
|
57
|
+
const agent_chat_registry_1 = require("./modules/missions/runtime/agent-chat-registry");
|
|
58
|
+
const rail_pr_ticket_effects_1 = require("./modules/delivery/runtime/rail-pr-ticket-effects");
|
|
59
|
+
const loop_runs_store_1 = require("./modules/loops/runtime/loop-runs-store");
|
|
60
|
+
const rails_store_1 = require("./modules/delivery/runtime/rails-store");
|
|
60
61
|
const desktop_db_1 = require("./desktop-db");
|
|
61
62
|
const config_1 = require("./config");
|
|
62
63
|
const process_admission_1 = require("./process-admission");
|
|
@@ -1112,14 +1113,7 @@ class ProjectRegistry {
|
|
|
1112
1113
|
profilePathFor: (0, agent_defaults_1.createLoopProfilePathResolver)({
|
|
1113
1114
|
desktopDb: this._desktopDb,
|
|
1114
1115
|
profileRoot: () => (0, workspace_resolution_1.resolveProjectExecution)({ slug: project.slug, path: project.path }).cwd,
|
|
1115
|
-
|
|
1116
|
-
// class export — a top-level named import would throw on module eval.
|
|
1117
|
-
// The closure only runs at loop ai-step spawn time, never in tests
|
|
1118
|
-
// that stub the queue.
|
|
1119
|
-
supportsProfiles: (root) => {
|
|
1120
|
-
const { projectSupportsProfiles } = require('./queue-manager');
|
|
1121
|
-
return projectSupportsProfiles(root);
|
|
1122
|
-
},
|
|
1116
|
+
supportsProfiles: project_profile_support_1.projectSupportsProfiles,
|
|
1123
1117
|
}),
|
|
1124
1118
|
}));
|
|
1125
1119
|
const getTicketSpec = (ticketId) => {
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.registerBackgroundProcessRoutes = registerBackgroundProcessRoutes;
|
|
4
4
|
const transient_children_1 = require("./transient-children");
|
|
5
5
|
const project_repositories_1 = require("./project-repositories");
|
|
6
|
-
const background_process_service_1 = require("./background-process-service");
|
|
6
|
+
const background_process_service_1 = require("./modules/terminals/runtime/background-process-service");
|
|
7
7
|
function processQuery(req, res) {
|
|
8
8
|
const pid = Number(req.params.pid);
|
|
9
9
|
if (!Number.isSafeInteger(pid) || pid <= 0) {
|