@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,450 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// Phase 22 rewrite.
|
|
3
|
+
//
|
|
4
|
+
// We no longer render one row per Notification verbatim. Instead the
|
|
5
|
+
// stream is grouped into render units that match how a reader thinks
|
|
6
|
+
// about a conversation:
|
|
7
|
+
//
|
|
8
|
+
// - Consecutive event/text chunks → a single MarkdownText block,
|
|
9
|
+
// so streamed deltas join into one paragraph and fenced code
|
|
10
|
+
// blocks straddle chunk boundaries without fragmenting.
|
|
11
|
+
// - event/tool_use_start + matching event/tool_use_end → a single
|
|
12
|
+
// ToolCallCard so the user sees one bordered unit per call,
|
|
13
|
+
// instead of a start row and a far-away end row.
|
|
14
|
+
// - event/end / event/verdict / dangling tool ends → one row each,
|
|
15
|
+
// same as before.
|
|
16
|
+
//
|
|
17
|
+
// In normal-screen transcript mode, Static commits past groups to
|
|
18
|
+
// scrollback once they're "settled" (i.e. text groups followed by
|
|
19
|
+
// something else, tool cards that have their end, and compact batches
|
|
20
|
+
// whose shape can no longer change). Live tail is the active group
|
|
21
|
+
// plus anything that might still mutate. Alt-screen keeps the
|
|
22
|
+
// viewport renderer because alternate buffers have no usable native
|
|
23
|
+
// scrollback during the session.
|
|
24
|
+
import { memo } from "react";
|
|
25
|
+
import { Box, Static, Text, useStdout } from "ink";
|
|
26
|
+
import stringWidth from "string-width";
|
|
27
|
+
import { MarkdownText } from "./MarkdownText.js";
|
|
28
|
+
import { ToolCallCard } from "./ToolCallCard.js";
|
|
29
|
+
import { ThinkingBlock } from "./ThinkingBlock.js";
|
|
30
|
+
import { theme, verdictColor, verdictIcon } from "../theme.js";
|
|
31
|
+
const LIGHTWEIGHT_TOOLS = new Set([
|
|
32
|
+
"Read",
|
|
33
|
+
"Glob",
|
|
34
|
+
"Grep",
|
|
35
|
+
"LS",
|
|
36
|
+
"WebSearch",
|
|
37
|
+
"WebFetch",
|
|
38
|
+
]);
|
|
39
|
+
function isLightweightOk(g) {
|
|
40
|
+
if (!g.end)
|
|
41
|
+
return false;
|
|
42
|
+
if (!LIGHTWEIGHT_TOOLS.has(g.start.params.name))
|
|
43
|
+
return false;
|
|
44
|
+
// Only batch successful calls — keep failures visible on their own.
|
|
45
|
+
const result = g.end.params.result;
|
|
46
|
+
if (typeof result === "object" &&
|
|
47
|
+
result !== null &&
|
|
48
|
+
"ok" in result &&
|
|
49
|
+
result.ok === false) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
function groupEvents(events) {
|
|
55
|
+
const groups = [];
|
|
56
|
+
let textBuf = "";
|
|
57
|
+
let thinkBuf = "";
|
|
58
|
+
const flushText = () => {
|
|
59
|
+
if (textBuf.length > 0) {
|
|
60
|
+
groups.push({ kind: "text", text: textBuf });
|
|
61
|
+
textBuf = "";
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const flushThink = () => {
|
|
65
|
+
if (thinkBuf.length > 0) {
|
|
66
|
+
groups.push({ kind: "thinking", text: thinkBuf });
|
|
67
|
+
thinkBuf = "";
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
for (const ev of events) {
|
|
71
|
+
if (ev.method === "event/text") {
|
|
72
|
+
// Phase 143: a discrete `◆ …` team line renders as its own header
|
|
73
|
+
// group instead of coalescing into the surrounding prose.
|
|
74
|
+
if (ev.params.text.trim().startsWith("◆")) {
|
|
75
|
+
flushText();
|
|
76
|
+
flushThink();
|
|
77
|
+
groups.push({ kind: "team-banner", text: ev.params.text.trim() });
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
flushThink();
|
|
81
|
+
textBuf += ev.params.text;
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (ev.method === "event/thinking") {
|
|
85
|
+
flushText();
|
|
86
|
+
thinkBuf += ev.params.text;
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (ev.method === "event/user_echo") {
|
|
90
|
+
flushText();
|
|
91
|
+
flushThink();
|
|
92
|
+
// Phase 140: collapse a duplicate echo of the same message. When a
|
|
93
|
+
// team is launched mid-conversation the message can be echoed
|
|
94
|
+
// twice (UI-side Phase 115 + team-handler Phase 117); de-dupe the
|
|
95
|
+
// adjacent identical user line so the scrollback shows it once.
|
|
96
|
+
const last = groups[groups.length - 1];
|
|
97
|
+
if (last && last.kind === "user" && last.text === ev.params.text) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
groups.push({ kind: "user", text: ev.params.text });
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
flushText();
|
|
104
|
+
flushThink();
|
|
105
|
+
if (ev.method === "event/tool_use_start") {
|
|
106
|
+
groups.push({ kind: "tool", start: ev, progress: "" });
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (ev.method === "event/tool_use_progress") {
|
|
110
|
+
// Phase 79: append progress text to the matching tool group.
|
|
111
|
+
// We walk backwards because the most recent matching start is
|
|
112
|
+
// typically the one in flight.
|
|
113
|
+
for (let i = groups.length - 1; i >= 0; i--) {
|
|
114
|
+
const g = groups[i];
|
|
115
|
+
if (g.kind === "tool" &&
|
|
116
|
+
!g.end &&
|
|
117
|
+
g.start.params.id === ev.params.id) {
|
|
118
|
+
g.progress += ev.params.text;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
if (ev.method === "event/tool_use_end") {
|
|
125
|
+
// Attach to the most recent unended tool with matching id.
|
|
126
|
+
for (let i = groups.length - 1; i >= 0; i--) {
|
|
127
|
+
const g = groups[i];
|
|
128
|
+
if (g.kind === "tool" && !g.end && g.start.params.id === ev.params.id) {
|
|
129
|
+
g.end = ev;
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// Phase 111: a tool_use_end with no matching start is noise —
|
|
134
|
+
// it happens when a Task/subagent runs its own tools whose
|
|
135
|
+
// start events omg never saw. The old "(orphan tool end)
|
|
136
|
+
// toolu_…" rows just cluttered the log. Drop them silently.
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (ev.method === "event/end") {
|
|
140
|
+
groups.push({ kind: "end", event: ev });
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
if (ev.method === "event/verdict") {
|
|
144
|
+
groups.push({ kind: "verdict", event: ev });
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
// status / stream_start / stream_end are consumed by App, not
|
|
148
|
+
// EventLog, so we don't see them here.
|
|
149
|
+
}
|
|
150
|
+
flushText();
|
|
151
|
+
flushThink();
|
|
152
|
+
return groups;
|
|
153
|
+
}
|
|
154
|
+
/** Phase 97: walk the group list once and fold runs of ≥2
|
|
155
|
+
* consecutive lightweight-successful tool groups into a single
|
|
156
|
+
* `tool-batch` group. Standalone calls (one lightweight tool, or
|
|
157
|
+
* a heavy tool, or a failure) stay verbatim. */
|
|
158
|
+
function collapseLightweightBatches(groups) {
|
|
159
|
+
const out = [];
|
|
160
|
+
for (const g of groups) {
|
|
161
|
+
if (g.kind === "tool" && isLightweightOk(g)) {
|
|
162
|
+
const last = out[out.length - 1];
|
|
163
|
+
if (last && last.kind === "tool-batch") {
|
|
164
|
+
last.tools.push(g);
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
if (last && last.kind === "tool" && isLightweightOk(last)) {
|
|
168
|
+
out.pop();
|
|
169
|
+
out.push({ kind: "tool-batch", tools: [last, g] });
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
out.push(g);
|
|
174
|
+
}
|
|
175
|
+
return out;
|
|
176
|
+
}
|
|
177
|
+
function isSettledForTranscript(g, index, lastIndex, streaming) {
|
|
178
|
+
// During an active stream, final text/thinking groups can still
|
|
179
|
+
// absorb more chunks. End/verdict/user rows cannot, so do not drag
|
|
180
|
+
// an old turn boundary back into the live region on stream_start.
|
|
181
|
+
if (g.kind === "text" || g.kind === "thinking") {
|
|
182
|
+
return !(streaming && index === lastIndex);
|
|
183
|
+
}
|
|
184
|
+
if (g.kind === "tool") {
|
|
185
|
+
if (!g.end)
|
|
186
|
+
return false;
|
|
187
|
+
// A trailing lightweight success may still fold into a compact
|
|
188
|
+
// batch if the next tool is another successful Read/Grep/LS/etc.
|
|
189
|
+
if (streaming && index === lastIndex && isLightweightOk(g))
|
|
190
|
+
return false;
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
function canStartLightweightRun(g) {
|
|
196
|
+
if (!g || g.kind !== "tool")
|
|
197
|
+
return false;
|
|
198
|
+
return LIGHTWEIGHT_TOOLS.has(g.start.params.name);
|
|
199
|
+
}
|
|
200
|
+
function isLightweightSuccessGroup(g) {
|
|
201
|
+
return Boolean(g && g.kind === "tool" && isLightweightOk(g));
|
|
202
|
+
}
|
|
203
|
+
function splitTranscriptGroups(groups, streaming) {
|
|
204
|
+
if (groups.length === 0)
|
|
205
|
+
return { committed: [], live: [] };
|
|
206
|
+
const lastIndex = groups.length - 1;
|
|
207
|
+
let commitEnd = groups.length;
|
|
208
|
+
for (let i = 0; i < groups.length; i++) {
|
|
209
|
+
if (!isSettledForTranscript(groups[i], i, lastIndex, streaming)) {
|
|
210
|
+
commitEnd = i;
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// Compact mode can fold adjacent successful lightweight tools into
|
|
215
|
+
// a single "Read 2, Searched 1" row. Do not Static-commit a trailing
|
|
216
|
+
// lightweight-success run while the stream is still active, because
|
|
217
|
+
// the next in-flight lightweight tool may later join that batch. By
|
|
218
|
+
// holding the run in the live region, <Static>'s append-only index
|
|
219
|
+
// never points at rows whose compact shape can still change.
|
|
220
|
+
if (streaming) {
|
|
221
|
+
while (commitEnd > 0 && isLightweightSuccessGroup(groups[commitEnd - 1])) {
|
|
222
|
+
commitEnd--;
|
|
223
|
+
}
|
|
224
|
+
// If the first live group is a lightweight tool that has not yet
|
|
225
|
+
// succeeded, a trailing successful run immediately before it can
|
|
226
|
+
// still collapse with it once the end event arrives.
|
|
227
|
+
if (canStartLightweightRun(groups[commitEnd])) {
|
|
228
|
+
while (commitEnd > 0 &&
|
|
229
|
+
isLightweightSuccessGroup(groups[commitEnd - 1])) {
|
|
230
|
+
commitEnd--;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return {
|
|
235
|
+
committed: groups.slice(0, commitEnd),
|
|
236
|
+
live: groups.slice(commitEnd),
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
// Phase 236a: TAIL_SIZE removed. In alt-screen / explicit
|
|
240
|
+
// scrollOffset mode, the visible window comes from the terminal height
|
|
241
|
+
// calculation below. Phase 270 reintroduces <Static> only for
|
|
242
|
+
// normal-screen settled transcript rows.
|
|
243
|
+
// Phase 260: rough per-group row estimate used to fit a window of
|
|
244
|
+
// groups inside the terminal's available height. Underestimates when
|
|
245
|
+
// long lines wrap and when MarkdownText/ToolCallCard chrome lands on
|
|
246
|
+
// extra rows — that's OK: this is the budget for "how many groups can
|
|
247
|
+
// I render before overflowing", and undershooting just means we keep
|
|
248
|
+
// a few more groups than strictly fit. What we MUST avoid is rendering
|
|
249
|
+
// a 5000-event tall column that Ink then tries to cursor-up-redraw
|
|
250
|
+
// over (the pre-260 bug that corrupted scrollback and lagged the
|
|
251
|
+
// terminal). Cheap and stable beats accurate.
|
|
252
|
+
function estimateGroupHeight(g) {
|
|
253
|
+
switch (g.kind) {
|
|
254
|
+
case "text":
|
|
255
|
+
case "thinking":
|
|
256
|
+
return Math.max(1, g.text.split("\n").length);
|
|
257
|
+
case "user":
|
|
258
|
+
// marginTop + marginBottom (Phase 159) bump 2 extra rows.
|
|
259
|
+
return Math.max(1, g.text.split("\n").length) + 2;
|
|
260
|
+
case "team-banner":
|
|
261
|
+
return Math.max(1, g.text.split("\n").length) + 1;
|
|
262
|
+
case "tool":
|
|
263
|
+
// ToolCallCard is a bordered region; rough est. accounts for
|
|
264
|
+
// header + arg + body + optional output footer.
|
|
265
|
+
return g.end ? 5 : 3;
|
|
266
|
+
case "tool-batch":
|
|
267
|
+
return 1;
|
|
268
|
+
case "end":
|
|
269
|
+
case "verdict":
|
|
270
|
+
return 1;
|
|
271
|
+
default:
|
|
272
|
+
return 1;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
// Phase 115 → 137: the user's own message, rendered claude-code style as
|
|
276
|
+
// a full-width gray block with a `›` gutter so it reads as a distinct
|
|
277
|
+
// input bubble in the scrollback. Each visual line is padded to the
|
|
278
|
+
// terminal width (display-width aware, so CJK pads correctly) so the
|
|
279
|
+
// background bar spans the row.
|
|
280
|
+
function UserEcho({ text }) {
|
|
281
|
+
const { stdout } = useStdout();
|
|
282
|
+
const width = Math.max(20, stdout?.columns ?? 80);
|
|
283
|
+
const bg = theme.userEcho.bgColor;
|
|
284
|
+
return (
|
|
285
|
+
// Phase 159: blank line above + below so the user's message reads as
|
|
286
|
+
// a distinct turn boundary, not glued to the surrounding agent text.
|
|
287
|
+
_jsx(Box, { flexDirection: "column", marginTop: 1, marginBottom: 1, children: text.split("\n").map((line, i) => {
|
|
288
|
+
const gutter = i === 0 ? theme.userEcho.glyph + " " : " ";
|
|
289
|
+
const used = stringWidth(gutter) + stringWidth(line);
|
|
290
|
+
const pad = " ".repeat(Math.max(0, width - used));
|
|
291
|
+
return (_jsxs(Text, { backgroundColor: bg, children: [_jsx(Text, { color: theme.userEcho.glyphColor, children: gutter }), _jsx(Text, { color: theme.userEcho.textColor, children: line }), pad] }, i));
|
|
292
|
+
}) }));
|
|
293
|
+
}
|
|
294
|
+
function GroupRow({ group, thinkVisible, reasoningExpanded, liveCursor, verbose, }) {
|
|
295
|
+
if (group.kind === "user") {
|
|
296
|
+
return _jsx(UserEcho, { text: group.text });
|
|
297
|
+
}
|
|
298
|
+
if (group.kind === "team-banner") {
|
|
299
|
+
return (_jsx(Box, { flexDirection: "column", marginTop: 1, children: group.text.split("\n").map((line, i) => (_jsx(Text, { color: theme.team.headerColor, bold: true, children: line }, i))) }));
|
|
300
|
+
}
|
|
301
|
+
if (group.kind === "text") {
|
|
302
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(MarkdownText, { text: group.text }), liveCursor && _jsx(Text, { color: theme.spinner.color, children: "\u258C" })] }));
|
|
303
|
+
}
|
|
304
|
+
if (group.kind === "thinking") {
|
|
305
|
+
// Phase 308: /reasoning forces reasoning visible + expanded, even when
|
|
306
|
+
// /think is off, for a live codex progress feel.
|
|
307
|
+
if (!thinkVisible && !reasoningExpanded)
|
|
308
|
+
return null;
|
|
309
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(ThinkingBlock, { text: group.text, collapsed: !verbose && !reasoningExpanded }), liveCursor && _jsx(Text, { color: theme.thinking.bodyColor, children: "\u258C" })] }));
|
|
310
|
+
}
|
|
311
|
+
if (group.kind === "tool")
|
|
312
|
+
return (_jsx(ToolCallCard, { start: group.start, end: group.end, progress: group.progress, verbose: verbose }));
|
|
313
|
+
if (group.kind === "tool-batch") {
|
|
314
|
+
// Count by display name so "Searched 5, Read 3" reads naturally.
|
|
315
|
+
const counts = new Map();
|
|
316
|
+
for (const t of group.tools) {
|
|
317
|
+
const name = t.start.params.name;
|
|
318
|
+
counts.set(name, (counts.get(name) ?? 0) + 1);
|
|
319
|
+
}
|
|
320
|
+
const DISPLAY = {
|
|
321
|
+
Read: "Read",
|
|
322
|
+
Glob: "Searched",
|
|
323
|
+
Grep: "Searched",
|
|
324
|
+
LS: "Listed",
|
|
325
|
+
WebSearch: "Searched",
|
|
326
|
+
WebFetch: "Fetched",
|
|
327
|
+
};
|
|
328
|
+
const parts = [];
|
|
329
|
+
for (const [name, n] of counts) {
|
|
330
|
+
const label = DISPLAY[name] ?? name;
|
|
331
|
+
parts.push(`${label} ${n}`);
|
|
332
|
+
}
|
|
333
|
+
return (_jsxs(Box, { children: [_jsx(Text, { color: theme.toolCard.headGlyphColor, children: theme.toolCard.headGlyph + " " }), _jsx(Text, { color: theme.toolCard.argLabelColor, children: parts.join(", ") })] }));
|
|
334
|
+
}
|
|
335
|
+
if (group.kind === "end") {
|
|
336
|
+
return (_jsxs(Text, { color: theme.end.lineColor, children: [theme.end.line, " (", group.event.params.stop_reason, ")"] }));
|
|
337
|
+
}
|
|
338
|
+
if (group.kind === "verdict") {
|
|
339
|
+
const verdict = group.event.params.verdict;
|
|
340
|
+
const color = verdictColor(verdict);
|
|
341
|
+
return (_jsxs(Box, { children: [_jsxs(Text, { color: color, bold: true, children: [verdictIcon(verdict), " ", verdict] }), _jsxs(Text, { color: theme.verdict.rationaleColor, children: [" ", "\u00B7 iter ", group.event.params.iteration, " \u2014 ", group.event.params.rationale] })] }));
|
|
342
|
+
}
|
|
343
|
+
return null;
|
|
344
|
+
}
|
|
345
|
+
function EventLogImpl({ events, thinkVisible = true, reasoningExpanded = false, streaming = false, verbose = false, scrollOffset = 0, transcriptMode = false, transcriptResetKey = 0, showLiveCursor = true, }) {
|
|
346
|
+
// Phase 236a → 260: window-cap rendering.
|
|
347
|
+
//
|
|
348
|
+
// 236a dropped Ink's `<Static>` so multi-tab /switch wouldn't
|
|
349
|
+
// re-commit the destination tab's events to terminal scrollback
|
|
350
|
+
// (Static's watermark resets on remount → all items emitted again
|
|
351
|
+
// on every switch). The replacement — render every group as a live
|
|
352
|
+
// `<Box>` row — fixed the duplication on /switch but introduced two
|
|
353
|
+
// worse symptoms once a tab accumulated more than a terminal-height
|
|
354
|
+
// of content:
|
|
355
|
+
//
|
|
356
|
+
// 1. Terminal lag — every 32ms batch flush re-laid out thousands
|
|
357
|
+
// of Box children. Ink's reconciler + cursor-move emission is
|
|
358
|
+
// O(visible rows); a 5000-event session renders fine in JS but
|
|
359
|
+
// stalls the terminal emulator.
|
|
360
|
+
// 2. Scrollback "duplication" — when the rendered column is
|
|
361
|
+
// taller than the terminal, Ink's in-place repaint (cursor-up
|
|
362
|
+
// then rewrite) loses track and writes partial frames into
|
|
363
|
+
// the terminal's native scrollback. Mouse-scroll up shows
|
|
364
|
+
// corrupted/duplicated past content.
|
|
365
|
+
//
|
|
366
|
+
// 260 fixed alt-screen and internal-scroll cases by rendering only
|
|
367
|
+
// the slice that fits in the available terminal height. Phase 270
|
|
368
|
+
// takes the normal-screen path back to a transcript-first model:
|
|
369
|
+
// immutable rows are emitted through <Static> once and native
|
|
370
|
+
// terminal scrollback owns history, while the live tail remains the
|
|
371
|
+
// only repainting region. PageUp/Down (`scrollOffset`) still falls
|
|
372
|
+
// back to the viewport path because that is an explicit request to
|
|
373
|
+
// inspect historical app state inside the live region.
|
|
374
|
+
const rawGroups = groupEvents(events);
|
|
375
|
+
const { stdout } = useStdout();
|
|
376
|
+
// Reserve rows for Dock + 2 HRules + TabChip + CommandInput +
|
|
377
|
+
// StatusBar + HintBar. The Dock alone can grow up to ~12 rows in
|
|
378
|
+
// team-panel mode (Phase 232 collapsed all chrome surfaces but
|
|
379
|
+
// didn't bound their height); err high so the chrome never gets
|
|
380
|
+
// pushed off-screen. If stdout has no rows (ink-testing-library
|
|
381
|
+
// and non-TTY paths) skip the cap entirely so the test render and
|
|
382
|
+
// any headless callers still see every group — production raw-mode
|
|
383
|
+
// TTYs always report rows.
|
|
384
|
+
const CHROME_RESERVE = 14;
|
|
385
|
+
const rawRows = stdout?.rows;
|
|
386
|
+
const availableRows = typeof rawRows === "number" && rawRows > 0
|
|
387
|
+
? Math.max(6, rawRows - CHROME_RESERVE)
|
|
388
|
+
: Number.POSITIVE_INFINITY;
|
|
389
|
+
if (transcriptMode && scrollOffset === 0) {
|
|
390
|
+
const { committed: rawCommitted, live: rawLive } = splitTranscriptGroups(rawGroups, streaming);
|
|
391
|
+
const committed = verbose
|
|
392
|
+
? rawCommitted
|
|
393
|
+
: collapseLightweightBatches(rawCommitted);
|
|
394
|
+
const liveGroups = verbose ? rawLive : collapseLightweightBatches(rawLive);
|
|
395
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Static, { items: committed, children: (g, i) => (_jsx(Box, { flexDirection: "column", marginTop: i > 0 ? 1 : 0, children: _jsx(GroupRow, { group: g, thinkVisible: thinkVisible, reasoningExpanded: reasoningExpanded, liveCursor: false, verbose: verbose }) }, i)) }, transcriptResetKey), liveGroups.map((g, i) => {
|
|
396
|
+
const absoluteIndex = committed.length + i;
|
|
397
|
+
const isLast = i === liveGroups.length - 1;
|
|
398
|
+
const live = showLiveCursor &&
|
|
399
|
+
isLast &&
|
|
400
|
+
streaming &&
|
|
401
|
+
(g.kind === "text" || g.kind === "thinking");
|
|
402
|
+
return (_jsx(Box, { flexDirection: "column", marginTop: absoluteIndex > 0 ? 1 : 0, children: _jsx(GroupRow, { group: g, thinkVisible: thinkVisible, reasoningExpanded: reasoningExpanded, liveCursor: live, verbose: verbose }) }, `live-${i}`));
|
|
403
|
+
})] }));
|
|
404
|
+
}
|
|
405
|
+
// Phase 310: the collapse pass is only needed for the windowed path —
|
|
406
|
+
// the transcript path above returns before this, having collapsed its
|
|
407
|
+
// own committed/live split. Computing it here (instead of unconditionally
|
|
408
|
+
// up top) saves an O(groups) scan + allocation on every transcript-mode
|
|
409
|
+
// repaint, which is the default UX.
|
|
410
|
+
const allGroups = verbose ? rawGroups : collapseLightweightBatches(rawGroups);
|
|
411
|
+
// Anchor the window: when offset is 0, the latest group is the
|
|
412
|
+
// visual bottom; positive offset slides the bottom back through
|
|
413
|
+
// history. Clamp so we never produce a negative range and so the
|
|
414
|
+
// user can't scroll past the very first group.
|
|
415
|
+
const total = allGroups.length;
|
|
416
|
+
const maxOffset = Math.max(0, total - 1);
|
|
417
|
+
const clampedOffset = Math.max(0, Math.min(scrollOffset, maxOffset));
|
|
418
|
+
const end = total - clampedOffset;
|
|
419
|
+
// Walk backwards from the anchor, accumulating estimated rows + 1
|
|
420
|
+
// for the inter-group marginTop. Always include at least one group
|
|
421
|
+
// even if a huge text/thinking block alone exceeds the budget —
|
|
422
|
+
// partial-group truncation is more trouble than it's worth, and a
|
|
423
|
+
// single group overflowing is rare in practice.
|
|
424
|
+
let height = 0;
|
|
425
|
+
let start = end;
|
|
426
|
+
for (let i = end - 1; i >= 0; i--) {
|
|
427
|
+
const h = estimateGroupHeight(allGroups[i]);
|
|
428
|
+
if (start < end && height + h + 1 > availableRows)
|
|
429
|
+
break;
|
|
430
|
+
height += h + (start < end ? 1 : 0);
|
|
431
|
+
start = i;
|
|
432
|
+
}
|
|
433
|
+
const visible = allGroups.slice(start, end);
|
|
434
|
+
return (_jsx(Box, { flexDirection: "column", children: visible.map((g, i) => {
|
|
435
|
+
const isLast = i === visible.length - 1 && clampedOffset === 0;
|
|
436
|
+
const live = showLiveCursor &&
|
|
437
|
+
isLast &&
|
|
438
|
+
streaming &&
|
|
439
|
+
(g.kind === "text" || g.kind === "thinking");
|
|
440
|
+
return (_jsx(Box, { flexDirection: "column", marginTop: i > 0 ? 1 : 0, children: _jsx(GroupRow, { group: g, thinkVisible: thinkVisible, reasoningExpanded: reasoningExpanded, liveCursor: live, verbose: verbose }) }, i));
|
|
441
|
+
}) }));
|
|
442
|
+
}
|
|
443
|
+
// Phase 148: memoize so App re-renders driven by the spinner tick, the
|
|
444
|
+
// team-status panel tick, status-bar updates, or the streaming
|
|
445
|
+
// char-counter do NOT re-render (and re-group) the whole log. EventLog
|
|
446
|
+
// now only re-renders when its actual props change (events / flags),
|
|
447
|
+
// which — with batched event appends — kills the in-place repaint
|
|
448
|
+
// flicker during streaming.
|
|
449
|
+
export const EventLog = memo(EventLogImpl);
|
|
450
|
+
//# sourceMappingURL=EventLog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventLog.js","sourceRoot":"","sources":["../../../src/ui/components/EventLog.tsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,EAAE;AACF,qEAAqE;AACrE,qEAAqE;AACrE,wBAAwB;AACxB,EAAE;AACF,mEAAmE;AACnE,iEAAiE;AACjE,4DAA4D;AAC5D,oEAAoE;AACpE,gEAAgE;AAChE,qDAAqD;AACrD,qEAAqE;AACrE,sBAAsB;AACtB,EAAE;AACF,kEAAkE;AAClE,kEAAkE;AAClE,sEAAsE;AACtE,mEAAmE;AACnE,8DAA8D;AAC9D,oEAAoE;AACpE,iCAAiC;AAEjC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASnD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgE/D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,WAAW;IACX,UAAU;CACX,CAAC,CAAC;AAEH,SAAS,eAAe,CAAC,CAAY;IACnC,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,oEAAoE;IACpE,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;IACnC,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACf,IAAI,IAAK,MAAkC;QAC1C,MAA2B,CAAC,EAAE,KAAK,KAAK,EACzC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,MAAsB;IACzC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClD,QAAQ,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,EAAE,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC/B,kEAAkE;YAClE,0DAA0D;YAC1D,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1C,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAClE,SAAS;YACX,CAAC;YACD,UAAU,EAAE,CAAC;YACb,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;YACnC,SAAS,EAAE,CAAC;YACZ,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;YACpC,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,mEAAmE;YACnE,8DAA8D;YAC9D,kEAAkE;YAClE,gEAAgE;YAChE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjE,SAAS;YACX,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACpD,SAAS;QACX,CAAC;QACD,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC;QACb,IAAI,EAAE,CAAC,MAAM,KAAK,sBAAsB,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,KAAK,yBAAyB,EAAE,CAAC;YAC5C,6DAA6D;YAC7D,8DAA8D;YAC9D,+BAA+B;YAC/B,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpB,IACE,CAAC,CAAC,IAAI,KAAK,MAAM;oBACjB,CAAC,CAAC,CAAC,GAAG;oBACN,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAM,EAA2B,CAAC,MAAM,CAAC,EAAE,EAC5D,CAAC;oBACD,CAAC,CAAC,QAAQ,IAAK,EAA2B,CAAC,MAAM,CAAC,IAAI,CAAC;oBACvD,MAAM;gBACR,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;YACvC,2DAA2D;YAC3D,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACtE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;oBACX,MAAM;gBACR,CAAC;YACH,CAAC;YACD,8DAA8D;YAC9D,2DAA2D;YAC3D,yDAAyD;YACzD,4DAA4D;YAC5D,SAAS;QACX,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,SAAS;QACX,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,SAAS;QACX,CAAC;QACD,8DAA8D;QAC9D,uCAAuC;IACzC,CAAC;IACD,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;iDAGiD;AACjD,SAAS,0BAA0B,CAAC,MAAe;IACjD,MAAM,GAAG,GAAY,EAAE,CAAC;IACxB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,SAAS;YACX,CAAC;YACD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnD,SAAS;YACX,CAAC;QACH,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,sBAAsB,CAC7B,CAAQ,EACR,KAAa,EACb,SAAiB,EACjB,SAAkB;IAElB,gEAAgE;IAChE,mEAAmE;IACnE,kEAAkE;IAClE,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/C,OAAO,CAAC,CAAC,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACzB,+DAA+D;QAC/D,iEAAiE;QACjE,IAAI,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,eAAe,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,CAAoB;IAClD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,yBAAyB,CAAC,CAAoB;IACrD,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAe,EACf,SAAkB;IAElB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAE5D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;YAChE,SAAS,GAAG,CAAC,CAAC;YACd,MAAM;QACR,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,qEAAqE;IACrE,oEAAoE;IACpE,oEAAoE;IACpE,mEAAmE;IACnE,6DAA6D;IAC7D,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,GAAG,CAAC,IAAI,yBAAyB,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,SAAS,EAAE,CAAC;QACd,CAAC;QACD,iEAAiE;QACjE,iEAAiE;QACjE,qDAAqD;QACrD,IAAI,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC9C,OACE,SAAS,GAAG,CAAC;gBACb,yBAAyB,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAChD,CAAC;gBACD,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;QACrC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,0DAA0D;AAC1D,uEAAuE;AACvE,8DAA8D;AAC9D,yCAAyC;AAEzC,kEAAkE;AAClE,qEAAqE;AACrE,qEAAqE;AACrE,sEAAsE;AACtE,qEAAqE;AACrE,uEAAuE;AACvE,mEAAmE;AACnE,iEAAiE;AACjE,8CAA8C;AAC9C,SAAS,mBAAmB,CAAC,CAAQ;IACnC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;QAChD,KAAK,MAAM;YACT,0DAA0D;YAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpD,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpD,KAAK,MAAM;YACT,6DAA6D;YAC7D,gDAAgD;YAChD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,KAAK,YAAY;YACf,OAAO,CAAC,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,SAAS;YACZ,OAAO,CAAC,CAAC;QACX;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,sEAAsE;AACtE,oEAAoE;AACpE,qEAAqE;AACrE,gCAAgC;AAChC,SAAS,QAAQ,CAAC,EAAE,IAAI,EAAoB;IAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;IAClC,OAAO;IACL,qEAAqE;IACrE,qEAAqE;IACrE,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,YACtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;YAClD,OAAO,CACL,MAAC,IAAI,IAAS,eAAe,EAAE,EAAE,aAC/B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,YAAG,MAAM,GAAQ,EACvD,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,YAAG,IAAI,GAAQ,EACnD,GAAG,KAHK,CAAC,CAIL,CACR,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAChB,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,OAAO,GAUR;IACC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAC,QAAQ,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAI,CAAC;IACxC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACjC,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvC,KAAC,IAAI,IAAS,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,kBAC9C,IAAI,IADI,CAAC,CAEL,CACR,CAAC,GACE,CACP,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,YAAY,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAI,EACjC,UAAU,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,uBAAU,IACrD,CACP,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9B,uEAAuE;QACvE,iDAAiD;QACjD,IAAI,CAAC,YAAY,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC;QACrD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,aAAa,IACZ,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAE,CAAC,OAAO,IAAI,CAAC,iBAAiB,GACzC,EACD,UAAU,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,uBAAU,IAC1D,CACP,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QACvB,OAAO,CACL,KAAC,YAAY,IACX,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;IACJ,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChC,iEAAiE;QACjE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,OAAO,GAA2B;YACtC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,QAAQ;YACZ,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,SAAS;SACpB,CAAC;QACF,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CACL,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,YACvC,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG,GAC1B,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,YAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAQ,IAChE,CACP,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,aAC7B,KAAK,CAAC,GAAG,CAAC,IAAI,QAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,SAC5C,CACR,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,CACL,MAAC,GAAG,eACF,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,mBACrB,WAAW,CAAC,OAAO,CAAC,OAAG,OAAO,IAC1B,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,aACtC,GAAG,kBACI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,cAAK,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,IAChE,IACH,CACP,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,EACpB,MAAM,EACN,YAAY,GAAG,IAAI,EACnB,iBAAiB,GAAG,KAAK,EACzB,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,EACf,YAAY,GAAG,CAAC,EAChB,cAAc,GAAG,KAAK,EACtB,kBAAkB,GAAG,CAAC,EACtB,cAAc,GAAG,IAAI,GACf;IACN,0CAA0C;IAC1C,EAAE;IACF,8DAA8D;IAC9D,gEAAgE;IAChE,kEAAkE;IAClE,mEAAmE;IACnE,oEAAoE;IACpE,oEAAoE;IACpE,cAAc;IACd,EAAE;IACF,mEAAmE;IACnE,mEAAmE;IACnE,oEAAoE;IACpE,qCAAqC;IACrC,8DAA8D;IAC9D,mEAAmE;IACnE,gEAAgE;IAChE,+DAA+D;IAC/D,0CAA0C;IAC1C,EAAE;IACF,mEAAmE;IACnE,kEAAkE;IAClE,iEAAiE;IACjE,8DAA8D;IAC9D,oEAAoE;IACpE,mEAAmE;IACnE,mEAAmE;IACnE,uDAAuD;IACvD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,8DAA8D;IAC9D,iEAAiE;IACjE,+DAA+D;IAC/D,gEAAgE;IAChE,gEAAgE;IAChE,kEAAkE;IAClE,mEAAmE;IACnE,2BAA2B;IAC3B,MAAM,cAAc,GAAG,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC;IAC7B,MAAM,aAAa,GACjB,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC;QACxC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC;QACvC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAE/B,IAAI,cAAc,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,qBAAqB,CACtE,SAAS,EACT,SAAS,CACV,CAAC;QACF,MAAM,SAAS,GAAG,OAAO;YACvB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAE3E,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,MAAM,IAA0B,KAAK,EAAE,SAAS,YAC9C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACT,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAClD,KAAC,QAAQ,IACP,KAAK,EAAE,CAAC,EACR,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,OAAO,GAChB,IAPuD,CAAC,CAQtD,CACP,IAXU,kBAAkB,CAYtB,EACR,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACvB,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC3C,MAAM,MAAM,GAAG,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC3C,MAAM,IAAI,GACR,cAAc;wBACd,MAAM;wBACN,SAAS;wBACT,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;oBAC/C,OAAO,CACL,KAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,SAAS,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAGpC,KAAC,QAAQ,IACP,KAAK,EAAE,CAAC,EACR,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,OAAO,GAChB,IARG,QAAQ,CAAC,EAAE,CASZ,CACP,CAAC;gBACJ,CAAC,CAAC,IACE,CACP,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,sEAAsE;IACtE,0EAA0E;IAC1E,wEAAwE;IACxE,oCAAoC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAE9E,+DAA+D;IAC/D,gEAAgE;IAChE,iEAAiE;IACjE,+CAA+C;IAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,KAAK,GAAG,aAAa,CAAC;IAElC,kEAAkE;IAClE,mEAAmE;IACnE,gEAAgE;IAChE,kEAAkE;IAClE,gDAAgD;IAChD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK,GAAG,GAAG,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa;YAAE,MAAM;QACzD,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,KAAK,GAAG,CAAC,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE5C,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpB,MAAM,MAAM,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,KAAK,CAAC,CAAC;YAC/D,MAAM,IAAI,GACR,cAAc;gBACd,MAAM;gBACN,SAAS;gBACT,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAC/C,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAClD,KAAC,QAAQ,IACP,KAAK,EAAE,CAAC,EACR,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,OAAO,GAChB,IAPuD,CAAC,CAQtD,CACP,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,+DAA+D;AAC/D,uEAAuE;AACvE,qEAAqE;AACrE,kEAAkE;AAClE,4BAA4B;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FileSuggestion } from "../fileMentions.js";
|
|
2
|
+
interface Props {
|
|
3
|
+
items: FileSuggestion[];
|
|
4
|
+
selectedIdx: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function FileSuggest({ items, selectedIdx }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=FileSuggest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileSuggest.d.ts","sourceRoot":"","sources":["../../../src/ui/components/FileSuggest.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,UAAU,KAAK;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,kDA+BxD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// Phase 64: popup that lists @file completion candidates.
|
|
3
|
+
//
|
|
4
|
+
// CommandInput drives this — it computes the active mention via
|
|
5
|
+
// activeMention(), runs scanDir() for the current candidate set, and
|
|
6
|
+
// renders <FileSuggest> when the result is non-empty. Selection is
|
|
7
|
+
// owned by CommandInput; this component only renders.
|
|
8
|
+
import { Box, Text } from "ink";
|
|
9
|
+
import { theme } from "../theme.js";
|
|
10
|
+
export function FileSuggest({ items, selectedIdx }) {
|
|
11
|
+
if (items.length === 0)
|
|
12
|
+
return null;
|
|
13
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: _jsxs(Text, { color: theme.prompt.suggestionsLabelColor, children: [" ", "@ files \u2014 \u2191/\u2193 \u00B7 Tab accept \u00B7 Esc close"] }) }), items.map((it, i) => (_jsx(Box, { children: _jsxs(Text, { color: i === selectedIdx
|
|
14
|
+
? theme.picker.selectedColor
|
|
15
|
+
: it.isDir
|
|
16
|
+
? theme.prompt.suggestionColor
|
|
17
|
+
: theme.status.valueColor, backgroundColor: i === selectedIdx ? theme.picker.selectedBg : undefined, bold: i === selectedIdx, children: [i === selectedIdx ? ` ${theme.picker.pointer} ` : " ", it.display] }) }, it.display)))] }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=FileSuggest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileSuggest.js","sourceRoot":"","sources":["../../../src/ui/components/FileSuggest.tsx"],"names":[],"mappings":";AAAA,0DAA0D;AAC1D,EAAE;AACF,gEAAgE;AAChE,qEAAqE;AACrE,mEAAmE;AACnE,sDAAsD;AAEtD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAOpC,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAS;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,qBAAqB,aAC5C,IAAI,uEACA,GACH,EACL,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,KAAC,GAAG,cACF,MAAC,IAAI,IACH,KAAK,EACH,CAAC,KAAK,WAAW;wBACf,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa;wBAC5B,CAAC,CAAC,EAAE,CAAC,KAAK;4BACR,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe;4BAC9B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAE/B,eAAe,EACb,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAEzD,IAAI,EAAE,CAAC,KAAK,WAAW,aAEtB,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,EACzD,EAAE,CAAC,OAAO,IACN,IAhBC,EAAE,CAAC,OAAO,CAiBd,CACP,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface HRuleSegment {
|
|
2
|
+
/** Text rendered as-is unless `spinner` is true, in which case the
|
|
3
|
+
* text is treated as a placeholder replaced by the current
|
|
4
|
+
* animation frame. */
|
|
5
|
+
text: string;
|
|
6
|
+
color?: string;
|
|
7
|
+
bold?: boolean;
|
|
8
|
+
/** When true, this segment's `text` is overridden every tick with
|
|
9
|
+
* the next frame from `theme.spinner.frames`. Triggers HRule's
|
|
10
|
+
* local interval; without any spinner segments the interval
|
|
11
|
+
* stays parked. */
|
|
12
|
+
spinner?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface HRuleProps {
|
|
15
|
+
/** Single-color chip body — kept for the existing `ctx` warning
|
|
16
|
+
* caller and unit tests that pass plain text. New callers should
|
|
17
|
+
* prefer `rightSegments` for per-segment styling. */
|
|
18
|
+
rightLabel?: string;
|
|
19
|
+
rightLabelColor?: string;
|
|
20
|
+
rightLabelBg?: string;
|
|
21
|
+
/** Multi-segment chip body. Each segment renders as its own `<Text>`
|
|
22
|
+
* with optional color/bold. Segments are joined into the chip
|
|
23
|
+
* with no separators (caller decides). */
|
|
24
|
+
rightSegments?: HRuleSegment[];
|
|
25
|
+
}
|
|
26
|
+
export declare function HRule({ rightLabel, rightLabelColor, rightLabelBg, rightSegments, }?: HRuleProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=HRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HRule.d.ts","sourceRoot":"","sources":["../../../src/ui/components/HRule.tsx"],"names":[],"mappings":"AAoBA,MAAM,WAAW,YAAY;IAC3B;;2BAEuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;wBAGoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB;;0DAEsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;+CAE2C;IAC3C,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;CAChC;AAQD,wBAAgB,KAAK,CAAC,EACpB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,aAAa,GACd,GAAE,UAAe,2CAuFjB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// Phase 67: horizontal rule.
|
|
3
|
+
//
|
|
4
|
+
// A thin "──────" line used as a divider between the event log, the
|
|
5
|
+
// command input, and the status bar — replacing the bordered boxes
|
|
6
|
+
// that didn't align cleanly with wrapped fields.
|
|
7
|
+
//
|
|
8
|
+
// Phase 190: optional right-aligned chip embedded in the rule so the
|
|
9
|
+
// caller can park a status indicator on the divider (e.g. the ctx
|
|
10
|
+
// warning) without it pretending to be a chat message.
|
|
11
|
+
//
|
|
12
|
+
// Phase 230: chip extended to multi-segment with per-segment color +
|
|
13
|
+
// optional animated spinner glyph. Used by the tab strip — active tab
|
|
14
|
+
// in green, running tabs cycle a spinner glyph, ready tabs marked
|
|
15
|
+
// `▒`, asking tabs `?`. The animation interval lives inside HRule so
|
|
16
|
+
// only this component re-renders on each tick, not the whole App.
|
|
17
|
+
import { useEffect, useState } from "react";
|
|
18
|
+
import { Box, Text, useStdout } from "ink";
|
|
19
|
+
import { theme } from "../theme.js";
|
|
20
|
+
function visibleLength(segments) {
|
|
21
|
+
let n = 0;
|
|
22
|
+
for (const s of segments)
|
|
23
|
+
n += [...s.text].length;
|
|
24
|
+
return n;
|
|
25
|
+
}
|
|
26
|
+
export function HRule({ rightLabel, rightLabelColor, rightLabelBg, rightSegments, } = {}) {
|
|
27
|
+
const { stdout } = useStdout();
|
|
28
|
+
const cols = stdout?.columns ?? 80;
|
|
29
|
+
const w = Math.max(8, Math.min(cols, 200));
|
|
30
|
+
const rule = theme.prompt.rule;
|
|
31
|
+
const ruleColor = theme.prompt.ruleColor;
|
|
32
|
+
// Phase 230: spinner frame state, ticking only when at least one
|
|
33
|
+
// segment is animated. Idle HRule never starts the interval.
|
|
34
|
+
// Phase 242 (audit): the dep array used to be `[anyAnimated.current]`
|
|
35
|
+
// — a ref read. React reads refs during the render that registered
|
|
36
|
+
// the effect, but ref mutations don't trigger re-renders, and the
|
|
37
|
+
// value captured in the dep can be stale relative to the body's
|
|
38
|
+
// closure read. Refactored to a derived boolean computed each
|
|
39
|
+
// render so React's effect-comparison is unambiguous.
|
|
40
|
+
const [frame, setFrame] = useState(0);
|
|
41
|
+
const hasSpinner = !!rightSegments?.some((s) => s.spinner);
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
if (!hasSpinner)
|
|
44
|
+
return;
|
|
45
|
+
const t = setInterval(() => setFrame((f) => (f + 1) % theme.spinner.frames.length), theme.spinner.intervalMs);
|
|
46
|
+
// unref so a stray running tab can't keep omg alive past /quit
|
|
47
|
+
t.unref?.();
|
|
48
|
+
return () => clearInterval(t);
|
|
49
|
+
}, [hasSpinner]);
|
|
50
|
+
// Compose segments if provided; otherwise wrap the legacy
|
|
51
|
+
// rightLabel string into a single segment.
|
|
52
|
+
const segments = rightSegments
|
|
53
|
+
? rightSegments
|
|
54
|
+
: rightLabel
|
|
55
|
+
? [{ text: rightLabel, color: rightLabelColor }]
|
|
56
|
+
: null;
|
|
57
|
+
if (!segments) {
|
|
58
|
+
return (_jsx(Box, { children: _jsx(Text, { color: ruleColor, children: rule.repeat(w) }) }));
|
|
59
|
+
}
|
|
60
|
+
// Phase 207: chip body gets a single-space pad on each side so the
|
|
61
|
+
// tint reads as a block, not a tight bracket clamp.
|
|
62
|
+
const chipWidth = visibleLength(segments) + 4; // " [ ... ] " (2 inner pads + 2 brackets)
|
|
63
|
+
const tailLen = 3;
|
|
64
|
+
// 2 spaces of padding around the chip + the trailing dash run.
|
|
65
|
+
const headLen = Math.max(2, w - chipWidth - tailLen - 2);
|
|
66
|
+
const bg = rightLabelBg;
|
|
67
|
+
const chipFg = theme.prompt.chipFg;
|
|
68
|
+
return (_jsxs(Box, { children: [_jsx(Text, { color: ruleColor, children: rule.repeat(headLen) }), _jsx(Text, { color: ruleColor, children: " " }), _jsx(Text, { color: chipFg, backgroundColor: bg, children: "[" }), _jsx(Text, { color: chipFg, backgroundColor: bg, children: " " }), segments.map((seg, i) => {
|
|
69
|
+
const txt = seg.spinner
|
|
70
|
+
? theme.spinner.frames[frame % theme.spinner.frames.length]
|
|
71
|
+
: seg.text;
|
|
72
|
+
return (_jsx(Text, { color: seg.color ?? chipFg, backgroundColor: bg, bold: seg.bold, children: txt }, i));
|
|
73
|
+
}), _jsx(Text, { color: chipFg, backgroundColor: bg, children: " " }), _jsx(Text, { color: chipFg, backgroundColor: bg, children: "]" }), _jsx(Text, { color: ruleColor, children: " " + rule.repeat(tailLen) })] }));
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=HRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HRule.js","sourceRoot":"","sources":["../../../src/ui/components/HRule.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HintBar.d.ts","sourceRoot":"","sources":["../../../src/ui/components/HintBar.tsx"],"names":[],"mappings":"AAsBA,wBAAgB,OAAO,4CAYtB"}
|