@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,47 @@
|
|
|
1
|
+
import type { Provider } from "../core/orchestration/orchestrator.js";
|
|
2
|
+
import type { LLMAdapter } from "../core/adapter.js";
|
|
3
|
+
import type { ToolCallRequest } from "../core/orchestration/types.js";
|
|
4
|
+
import type { JsonRpcNotification } from "../ipc/events.js";
|
|
5
|
+
export type ConversationMsg = {
|
|
6
|
+
role: "user";
|
|
7
|
+
text: string;
|
|
8
|
+
attachments?: readonly string[];
|
|
9
|
+
} | {
|
|
10
|
+
role: "assistant";
|
|
11
|
+
text: string;
|
|
12
|
+
toolCalls: ToolCallRequest[];
|
|
13
|
+
};
|
|
14
|
+
export interface Tab {
|
|
15
|
+
name: string;
|
|
16
|
+
provider: Provider;
|
|
17
|
+
model: string;
|
|
18
|
+
adapter: LLMAdapter;
|
|
19
|
+
messages: ConversationMsg[];
|
|
20
|
+
events: JsonRpcNotification[];
|
|
21
|
+
sessionId: string | undefined;
|
|
22
|
+
tokensIn: number;
|
|
23
|
+
tokensOut: number;
|
|
24
|
+
toolCalls: number;
|
|
25
|
+
prevTokensIn?: number;
|
|
26
|
+
cacheReadTokens?: number;
|
|
27
|
+
freshTokens?: number;
|
|
28
|
+
lastRateLimitStatus?: string;
|
|
29
|
+
inFlight: boolean;
|
|
30
|
+
inFlightSince?: number;
|
|
31
|
+
queued?: string[];
|
|
32
|
+
cancel?: () => void;
|
|
33
|
+
hasUnreadCompletion: boolean;
|
|
34
|
+
autoNamed: boolean;
|
|
35
|
+
cwd: string;
|
|
36
|
+
continuumId?: string;
|
|
37
|
+
pendingContinuumInjection?: string;
|
|
38
|
+
autoCommit?: boolean;
|
|
39
|
+
touchedFiles?: Set<string>;
|
|
40
|
+
teamPhase?: string;
|
|
41
|
+
teamRoles?: import("./teamPipeline.js").RoleStateRow[];
|
|
42
|
+
teamInFlight?: boolean;
|
|
43
|
+
asking?: number;
|
|
44
|
+
pendingAsks?: JsonRpcNotification[];
|
|
45
|
+
predictCancel?: () => void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,MAAM,eAAe,GAEvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC;AAMtE,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAKlB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAOrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAK7B,QAAQ,EAAE,OAAO,CAAC;IAKlB,aAAa,CAAC,EAAE,MAAM,CAAC;IAIvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAIlB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAMpB,mBAAmB,EAAE,OAAO,CAAC;IAM7B,SAAS,EAAE,OAAO,CAAC;IAInB,GAAG,EAAE,MAAM,CAAC;IAKZ,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAMnC,UAAU,CAAC,EAAE,OAAO,CAAC;IAMrB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAM3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,mBAAmB,EAAE,YAAY,EAAE,CAAC;IAOvD,YAAY,CAAC,EAAE,OAAO,CAAC;IAOvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAMpC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,uEAAuE;AACvE,kBAAkB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JsonRpcClient } from "../ipc/rpc.js";
|
|
2
|
+
import { type JsonRpcNotification } from "../ipc/events.js";
|
|
3
|
+
export interface UiSession {
|
|
4
|
+
pushEvent: (msg: JsonRpcNotification) => Promise<void>;
|
|
5
|
+
rpcClient: JsonRpcClient | null;
|
|
6
|
+
quitPromise: Promise<void>;
|
|
7
|
+
cleanup: () => Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export declare function openUiSession(needsRpc: boolean): Promise<UiSession>;
|
|
10
|
+
//# sourceMappingURL=uiSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiSession.d.ts","sourceRoot":"","sources":["../../src/cli/uiSession.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CA6DzE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// omg — in-process Ink UI session, extracted from cli.ts (pure move).
|
|
2
|
+
// Bridges the Ink launcher's outbound channel into an async iterable so
|
|
3
|
+
// a JsonRpcClient can consume tool-gate responses, and surfaces a
|
|
4
|
+
// user/quit promise the run-modes race against.
|
|
5
|
+
import { JsonRpcClient } from "../ipc/rpc.js";
|
|
6
|
+
export async function openUiSession(needsRpc) {
|
|
7
|
+
const { launchInk } = await import("../ui/launcher.js");
|
|
8
|
+
const session = launchInk();
|
|
9
|
+
// Bridge outbound (UI → orchestrator) into an async iterable so the
|
|
10
|
+
// JsonRpcClient can consume responses; also surface user/quit.
|
|
11
|
+
let resolveQuit = null;
|
|
12
|
+
const quitPromise = new Promise((resolve) => {
|
|
13
|
+
resolveQuit = resolve;
|
|
14
|
+
});
|
|
15
|
+
const inbound = [];
|
|
16
|
+
const inboundWaiters = [];
|
|
17
|
+
const pushInbound = (msg) => {
|
|
18
|
+
const w = inboundWaiters.shift();
|
|
19
|
+
if (w)
|
|
20
|
+
w(msg);
|
|
21
|
+
else
|
|
22
|
+
inbound.push(msg);
|
|
23
|
+
};
|
|
24
|
+
session.onOutbound((msg) => {
|
|
25
|
+
if (msg.method === "user/quit") {
|
|
26
|
+
if (resolveQuit) {
|
|
27
|
+
resolveQuit();
|
|
28
|
+
resolveQuit = null;
|
|
29
|
+
}
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
pushInbound(msg);
|
|
33
|
+
});
|
|
34
|
+
let rpcClient = null;
|
|
35
|
+
if (needsRpc) {
|
|
36
|
+
const inboundIter = (async function* () {
|
|
37
|
+
while (true) {
|
|
38
|
+
const next = inbound.length > 0
|
|
39
|
+
? inbound.shift()
|
|
40
|
+
: await new Promise((resolve) => {
|
|
41
|
+
inboundWaiters.push(resolve);
|
|
42
|
+
});
|
|
43
|
+
if (next === null)
|
|
44
|
+
return;
|
|
45
|
+
yield next;
|
|
46
|
+
}
|
|
47
|
+
})();
|
|
48
|
+
rpcClient = new JsonRpcClient(async () => {
|
|
49
|
+
// No-op: requests are pushed via pushEvent below since the UI's
|
|
50
|
+
// inbound channel is shared between events and requests.
|
|
51
|
+
}, inboundIter);
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
pushEvent: async (msg) => session.push(msg),
|
|
55
|
+
rpcClient,
|
|
56
|
+
quitPromise,
|
|
57
|
+
cleanup: async () => {
|
|
58
|
+
pushInbound(null);
|
|
59
|
+
if (rpcClient !== null)
|
|
60
|
+
await rpcClient.stop();
|
|
61
|
+
session.close();
|
|
62
|
+
await session.waitUntilExit();
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=uiSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiSession.js","sourceRoot":"","sources":["../../src/cli/uiSession.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,wEAAwE;AACxE,kEAAkE;AAClE,gDAAgD;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAW9C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAiB;IACnD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAE5B,oEAAoE;IACpE,+DAA+D;IAC/D,IAAI,WAAW,GAAwB,IAAI,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAChD,WAAW,GAAG,OAAO,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAA0C,EAAE,CAAC;IAC1D,MAAM,cAAc,GAAuD,EAAE,CAAC;IAC9E,MAAM,WAAW,GAAG,CAAC,GAAmC,EAAQ,EAAE;QAChE,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC;YAAE,CAAC,CAAC,GAAG,CAAC,CAAC;;YACT,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,IAAK,GAA2B,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACxD,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YACD,OAAO;QACT,CAAC;QACD,WAAW,CAAC,GAAyC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,GAAyB,IAAI,CAAC;IAC3C,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,CAAC,KAAK,SAAS,CAAC;YAClC,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,IAAI,GACR,OAAO,CAAC,MAAM,GAAG,CAAC;oBAChB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAG;oBAClB,CAAC,CAAC,MAAM,IAAI,OAAO,CAAiC,CAAC,OAAO,EAAE,EAAE;wBAC5D,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC/B,CAAC,CAAC,CAAC;gBACT,IAAI,IAAI,KAAK,IAAI;oBAAE,OAAO;gBAC1B,MAAM,IAAI,CAAC;YACb,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,SAAS,GAAG,IAAI,aAAa,CAAC,KAAK,IAAI,EAAE;YACvC,gEAAgE;YAChE,yDAAyD;QAC3D,CAAC,EAAE,WAAW,CAAC,CAAC;IAClB,CAAC;IAED,OAAO;QACL,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAgC,CAAC;QACxE,SAAS;QACT,WAAW;QACX,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,SAAS,KAAK,IAAI;gBAAE,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;YAC/C,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// omg CLI — thin shell. Argument parsing lives in ./cli/args.ts; each
|
|
3
|
+
// scripting run-mode (mcp-serve / demo / orchestrator / team) lives under
|
|
4
|
+
// ./cli/modes/; the interactive Ink REPL lives in ./cli/interactive/.
|
|
5
|
+
// This file only wires argv → run-mode dispatch.
|
|
6
|
+
import { setPlanCapResolver } from "./core/context/usageWindow.js";
|
|
7
|
+
import { planCapResolved } from "./core/state/planConfig.js";
|
|
8
|
+
import { parseArgs } from "./cli/args.js";
|
|
9
|
+
import { runMcpServe } from "./cli/modes/mcpServe.js";
|
|
10
|
+
import { runDemoHeadless, runDemoUi } from "./cli/modes/demo.js";
|
|
11
|
+
import { runOrchestrator } from "./cli/modes/orchestrator.js";
|
|
12
|
+
import { runTeam } from "./cli/modes/team.js";
|
|
13
|
+
import { runLoginCli } from "./cli/modes/login.js";
|
|
14
|
+
import { runDoctorCli } from "./cli/modes/doctor.js";
|
|
15
|
+
import { runInteractive } from "./cli/interactive/index.js";
|
|
16
|
+
async function main(argv) {
|
|
17
|
+
// Phase 82: bind the plan-cap resolver before anything reads it.
|
|
18
|
+
// planCapFor → planCapResolved (env > ~/.omg/plan.json > undefined).
|
|
19
|
+
setPlanCapResolver(planCapResolved);
|
|
20
|
+
const { opts, toolsEnabled, writable, shell, adapterOpts } = parseArgs(argv);
|
|
21
|
+
if (opts.ask && opts.headless) {
|
|
22
|
+
process.stderr.write("--ask requires the UI; drop --headless or remove --ask.\n");
|
|
23
|
+
return 2;
|
|
24
|
+
}
|
|
25
|
+
// Phase 293: `omg login [provider]` — authenticate a provider CLI on
|
|
26
|
+
// the real terminal, then exit. Checked before every other mode since
|
|
27
|
+
// it's a standalone subcommand, not a chat/scripting run.
|
|
28
|
+
if (opts.login !== undefined) {
|
|
29
|
+
return await runLoginCli(opts.login);
|
|
30
|
+
}
|
|
31
|
+
// Phase 344: `omg doctor [--json]` — diagnose provider install/auth and
|
|
32
|
+
// exit. Standalone subcommand, checked before chat/scripting modes.
|
|
33
|
+
if (opts.doctor) {
|
|
34
|
+
return await runDoctorCli({ json: !!opts.doctorJson });
|
|
35
|
+
}
|
|
36
|
+
if (opts.mcpServe) {
|
|
37
|
+
return await runMcpServe({
|
|
38
|
+
writable: !!opts.writeTools,
|
|
39
|
+
shell: !!opts.shellTools,
|
|
40
|
+
mcpAllow: opts.mcpAllow
|
|
41
|
+
? opts.mcpAllow
|
|
42
|
+
.split(",")
|
|
43
|
+
.map((s) => s.trim())
|
|
44
|
+
.filter(Boolean)
|
|
45
|
+
: undefined,
|
|
46
|
+
mcpProvider: opts.mcpProvider,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
if (opts.teamRun !== undefined) {
|
|
50
|
+
const reviewers = opts.reviewers
|
|
51
|
+
.split(",")
|
|
52
|
+
.map((r) => r.trim())
|
|
53
|
+
.filter(Boolean);
|
|
54
|
+
if (reviewers.length === 0) {
|
|
55
|
+
process.stderr.write("--reviewers must contain at least one role.\n");
|
|
56
|
+
return 2;
|
|
57
|
+
}
|
|
58
|
+
return await runTeam({
|
|
59
|
+
prompt: opts.teamRun,
|
|
60
|
+
provider: opts.provider,
|
|
61
|
+
maxIterations: Number(opts.maxIterations),
|
|
62
|
+
headless: !!opts.headless,
|
|
63
|
+
tools: toolsEnabled,
|
|
64
|
+
writable,
|
|
65
|
+
shell,
|
|
66
|
+
ask: !!opts.ask,
|
|
67
|
+
reviewerRoles: reviewers,
|
|
68
|
+
strategy: opts.strategy,
|
|
69
|
+
adapterOpts,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (opts.run !== undefined) {
|
|
73
|
+
return await runOrchestrator({
|
|
74
|
+
prompt: opts.run,
|
|
75
|
+
role: opts.role,
|
|
76
|
+
provider: opts.provider,
|
|
77
|
+
headless: !!opts.headless,
|
|
78
|
+
tools: toolsEnabled,
|
|
79
|
+
writable,
|
|
80
|
+
shell,
|
|
81
|
+
ask: !!opts.ask,
|
|
82
|
+
loop: !!opts.loop,
|
|
83
|
+
maxSteps: Number(opts.maxSteps),
|
|
84
|
+
adapterOpts,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
if (opts.demo && opts.headless) {
|
|
88
|
+
return await runDemoHeadless({ tools: toolsEnabled, writable, shell });
|
|
89
|
+
}
|
|
90
|
+
if (opts.demo) {
|
|
91
|
+
return await runDemoUi({
|
|
92
|
+
tools: toolsEnabled,
|
|
93
|
+
writable,
|
|
94
|
+
shell,
|
|
95
|
+
ask: !!opts.ask,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
if (opts.headless) {
|
|
99
|
+
process.stderr.write("--headless is waiting for a job spec; try --demo --headless or " +
|
|
100
|
+
"--run <PROMPT> --headless.\n");
|
|
101
|
+
return 2;
|
|
102
|
+
}
|
|
103
|
+
// No scripting flag → drop into interactive chat, just like
|
|
104
|
+
// `claude` or `codex` do without args. The user works in the TUI;
|
|
105
|
+
// --run / --team-run / --demo / --mcp-serve stay for scripting.
|
|
106
|
+
// Phase 264: the legacy `--chat` flag is gone — bare omg is the
|
|
107
|
+
// canonical chat entry. To pass a first message, type it after the
|
|
108
|
+
// TUI loads.
|
|
109
|
+
return await runInteractive({
|
|
110
|
+
role: opts.role,
|
|
111
|
+
provider: opts.provider,
|
|
112
|
+
initialPrompt: undefined,
|
|
113
|
+
adapterOpts,
|
|
114
|
+
ask: !!opts.ask,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
// Phase 219 (distribution): top-level catch so a missing provider
|
|
118
|
+
// binary or other startup failure surfaces as a clean one-screen
|
|
119
|
+
// message rather than a Node stack trace that reads like the
|
|
120
|
+
// package itself is broken.
|
|
121
|
+
main(process.argv.slice(2))
|
|
122
|
+
.then((code) => process.exit(code))
|
|
123
|
+
.catch((err) => {
|
|
124
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
125
|
+
process.stderr.write(`omg: ${msg}\n`);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type AdapterInput, type Chunk } from "./orchestration/types.js";
|
|
2
|
+
export interface LLMAdapter {
|
|
3
|
+
readonly provider: string;
|
|
4
|
+
stream(input: AdapterInput): AsyncIterable<Chunk>;
|
|
5
|
+
/** Phase 21: optional cooperative cancel. CLI-spawning adapters
|
|
6
|
+
* send SIGTERM to their child; stub adapters can ignore it. */
|
|
7
|
+
cancel?(): void;
|
|
8
|
+
/** Phase 171: the session id captured for `--resume` (CLI adapters
|
|
9
|
+
* with enableSessionResume). Undefined until the first turn lands
|
|
10
|
+
* one, or on adapters that don't resume. */
|
|
11
|
+
readonly currentSessionId?: string;
|
|
12
|
+
/** Drop the captured session so the next stream() starts fresh
|
|
13
|
+
* (e.g. `/clear`). No-op on adapters without sessions. */
|
|
14
|
+
resetSession?(): void;
|
|
15
|
+
/** Arm `--fork-session` for the next call so the provider branches a
|
|
16
|
+
* new session id instead of reusing the current one (claude-cli). */
|
|
17
|
+
forkNext?(): void;
|
|
18
|
+
/** Restore a previously captured session id so the next stream()
|
|
19
|
+
* resumes it (the session picker). No-op without resume support. */
|
|
20
|
+
restoreSession?(sessionId: string): void;
|
|
21
|
+
/** Retarget the working directory the adapter spawns its child
|
|
22
|
+
* process in (the `/cwd` slash command + tab moves). No-op on
|
|
23
|
+
* adapters that don't spawn a child. */
|
|
24
|
+
setCwd?(cwd: string): void;
|
|
25
|
+
/** Switch the model used on subsequent stream() calls (the `/model`
|
|
26
|
+
* slash command). No-op on adapters with a fixed model. */
|
|
27
|
+
setModel?(model: string): void;
|
|
28
|
+
}
|
|
29
|
+
export declare class StubAdapter implements LLMAdapter {
|
|
30
|
+
readonly provider: string;
|
|
31
|
+
private readonly script;
|
|
32
|
+
constructor(script: readonly Chunk[], opts?: {
|
|
33
|
+
provider?: string;
|
|
34
|
+
});
|
|
35
|
+
stream(_input: AdapterInput): AsyncIterable<Chunk>;
|
|
36
|
+
}
|
|
37
|
+
export declare class MultiStepStubAdapter implements LLMAdapter {
|
|
38
|
+
readonly provider: string;
|
|
39
|
+
private readonly scripts;
|
|
40
|
+
private idx;
|
|
41
|
+
constructor(scripts: readonly (readonly Chunk[])[], opts?: {
|
|
42
|
+
provider?: string;
|
|
43
|
+
});
|
|
44
|
+
get stepCount(): number;
|
|
45
|
+
stream(_input: AdapterInput): AsyncIterable<Chunk>;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,KAAK,EAIX,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClD;oEACgE;IAChE,MAAM,CAAC,IAAI,IAAI,CAAC;IAChB;;iDAE6C;IAC7C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;+DAC2D;IAC3D,YAAY,CAAC,IAAI,IAAI,CAAC;IACtB;0EACsE;IACtE,QAAQ,CAAC,IAAI,IAAI,CAAC;IAClB;yEACqE;IACrE,cAAc,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC;;6CAEyC;IACzC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;gEAC4D;IAC5D,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAMD,qBAAa,WAAY,YAAW,UAAU;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;gBAE9B,MAAM,EAAE,SAAS,KAAK,EAAE,EAAE,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO;IAK/D,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC;CAI1D;AAED,qBAAa,oBAAqB,YAAW,UAAU;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,GAAG,CAAK;gBAGd,OAAO,EAAE,SAAS,CAAC,SAAS,KAAK,EAAE,CAAC,EAAE,EACtC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO;IAMlC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAEM,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC;CAW1D"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// LLMAdapter base + StubAdapter + MultiStepStubAdapter.
|
|
2
|
+
//
|
|
3
|
+
// Phase 16 extends the input from `string` to `string | Conversation`.
|
|
4
|
+
// Adapters that support structured multi-turn (real providers) consume
|
|
5
|
+
// the Conversation natively; stubs flatten it back to a string and
|
|
6
|
+
// ignore the content (their script is fixed).
|
|
7
|
+
import { flattenConversation, streamEnd, text as textChunk, } from "./orchestration/types.js";
|
|
8
|
+
function inputToString(input) {
|
|
9
|
+
return typeof input === "string" ? input : flattenConversation(input);
|
|
10
|
+
}
|
|
11
|
+
export class StubAdapter {
|
|
12
|
+
provider;
|
|
13
|
+
script;
|
|
14
|
+
constructor(script, opts = {}) {
|
|
15
|
+
this.provider = opts.provider ?? "stub";
|
|
16
|
+
this.script = [...script];
|
|
17
|
+
}
|
|
18
|
+
async *stream(_input) {
|
|
19
|
+
void inputToString(_input);
|
|
20
|
+
for (const chunk of this.script)
|
|
21
|
+
yield chunk;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class MultiStepStubAdapter {
|
|
25
|
+
provider;
|
|
26
|
+
scripts;
|
|
27
|
+
idx = 0;
|
|
28
|
+
constructor(scripts, opts = {}) {
|
|
29
|
+
this.provider = opts.provider ?? "stub";
|
|
30
|
+
this.scripts = scripts.map((s) => [...s]);
|
|
31
|
+
}
|
|
32
|
+
get stepCount() {
|
|
33
|
+
return this.idx;
|
|
34
|
+
}
|
|
35
|
+
async *stream(_input) {
|
|
36
|
+
void inputToString(_input);
|
|
37
|
+
if (this.idx >= this.scripts.length) {
|
|
38
|
+
yield textChunk("(no more scripted steps)");
|
|
39
|
+
yield streamEnd("end_turn");
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const script = this.scripts[this.idx];
|
|
43
|
+
this.idx += 1;
|
|
44
|
+
for (const chunk of script)
|
|
45
|
+
yield chunk;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,mEAAmE;AACnE,8CAA8C;AAE9C,OAAO,EAGL,mBAAmB,EACnB,SAAS,EACT,IAAI,IAAI,SAAS,GAClB,MAAM,0BAA0B,CAAC;AA8BlC,SAAS,aAAa,CAAC,KAAmB;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,OAAO,WAAW;IACb,QAAQ,CAAS;IACT,MAAM,CAAmB;IAE1C,YAAY,MAAwB,EAAE,OAA8B,EAAE;QACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,MAAoB;QAChC,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,KAAK,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,oBAAoB;IACtB,QAAQ,CAAS;IACT,OAAO,CAAgC;IAChD,GAAG,GAAG,CAAC,CAAC;IAEhB,YACE,OAAsC,EACtC,OAA8B,EAAE;QAEhC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,MAAoB;QAChC,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,SAAS,CAAC,0BAA0B,CAAC,CAAC;YAC5C,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,MAAM,KAAK,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type AdapterInput, type Chunk, type ConversationMessage } from "../orchestration/types.js";
|
|
2
|
+
import type { LLMAdapter } from "../adapter.js";
|
|
3
|
+
export interface TranslateAnthropicEventsOpts {
|
|
4
|
+
/** When true (default), yields a StreamEnd on `message_stop` and
|
|
5
|
+
* stops consuming. SDK mode — one assistant message per stream.
|
|
6
|
+
*
|
|
7
|
+
* When false, `message_stop` is silently dropped and the caller is
|
|
8
|
+
* responsible for emitting the final StreamEnd. CLI mode — the Claude
|
|
9
|
+
* Code CLI streams multiple message_start / message_stop pairs when
|
|
10
|
+
* tools execute between turns inside a single `-p` call. */
|
|
11
|
+
endOnMessageStop?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function translateAnthropicEvents(events: AsyncIterable<unknown>, opts?: TranslateAnthropicEventsOpts): AsyncIterable<Chunk>;
|
|
14
|
+
export declare function inputTokenBreakdown(u: Record<string, unknown>): {
|
|
15
|
+
total: number;
|
|
16
|
+
cacheRead: number;
|
|
17
|
+
fresh: number;
|
|
18
|
+
};
|
|
19
|
+
export declare function anthropicMessage(msg: ConversationMessage): Record<string, unknown>;
|
|
20
|
+
export declare class AnthropicAdapter implements LLMAdapter {
|
|
21
|
+
private readonly opts;
|
|
22
|
+
readonly provider = "claude";
|
|
23
|
+
constructor(opts: {
|
|
24
|
+
model: string;
|
|
25
|
+
client?: unknown;
|
|
26
|
+
maxTokens?: number;
|
|
27
|
+
system?: string;
|
|
28
|
+
});
|
|
29
|
+
stream(input: AdapterInput): AsyncIterable<Chunk>;
|
|
30
|
+
/** Public for testing. Renders an AdapterInput into the args dict
|
|
31
|
+
* we hand to `client.messages.stream`. */
|
|
32
|
+
buildArgs(input: AdapterInput): Record<string, unknown>;
|
|
33
|
+
private lazyClient;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/anthropic.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,mBAAmB,EAMzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,MAAM,WAAW,4BAA4B;IAC3C;;;;;;gEAM4D;IAC5D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAuB,wBAAwB,CAC7C,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAC9B,IAAI,GAAE,4BAAiC,GACtC,aAAa,CAAC,KAAK,CAAC,CAwFtB;AAYD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAiBA;AAMD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,mBAAmB,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8BzB;AAGD,qBAAa,gBAAiB,YAAW,UAAU;IAI/C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHvB,QAAQ,CAAC,QAAQ,YAAY;gBAGV,IAAI,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAGI,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC;IAgBxD;8CAC0C;IAC1C,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;YAkBzC,UAAU;CAuBzB"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
// Anthropic adapter — maps Anthropic streaming events to omg Chunks.
|
|
2
|
+
//
|
|
3
|
+
// Mirror of legacy/omg/core/adapters/anthropic.py. The translator is
|
|
4
|
+
// pure (no SDK dependency) so unit tests can feed plain mock objects.
|
|
5
|
+
import { streamEnd, text as textChunk, thinking as thinkingChunk, toolUseStart, usage, } from "../orchestration/types.js";
|
|
6
|
+
import { isObject, parseJsonOrEmpty } from "./utils.js";
|
|
7
|
+
export async function* translateAnthropicEvents(events, opts = {}) {
|
|
8
|
+
const pendingTools = new Map();
|
|
9
|
+
let stopReason = "end_turn";
|
|
10
|
+
for await (const ev of events) {
|
|
11
|
+
if (!isObject(ev))
|
|
12
|
+
continue;
|
|
13
|
+
const etype = ev.type;
|
|
14
|
+
if (etype === "content_block_start") {
|
|
15
|
+
const block = ev.content_block;
|
|
16
|
+
const index = ev.index ?? 0;
|
|
17
|
+
if (isObject(block) && block.type === "tool_use") {
|
|
18
|
+
const id = String(block.id ?? "");
|
|
19
|
+
const name = String(block.name ?? "");
|
|
20
|
+
pendingTools.set(index, { id, name, buf: "" });
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else if (etype === "content_block_delta") {
|
|
24
|
+
const delta = ev.delta;
|
|
25
|
+
const index = ev.index ?? 0;
|
|
26
|
+
if (isObject(delta)) {
|
|
27
|
+
const dtype = delta.type;
|
|
28
|
+
if (dtype === "text_delta") {
|
|
29
|
+
const t = String(delta.text ?? "");
|
|
30
|
+
if (t)
|
|
31
|
+
yield textChunk(t);
|
|
32
|
+
}
|
|
33
|
+
else if (dtype === "thinking_delta") {
|
|
34
|
+
// Anthropic extended thinking: surfaced as its own delta
|
|
35
|
+
// type, separate from text_delta. We forward it as a
|
|
36
|
+
// ThinkingChunk so the UI can render it dimmed/collapsed.
|
|
37
|
+
const t = String(delta.thinking ?? "");
|
|
38
|
+
if (t)
|
|
39
|
+
yield thinkingChunk(t);
|
|
40
|
+
}
|
|
41
|
+
else if (dtype === "input_json_delta") {
|
|
42
|
+
const slot = pendingTools.get(index);
|
|
43
|
+
if (slot !== undefined) {
|
|
44
|
+
slot.buf += String(delta.partial_json ?? "");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (etype === "content_block_stop") {
|
|
50
|
+
const index = ev.index ?? 0;
|
|
51
|
+
const slot = pendingTools.get(index);
|
|
52
|
+
if (slot !== undefined) {
|
|
53
|
+
pendingTools.delete(index);
|
|
54
|
+
yield toolUseStart(slot.id, slot.name, parseJsonOrEmpty(slot.buf));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (etype === "message_delta") {
|
|
58
|
+
const delta = ev.delta;
|
|
59
|
+
if (isObject(delta)) {
|
|
60
|
+
const sr = delta.stop_reason;
|
|
61
|
+
if (typeof sr === "string" && sr.length > 0)
|
|
62
|
+
stopReason = sr;
|
|
63
|
+
}
|
|
64
|
+
// Anthropic stamps usage on message_delta (and earlier on
|
|
65
|
+
// message_start). Emit once we see token counts.
|
|
66
|
+
const u = ev.usage;
|
|
67
|
+
if (isObject(u)) {
|
|
68
|
+
const tb = inputTokenBreakdown(u);
|
|
69
|
+
const tout = Number(u.output_tokens ?? 0);
|
|
70
|
+
if (tb.total > 0 || tout > 0)
|
|
71
|
+
yield usage(tb.total, tout, tb.cacheRead, tb.fresh);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (etype === "message_start") {
|
|
75
|
+
const msg = ev.message;
|
|
76
|
+
if (isObject(msg)) {
|
|
77
|
+
const u = msg.usage;
|
|
78
|
+
if (isObject(u)) {
|
|
79
|
+
const tb = inputTokenBreakdown(u);
|
|
80
|
+
const tout = Number(u.output_tokens ?? 0);
|
|
81
|
+
if (tb.total > 0 || tout > 0)
|
|
82
|
+
yield usage(tb.total, tout, tb.cacheRead, tb.fresh);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else if (etype === "message_stop") {
|
|
87
|
+
if (opts.endOnMessageStop !== false) {
|
|
88
|
+
yield streamEnd(stopReason);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
// CLI mode: swallow. The outer wrapper emits StreamEnd when
|
|
92
|
+
// the envelope's `result` arrives (or stream ends).
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// Phase 104: Anthropic splits input tokens across three fields when
|
|
97
|
+
// prompt caching is on — input_tokens (the uncached delta),
|
|
98
|
+
// cache_read_input_tokens, and cache_creation_input_tokens. The true
|
|
99
|
+
// context size is the sum; reading input_tokens alone made the status
|
|
100
|
+
// bar's ctx% read ~0% even on a near-full window (the bulk sits in
|
|
101
|
+
// cache_read).
|
|
102
|
+
// Phase 322: split the input tokens so the UI can show what's reused from
|
|
103
|
+
// the prompt cache (cheap) vs new this turn. total = base + cacheRead +
|
|
104
|
+
// cacheCreate (the true context size); fresh = base + cacheCreate (the
|
|
105
|
+
// uncached delta the model actually re-processed this turn).
|
|
106
|
+
export function inputTokenBreakdown(u) {
|
|
107
|
+
const n = (v) => {
|
|
108
|
+
const x = Number(v ?? 0);
|
|
109
|
+
return Number.isFinite(x) ? x : 0;
|
|
110
|
+
};
|
|
111
|
+
const base = n(u.input_tokens);
|
|
112
|
+
const cacheRead = n(u.cache_read_input_tokens);
|
|
113
|
+
const cacheCreate = n(u.cache_creation_input_tokens);
|
|
114
|
+
return {
|
|
115
|
+
total: base + cacheRead + cacheCreate,
|
|
116
|
+
cacheRead,
|
|
117
|
+
fresh: base + cacheCreate,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
// Convert one ConversationMessage to Anthropic's message format.
|
|
121
|
+
// - user text → { role: "user", content: "text" }
|
|
122
|
+
// - assistant text + tool_use → { role: "assistant", content: [{type:"text"}, {type:"tool_use", id, name, input}] }
|
|
123
|
+
// - tool_result → { role: "user", content: [{type:"tool_result", tool_use_id, content: stringified}] }
|
|
124
|
+
export function anthropicMessage(msg) {
|
|
125
|
+
if (msg.role === "user") {
|
|
126
|
+
return { role: "user", content: msg.text };
|
|
127
|
+
}
|
|
128
|
+
if (msg.role === "assistant") {
|
|
129
|
+
const content = [];
|
|
130
|
+
if (msg.text)
|
|
131
|
+
content.push({ type: "text", text: msg.text });
|
|
132
|
+
for (const call of msg.toolCalls) {
|
|
133
|
+
content.push({
|
|
134
|
+
type: "tool_use",
|
|
135
|
+
id: call.toolId,
|
|
136
|
+
name: call.toolName,
|
|
137
|
+
input: { ...call.toolInput },
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return { role: "assistant", content };
|
|
141
|
+
}
|
|
142
|
+
// tool_result rides in a user-role message with a structured content array.
|
|
143
|
+
const resultText = typeof msg.result === "string" ? msg.result : JSON.stringify(msg.result);
|
|
144
|
+
return {
|
|
145
|
+
role: "user",
|
|
146
|
+
content: [
|
|
147
|
+
{
|
|
148
|
+
type: "tool_result",
|
|
149
|
+
tool_use_id: msg.toolId,
|
|
150
|
+
content: resultText,
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
export class AnthropicAdapter {
|
|
156
|
+
opts;
|
|
157
|
+
provider = "claude";
|
|
158
|
+
constructor(opts) {
|
|
159
|
+
this.opts = opts;
|
|
160
|
+
}
|
|
161
|
+
async *stream(input) {
|
|
162
|
+
const client = this.opts.client ?? (await this.lazyClient());
|
|
163
|
+
const args = this.buildArgs(input);
|
|
164
|
+
const events = (await client.messages.stream(args));
|
|
165
|
+
yield* translateAnthropicEvents(events);
|
|
166
|
+
}
|
|
167
|
+
/** Public for testing. Renders an AdapterInput into the args dict
|
|
168
|
+
* we hand to `client.messages.stream`. */
|
|
169
|
+
buildArgs(input) {
|
|
170
|
+
const messages = typeof input === "string"
|
|
171
|
+
? [{ role: "user", content: input }]
|
|
172
|
+
: input.messages.map(anthropicMessage);
|
|
173
|
+
const args = {
|
|
174
|
+
model: this.opts.model,
|
|
175
|
+
max_tokens: this.opts.maxTokens ?? 1024,
|
|
176
|
+
messages,
|
|
177
|
+
};
|
|
178
|
+
const system = typeof input === "string"
|
|
179
|
+
? this.opts.system
|
|
180
|
+
: (input.system ?? this.opts.system);
|
|
181
|
+
if (system !== undefined)
|
|
182
|
+
args.system = system;
|
|
183
|
+
return args;
|
|
184
|
+
}
|
|
185
|
+
async lazyClient() {
|
|
186
|
+
// Indirect via a variable so TS doesn't try to resolve the module
|
|
187
|
+
// statically — the SDK is an optional peer dependency.
|
|
188
|
+
const name = "@anthropic-ai/sdk";
|
|
189
|
+
let mod;
|
|
190
|
+
try {
|
|
191
|
+
mod = (await import(name));
|
|
192
|
+
}
|
|
193
|
+
catch (e) {
|
|
194
|
+
throw new Error("@anthropic-ai/sdk not installed; run `npm install @anthropic-ai/sdk`", { cause: e });
|
|
195
|
+
}
|
|
196
|
+
const Anthropic = mod.Anthropic ?? mod.default;
|
|
197
|
+
if (typeof Anthropic !== "function") {
|
|
198
|
+
throw new Error("@anthropic-ai/sdk does not export an Anthropic class");
|
|
199
|
+
}
|
|
200
|
+
return new Anthropic();
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=anthropic.js.map
|