@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,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// Phase 20: bottom hint line.
|
|
3
|
+
//
|
|
4
|
+
// Always-on context for keybindings + which slash commands the UI
|
|
5
|
+
// understands. Compact, dim, single row.
|
|
6
|
+
import { Box, Text } from "ink";
|
|
7
|
+
import { theme } from "../theme.js";
|
|
8
|
+
const HINTS = [
|
|
9
|
+
{ key: "Ctrl-C", label: "quit" },
|
|
10
|
+
{ key: "Esc", label: "cancel" },
|
|
11
|
+
{ key: "↑/↓", label: "history" },
|
|
12
|
+
{ key: "Ctrl-N", label: "new-tab" },
|
|
13
|
+
{ key: "Ctrl-O/P", label: "next/prev tab" },
|
|
14
|
+
{ key: "/help", label: "commands" },
|
|
15
|
+
];
|
|
16
|
+
export function HintBar() {
|
|
17
|
+
return (_jsx(Box, { paddingX: 1, children: HINTS.map((h, i) => (_jsxs(Box, { children: [i > 0 ? _jsx(Text, { color: theme.hint.color, children: " " }) : null, _jsx(Text, { color: theme.hint.keyColor, children: h.key }), _jsxs(Text, { color: theme.hint.color, children: [" ", h.label] })] }, h.key))) }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=HintBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HintBar.js","sourceRoot":"","sources":["../../../src/ui/components/HintBar.tsx"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,EAAE;AACF,kEAAkE;AAClE,yCAAyC;AAEzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAOpC,MAAM,KAAK,GAAoB;IAC7B,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;IAChC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC/B,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;IAChC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;IACnC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE;IAC3C,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;CACpC,CAAC;AAEF,MAAM,UAAU,OAAO;IACrB,OAAO,CACL,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACb,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACnB,MAAC,GAAG,eACD,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,kBAAU,CAAC,CAAC,CAAC,IAAI,EACvD,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,YAAG,CAAC,CAAC,GAAG,GAAQ,EAChD,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,kBAAI,CAAC,CAAC,KAAK,IAAQ,KAHxC,CAAC,CAAC,GAAG,CAIT,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type Block } from "../markdown.js";
|
|
2
|
+
interface Props {
|
|
3
|
+
text: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function MarkdownText({ text }: Props): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
/** Truncate to a display width, appending … when it doesn't fit. CJK-aware. */
|
|
7
|
+
export declare function truncateToWidth(text: string, width: number): string;
|
|
8
|
+
/** Phase 156: shrink columns to fit a content budget (narrow / split
|
|
9
|
+
* terminals). Proportional with a per-column floor; trims the widest
|
|
10
|
+
* columns until the total fits. Returns natural widths when they fit. */
|
|
11
|
+
export declare function fitColumnWidths(natural: number[], budget: number, minCol?: number): number[];
|
|
12
|
+
export type { Block };
|
|
13
|
+
//# sourceMappingURL=MarkdownText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownText.d.ts","sourceRoot":"","sources":["../../../src/ui/components/MarkdownText.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,KAAK,EAMX,MAAM,gBAAgB,CAAC;AAOxB,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,2CAwD3C;AA0LD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYnE;AAED;;0EAE0E;AAC1E,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,SAAI,GACT,MAAM,EAAE,CAqBV;AAiJD,YAAY,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
// Phase 22: render a chunk of (possibly markdown-tinted) text.
|
|
3
|
+
//
|
|
4
|
+
// Splits the input into blocks via parseBlocks; paragraphs get inline
|
|
5
|
+
// emphasis applied, fenced blocks render as a bordered code box.
|
|
6
|
+
//
|
|
7
|
+
// Phase 200a (F5.1): memoize parseBlocks(text) so the streaming caller
|
|
8
|
+
// (EventLog tail, re-render per batched flush) doesn't reparse the
|
|
9
|
+
// entire growing text on every render.
|
|
10
|
+
//
|
|
11
|
+
// Phase 208 (F5.3): incremental parser. Phase 200a's memo only helps
|
|
12
|
+
// when text is identical between renders — useless mid-stream because
|
|
13
|
+
// each chunk extends text. parseBlocksIncremental tracks a settled
|
|
14
|
+
// boundary (\n\n outside any open fence) and reuses parsed blocks for
|
|
15
|
+
// the settled prefix; only the unsettled tail is re-parsed. Per-chunk
|
|
16
|
+
// cost drops from O(fullText) to O(tail).
|
|
17
|
+
import { useRef } from "react";
|
|
18
|
+
import { Box, Text, useStdout } from "ink";
|
|
19
|
+
import stringWidth from "string-width";
|
|
20
|
+
import { EMPTY_INCREMENTAL_STATE, parseBlocksIncremental, } from "../markdown.js";
|
|
21
|
+
import { theme } from "../theme.js";
|
|
22
|
+
import { DiffView } from "./DiffView.js";
|
|
23
|
+
import { parseUnifiedDiff } from "../diff.js";
|
|
24
|
+
import { langFromDiffHeader } from "../diffLang.js";
|
|
25
|
+
import { highlight } from "../syntax.js";
|
|
26
|
+
export function MarkdownText({ text }) {
|
|
27
|
+
// Phase 208: ref-backed incremental state. Updated in-place during
|
|
28
|
+
// render; the only "side effect" is a local cache write that's
|
|
29
|
+
// idempotent (same text → same blocks). No useEffect needed.
|
|
30
|
+
const stateRef = useRef(EMPTY_INCREMENTAL_STATE);
|
|
31
|
+
if (text !== stateRef.current.fullText) {
|
|
32
|
+
stateRef.current = parseBlocksIncremental(stateRef.current, text);
|
|
33
|
+
}
|
|
34
|
+
const blocks = stateRef.current.blocks;
|
|
35
|
+
return (_jsx(Box, { flexDirection: "column", children: blocks.map((b, i) => {
|
|
36
|
+
if (b.kind === "fence") {
|
|
37
|
+
if (b.lang === "diff" || b.lang === "patch") {
|
|
38
|
+
// Phase 206: when the diff carries `--- a/path` / `+++ b/path`
|
|
39
|
+
// headers, derive a syntax language so DiffView highlights
|
|
40
|
+
// tokens instead of dumping flat white-on-tint.
|
|
41
|
+
return (_jsx(DiffView, { lines: parseUnifiedDiff(b.body), lang: langFromDiffHeader(b.body) }, i));
|
|
42
|
+
}
|
|
43
|
+
return _jsx(CodeBlock, { lang: b.lang, body: b.body }, i);
|
|
44
|
+
}
|
|
45
|
+
if (b.kind === "heading") {
|
|
46
|
+
return _jsx(Heading, { level: b.level, segments: b.segments }, i);
|
|
47
|
+
}
|
|
48
|
+
if (b.kind === "list") {
|
|
49
|
+
return _jsx(ListBlock, { ordered: b.ordered, items: b.items }, i);
|
|
50
|
+
}
|
|
51
|
+
if (b.kind === "quote") {
|
|
52
|
+
return _jsx(Quote, { lines: b.lines }, i);
|
|
53
|
+
}
|
|
54
|
+
if (b.kind === "alert") {
|
|
55
|
+
return _jsx(AlertBox, { variant: b.variant, lines: b.lines }, i);
|
|
56
|
+
}
|
|
57
|
+
if (b.kind === "table") {
|
|
58
|
+
return (_jsx(TableBlock, { header: b.header, align: b.align, rows: b.rows }, i));
|
|
59
|
+
}
|
|
60
|
+
if (b.kind === "rule") {
|
|
61
|
+
return _jsx(Rule, {}, i);
|
|
62
|
+
}
|
|
63
|
+
return _jsx(ParaSegments, { segments: b.segments }, i);
|
|
64
|
+
}) }));
|
|
65
|
+
}
|
|
66
|
+
/** Render inline segments. Used for paragraphs, list items, quote
|
|
67
|
+
* lines, and heading bodies. */
|
|
68
|
+
function InlineRow({ segments }) {
|
|
69
|
+
if (segments.length === 0)
|
|
70
|
+
return null;
|
|
71
|
+
return (_jsx(_Fragment, { children: segments.map((s, i) => {
|
|
72
|
+
if (s.kind === "bold")
|
|
73
|
+
return (_jsx(Text, { bold: true, children: s.text }, i));
|
|
74
|
+
if (s.kind === "italic")
|
|
75
|
+
return (_jsx(Text, { italic: true, children: s.text }, i));
|
|
76
|
+
if (s.kind === "strike")
|
|
77
|
+
return (_jsx(Text, { strikethrough: true, children: s.text }, i));
|
|
78
|
+
if (s.kind === "code")
|
|
79
|
+
return (_jsx(Text, { color: theme.code.inlineColor, backgroundColor: theme.code.inlineBg, children: s.text }, i));
|
|
80
|
+
if (s.kind === "link") {
|
|
81
|
+
return (_jsxs(Text, { children: [_jsx(Text, { color: theme.md.linkTextColor, underline: true, children: s.text }), _jsxs(Text, { color: theme.md.linkUrlColor, children: [" (", s.url, ")"] })] }, i));
|
|
82
|
+
}
|
|
83
|
+
return _jsx(Text, { children: s.text }, i);
|
|
84
|
+
}) }));
|
|
85
|
+
}
|
|
86
|
+
function ParaSegments({ segments }) {
|
|
87
|
+
if (segments.length === 0)
|
|
88
|
+
return null;
|
|
89
|
+
return (_jsx(Text, { children: _jsx(InlineRow, { segments: segments }) }));
|
|
90
|
+
}
|
|
91
|
+
function Heading({ level, segments, }) {
|
|
92
|
+
const color = level === 1
|
|
93
|
+
? theme.md.h1Color
|
|
94
|
+
: level === 2
|
|
95
|
+
? theme.md.h2Color
|
|
96
|
+
: theme.md.h3Color;
|
|
97
|
+
const prefix = "#".repeat(level) + " ";
|
|
98
|
+
return (_jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: theme.md.headingPrefixColor, children: prefix }), _jsx(Text, { color: color, bold: true, children: _jsx(InlineRow, { segments: segments }) })] }));
|
|
99
|
+
}
|
|
100
|
+
// Depth-cycling bullets for nested unordered lists.
|
|
101
|
+
const BULLETS = ["•", "◦", "-"];
|
|
102
|
+
function ListBlock({ items }) {
|
|
103
|
+
return (_jsx(Box, { flexDirection: "column", children: items.map((item, i) => {
|
|
104
|
+
const marker = item.ordered
|
|
105
|
+
? `${item.marker ?? i + 1}. `
|
|
106
|
+
: `${BULLETS[item.depth % BULLETS.length]} `;
|
|
107
|
+
return (_jsxs(Text, { children: [_jsx(Text, { children: " ".repeat(item.depth) }), _jsx(Text, { color: theme.md.listMarkerColor, children: marker }), item.checked !== undefined && (_jsx(Text, { color: theme.md.checkboxColor, children: item.checked ? "☑ " : "☐ " })), _jsx(InlineRow, { segments: item.segments })] }, i));
|
|
108
|
+
}) }));
|
|
109
|
+
}
|
|
110
|
+
function Quote({ lines }) {
|
|
111
|
+
return (_jsx(Box, { flexDirection: "column", children: lines.map((seg, i) => (_jsxs(Text, { color: theme.md.quoteBodyColor, italic: true, children: [_jsx(Text, { color: theme.md.quoteGutterColor, children: "│ " }), _jsx(InlineRow, { segments: seg })] }, i))) }));
|
|
112
|
+
}
|
|
113
|
+
const ALERT_GLYPH = {
|
|
114
|
+
NOTE: "ℹ",
|
|
115
|
+
TIP: "✓",
|
|
116
|
+
IMPORTANT: "‼",
|
|
117
|
+
WARNING: "⚠",
|
|
118
|
+
CAUTION: "✗",
|
|
119
|
+
};
|
|
120
|
+
function AlertBox({ variant, lines, }) {
|
|
121
|
+
const color = theme.md.alert[variant];
|
|
122
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: color, bold: true, children: `│ ${ALERT_GLYPH[variant]} ${variant}` }), lines.map((seg, i) => (_jsxs(Text, { children: [_jsx(Text, { color: color, children: "│ " }), _jsx(InlineRow, { segments: seg })] }, i)))] }));
|
|
123
|
+
}
|
|
124
|
+
/** Flatten an inline run to the plain string the terminal will show —
|
|
125
|
+
* links render as "text (url)". */
|
|
126
|
+
function segmentsText(segs) {
|
|
127
|
+
return segs
|
|
128
|
+
.map((s) => (s.kind === "link" ? `${s.text} (${s.url})` : s.text))
|
|
129
|
+
.join("");
|
|
130
|
+
}
|
|
131
|
+
/** Display width of an inline run. Uses string-width (the same library
|
|
132
|
+
* Ink lays text out with) so CJK / emoji cells — width-2 glyphs that
|
|
133
|
+
* String.length counts as 1 — pad correctly and table borders align. */
|
|
134
|
+
function segmentsWidth(segs) {
|
|
135
|
+
return stringWidth(segmentsText(segs));
|
|
136
|
+
}
|
|
137
|
+
function padCell(width, content, align) {
|
|
138
|
+
const pad = Math.max(0, width - content);
|
|
139
|
+
if (align === "right")
|
|
140
|
+
return [pad, 0];
|
|
141
|
+
if (align === "center") {
|
|
142
|
+
const left = Math.floor(pad / 2);
|
|
143
|
+
return [left, pad - left];
|
|
144
|
+
}
|
|
145
|
+
return [0, pad];
|
|
146
|
+
}
|
|
147
|
+
/** Truncate to a display width, appending … when it doesn't fit. CJK-aware. */
|
|
148
|
+
export function truncateToWidth(text, width) {
|
|
149
|
+
if (stringWidth(text) <= width)
|
|
150
|
+
return text;
|
|
151
|
+
if (width <= 1)
|
|
152
|
+
return "…".slice(0, Math.max(0, width));
|
|
153
|
+
let out = "";
|
|
154
|
+
let w = 0;
|
|
155
|
+
for (const ch of text) {
|
|
156
|
+
const cw = stringWidth(ch);
|
|
157
|
+
if (w + cw > width - 1)
|
|
158
|
+
break; // reserve 1 col for the ellipsis
|
|
159
|
+
out += ch;
|
|
160
|
+
w += cw;
|
|
161
|
+
}
|
|
162
|
+
return out + "…";
|
|
163
|
+
}
|
|
164
|
+
/** Phase 156: shrink columns to fit a content budget (narrow / split
|
|
165
|
+
* terminals). Proportional with a per-column floor; trims the widest
|
|
166
|
+
* columns until the total fits. Returns natural widths when they fit. */
|
|
167
|
+
export function fitColumnWidths(natural, budget, minCol = 3) {
|
|
168
|
+
const total = natural.reduce((a, b) => a + b, 0);
|
|
169
|
+
if (total <= budget)
|
|
170
|
+
return natural;
|
|
171
|
+
const widths = natural.map((n) => Math.max(minCol, Math.floor((n * budget) / Math.max(1, total))));
|
|
172
|
+
let over = widths.reduce((a, b) => a + b, 0) - budget;
|
|
173
|
+
while (over > 0) {
|
|
174
|
+
let idx = -1;
|
|
175
|
+
let max = minCol;
|
|
176
|
+
for (let i = 0; i < widths.length; i++) {
|
|
177
|
+
if (widths[i] > max) {
|
|
178
|
+
max = widths[i];
|
|
179
|
+
idx = i;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (idx < 0)
|
|
183
|
+
break; // all at the floor — can't shrink further
|
|
184
|
+
widths[idx]--;
|
|
185
|
+
over--;
|
|
186
|
+
}
|
|
187
|
+
return widths;
|
|
188
|
+
}
|
|
189
|
+
function TableBlock({ header, align, rows, }) {
|
|
190
|
+
const { stdout } = useStdout();
|
|
191
|
+
const cols = header.length;
|
|
192
|
+
const natural = [];
|
|
193
|
+
for (let c = 0; c < cols; c++) {
|
|
194
|
+
let w = segmentsWidth(header[c] ?? []);
|
|
195
|
+
for (const row of rows)
|
|
196
|
+
w = Math.max(w, segmentsWidth(row[c] ?? []));
|
|
197
|
+
natural[c] = w;
|
|
198
|
+
}
|
|
199
|
+
// Phase 156: fit the whole table into the terminal width so it doesn't
|
|
200
|
+
// wrap into a broken mess in a split / narrow pane. Border overhead is
|
|
201
|
+
// "│ " (2) + " │ " per inner gap (3·(n-1)) + " │" (2) = 3n + 1.
|
|
202
|
+
const termCols = Math.max(20, stdout?.columns ?? 80);
|
|
203
|
+
const overhead = 3 * cols + 1;
|
|
204
|
+
const budget = Math.max(cols * 3, termCols - 2 - overhead); // -2: nesting margin
|
|
205
|
+
const widths = fitColumnWidths(natural, budget);
|
|
206
|
+
const border = theme.md.tableBorderColor;
|
|
207
|
+
const colAlign = (c) => align[c] ?? "left";
|
|
208
|
+
const renderRow = (cells, isHeader) => (_jsxs(Text, { children: [_jsx(Text, { color: border, children: "\u2502 " }), widths.map((w, c) => {
|
|
209
|
+
const seg = cells[c] ?? [];
|
|
210
|
+
const natW = segmentsWidth(seg);
|
|
211
|
+
const fits = natW <= w;
|
|
212
|
+
const shownW = fits ? natW : w;
|
|
213
|
+
const [lp, rp] = padCell(w, shownW, colAlign(c));
|
|
214
|
+
return (_jsxs(Text, { children: [" ".repeat(lp), fits ? (isHeader ? (_jsx(Text, { color: theme.md.tableHeaderColor, bold: true, children: _jsx(InlineRow, { segments: seg }) })) : (_jsx(InlineRow, { segments: seg }))) : (
|
|
215
|
+
// Too wide for the fitted column — clip the plain text.
|
|
216
|
+
_jsx(Text, { color: isHeader ? theme.md.tableHeaderColor : undefined, bold: isHeader, children: truncateToWidth(segmentsText(seg), w) })), " ".repeat(rp), _jsx(Text, { color: border, children: c < cols - 1 ? " │ " : " │" })] }, c));
|
|
217
|
+
})] }));
|
|
218
|
+
const divider = (_jsx(Text, { color: border, children: "├─" + widths.map((w) => "─".repeat(w)).join("─┼─") + "─┤" }));
|
|
219
|
+
return (_jsxs(Box, { flexDirection: "column", children: [renderRow(header, true), divider, rows.map((row, i) => (_jsx(Box, { children: renderRow(row, false) }, i)))] }));
|
|
220
|
+
}
|
|
221
|
+
function Rule() {
|
|
222
|
+
return (_jsx(Text, { color: theme.md.ruleColor, children: "────────────────────────────────────────" }));
|
|
223
|
+
}
|
|
224
|
+
function CodeBlock({ lang, body }) {
|
|
225
|
+
// Phase 25: run lowlight, then split the flat token list into rows
|
|
226
|
+
// at every embedded newline so each line is one <Text> with inline
|
|
227
|
+
// colored spans.
|
|
228
|
+
const tokens = highlight(lang, body);
|
|
229
|
+
const rows = [[]];
|
|
230
|
+
for (const t of tokens) {
|
|
231
|
+
const parts = t.text.split("\n");
|
|
232
|
+
for (let i = 0; i < parts.length; i++) {
|
|
233
|
+
if (parts[i].length > 0) {
|
|
234
|
+
rows[rows.length - 1].push({ text: parts[i], className: t.className });
|
|
235
|
+
}
|
|
236
|
+
if (i < parts.length - 1)
|
|
237
|
+
rows.push([]);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
// Trailing blank row from a body ending in "\n" adds no information.
|
|
241
|
+
if (rows.length > 1 && rows[rows.length - 1].length === 0)
|
|
242
|
+
rows.pop();
|
|
243
|
+
return (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, children: [lang && (_jsx(Text, { color: theme.code.langColor, dimColor: true, children: lang })), rows.map((row, i) => (_jsx(Text, { children: row.length === 0 ? (
|
|
244
|
+
// Preserve blank lines as an empty Text node so the
|
|
245
|
+
// layout doesn't collapse them.
|
|
246
|
+
_jsx(Text, { children: " " })) : (row.map((tok, j) => _jsx(TokenSpan, { token: tok }, j))) }, i)))] }));
|
|
247
|
+
}
|
|
248
|
+
function TokenSpan({ token }) {
|
|
249
|
+
const cls = token.className;
|
|
250
|
+
const color = theme.code.highlight[cls] ?? theme.code.bodyColor;
|
|
251
|
+
const italic = theme.code.highlightItalic.has(cls);
|
|
252
|
+
const bold = theme.code.highlightBold.has(cls);
|
|
253
|
+
return (_jsx(Text, { color: color, italic: italic, bold: bold, children: token.text }));
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=MarkdownText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownText.js","sourceRoot":"","sources":["../../../src/ui/components/MarkdownText.tsx"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,iEAAiE;AACjE,EAAE;AACF,uEAAuE;AACvE,mEAAmE;AACnE,uCAAuC;AACvC,EAAE;AACF,qEAAqE;AACrE,sEAAsE;AACtE,mEAAmE;AACnE,sEAAsE;AACtE,sEAAsE;AACtE,0CAA0C;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EAML,uBAAuB,EAEvB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAoB,MAAM,cAAc,CAAC;AAM3D,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAS;IAC1C,mEAAmE;IACnE,+DAA+D;IAC/D,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,MAAM,CAAwB,uBAAuB,CAAC,CAAC;IACxE,IAAI,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,QAAQ,CAAC,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;IACvC,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACnB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC5C,+DAA+D;oBAC/D,2DAA2D;oBAC3D,gDAAgD;oBAChD,OAAO,CACL,KAAC,QAAQ,IAEP,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,EAC/B,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAF3B,CAAC,CAGN,CACH,CAAC;gBACJ,CAAC;gBACD,OAAO,KAAC,SAAS,IAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAA7B,CAAC,CAAgC,CAAC;YAC3D,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,KAAC,OAAO,IAAS,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAvC,CAAC,CAA0C,CAAC;YACnE,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO,KAAC,SAAS,IAAS,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAArC,CAAC,CAAwC,CAAC;YACnE,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,KAAC,KAAK,IAAS,KAAK,EAAE,CAAC,CAAC,KAAK,IAAjB,CAAC,CAAoB,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,KAAC,QAAQ,IAAS,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAArC,CAAC,CAAwC,CAAC;YAClE,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,CACL,KAAC,UAAU,IAET,MAAM,EAAE,CAAC,CAAC,MAAM,EAChB,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAHP,CAAC,CAIN,CACH,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO,KAAC,IAAI,MAAM,CAAC,CAAI,CAAC;YAC1B,CAAC;YACD,OAAO,KAAC,YAAY,IAAS,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAvB,CAAC,CAA0B,CAAC;QACxD,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED;iCACiC;AACjC,SAAS,SAAS,CAAC,EAAE,QAAQ,EAAiC;IAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,CACL,4BACG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;gBACnB,OAAO,CACL,KAAC,IAAI,IAAS,IAAI,kBACf,CAAC,CAAC,IAAI,IADE,CAAC,CAEL,CACR,CAAC;YACJ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBACrB,OAAO,CACL,KAAC,IAAI,IAAS,MAAM,kBACjB,CAAC,CAAC,IAAI,IADE,CAAC,CAEL,CACR,CAAC;YACJ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBACrB,OAAO,CACL,KAAC,IAAI,IAAS,aAAa,kBACxB,CAAC,CAAC,IAAI,IADE,CAAC,CAEL,CACR,CAAC;YACJ,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;gBACnB,OAAO,CACL,KAAC,IAAI,IAEH,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAC7B,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,YAEnC,CAAC,CAAC,IAAI,IAJF,CAAC,CAKD,CACR,CAAC;YACJ,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,kBAC3C,CAAC,CAAC,IAAI,GACF,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,mBAAK,CAAC,CAAC,GAAG,SAAS,KAJ5C,CAAC,CAKL,CACR,CAAC;YACJ,CAAC;YACD,OAAO,KAAC,IAAI,cAAU,CAAC,CAAC,IAAI,IAAV,CAAC,CAAiB,CAAC;QACvC,CAAC,CAAC,GACD,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,QAAQ,EAAiC;IAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,CACL,KAAC,IAAI,cACH,KAAC,SAAS,IAAC,QAAQ,EAAE,QAAQ,GAAI,GAC5B,CACR,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EACf,KAAK,EACL,QAAQ,GAIT;IACC,MAAM,KAAK,GACT,KAAK,KAAK,CAAC;QACT,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;QAClB,CAAC,CAAC,KAAK,KAAK,CAAC;YACX,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO;YAClB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;IACzB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;IACvC,OAAO,CACL,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,aACf,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,YAAG,MAAM,GAAQ,EACzD,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,kBACtB,KAAC,SAAS,IAAC,QAAQ,EAAE,QAAQ,GAAI,GAC5B,IACH,CACP,CAAC;AACJ,CAAC;AAED,oDAAoD;AACpD,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAEzC,SAAS,SAAS,CAAC,EAAE,KAAK,EAA2C;IACnE,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;gBACzB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI;gBAC7B,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YAC/C,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,cAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAQ,EACtC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,YAAG,MAAM,GAAQ,EACrD,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAC7B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,YAChC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GACtB,CACR,EACD,KAAC,SAAS,IAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAI,KAR7B,CAAC,CASL,CACR,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,EAAE,KAAK,EAAgC;IACpD,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACrB,MAAC,IAAI,IAAS,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,mBAClD,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,YAAG,IAAI,GAAQ,EACrD,KAAC,SAAS,IAAC,QAAQ,EAAE,GAAG,GAAI,KAFnB,CAAC,CAGL,CACR,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAiC;IAChD,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,GAAG;IACR,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;CACb,CAAC;AAEF,SAAS,QAAQ,CAAC,EAChB,OAAO,EACP,KAAK,GAIN;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,kBACrB,KAAK,WAAW,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,GAClC,EACN,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACrB,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,YAAG,IAAI,GAAQ,EACjC,KAAC,SAAS,IAAC,QAAQ,EAAE,GAAG,GAAI,KAFnB,CAAC,CAGL,CACR,CAAC,IACE,CACP,CAAC;AACJ,CAAC;AAED;oCACoC;AACpC,SAAS,YAAY,CAAC,IAAqB;IACzC,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACjE,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;yEAEyE;AACzE,SAAS,aAAa,CAAC,IAAqB;IAC1C,OAAO,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,OAAO,CACd,KAAa,EACb,OAAe,EACf,KAAY;IAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa;IACzD,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACxD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;YAAE,MAAM,CAAC,iCAAiC;QAChE,GAAG,IAAI,EAAE,CAAC;QACV,CAAC,IAAI,EAAE,CAAC;IACV,CAAC;IACD,OAAO,GAAG,GAAG,GAAG,CAAC;AACnB,CAAC;AAED;;0EAE0E;AAC1E,MAAM,UAAU,eAAe,CAC7B,OAAiB,EACjB,MAAc,EACd,MAAM,GAAG,CAAC;IAEV,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,IAAI,KAAK,IAAI,MAAM;QAAE,OAAO,OAAO,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAChE,CAAC;IACF,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;IACtD,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC;QAChB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;QACb,IAAI,GAAG,GAAG,MAAM,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;gBACpB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAChB,GAAG,GAAG,CAAC,CAAC;YACV,CAAC;QACH,CAAC;QACD,IAAI,GAAG,GAAG,CAAC;YAAE,MAAM,CAAC,0CAA0C;QAC9D,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACd,IAAI,EAAE,CAAC;IACT,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,EAClB,MAAM,EACN,KAAK,EACL,IAAI,GAKL;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,uEAAuE;IACvE,uEAAuE;IACvE,gEAAgE;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,qBAAqB;IACjF,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC;IACzC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IAE1D,MAAM,SAAS,GAAG,CAAC,KAAwB,EAAE,QAAiB,EAAE,EAAE,CAAC,CACjE,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,wBAAW,EAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACnB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,OAAO,CACL,MAAC,IAAI,eACF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EACd,IAAI,CAAC,CAAC,CAAC,CACN,QAAQ,CAAC,CAAC,CAAC,CACT,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,kBAC1C,KAAC,SAAS,IAAC,QAAQ,EAAE,GAAG,GAAI,GACvB,CACR,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,IAAC,QAAQ,EAAE,GAAG,GAAI,CAC7B,CACF,CAAC,CAAC,CAAC;wBACF,wDAAwD;wBACxD,KAAC,IAAI,IACH,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,EACvD,IAAI,EAAE,QAAQ,YAEb,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GACjC,CACR,EACA,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EACf,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,YAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAQ,KApBhD,CAAC,CAqBL,CACR,CAAC;YACJ,CAAC,CAAC,IACG,CACR,CAAC;IAEF,MAAM,OAAO,GAAG,CACd,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,YAChB,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GACtD,CACR,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,EACvB,OAAO,EACP,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,KAAC,GAAG,cAAU,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,IAAzB,CAAC,CAA+B,CAC3C,CAAC,IACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,IAAI;IACX,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,YAC5B,0CAA0C,GACtC,CACR,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAkC;IAC/D,mEAAmE;IACnE,mEAAmE;IACnE,iBAAiB;IACjB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAoB,CAAC,EAAE,CAAC,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,qEAAqE;IACrE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IACtE,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,aACvC,IAAI,IAAI,CACP,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,kBACxC,IAAI,GACA,CACR,EACA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,KAAC,IAAI,cACF,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClB,oDAAoD;gBACpD,gCAAgC;gBAChC,KAAC,IAAI,oBAAS,CACf,CAAC,CAAC,CAAC,CACF,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAC,SAAS,IAAS,KAAK,EAAE,GAAG,IAAb,CAAC,CAAgB,CAAC,CACvD,IAPQ,CAAC,CAQL,CACR,CAAC,IACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,KAAK,EAA0B;IAClD,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;IAC5B,MAAM,KAAK,GACR,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAwB,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;IAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,YAC3C,KAAK,CAAC,IAAI,GACN,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PermissionRequest } from "../types.js";
|
|
2
|
+
interface Props {
|
|
3
|
+
request: PermissionRequest;
|
|
4
|
+
onResolved: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function PermissionPrompt({ request, onResolved }: Props): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=PermissionPrompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionPrompt.d.ts","sourceRoot":"","sources":["../../../src/ui/components/PermissionPrompt.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,UAAU,KAAK;IACb,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAcD,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,KAAK,2CAwC9D"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text, useInput } from "ink";
|
|
3
|
+
import { respondRequest } from "../outbound.js";
|
|
4
|
+
// Phase 10-b prompt: shown when an inbound `request/tool_permission`
|
|
5
|
+
// arrives. Captures y / a / n keys, sends the matching JSON-RPC
|
|
6
|
+
// response, and signals the parent to dequeue.
|
|
7
|
+
//
|
|
8
|
+
// Keys:
|
|
9
|
+
// y allow this call only (remember=false)
|
|
10
|
+
// a allow + remember: the gate allowlists this tool for the
|
|
11
|
+
// rest of the session, so it isn't re-prompted (remember=true)
|
|
12
|
+
// n / Esc deny this call
|
|
13
|
+
//
|
|
14
|
+
// Only one prompt is mounted at a time; if multiple requests stack up
|
|
15
|
+
// the parent queues them and surfaces them one by one.
|
|
16
|
+
export function PermissionPrompt({ request, onResolved }) {
|
|
17
|
+
const { name, input } = request.params;
|
|
18
|
+
useInput((char, key) => {
|
|
19
|
+
if (char === "y") {
|
|
20
|
+
respondRequest(request.id, { allow: true, remember: false });
|
|
21
|
+
onResolved();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (char === "a") {
|
|
25
|
+
respondRequest(request.id, { allow: true, remember: true });
|
|
26
|
+
onResolved();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (char === "n" || key.escape) {
|
|
30
|
+
respondRequest(request.id, { allow: false, remember: false });
|
|
31
|
+
onResolved();
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return (_jsxs(Box, { borderStyle: "round", borderColor: "yellow", flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "yellow", children: "permission required" }), _jsxs(Text, { children: ["tool: ", _jsx(Text, { bold: true, children: name })] }), _jsxs(Text, { dimColor: true, children: ["input: ", JSON.stringify(input)] }), _jsxs(Text, { dimColor: true, children: ["[y] allow once ", " ", "[a] allow always ", " ", "[n] deny"] })] }));
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=PermissionPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionPrompt.js","sourceRoot":"","sources":["../../../src/ui/components/PermissionPrompt.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQhD,qEAAqE;AACrE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,QAAQ;AACR,kDAAkD;AAClD,oEAAoE;AACpE,yEAAyE;AACzE,2BAA2B;AAC3B,EAAE;AACF,sEAAsE;AACtE,uDAAuD;AACvD,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAS;IAC7D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEvC,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACrB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7D,UAAU,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,UAAU,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9D,UAAU,EAAE,CAAC;YACb,OAAO;QACT,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IACF,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,QAAQ,EACpB,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,aAEX,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,QAAQ,oCAElB,EACP,MAAC,IAAI,yBACG,KAAC,IAAI,IAAC,IAAI,kBAAE,IAAI,GAAQ,IACzB,EACP,MAAC,IAAI,IAAC,QAAQ,8BAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAQ,EACpD,MAAC,IAAI,IAAC,QAAQ,sCACI,IAAI,uBAAmB,IAAI,gBACtC,IACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
interface SessionRow {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
timestamp?: number;
|
|
5
|
+
cwd?: string;
|
|
6
|
+
/** Phase 76: per-session provider, set in cross-provider "all" mode. */
|
|
7
|
+
sessionProvider?: string;
|
|
8
|
+
}
|
|
9
|
+
interface Props {
|
|
10
|
+
provider: string;
|
|
11
|
+
sessions: readonly SessionRow[];
|
|
12
|
+
onClose: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function SessionPicker({ provider, sessions, onClose }: Props): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=SessionPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionPicker.d.ts","sourceRoot":"","sources":["../../../src/ui/components/SessionPicker.tsx"],"names":[],"mappings":"AAWA,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAWD,UAAU,KAAK;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAsBD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,2CAkInE"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// Phase 26: interactive session picker.
|
|
3
|
+
//
|
|
4
|
+
// Replaces the CommandInput while open. Arrow keys move the cursor,
|
|
5
|
+
// Enter selects, Esc cancels. The list scrolls when it exceeds
|
|
6
|
+
// VIEWPORT rows so a 50-session history doesn't blow the layout.
|
|
7
|
+
import { useEffect, useState } from "react";
|
|
8
|
+
import { Box, Text, useInput } from "ink";
|
|
9
|
+
import { sendPickerClose, sendSessionSelect } from "../outbound.js";
|
|
10
|
+
import { theme } from "../theme.js";
|
|
11
|
+
/** Phase 76: compact provider tag for the picker column. */
|
|
12
|
+
function providerTag(p) {
|
|
13
|
+
if (!p)
|
|
14
|
+
return "";
|
|
15
|
+
if (p === "claude-cli")
|
|
16
|
+
return "claude";
|
|
17
|
+
if (p === "codex-cli")
|
|
18
|
+
return "codex";
|
|
19
|
+
if (p === "gemini-cli")
|
|
20
|
+
return "gemini";
|
|
21
|
+
return p;
|
|
22
|
+
}
|
|
23
|
+
const VIEWPORT = 10;
|
|
24
|
+
function shortId(id) {
|
|
25
|
+
return id.length <= 12 ? id : id.slice(0, 8);
|
|
26
|
+
}
|
|
27
|
+
function relativeAge(ts) {
|
|
28
|
+
if (!ts)
|
|
29
|
+
return "";
|
|
30
|
+
const diffMs = Date.now() - ts;
|
|
31
|
+
if (diffMs < 0)
|
|
32
|
+
return "";
|
|
33
|
+
const s = Math.floor(diffMs / 1000);
|
|
34
|
+
if (s < 60)
|
|
35
|
+
return `${s}s ago`;
|
|
36
|
+
const m = Math.floor(s / 60);
|
|
37
|
+
if (m < 60)
|
|
38
|
+
return `${m}m ago`;
|
|
39
|
+
const h = Math.floor(m / 60);
|
|
40
|
+
if (h < 24)
|
|
41
|
+
return `${h}h ago`;
|
|
42
|
+
const d = Math.floor(h / 24);
|
|
43
|
+
return `${d}d ago`;
|
|
44
|
+
}
|
|
45
|
+
export function SessionPicker({ provider, sessions, onClose }) {
|
|
46
|
+
const [cursor, setCursor] = useState(0);
|
|
47
|
+
const [viewStart, setViewStart] = useState(0);
|
|
48
|
+
// Reset cursor when a new picker opens.
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
setCursor(0);
|
|
51
|
+
setViewStart(0);
|
|
52
|
+
}, [sessions]);
|
|
53
|
+
useInput((_input, key) => {
|
|
54
|
+
if (sessions.length === 0) {
|
|
55
|
+
if (key.escape || key.return) {
|
|
56
|
+
sendPickerClose();
|
|
57
|
+
onClose();
|
|
58
|
+
}
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (key.escape) {
|
|
62
|
+
sendPickerClose();
|
|
63
|
+
onClose();
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (key.return) {
|
|
67
|
+
const picked = sessions[cursor];
|
|
68
|
+
if (picked) {
|
|
69
|
+
sendSessionSelect(picked.id, picked.sessionProvider);
|
|
70
|
+
onClose();
|
|
71
|
+
}
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (key.upArrow) {
|
|
75
|
+
setCursor((c) => {
|
|
76
|
+
const next = Math.max(0, c - 1);
|
|
77
|
+
if (next < viewStart)
|
|
78
|
+
setViewStart(next);
|
|
79
|
+
return next;
|
|
80
|
+
});
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (key.downArrow) {
|
|
84
|
+
setCursor((c) => {
|
|
85
|
+
const next = Math.min(sessions.length - 1, c + 1);
|
|
86
|
+
if (next >= viewStart + VIEWPORT)
|
|
87
|
+
setViewStart(next - VIEWPORT + 1);
|
|
88
|
+
return next;
|
|
89
|
+
});
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (key.pageUp) {
|
|
93
|
+
setCursor((c) => {
|
|
94
|
+
const next = Math.max(0, c - VIEWPORT);
|
|
95
|
+
setViewStart(Math.max(0, next));
|
|
96
|
+
return next;
|
|
97
|
+
});
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (key.pageDown) {
|
|
101
|
+
setCursor((c) => {
|
|
102
|
+
const next = Math.min(sessions.length - 1, c + VIEWPORT);
|
|
103
|
+
setViewStart(Math.max(0, next - VIEWPORT + 1));
|
|
104
|
+
return next;
|
|
105
|
+
});
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
const visible = sessions.slice(viewStart, viewStart + VIEWPORT);
|
|
110
|
+
return (_jsxs(Box, { borderStyle: "round", borderColor: theme.picker.borderColor, flexDirection: "column", paddingX: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: theme.picker.headerColor, bold: true, children: "sessions" }), _jsxs(Text, { color: theme.picker.idColor, children: [" ", provider === "all" ? "all providers" : `(${provider})`, " ", sessions.length, " total \u00B7 \u2191/\u2193 Enter to resume \u00B7 Esc to cancel"] })] }), sessions.length === 0 ? (_jsx(Box, { children: _jsx(Text, { color: theme.picker.idColor, children: "(no sessions found)" }) })) : (visible.map((s, i) => {
|
|
111
|
+
const absoluteIdx = viewStart + i;
|
|
112
|
+
const selected = absoluteIdx === cursor;
|
|
113
|
+
return (_jsxs(Box, { children: [_jsxs(Text, { color: selected ? theme.picker.selectedColor : theme.picker.rowColor, backgroundColor: selected ? theme.picker.selectedBg : undefined, children: [selected ? theme.picker.pointer + " " : " ", s.label] }), provider === "all" && s.sessionProvider && (_jsx(Text, { color: theme.status.tabColor, children: " [" + providerTag(s.sessionProvider) + "]" })), _jsxs(Text, { color: theme.picker.idColor, children: [" ", shortId(s.id)] }), s.timestamp && (_jsxs(Text, { color: theme.picker.timestampColor, children: [" ", "(", relativeAge(s.timestamp), ")"] }))] }, `${s.sessionProvider ?? provider}:${s.id}`));
|
|
114
|
+
})), sessions.length > VIEWPORT && (_jsx(Box, { children: _jsxs(Text, { color: theme.picker.idColor, children: ["showing ", viewStart + 1, "\u2013", Math.min(viewStart + VIEWPORT, sessions.length), " of", " ", sessions.length] }) }))] }));
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=SessionPicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionPicker.js","sourceRoot":"","sources":["../../../src/ui/components/SessionPicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SlashEntry } from "../slashCatalog.js";
|
|
2
|
+
interface Props {
|
|
3
|
+
items: SlashEntry[];
|
|
4
|
+
selectedIdx: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function SlashPalette({ items, selectedIdx }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=SlashPalette.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlashPalette.d.ts","sourceRoot":"","sources":["../../../src/ui/components/SlashPalette.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKrD,UAAU,KAAK;IACb,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,kDA4DzD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// Phase 65: rich slash-command palette.
|
|
3
|
+
//
|
|
4
|
+
// Shown while the user is typing `/<prefix>`. Each row gives the
|
|
5
|
+
// name, argument signature, and a short description. The selected
|
|
6
|
+
// row uses the picker highlight; ↑/↓ cycle, Tab/Enter accept (logic
|
|
7
|
+
// in CommandInput).
|
|
8
|
+
//
|
|
9
|
+
// Phase 231: fixed-height slot so typing into the palette doesn't
|
|
10
|
+
// cause every chat row above to jump as the suggestion list
|
|
11
|
+
// shrinks. Capped to MAX_VISIBLE rows; once the cap is hit the
|
|
12
|
+
// selected row scrolls into view. Below the cap, empty rows pad
|
|
13
|
+
// the slot so the input prompt stays anchored.
|
|
14
|
+
import { Box, Text } from "ink";
|
|
15
|
+
import { theme } from "../theme.js";
|
|
16
|
+
const MAX_VISIBLE = 7;
|
|
17
|
+
export function SlashPalette({ items, selectedIdx }) {
|
|
18
|
+
if (items.length === 0)
|
|
19
|
+
return null;
|
|
20
|
+
// Scroll window — keep the selected item in view when the list
|
|
21
|
+
// exceeds MAX_VISIBLE.
|
|
22
|
+
let start = 0;
|
|
23
|
+
if (items.length > MAX_VISIBLE) {
|
|
24
|
+
if (selectedIdx >= MAX_VISIBLE) {
|
|
25
|
+
start = Math.min(items.length - MAX_VISIBLE, selectedIdx - MAX_VISIBLE + 1);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const visible = items.slice(start, start + MAX_VISIBLE);
|
|
29
|
+
const padCount = MAX_VISIBLE - visible.length;
|
|
30
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: _jsxs(Text, { color: theme.prompt.suggestionsLabelColor, children: [" ", "/ commands \u2014 \u2191/\u2193 \u00B7 Tab accept", items.length > MAX_VISIBLE
|
|
31
|
+
? ` (${selectedIdx + 1}/${items.length})`
|
|
32
|
+
: ""] }) }), visible.map((it, i) => {
|
|
33
|
+
const globalIdx = start + i;
|
|
34
|
+
const head = `/${it.name}${it.args ? " " + it.args : ""}`;
|
|
35
|
+
const selected = globalIdx === selectedIdx;
|
|
36
|
+
return (_jsxs(Box, { children: [_jsxs(Text, { color: selected
|
|
37
|
+
? theme.picker.selectedColor
|
|
38
|
+
: theme.prompt.suggestionColor, backgroundColor: selected ? theme.picker.selectedBg : undefined, bold: selected, children: [selected ? ` ${theme.picker.pointer} ` : " ", head] }), _jsx(Text, { color: theme.prompt.suggestionsLabelColor, children: " — " + it.desc })] }, it.name));
|
|
39
|
+
}), Array.from({ length: padCount }).map((_, i) => (_jsx(Box, { children: _jsx(Text, { children: " " }) }, `pad-${i}`)))] }));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=SlashPalette.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlashPalette.js","sourceRoot":"","sources":["../../../src/ui/components/SlashPalette.tsx"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,EAAE;AACF,iEAAiE;AACjE,kEAAkE;AAClE,oEAAoE;AACpE,oBAAoB;AACpB,EAAE;AACF,kEAAkE;AAClE,4DAA4D;AAC5D,+DAA+D;AAC/D,gEAAgE;AAChE,+CAA+C;AAE/C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,GAAG,CAAC,CAAC;AAOtB,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,WAAW,EAAS;IACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,+DAA+D;IAC/D,uBAAuB;IACvB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QAC/B,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;YAC/B,KAAK,GAAG,IAAI,CAAC,GAAG,CACd,KAAK,CAAC,MAAM,GAAG,WAAW,EAC1B,WAAW,GAAG,WAAW,GAAG,CAAC,CAC9B,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9C,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,qBAAqB,aAC5C,IAAI,uDACJ,KAAK,CAAC,MAAM,GAAG,WAAW;4BACzB,CAAC,CAAC,OAAO,WAAW,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG;4BAC3C,CAAC,CAAC,EAAE,IACD,GACH,EACL,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;gBACrB,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;gBAC5B,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC1D,MAAM,QAAQ,GAAG,SAAS,KAAK,WAAW,CAAC;gBAC3C,OAAO,CACL,MAAC,GAAG,eACF,MAAC,IAAI,IACH,KAAK,EACH,QAAQ;gCACN,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa;gCAC5B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAElC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAC/D,IAAI,EAAE,QAAQ,aAEb,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,EAChD,IAAI,IACA,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,qBAAqB,YAC5C,MAAM,GAAG,EAAE,CAAC,IAAI,GACZ,KAfC,EAAE,CAAC,IAAI,CAgBX,CACP,CAAC;YACJ,CAAC,CAAC,EAID,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC9C,KAAC,GAAG,cACF,KAAC,IAAI,oBAAS,IADN,OAAO,CAAC,EAAE,CAEd,CACP,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
|
+
interface Props {
|
|
3
|
+
label?: string;
|
|
4
|
+
/** Phase 200a: ref to the live char counter on App. The Spinner
|
|
5
|
+
* reads it on each animation tick; App doesn't re-render per
|
|
6
|
+
* chunk. Divides by ~4 (rough chars-per-token avg for English/code
|
|
7
|
+
* mix) to display an approximate streamed-token count. */
|
|
8
|
+
streamedCharsRef?: RefObject<number>;
|
|
9
|
+
/** Phase 332: current activity, read on each tick (a ref so changing
|
|
10
|
+
* activity mid-turn — tool starts/ends — never re-renders App and
|
|
11
|
+
* disturbs the cursor/IME). Drives the work-type icon + descriptor. */
|
|
12
|
+
activityRef?: RefObject<Activity>;
|
|
13
|
+
/** Phase 236c: ms-epoch when the active tab's turn started, sourced
|
|
14
|
+
* from `tabsState[active].runningSince`. Pre-236c the Spinner kept
|
|
15
|
+
* its own startedAt useRef on mount — switching tabs while another
|
|
16
|
+
* tab was streaming reused the previous tab's startedAt and the
|
|
17
|
+
* elapsed counter looked synced to the wrong tab. */
|
|
18
|
+
startedAt?: number;
|
|
19
|
+
}
|
|
20
|
+
export type ActivityKind = "streaming" | "thinking" | "tool" | "compacting" | "handoff" | "team";
|
|
21
|
+
export interface Activity {
|
|
22
|
+
kind: ActivityKind;
|
|
23
|
+
detail?: string;
|
|
24
|
+
}
|
|
25
|
+
/** Map an activity to its spinner descriptor: a type icon, the text, and
|
|
26
|
+
* whether a "↓ Ntok" streamed-output readout is meaningful (only when omg
|
|
27
|
+
* actually receives streamed text — a turn reply or a compaction summary;
|
|
28
|
+
* not a tool whose output arrives all-at-once at the end). */
|
|
29
|
+
export declare function describeActivity(act: Activity, label: string | undefined): {
|
|
30
|
+
icon: string;
|
|
31
|
+
text: string;
|
|
32
|
+
showTokens: boolean;
|
|
33
|
+
};
|
|
34
|
+
export declare function shellActivityVerb(command: string): string | null;
|
|
35
|
+
export declare function Spinner({ label, streamedCharsRef, startedAt, activityRef, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=Spinner.d.ts.map
|