@yjjeong/omg 0.1.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/CHANGELOG.md +85 -0
- package/LICENSE +21 -0
- package/README.md +153 -0
- package/dist/cli/args.d.ts +39 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +129 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/autoCommit.d.ts +20 -0
- package/dist/cli/autoCommit.d.ts.map +1 -0
- package/dist/cli/autoCommit.js +121 -0
- package/dist/cli/autoCommit.js.map +1 -0
- package/dist/cli/bgTasks.d.ts +57 -0
- package/dist/cli/bgTasks.d.ts.map +1 -0
- package/dist/cli/bgTasks.js +193 -0
- package/dist/cli/bgTasks.js.map +1 -0
- package/dist/cli/compactor.d.ts +48 -0
- package/dist/cli/compactor.d.ts.map +1 -0
- package/dist/cli/compactor.js +73 -0
- package/dist/cli/compactor.js.map +1 -0
- package/dist/cli/doctor.d.ts +77 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +279 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/gitStatus.d.ts +7 -0
- package/dist/cli/gitStatus.d.ts.map +1 -0
- package/dist/cli/gitStatus.js +70 -0
- package/dist/cli/gitStatus.js.map +1 -0
- package/dist/cli/handoff.d.ts +36 -0
- package/dist/cli/handoff.d.ts.map +1 -0
- package/dist/cli/handoff.js +60 -0
- package/dist/cli/handoff.js.map +1 -0
- package/dist/cli/interactive/brokers.d.ts +31 -0
- package/dist/cli/interactive/brokers.d.ts.map +1 -0
- package/dist/cli/interactive/brokers.js +259 -0
- package/dist/cli/interactive/brokers.js.map +1 -0
- package/dist/cli/interactive/index.d.ts +8 -0
- package/dist/cli/interactive/index.d.ts.map +1 -0
- package/dist/cli/interactive/index.js +731 -0
- package/dist/cli/interactive/index.js.map +1 -0
- package/dist/cli/interactive/proxyQuestions.d.ts +15 -0
- package/dist/cli/interactive/proxyQuestions.d.ts.map +1 -0
- package/dist/cli/interactive/proxyQuestions.js +48 -0
- package/dist/cli/interactive/proxyQuestions.js.map +1 -0
- package/dist/cli/interactive/tabManager.d.ts +32 -0
- package/dist/cli/interactive/tabManager.d.ts.map +1 -0
- package/dist/cli/interactive/tabManager.js +244 -0
- package/dist/cli/interactive/tabManager.js.map +1 -0
- package/dist/cli/interactive/teamHint.d.ts +2 -0
- package/dist/cli/interactive/teamHint.d.ts.map +1 -0
- package/dist/cli/interactive/teamHint.js +14 -0
- package/dist/cli/interactive/teamHint.js.map +1 -0
- package/dist/cli/login.d.ts +13 -0
- package/dist/cli/login.d.ts.map +1 -0
- package/dist/cli/login.js +53 -0
- package/dist/cli/login.js.map +1 -0
- package/dist/cli/modes/demo.d.ts +12 -0
- package/dist/cli/modes/demo.d.ts.map +1 -0
- package/dist/cli/modes/demo.js +48 -0
- package/dist/cli/modes/demo.js.map +1 -0
- package/dist/cli/modes/doctor.d.ts +28 -0
- package/dist/cli/modes/doctor.d.ts.map +1 -0
- package/dist/cli/modes/doctor.js +79 -0
- package/dist/cli/modes/doctor.js.map +1 -0
- package/dist/cli/modes/login.d.ts +5 -0
- package/dist/cli/modes/login.d.ts.map +1 -0
- package/dist/cli/modes/login.js +40 -0
- package/dist/cli/modes/login.js.map +1 -0
- package/dist/cli/modes/mcpServe.d.ts +9 -0
- package/dist/cli/modes/mcpServe.d.ts.map +1 -0
- package/dist/cli/modes/mcpServe.js +112 -0
- package/dist/cli/modes/mcpServe.js.map +1 -0
- package/dist/cli/modes/orchestrator.d.ts +14 -0
- package/dist/cli/modes/orchestrator.d.ts.map +1 -0
- package/dist/cli/modes/orchestrator.js +64 -0
- package/dist/cli/modes/orchestrator.js.map +1 -0
- package/dist/cli/modes/team.d.ts +14 -0
- package/dist/cli/modes/team.d.ts.map +1 -0
- package/dist/cli/modes/team.js +87 -0
- package/dist/cli/modes/team.js.map +1 -0
- package/dist/cli/registry.d.ts +3 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +15 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/cli/slash/core.d.ts +3 -0
- package/dist/cli/slash/core.d.ts.map +1 -0
- package/dist/cli/slash/core.js +509 -0
- package/dist/cli/slash/core.js.map +1 -0
- package/dist/cli/slash/index.d.ts +3 -0
- package/dist/cli/slash/index.d.ts.map +1 -0
- package/dist/cli/slash/index.js +28 -0
- package/dist/cli/slash/index.js.map +1 -0
- package/dist/cli/slash/modes.d.ts +3 -0
- package/dist/cli/slash/modes.d.ts.map +1 -0
- package/dist/cli/slash/modes.js +530 -0
- package/dist/cli/slash/modes.js.map +1 -0
- package/dist/cli/slash/session.d.ts +3 -0
- package/dist/cli/slash/session.d.ts.map +1 -0
- package/dist/cli/slash/session.js +376 -0
- package/dist/cli/slash/session.js.map +1 -0
- package/dist/cli/slash/shared.d.ts +43 -0
- package/dist/cli/slash/shared.d.ts.map +1 -0
- package/dist/cli/slash/shared.js +6 -0
- package/dist/cli/slash/shared.js.map +1 -0
- package/dist/cli/slash/tabs.d.ts +3 -0
- package/dist/cli/slash/tabs.d.ts.map +1 -0
- package/dist/cli/slash/tabs.js +497 -0
- package/dist/cli/slash/tabs.js.map +1 -0
- package/dist/cli/slash/team.d.ts +3 -0
- package/dist/cli/slash/team.d.ts.map +1 -0
- package/dist/cli/slash/team.js +85 -0
- package/dist/cli/slash/team.js.map +1 -0
- package/dist/cli/slash.d.ts +3 -0
- package/dist/cli/slash.d.ts.map +1 -0
- package/dist/cli/slash.js +8 -0
- package/dist/cli/slash.js.map +1 -0
- package/dist/cli/teamPipeline.d.ts +42 -0
- package/dist/cli/teamPipeline.d.ts.map +1 -0
- package/dist/cli/teamPipeline.js +406 -0
- package/dist/cli/teamPipeline.js.map +1 -0
- package/dist/cli/touchedFiles.d.ts +14 -0
- package/dist/cli/touchedFiles.d.ts.map +1 -0
- package/dist/cli/touchedFiles.js +66 -0
- package/dist/cli/touchedFiles.js.map +1 -0
- package/dist/cli/turn.d.ts +47 -0
- package/dist/cli/turn.d.ts.map +1 -0
- package/dist/cli/turn.js +626 -0
- package/dist/cli/turn.js.map +1 -0
- package/dist/cli/types.d.ts +47 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +5 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/uiSession.d.ts +10 -0
- package/dist/cli/uiSession.d.ts.map +1 -0
- package/dist/cli/uiSession.js +66 -0
- package/dist/cli/uiSession.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +128 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/adapter.d.ts +47 -0
- package/dist/core/adapter.d.ts.map +1 -0
- package/dist/core/adapter.js +48 -0
- package/dist/core/adapter.js.map +1 -0
- package/dist/core/adapters/anthropic.d.ts +35 -0
- package/dist/core/adapters/anthropic.d.ts.map +1 -0
- package/dist/core/adapters/anthropic.js +203 -0
- package/dist/core/adapters/anthropic.js.map +1 -0
- package/dist/core/adapters/claudeCli.d.ts +126 -0
- package/dist/core/adapters/claudeCli.d.ts.map +1 -0
- package/dist/core/adapters/claudeCli.js +584 -0
- package/dist/core/adapters/claudeCli.js.map +1 -0
- package/dist/core/adapters/cliAdapterBase.d.ts +48 -0
- package/dist/core/adapters/cliAdapterBase.d.ts.map +1 -0
- package/dist/core/adapters/cliAdapterBase.js +105 -0
- package/dist/core/adapters/cliAdapterBase.js.map +1 -0
- package/dist/core/adapters/cliStderr.d.ts +35 -0
- package/dist/core/adapters/cliStderr.d.ts.map +1 -0
- package/dist/core/adapters/cliStderr.js +87 -0
- package/dist/core/adapters/cliStderr.js.map +1 -0
- package/dist/core/adapters/codexCli.d.ts +113 -0
- package/dist/core/adapters/codexCli.d.ts.map +1 -0
- package/dist/core/adapters/codexCli.js +424 -0
- package/dist/core/adapters/codexCli.js.map +1 -0
- package/dist/core/adapters/gemini.d.ts +17 -0
- package/dist/core/adapters/gemini.d.ts.map +1 -0
- package/dist/core/adapters/gemini.js +133 -0
- package/dist/core/adapters/gemini.js.map +1 -0
- package/dist/core/adapters/geminiCli.d.ts +91 -0
- package/dist/core/adapters/geminiCli.d.ts.map +1 -0
- package/dist/core/adapters/geminiCli.js +276 -0
- package/dist/core/adapters/geminiCli.js.map +1 -0
- package/dist/core/adapters/nudges.d.ts +21 -0
- package/dist/core/adapters/nudges.d.ts.map +1 -0
- package/dist/core/adapters/nudges.js +75 -0
- package/dist/core/adapters/nudges.js.map +1 -0
- package/dist/core/adapters/openai.d.ts +17 -0
- package/dist/core/adapters/openai.d.ts.map +1 -0
- package/dist/core/adapters/openai.js +138 -0
- package/dist/core/adapters/openai.js.map +1 -0
- package/dist/core/adapters/parseFailures.d.ts +10 -0
- package/dist/core/adapters/parseFailures.d.ts.map +1 -0
- package/dist/core/adapters/parseFailures.js +35 -0
- package/dist/core/adapters/parseFailures.js.map +1 -0
- package/dist/core/adapters/utils.d.ts +11 -0
- package/dist/core/adapters/utils.d.ts.map +1 -0
- package/dist/core/adapters/utils.js +33 -0
- package/dist/core/adapters/utils.js.map +1 -0
- package/dist/core/askBroker.d.ts +11 -0
- package/dist/core/askBroker.d.ts.map +1 -0
- package/dist/core/askBroker.js +78 -0
- package/dist/core/askBroker.js.map +1 -0
- package/dist/core/atomicWrite.d.ts +5 -0
- package/dist/core/atomicWrite.d.ts.map +1 -0
- package/dist/core/atomicWrite.js +18 -0
- package/dist/core/atomicWrite.js.map +1 -0
- package/dist/core/brokers/askBroker.d.ts +11 -0
- package/dist/core/brokers/askBroker.d.ts.map +1 -0
- package/dist/core/brokers/askBroker.js +78 -0
- package/dist/core/brokers/askBroker.js.map +1 -0
- package/dist/core/brokers/permissionBroker.d.ts +7 -0
- package/dist/core/brokers/permissionBroker.d.ts.map +1 -0
- package/dist/core/brokers/permissionBroker.js +63 -0
- package/dist/core/brokers/permissionBroker.js.map +1 -0
- package/dist/core/brokers/socketBroker.d.ts +35 -0
- package/dist/core/brokers/socketBroker.d.ts.map +1 -0
- package/dist/core/brokers/socketBroker.js +74 -0
- package/dist/core/brokers/socketBroker.js.map +1 -0
- package/dist/core/clipboard.d.ts +4 -0
- package/dist/core/clipboard.d.ts.map +1 -0
- package/dist/core/clipboard.js +46 -0
- package/dist/core/clipboard.js.map +1 -0
- package/dist/core/compactor.d.ts +32 -0
- package/dist/core/compactor.d.ts.map +1 -0
- package/dist/core/compactor.js +91 -0
- package/dist/core/compactor.js.map +1 -0
- package/dist/core/consensusEngine.d.ts +21 -0
- package/dist/core/consensusEngine.d.ts.map +1 -0
- package/dist/core/consensusEngine.js +116 -0
- package/dist/core/consensusEngine.js.map +1 -0
- package/dist/core/context/contextCompressor.d.ts +10 -0
- package/dist/core/context/contextCompressor.d.ts.map +1 -0
- package/dist/core/context/contextCompressor.js +54 -0
- package/dist/core/context/contextCompressor.js.map +1 -0
- package/dist/core/context/contextWindows.d.ts +25 -0
- package/dist/core/context/contextWindows.d.ts.map +1 -0
- package/dist/core/context/contextWindows.js +101 -0
- package/dist/core/context/contextWindows.js.map +1 -0
- package/dist/core/context/summarizer.d.ts +65 -0
- package/dist/core/context/summarizer.d.ts.map +1 -0
- package/dist/core/context/summarizer.js +184 -0
- package/dist/core/context/summarizer.js.map +1 -0
- package/dist/core/context/usageCache.d.ts +19 -0
- package/dist/core/context/usageCache.d.ts.map +1 -0
- package/dist/core/context/usageCache.js +157 -0
- package/dist/core/context/usageCache.js.map +1 -0
- package/dist/core/context/usageWindow.d.ts +19 -0
- package/dist/core/context/usageWindow.d.ts.map +1 -0
- package/dist/core/context/usageWindow.js +73 -0
- package/dist/core/context/usageWindow.js.map +1 -0
- package/dist/core/contextCompressor.d.ts +10 -0
- package/dist/core/contextCompressor.d.ts.map +1 -0
- package/dist/core/contextCompressor.js +54 -0
- package/dist/core/contextCompressor.js.map +1 -0
- package/dist/core/contextWindows.d.ts +5 -0
- package/dist/core/contextWindows.d.ts.map +1 -0
- package/dist/core/contextWindows.js +60 -0
- package/dist/core/contextWindows.js.map +1 -0
- package/dist/core/continuum/digest.d.ts +35 -0
- package/dist/core/continuum/digest.d.ts.map +1 -0
- package/dist/core/continuum/digest.js +91 -0
- package/dist/core/continuum/digest.js.map +1 -0
- package/dist/core/continuum/index.d.ts +6 -0
- package/dist/core/continuum/index.d.ts.map +1 -0
- package/dist/core/continuum/index.js +7 -0
- package/dist/core/continuum/index.js.map +1 -0
- package/dist/core/continuum/inject.d.ts +9 -0
- package/dist/core/continuum/inject.d.ts.map +1 -0
- package/dist/core/continuum/inject.js +78 -0
- package/dist/core/continuum/inject.js.map +1 -0
- package/dist/core/continuum/projectId.d.ts +10 -0
- package/dist/core/continuum/projectId.d.ts.map +1 -0
- package/dist/core/continuum/projectId.js +60 -0
- package/dist/core/continuum/projectId.js.map +1 -0
- package/dist/core/continuum/store.d.ts +24 -0
- package/dist/core/continuum/store.d.ts.map +1 -0
- package/dist/core/continuum/store.js +144 -0
- package/dist/core/continuum/store.js.map +1 -0
- package/dist/core/continuum/types.d.ts +87 -0
- package/dist/core/continuum/types.d.ts.map +1 -0
- package/dist/core/continuum/types.js +9 -0
- package/dist/core/continuum/types.js.map +1 -0
- package/dist/core/dag.d.ts +21 -0
- package/dist/core/dag.d.ts.map +1 -0
- package/dist/core/dag.js +71 -0
- package/dist/core/dag.js.map +1 -0
- package/dist/core/director.d.ts +11 -0
- package/dist/core/director.d.ts.map +1 -0
- package/dist/core/director.js +37 -0
- package/dist/core/director.js.map +1 -0
- package/dist/core/hookedToolBroker.d.ts +25 -0
- package/dist/core/hookedToolBroker.d.ts.map +1 -0
- package/dist/core/hookedToolBroker.js +95 -0
- package/dist/core/hookedToolBroker.js.map +1 -0
- package/dist/core/langHint.d.ts +9 -0
- package/dist/core/langHint.d.ts.map +1 -0
- package/dist/core/langHint.js +33 -0
- package/dist/core/langHint.js.map +1 -0
- package/dist/core/mcp/mcpClient.d.ts +42 -0
- package/dist/core/mcp/mcpClient.d.ts.map +1 -0
- package/dist/core/mcp/mcpClient.js +134 -0
- package/dist/core/mcp/mcpClient.js.map +1 -0
- package/dist/core/mcp/mcpConfig.d.ts +58 -0
- package/dist/core/mcp/mcpConfig.d.ts.map +1 -0
- package/dist/core/mcp/mcpConfig.js +148 -0
- package/dist/core/mcp/mcpConfig.js.map +1 -0
- package/dist/core/mcp/mcpManager.d.ts +31 -0
- package/dist/core/mcp/mcpManager.d.ts.map +1 -0
- package/dist/core/mcp/mcpManager.js +83 -0
- package/dist/core/mcp/mcpManager.js.map +1 -0
- package/dist/core/mcpClient.d.ts +42 -0
- package/dist/core/mcpClient.d.ts.map +1 -0
- package/dist/core/mcpClient.js +134 -0
- package/dist/core/mcpClient.js.map +1 -0
- package/dist/core/mcpConfig.d.ts +24 -0
- package/dist/core/mcpConfig.d.ts.map +1 -0
- package/dist/core/mcpConfig.js +74 -0
- package/dist/core/mcpConfig.js.map +1 -0
- package/dist/core/mcpManager.d.ts +31 -0
- package/dist/core/mcpManager.d.ts.map +1 -0
- package/dist/core/mcpManager.js +83 -0
- package/dist/core/mcpManager.js.map +1 -0
- package/dist/core/memory.d.ts +22 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +102 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/omgToolManifest.d.ts +34 -0
- package/dist/core/omgToolManifest.d.ts.map +1 -0
- package/dist/core/omgToolManifest.js +59 -0
- package/dist/core/omgToolManifest.js.map +1 -0
- package/dist/core/orchestration/consensusEngine.d.ts +21 -0
- package/dist/core/orchestration/consensusEngine.d.ts.map +1 -0
- package/dist/core/orchestration/consensusEngine.js +116 -0
- package/dist/core/orchestration/consensusEngine.js.map +1 -0
- package/dist/core/orchestration/dag.d.ts +21 -0
- package/dist/core/orchestration/dag.d.ts.map +1 -0
- package/dist/core/orchestration/dag.js +71 -0
- package/dist/core/orchestration/dag.js.map +1 -0
- package/dist/core/orchestration/director.d.ts +11 -0
- package/dist/core/orchestration/director.d.ts.map +1 -0
- package/dist/core/orchestration/director.js +37 -0
- package/dist/core/orchestration/director.js.map +1 -0
- package/dist/core/orchestration/orchestrator.d.ts +32 -0
- package/dist/core/orchestration/orchestrator.d.ts.map +1 -0
- package/dist/core/orchestration/orchestrator.js +214 -0
- package/dist/core/orchestration/orchestrator.js.map +1 -0
- package/dist/core/orchestration/roleRouter.d.ts +28 -0
- package/dist/core/orchestration/roleRouter.d.ts.map +1 -0
- package/dist/core/orchestration/roleRouter.js +64 -0
- package/dist/core/orchestration/roleRouter.js.map +1 -0
- package/dist/core/orchestration/teamRunner.d.ts +69 -0
- package/dist/core/orchestration/teamRunner.d.ts.map +1 -0
- package/dist/core/orchestration/teamRunner.js +477 -0
- package/dist/core/orchestration/teamRunner.js.map +1 -0
- package/dist/core/orchestration/types.d.ts +115 -0
- package/dist/core/orchestration/types.d.ts.map +1 -0
- package/dist/core/orchestration/types.js +71 -0
- package/dist/core/orchestration/types.js.map +1 -0
- package/dist/core/orchestrator.d.ts +32 -0
- package/dist/core/orchestrator.d.ts.map +1 -0
- package/dist/core/orchestrator.js +214 -0
- package/dist/core/orchestrator.js.map +1 -0
- package/dist/core/permissionBroker.d.ts +7 -0
- package/dist/core/permissionBroker.d.ts.map +1 -0
- package/dist/core/permissionBroker.js +63 -0
- package/dist/core/permissionBroker.js.map +1 -0
- package/dist/core/planConfig.d.ts +15 -0
- package/dist/core/planConfig.d.ts.map +1 -0
- package/dist/core/planConfig.js +98 -0
- package/dist/core/planConfig.js.map +1 -0
- package/dist/core/presetPersistence.d.ts +4 -0
- package/dist/core/presetPersistence.d.ts.map +1 -0
- package/dist/core/presetPersistence.js +64 -0
- package/dist/core/presetPersistence.js.map +1 -0
- package/dist/core/roleRouter.d.ts +26 -0
- package/dist/core/roleRouter.d.ts.map +1 -0
- package/dist/core/roleRouter.js +62 -0
- package/dist/core/roleRouter.js.map +1 -0
- package/dist/core/sessionList.d.ts +26 -0
- package/dist/core/sessionList.d.ts.map +1 -0
- package/dist/core/sessionList.js +278 -0
- package/dist/core/sessionList.js.map +1 -0
- package/dist/core/slugify.d.ts +2 -0
- package/dist/core/slugify.d.ts.map +1 -0
- package/dist/core/slugify.js +17 -0
- package/dist/core/slugify.js.map +1 -0
- package/dist/core/socketBroker.d.ts +19 -0
- package/dist/core/socketBroker.d.ts.map +1 -0
- package/dist/core/socketBroker.js +48 -0
- package/dist/core/socketBroker.js.map +1 -0
- package/dist/core/state/agentsMdScaffold.d.ts +15 -0
- package/dist/core/state/agentsMdScaffold.d.ts.map +1 -0
- package/dist/core/state/agentsMdScaffold.js +118 -0
- package/dist/core/state/agentsMdScaffold.js.map +1 -0
- package/dist/core/state/atomicWrite.d.ts +5 -0
- package/dist/core/state/atomicWrite.d.ts.map +1 -0
- package/dist/core/state/atomicWrite.js +18 -0
- package/dist/core/state/atomicWrite.js.map +1 -0
- package/dist/core/state/handoff.d.ts +20 -0
- package/dist/core/state/handoff.d.ts.map +1 -0
- package/dist/core/state/handoff.js +71 -0
- package/dist/core/state/handoff.js.map +1 -0
- package/dist/core/state/mcpCatalog.d.ts +11 -0
- package/dist/core/state/mcpCatalog.d.ts.map +1 -0
- package/dist/core/state/mcpCatalog.js +51 -0
- package/dist/core/state/mcpCatalog.js.map +1 -0
- package/dist/core/state/mcpRecommendations.d.ts +7 -0
- package/dist/core/state/mcpRecommendations.d.ts.map +1 -0
- package/dist/core/state/mcpRecommendations.js +57 -0
- package/dist/core/state/mcpRecommendations.js.map +1 -0
- package/dist/core/state/memory.d.ts +22 -0
- package/dist/core/state/memory.d.ts.map +1 -0
- package/dist/core/state/memory.js +102 -0
- package/dist/core/state/memory.js.map +1 -0
- package/dist/core/state/planConfig.d.ts +15 -0
- package/dist/core/state/planConfig.d.ts.map +1 -0
- package/dist/core/state/planConfig.js +98 -0
- package/dist/core/state/planConfig.js.map +1 -0
- package/dist/core/state/presetPersistence.d.ts +4 -0
- package/dist/core/state/presetPersistence.d.ts.map +1 -0
- package/dist/core/state/presetPersistence.js +67 -0
- package/dist/core/state/presetPersistence.js.map +1 -0
- package/dist/core/state/sessionList.d.ts +26 -0
- package/dist/core/state/sessionList.d.ts.map +1 -0
- package/dist/core/state/sessionList.js +278 -0
- package/dist/core/state/sessionList.js.map +1 -0
- package/dist/core/state/stackDetect.d.ts +8 -0
- package/dist/core/state/stackDetect.d.ts.map +1 -0
- package/dist/core/state/stackDetect.js +40 -0
- package/dist/core/state/stackDetect.js.map +1 -0
- package/dist/core/state/tabPersistence.d.ts +29 -0
- package/dist/core/state/tabPersistence.d.ts.map +1 -0
- package/dist/core/state/tabPersistence.js +65 -0
- package/dist/core/state/tabPersistence.js.map +1 -0
- package/dist/core/tabPersistence.d.ts +29 -0
- package/dist/core/tabPersistence.d.ts.map +1 -0
- package/dist/core/tabPersistence.js +65 -0
- package/dist/core/tabPersistence.js.map +1 -0
- package/dist/core/teamRunner.d.ts +42 -0
- package/dist/core/teamRunner.d.ts.map +1 -0
- package/dist/core/teamRunner.js +248 -0
- package/dist/core/teamRunner.js.map +1 -0
- package/dist/core/toolGate.d.ts +23 -0
- package/dist/core/toolGate.d.ts.map +1 -0
- package/dist/core/toolGate.js +51 -0
- package/dist/core/toolGate.js.map +1 -0
- package/dist/core/toolInterceptor.d.ts +7 -0
- package/dist/core/toolInterceptor.d.ts.map +1 -0
- package/dist/core/toolInterceptor.js +108 -0
- package/dist/core/toolInterceptor.js.map +1 -0
- package/dist/core/tools/hookedToolBroker.d.ts +25 -0
- package/dist/core/tools/hookedToolBroker.d.ts.map +1 -0
- package/dist/core/tools/hookedToolBroker.js +95 -0
- package/dist/core/tools/hookedToolBroker.js.map +1 -0
- package/dist/core/tools/omgToolManifest.d.ts +42 -0
- package/dist/core/tools/omgToolManifest.d.ts.map +1 -0
- package/dist/core/tools/omgToolManifest.js +66 -0
- package/dist/core/tools/omgToolManifest.js.map +1 -0
- package/dist/core/tools/toolGate.d.ts +23 -0
- package/dist/core/tools/toolGate.d.ts.map +1 -0
- package/dist/core/tools/toolGate.js +51 -0
- package/dist/core/tools/toolGate.js.map +1 -0
- package/dist/core/tools/toolInterceptor.d.ts +7 -0
- package/dist/core/tools/toolInterceptor.d.ts.map +1 -0
- package/dist/core/tools/toolInterceptor.js +108 -0
- package/dist/core/tools/toolInterceptor.js.map +1 -0
- package/dist/core/tools/tools.d.ts +34 -0
- package/dist/core/tools/tools.d.ts.map +1 -0
- package/dist/core/tools/tools.js +328 -0
- package/dist/core/tools/tools.js.map +1 -0
- package/dist/core/tools.d.ts +34 -0
- package/dist/core/tools.d.ts.map +1 -0
- package/dist/core/tools.js +300 -0
- package/dist/core/tools.js.map +1 -0
- package/dist/core/types.d.ts +107 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +55 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/usageCache.d.ts +19 -0
- package/dist/core/usageCache.d.ts.map +1 -0
- package/dist/core/usageCache.js +157 -0
- package/dist/core/usageCache.js.map +1 -0
- package/dist/core/usageWindow.d.ts +19 -0
- package/dist/core/usageWindow.d.ts.map +1 -0
- package/dist/core/usageWindow.js +73 -0
- package/dist/core/usageWindow.js.map +1 -0
- package/dist/core/util/bgProtocol.d.ts +5 -0
- package/dist/core/util/bgProtocol.d.ts.map +1 -0
- package/dist/core/util/bgProtocol.js +20 -0
- package/dist/core/util/bgProtocol.js.map +1 -0
- package/dist/core/util/clipboard.d.ts +4 -0
- package/dist/core/util/clipboard.d.ts.map +1 -0
- package/dist/core/util/clipboard.js +46 -0
- package/dist/core/util/clipboard.js.map +1 -0
- package/dist/core/util/clipboardImage.d.ts +3 -0
- package/dist/core/util/clipboardImage.d.ts.map +1 -0
- package/dist/core/util/clipboardImage.js +58 -0
- package/dist/core/util/clipboardImage.js.map +1 -0
- package/dist/core/util/langHint.d.ts +9 -0
- package/dist/core/util/langHint.d.ts.map +1 -0
- package/dist/core/util/langHint.js +33 -0
- package/dist/core/util/langHint.js.map +1 -0
- package/dist/core/util/slugify.d.ts +2 -0
- package/dist/core/util/slugify.d.ts.map +1 -0
- package/dist/core/util/slugify.js +28 -0
- package/dist/core/util/slugify.js.map +1 -0
- package/dist/hooks/hookedToolProxy.mjs +118 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/ipc/dispatcher.d.ts +21 -0
- package/dist/ipc/dispatcher.d.ts.map +1 -0
- package/dist/ipc/dispatcher.js +160 -0
- package/dist/ipc/dispatcher.js.map +1 -0
- package/dist/ipc/events.d.ts +33 -0
- package/dist/ipc/events.d.ts.map +1 -0
- package/dist/ipc/events.js +42 -0
- package/dist/ipc/events.js.map +1 -0
- package/dist/ipc/rpc.d.ts +31 -0
- package/dist/ipc/rpc.d.ts.map +1 -0
- package/dist/ipc/rpc.js +110 -0
- package/dist/ipc/rpc.js.map +1 -0
- package/dist/ipc/stdio.d.ts +11 -0
- package/dist/ipc/stdio.d.ts.map +1 -0
- package/dist/ipc/stdio.js +52 -0
- package/dist/ipc/stdio.js.map +1 -0
- package/dist/mcp/askClient.d.ts +9 -0
- package/dist/mcp/askClient.d.ts.map +1 -0
- package/dist/mcp/askClient.js +70 -0
- package/dist/mcp/askClient.js.map +1 -0
- package/dist/mcp/constants.d.ts +6 -0
- package/dist/mcp/constants.d.ts.map +1 -0
- package/dist/mcp/constants.js +8 -0
- package/dist/mcp/constants.js.map +1 -0
- package/dist/mcp/permissionClient.d.ts +5 -0
- package/dist/mcp/permissionClient.d.ts.map +1 -0
- package/dist/mcp/permissionClient.js +71 -0
- package/dist/mcp/permissionClient.js.map +1 -0
- package/dist/mcp/schemas.d.ts +9 -0
- package/dist/mcp/schemas.d.ts.map +1 -0
- package/dist/mcp/schemas.js +121 -0
- package/dist/mcp/schemas.js.map +1 -0
- package/dist/mcp/server.d.ts +41 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +204 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/policy/loader.d.ts +27 -0
- package/dist/policy/loader.d.ts.map +1 -0
- package/dist/policy/loader.js +89 -0
- package/dist/policy/loader.js.map +1 -0
- package/dist/policy/team-claude-only.yaml +46 -0
- package/dist/policy/team-codex-only.yaml +46 -0
- package/dist/policy/team-codex.yaml +54 -0
- package/dist/policy/team.yaml +104 -0
- package/dist/toolhook/hookedToolProxy.mjs +118 -0
- package/dist/ui/components/App.d.ts +14 -0
- package/dist/ui/components/App.d.ts.map +1 -0
- package/dist/ui/components/App.js +803 -0
- package/dist/ui/components/App.js.map +1 -0
- package/dist/ui/components/AskPicker.d.ts +8 -0
- package/dist/ui/components/AskPicker.d.ts.map +1 -0
- package/dist/ui/components/AskPicker.js +202 -0
- package/dist/ui/components/AskPicker.js.map +1 -0
- package/dist/ui/components/CommandInput.d.ts +63 -0
- package/dist/ui/components/CommandInput.d.ts.map +1 -0
- package/dist/ui/components/CommandInput.js +994 -0
- package/dist/ui/components/CommandInput.js.map +1 -0
- package/dist/ui/components/DiffView.d.ts +19 -0
- package/dist/ui/components/DiffView.d.ts.map +1 -0
- package/dist/ui/components/DiffView.js +93 -0
- package/dist/ui/components/DiffView.js.map +1 -0
- package/dist/ui/components/Dock.d.ts +49 -0
- package/dist/ui/components/Dock.d.ts.map +1 -0
- package/dist/ui/components/Dock.js +52 -0
- package/dist/ui/components/Dock.js.map +1 -0
- package/dist/ui/components/EventLog.d.ts +42 -0
- package/dist/ui/components/EventLog.d.ts.map +1 -0
- package/dist/ui/components/EventLog.js +450 -0
- package/dist/ui/components/EventLog.js.map +1 -0
- package/dist/ui/components/FileSuggest.d.ts +8 -0
- package/dist/ui/components/FileSuggest.d.ts.map +1 -0
- package/dist/ui/components/FileSuggest.js +19 -0
- package/dist/ui/components/FileSuggest.js.map +1 -0
- package/dist/ui/components/HRule.d.ts +27 -0
- package/dist/ui/components/HRule.d.ts.map +1 -0
- package/dist/ui/components/HRule.js +75 -0
- package/dist/ui/components/HRule.js.map +1 -0
- package/dist/ui/components/HintBar.d.ts +2 -0
- package/dist/ui/components/HintBar.d.ts.map +1 -0
- package/dist/ui/components/HintBar.js +19 -0
- package/dist/ui/components/HintBar.js.map +1 -0
- package/dist/ui/components/MarkdownText.d.ts +13 -0
- package/dist/ui/components/MarkdownText.d.ts.map +1 -0
- package/dist/ui/components/MarkdownText.js +255 -0
- package/dist/ui/components/MarkdownText.js.map +1 -0
- package/dist/ui/components/PermissionPrompt.d.ts +8 -0
- package/dist/ui/components/PermissionPrompt.d.ts.map +1 -0
- package/dist/ui/components/PermissionPrompt.js +37 -0
- package/dist/ui/components/PermissionPrompt.js.map +1 -0
- package/dist/ui/components/SessionPicker.d.ts +16 -0
- package/dist/ui/components/SessionPicker.d.ts.map +1 -0
- package/dist/ui/components/SessionPicker.js +116 -0
- package/dist/ui/components/SessionPicker.js.map +1 -0
- package/dist/ui/components/SlashPalette.d.ts +8 -0
- package/dist/ui/components/SlashPalette.d.ts.map +1 -0
- package/dist/ui/components/SlashPalette.js +41 -0
- package/dist/ui/components/SlashPalette.js.map +1 -0
- package/dist/ui/components/Spinner.d.ts +37 -0
- package/dist/ui/components/Spinner.d.ts.map +1 -0
- package/dist/ui/components/Spinner.js +139 -0
- package/dist/ui/components/Spinner.js.map +1 -0
- package/dist/ui/components/StatusBar.d.ts +92 -0
- package/dist/ui/components/StatusBar.d.ts.map +1 -0
- package/dist/ui/components/StatusBar.js +268 -0
- package/dist/ui/components/StatusBar.js.map +1 -0
- package/dist/ui/components/TabChip.d.ts +11 -0
- package/dist/ui/components/TabChip.d.ts.map +1 -0
- package/dist/ui/components/TabChip.js +23 -0
- package/dist/ui/components/TabChip.js.map +1 -0
- package/dist/ui/components/TeamIndicator.d.ts +6 -0
- package/dist/ui/components/TeamIndicator.d.ts.map +1 -0
- package/dist/ui/components/TeamIndicator.js +17 -0
- package/dist/ui/components/TeamIndicator.js.map +1 -0
- package/dist/ui/components/TeamStatusPanel.d.ts +14 -0
- package/dist/ui/components/TeamStatusPanel.d.ts.map +1 -0
- package/dist/ui/components/TeamStatusPanel.js +65 -0
- package/dist/ui/components/TeamStatusPanel.js.map +1 -0
- package/dist/ui/components/ThinkingBlock.d.ts +10 -0
- package/dist/ui/components/ThinkingBlock.d.ts.map +1 -0
- package/dist/ui/components/ThinkingBlock.js +21 -0
- package/dist/ui/components/ThinkingBlock.js.map +1 -0
- package/dist/ui/components/TodoIndicator.d.ts +11 -0
- package/dist/ui/components/TodoIndicator.d.ts.map +1 -0
- package/dist/ui/components/TodoIndicator.js +37 -0
- package/dist/ui/components/TodoIndicator.js.map +1 -0
- package/dist/ui/components/ToolCallCard.d.ts +16 -0
- package/dist/ui/components/ToolCallCard.d.ts.map +1 -0
- package/dist/ui/components/ToolCallCard.js +195 -0
- package/dist/ui/components/ToolCallCard.js.map +1 -0
- package/dist/ui/components/Welcome.d.ts +8 -0
- package/dist/ui/components/Welcome.d.ts.map +1 -0
- package/dist/ui/components/Welcome.js +53 -0
- package/dist/ui/components/Welcome.js.map +1 -0
- package/dist/ui/cursorState.d.ts +29 -0
- package/dist/ui/cursorState.d.ts.map +1 -0
- package/dist/ui/cursorState.js +49 -0
- package/dist/ui/cursorState.js.map +1 -0
- package/dist/ui/diff.d.ts +34 -0
- package/dist/ui/diff.d.ts.map +1 -0
- package/dist/ui/diff.js +184 -0
- package/dist/ui/diff.js.map +1 -0
- package/dist/ui/diffLang.d.ts +2 -0
- package/dist/ui/diffLang.d.ts.map +1 -0
- package/dist/ui/diffLang.js +36 -0
- package/dist/ui/diffLang.js.map +1 -0
- package/dist/ui/emoji.d.ts +4 -0
- package/dist/ui/emoji.d.ts.map +1 -0
- package/dist/ui/emoji.js +73 -0
- package/dist/ui/emoji.js.map +1 -0
- package/dist/ui/fileMentions.d.ts +41 -0
- package/dist/ui/fileMentions.d.ts.map +1 -0
- package/dist/ui/fileMentions.js +135 -0
- package/dist/ui/fileMentions.js.map +1 -0
- package/dist/ui/hooks/useLineEditor.d.ts +44 -0
- package/dist/ui/hooks/useLineEditor.d.ts.map +1 -0
- package/dist/ui/hooks/useLineEditor.js +142 -0
- package/dist/ui/hooks/useLineEditor.js.map +1 -0
- package/dist/ui/inputHistory.d.ts +8 -0
- package/dist/ui/inputHistory.d.ts.map +1 -0
- package/dist/ui/inputHistory.js +56 -0
- package/dist/ui/inputHistory.js.map +1 -0
- package/dist/ui/jsonrpc.d.ts +17 -0
- package/dist/ui/jsonrpc.d.ts.map +1 -0
- package/dist/ui/jsonrpc.js +41 -0
- package/dist/ui/jsonrpc.js.map +1 -0
- package/dist/ui/launcher.d.ts +20 -0
- package/dist/ui/launcher.d.ts.map +1 -0
- package/dist/ui/launcher.js +185 -0
- package/dist/ui/launcher.js.map +1 -0
- package/dist/ui/markdown.d.ts +104 -0
- package/dist/ui/markdown.d.ts.map +1 -0
- package/dist/ui/markdown.js +449 -0
- package/dist/ui/markdown.js.map +1 -0
- package/dist/ui/mouse.d.ts +22 -0
- package/dist/ui/mouse.d.ts.map +1 -0
- package/dist/ui/mouse.js +31 -0
- package/dist/ui/mouse.js.map +1 -0
- package/dist/ui/outbound.d.ts +20 -0
- package/dist/ui/outbound.d.ts.map +1 -0
- package/dist/ui/outbound.js +49 -0
- package/dist/ui/outbound.js.map +1 -0
- package/dist/ui/screenMode.d.ts +25 -0
- package/dist/ui/screenMode.d.ts.map +1 -0
- package/dist/ui/screenMode.js +43 -0
- package/dist/ui/screenMode.js.map +1 -0
- package/dist/ui/slashCatalog.d.ts +18 -0
- package/dist/ui/slashCatalog.d.ts.map +1 -0
- package/dist/ui/slashCatalog.js +243 -0
- package/dist/ui/slashCatalog.js.map +1 -0
- package/dist/ui/syntax.d.ts +11 -0
- package/dist/ui/syntax.d.ts.map +1 -0
- package/dist/ui/syntax.js +78 -0
- package/dist/ui/syntax.js.map +1 -0
- package/dist/ui/theme.d.ts +165 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +394 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/ui/types.d.ts +203 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +53 -0
- package/dist/ui/types.js.map +1 -0
- package/package.json +104 -0
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
// TeamRunner — multi-role orchestration (implementer → reviewers → director).
|
|
2
|
+
// Mirror of legacy/omg/core/team_runner.py (phase 8 + 8.5 + 14).
|
|
3
|
+
import { ContextCompressor } from "../context/contextCompressor.js";
|
|
4
|
+
import { Director } from "./director.js";
|
|
5
|
+
import { DirectorEscalateStrategy, } from "./consensusEngine.js";
|
|
6
|
+
import { interceptToolCalls } from "../tools/toolInterceptor.js";
|
|
7
|
+
import { EventDispatcher } from "../../ipc/dispatcher.js";
|
|
8
|
+
import { METHOD_TEXT, roleStatusEvent, verdictEvent, } from "../../ipc/events.js";
|
|
9
|
+
// Phase 296/303: hard cap on a single role's turn. A provider whose
|
|
10
|
+
// stream never emits stream_end (a hung codex/claude child, a model
|
|
11
|
+
// stuck in a reasoning loop) would otherwise block the role's await —
|
|
12
|
+
// and, for the parallel reviewer Promise.all, the whole team run —
|
|
13
|
+
// forever (observed: a security lane "running…" at 42m while the others
|
|
14
|
+
// finished). The cap cancels/abandons that role's stream and lets the
|
|
15
|
+
// lane return with whatever it captured (usually empty → escalate).
|
|
16
|
+
//
|
|
17
|
+
// Phase 303 → 339: split the cap by role CLASS. The cap is a HANG backstop,
|
|
18
|
+
// not a work budget — it must never cut off a role doing legitimate long
|
|
19
|
+
// work. Phase 339 raised both defaults sharply after implementer turns were
|
|
20
|
+
// being cancelled mid-build: a single run_shell build can now run up to 30
|
|
21
|
+
// min (Phase 333/W3), and an implementer turn may chain a build + edits +
|
|
22
|
+
// tests, so the build cap must comfortably exceed one build. Reviewers can
|
|
23
|
+
// also run a build/test to verify, so their cap rose too. Env overrides:
|
|
24
|
+
// OMG_TEAM_REVIEW_TIMEOUT_MS reviewer-class roles (default 900000 = 15m)
|
|
25
|
+
// OMG_TEAM_BUILD_TIMEOUT_MS implementer/planner/etc (default 3600000 = 60m)
|
|
26
|
+
// OMG_TEAM_ROLE_TIMEOUT_MS legacy global override — applies to BOTH
|
|
27
|
+
const DEFAULT_REVIEW_TIMEOUT_MS = 900_000; // 15 min
|
|
28
|
+
const DEFAULT_BUILD_TIMEOUT_MS = 3_600_000; // 60 min
|
|
29
|
+
function envTimeout(name) {
|
|
30
|
+
const n = Number(process.env[name]);
|
|
31
|
+
return Number.isFinite(n) && n > 0 ? n : undefined;
|
|
32
|
+
}
|
|
33
|
+
export class TeamRunner {
|
|
34
|
+
router;
|
|
35
|
+
writer;
|
|
36
|
+
adapterFor;
|
|
37
|
+
opts;
|
|
38
|
+
compressor;
|
|
39
|
+
// Phase 303: resolved per-class timeouts + the reviewer-role set,
|
|
40
|
+
// set per runTeam() invocation.
|
|
41
|
+
reviewTimeoutMs = DEFAULT_REVIEW_TIMEOUT_MS;
|
|
42
|
+
buildTimeoutMs = DEFAULT_BUILD_TIMEOUT_MS;
|
|
43
|
+
reviewerRoleSet = new Set();
|
|
44
|
+
constructor(router, writer, adapterFor, opts = {}) {
|
|
45
|
+
this.router = router;
|
|
46
|
+
this.writer = writer;
|
|
47
|
+
this.adapterFor = adapterFor;
|
|
48
|
+
this.opts = opts;
|
|
49
|
+
this.compressor = new ContextCompressor(router);
|
|
50
|
+
}
|
|
51
|
+
async runTeam(prompt, opts = {}) {
|
|
52
|
+
const implementerRole = opts.implementerRole ?? "implementer";
|
|
53
|
+
const reviewerRoles = opts.reviewerRoles ?? ["reviewer"];
|
|
54
|
+
const maxIterations = opts.maxIterations ?? 3;
|
|
55
|
+
if (reviewerRoles.length === 0) {
|
|
56
|
+
throw new Error("reviewerRoles must contain at least one role");
|
|
57
|
+
}
|
|
58
|
+
const strategy = opts.strategy ?? new DirectorEscalateStrategy();
|
|
59
|
+
const director = new Director(strategy);
|
|
60
|
+
// Phase 303: resolve per-class timeouts. A legacy global override
|
|
61
|
+
// (roleTimeoutMs / OMG_TEAM_ROLE_TIMEOUT_MS), when set, wins for both
|
|
62
|
+
// classes; otherwise reviewers and the build roles resolve
|
|
63
|
+
// independently. The reviewer-role set drives which cap each turn
|
|
64
|
+
// gets in captureTurnInto.
|
|
65
|
+
const globalOverride = typeof opts.roleTimeoutMs === "number" && opts.roleTimeoutMs > 0
|
|
66
|
+
? opts.roleTimeoutMs
|
|
67
|
+
: envTimeout("OMG_TEAM_ROLE_TIMEOUT_MS");
|
|
68
|
+
this.reviewTimeoutMs =
|
|
69
|
+
globalOverride ??
|
|
70
|
+
opts.reviewerTimeoutMs ??
|
|
71
|
+
envTimeout("OMG_TEAM_REVIEW_TIMEOUT_MS") ??
|
|
72
|
+
DEFAULT_REVIEW_TIMEOUT_MS;
|
|
73
|
+
this.buildTimeoutMs =
|
|
74
|
+
globalOverride ??
|
|
75
|
+
opts.buildTimeoutMs ??
|
|
76
|
+
envTimeout("OMG_TEAM_BUILD_TIMEOUT_MS") ??
|
|
77
|
+
DEFAULT_BUILD_TIMEOUT_MS;
|
|
78
|
+
this.reviewerRoleSet = new Set(reviewerRoles);
|
|
79
|
+
// Phase 149: bail between role turns when the caller cancels.
|
|
80
|
+
const abortIfCancelled = () => {
|
|
81
|
+
if (opts.signal?.aborted)
|
|
82
|
+
throw new Error("team run cancelled");
|
|
83
|
+
};
|
|
84
|
+
// Phase 288: checkpoint steering. Director notes typed mid-run are
|
|
85
|
+
// drained at each role boundary and accumulated here, then folded
|
|
86
|
+
// into the implementer's context as a self-describing director_note
|
|
87
|
+
// bundle on every subsequent iteration. This is omg's team-native
|
|
88
|
+
// answer to "steering": it lands at the next bundle boundary (never
|
|
89
|
+
// mid-stream), stays provider-symmetric (no stdin injection), and
|
|
90
|
+
// the existing review/consensus loop still adjudicates the result.
|
|
91
|
+
const steeringNotes = [];
|
|
92
|
+
const collectSteering = async () => {
|
|
93
|
+
const fresh = opts.drainSteering?.() ?? [];
|
|
94
|
+
if (fresh.length === 0)
|
|
95
|
+
return;
|
|
96
|
+
steeringNotes.push(...fresh);
|
|
97
|
+
await this.banner(`◆ steering · ${fresh.length} note(s) folded into implementer\n`);
|
|
98
|
+
};
|
|
99
|
+
const steeringBundle = () => steeringNotes.length === 0
|
|
100
|
+
? null
|
|
101
|
+
: {
|
|
102
|
+
kind: "director_note",
|
|
103
|
+
source: "steering.txt",
|
|
104
|
+
body: "The director sent these mid-run steering notes. Treat them " +
|
|
105
|
+
"as updated instructions and address them this iteration:\n" +
|
|
106
|
+
steeringNotes.map((n, i) => `(${i + 1}) ${n}`).join("\n"),
|
|
107
|
+
};
|
|
108
|
+
// Phase 102: optional planning pass. The planner role decomposes
|
|
109
|
+
// the task into a numbered plan, which becomes a Bundle handed to
|
|
110
|
+
// the implementer on every iteration — so the implementer works
|
|
111
|
+
// from an explicit plan rather than the raw prompt alone.
|
|
112
|
+
let planBundle = null;
|
|
113
|
+
if (opts.plannerRole) {
|
|
114
|
+
abortIfCancelled();
|
|
115
|
+
await collectSteering();
|
|
116
|
+
await this.banner(`◆ planning · ${opts.plannerRole}\n`);
|
|
117
|
+
const planPrompt = "Break the following task into a short numbered plan " +
|
|
118
|
+
"(steps, files to touch, risks). Keep it tight — this guides " +
|
|
119
|
+
"the implementer, it is not the implementation.\n\n" +
|
|
120
|
+
`Task:\n${prompt}`;
|
|
121
|
+
await this.emitRole(opts.plannerRole, "running");
|
|
122
|
+
const plannerStart = Date.now();
|
|
123
|
+
const planText = await this.captureTurn(opts.plannerRole, planPrompt);
|
|
124
|
+
await this.emitRole(opts.plannerRole, "done", Date.now() - plannerStart);
|
|
125
|
+
planBundle = {
|
|
126
|
+
kind: "plan",
|
|
127
|
+
source: `${opts.plannerRole}-plan.txt`,
|
|
128
|
+
body: planText,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
let workingPrompt = prompt;
|
|
132
|
+
let lastOutcome = null;
|
|
133
|
+
for (let iteration = 0; iteration < maxIterations; iteration++) {
|
|
134
|
+
abortIfCancelled();
|
|
135
|
+
await collectSteering();
|
|
136
|
+
await this.banner(`◆ iteration ${iteration + 1}/${maxIterations} · implementer\n`);
|
|
137
|
+
// Phase 102: hand the plan (if any) to the implementer as a
|
|
138
|
+
// bundle so it's compressed/packed alongside the prompt.
|
|
139
|
+
// Phase 288: append the accumulated director_note bundle (if any)
|
|
140
|
+
// so mid-run steering rides the same compressed context channel.
|
|
141
|
+
const implBundles = [planBundle, steeringBundle()].filter((b) => b !== null);
|
|
142
|
+
await this.emitRole(implementerRole, "running");
|
|
143
|
+
const implStart = Date.now();
|
|
144
|
+
const implText = await this.captureTurn(implementerRole, workingPrompt, implBundles);
|
|
145
|
+
await this.emitRole(implementerRole, "done", Date.now() - implStart);
|
|
146
|
+
const reviewBundle = {
|
|
147
|
+
kind: "impl_output",
|
|
148
|
+
source: `impl-iter-${iteration + 1}.txt`,
|
|
149
|
+
body: implText,
|
|
150
|
+
};
|
|
151
|
+
const reviewPrompt = "Review the following implementation. Reply with one of " +
|
|
152
|
+
"APPROVE, REJECT, REQUEST_REWORK, or ESCALATE as the first word, " +
|
|
153
|
+
"followed by your reasoning.";
|
|
154
|
+
// Parallel reviewer execution. Each lane's events are buffered
|
|
155
|
+
// into its own bucket so stdout/UI doesn't interleave. After all
|
|
156
|
+
// reviewers complete, buffers flush in declared role order.
|
|
157
|
+
abortIfCancelled();
|
|
158
|
+
const buckets = reviewerRoles.map(() => []);
|
|
159
|
+
const tasks = reviewerRoles.map((role, i) => (async () => {
|
|
160
|
+
// Phase 142: role_status goes to the LIVE writer so each
|
|
161
|
+
// parallel reviewer's running/done shows individually, even
|
|
162
|
+
// though its text output stays buffered until all finish.
|
|
163
|
+
await this.emitRole(role, "running");
|
|
164
|
+
const start = Date.now();
|
|
165
|
+
// Phase 297: each lane catches its own failure. Without this a
|
|
166
|
+
// single reviewer that THREW (provider crash, SIGTERM teardown
|
|
167
|
+
// on cancel, a 429) rejected the whole Promise.all — discarding
|
|
168
|
+
// the implementer turn AND the other healthy reviewers, and
|
|
169
|
+
// orphaning their sibling promises (unhandled rejection on
|
|
170
|
+
// cancel). A failed lane now resolves to empty text → the
|
|
171
|
+
// existing "no verdict → escalate" diagnostic — so one bad lane
|
|
172
|
+
// degrades to an escalate vote instead of sinking the run.
|
|
173
|
+
try {
|
|
174
|
+
const text = await this.captureTurnInto(role, reviewPrompt, [reviewBundle], async (msg) => {
|
|
175
|
+
buckets[i].push(msg);
|
|
176
|
+
});
|
|
177
|
+
await this.emitRole(role, "done", Date.now() - start);
|
|
178
|
+
return text;
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
await this.emitRole(role, "error", Date.now() - start);
|
|
182
|
+
buckets[i].push({
|
|
183
|
+
jsonrpc: "2.0",
|
|
184
|
+
method: METHOD_TEXT,
|
|
185
|
+
params: {
|
|
186
|
+
text: ` [${role}] lane errored: ${err instanceof Error ? err.message : String(err)}\n`,
|
|
187
|
+
},
|
|
188
|
+
});
|
|
189
|
+
return "";
|
|
190
|
+
}
|
|
191
|
+
})());
|
|
192
|
+
// Tasks never reject now (each catches internally), so Promise.all
|
|
193
|
+
// resolves with one entry per lane regardless of individual failure.
|
|
194
|
+
const reviewTextResults = await Promise.all(tasks);
|
|
195
|
+
const lanes = [];
|
|
196
|
+
const reviewTexts = [];
|
|
197
|
+
for (let i = 0; i < reviewerRoles.length; i++) {
|
|
198
|
+
const role = reviewerRoles[i];
|
|
199
|
+
const reviewText = reviewTextResults[i];
|
|
200
|
+
await this.banner(`◆ iteration ${iteration + 1} · ${role}\n`);
|
|
201
|
+
for (const msg of buckets[i]) {
|
|
202
|
+
await this.writer(msg);
|
|
203
|
+
}
|
|
204
|
+
// Phase 223 → 233 (hotfix): when reviewer's text comes back
|
|
205
|
+
// empty, surface a diagnostic line so the user knows WHY the
|
|
206
|
+
// verdict defaulted instead of accepting "escalate" out of
|
|
207
|
+
// thin air. Phase 233 adds the role's adapter info + first
|
|
208
|
+
// emitted event (if any) so the cause is easier to pin —
|
|
209
|
+
// e.g. "codex-cli emitted 0 events; check `codex login`" vs.
|
|
210
|
+
// "codex-cli emitted reasoning only; ask it to include the
|
|
211
|
+
// verdict word in the agent_message".
|
|
212
|
+
if (!reviewText.trim()) {
|
|
213
|
+
const llm = this.router.llmFor(role);
|
|
214
|
+
const events = buckets[i].length;
|
|
215
|
+
const kinds = new Set(buckets[i].map((m) => m.method));
|
|
216
|
+
const hadOnlyEnd = events <= 1 && kinds.has("event/end");
|
|
217
|
+
// Phase 293: point at omg's own login entry. The bare
|
|
218
|
+
// `<provider> login` hint was wrong for claude (its command is
|
|
219
|
+
// `claude auth login`, not `claude login`) and gemini (no
|
|
220
|
+
// login subcommand). `omg login <p>` / `/login <p>` resolve to
|
|
221
|
+
// each CLI's real auth command.
|
|
222
|
+
const short = llm.provider.replace("-cli", "");
|
|
223
|
+
const detail = hadOnlyEnd
|
|
224
|
+
? `${llm.provider}/${llm.model} returned no body. If the auth expired, run \`omg login ${short}\` (or \`/login ${short}\` in the TUI), or run \`OMG_VERBOSE_STDERR=1 omg\` to see the host CLI's stderr.`
|
|
225
|
+
: `${llm.provider}/${llm.model} emitted ${events} event(s) but no APPROVE/REJECT/REQUEST_REWORK/ESCALATE word.`;
|
|
226
|
+
await this.writer({
|
|
227
|
+
jsonrpc: "2.0",
|
|
228
|
+
method: "event/text",
|
|
229
|
+
params: {
|
|
230
|
+
text: ` [${role}] no verdict found — defaulting to escalate. ${detail}\n`,
|
|
231
|
+
},
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
lanes.push({
|
|
235
|
+
lane: role,
|
|
236
|
+
verdict: parseVerdictFromText(reviewText),
|
|
237
|
+
reason: reviewText,
|
|
238
|
+
});
|
|
239
|
+
reviewTexts.push([role, reviewText]);
|
|
240
|
+
}
|
|
241
|
+
const outcome = director.adjudicate(lanes);
|
|
242
|
+
lastOutcome = outcome;
|
|
243
|
+
await this.emitVerdict(iteration + 1, outcome);
|
|
244
|
+
// Escalate is terminal — a human is needed, looping won't help.
|
|
245
|
+
if (outcome.final === "escalate") {
|
|
246
|
+
return outcome;
|
|
247
|
+
}
|
|
248
|
+
// Phase 347: an APPROVE normally ends the run. With a completion gate,
|
|
249
|
+
// first confirm the ORIGINAL request is fully done — reviewers approve
|
|
250
|
+
// the latest increment, which on a multi-part task can be only a slice.
|
|
251
|
+
// If incomplete, fall through to another iteration with the remaining
|
|
252
|
+
// work as the prompt (bounded by maxIterations).
|
|
253
|
+
if (outcome.final === "approve") {
|
|
254
|
+
if (!opts.completionRole)
|
|
255
|
+
return outcome;
|
|
256
|
+
let completionText;
|
|
257
|
+
try {
|
|
258
|
+
abortIfCancelled();
|
|
259
|
+
await this.banner(`◆ iteration ${iteration + 1} · ${opts.completionRole} (completion check)\n`);
|
|
260
|
+
await this.emitRole(opts.completionRole, "running");
|
|
261
|
+
const cStart = Date.now();
|
|
262
|
+
completionText = await this.captureTurn(opts.completionRole, "The implementation below was reviewed and APPROVED. Judge whether " +
|
|
263
|
+
"the ORIGINAL task is now FULLY complete. Reply with COMPLETE or " +
|
|
264
|
+
"INCOMPLETE as the first word. If INCOMPLETE, list the specific " +
|
|
265
|
+
"remaining work as a short numbered list.\n\n" +
|
|
266
|
+
`Original task:\n${prompt}`, [
|
|
267
|
+
{
|
|
268
|
+
kind: "impl_output",
|
|
269
|
+
source: `impl-iter-${iteration + 1}.txt`,
|
|
270
|
+
body: implText,
|
|
271
|
+
},
|
|
272
|
+
]);
|
|
273
|
+
await this.emitRole(opts.completionRole, "done", Date.now() - cStart);
|
|
274
|
+
}
|
|
275
|
+
catch (err) {
|
|
276
|
+
// Fail-safe: a broken/unknown completion role must never sink an
|
|
277
|
+
// otherwise-approved run. Accept the approve and finish.
|
|
278
|
+
await this.banner(`◆ completion check unavailable (${err instanceof Error ? err.message : String(err)}) — accepting approve\n`);
|
|
279
|
+
return outcome;
|
|
280
|
+
}
|
|
281
|
+
if (parseCompletion(completionText) === "complete") {
|
|
282
|
+
return outcome;
|
|
283
|
+
}
|
|
284
|
+
await this.banner(`◆ completion: INCOMPLETE — continuing with remaining work\n`);
|
|
285
|
+
workingPrompt =
|
|
286
|
+
`Original task:\n${prompt}\n\n` +
|
|
287
|
+
`The work so far was approved but the task is NOT fully complete. ` +
|
|
288
|
+
`Remaining work (from ${opts.completionRole}):\n${completionText}\n\n` +
|
|
289
|
+
`Continue from the existing work and finish what remains.`;
|
|
290
|
+
continue;
|
|
291
|
+
}
|
|
292
|
+
const feedbackBlock = reviewTexts
|
|
293
|
+
.map(([role, text]) => ` [${role}]: ${text}`)
|
|
294
|
+
.join("\n");
|
|
295
|
+
workingPrompt =
|
|
296
|
+
`Original task:\n${prompt}\n\n` +
|
|
297
|
+
`Reviewer feedback (iteration ${iteration + 1}):\n${feedbackBlock}\n\n` +
|
|
298
|
+
`Address the feedback above and try again.`;
|
|
299
|
+
}
|
|
300
|
+
// Phase 347: distinguish the two exhaustion causes. If the last round
|
|
301
|
+
// was APPROVED, the cap was hit because the completion gate kept finding
|
|
302
|
+
// the original request unfinished — not because review never passed.
|
|
303
|
+
const exhaustedIncomplete = lastOutcome?.final === "approve";
|
|
304
|
+
const final = {
|
|
305
|
+
final: "escalate",
|
|
306
|
+
strategy: strategy.name,
|
|
307
|
+
lanes: lastOutcome !== null ? lastOutcome.lanes : [],
|
|
308
|
+
rationale: exhaustedIncomplete
|
|
309
|
+
? `approved each round but completion gate still reported INCOMPLETE after max_iterations=${maxIterations} (safety cap)`
|
|
310
|
+
: `max_iterations=${maxIterations} exhausted without APPROVE`,
|
|
311
|
+
};
|
|
312
|
+
await this.emitVerdict(maxIterations, final);
|
|
313
|
+
return final;
|
|
314
|
+
}
|
|
315
|
+
async captureTurn(role, prompt, bundles = []) {
|
|
316
|
+
return this.captureTurnInto(role, prompt, bundles, (m) => this.writer(m));
|
|
317
|
+
}
|
|
318
|
+
// Phase 16-prep: variant that lets the caller substitute the live
|
|
319
|
+
// writer with a buffer. Parallel reviewer execution uses this to
|
|
320
|
+
// capture each lane's events without interleaving on stdout.
|
|
321
|
+
async captureTurnInto(role, prompt, bundles, sink) {
|
|
322
|
+
const packed = this.compressor.pack(bundles, role);
|
|
323
|
+
const fullPrompt = packed.text ? `${packed.text}\n\n${prompt}` : prompt;
|
|
324
|
+
const adapter = this.adapterFor(role);
|
|
325
|
+
const captured = [];
|
|
326
|
+
// Phase 223 (hotfix): also fold `event/thinking` into the captured
|
|
327
|
+
// text. Some providers (codex-cli's `reasoning` items, claude's
|
|
328
|
+
// extended-thinking chunks) emit the reviewer's actual verdict
|
|
329
|
+
// rationale as a thinking chunk rather than an `agent_message`.
|
|
330
|
+
// Pre-Phase-223, captured stayed empty in that case →
|
|
331
|
+
// `parseVerdictFromText("")` defaulted to "escalate" without the
|
|
332
|
+
// user seeing why. Including thinking text lets parseVerdict find
|
|
333
|
+
// the verdict word and gives non-empty review text to surface.
|
|
334
|
+
const tee = async (msg) => {
|
|
335
|
+
await sink(msg);
|
|
336
|
+
if (msg.method === METHOD_TEXT || msg.method === "event/thinking") {
|
|
337
|
+
const t = msg.params.text;
|
|
338
|
+
if (typeof t === "string")
|
|
339
|
+
captured.push(t);
|
|
340
|
+
}
|
|
341
|
+
};
|
|
342
|
+
let stream = adapter.stream(fullPrompt);
|
|
343
|
+
if (this.opts.toolRegistry !== undefined) {
|
|
344
|
+
stream = interceptToolCalls(stream, this.opts.toolRegistry, {
|
|
345
|
+
gate: this.opts.toolGate,
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
// Phase 296/297: cap the turn. Phase 296 relied on adapter.cancel()
|
|
349
|
+
// (SIGTERM), but the API adapters (anthropic/gemini/openai) have no
|
|
350
|
+
// cancel() — so a hung API stream stayed hung. Phase 297 RACES the
|
|
351
|
+
// dispatcher against the timer instead: on expiry we still cancel()
|
|
352
|
+
// the adapter (SIGTERMs a CLI child) AND stop awaiting, so even an
|
|
353
|
+
// uncancellable stream can't block the (parallel) run. The dispatcher
|
|
354
|
+
// promise never rejects (it captures its own error), so an abandoned
|
|
355
|
+
// timed-out run can't surface an unhandledRejection. We keep whatever
|
|
356
|
+
// text was captured; empty falls through to "no verdict → escalate".
|
|
357
|
+
// Phase 303: reviewers get the short cap, build roles the long one.
|
|
358
|
+
const timeoutMs = this.reviewerRoleSet.has(role)
|
|
359
|
+
? this.reviewTimeoutMs
|
|
360
|
+
: this.buildTimeoutMs;
|
|
361
|
+
let timedOut = false;
|
|
362
|
+
let settled = false;
|
|
363
|
+
let timer;
|
|
364
|
+
const run = new EventDispatcher(tee)
|
|
365
|
+
.run(stream)
|
|
366
|
+
.then(() => {
|
|
367
|
+
settled = true;
|
|
368
|
+
return "ok";
|
|
369
|
+
}, (err) => {
|
|
370
|
+
settled = true;
|
|
371
|
+
return { err };
|
|
372
|
+
});
|
|
373
|
+
const timeout = new Promise((resolve) => {
|
|
374
|
+
timer = setTimeout(() => {
|
|
375
|
+
// `settled` guard: if the run already finished, don't cancel —
|
|
376
|
+
// the adapter is cached + reused across iterations, so a late
|
|
377
|
+
// SIGTERM could otherwise kill the NEXT turn's child.
|
|
378
|
+
if (!settled) {
|
|
379
|
+
timedOut = true;
|
|
380
|
+
adapter.cancel?.();
|
|
381
|
+
}
|
|
382
|
+
resolve("timeout");
|
|
383
|
+
}, timeoutMs);
|
|
384
|
+
timer.unref?.();
|
|
385
|
+
});
|
|
386
|
+
const result = await Promise.race([run, timeout]);
|
|
387
|
+
if (timer)
|
|
388
|
+
clearTimeout(timer);
|
|
389
|
+
if (result !== "timeout" &&
|
|
390
|
+
typeof result === "object" &&
|
|
391
|
+
"err" in result &&
|
|
392
|
+
!timedOut) {
|
|
393
|
+
// The run finished with a real error (not a timeout teardown).
|
|
394
|
+
throw result.err;
|
|
395
|
+
}
|
|
396
|
+
if (timedOut) {
|
|
397
|
+
await sink({
|
|
398
|
+
jsonrpc: "2.0",
|
|
399
|
+
method: METHOD_TEXT,
|
|
400
|
+
params: {
|
|
401
|
+
text: ` [${role}] timed out after ${Math.round(timeoutMs / 1000)}s — cancelled. (raise OMG_TEAM_REVIEW_TIMEOUT_MS / OMG_TEAM_BUILD_TIMEOUT_MS if this was a legit long turn)\n`,
|
|
402
|
+
},
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
return captured.join("");
|
|
406
|
+
}
|
|
407
|
+
async banner(text) {
|
|
408
|
+
await this.writer({
|
|
409
|
+
jsonrpc: "2.0",
|
|
410
|
+
method: METHOD_TEXT,
|
|
411
|
+
params: { text },
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
// Phase 142: announce a role's lifecycle on the live writer.
|
|
415
|
+
async emitRole(role, status, elapsedMs) {
|
|
416
|
+
// Phase 173: tag the event with the role's provider/model from
|
|
417
|
+
// team.yaml so the status panel shows which engine ran each role.
|
|
418
|
+
const llm = this.router.llmFor(role);
|
|
419
|
+
await this.writer(roleStatusEvent({
|
|
420
|
+
role,
|
|
421
|
+
status,
|
|
422
|
+
elapsedMs,
|
|
423
|
+
provider: llm.provider,
|
|
424
|
+
model: llm.model,
|
|
425
|
+
}));
|
|
426
|
+
}
|
|
427
|
+
async emitVerdict(iteration, outcome) {
|
|
428
|
+
await this.writer(verdictEvent({
|
|
429
|
+
iteration,
|
|
430
|
+
verdict: outcome.final,
|
|
431
|
+
strategy: outcome.strategy,
|
|
432
|
+
rationale: outcome.rationale,
|
|
433
|
+
}));
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
// Reviewers are told to lead with one of APPROVE / REJECT /
|
|
437
|
+
// REQUEST_REWORK / ESCALATE. We match those as WHOLE WORDS and take the
|
|
438
|
+
// EARLIEST one by position, so the stated verdict wins and an incidental
|
|
439
|
+
// mention can't flip it. Phase 145: the old substring scan read "REJECT"
|
|
440
|
+
// inside the URL "/orders/rejected" and turned every APPROVE into a
|
|
441
|
+
// reject — three wasted iterations, then escalate.
|
|
442
|
+
export function parseVerdictFromText(text) {
|
|
443
|
+
const upper = text.toUpperCase();
|
|
444
|
+
const patterns = [
|
|
445
|
+
[/\bREQUEST[_ ]?REWORK\b/, "request_rework"],
|
|
446
|
+
[/\bREWORK\b/, "request_rework"],
|
|
447
|
+
[/\bREJECT\b/, "reject"],
|
|
448
|
+
[/\bESCALATE\b/, "escalate"],
|
|
449
|
+
[/\bAPPROVE\b/, "approve"],
|
|
450
|
+
];
|
|
451
|
+
let best = null;
|
|
452
|
+
for (const [re, verdict] of patterns) {
|
|
453
|
+
const m = re.exec(upper);
|
|
454
|
+
if (m && (best === null || m.index < best.idx)) {
|
|
455
|
+
best = { idx: m.index, verdict };
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
return best?.verdict ?? "escalate";
|
|
459
|
+
}
|
|
460
|
+
// Phase 347: parse the completion gate's verdict. The role is told to lead
|
|
461
|
+
// with COMPLETE or INCOMPLETE. Matched as whole words, earliest-wins so
|
|
462
|
+
// "INCOMPLETE" is never misread as "COMPLETE" (different start positions,
|
|
463
|
+
// and the \b before COMPLETE fails inside "inCOMPLETE"). Fail-safe default
|
|
464
|
+
// is "complete": with no clear word we accept the prior APPROVE rather than
|
|
465
|
+
// loop to the safety cap on garbled output. Only an explicit INCOMPLETE
|
|
466
|
+
// extends the run.
|
|
467
|
+
export function parseCompletion(text) {
|
|
468
|
+
const upper = text.toUpperCase();
|
|
469
|
+
const inc = /\bINCOMPLETE\b/.exec(upper);
|
|
470
|
+
const com = /\bCOMPLETE\b/.exec(upper);
|
|
471
|
+
if (inc && (com === null || inc.index <= com.index))
|
|
472
|
+
return "incomplete";
|
|
473
|
+
if (com)
|
|
474
|
+
return "complete";
|
|
475
|
+
return "complete";
|
|
476
|
+
}
|
|
477
|
+
//# sourceMappingURL=teamRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teamRunner.js","sourceRoot":"","sources":["../../../src/core/orchestration/teamRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
export type Verdict = "approve" | "reject" | "request_rework" | "escalate";
|
|
2
|
+
export declare const VERDICTS: readonly Verdict[];
|
|
3
|
+
export interface LaneVerdict {
|
|
4
|
+
readonly lane: string;
|
|
5
|
+
readonly verdict: Verdict;
|
|
6
|
+
readonly reason: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ConsensusOutcome {
|
|
9
|
+
readonly final: Verdict;
|
|
10
|
+
readonly strategy: string;
|
|
11
|
+
readonly lanes: readonly LaneVerdict[];
|
|
12
|
+
readonly rationale: string;
|
|
13
|
+
}
|
|
14
|
+
export interface Bundle {
|
|
15
|
+
readonly kind: string;
|
|
16
|
+
readonly source: string;
|
|
17
|
+
readonly body: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function bundleByteSize(b: Bundle): number;
|
|
20
|
+
export type Chunk = TextChunk | ThinkingChunk | ToolUseStart | ToolUseProgress | ToolUseEnd | StreamEnd | UsageChunk | RateLimitChunk;
|
|
21
|
+
export interface TextChunk {
|
|
22
|
+
readonly type: "text";
|
|
23
|
+
readonly text: string;
|
|
24
|
+
}
|
|
25
|
+
export interface ThinkingChunk {
|
|
26
|
+
readonly type: "thinking";
|
|
27
|
+
readonly text: string;
|
|
28
|
+
}
|
|
29
|
+
export interface ToolUseStart {
|
|
30
|
+
readonly type: "tool_use_start";
|
|
31
|
+
readonly toolId: string;
|
|
32
|
+
readonly toolName: string;
|
|
33
|
+
readonly toolInput: Record<string, unknown>;
|
|
34
|
+
}
|
|
35
|
+
export interface ToolUseProgress {
|
|
36
|
+
readonly type: "tool_use_progress";
|
|
37
|
+
readonly toolId: string;
|
|
38
|
+
readonly text: string;
|
|
39
|
+
}
|
|
40
|
+
export interface ToolUseEnd {
|
|
41
|
+
readonly type: "tool_use_end";
|
|
42
|
+
readonly toolId: string;
|
|
43
|
+
readonly result: unknown;
|
|
44
|
+
}
|
|
45
|
+
export interface StreamEnd {
|
|
46
|
+
readonly type: "stream_end";
|
|
47
|
+
readonly stopReason: string;
|
|
48
|
+
}
|
|
49
|
+
export interface UsageChunk {
|
|
50
|
+
readonly type: "usage";
|
|
51
|
+
readonly tokensIn: number;
|
|
52
|
+
readonly tokensOut: number;
|
|
53
|
+
readonly cacheReadTokens?: number;
|
|
54
|
+
readonly freshTokens?: number;
|
|
55
|
+
}
|
|
56
|
+
export interface RateLimitChunk {
|
|
57
|
+
readonly type: "rate_limit";
|
|
58
|
+
readonly resetsAt: number;
|
|
59
|
+
readonly kind: "five_hour" | "weekly" | "session" | "unknown";
|
|
60
|
+
readonly status?: string;
|
|
61
|
+
}
|
|
62
|
+
export declare const text: (s: string) => TextChunk;
|
|
63
|
+
export declare const thinking: (s: string) => ThinkingChunk;
|
|
64
|
+
export declare const toolUseStart: (toolId: string, toolName: string, toolInput?: Record<string, unknown>) => ToolUseStart;
|
|
65
|
+
export declare const toolUseEnd: (toolId: string, result?: unknown) => ToolUseEnd;
|
|
66
|
+
export declare const streamEnd: (stopReason?: string) => StreamEnd;
|
|
67
|
+
export declare const usage: (tokensIn: number, tokensOut: number, cacheReadTokens?: number, freshTokens?: number) => UsageChunk;
|
|
68
|
+
export declare const rateLimit: (resetsAt: number, kind: RateLimitChunk["kind"], status?: string) => RateLimitChunk;
|
|
69
|
+
export interface PackResult {
|
|
70
|
+
readonly role: string;
|
|
71
|
+
readonly budget: number;
|
|
72
|
+
readonly text: string;
|
|
73
|
+
readonly included: readonly Bundle[];
|
|
74
|
+
readonly elided: readonly Bundle[];
|
|
75
|
+
readonly used: number;
|
|
76
|
+
readonly overBudget: boolean;
|
|
77
|
+
}
|
|
78
|
+
export type LoopReason = "no_tools" | "max_steps_exhausted" | "no_tool_registry";
|
|
79
|
+
export interface LoopResult {
|
|
80
|
+
readonly finalText: string;
|
|
81
|
+
readonly steps: number;
|
|
82
|
+
readonly reason: LoopReason;
|
|
83
|
+
readonly pack: PackResult;
|
|
84
|
+
}
|
|
85
|
+
export interface ToolCallRequest {
|
|
86
|
+
readonly toolId: string;
|
|
87
|
+
readonly toolName: string;
|
|
88
|
+
readonly toolInput: Record<string, unknown>;
|
|
89
|
+
}
|
|
90
|
+
export type ConversationMessage = {
|
|
91
|
+
role: "user";
|
|
92
|
+
text: string;
|
|
93
|
+
attachments?: readonly string[];
|
|
94
|
+
} | {
|
|
95
|
+
role: "assistant";
|
|
96
|
+
text: string;
|
|
97
|
+
toolCalls: readonly ToolCallRequest[];
|
|
98
|
+
} | {
|
|
99
|
+
role: "tool_result";
|
|
100
|
+
toolId: string;
|
|
101
|
+
toolName: string;
|
|
102
|
+
result: unknown;
|
|
103
|
+
};
|
|
104
|
+
export interface Conversation {
|
|
105
|
+
readonly system?: string;
|
|
106
|
+
readonly messages: readonly ConversationMessage[];
|
|
107
|
+
}
|
|
108
|
+
export type AdapterInput = string | Conversation;
|
|
109
|
+
export declare function flattenConversation(conv: Conversation): string;
|
|
110
|
+
/** Phase 340: image attachments on the LAST user message of an adapter input
|
|
111
|
+
* (the turn being sent). Empty for a bare string input or when none were
|
|
112
|
+
* attached. Adapters read this to deliver images out-of-band (codex `-i`,
|
|
113
|
+
* claude Read reference) since flattenConversation only keeps text. */
|
|
114
|
+
export declare function lastUserAttachments(input: AdapterInput): readonly string[];
|
|
115
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/orchestration/types.ts"],"names":[],"mappings":"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"}
|