@sortedyuan/maybecode 0.3.2 → 0.5.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/README.md +166 -55
- package/README.zh-CN.md +267 -0
- package/dist/application.d.ts +40 -34
- package/dist/application.d.ts.map +1 -1
- package/dist/application.js +290 -170
- package/dist/application.js.map +1 -1
- package/dist/args.d.ts +2 -2
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +50 -27
- package/dist/args.js.map +1 -1
- package/dist/bin.js +82 -71
- package/dist/bin.js.map +4 -4
- package/dist/cli/chunk-3IORPKBL.js +3572 -0
- package/dist/cli/chunk-3IORPKBL.js.map +7 -0
- package/dist/cli/{chunk-LVTRXPDS.js → chunk-4B2Z6KW7.js} +1547 -1536
- package/dist/cli/chunk-4B2Z6KW7.js.map +7 -0
- package/dist/cli/{chunk-JT6VBKOM.js → chunk-4WG6JIJJ.js} +127 -33
- package/dist/cli/{chunk-JT6VBKOM.js.map → chunk-4WG6JIJJ.js.map} +3 -3
- package/dist/cli/{chunk-K5JWPNSY.js → chunk-5SLWALZK.js} +3521 -16164
- package/dist/cli/chunk-5SLWALZK.js.map +7 -0
- package/dist/cli/chunk-MNBYXL5Y.js +132 -0
- package/dist/cli/chunk-MNBYXL5Y.js.map +7 -0
- package/dist/cli/{chunk-F4XRPLUM.js → chunk-SLWLUEHQ.js} +226 -86
- package/dist/cli/chunk-SLWLUEHQ.js.map +7 -0
- package/dist/cli/chunk-UQDZ55LQ.js +199 -0
- package/dist/cli/chunk-UQDZ55LQ.js.map +7 -0
- package/dist/cli/{chunk-7ISOHFS7.js → chunk-WMSG5ZTR.js} +717 -388
- package/dist/cli/chunk-WMSG5ZTR.js.map +7 -0
- package/dist/cli/chunk-WVIRS76R.js +4057 -0
- package/dist/cli/chunk-WVIRS76R.js.map +7 -0
- package/dist/cli/{chunk-HOU5ITUK.js → chunk-XTEMRAQW.js} +1 -1
- package/dist/cli/chunk-XTEMRAQW.js.map +7 -0
- package/dist/cli/chunk-Z3BOPBVU.js +91 -0
- package/dist/cli/chunk-Z3BOPBVU.js.map +7 -0
- package/dist/cli/{configured-WHY3GGAJ.js → configured-ACNM6TRQ.js} +10 -9
- package/dist/cli/{file-type-R2T7TBHI.js → file-type-HLHPV7WC.js} +817 -13
- package/dist/cli/file-type-HLHPV7WC.js.map +7 -0
- package/dist/cli/mcp-auth-XD5U7WCV.js +74 -0
- package/dist/cli/mcp-auth-XD5U7WCV.js.map +7 -0
- package/dist/cli/onboarding-WQWCPYEO.js +530 -0
- package/dist/cli/onboarding-WQWCPYEO.js.map +7 -0
- package/dist/cli/onboarding-check-HRRI5OJ7.js +32 -0
- package/dist/cli/onboarding-check-HRRI5OJ7.js.map +7 -0
- package/dist/cli/{retained-tui-VJ3VX4R3.js → retained-tui-QF5VMYLC.js} +788 -332
- package/dist/cli/retained-tui-QF5VMYLC.js.map +7 -0
- package/dist/cli/{sixel-LWTCM76G.js → sixel-ISZ4FZ3U.js} +37 -37
- package/dist/cli/{sixel-LWTCM76G.js.map → sixel-ISZ4FZ3U.js.map} +1 -1
- package/dist/cli/{team-T7G7PPNN.js → team-O2I5BXHM.js} +7 -6
- package/dist/cli/{team-v2-JGBBQ7FR.js → team-v2-YYO2G7DJ.js} +816 -390
- package/dist/cli/team-v2-YYO2G7DJ.js.map +7 -0
- package/dist/cli/{web-server-FOMNPY7Q.js → web-server-SXMH6FGA.js} +55 -19
- package/dist/cli/web-server-SXMH6FGA.js.map +7 -0
- package/dist/cli/{web-ui-COB6PKC5.js → web-ui-UWQUFE4W.js} +7 -6
- package/dist/config-schema.json +337 -0
- package/dist/configured.d.ts +18 -11
- package/dist/configured.d.ts.map +1 -1
- package/dist/configured.js +213 -390
- package/dist/configured.js.map +1 -1
- package/dist/controller.d.ts +19 -18
- package/dist/controller.d.ts.map +1 -1
- package/dist/delegation-commands.d.ts +1 -1
- package/dist/delegation-commands.d.ts.map +1 -1
- package/dist/delegation-commands.js +8 -8
- package/dist/delegation-commands.js.map +1 -1
- package/dist/errors.d.ts +2 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -1
- package/dist/errors.js.map +1 -1
- package/dist/events.d.ts +8 -6
- package/dist/events.d.ts.map +1 -1
- package/dist/fork-picker.d.ts.map +1 -1
- package/dist/fork-picker.js +19 -5
- package/dist/fork-picker.js.map +1 -1
- package/dist/git-request.d.ts +6 -6
- package/dist/git-request.d.ts.map +1 -1
- package/dist/git-request.js +28 -15
- package/dist/git-request.js.map +1 -1
- package/dist/goal-commands.d.ts +1 -1
- package/dist/goal-commands.d.ts.map +1 -1
- package/dist/goal-commands.js +12 -5
- package/dist/goal-commands.js.map +1 -1
- package/dist/index.d.ts +5 -37
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -36
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +2 -7
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +7 -15
- package/dist/instructions.js.map +1 -1
- package/dist/keymap.d.ts +2 -2
- package/dist/keymap.d.ts.map +1 -1
- package/dist/keymap.js +2 -2
- package/dist/keymap.js.map +1 -1
- package/dist/maybecode-config.schema.json +1765 -0
- package/dist/mcp-auth.d.ts +1 -1
- package/dist/mcp-auth.d.ts.map +1 -1
- package/dist/mcp-auth.js +11 -8
- package/dist/mcp-auth.js.map +1 -1
- package/dist/mcp-commands.d.ts.map +1 -1
- package/dist/mcp-commands.js +18 -4
- package/dist/mcp-commands.js.map +1 -1
- package/dist/mcp-interaction-ui.d.ts.map +1 -1
- package/dist/mcp-interaction-ui.js +11 -4
- package/dist/mcp-interaction-ui.js.map +1 -1
- package/dist/media-history.d.ts +1 -1
- package/dist/media-history.d.ts.map +1 -1
- package/dist/media-history.js +8 -2
- package/dist/media-history.js.map +1 -1
- package/dist/model-picker.d.ts.map +1 -1
- package/dist/model-picker.js +10 -11
- package/dist/model-picker.js.map +1 -1
- package/dist/model-transition.d.ts +11 -0
- package/dist/model-transition.d.ts.map +1 -0
- package/dist/model-transition.js +48 -0
- package/dist/model-transition.js.map +1 -0
- package/dist/model.d.ts +2 -2
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +8 -4
- package/dist/model.js.map +1 -1
- package/dist/onboarding-check.d.ts +3 -0
- package/dist/onboarding-check.d.ts.map +1 -0
- package/dist/onboarding-check.js +22 -0
- package/dist/onboarding-check.js.map +1 -0
- package/dist/onboarding.d.ts +6 -0
- package/dist/onboarding.d.ts.map +1 -0
- package/dist/onboarding.js +463 -0
- package/dist/onboarding.js.map +1 -0
- package/dist/plugins/application.d.ts +6 -4
- package/dist/plugins/application.d.ts.map +1 -1
- package/dist/plugins/application.js +106 -52
- package/dist/plugins/application.js.map +1 -1
- package/dist/plugins/instructions.d.ts +1 -1
- package/dist/plugins/instructions.d.ts.map +1 -1
- package/dist/plugins/instructions.js +24 -11
- package/dist/plugins/instructions.js.map +1 -1
- package/dist/plugins/resources.d.ts +2 -2
- package/dist/plugins/resources.d.ts.map +1 -1
- package/dist/plugins/resources.js +22 -12
- package/dist/plugins/resources.js.map +1 -1
- package/dist/policy.d.ts +1 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +59 -11
- package/dist/policy.js.map +1 -1
- package/dist/run.d.ts +2 -0
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +38 -33
- package/dist/run.js.map +1 -1
- package/dist/runtime-instructions.d.ts +1 -1
- package/dist/runtime-instructions.d.ts.map +1 -1
- package/dist/runtime-instructions.js +15 -7
- package/dist/runtime-instructions.js.map +1 -1
- package/dist/session-navigation.d.ts +6 -0
- package/dist/session-navigation.d.ts.map +1 -0
- package/dist/session-navigation.js +64 -0
- package/dist/session-navigation.js.map +1 -0
- package/dist/session-picker.d.ts +1 -1
- package/dist/session-picker.d.ts.map +1 -1
- package/dist/session-picker.js +23 -32
- package/dist/session-picker.js.map +1 -1
- package/dist/settings.d.ts +718 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +14 -0
- package/dist/settings.js.map +1 -0
- package/dist/skills.d.ts +1 -1
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +10 -12
- package/dist/skills.js.map +1 -1
- package/dist/slash-commands.d.ts +2 -2
- package/dist/slash-commands.d.ts.map +1 -1
- package/dist/slash-commands.js +149 -67
- package/dist/slash-commands.js.map +1 -1
- package/dist/team-execution.d.ts +10 -0
- package/dist/team-execution.d.ts.map +1 -0
- package/dist/team-execution.js +29 -0
- package/dist/team-execution.js.map +1 -0
- package/dist/team-patches.d.ts.map +1 -1
- package/dist/team-patches.js +149 -52
- package/dist/team-patches.js.map +1 -1
- package/dist/team-plan.d.ts +2 -2
- package/dist/team-plan.d.ts.map +1 -1
- package/dist/team-plan.js +115 -34
- package/dist/team-plan.js.map +1 -1
- package/dist/team-recovery.d.ts +1 -1
- package/dist/team-recovery.d.ts.map +1 -1
- package/dist/team-recovery.js +40 -10
- package/dist/team-recovery.js.map +1 -1
- package/dist/team-v2.d.ts.map +1 -1
- package/dist/team-v2.js +335 -104
- package/dist/team-v2.js.map +1 -1
- package/dist/team-verification.d.ts +4 -2
- package/dist/team-verification.d.ts.map +1 -1
- package/dist/team-verification.js +300 -97
- package/dist/team-verification.js.map +1 -1
- package/dist/team.d.ts +2 -2
- package/dist/team.d.ts.map +1 -1
- package/dist/team.js +172 -62
- package/dist/team.js.map +1 -1
- package/dist/terminal-web.d.ts +1 -0
- package/dist/terminal-web.d.ts.map +1 -1
- package/dist/terminal-web.js +28 -10
- package/dist/terminal-web.js.map +1 -1
- package/dist/ui/actions.d.ts.map +1 -1
- package/dist/ui/actions.js.map +1 -1
- package/dist/ui/retained-tui.d.ts.map +1 -1
- package/dist/ui/retained-tui.js +231 -173
- package/dist/ui/retained-tui.js.map +1 -1
- package/dist/ui/{prototype-view.d.ts → terminal-view.d.ts} +7 -7
- package/dist/ui/terminal-view.d.ts.map +1 -0
- package/dist/ui/{prototype-view.js → terminal-view.js} +185 -98
- package/dist/ui/terminal-view.js.map +1 -0
- package/dist/web-commands.d.ts.map +1 -1
- package/dist/web-commands.js +160 -57
- package/dist/web-commands.js.map +1 -1
- package/dist/web-extension.d.ts.map +1 -1
- package/dist/web-extension.js +14 -4
- package/dist/web-extension.js.map +1 -1
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +2 -1
- package/dist/web-server.js.map +1 -1
- package/dist/web-ui.d.ts.map +1 -1
- package/dist/web-ui.js +167 -40
- package/dist/web-ui.js.map +1 -1
- package/dist/workspace-configuration.d.ts +7 -0
- package/dist/workspace-configuration.d.ts.map +1 -0
- package/dist/workspace-configuration.js +134 -0
- package/dist/workspace-configuration.js.map +1 -0
- package/dist/workspace-state.d.ts +20 -0
- package/dist/workspace-state.d.ts.map +1 -0
- package/dist/workspace-state.js +2 -0
- package/dist/workspace-state.js.map +1 -0
- package/dist/workspace.d.ts +26 -43
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +261 -323
- package/dist/workspace.js.map +1 -1
- package/package.json +21 -31
- package/dist/cli/chunk-7ISOHFS7.js.map +0 -7
- package/dist/cli/chunk-F4XRPLUM.js.map +0 -7
- package/dist/cli/chunk-H7SNBFO4.js +0 -5522
- package/dist/cli/chunk-H7SNBFO4.js.map +0 -7
- package/dist/cli/chunk-HOU5ITUK.js.map +0 -7
- package/dist/cli/chunk-K5JWPNSY.js.map +0 -7
- package/dist/cli/chunk-LVTRXPDS.js.map +0 -7
- package/dist/cli/chunk-VAZMCNBB.js +0 -686
- package/dist/cli/chunk-VAZMCNBB.js.map +0 -7
- package/dist/cli/chunk-WOFEI42C.js +0 -7820
- package/dist/cli/chunk-WOFEI42C.js.map +0 -7
- package/dist/cli/file-type-R2T7TBHI.js.map +0 -7
- package/dist/cli/mcp-auth-UNRHSIKJ.js +0 -63
- package/dist/cli/mcp-auth-UNRHSIKJ.js.map +0 -7
- package/dist/cli/retained-tui-VJ3VX4R3.js.map +0 -7
- package/dist/cli/team-v2-JGBBQ7FR.js.map +0 -7
- package/dist/cli/tui-SA74DKMA.js +0 -1705
- package/dist/cli/tui-SA74DKMA.js.map +0 -7
- package/dist/cli/web-server-FOMNPY7Q.js.map +0 -7
- package/dist/delegation.d.ts +0 -2
- package/dist/delegation.d.ts.map +0 -1
- package/dist/delegation.js +0 -2
- package/dist/delegation.js.map +0 -1
- package/dist/history-memory.d.ts +0 -2
- package/dist/history-memory.d.ts.map +0 -1
- package/dist/history-memory.js +0 -2
- package/dist/history-memory.js.map +0 -1
- package/dist/subagent-budget.d.ts +0 -2
- package/dist/subagent-budget.d.ts.map +0 -1
- package/dist/subagent-budget.js +0 -2
- package/dist/subagent-budget.js.map +0 -1
- package/dist/subagent-files.d.ts +0 -2
- package/dist/subagent-files.d.ts.map +0 -1
- package/dist/subagent-files.js +0 -2
- package/dist/subagent-files.js.map +0 -1
- package/dist/subagent-host.d.ts +0 -2
- package/dist/subagent-host.d.ts.map +0 -1
- package/dist/subagent-host.js +0 -2
- package/dist/subagent-host.js.map +0 -1
- package/dist/subagent-instructions.d.ts +0 -2
- package/dist/subagent-instructions.d.ts.map +0 -1
- package/dist/subagent-instructions.js +0 -2
- package/dist/subagent-instructions.js.map +0 -1
- package/dist/subagents.d.ts +0 -2
- package/dist/subagents.d.ts.map +0 -1
- package/dist/subagents.js +0 -2
- package/dist/subagents.js.map +0 -1
- package/dist/summarizer.d.ts +0 -2
- package/dist/summarizer.d.ts.map +0 -1
- package/dist/summarizer.js +0 -2
- package/dist/summarizer.js.map +0 -1
- package/dist/tui.d.ts +0 -7
- package/dist/tui.d.ts.map +0 -1
- package/dist/tui.js +0 -1109
- package/dist/tui.js.map +0 -1
- package/dist/ui/prototype-view.d.ts.map +0 -1
- package/dist/ui/prototype-view.js.map +0 -1
- /package/dist/cli/{configured-WHY3GGAJ.js.map → configured-ACNM6TRQ.js.map} +0 -0
- /package/dist/cli/{team-T7G7PPNN.js.map → team-O2I5BXHM.js.map} +0 -0
- /package/dist/cli/{web-ui-COB6PKC5.js.map → web-ui-UWQUFE4W.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../packages/ui/client/src/protocol.ts"],
|
|
4
|
+
"sourcesContent": ["import type { DisplayPart, ImageData } from \"@sortedyuan/media\";\n/**\n * JSON-only presentation contract. Host policy, not this manifest, grants authority.\n * @experimental\n */\nexport interface UiProduct {\n readonly id: string;\n readonly title: string;\n readonly subtitle: string;\n readonly resourceKind: \"session\" | \"task\";\n readonly suggestions: readonly string[];\n}\n\n/** @experimental */\nexport interface UiBadge {\n readonly label: string;\n readonly tone?: \"neutral\" | \"warning\";\n}\n\n/** @experimental */\nexport interface UiWorkspaceGit {\n readonly path: string;\n readonly status: \"ready\" | \"initializing\" | \"disabled\" | \"error\";\n readonly autoCommit: boolean;\n readonly branch?: string;\n readonly commit?: string;\n readonly detached?: boolean;\n readonly error?: string;\n}\n\n/** @experimental */\nexport interface UiForkPoint {\n readonly blockId?: string;\n readonly id: string;\n readonly sessionId: string;\n readonly runId: string;\n readonly createdAt: number;\n readonly userPreview: string;\n readonly assistantPreview: string;\n readonly available: boolean;\n readonly reason?: string;\n readonly parentPointId?: string;\n readonly commit?: string;\n readonly branch?: string;\n readonly worktreeAvailable?: boolean;\n}\n\n/** @experimental */\nexport interface UiCheckpoint {\n readonly runId: string;\n readonly pointId?: string;\n readonly startCommit?: string;\n readonly endCommit?: string;\n readonly branch?: string;\n readonly status: \"saved\" | \"failed\" | \"unavailable\";\n readonly error?: string;\n}\n\n/** @experimental */\nexport interface UiFileDiff {\n readonly path: string;\n readonly previousPath?: string;\n readonly status: \"added\" | \"modified\" | \"deleted\" | \"renamed\" | \"copied\" | \"untracked\";\n readonly binary: boolean;\n readonly additions: number;\n readonly deletions: number;\n readonly patch: string;\n}\n\n/** @experimental */\nexport interface UiWorkspaceDiff {\n readonly runId?: string;\n readonly restorePreviewId?: string;\n readonly scope: \"run\" | \"session\" | \"workspace\";\n readonly title: string;\n readonly from?: string;\n readonly to?: string;\n readonly uncommitted: boolean;\n readonly files: readonly UiFileDiff[];\n}\n\n/** @experimental */\nexport interface UiWorktree {\n readonly id: string;\n readonly path: string;\n readonly branch: string;\n readonly sourceSessionId: string;\n readonly pointId: string;\n readonly commit: string;\n readonly sessionIds: readonly string[];\n readonly status: \"ready\" | \"creating\" | \"error\";\n readonly error?: string;\n}\n\n/** @experimental */\nexport interface UiResource {\n readonly id: string;\n readonly kind: \"session\" | \"task\";\n readonly title: string;\n readonly status: string;\n readonly updatedAt: number;\n}\n\n/** @experimental */\nexport type UiBlockStatus =\n | \"queued\"\n | \"streaming\"\n | \"running\"\n | \"awaiting-approval\"\n | \"completed\"\n | \"failed\"\n | \"cancelled\"\n | \"interrupted\"\n | \"unknown\"\n | \"not-started\"\n | \"denied\";\n/** @experimental */\nexport interface UiDiagnostic {\n readonly message: string;\n readonly code?: string;\n}\n/** @experimental */\nexport interface UiPresentation {\n readonly kind: string;\n readonly version: number;\n readonly text: string;\n}\n/**\n * A historical decision is evidence, never an actionable request.\n * @experimental\n */\nexport interface UiApprovalRecord {\n readonly id: string;\n readonly status: \"pending\" | \"allowed\" | \"denied\" | \"cancelled\";\n readonly scope?: \"once\" | \"session\" | \"persistent\";\n readonly scopeDescription?: string;\n}\n\n/** @experimental */\nexport interface UiBlock {\n readonly content?: readonly DisplayPart[];\n readonly id: string;\n readonly kind: \"user\" | \"assistant\" | \"tool\" | \"notice\";\n readonly text: string;\n readonly title?: string;\n readonly status?: UiBlockStatus;\n readonly runId?: string;\n readonly toolCallId?: string;\n readonly approval?: UiApprovalRecord;\n readonly diagnostic?: UiDiagnostic;\n readonly progress?: string;\n readonly reasoning?: string;\n readonly input?: string;\n readonly presentation?: UiPresentation;\n}\n\n/** @experimental */\nexport interface UiInteraction {\n readonly id: string;\n readonly kind: \"approval\";\n readonly title: string;\n readonly detail: string;\n /** Links a current host request to its transcript evidence, not an execution command. */\n readonly blockId: string;\n readonly runId: string;\n readonly toolCallId: string;\n readonly toolName: string;\n readonly choices: readonly { readonly value: string; readonly label: string }[];\n}\n\n/** @experimental */\nexport interface UiPanel {\n readonly id: string;\n readonly title: string;\n readonly fields: readonly { readonly label: string; readonly value: string }[];\n readonly actions?: readonly UiAction[];\n}\n\n/** @experimental */\nexport interface UiChoice {\n readonly command: string;\n readonly label: string;\n readonly value: string;\n readonly options: readonly { readonly value: string; readonly label: string }[];\n}\n\n/** @experimental */\nexport interface UiAction {\n readonly label: string;\n readonly command: string;\n readonly args: Readonly<Record<string, string>>;\n readonly confirm?: string;\n readonly input?: { readonly name: string; readonly label: string; readonly value: string };\n}\n/** @experimental */\nexport interface UiCommandOutput {\n readonly title: string;\n readonly text: string;\n readonly actions?: readonly UiAction[];\n}\n/** @experimental */\nexport interface UiForm {\n readonly id: string;\n readonly title: string;\n readonly detail: string;\n readonly mode: \"form\" | \"review\" | \"url\";\n readonly editable: boolean;\n readonly value: string;\n readonly url?: string;\n}\n/** @experimental */\nexport interface UiControls {\n readonly inputCommand: string;\n readonly responseCommand: string;\n readonly cancelCommand: string;\n readonly busy: boolean;\n readonly forms: readonly UiForm[];\n}\n/** @experimental */\nexport interface UiCompletion {\n readonly value: string;\n readonly label: string;\n readonly description?: string;\n}\n\n/** @experimental */\nexport interface UiSnapshot {\n readonly workspace?: UiWorkspaceGit;\n readonly forkPoints?: readonly UiForkPoint[];\n readonly checkpoints?: readonly UiCheckpoint[];\n readonly worktrees?: readonly UiWorktree[];\n readonly badges?: readonly UiBadge[];\n readonly version: 1;\n /** New on each host start; prevents replay of an uncertain command after restart. */\n readonly hostId: string;\n readonly revision: number;\n readonly product: UiProduct;\n readonly resources: readonly UiResource[];\n /** \u5B8C\u6574\u8D44\u6E90\u76EE\u5F55\u7684\u6210\u5458\u3001\u5206\u9875\u987A\u5E8F\u6216\u641C\u7D22\u6587\u672C\u53D8\u5316\u65F6\u66F4\u65B0\u3002 */\n readonly resourcesVersion?: string;\n readonly selectedId: string | null;\n /** \u5DE5\u4F5C\u533A\u5F53\u524D\u4F1A\u8BDD\uFF0C\u4E0E selectedId \u76F8\u540C\uFF1B\u4EFB\u52A1\u5BBF\u4E3B\u7701\u7565\u6B64\u5B57\u6BB5\u3002 */\n readonly activeId?: string;\n readonly blocks: readonly UiBlock[];\n readonly historyPage?: { readonly nextCursor: string | null; readonly total: number };\n readonly reads?: { readonly resources: boolean; readonly history: boolean; readonly fields: boolean };\n readonly interactions: readonly UiInteraction[];\n /** Namespaced, explicitly implemented commands, not arbitrary method names. */\n readonly commands: readonly string[];\n readonly panels: readonly UiPanel[];\n readonly choices: readonly UiChoice[];\n readonly notice?: string;\n readonly controls?: UiControls;\n}\n\n/** @experimental */\nexport interface UiCommand {\n readonly version: 1;\n readonly hostId: string;\n readonly requestId: string;\n readonly name: string;\n readonly targetId: string | null;\n /** \u5207\u6362\u3001\u65B0\u5EFA\u548C\u5220\u9664\u4F1A\u8BDD\u65F6\u5FC5\u987B\u63D0\u4F9B\u7684\u5F53\u524D\u4F1A\u8BDD ID\u3002 */\n readonly expectedActiveId?: string;\n readonly args: Readonly<Record<string, string>>;\n}\n\n/** @experimental */\nexport interface UiReceipt {\n readonly selectedId?: string | null;\n readonly output?: UiCommandOutput;\n readonly diff?: UiWorkspaceDiff;\n readonly disconnect?: boolean;\n}\n\n/** @experimental */\nexport interface UiPageRequest {\n readonly query?: string;\n readonly cursor?: string;\n}\n/** @experimental */\nexport interface UiPage<T> {\n readonly hostId: string;\n readonly items: readonly T[];\n readonly nextCursor: string | null;\n readonly total: number;\n}\n/** @experimental */\nexport type UiField = \"input\" | \"text\" | \"reasoning\" | \"diagnostic\" | \"presentation\" | \"request\";\n/** @experimental */\nexport interface UiFieldRequest {\n readonly blockId: string;\n readonly field: UiField;\n readonly offset: number;\n readonly version?: string;\n}\n/** @experimental */\nexport interface UiFieldPage {\n readonly hostId: string;\n readonly text: string;\n readonly offset: number;\n readonly nextOffset: number | null;\n readonly total: number;\n readonly version: string;\n}\n\n/**\n * One owner consumes runtime events; many clients subscribe to invalidations.\n * @experimental\n */\nexport interface UiHost {\n media?(selectedId: string, id: string): Promise<ImageData>;\n readonly hostId: string;\n snapshot(selectedId?: string): Promise<UiSnapshot>;\n execute(command: UiCommand): Promise<UiReceipt>;\n subscribe(listener: () => void): () => void;\n resources?(request: UiPageRequest): Promise<UiPage<UiResource>>;\n history?(selectedId: string, request: UiPageRequest): Promise<UiPage<UiBlock>>;\n field?(selectedId: string, request: UiFieldRequest): Promise<UiFieldPage>;\n complete?(\n selectedId: string,\n text: string,\n ): Promise<{ readonly hostId: string; readonly items: readonly UiCompletion[] }>;\n}\n\n/** @experimental */\nexport class UiError extends Error {\n constructor(\n readonly status: number,\n message: string,\n ) {\n super(message);\n this.name = \"UiError\";\n }\n}\n\n/** @experimental */\nexport function commandArgs(command: UiCommand, required: readonly string[], optional: readonly string[] = []): void {\n if (\n required.some((key) => !command.args[key]?.trim()) ||\n Object.keys(command.args).some((key) => !required.includes(key) && !optional.includes(key))\n ) {\n throw new UiError(400, \"\u547D\u4EE4\u53C2\u6570\u4E0D\u6B63\u786E\u3002\");\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;AAsUM,IAAO,UAAP,cAAuB,MAAK;EADlC,OACkC;;;EAErB;EADX,YACW,QACT,SAAe;AAEf,UAAM,OAAO;kBAHJ;AAIT,SAAK,OAAO;EACd;;AAII,SAAU,YAAY,SAAoB,UAA6B,WAA8B,CAAA,GAAE;AAC3G,MACE,SAAS,KAAK,CAAC,QAAQ,CAAC,QAAQ,KAAK,GAAG,GAAG,KAAI,CAAE,KACjD,OAAO,KAAK,QAAQ,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,SAAS,GAAG,KAAK,CAAC,SAAS,SAAS,GAAG,CAAC,GAC1F;AACA,UAAM,IAAI,QAAQ,KAAK,kDAAU;EACnC;AACF;AAPgB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from "node:module"; const require = __createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
__name
|
|
4
|
+
} from "./chunk-E732GDOI.js";
|
|
5
|
+
|
|
6
|
+
// packages/ui/tui/dist/slash-commands.js
|
|
7
|
+
var SlashCommandRegistry = class {
|
|
8
|
+
static {
|
|
9
|
+
__name(this, "SlashCommandRegistry");
|
|
10
|
+
}
|
|
11
|
+
definitions;
|
|
12
|
+
byName = /* @__PURE__ */ new Map();
|
|
13
|
+
names = [];
|
|
14
|
+
constructor(definitions) {
|
|
15
|
+
this.definitions = [...definitions];
|
|
16
|
+
for (const definition of definitions) {
|
|
17
|
+
this.registerName(definition.name, definition);
|
|
18
|
+
for (const alias of definition.aliases ?? []) {
|
|
19
|
+
this.registerName(alias, definition);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
find(name) {
|
|
24
|
+
return this.byName.get(name.toLowerCase());
|
|
25
|
+
}
|
|
26
|
+
parse(input) {
|
|
27
|
+
const trimmed = input.trim();
|
|
28
|
+
if (!trimmed.startsWith("/"))
|
|
29
|
+
return { type: "not-command" };
|
|
30
|
+
const [invokedAs = "", ...arguments_] = trimmed.split(/\s+/u);
|
|
31
|
+
const definition = this.find(invokedAs);
|
|
32
|
+
return definition === void 0 ? { type: "unknown", command: invokedAs } : {
|
|
33
|
+
type: "command",
|
|
34
|
+
definition,
|
|
35
|
+
invokedAs,
|
|
36
|
+
arguments: arguments_
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
match(prefix) {
|
|
40
|
+
if (!prefix.startsWith("/") || /\s/u.test(prefix))
|
|
41
|
+
return [];
|
|
42
|
+
const normalized = prefix.toLowerCase();
|
|
43
|
+
return this.names.filter(({ value }) => value.toLowerCase().startsWith(normalized)).map(({ value, definition }) => ({
|
|
44
|
+
value,
|
|
45
|
+
label: value,
|
|
46
|
+
description: definition.description
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
createSuggester(suggestArguments) {
|
|
50
|
+
return async (input) => {
|
|
51
|
+
if (!input.startsWith("/"))
|
|
52
|
+
return [];
|
|
53
|
+
const argumentInput = splitSlashCommandArgumentInput(input);
|
|
54
|
+
if (argumentInput === void 0)
|
|
55
|
+
return this.match(input);
|
|
56
|
+
const definition = this.find(argumentInput.invokedAs);
|
|
57
|
+
if (definition === void 0 || suggestArguments === void 0)
|
|
58
|
+
return [];
|
|
59
|
+
return suggestArguments({
|
|
60
|
+
input,
|
|
61
|
+
definition,
|
|
62
|
+
...argumentInput
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
registerName(value, definition) {
|
|
67
|
+
if (!isCommandName(value)) {
|
|
68
|
+
throw new TypeError(`Invalid slash command name: ${JSON.stringify(value)}`);
|
|
69
|
+
}
|
|
70
|
+
const normalized = value.toLowerCase();
|
|
71
|
+
if (this.byName.has(normalized)) {
|
|
72
|
+
throw new Error(`Duplicate slash command name: ${value}`);
|
|
73
|
+
}
|
|
74
|
+
this.byName.set(normalized, definition);
|
|
75
|
+
this.names.push({ value, definition });
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
function splitSlashCommandArgumentInput(input) {
|
|
79
|
+
const match = /^(\/\S+)\s+(.*)$/u.exec(input);
|
|
80
|
+
return match === null ? void 0 : { invokedAs: match[1], argumentPrefix: match[2] };
|
|
81
|
+
}
|
|
82
|
+
__name(splitSlashCommandArgumentInput, "splitSlashCommandArgumentInput");
|
|
83
|
+
function isCommandName(value) {
|
|
84
|
+
return /^\/\S+$/u.test(value);
|
|
85
|
+
}
|
|
86
|
+
__name(isCommandName, "isCommandName");
|
|
87
|
+
|
|
88
|
+
export {
|
|
89
|
+
SlashCommandRegistry
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=chunk-Z3BOPBVU.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../packages/ui/tui/src/slash-commands.ts"],
|
|
4
|
+
"sourcesContent": ["/** @experimental */\nexport interface SlashCommandDefinition<Name extends string = string> {\n readonly name: Name;\n readonly aliases?: readonly string[];\n readonly usage: string;\n readonly description: string;\n}\n\n/** @experimental */\nexport interface SlashCommandInvocation<Definition extends SlashCommandDefinition = SlashCommandDefinition> {\n readonly type: \"command\";\n readonly definition: Definition;\n readonly invokedAs: string;\n readonly arguments: readonly string[];\n}\n\n/** @experimental */\nexport type SlashCommandParseResult<Definition extends SlashCommandDefinition = SlashCommandDefinition> =\n | SlashCommandInvocation<Definition>\n | { readonly type: \"not-command\" }\n | { readonly type: \"unknown\"; readonly command: string };\n\n/** @experimental */\nexport interface SlashCommandSuggestion {\n /** Full input value represented by this suggestion. */\n readonly value: string;\n readonly label: string;\n readonly description?: string;\n}\n\n/** @experimental */\nexport interface SlashCommandArgumentContext<Definition extends SlashCommandDefinition = SlashCommandDefinition> {\n readonly input: string;\n readonly invokedAs: string;\n readonly argumentPrefix: string;\n readonly definition: Definition;\n}\n\n/** @experimental */\nexport type SlashCommandArgumentSuggester<Definition extends SlashCommandDefinition = SlashCommandDefinition> = (\n context: SlashCommandArgumentContext<Definition>,\n) => readonly SlashCommandSuggestion[] | Promise<readonly SlashCommandSuggestion[]>;\n\n/** @experimental */\nexport type SlashCommandSuggester = (input: string) => Promise<readonly SlashCommandSuggestion[]>;\n\n/**\n * Validated, case-insensitive registry for slash-command parsing and completion.\n * @experimental\n */\nexport class SlashCommandRegistry<Definition extends SlashCommandDefinition = SlashCommandDefinition> {\n readonly definitions: readonly Definition[];\n\n private readonly byName = new Map<string, Definition>();\n private readonly names: Array<{ readonly value: string; readonly definition: Definition }> = [];\n\n constructor(definitions: readonly Definition[]) {\n this.definitions = [...definitions];\n for (const definition of definitions) {\n this.registerName(definition.name, definition);\n for (const alias of definition.aliases ?? []) {\n this.registerName(alias, definition);\n }\n }\n }\n\n find(name: string): Definition | undefined {\n return this.byName.get(name.toLowerCase());\n }\n\n parse(input: string): SlashCommandParseResult<Definition> {\n const trimmed = input.trim();\n if (!trimmed.startsWith(\"/\")) return { type: \"not-command\" };\n const [invokedAs = \"\", ...arguments_] = trimmed.split(/\\s+/u);\n const definition = this.find(invokedAs);\n return definition === undefined\n ? { type: \"unknown\", command: invokedAs }\n : {\n type: \"command\",\n definition,\n invokedAs,\n arguments: arguments_,\n };\n }\n\n match(prefix: string): readonly SlashCommandSuggestion[] {\n if (!prefix.startsWith(\"/\") || /\\s/u.test(prefix)) return [];\n const normalized = prefix.toLowerCase();\n return this.names\n .filter(({ value }) => value.toLowerCase().startsWith(normalized))\n .map(({ value, definition }) => ({\n value,\n label: value,\n description: definition.description,\n }));\n }\n\n createSuggester(suggestArguments?: SlashCommandArgumentSuggester<Definition>): SlashCommandSuggester {\n return async (input) => {\n if (!input.startsWith(\"/\")) return [];\n const argumentInput = splitSlashCommandArgumentInput(input);\n if (argumentInput === undefined) return this.match(input);\n const definition = this.find(argumentInput.invokedAs);\n if (definition === undefined || suggestArguments === undefined) return [];\n return suggestArguments({\n input,\n definition,\n ...argumentInput,\n });\n };\n }\n\n private registerName(value: string, definition: Definition): void {\n if (!isCommandName(value)) {\n throw new TypeError(`Invalid slash command name: ${JSON.stringify(value)}`);\n }\n const normalized = value.toLowerCase();\n if (this.byName.has(normalized)) {\n throw new Error(`Duplicate slash command name: ${value}`);\n }\n this.byName.set(normalized, definition);\n this.names.push({ value, definition });\n }\n}\n\n/** @experimental */\nexport function splitSlashCommandArgumentInput(input: string):\n | {\n readonly invokedAs: string;\n readonly argumentPrefix: string;\n }\n | undefined {\n const match = /^(\\/\\S+)\\s+(.*)$/u.exec(input);\n return match === null ? undefined : { invokedAs: match[1]!, argumentPrefix: match[2]! };\n}\n\nfunction isCommandName(value: string): boolean {\n return /^\\/\\S+$/u.test(value);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;AAkDM,IAAO,uBAAP,MAA2B;EAJjC,OAIiC;;;EACtB;EAEQ,SAAS,oBAAI,IAAG;EAChB,QAA4E,CAAA;EAE7F,YAAY,aAAkC;AAC5C,SAAK,cAAc,CAAC,GAAG,WAAW;AAClC,eAAW,cAAc,aAAa;AACpC,WAAK,aAAa,WAAW,MAAM,UAAU;AAC7C,iBAAW,SAAS,WAAW,WAAW,CAAA,GAAI;AAC5C,aAAK,aAAa,OAAO,UAAU;MACrC;IACF;EACF;EAEA,KAAK,MAAY;AACf,WAAO,KAAK,OAAO,IAAI,KAAK,YAAW,CAAE;EAC3C;EAEA,MAAM,OAAa;AACjB,UAAM,UAAU,MAAM,KAAI;AAC1B,QAAI,CAAC,QAAQ,WAAW,GAAG;AAAG,aAAO,EAAE,MAAM,cAAa;AAC1D,UAAM,CAAC,YAAY,IAAI,GAAG,UAAU,IAAI,QAAQ,MAAM,MAAM;AAC5D,UAAM,aAAa,KAAK,KAAK,SAAS;AACtC,WAAO,eAAe,SAClB,EAAE,MAAM,WAAW,SAAS,UAAS,IACrC;MACE,MAAM;MACN;MACA;MACA,WAAW;;EAEnB;EAEA,MAAM,QAAc;AAClB,QAAI,CAAC,OAAO,WAAW,GAAG,KAAK,MAAM,KAAK,MAAM;AAAG,aAAO,CAAA;AAC1D,UAAM,aAAa,OAAO,YAAW;AACrC,WAAO,KAAK,MACT,OAAO,CAAC,EAAE,MAAK,MAAO,MAAM,YAAW,EAAG,WAAW,UAAU,CAAC,EAChE,IAAI,CAAC,EAAE,OAAO,WAAU,OAAQ;MAC/B;MACA,OAAO;MACP,aAAa,WAAW;MACxB;EACN;EAEA,gBAAgB,kBAA4D;AAC1E,WAAO,OAAO,UAAS;AACrB,UAAI,CAAC,MAAM,WAAW,GAAG;AAAG,eAAO,CAAA;AACnC,YAAM,gBAAgB,+BAA+B,KAAK;AAC1D,UAAI,kBAAkB;AAAW,eAAO,KAAK,MAAM,KAAK;AACxD,YAAM,aAAa,KAAK,KAAK,cAAc,SAAS;AACpD,UAAI,eAAe,UAAa,qBAAqB;AAAW,eAAO,CAAA;AACvE,aAAO,iBAAiB;QACtB;QACA;QACA,GAAG;OACJ;IACH;EACF;EAEQ,aAAa,OAAe,YAAsB;AACxD,QAAI,CAAC,cAAc,KAAK,GAAG;AACzB,YAAM,IAAI,UAAU,+BAA+B,KAAK,UAAU,KAAK,CAAC,EAAE;IAC5E;AACA,UAAM,aAAa,MAAM,YAAW;AACpC,QAAI,KAAK,OAAO,IAAI,UAAU,GAAG;AAC/B,YAAM,IAAI,MAAM,iCAAiC,KAAK,EAAE;IAC1D;AACA,SAAK,OAAO,IAAI,YAAY,UAAU;AACtC,SAAK,MAAM,KAAK,EAAE,OAAO,WAAU,CAAE;EACvC;;AAII,SAAU,+BAA+B,OAAa;AAM1D,QAAM,QAAQ,oBAAoB,KAAK,KAAK;AAC5C,SAAO,UAAU,OAAO,SAAY,EAAE,WAAW,MAAM,CAAC,GAAI,gBAAgB,MAAM,CAAC,EAAE;AACvF;AARgB;AAUhB,SAAS,cAAc,OAAa;AAClC,SAAO,WAAW,KAAK,KAAK;AAC9B;AAFS;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -6,12 +6,13 @@ import {
|
|
|
6
6
|
resolveMaybeCodeGit,
|
|
7
7
|
resolveMaybeCodeMcp,
|
|
8
8
|
resolveMaybeCodeObservability,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
9
|
+
resolveMaybeCodeRecording,
|
|
10
|
+
resolveMaybeCodeRetry
|
|
11
|
+
} from "./chunk-3IORPKBL.js";
|
|
12
|
+
import "./chunk-MNBYXL5Y.js";
|
|
13
|
+
import "./chunk-WVIRS76R.js";
|
|
14
|
+
import "./chunk-5SLWALZK.js";
|
|
15
|
+
import "./chunk-UQDZ55LQ.js";
|
|
15
16
|
import "./chunk-BSBNNF34.js";
|
|
16
17
|
import "./chunk-E732GDOI.js";
|
|
17
18
|
export {
|
|
@@ -21,7 +22,7 @@ export {
|
|
|
21
22
|
resolveMaybeCodeGit,
|
|
22
23
|
resolveMaybeCodeMcp,
|
|
23
24
|
resolveMaybeCodeObservability,
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
resolveMaybeCodeRecording,
|
|
26
|
+
resolveMaybeCodeRetry
|
|
26
27
|
};
|
|
27
|
-
//# sourceMappingURL=configured-
|
|
28
|
+
//# sourceMappingURL=configured-ACNM6TRQ.js.map
|