@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,9 @@
|
|
|
1
|
+
export interface AskOption {
|
|
2
|
+
label: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface AskClient {
|
|
6
|
+
ask(question: string, options: AskOption[], multiSelect: boolean): Promise<string>;
|
|
7
|
+
}
|
|
8
|
+
export declare function getEnvAskClient(): AskClient | null;
|
|
9
|
+
//# sourceMappingURL=askClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"askClient.d.ts","sourceRoot":"","sources":["../../src/mcp/askClient.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,CACD,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,EAAE,EACpB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED,wBAAgB,eAAe,IAAI,SAAS,GAAG,IAAI,CAOlD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// Phase 150: client side of the ask_user broker.
|
|
2
|
+
//
|
|
3
|
+
// The omg MCP server reads process.env.OMG_ASK_SOCKET to find the broker
|
|
4
|
+
// the omg parent opened. For each ask_user tool call it opens a one-shot
|
|
5
|
+
// connection, writes one JSON request line, reads one answer line, and
|
|
6
|
+
// disconnects.
|
|
7
|
+
//
|
|
8
|
+
// Fail-soft by design: any connection / parse / timeout error resolves to
|
|
9
|
+
// a sentinel string so the agent gets a usable result instead of hanging.
|
|
10
|
+
import { createConnection } from "node:net";
|
|
11
|
+
import { createInterface } from "node:readline";
|
|
12
|
+
const REQUEST_TIMEOUT_MS = 600_000; // questions wait on a human — be generous
|
|
13
|
+
const NO_ANSWER = "user did not answer";
|
|
14
|
+
export function getEnvAskClient() {
|
|
15
|
+
const path = process.env.OMG_ASK_SOCKET;
|
|
16
|
+
if (!path)
|
|
17
|
+
return null;
|
|
18
|
+
return {
|
|
19
|
+
ask: (question, options, multiSelect) => requestOnce(path, question, options, multiSelect),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
let nextId = 1;
|
|
23
|
+
async function requestOnce(socketPath, question, options, multiSelect) {
|
|
24
|
+
return new Promise((resolve) => {
|
|
25
|
+
let settled = false;
|
|
26
|
+
const finish = (answer) => {
|
|
27
|
+
if (settled)
|
|
28
|
+
return;
|
|
29
|
+
settled = true;
|
|
30
|
+
try {
|
|
31
|
+
sock.destroy();
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
/* nothing to do */
|
|
35
|
+
}
|
|
36
|
+
resolve(answer);
|
|
37
|
+
};
|
|
38
|
+
const id = nextId++;
|
|
39
|
+
let sock;
|
|
40
|
+
try {
|
|
41
|
+
sock = createConnection(socketPath);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
finish(NO_ANSWER);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const timer = setTimeout(() => finish(NO_ANSWER), REQUEST_TIMEOUT_MS);
|
|
48
|
+
sock.once("error", () => finish(NO_ANSWER));
|
|
49
|
+
sock.once("close", () => {
|
|
50
|
+
clearTimeout(timer);
|
|
51
|
+
finish(NO_ANSWER);
|
|
52
|
+
});
|
|
53
|
+
const rl = createInterface({ input: sock, crlfDelay: Infinity });
|
|
54
|
+
rl.on("line", (line) => {
|
|
55
|
+
let resp;
|
|
56
|
+
try {
|
|
57
|
+
resp = JSON.parse(line);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (resp.id !== id)
|
|
63
|
+
return;
|
|
64
|
+
clearTimeout(timer);
|
|
65
|
+
finish(typeof resp.answer === "string" ? resp.answer : NO_ANSWER);
|
|
66
|
+
});
|
|
67
|
+
sock.write(JSON.stringify({ id, question, options, multiSelect }) + "\n");
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=askClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"askClient.js","sourceRoot":"","sources":["../../src/mcp/askClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Pin to a recent MCP protocol revision. Claude Code / Codex /
|
|
2
|
+
* Gemini CLI all negotiate the version the client speaks. */
|
|
3
|
+
export declare const PROTOCOL_VERSION = "2024-11-05";
|
|
4
|
+
export declare const SERVER_NAME = "omg";
|
|
5
|
+
export declare const SERVER_VERSION = "0.1.0";
|
|
6
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/mcp/constants.ts"],"names":[],"mappings":"AAIA;8DAC8D;AAC9D,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,WAAW,QAAQ,CAAC;AACjC,eAAO,MAAM,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Phase 17-f: MCP protocol identity for omg's server.
|
|
2
|
+
import { VERSION } from "../index.js";
|
|
3
|
+
/** Pin to a recent MCP protocol revision. Claude Code / Codex /
|
|
4
|
+
* Gemini CLI all negotiate the version the client speaks. */
|
|
5
|
+
export const PROTOCOL_VERSION = "2024-11-05";
|
|
6
|
+
export const SERVER_NAME = "omg";
|
|
7
|
+
export const SERVER_VERSION = VERSION;
|
|
8
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/mcp/constants.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;8DAC8D;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;AACjC,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissionClient.d.ts","sourceRoot":"","sources":["../../src/mcp/permissionClient.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzE;AAED,wBAAgB,sBAAsB,IAAI,gBAAgB,GAAG,IAAI,CAMhE"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Phase 31: client side of the Unix-socket permission gate.
|
|
2
|
+
//
|
|
3
|
+
// The omg MCP server (src/mcp/server.ts) reads
|
|
4
|
+
// process.env.OMG_PERMISSION_SOCKET to find the broker omg's parent
|
|
5
|
+
// process opened. For each tools/call, it opens a one-shot
|
|
6
|
+
// connection, writes one JSON request line, reads one response
|
|
7
|
+
// line, and disconnects.
|
|
8
|
+
//
|
|
9
|
+
// Fail-closed by design: any connection error / parse error /
|
|
10
|
+
// timeout returns false so a broken gate can't accidentally green-
|
|
11
|
+
// light an unauthorized tool call.
|
|
12
|
+
import { createConnection } from "node:net";
|
|
13
|
+
import { createInterface } from "node:readline";
|
|
14
|
+
const REQUEST_TIMEOUT_MS = 30_000;
|
|
15
|
+
export function getEnvPermissionClient() {
|
|
16
|
+
const path = process.env.OMG_PERMISSION_SOCKET;
|
|
17
|
+
if (!path)
|
|
18
|
+
return null;
|
|
19
|
+
return {
|
|
20
|
+
request: (name, input) => requestOnce(path, name, input),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
let nextId = 1;
|
|
24
|
+
async function requestOnce(socketPath, name, input) {
|
|
25
|
+
return new Promise((resolve) => {
|
|
26
|
+
let settled = false;
|
|
27
|
+
const finish = (allow) => {
|
|
28
|
+
if (settled)
|
|
29
|
+
return;
|
|
30
|
+
settled = true;
|
|
31
|
+
try {
|
|
32
|
+
sock.destroy();
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
/* nothing to do */
|
|
36
|
+
}
|
|
37
|
+
resolve(allow);
|
|
38
|
+
};
|
|
39
|
+
const id = nextId++;
|
|
40
|
+
let sock;
|
|
41
|
+
try {
|
|
42
|
+
sock = createConnection(socketPath);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
finish(false);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const timer = setTimeout(() => finish(false), REQUEST_TIMEOUT_MS);
|
|
49
|
+
sock.once("error", () => finish(false));
|
|
50
|
+
sock.once("close", () => {
|
|
51
|
+
clearTimeout(timer);
|
|
52
|
+
finish(false);
|
|
53
|
+
});
|
|
54
|
+
const rl = createInterface({ input: sock, crlfDelay: Infinity });
|
|
55
|
+
rl.on("line", (line) => {
|
|
56
|
+
let resp;
|
|
57
|
+
try {
|
|
58
|
+
resp = JSON.parse(line);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (resp.id !== id)
|
|
64
|
+
return;
|
|
65
|
+
clearTimeout(timer);
|
|
66
|
+
finish(resp.allow === true);
|
|
67
|
+
});
|
|
68
|
+
sock.write(JSON.stringify({ id, name, input }) + "\n");
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=permissionClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissionClient.js","sourceRoot":"","sources":["../../src/mcp/permissionClient.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,+CAA+C;AAC/C,oEAAoE;AACpE,2DAA2D;AAC3D,+DAA+D;AAC/D,yBAAyB;AACzB,EAAE;AACF,8DAA8D;AAC9D,mEAAmE;AACnE,mCAAmC;AAEnC,OAAO,EAAU,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAMlC,MAAM,UAAU,sBAAsB;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf,KAAK,UAAU,WAAW,CACxB,UAAkB,EAClB,IAAY,EACZ,KAA8B;IAE9B,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QACtC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE;YAChC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC;gBACH,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,KAAK,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,IAAuC,CAAC;YAC5C,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE;gBAAE,OAAO;YAC3B,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface ToolSchema {
|
|
2
|
+
description: string;
|
|
3
|
+
inputSchema: Record<string, unknown>;
|
|
4
|
+
}
|
|
5
|
+
/** Permissive fallback when the tool name isn't one we know up front. */
|
|
6
|
+
export declare const PERMISSIVE_SCHEMA: ToolSchema;
|
|
7
|
+
export declare const BUILTIN_SCHEMAS: Record<string, ToolSchema>;
|
|
8
|
+
export declare function schemaFor(name: string): ToolSchema;
|
|
9
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAkBD,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,EAAE,UAG/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAqItD,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAElD"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
// Phase 17-f: JSON schemas for omg's built-in tools, as MCP wants them.
|
|
2
|
+
//
|
|
3
|
+
// ToolRegistry tools are plain `(args) => Promise<unknown>` — they
|
|
4
|
+
// carry no schema. The MCP `tools/list` response wants
|
|
5
|
+
// { name, description, inputSchema } per tool, so we hard-code the
|
|
6
|
+
// shape here for the names defaultRegistry / defaultWritableRegistry
|
|
7
|
+
// / defaultShellRegistry hand back. Anything registered ad-hoc by a
|
|
8
|
+
// caller (custom tool) falls back to a permissive object schema.
|
|
9
|
+
const obj = (props, required = []) => ({
|
|
10
|
+
type: "object",
|
|
11
|
+
properties: props,
|
|
12
|
+
required,
|
|
13
|
+
additionalProperties: false,
|
|
14
|
+
});
|
|
15
|
+
const str = (description) => description ? { type: "string", description } : { type: "string" };
|
|
16
|
+
const num = (description) => description ? { type: "number", description } : { type: "number" };
|
|
17
|
+
/** Permissive fallback when the tool name isn't one we know up front. */
|
|
18
|
+
export const PERMISSIVE_SCHEMA = {
|
|
19
|
+
description: "Custom omg tool (no fixed schema).",
|
|
20
|
+
inputSchema: { type: "object", additionalProperties: true },
|
|
21
|
+
};
|
|
22
|
+
export const BUILTIN_SCHEMAS = {
|
|
23
|
+
// Phase 150: interactive multiple-choice question. omg shows a picker
|
|
24
|
+
// and returns the chosen option label(s) as the tool result — the way
|
|
25
|
+
// to ask the user a question from within a turn.
|
|
26
|
+
ask_user: {
|
|
27
|
+
description: "Ask the human user a multiple-choice question and get their answer. " +
|
|
28
|
+
"omg shows an interactive picker; the result is the chosen option " +
|
|
29
|
+
"label (or comma-joined labels when multiSelect). Use this instead " +
|
|
30
|
+
"of any built-in question tool. Returns the user's choice as text.",
|
|
31
|
+
inputSchema: obj({
|
|
32
|
+
question: str("The question to ask the user."),
|
|
33
|
+
options: {
|
|
34
|
+
type: "array",
|
|
35
|
+
description: "The choices to offer (2-6 recommended).",
|
|
36
|
+
items: obj({
|
|
37
|
+
label: str("Short choice text the user selects."),
|
|
38
|
+
description: str("Optional one-line explanation of the choice."),
|
|
39
|
+
}, ["label"]),
|
|
40
|
+
},
|
|
41
|
+
multiSelect: {
|
|
42
|
+
type: "boolean",
|
|
43
|
+
description: "Allow selecting more than one option. Default false.",
|
|
44
|
+
},
|
|
45
|
+
}, ["question", "options"]),
|
|
46
|
+
},
|
|
47
|
+
echo: {
|
|
48
|
+
description: "Return `{ echoed: text }`. Diagnostic only.",
|
|
49
|
+
inputSchema: obj({ text: str("Text to echo back.") }, []),
|
|
50
|
+
},
|
|
51
|
+
// Phase 201c: model-driven decision capture. Use when the team
|
|
52
|
+
// abandons an approach, rejects a library, or settles a contested
|
|
53
|
+
// design choice — anything a future session would otherwise have
|
|
54
|
+
// to rediscover from the transcript. Persists in the project's
|
|
55
|
+
// continuum so the next provider sees it on switch.
|
|
56
|
+
record_decision: {
|
|
57
|
+
description: "Record a project-level decision (e.g. an approach we're abandoning, " +
|
|
58
|
+
"a library we settled on, a constraint we just learned). Persisted " +
|
|
59
|
+
"to the project's continuum so future turns and provider switches " +
|
|
60
|
+
"see it. Use this when you would otherwise just write 'we should " +
|
|
61
|
+
"stop using X' in chat and hope the next session remembers.",
|
|
62
|
+
inputSchema: obj({
|
|
63
|
+
text: str("One-line description of the decision. Prefix with the verb: " +
|
|
64
|
+
"'dropped …', 'settled on …', 'rejected …', 'constraint: …'."),
|
|
65
|
+
}, ["text"]),
|
|
66
|
+
},
|
|
67
|
+
noop: {
|
|
68
|
+
description: "Return `{}`. Use to test the round-trip.",
|
|
69
|
+
inputSchema: obj({}, []),
|
|
70
|
+
},
|
|
71
|
+
read_file: {
|
|
72
|
+
description: "Read a UTF-8 text file. Path must resolve inside the omg working " +
|
|
73
|
+
"directory; symlinks that escape are rejected. Returns `{ content }`.",
|
|
74
|
+
inputSchema: obj({ path: str("Relative path under cwd.") }, ["path"]),
|
|
75
|
+
},
|
|
76
|
+
list_dir: {
|
|
77
|
+
description: "List immediate entries of a directory under the omg working " +
|
|
78
|
+
"directory. Returns `{ entries: [{ name, type: 'dir'|'file' }, ...] }`.",
|
|
79
|
+
inputSchema: obj({ path: str("Relative path under cwd. Defaults to '.'.") }, []),
|
|
80
|
+
},
|
|
81
|
+
write_file: {
|
|
82
|
+
description: "Write a UTF-8 text file under the omg working directory. " +
|
|
83
|
+
"Creates parent directories. Returns `{ bytes_written, path }`.",
|
|
84
|
+
inputSchema: obj({
|
|
85
|
+
path: str("Relative path under cwd."),
|
|
86
|
+
content: str("File body (utf-8)."),
|
|
87
|
+
}, ["path", "content"]),
|
|
88
|
+
},
|
|
89
|
+
run_shell: {
|
|
90
|
+
description: "Run a shell command in the omg working directory. Env is scrubbed " +
|
|
91
|
+
"to a minimal set. Output is capped (default 256 KB) and timed out " +
|
|
92
|
+
"(default 10 min; max 30 min). Prefer this over a built-in shell for " +
|
|
93
|
+
"long builds/tests — pass an explicit timeout_ms for slow ones. Returns " +
|
|
94
|
+
"`{ stdout, stderr, exit_code, signal, truncated, duration_ms }`.",
|
|
95
|
+
inputSchema: obj({
|
|
96
|
+
command: str("Command line to execute via sh -c."),
|
|
97
|
+
timeout_ms: num("Per-call timeout in milliseconds. Capped at 1800000 (30 min)."),
|
|
98
|
+
max_output_bytes: num("Per-call output cap (stdout + stderr combined). " +
|
|
99
|
+
"Capped at 4194304 (4 MB)."),
|
|
100
|
+
}, ["command"]),
|
|
101
|
+
},
|
|
102
|
+
delegate: {
|
|
103
|
+
description: "Delegate a focused subtask to a different team role (sub-agent). " +
|
|
104
|
+
"Each role runs on a different LLM per the omg team.yaml — use this " +
|
|
105
|
+
"when the subtask is better suited to another provider or model. " +
|
|
106
|
+
"Typical roles: planner (plan + scope), implementer (write code), " +
|
|
107
|
+
"reviewer (check correctness), verifier (run/validate), director " +
|
|
108
|
+
"(synthesise). The sub-agent is invoked in a fresh session with " +
|
|
109
|
+
"the supplied prompt as its sole input — pass everything it needs " +
|
|
110
|
+
"to do the job standalone. Returns `{ role, text }`.",
|
|
111
|
+
inputSchema: obj({
|
|
112
|
+
role: str("Role name from team.yaml (e.g. 'implementer', 'reviewer', 'pm', 'verifier', 'director')."),
|
|
113
|
+
prompt: str("Self-contained prompt for the sub-agent. Include any context, " +
|
|
114
|
+
"constraints, and expected output format the sub-agent needs."),
|
|
115
|
+
}, ["role", "prompt"]),
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
export function schemaFor(name) {
|
|
119
|
+
return BUILTIN_SCHEMAS[name] ?? PERMISSIVE_SCHEMA;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ToolRegistry } from "../core/tools/tools.js";
|
|
2
|
+
import { type PermissionClient } from "./permissionClient.js";
|
|
3
|
+
export interface McpServerOpts {
|
|
4
|
+
registry: ToolRegistry;
|
|
5
|
+
/** Read line-delimited JSON from here. Default: process.stdin. */
|
|
6
|
+
stdin?: NodeJS.ReadableStream;
|
|
7
|
+
/** Write line-delimited JSON here. Default: process.stdout. */
|
|
8
|
+
stdout?: NodeJS.WritableStream;
|
|
9
|
+
/** Emit one-line diagnostics here. Default: process.stderr. */
|
|
10
|
+
stderr?: NodeJS.WritableStream;
|
|
11
|
+
/** Phase 31: optional permission gate. Each tools/call asks here
|
|
12
|
+
* before executing; a false return surfaces as an MCP isError
|
|
13
|
+
* result with a "denied" message. When omitted, we look for one
|
|
14
|
+
* in process.env (OMG_PERMISSION_SOCKET); missing env = no gate. */
|
|
15
|
+
permission?: PermissionClient;
|
|
16
|
+
}
|
|
17
|
+
export declare class McpServer {
|
|
18
|
+
private readonly registry;
|
|
19
|
+
private readonly stdout;
|
|
20
|
+
private readonly stderr;
|
|
21
|
+
private readonly rl;
|
|
22
|
+
private readonly permission;
|
|
23
|
+
constructor(opts: McpServerOpts);
|
|
24
|
+
/** Run until the input side closes. */
|
|
25
|
+
run(): Promise<void>;
|
|
26
|
+
private dispatch;
|
|
27
|
+
private handle;
|
|
28
|
+
private handleInitialize;
|
|
29
|
+
private handleToolsList;
|
|
30
|
+
/** Phase 211: lazy-loading variant. Returns tool name + short
|
|
31
|
+
* description but omits inputSchema; clients can fetch the schema
|
|
32
|
+
* on demand via `tools/describe`. Saves context when many tools
|
|
33
|
+
* are registered (audit External HIGH: lazy MCP loading). */
|
|
34
|
+
private handleToolsListSummary;
|
|
35
|
+
/** Phase 211: full inputSchema for one named tool. Pairs with
|
|
36
|
+
* `tools/list/summary`. */
|
|
37
|
+
private handleToolsDescribe;
|
|
38
|
+
private handleToolsCall;
|
|
39
|
+
private send;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAsB/B,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B;;;yEAGqE;IACrE,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;gBAEzC,IAAI,EAAE,aAAa;IAW/B,uCAAuC;IACjC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAiBZ,QAAQ;YAyBR,MAAM;IAsCpB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,eAAe;IAavB;;;kEAG8D;IAC9D,OAAO,CAAC,sBAAsB;IAS9B;gCAC4B;IAC5B,OAAO,CAAC,mBAAmB;YAkBb,eAAe;IA2C7B,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
// Phase 17-f: minimal MCP server that exposes an omg ToolRegistry.
|
|
2
|
+
//
|
|
3
|
+
// We implement just the surface needed by `claude --mcp-config`,
|
|
4
|
+
// `codex mcp add`, and `gemini mcp add` on the stdio transport:
|
|
5
|
+
//
|
|
6
|
+
// request initialize → respond with protocolVersion + caps
|
|
7
|
+
// request tools/list → respond with [{name, description, inputSchema}]
|
|
8
|
+
// request tools/call → respond with {content:[{type:text,text:...}], isError}
|
|
9
|
+
// request ping → respond with {}
|
|
10
|
+
// notification initialized → ack (no response)
|
|
11
|
+
//
|
|
12
|
+
// Transport is line-delimited JSON over stdin/stdout. Spec also
|
|
13
|
+
// supports Content-Length-framed messages; stdio MCP servers use
|
|
14
|
+
// newline framing in practice.
|
|
15
|
+
//
|
|
16
|
+
// We intentionally don't depend on @modelcontextprotocol/sdk — the
|
|
17
|
+
// protocol surface we need is small, and a custom implementation
|
|
18
|
+
// keeps the dep footprint tiny.
|
|
19
|
+
import { createInterface } from "node:readline";
|
|
20
|
+
import { PROTOCOL_VERSION, SERVER_NAME, SERVER_VERSION } from "./constants.js";
|
|
21
|
+
import { schemaFor } from "./schemas.js";
|
|
22
|
+
import { getEnvPermissionClient, } from "./permissionClient.js";
|
|
23
|
+
export class McpServer {
|
|
24
|
+
registry;
|
|
25
|
+
stdout;
|
|
26
|
+
stderr;
|
|
27
|
+
rl;
|
|
28
|
+
permission;
|
|
29
|
+
constructor(opts) {
|
|
30
|
+
this.registry = opts.registry;
|
|
31
|
+
this.stdout = opts.stdout ?? process.stdout;
|
|
32
|
+
this.stderr = opts.stderr ?? process.stderr;
|
|
33
|
+
this.permission = opts.permission ?? getEnvPermissionClient();
|
|
34
|
+
this.rl = createInterface({
|
|
35
|
+
input: opts.stdin ?? process.stdin,
|
|
36
|
+
crlfDelay: Infinity,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/** Run until the input side closes. */
|
|
40
|
+
async run() {
|
|
41
|
+
for await (const line of this.rl) {
|
|
42
|
+
const trimmed = line.trim();
|
|
43
|
+
if (!trimmed)
|
|
44
|
+
continue;
|
|
45
|
+
let msg;
|
|
46
|
+
try {
|
|
47
|
+
msg = JSON.parse(trimmed);
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
this.stderr.write(`mcp: drop unparsable input (${e.message})\n`);
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
await this.dispatch(msg);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async dispatch(msg) {
|
|
57
|
+
const id = msg.id;
|
|
58
|
+
const isRequest = id !== undefined;
|
|
59
|
+
try {
|
|
60
|
+
const result = await this.handle(msg.method, msg.params);
|
|
61
|
+
if (isRequest && result !== undefined) {
|
|
62
|
+
this.send({ jsonrpc: "2.0", id, result });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
// Throws can be a plain { code, message } (the handlers use this
|
|
67
|
+
// for protocol-level errors like -32601 "method not found") or a
|
|
68
|
+
// real Error (handler bug — falls back to -32603 internal).
|
|
69
|
+
const eo = e;
|
|
70
|
+
const code = typeof eo.code === "number" ? eo.code : -32603;
|
|
71
|
+
const message = typeof eo.message === "string" ? eo.message : String(e);
|
|
72
|
+
if (isRequest) {
|
|
73
|
+
this.send({ jsonrpc: "2.0", id, error: { code, message } });
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this.stderr.write(`mcp: notification handler failed: ${message}\n`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async handle(method, params) {
|
|
81
|
+
switch (method) {
|
|
82
|
+
case "initialize":
|
|
83
|
+
return this.handleInitialize(params);
|
|
84
|
+
case "initialized":
|
|
85
|
+
case "notifications/initialized":
|
|
86
|
+
// Notifications — no response expected. Return undefined so
|
|
87
|
+
// dispatch() doesn't send anything.
|
|
88
|
+
return undefined;
|
|
89
|
+
case "ping":
|
|
90
|
+
return {};
|
|
91
|
+
case "tools/list":
|
|
92
|
+
return this.handleToolsList();
|
|
93
|
+
case "tools/list/summary":
|
|
94
|
+
// Phase 211: lighter variant for clients that prefer to fetch
|
|
95
|
+
// schemas lazily (saves context when many tools are registered).
|
|
96
|
+
return this.handleToolsListSummary();
|
|
97
|
+
case "tools/describe":
|
|
98
|
+
// Phase 211: per-tool schema fetch. Pairs with the summary list
|
|
99
|
+
// above — `tools/list/summary` returns name + description; this
|
|
100
|
+
// method returns the full inputSchema for one named tool. Pure
|
|
101
|
+
// protocol extension; back-compat with `tools/list` is intact.
|
|
102
|
+
return this.handleToolsDescribe(params);
|
|
103
|
+
case "tools/call":
|
|
104
|
+
return this.handleToolsCall(params);
|
|
105
|
+
case "shutdown":
|
|
106
|
+
// Graceful close — readline will end when stdin closes.
|
|
107
|
+
return {};
|
|
108
|
+
case "exit":
|
|
109
|
+
return undefined;
|
|
110
|
+
default:
|
|
111
|
+
throw { code: -32601, message: `method not found: ${method}` };
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
handleInitialize(_params) {
|
|
115
|
+
return {
|
|
116
|
+
protocolVersion: PROTOCOL_VERSION,
|
|
117
|
+
capabilities: { tools: {} },
|
|
118
|
+
serverInfo: { name: SERVER_NAME, version: SERVER_VERSION },
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
handleToolsList() {
|
|
122
|
+
return {
|
|
123
|
+
tools: this.registry.names.map((name) => {
|
|
124
|
+
const s = schemaFor(name);
|
|
125
|
+
return {
|
|
126
|
+
name,
|
|
127
|
+
description: s.description,
|
|
128
|
+
inputSchema: s.inputSchema,
|
|
129
|
+
};
|
|
130
|
+
}),
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/** Phase 211: lazy-loading variant. Returns tool name + short
|
|
134
|
+
* description but omits inputSchema; clients can fetch the schema
|
|
135
|
+
* on demand via `tools/describe`. Saves context when many tools
|
|
136
|
+
* are registered (audit External HIGH: lazy MCP loading). */
|
|
137
|
+
handleToolsListSummary() {
|
|
138
|
+
return {
|
|
139
|
+
tools: this.registry.names.map((name) => ({
|
|
140
|
+
name,
|
|
141
|
+
description: schemaFor(name).description,
|
|
142
|
+
})),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/** Phase 211: full inputSchema for one named tool. Pairs with
|
|
146
|
+
* `tools/list/summary`. */
|
|
147
|
+
handleToolsDescribe(params) {
|
|
148
|
+
const name = typeof params?.name === "string" ? params.name : "";
|
|
149
|
+
if (!name) {
|
|
150
|
+
throw { code: -32602, message: "tools/describe: 'name' is required" };
|
|
151
|
+
}
|
|
152
|
+
if (!this.registry.names.includes(name)) {
|
|
153
|
+
throw { code: -32602, message: `tools/describe: unknown tool '${name}'` };
|
|
154
|
+
}
|
|
155
|
+
const s = schemaFor(name);
|
|
156
|
+
return {
|
|
157
|
+
name,
|
|
158
|
+
description: s.description,
|
|
159
|
+
inputSchema: s.inputSchema,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
async handleToolsCall(params) {
|
|
163
|
+
const name = typeof params?.name === "string" ? params.name : "";
|
|
164
|
+
const args = params?.arguments && typeof params.arguments === "object"
|
|
165
|
+
? params.arguments
|
|
166
|
+
: {};
|
|
167
|
+
if (!name) {
|
|
168
|
+
throw new Error("tools/call: 'name' is required");
|
|
169
|
+
}
|
|
170
|
+
// Phase 150: ask_user is a UI interaction, not a side-effecting tool
|
|
171
|
+
// — never gate it behind the permission prompt (that would ask
|
|
172
|
+
// "allow ask_user?" right before showing the question itself).
|
|
173
|
+
if (this.permission && name !== "ask_user") {
|
|
174
|
+
const ok = await this.permission.request(name, args);
|
|
175
|
+
if (!ok) {
|
|
176
|
+
return {
|
|
177
|
+
content: [
|
|
178
|
+
{
|
|
179
|
+
type: "text",
|
|
180
|
+
text: `denied by omg permission gate: ${name}`,
|
|
181
|
+
},
|
|
182
|
+
],
|
|
183
|
+
isError: true,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
const r = await this.registry.call(name, args);
|
|
188
|
+
if (!r.ok) {
|
|
189
|
+
return {
|
|
190
|
+
content: [{ type: "text", text: r.error }],
|
|
191
|
+
isError: true,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
const text = typeof r.value === "string" ? r.value : JSON.stringify(r.value, null, 2);
|
|
195
|
+
return {
|
|
196
|
+
content: [{ type: "text", text }],
|
|
197
|
+
isError: false,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
send(msg) {
|
|
201
|
+
this.stdout.write(JSON.stringify(msg) + "\n");
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const SCHEMA_VERSION = 2;
|
|
2
|
+
export declare class PolicyError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export interface LLMSpec {
|
|
6
|
+
readonly provider: string;
|
|
7
|
+
readonly model: string;
|
|
8
|
+
}
|
|
9
|
+
export interface RoleConfig {
|
|
10
|
+
readonly llm: LLMSpec;
|
|
11
|
+
readonly contextBudget: number;
|
|
12
|
+
/** Phase 348: optional allowlist of external MCP server names (from
|
|
13
|
+
* .omg/mcp.json) to expose to this role — the specialization knob. Absent
|
|
14
|
+
* means "all enabled servers". Lets a role play to a provider's strength
|
|
15
|
+
* with a targeted tool set without homogenizing the others. */
|
|
16
|
+
readonly mcp?: readonly string[];
|
|
17
|
+
}
|
|
18
|
+
export interface TeamPolicy {
|
|
19
|
+
readonly version: number;
|
|
20
|
+
readonly roles: ReadonlyMap<string, RoleConfig>;
|
|
21
|
+
}
|
|
22
|
+
export declare const DEFAULT_POLICY_PATH: string;
|
|
23
|
+
export declare const CODEX_LED_POLICY_PATH: string;
|
|
24
|
+
export declare const CLAUDE_ONLY_POLICY_PATH: string;
|
|
25
|
+
export declare const CODEX_ONLY_POLICY_PATH: string;
|
|
26
|
+
export declare function loadTeamPolicy(path?: string): TeamPolicy;
|
|
27
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/policy/loader.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;;;oEAGgE;IAChE,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACjD;AAID,eAAO,MAAM,mBAAmB,QAAkC,CAAC;AAEnE,eAAO,MAAM,qBAAqB,QAAwC,CAAC;AAE3E,eAAO,MAAM,uBAAuB,QAGnC,CAAC;AACF,eAAO,MAAM,sBAAsB,QAGlC,CAAC;AAMF,wBAAgB,cAAc,CAAC,IAAI,GAAE,MAA4B,GAAG,UAAU,CAoF7E"}
|