@agent-native/core 0.47.1 → 0.48.2
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/bin/agent-native.js +41 -0
- package/dist/a2a/handlers.js +2 -2
- package/dist/a2a/handlers.js.map +1 -1
- package/dist/a2a/server.js +2 -2
- package/dist/a2a/server.js.map +1 -1
- package/dist/action.d.ts +43 -2
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js.map +1 -1
- package/dist/agent/context-xray/actions/context-evict.d.ts +7 -1
- package/dist/agent/context-xray/actions/context-evict.d.ts.map +1 -1
- package/dist/agent/context-xray/actions/context-manifest-get.d.ts +4 -1
- package/dist/agent/context-xray/actions/context-manifest-get.d.ts.map +1 -1
- package/dist/agent/context-xray/actions/context-pin.d.ts +7 -1
- package/dist/agent/context-xray/actions/context-pin.d.ts.map +1 -1
- package/dist/agent/context-xray/actions/context-report.d.ts +12 -1
- package/dist/agent/context-xray/actions/context-report.d.ts.map +1 -1
- package/dist/agent/context-xray/actions/context-restore.d.ts +7 -1
- package/dist/agent/context-xray/actions/context-restore.d.ts.map +1 -1
- package/dist/agent/context-xray/apply-directives.d.ts.map +1 -1
- package/dist/agent/context-xray/apply-directives.js.map +1 -1
- package/dist/agent/context-xray/schema.d.ts +10 -10
- package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.js +26 -3
- package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
- package/dist/agent/engine/anthropic-engine.d.ts +1 -1
- package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
- package/dist/agent/engine/builder-engine.d.ts +1 -1
- package/dist/agent/engine/builder-engine.d.ts.map +1 -1
- package/dist/agent/engine/builder-engine.js +47 -8
- package/dist/agent/engine/builder-engine.js.map +1 -1
- package/dist/agent/engine/builtin.js +1 -1
- package/dist/agent/engine/builtin.js.map +1 -1
- package/dist/agent/engine/output-tokens.d.ts +1 -1
- package/dist/agent/engine/output-tokens.d.ts.map +1 -1
- package/dist/agent/engine/output-tokens.js +6 -2
- package/dist/agent/engine/output-tokens.js.map +1 -1
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +7 -4
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/engine/types.d.ts +19 -0
- package/dist/agent/engine/types.d.ts.map +1 -1
- package/dist/agent/engine/types.js +6 -0
- package/dist/agent/engine/types.js.map +1 -1
- package/dist/agent/model-config.d.ts +22 -14
- package/dist/agent/model-config.d.ts.map +1 -1
- package/dist/agent/model-config.js +113 -8
- package/dist/agent/model-config.js.map +1 -1
- package/dist/agent/production-agent.d.ts +19 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +253 -39
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-loop-with-resume.d.ts.map +1 -1
- package/dist/agent/run-loop-with-resume.js +10 -0
- package/dist/agent/run-loop-with-resume.js.map +1 -1
- package/dist/agent/run-manager.d.ts +1 -0
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +36 -9
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts +47 -4
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +154 -4
- package/dist/agent/run-store.js.map +1 -1
- package/dist/agent/thread-data-builder.d.ts.map +1 -1
- package/dist/agent/thread-data-builder.js +57 -2
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/agent/types.d.ts +3 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/agent-web/generator.d.ts +3 -3
- package/dist/appearance/actions/change-appearance.d.ts +6 -1
- package/dist/appearance/actions/change-appearance.d.ts.map +1 -1
- package/dist/application-state/handlers.d.ts +2 -2
- package/dist/application-state/handlers.d.ts.map +1 -1
- package/dist/application-state/store.d.ts.map +1 -1
- package/dist/application-state/store.js +17 -0
- package/dist/application-state/store.js.map +1 -1
- package/dist/catalog.json +2 -1
- package/dist/cli/code-agent-commands.d.ts.map +1 -1
- package/dist/cli/code-agent-commands.js +2 -0
- package/dist/cli/code-agent-commands.js.map +1 -1
- package/dist/cli/code-agent-connector.js +7 -13
- package/dist/cli/code-agent-connector.js.map +1 -1
- package/dist/cli/code-agent-executor.d.ts +54 -2
- package/dist/cli/code-agent-executor.d.ts.map +1 -1
- package/dist/cli/code-agent-executor.js +504 -48
- package/dist/cli/code-agent-executor.js.map +1 -1
- package/dist/cli/code-agent-runs.d.ts +13 -0
- package/dist/cli/code-agent-runs.d.ts.map +1 -1
- package/dist/cli/code-agent-runs.js +36 -0
- package/dist/cli/code-agent-runs.js.map +1 -1
- package/dist/cli/code.js +59 -5
- package/dist/cli/code.js.map +1 -1
- package/dist/cli/connect.js +141 -3
- package/dist/cli/connect.js.map +1 -1
- package/dist/cli/index.js +0 -0
- package/dist/cli/pr-visual-recap-workflow.js +1 -1
- package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
- package/dist/cli/recap.js +476 -46
- package/dist/cli/recap.js.map +1 -1
- package/dist/cli/skills.js +298 -179
- package/dist/cli/skills.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +29 -2
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AgentTaskCard.d.ts.map +1 -1
- package/dist/client/AgentTaskCard.js +17 -2
- package/dist/client/AgentTaskCard.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +310 -1732
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/CommandMenu.d.ts +1 -1
- package/dist/client/CommandMenu.d.ts.map +1 -1
- package/dist/client/CommandMenu.js +1 -1
- package/dist/client/CommandMenu.js.map +1 -1
- package/dist/client/HighlightedCodeBlock.d.ts +40 -0
- package/dist/client/HighlightedCodeBlock.d.ts.map +1 -0
- package/dist/client/HighlightedCodeBlock.js +110 -0
- package/dist/client/HighlightedCodeBlock.js.map +1 -0
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +8 -1
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/PoweredByBadge.d.ts +2 -2
- package/dist/client/PoweredByBadge.d.ts.map +1 -1
- package/dist/client/RunStuckBanner.d.ts +1 -1
- package/dist/client/RunStuckBanner.d.ts.map +1 -1
- package/dist/client/StarfieldBackground.d.ts.map +1 -1
- package/dist/client/StarfieldBackground.js +10 -5
- package/dist/client/StarfieldBackground.js.map +1 -1
- package/dist/client/Turnstile.d.ts +1 -1
- package/dist/client/Turnstile.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts +3 -2
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +13 -9
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/app-providers.d.ts +99 -0
- package/dist/client/app-providers.d.ts.map +1 -0
- package/dist/client/app-providers.js +19 -0
- package/dist/client/app-providers.js.map +1 -0
- package/dist/client/assistant-ui-recovery.d.ts +1 -1
- package/dist/client/auth-redirect-url.d.ts +1 -1
- package/dist/client/auth-redirect-url.d.ts.map +1 -1
- package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts +0 -19
- package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts.map +1 -1
- package/dist/client/blocks/library/AnnotatedCodeBlock.js +141 -55
- package/dist/client/blocks/library/AnnotatedCodeBlock.js.map +1 -1
- package/dist/client/blocks/library/DiffBlock.js +1 -1
- package/dist/client/blocks/library/DiffBlock.js.map +1 -1
- package/dist/client/blocks/library/FileTreeBlock.d.ts.map +1 -1
- package/dist/client/blocks/library/FileTreeBlock.js +1 -1
- package/dist/client/blocks/library/FileTreeBlock.js.map +1 -1
- package/dist/client/blocks/library/HighlightedCode.d.ts.map +1 -1
- package/dist/client/blocks/library/HighlightedCode.js +5 -3
- package/dist/client/blocks/library/HighlightedCode.js.map +1 -1
- package/dist/client/blocks/library/annotation-rail.d.ts +5 -4
- package/dist/client/blocks/library/annotation-rail.d.ts.map +1 -1
- package/dist/client/blocks/library/annotation-rail.js +22 -3
- package/dist/client/blocks/library/annotation-rail.js.map +1 -1
- package/dist/client/blocks/library/diagram.js +1 -1
- package/dist/client/blocks/library/diagram.js.map +1 -1
- package/dist/client/blocks/library/diff.config.d.ts +3 -2
- package/dist/client/blocks/library/diff.config.d.ts.map +1 -1
- package/dist/client/blocks/library/diff.config.js +4 -3
- package/dist/client/blocks/library/diff.config.js.map +1 -1
- package/dist/client/blocks/library/question-form.d.ts.map +1 -1
- package/dist/client/blocks/library/question-form.js +2 -1
- package/dist/client/blocks/library/question-form.js.map +1 -1
- package/dist/client/blocks/library/wireframe-kit.d.ts +1 -1
- package/dist/client/blocks/library/wireframe-kit.d.ts.map +1 -1
- package/dist/client/blocks/library/wireframe.js +1 -1
- package/dist/client/blocks/library/wireframe.js.map +1 -1
- package/dist/client/chat/attachment-adapters.d.ts +58 -0
- package/dist/client/chat/attachment-adapters.d.ts.map +1 -0
- package/dist/client/chat/attachment-adapters.js +331 -0
- package/dist/client/chat/attachment-adapters.js.map +1 -0
- package/dist/client/chat/index.d.ts +13 -0
- package/dist/client/chat/index.d.ts.map +1 -0
- package/dist/client/chat/index.js +13 -0
- package/dist/client/chat/index.js.map +1 -0
- package/dist/client/chat/markdown-renderer.d.ts +49 -0
- package/dist/client/chat/markdown-renderer.d.ts.map +1 -0
- package/dist/client/chat/markdown-renderer.js +391 -0
- package/dist/client/chat/markdown-renderer.js.map +1 -0
- package/dist/client/chat/message-components.d.ts +35 -0
- package/dist/client/chat/message-components.d.ts.map +1 -0
- package/dist/client/chat/message-components.js +452 -0
- package/dist/client/chat/message-components.js.map +1 -0
- package/dist/client/chat/repo-helpers.d.ts +41 -0
- package/dist/client/chat/repo-helpers.d.ts.map +1 -0
- package/dist/client/chat/repo-helpers.js +61 -0
- package/dist/client/chat/repo-helpers.js.map +1 -0
- package/dist/client/chat/run-recovery.d.ts +41 -0
- package/dist/client/chat/run-recovery.d.ts.map +1 -0
- package/dist/client/chat/run-recovery.js +348 -0
- package/dist/client/chat/run-recovery.js.map +1 -0
- package/dist/client/chat/tool-call-display.d.ts +34 -0
- package/dist/client/chat/tool-call-display.d.ts.map +1 -0
- package/dist/client/chat/tool-call-display.js +284 -0
- package/dist/client/chat/tool-call-display.js.map +1 -0
- package/dist/client/code-agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/code-agent-chat-adapter.js +20 -0
- package/dist/client/code-agent-chat-adapter.js.map +1 -1
- package/dist/client/collab/index.d.ts +10 -0
- package/dist/client/collab/index.d.ts.map +1 -0
- package/dist/client/collab/index.js +10 -0
- package/dist/client/collab/index.js.map +1 -0
- package/dist/client/components/AgentPresenceChip.d.ts +1 -1
- package/dist/client/components/AgentPresenceChip.d.ts.map +1 -1
- package/dist/client/components/ApiKeySettings.d.ts +1 -1
- package/dist/client/components/ApiKeySettings.d.ts.map +1 -1
- package/dist/client/components/CodeAgentIndicator.d.ts +1 -1
- package/dist/client/components/CodeAgentIndicator.d.ts.map +1 -1
- package/dist/client/components/CodeRequiredDialog.d.ts +1 -1
- package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -1
- package/dist/client/components/LiveCursorOverlay.d.ts.map +1 -1
- package/dist/client/components/LiveCursorOverlay.js.map +1 -1
- package/dist/client/components/PresenceBar.d.ts +1 -1
- package/dist/client/components/PresenceBar.d.ts.map +1 -1
- package/dist/client/composer/PromptComposer.d.ts.map +1 -1
- package/dist/client/composer/PromptComposer.js +6 -26
- package/dist/client/composer/PromptComposer.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts +8 -2
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +21 -9
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/VoiceButton.d.ts +2 -2
- package/dist/client/composer/VoiceButton.d.ts.map +1 -1
- package/dist/client/composer/index.d.ts +1 -1
- package/dist/client/composer/index.d.ts.map +1 -1
- package/dist/client/composer/index.js +1 -1
- package/dist/client/composer/index.js.map +1 -1
- package/dist/client/composer/use-skills.d.ts +1 -1
- package/dist/client/context-xray/ContextMeter.d.ts +1 -1
- package/dist/client/context-xray/ContextMeter.d.ts.map +1 -1
- package/dist/client/context-xray/ContextMeter.js +3 -3
- package/dist/client/context-xray/ContextMeter.js.map +1 -1
- package/dist/client/context-xray/ContextXRayPanel.d.ts.map +1 -1
- package/dist/client/context-xray/ContextXRayPanel.js +4 -3
- package/dist/client/context-xray/ContextXRayPanel.js.map +1 -1
- package/dist/client/context-xray/format.d.ts +11 -0
- package/dist/client/context-xray/format.d.ts.map +1 -1
- package/dist/client/context-xray/format.js +16 -0
- package/dist/client/context-xray/format.js.map +1 -1
- package/dist/client/conversation/AgentConversation.d.ts.map +1 -1
- package/dist/client/conversation/AgentConversation.js +8 -53
- package/dist/client/conversation/AgentConversation.js.map +1 -1
- package/dist/client/conversation/use-near-bottom-autoscroll.d.ts +1 -1
- package/dist/client/conversation/use-near-bottom-autoscroll.d.ts.map +1 -1
- package/dist/client/conversation/use-near-bottom-autoscroll.js +14 -1
- package/dist/client/conversation/use-near-bottom-autoscroll.js.map +1 -1
- package/dist/client/create-query-client.d.ts +28 -0
- package/dist/client/create-query-client.d.ts.map +1 -0
- package/dist/client/create-query-client.js +78 -0
- package/dist/client/create-query-client.js.map +1 -0
- package/dist/client/db-admin/DevDatabaseLink.d.ts +1 -1
- package/dist/client/db-admin/DevDatabaseLink.d.ts.map +1 -1
- package/dist/client/db-admin/RowSidePanel.d.ts +1 -1
- package/dist/client/db-admin/RowSidePanel.d.ts.map +1 -1
- package/dist/client/db-admin/RowSidePanel.js +2 -2
- package/dist/client/db-admin/RowSidePanel.js.map +1 -1
- package/dist/client/db-admin/TableEditor.d.ts +1 -1
- package/dist/client/db-admin/TableEditor.d.ts.map +1 -1
- package/dist/client/db-admin/TableEditor.js +1 -1
- package/dist/client/db-admin/TableEditor.js.map +1 -1
- package/dist/client/db-admin/cell-format.d.ts +1 -1
- package/dist/client/db-admin/cell-format.d.ts.map +1 -1
- package/dist/client/dev-overlay/DevOverlay.d.ts +1 -1
- package/dist/client/dev-overlay/DevOverlay.d.ts.map +1 -1
- package/dist/client/editor/index.d.ts +2 -0
- package/dist/client/editor/index.d.ts.map +1 -0
- package/dist/client/editor/index.js +2 -0
- package/dist/client/editor/index.js.map +1 -0
- package/dist/client/error-format.d.ts.map +1 -1
- package/dist/client/error-format.js +4 -0
- package/dist/client/error-format.js.map +1 -1
- package/dist/client/extensions/AgentNativeExtensionFrame.d.ts +1 -1
- package/dist/client/extensions/AgentNativeExtensionFrame.d.ts.map +1 -1
- package/dist/client/extensions/EmbeddedExtension.d.ts +1 -1
- package/dist/client/extensions/EmbeddedExtension.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionSlot.d.ts +1 -1
- package/dist/client/extensions/ExtensionSlot.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionViewerPage.d.ts +1 -1
- package/dist/client/extensions/ExtensionViewerPage.d.ts.map +1 -1
- package/dist/client/guided-questions.d.ts +6 -6
- package/dist/client/host-bridge.d.ts.map +1 -1
- package/dist/client/host-bridge.js +2 -0
- package/dist/client/host-bridge.js.map +1 -1
- package/dist/client/index.d.ts +7 -6
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +5 -3
- package/dist/client/index.js.map +1 -1
- package/dist/client/onboarding/OnboardingBanner.d.ts +1 -1
- package/dist/client/onboarding/OnboardingBanner.d.ts.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.d.ts +1 -1
- package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
- package/dist/client/onboarding/SetupButton.d.ts +1 -1
- package/dist/client/onboarding/SetupButton.d.ts.map +1 -1
- package/dist/client/org/InvitationBanner.d.ts +1 -1
- package/dist/client/org/InvitationBanner.d.ts.map +1 -1
- package/dist/client/org/OrgSwitcher.d.ts +1 -1
- package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
- package/dist/client/org/RequireActiveOrg.d.ts +1 -1
- package/dist/client/org/RequireActiveOrg.d.ts.map +1 -1
- package/dist/client/org/hooks.d.ts +3 -3
- package/dist/client/org/hooks.d.ts.map +1 -1
- package/dist/client/progress/RunsTray.d.ts +2 -2
- package/dist/client/progress/RunsTray.d.ts.map +1 -1
- package/dist/client/progress/RunsTray.js +34 -9
- package/dist/client/progress/RunsTray.js.map +1 -1
- package/dist/client/resources/ResourceEditor.d.ts.map +1 -1
- package/dist/client/resources/ResourceEditor.js +1 -1
- package/dist/client/resources/ResourceEditor.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +2 -0
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/rich-markdown-editor/BubbleToolbar.d.ts +1 -1
- package/dist/client/rich-markdown-editor/BubbleToolbar.d.ts.map +1 -1
- package/dist/client/rich-markdown-editor/CodeBlockNode.d.ts.map +1 -1
- package/dist/client/rich-markdown-editor/CodeBlockNode.js +2 -1
- package/dist/client/rich-markdown-editor/CodeBlockNode.js.map +1 -1
- package/dist/client/rich-markdown-editor/ImageExtension.d.ts.map +1 -1
- package/dist/client/rich-markdown-editor/ImageExtension.js +2 -1
- package/dist/client/rich-markdown-editor/ImageExtension.js.map +1 -1
- package/dist/client/rich-markdown-editor/RegistryBlockNode.d.ts +1 -1
- package/dist/client/rich-markdown-editor/RegistryBlockNode.d.ts.map +1 -1
- package/dist/client/rich-markdown-editor/RegistryBlockNode.js +1 -1
- package/dist/client/rich-markdown-editor/RegistryBlockNode.js.map +1 -1
- package/dist/client/rich-markdown-editor/RichMarkdownEditor.d.ts +1 -1
- package/dist/client/rich-markdown-editor/SharedRichEditor.d.ts.map +1 -1
- package/dist/client/rich-markdown-editor/SharedRichEditor.js +2 -3
- package/dist/client/rich-markdown-editor/SharedRichEditor.js.map +1 -1
- package/dist/client/rich-markdown-editor/SlashCommandMenu.d.ts +1 -1
- package/dist/client/rich-markdown-editor/SlashCommandMenu.d.ts.map +1 -1
- package/dist/client/route-state.d.ts +12 -2
- package/dist/client/route-state.d.ts.map +1 -1
- package/dist/client/route-state.js +1 -1
- package/dist/client/route-state.js.map +1 -1
- package/dist/client/route-warmup.d.ts +1 -1
- package/dist/client/route-warmup.d.ts.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.js +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
- package/dist/client/settings/useBuilderStatus.d.ts +2 -2
- package/dist/client/sharing/ShareDialog.d.ts +1 -1
- package/dist/client/sharing/ShareDialog.d.ts.map +1 -1
- package/dist/client/sse-event-processor.d.ts +8 -0
- package/dist/client/sse-event-processor.d.ts.map +1 -1
- package/dist/client/sse-event-processor.js +33 -10
- package/dist/client/sse-event-processor.js.map +1 -1
- package/dist/client/terminal/AgentTerminal.d.ts +1 -1
- package/dist/client/terminal/AgentTerminal.d.ts.map +1 -1
- package/dist/client/terminal/AgentTerminal.js +4 -2
- package/dist/client/terminal/AgentTerminal.js.map +1 -1
- package/dist/client/tool-cells/BashCell.d.ts +25 -0
- package/dist/client/tool-cells/BashCell.d.ts.map +1 -0
- package/dist/client/tool-cells/BashCell.js +49 -0
- package/dist/client/tool-cells/BashCell.js.map +1 -0
- package/dist/client/tool-cells/EditCell.d.ts +24 -0
- package/dist/client/tool-cells/EditCell.d.ts.map +1 -0
- package/dist/client/tool-cells/EditCell.js +126 -0
- package/dist/client/tool-cells/EditCell.js.map +1 -0
- package/dist/client/tool-cells/FilesChangedSummary.d.ts +13 -0
- package/dist/client/tool-cells/FilesChangedSummary.d.ts.map +1 -0
- package/dist/client/tool-cells/FilesChangedSummary.js +98 -0
- package/dist/client/tool-cells/FilesChangedSummary.js.map +1 -0
- package/dist/client/tool-cells/WriteCell.d.ts +17 -0
- package/dist/client/tool-cells/WriteCell.d.ts.map +1 -0
- package/dist/client/tool-cells/WriteCell.js +26 -0
- package/dist/client/tool-cells/WriteCell.js.map +1 -0
- package/dist/client/tool-cells/index.d.ts +8 -0
- package/dist/client/tool-cells/index.d.ts.map +1 -0
- package/dist/client/tool-cells/index.js +5 -0
- package/dist/client/tool-cells/index.js.map +1 -0
- package/dist/client/transcription/BuilderTranscriptionCta.d.ts +1 -1
- package/dist/client/transcription/BuilderTranscriptionCta.d.ts.map +1 -1
- package/dist/client/use-chat-threads.d.ts +1 -1
- package/dist/client/use-chat-threads.d.ts.map +1 -1
- package/dist/client/use-chat-threads.js +11 -8
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/client/use-db-sync.d.ts +2 -0
- package/dist/client/use-db-sync.d.ts.map +1 -1
- package/dist/client/use-db-sync.js +329 -302
- package/dist/client/use-db-sync.js.map +1 -1
- package/dist/code-agents/transcript-normalizer.d.ts +15 -1
- package/dist/code-agents/transcript-normalizer.d.ts.map +1 -1
- package/dist/code-agents/transcript-normalizer.js +47 -0
- package/dist/code-agents/transcript-normalizer.js.map +1 -1
- package/dist/coding-tools/index.d.ts +75 -0
- package/dist/coding-tools/index.d.ts.map +1 -1
- package/dist/coding-tools/index.js +137 -10
- package/dist/coding-tools/index.js.map +1 -1
- package/dist/collab/client.d.ts +1 -1
- package/dist/collab/client.js +20 -14
- package/dist/collab/client.js.map +1 -1
- package/dist/collab/ydoc-manager.d.ts +1 -1
- package/dist/collab/ydoc-manager.d.ts.map +1 -1
- package/dist/collab/ydoc-manager.js +1 -1
- package/dist/collab/ydoc-manager.js.map +1 -1
- package/dist/db/client.d.ts +9 -1
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +204 -48
- package/dist/db/client.js.map +1 -1
- package/dist/db/create-get-db.d.ts +38 -0
- package/dist/db/create-get-db.d.ts.map +1 -1
- package/dist/db/create-get-db.js +204 -4
- package/dist/db/create-get-db.js.map +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +159 -67
- package/dist/db/migrations.js.map +1 -1
- package/dist/demo/actions/toggle-demo-mode.d.ts +6 -1
- package/dist/demo/actions/toggle-demo-mode.d.ts.map +1 -1
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +80 -39
- package/dist/deploy/build.js.map +1 -1
- package/dist/deploy/workspace-deploy.js +20 -10
- package/dist/deploy/workspace-deploy.js.map +1 -1
- package/dist/extensions/schema.d.ts +51 -51
- package/dist/extensions/slots/schema.d.ts +13 -13
- package/dist/file-upload/actions/upload-image.d.ts +26 -1
- package/dist/file-upload/actions/upload-image.d.ts.map +1 -1
- package/dist/file-upload/index.d.ts +1 -1
- package/dist/file-upload/index.d.ts.map +1 -1
- package/dist/file-upload/index.js +1 -1
- package/dist/file-upload/index.js.map +1 -1
- package/dist/file-upload/pre-upload-attachments.d.ts +37 -0
- package/dist/file-upload/pre-upload-attachments.d.ts.map +1 -1
- package/dist/file-upload/pre-upload-attachments.js +79 -19
- package/dist/file-upload/pre-upload-attachments.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/adapters/slack.js +1 -1
- package/dist/integrations/adapters/slack.js.map +1 -1
- package/dist/integrations/plugin.js +1 -1
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/jobs/scheduler.js +70 -21
- package/dist/jobs/scheduler.js.map +1 -1
- package/dist/mcp/actions/create-org-service-token.d.ts +14 -0
- package/dist/mcp/actions/create-org-service-token.d.ts.map +1 -0
- package/dist/mcp/actions/create-org-service-token.js +74 -0
- package/dist/mcp/actions/create-org-service-token.js.map +1 -0
- package/dist/mcp/actions/list-org-service-tokens.d.ts +17 -0
- package/dist/mcp/actions/list-org-service-tokens.d.ts.map +1 -0
- package/dist/mcp/actions/list-org-service-tokens.js +42 -0
- package/dist/mcp/actions/list-org-service-tokens.js.map +1 -0
- package/dist/mcp/actions/revoke-org-service-token.d.ts +7 -0
- package/dist/mcp/actions/revoke-org-service-token.d.ts.map +1 -0
- package/dist/mcp/actions/revoke-org-service-token.js +28 -0
- package/dist/mcp/actions/revoke-org-service-token.js.map +1 -0
- package/dist/mcp/actions/service-token-access.d.ts +24 -0
- package/dist/mcp/actions/service-token-access.d.ts.map +1 -0
- package/dist/mcp/actions/service-token-access.js +63 -0
- package/dist/mcp/actions/service-token-access.js.map +1 -0
- package/dist/mcp/build-server.d.ts +42 -11
- package/dist/mcp/build-server.d.ts.map +1 -1
- package/dist/mcp/build-server.js +53 -3
- package/dist/mcp/build-server.js.map +1 -1
- package/dist/mcp/connect-route.d.ts +35 -0
- package/dist/mcp/connect-route.d.ts.map +1 -1
- package/dist/mcp/connect-route.js +57 -2
- package/dist/mcp/connect-route.js.map +1 -1
- package/dist/mcp/connect-store.d.ts +43 -0
- package/dist/mcp/connect-store.d.ts.map +1 -1
- package/dist/mcp/connect-store.js +129 -12
- package/dist/mcp/connect-store.js.map +1 -1
- package/dist/mcp/oauth-token.d.ts +10 -0
- package/dist/mcp/oauth-token.d.ts.map +1 -1
- package/dist/mcp/oauth-token.js +2 -0
- package/dist/mcp/oauth-token.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +3 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp-client/routes.js +1 -1
- package/dist/mcp-client/routes.js.map +1 -1
- package/dist/org/context.d.ts +4 -0
- package/dist/org/context.d.ts.map +1 -1
- package/dist/org/context.js +10 -0
- package/dist/org/context.js.map +1 -1
- package/dist/org/handlers.d.ts +11 -7
- package/dist/org/handlers.d.ts.map +1 -1
- package/dist/org/handlers.js +0 -8
- package/dist/org/handlers.js.map +1 -1
- package/dist/org/migrations.d.ts.map +1 -1
- package/dist/org/migrations.js +8 -0
- package/dist/org/migrations.js.map +1 -1
- package/dist/org/schema.d.ts +15 -15
- package/dist/progress/actions.d.ts.map +1 -1
- package/dist/progress/actions.js +13 -5
- package/dist/progress/actions.js.map +1 -1
- package/dist/provider-api/actions/delete-staged-dataset.d.ts +9 -0
- package/dist/provider-api/actions/delete-staged-dataset.d.ts.map +1 -0
- package/dist/provider-api/actions/delete-staged-dataset.js +35 -0
- package/dist/provider-api/actions/delete-staged-dataset.js.map +1 -0
- package/dist/provider-api/actions/list-staged-datasets.d.ts +15 -0
- package/dist/provider-api/actions/list-staged-datasets.d.ts.map +1 -0
- package/dist/provider-api/actions/list-staged-datasets.js +41 -0
- package/dist/provider-api/actions/list-staged-datasets.js.map +1 -0
- package/dist/provider-api/actions/query-staged-dataset.d.ts +29 -0
- package/dist/provider-api/actions/query-staged-dataset.d.ts.map +1 -0
- package/dist/provider-api/actions/query-staged-dataset.js +116 -0
- package/dist/provider-api/actions/query-staged-dataset.js.map +1 -0
- package/dist/provider-api/custom-registry.d.ts.map +1 -1
- package/dist/provider-api/custom-registry.js.map +1 -1
- package/dist/provider-api/index.d.ts +10 -10
- package/dist/provider-api/index.js +0 -5
- package/dist/provider-api/index.js.map +1 -1
- package/dist/provider-api/staged-datasets-aggregate.d.ts +46 -0
- package/dist/provider-api/staged-datasets-aggregate.d.ts.map +1 -0
- package/dist/provider-api/staged-datasets-aggregate.js +209 -0
- package/dist/provider-api/staged-datasets-aggregate.js.map +1 -0
- package/dist/provider-api/staged-datasets-store.d.ts +76 -0
- package/dist/provider-api/staged-datasets-store.d.ts.map +1 -0
- package/dist/provider-api/staged-datasets-store.js +319 -0
- package/dist/provider-api/staged-datasets-store.js.map +1 -0
- package/dist/provider-api/staging.d.ts +100 -0
- package/dist/provider-api/staging.d.ts.map +1 -0
- package/dist/provider-api/staging.js +281 -0
- package/dist/provider-api/staging.js.map +1 -0
- package/dist/resources/handlers.d.ts.map +1 -1
- package/dist/resources/handlers.js +13 -1
- package/dist/resources/handlers.js.map +1 -1
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +1 -2
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/scripts/resources/migrate-learnings.d.ts +1 -1
- package/dist/scripts/resources/migrate-learnings.d.ts.map +1 -1
- package/dist/scripts/resources/migrate-learnings.js +1 -1
- package/dist/scripts/resources/migrate-learnings.js.map +1 -1
- package/dist/secrets/schema.d.ts +7 -7
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +14 -0
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/action-routes.d.ts.map +1 -1
- package/dist/server/action-routes.js +3 -2
- package/dist/server/action-routes.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +33 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +251 -180
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-discovery.d.ts.map +1 -1
- package/dist/server/agent-discovery.js +13 -16
- package/dist/server/agent-discovery.js.map +1 -1
- package/dist/server/agent-teams-run-queue.d.ts +31 -8
- package/dist/server/agent-teams-run-queue.d.ts.map +1 -1
- package/dist/server/agent-teams-run-queue.js +61 -18
- package/dist/server/agent-teams-run-queue.js.map +1 -1
- package/dist/server/agent-teams.d.ts +27 -1
- package/dist/server/agent-teams.d.ts.map +1 -1
- package/dist/server/agent-teams.js +214 -14
- package/dist/server/agent-teams.js.map +1 -1
- package/dist/server/app-base-path.d.ts +20 -0
- package/dist/server/app-base-path.d.ts.map +1 -1
- package/dist/server/app-base-path.js +36 -0
- package/dist/server/app-base-path.js.map +1 -1
- package/dist/server/attachment-actions.d.ts +43 -0
- package/dist/server/attachment-actions.d.ts.map +1 -0
- package/dist/server/attachment-actions.js +214 -0
- package/dist/server/attachment-actions.js.map +1 -0
- package/dist/server/auth.js +1 -1
- package/dist/server/auth.js.map +1 -1
- package/dist/server/complete-text.d.ts +56 -0
- package/dist/server/complete-text.d.ts.map +1 -0
- package/dist/server/complete-text.js +147 -0
- package/dist/server/complete-text.js.map +1 -0
- package/dist/server/core-routes-plugin.d.ts +4 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +49 -29
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/cors-origins.d.ts.map +1 -1
- package/dist/server/cors-origins.js +6 -1
- package/dist/server/cors-origins.js.map +1 -1
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +2 -1
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/csrf.d.ts +1 -1
- package/dist/server/csrf.d.ts.map +1 -1
- package/dist/server/email-actions.d.ts +19 -0
- package/dist/server/email-actions.d.ts.map +1 -0
- package/dist/server/email-actions.js +191 -0
- package/dist/server/email-actions.js.map +1 -0
- package/dist/server/embed-route.js +1 -1
- package/dist/server/embed-route.js.map +1 -1
- package/dist/server/embed-session.d.ts.map +1 -1
- package/dist/server/embed-session.js +5 -1
- package/dist/server/embed-session.js.map +1 -1
- package/dist/server/entry-server.d.ts +24 -0
- package/dist/server/entry-server.d.ts.map +1 -0
- package/dist/server/entry-server.js +54 -0
- package/dist/server/entry-server.js.map +1 -0
- package/dist/server/framework-request-handler.d.ts.map +1 -1
- package/dist/server/framework-request-handler.js +2 -10
- package/dist/server/framework-request-handler.js.map +1 -1
- package/dist/server/google-oauth.d.ts.map +1 -1
- package/dist/server/google-oauth.js +2 -9
- package/dist/server/google-oauth.js.map +1 -1
- package/dist/server/google-realtime-session.d.ts.map +1 -1
- package/dist/server/google-realtime-session.js +6 -4
- package/dist/server/google-realtime-session.js.map +1 -1
- package/dist/server/h3-helpers.d.ts +39 -0
- package/dist/server/h3-helpers.d.ts.map +1 -1
- package/dist/server/h3-helpers.js +104 -1
- package/dist/server/h3-helpers.js.map +1 -1
- package/dist/server/index.d.ts +2 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +1 -8
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/open-route.d.ts.map +1 -1
- package/dist/server/open-route.js +1 -0
- package/dist/server/open-route.js.map +1 -1
- package/dist/server/prompts/framework-core-compact.d.ts +19 -0
- package/dist/server/prompts/framework-core-compact.d.ts.map +1 -0
- package/dist/server/prompts/framework-core-compact.js +69 -0
- package/dist/server/prompts/framework-core-compact.js.map +1 -0
- package/dist/server/prompts/framework-core.d.ts +26 -0
- package/dist/server/prompts/framework-core.d.ts.map +1 -0
- package/dist/server/prompts/framework-core.js +130 -0
- package/dist/server/prompts/framework-core.js.map +1 -0
- package/dist/server/prompts/index.d.ts +9 -0
- package/dist/server/prompts/index.d.ts.map +1 -0
- package/dist/server/prompts/index.js +9 -0
- package/dist/server/prompts/index.js.map +1 -0
- package/dist/server/prompts/model-overlays.d.ts +18 -0
- package/dist/server/prompts/model-overlays.d.ts.map +1 -0
- package/dist/server/prompts/model-overlays.js +46 -0
- package/dist/server/prompts/model-overlays.js.map +1 -0
- package/dist/server/prompts/shared-rules.d.ts +29 -0
- package/dist/server/prompts/shared-rules.d.ts.map +1 -0
- package/dist/server/prompts/shared-rules.js +54 -0
- package/dist/server/prompts/shared-rules.js.map +1 -0
- package/dist/server/security-headers.d.ts +7 -1
- package/dist/server/security-headers.d.ts.map +1 -1
- package/dist/server/security-headers.js +11 -0
- package/dist/server/security-headers.js.map +1 -1
- package/dist/server/ssr-handler.d.ts.map +1 -1
- package/dist/server/ssr-handler.js +135 -46
- package/dist/server/ssr-handler.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts.map +1 -1
- package/dist/server/transcribe-voice.js +7 -4
- package/dist/server/transcribe-voice.js.map +1 -1
- package/dist/settings/store.d.ts.map +1 -1
- package/dist/settings/store.js +9 -0
- package/dist/settings/store.js.map +1 -1
- package/dist/shared/markdown-block-split.d.ts +39 -0
- package/dist/shared/markdown-block-split.d.ts.map +1 -0
- package/dist/shared/markdown-block-split.js +97 -0
- package/dist/shared/markdown-block-split.js.map +1 -0
- package/dist/shared/reasoning-effort.js +13 -1
- package/dist/shared/reasoning-effort.js.map +1 -1
- package/dist/shared/streaming-text-smoothing.d.ts +18 -0
- package/dist/shared/streaming-text-smoothing.d.ts.map +1 -1
- package/dist/shared/streaming-text-smoothing.js +70 -4
- package/dist/shared/streaming-text-smoothing.js.map +1 -1
- package/dist/sharing/actions/list-resource-shares.d.ts +24 -1
- package/dist/sharing/actions/list-resource-shares.d.ts.map +1 -1
- package/dist/sharing/actions/set-resource-visibility.d.ts +8 -1
- package/dist/sharing/actions/set-resource-visibility.d.ts.map +1 -1
- package/dist/sharing/actions/share-resource.d.ts +12 -1
- package/dist/sharing/actions/share-resource.d.ts.map +1 -1
- package/dist/sharing/actions/unshare-resource.d.ts +8 -1
- package/dist/sharing/actions/unshare-resource.d.ts.map +1 -1
- package/dist/sharing/schema.d.ts +10 -10
- package/dist/styles/agent-conversation.css +239 -0
- package/dist/templates/default/.agents/skills/delegate-to-agent/SKILL.md +50 -2
- package/dist/templates/default/AGENTS.md +1 -1
- package/dist/templates/default/DEVELOPING.md +19 -0
- package/dist/templates/default/app/entry.client.tsx +4 -1
- package/dist/templates/default/app/entry.server.tsx +4 -56
- package/dist/templates/default/app/global.css +3 -2
- package/dist/templates/default/app/root.tsx +8 -24
- package/dist/templates/default/app/routes/_index.tsx +0 -13
- package/dist/templates/default/package.json +6 -5
- package/dist/templates/default/tsconfig.json +2 -1
- package/dist/templates/starter-shell-sync.spec.ts +118 -0
- package/dist/templates/ui-primitives-sync.spec.ts +399 -0
- package/dist/templates/workspace-core/.agents/skills/delegate-to-agent/SKILL.md +50 -2
- package/dist/terminal/pty-server.js +1 -1
- package/dist/terminal/pty-server.js.map +1 -1
- package/dist/triggers/dispatcher.js +1 -1
- package/dist/triggers/dispatcher.js.map +1 -1
- package/dist/usage/store.d.ts.map +1 -1
- package/dist/usage/store.js +60 -7
- package/dist/usage/store.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +44 -12
- package/dist/vite/client.js.map +1 -1
- package/dist/workspace-files/schema.d.ts +8 -8
- package/dist/workspace-files/tool.d.ts.map +1 -1
- package/dist/workspace-files/tool.js +0 -1
- package/dist/workspace-files/tool.js.map +1 -1
- package/docs/content/a2a-protocol.md +18 -12
- package/docs/content/actions.md +42 -10
- package/docs/content/agent-mentions.md +7 -8
- package/docs/content/agent-teams.md +23 -37
- package/docs/content/agent-web-surfaces.md +18 -9
- package/docs/content/authentication.md +6 -17
- package/docs/content/automations.md +43 -15
- package/docs/content/cli-adapters.md +25 -24
- package/docs/content/client.md +66 -17
- package/docs/content/cloneable-saas.md +19 -23
- package/docs/content/code-agents-ui.md +3 -31
- package/docs/content/components.md +308 -0
- package/docs/content/context-awareness.md +4 -0
- package/docs/content/creating-templates.md +4 -2
- package/docs/content/cross-app-sso.md +45 -19
- package/docs/content/database.md +26 -1
- package/docs/content/deployment.md +3 -1
- package/docs/content/dispatch.md +9 -37
- package/docs/content/drop-in-agent.md +123 -2
- package/docs/content/embedding-sdk.md +35 -0
- package/docs/content/extensions.md +2 -2
- package/docs/content/external-agents.md +86 -171
- package/docs/content/faq.md +6 -27
- package/docs/content/frames.md +9 -12
- package/docs/content/getting-started.md +80 -77
- package/docs/content/key-concepts.md +29 -19
- package/docs/content/mcp-apps.md +103 -0
- package/docs/content/mcp-clients.md +2 -2
- package/docs/content/mcp-protocol.md +40 -17
- package/docs/content/messaging.md +11 -4
- package/docs/content/migration-workbench.md +4 -47
- package/docs/content/multi-app-workspace.md +48 -17
- package/docs/content/multi-tenancy.md +1 -1
- package/docs/content/notifications.md +8 -6
- package/docs/content/observability.md +26 -15
- package/docs/content/onboarding.md +7 -1
- package/docs/content/pr-visual-recap.md +203 -23
- package/docs/content/progress.md +5 -5
- package/docs/content/pure-agent-apps.md +3 -1
- package/docs/content/real-time-collaboration.md +106 -0
- package/docs/content/recurring-jobs.md +17 -1
- package/docs/content/security.md +17 -3
- package/docs/content/server.md +39 -3
- package/docs/content/sharing.md +20 -1
- package/docs/content/skills-guide.md +151 -125
- package/docs/content/template-analytics.md +8 -0
- package/docs/content/template-assets.md +2 -0
- package/docs/content/template-brain.md +59 -3
- package/docs/content/template-calendar.md +8 -0
- package/docs/content/template-clips.md +11 -2
- package/docs/content/template-content.md +24 -4
- package/docs/content/template-design.md +19 -17
- package/docs/content/template-dispatch.md +2 -0
- package/docs/content/template-forms.md +28 -1
- package/docs/content/template-mail.md +17 -0
- package/docs/content/template-plan.md +177 -10
- package/docs/content/template-slides.md +51 -12
- package/docs/content/template-videos.md +17 -0
- package/docs/content/tracking.md +17 -13
- package/docs/content/using-your-agent.md +15 -5
- package/docs/content/voice-input.md +1 -1
- package/docs/content/what-is-agent-native.md +5 -6
- package/docs/content/workspace-connections.md +138 -424
- package/docs/content/workspace-management.md +12 -128
- package/docs/content/workspace.md +125 -199
- package/docs/content/writing-agent-instructions.md +17 -1
- package/package.json +25 -6
- package/src/templates/default/.agents/skills/delegate-to-agent/SKILL.md +50 -2
- package/src/templates/default/AGENTS.md +1 -1
- package/src/templates/default/DEVELOPING.md +19 -0
- package/src/templates/default/app/entry.client.tsx +4 -1
- package/src/templates/default/app/entry.server.tsx +4 -56
- package/src/templates/default/app/global.css +3 -2
- package/src/templates/default/app/root.tsx +8 -24
- package/src/templates/default/app/routes/_index.tsx +0 -13
- package/src/templates/default/package.json +6 -5
- package/src/templates/default/tsconfig.json +2 -1
- package/src/templates/starter-shell-sync.spec.ts +118 -0
- package/src/templates/ui-primitives-sync.spec.ts +399 -0
- package/src/templates/workspace-core/.agents/skills/delegate-to-agent/SKILL.md +50 -2
- package/tsconfig.base.json +2 -10
- package/dist/cli/app-skill.d.ts +0 -157
- package/dist/cli/app-skill.d.ts.map +0 -1
- package/dist/cli/audit-agent-web.d.ts +0 -2
- package/dist/cli/audit-agent-web.d.ts.map +0 -1
- package/dist/cli/code-agent-connector.d.ts +0 -17
- package/dist/cli/code-agent-connector.d.ts.map +0 -1
- package/dist/cli/code.d.ts +0 -66
- package/dist/cli/code.d.ts.map +0 -1
- package/dist/cli/connect.d.ts +0 -140
- package/dist/cli/connect.d.ts.map +0 -1
- package/dist/cli/context-xray-local.d.ts +0 -16
- package/dist/cli/context-xray-local.d.ts.map +0 -1
- package/dist/cli/create-workspace.d.ts +0 -8
- package/dist/cli/create-workspace.d.ts.map +0 -1
- package/dist/cli/index.d.ts +0 -3
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/info.d.ts +0 -2
- package/dist/cli/info.d.ts.map +0 -1
- package/dist/cli/mcp-config-writers.d.ts +0 -82
- package/dist/cli/mcp-config-writers.d.ts.map +0 -1
- package/dist/cli/mcp.d.ts +0 -16
- package/dist/cli/mcp.d.ts.map +0 -1
- package/dist/cli/migrate.d.ts +0 -38
- package/dist/cli/migrate.d.ts.map +0 -1
- package/dist/cli/plan-local.d.ts +0 -43
- package/dist/cli/plan-local.d.ts.map +0 -1
- package/dist/cli/plan-publish-store.d.ts +0 -62
- package/dist/cli/plan-publish-store.d.ts.map +0 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts +0 -11
- package/dist/cli/pr-visual-recap-workflow.d.ts.map +0 -1
- package/dist/cli/recap.d.ts +0 -297
- package/dist/cli/recap.d.ts.map +0 -1
- package/dist/cli/skills.d.ts +0 -162
- package/dist/cli/skills.d.ts.map +0 -1
- package/dist/cli/workspace-dev.d.ts +0 -96
- package/dist/cli/workspace-dev.d.ts.map +0 -1
package/dist/cli/code.js
CHANGED
|
@@ -4,7 +4,7 @@ import path from "node:path";
|
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import { CODE_AGENT_PERMISSION_MODES, appendCodeAgentTranscriptEvent, createCodeAgentRunRecord, getCodeAgentRunRecord, getLastCodeAgentRunRecord, isActiveCodeAgentRun, listCodeAgentRunRecords, listCodeAgentTranscriptEvents, normalizeCodeAgentPermissionMode, queueCodeAgentFollowUp, updateCodeAgentRunRecord, } from "./code-agent-runs.js";
|
|
6
6
|
import { findProjectSlashCommand, listProjectSlashCommands, renderProjectSlashCommandPrompt, } from "./code-agent-commands.js";
|
|
7
|
-
import { executeCodeAgentRun, executeExistingCodeAgentRun, executePendingCodeAgentApproval, } from "./code-agent-executor.js";
|
|
7
|
+
import { executeApproveAlwaysCodeAgentApproval, executeCodeAgentRun, executeDenyCodeAgentApproval, executeExistingCodeAgentRun, executePendingCodeAgentApproval, } from "./code-agent-executor.js";
|
|
8
8
|
import { runAuditAgentWeb } from "./audit-agent-web.js";
|
|
9
9
|
import { runMigrate } from "./migrate.js";
|
|
10
10
|
export const CODE_AGENT_CLI_GOALS = [
|
|
@@ -32,6 +32,8 @@ export const CODE_AGENT_CLI_GOALS = [
|
|
|
32
32
|
];
|
|
33
33
|
const CODE_AGENT_CONTROL_SUBCOMMANDS = new Set([
|
|
34
34
|
"approve",
|
|
35
|
+
"approve-always",
|
|
36
|
+
"deny",
|
|
35
37
|
"attach",
|
|
36
38
|
"list",
|
|
37
39
|
"logs",
|
|
@@ -574,6 +576,12 @@ async function runCodeAgentControl(subcommand, args, output, allowPicker = true)
|
|
|
574
576
|
case "approve":
|
|
575
577
|
await approveCodeAgentRun(runs, effectiveArgs, output);
|
|
576
578
|
return;
|
|
579
|
+
case "approve-always":
|
|
580
|
+
await approveAlwaysCodeAgentRun(runs, effectiveArgs, output);
|
|
581
|
+
return;
|
|
582
|
+
case "deny":
|
|
583
|
+
await denyCodeAgentRun(runs, effectiveArgs, output);
|
|
584
|
+
return;
|
|
577
585
|
case "attach":
|
|
578
586
|
await attachCodeAgentRun(runs, effectiveArgs, output);
|
|
579
587
|
return;
|
|
@@ -600,7 +608,7 @@ async function runCodeAgentControl(subcommand, args, output, allowPicker = true)
|
|
|
600
608
|
}
|
|
601
609
|
async function maybePickRunArgs(subcommand, runs, args, output, allowPicker) {
|
|
602
610
|
if (!allowPicker ||
|
|
603
|
-
!["approve", "attach", "logs", "resume"].includes(subcommand) ||
|
|
611
|
+
!["approve", "approve-always", "deny", "attach", "logs", "resume"].includes(subcommand) ||
|
|
604
612
|
args.includes("--last") ||
|
|
605
613
|
hasExplicitRunId(args) ||
|
|
606
614
|
runs.length === 0 ||
|
|
@@ -841,13 +849,59 @@ async function approveCodeAgentRun(runs, args, output) {
|
|
|
841
849
|
"Running the pending approved command.",
|
|
842
850
|
].join("\n"));
|
|
843
851
|
await executePendingCodeAgentApproval(run.id, { stdout: output });
|
|
852
|
+
writeLine(output, ["", "Approval step finished — run resumed."].join("\n"));
|
|
853
|
+
}
|
|
854
|
+
async function approveAlwaysCodeAgentRun(runs, args, output) {
|
|
855
|
+
const run = selectCodeAgentRun(runs, args, {
|
|
856
|
+
defaultToLast: args.includes("--last"),
|
|
857
|
+
});
|
|
858
|
+
if (!run) {
|
|
859
|
+
writeLine(output, [
|
|
860
|
+
"",
|
|
861
|
+
"Agent-Native Code approve-always",
|
|
862
|
+
"",
|
|
863
|
+
" No Agent-Native Code session selected.",
|
|
864
|
+
"",
|
|
865
|
+
"Try: agent-native code approve-always --last",
|
|
866
|
+
].join("\n"));
|
|
867
|
+
return;
|
|
868
|
+
}
|
|
844
869
|
writeLine(output, [
|
|
845
870
|
"",
|
|
846
|
-
"
|
|
871
|
+
"Agent-Native Code approve-always",
|
|
847
872
|
"",
|
|
848
|
-
|
|
849
|
-
|
|
873
|
+
` Run: ${run.id}`,
|
|
874
|
+
"",
|
|
875
|
+
"Adding command to allowlist and running.",
|
|
876
|
+
].join("\n"));
|
|
877
|
+
await executeApproveAlwaysCodeAgentApproval(run.id, { stdout: output });
|
|
878
|
+
writeLine(output, ["", "Allowlist updated and run resumed."].join("\n"));
|
|
879
|
+
}
|
|
880
|
+
async function denyCodeAgentRun(runs, args, output) {
|
|
881
|
+
const run = selectCodeAgentRun(runs, args, {
|
|
882
|
+
defaultToLast: args.includes("--last"),
|
|
883
|
+
});
|
|
884
|
+
if (!run) {
|
|
885
|
+
writeLine(output, [
|
|
886
|
+
"",
|
|
887
|
+
"Agent-Native Code deny",
|
|
888
|
+
"",
|
|
889
|
+
" No Agent-Native Code session selected.",
|
|
890
|
+
"",
|
|
891
|
+
"Try: agent-native code deny --last",
|
|
892
|
+
].join("\n"));
|
|
893
|
+
return;
|
|
894
|
+
}
|
|
895
|
+
writeLine(output, [
|
|
896
|
+
"",
|
|
897
|
+
"Agent-Native Code deny",
|
|
898
|
+
"",
|
|
899
|
+
` Run: ${run.id}`,
|
|
900
|
+
"",
|
|
901
|
+
"Denying approval and resuming run so model can adapt.",
|
|
850
902
|
].join("\n"));
|
|
903
|
+
await executeDenyCodeAgentApproval(run.id, { stdout: output });
|
|
904
|
+
writeLine(output, ["", "Denial recorded — run resumed."].join("\n"));
|
|
851
905
|
}
|
|
852
906
|
function renderCodeAgentLogs(runs, args) {
|
|
853
907
|
const run = selectCodeAgentRun(runs, args, { defaultToLast: true });
|
package/dist/cli/code.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/cli/code.ts"],"names":[],"mappings":"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","sourcesContent":["import { createInterface } from \"node:readline\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport {\n CODE_AGENT_PERMISSION_MODES,\n appendCodeAgentTranscriptEvent,\n createCodeAgentRunRecord,\n getCodeAgentRunRecord,\n getLastCodeAgentRunRecord,\n isActiveCodeAgentRun,\n listCodeAgentRunRecords,\n listCodeAgentTranscriptEvents,\n normalizeCodeAgentPermissionMode,\n queueCodeAgentFollowUp,\n updateCodeAgentRunRecord,\n type CodeAgentFollowUpMode,\n type CodeAgentPermissionMode,\n type CodeAgentRunRecord,\n type CodeAgentTranscriptEvent,\n} from \"./code-agent-runs.js\";\nimport {\n findProjectSlashCommand,\n listProjectSlashCommands,\n renderProjectSlashCommandPrompt,\n} from \"./code-agent-commands.js\";\nimport {\n executeCodeAgentRun,\n executeExistingCodeAgentRun,\n executePendingCodeAgentApproval,\n} from \"./code-agent-executor.js\";\nimport { runAuditAgentWeb } from \"./audit-agent-web.js\";\nimport { runMigrate } from \"./migrate.js\";\n\nexport type CodeAgentGoalId = \"task\" | \"migrate\" | \"audit\";\n\nexport interface CodeAgentCliGoal {\n id: CodeAgentGoalId;\n slashCommand: string;\n aliases: string[];\n summary: string;\n backingCommand: \"task\" | \"migrate\" | \"audit-agent-web\";\n}\n\nexport type CodeCliCommand =\n | { kind: \"shell\" }\n | { kind: \"help\" }\n | { kind: \"list-goals\" }\n | { kind: \"serve\"; relayUrl?: string }\n | { kind: \"execute-existing-run\"; runId: string }\n | { kind: \"control\"; subcommand: CodeAgentControlSubcommand; args: string[] }\n | {\n kind: \"record-follow-up\";\n prompt: string;\n runId?: string;\n permissionMode?: CodeAgentPermissionMode;\n followUpMode?: CodeAgentFollowUpMode;\n }\n | {\n kind: \"run-project-command\";\n commandName: string;\n forwardedArgs: string[];\n }\n | {\n kind: \"run-goal\";\n goalId: CodeAgentGoalId;\n forwardedArgs: string[];\n };\n\nexport const CODE_AGENT_CLI_GOALS: CodeAgentCliGoal[] = [\n {\n id: \"task\",\n slashCommand: \"/task\",\n aliases: [\"task\", \"todo\"],\n summary:\n \"Run a generic coding task as a resumable Agent-Native Code session.\",\n backingCommand: \"task\",\n },\n {\n id: \"migrate\",\n slashCommand: \"/migrate\",\n aliases: [\"migrate\", \"migration\"],\n summary:\n \"Move a path, URL, or described product into agent-native with verification.\",\n backingCommand: \"migrate\",\n },\n {\n id: \"audit\",\n slashCommand: \"/audit\",\n aliases: [\"audit\", \"audit-agent-web\", \"agent-web\"],\n summary:\n \"Audit a public URL for agent-readable surfaces such as llms.txt and markdown mirrors.\",\n backingCommand: \"audit-agent-web\",\n },\n];\n\ntype CodeAgentControlSubcommand =\n | \"approve\"\n | \"attach\"\n | \"list\"\n | \"logs\"\n | \"ps\"\n | \"resume\"\n | \"status\"\n | \"stop\"\n | \"ui\";\n\nconst CODE_AGENT_CONTROL_SUBCOMMANDS = new Set<CodeAgentControlSubcommand>([\n \"approve\",\n \"attach\",\n \"list\",\n \"logs\",\n \"ps\",\n \"resume\",\n \"status\",\n \"stop\",\n \"ui\",\n] as CodeAgentControlSubcommand[]);\nconst SHELL_PROMPT = \"code> \";\nconst DEFAULT_CODE_AGENT_PERMISSION_MODE: CodeAgentPermissionMode = \"full-auto\";\n\nexport interface CodeShellOptions {\n input?: NodeJS.ReadableStream;\n output?: NodeJS.WritableStream;\n runGoal?: CodeGoalRunner;\n}\n\ntype CodeGoalRunner = (\n goalId: CodeAgentGoalId,\n forwardedArgs: string[],\n output?: NodeJS.WritableStream,\n) => Promise<void>;\n\ntype CodeShellLineResult = \"continue\" | \"exit\";\n\ninterface ParsedTaskArgs {\n prompt: string;\n promptArgs: string[];\n permissionMode: CodeAgentPermissionMode;\n permissionModeExplicit?: boolean;\n error?: string;\n}\n\ninterface RunTaskOptions {\n subtitle?: string;\n source?: string;\n commandName?: string;\n commandPath?: string;\n permissionMode?: CodeAgentPermissionMode;\n}\n\nexport function resolveCodeCommand(argv: string[]): CodeCliCommand {\n const [rawFirst, ...rest] = argv;\n if (!rawFirst) {\n return { kind: \"shell\" };\n }\n\n if (rawFirst === \"--help\" || rawFirst === \"-h\") {\n return { kind: \"help\" };\n }\n\n const first = normalizeGoalToken(rawFirst);\n if (first === \"goals\") {\n return { kind: \"list-goals\" };\n }\n\n if (first === \"serve\") {\n return { kind: \"serve\", relayUrl: parseRelayUrlOption(rest) };\n }\n\n if (first === \"exec\" || first === \"e\") {\n return {\n kind: \"run-goal\",\n goalId: \"task\",\n forwardedArgs: rest,\n };\n }\n\n if (first === \"--print\" || first === \"-p\") {\n return {\n kind: \"run-goal\",\n goalId: \"task\",\n forwardedArgs: rest,\n };\n }\n\n if (first === \"--continue\" || first === \"-c\") {\n const parsed = parseFollowUpArgs(rest);\n return parsed.prompt\n ? {\n kind: \"record-follow-up\",\n prompt: parsed.prompt,\n ...(parsed.followUpMode === \"queued\"\n ? { followUpMode: parsed.followUpMode }\n : {}),\n ...(parsed.permissionModeExplicit\n ? { permissionMode: parsed.permissionMode }\n : {}),\n }\n : {\n kind: \"control\",\n subcommand: \"resume\",\n args: [\"resume\", \"--last\"],\n };\n }\n\n if (first === \"--resume\" || first === \"-r\") {\n return {\n kind: \"control\",\n subcommand: \"resume\",\n args: [\"resume\", ...rest],\n };\n }\n\n if ((first === \"run\" || first === \"start\") && rest[0]) {\n return { kind: \"execute-existing-run\", runId: rest[0] };\n }\n\n const followUp = parseResumeFollowUpPrompt([rawFirst, ...rest]);\n if (followUp) {\n return {\n kind: \"record-follow-up\",\n prompt: followUp.prompt,\n runId: followUp.runId,\n ...(followUp.followUpMode ? { followUpMode: followUp.followUpMode } : {}),\n ...(followUp.permissionMode\n ? { permissionMode: followUp.permissionMode }\n : {}),\n };\n }\n\n const goal = findGoal(first);\n if (goal) {\n return {\n kind: \"run-goal\",\n goalId: goal.id,\n forwardedArgs: rest,\n };\n }\n\n if (rawFirst.startsWith(\"/\")) {\n const projectCommand = findProjectSlashCommand(first);\n if (projectCommand) {\n return {\n kind: \"run-project-command\",\n commandName: projectCommand.name,\n forwardedArgs: rest,\n };\n }\n }\n\n if (isCodeAgentControlSubcommand(first)) {\n return {\n kind: \"control\",\n subcommand: first,\n args: [first, ...rest],\n };\n }\n\n return {\n kind: \"run-goal\",\n goalId: \"task\",\n forwardedArgs: argv,\n };\n}\n\nexport async function runCode(\n argv: string[],\n options: CodeShellOptions = {},\n): Promise<void> {\n const command = resolveCodeCommand(argv);\n const output = options.output ?? process.stdout;\n const runGoal = options.runGoal ?? runCodeGoal;\n\n if (command.kind === \"shell\") {\n await runCodeShell({ ...options, output, runGoal });\n return;\n }\n\n if (command.kind === \"help\") {\n writeLine(output, codeUsage());\n return;\n }\n\n if (command.kind === \"list-goals\") {\n writeLine(output, renderGoalList());\n return;\n }\n\n if (command.kind === \"serve\") {\n const { runCodeAgentConnector } = await import(\"./code-agent-connector.js\");\n const exitCode = await runCodeAgentConnector({\n relayUrl: command.relayUrl,\n output,\n });\n if (exitCode !== 0) process.exitCode = exitCode;\n return;\n }\n\n if (command.kind === \"execute-existing-run\") {\n await executeExistingCodeAgentRun(command.runId, { stdout: output });\n return;\n }\n\n if (command.kind === \"control\") {\n await runCodeAgentControl(command.subcommand, command.args, output);\n return;\n }\n\n if (command.kind === \"record-follow-up\") {\n await recordCodeAgentFollowUpPrompt(\n command.prompt,\n output,\n command.permissionMode,\n command.runId,\n command.followUpMode,\n );\n return;\n }\n\n if (command.kind === \"run-project-command\") {\n await runProjectSlashCommand(\n command.commandName,\n command.forwardedArgs,\n output,\n );\n return;\n }\n\n await runGoal(command.goalId, command.forwardedArgs, output);\n}\n\nexport async function runCodeShell(\n options: CodeShellOptions = {},\n): Promise<void> {\n const input = options.input ?? process.stdin;\n const output = options.output ?? process.stdout;\n const runGoal = options.runGoal ?? runCodeGoal;\n const rl = createInterface({\n input,\n output,\n terminal: isInteractiveTerminal(input, output),\n });\n\n writeLine(output, codeShellIntro());\n writePrompt(output);\n\n try {\n for await (const line of rl) {\n const result = await handleCodeShellLine(line, { output, runGoal });\n if (result === \"exit\") {\n break;\n }\n writePrompt(output);\n }\n } finally {\n rl.close();\n }\n}\n\nexport async function handleCodeShellLine(\n line: string,\n options: Required<Pick<CodeShellOptions, \"output\" | \"runGoal\">>,\n): Promise<CodeShellLineResult> {\n const trimmed = line.trim();\n if (!trimmed) {\n return \"continue\";\n }\n\n const parsed = parseCodeShellArgs(trimmed);\n if (\"error\" in parsed) {\n writeLine(options.output, parsed.error);\n return \"continue\";\n }\n\n const [rawFirst, ...rest] = parsed.args;\n if (!rawFirst) {\n return \"continue\";\n }\n\n const followUp = parseResumeFollowUpPrompt(parsed.args);\n if (followUp) {\n await recordCodeAgentFollowUpPrompt(\n followUp.prompt,\n options.output,\n followUp.permissionMode,\n followUp.runId,\n followUp.followUpMode,\n );\n return \"continue\";\n }\n\n if (rawFirst.startsWith(\"/\")) {\n const first = normalizeGoalToken(rawFirst);\n if (first === \"help\") {\n writeLine(options.output, codeShellHelp());\n return \"continue\";\n }\n\n if (first === \"goals\") {\n writeLine(options.output, renderGoalList());\n return \"continue\";\n }\n\n if (first === \"exit\" || first === \"quit\") {\n writeLine(options.output, \"Leaving Agent-Native Code.\");\n return \"exit\";\n }\n\n const goal = findGoal(first);\n if (goal) {\n await options.runGoal(goal.id, rest, options.output);\n return \"continue\";\n }\n\n const projectCommand = findProjectSlashCommand(first);\n if (projectCommand) {\n await runProjectSlashCommand(projectCommand.name, rest, options.output);\n return \"continue\";\n }\n\n writeLine(\n options.output,\n `Unknown slash command: ${rawFirst}\\nTry /help to see available commands.`,\n );\n return \"continue\";\n }\n\n const first = normalizeGoalToken(rawFirst);\n if (first === \"exec\" || first === \"e\") {\n await options.runGoal(\"task\", rest, options.output);\n return \"continue\";\n }\n\n if (first === \"--print\" || first === \"-p\") {\n await options.runGoal(\"task\", rest, options.output);\n return \"continue\";\n }\n\n if (first === \"--continue\" || first === \"-c\") {\n const parsedTask = parseFollowUpArgs(rest);\n if (parsedTask.prompt) {\n await recordCodeAgentFollowUpPrompt(\n parsedTask.prompt,\n options.output,\n parsedTask.permissionModeExplicit\n ? parsedTask.permissionMode\n : undefined,\n undefined,\n parsedTask.followUpMode,\n );\n } else {\n await runCodeAgentControl(\"resume\", [\"resume\", \"--last\"], options.output);\n }\n return \"continue\";\n }\n\n if (first === \"--resume\" || first === \"-r\") {\n await runCodeAgentControl(\"resume\", [\"resume\", ...rest], options.output);\n return \"continue\";\n }\n\n if ((first === \"run\" || first === \"start\") && rest[0]) {\n await executeExistingCodeAgentRun(rest[0], { stdout: options.output });\n return \"continue\";\n }\n\n if (isCodeAgentControlSubcommand(first)) {\n await runCodeAgentControl(first, parsed.args, options.output);\n return \"continue\";\n }\n\n await options.runGoal(\"task\", parsed.args, options.output);\n return \"continue\";\n}\n\nexport function codeUsage(): string {\n return `agent-native code\n\nOpen the Agent-Native Code shell or run a coding-agent goal directly.\n\nUsage:\n agent-native code\n agent-native code \"fix the failing auth tests\"\n agent-native code exec \"fix the failing auth tests\"\n agent-native code -p \"fix the failing auth tests\"\n agent-native code --plan \"explain this repo\"\n agent-native code --auto \"fix the failing auth tests\"\n agent-native code /review-diff\n agent-native code /audit --url https://example.com\n agent-native code /migrate <source> [--out ../migrated-app]\n agent-native code /migrate --describe \"what to build or migrate\"\n agent-native code attach --last\n agent-native code logs --last\n agent-native code approve --last\n agent-native code list\n agent-native code resume --last \"follow-up prompt\"\n agent-native code --continue \"follow-up prompt\"\n agent-native code resume --last\n agent-native code status --last\n agent-native code serve --relay-url <url>\n agent-native code ui --last\n agent-native code run <runId>\n agent-native code goals\n\nInteractive shell:\n /help Show shell commands\n /goals List available coding-agent goals\n /migrate ... Run the migration goal\n /audit ... Run the web audit goal\n /<project> Run .agents/commands/<project>.md\n /exit Leave the shell\n\nSession commands:\n list List recent sessions\n attach ... Attach to a run transcript, following active work\n logs ... Print a run transcript once\n approve ... Run one pending approved command, then resume the session\n resume ... Continue the latest or selected run\n status ... Show run status\n stop ... Stop a tracked Desktop/CLI runner\n serve ... Run the remote relay connector\n\nModes:\n --plan, --auto\n --permission-mode read-only|ask-before-edit|auto-edit|full-auto\n --read-only, --ask-before-edit, --auto-edit, --full-auto\n\nAvailable goals:\n${renderGoalRows()}\n${renderProjectCommandRows()}\n\nThe existing shortcut still works:\n agent-native migrate <source> [options]`;\n}\n\nexport function codeShellIntro(): string {\n return [\n `Agent-Native Code v${getCorePackageVersion()}`,\n `cwd: ${process.cwd()}`,\n `default: ${formatCodeAgentRunMode(DEFAULT_CODE_AGENT_PERMISSION_MODE)} (${DEFAULT_CODE_AGENT_PERMISSION_MODE})`,\n \"\",\n \"Type a coding task to start a session. Use /help, /goals, or /exit.\",\n ].join(\"\\n\");\n}\n\nexport function codeShellHelp(): string {\n return `Agent-Native Code shell commands:\n /help Show this help\n /goals List available coding-agent goals\n /migrate ... Move a source into agent-native\n /audit ... Audit a public URL for agent-readable surfaces\n /<project> Run a project command from .agents/commands/*.md\n /exit Leave the shell\n /quit Leave the shell\n\nCompatibility shortcuts:\n exec \"prompt\"\n -p \"prompt\"\n list\n ps\n attach --last\n logs --last\n approve --last\n resume --last \"follow-up prompt\"\n --continue \"follow-up prompt\"\n resume --last\n status --last\n ui --last\n stop --last\n\nShell context:\n cwd: ${process.cwd()}\n default mode: ${formatCodeAgentRunMode(DEFAULT_CODE_AGENT_PERMISSION_MODE)} (${DEFAULT_CODE_AGENT_PERMISSION_MODE})`;\n}\n\nexport function codeShellFreeTextMessage(): string {\n return `Bare prompts run as generic Agent-Native Code sessions.\nUse /migrate and /audit for specialized goals.`;\n}\n\nexport function parseCodeShellArgs(\n line: string,\n): { ok: true; args: string[] } | { ok: false; error: string } {\n const args: string[] = [];\n let current = \"\";\n let quote: \"'\" | '\"' | undefined;\n let escaping = false;\n let hasValue = false;\n\n const pushCurrent = () => {\n if (hasValue) {\n args.push(current);\n current = \"\";\n hasValue = false;\n }\n };\n\n for (const char of line) {\n if (escaping) {\n current += char;\n hasValue = true;\n escaping = false;\n continue;\n }\n\n if (char === \"\\\\\" && quote !== \"'\") {\n escaping = true;\n hasValue = true;\n continue;\n }\n\n if (quote) {\n if (char === quote) {\n quote = undefined;\n } else {\n current += char;\n hasValue = true;\n }\n continue;\n }\n\n if (char === \"'\" || char === '\"') {\n quote = char;\n hasValue = true;\n continue;\n }\n\n if (/\\s/.test(char)) {\n pushCurrent();\n continue;\n }\n\n current += char;\n hasValue = true;\n }\n\n if (escaping) {\n current += \"\\\\\";\n }\n\n if (quote) {\n return { ok: false, error: `Unclosed ${quote} quote.` };\n }\n\n pushCurrent();\n return { ok: true, args };\n}\n\nfunction renderGoalList(): string {\n return `Available Agent-Native Code goals:\n${renderGoalRows()}\n${renderProjectCommandRows()}`;\n}\n\nfunction renderGoalRows(): string {\n return CODE_AGENT_CLI_GOALS.map(\n (goal) => ` ${goal.slashCommand.padEnd(12)} ${goal.summary}`,\n ).join(\"\\n\");\n}\n\nfunction renderProjectCommandRows(): string {\n const commands = listVisibleProjectSlashCommands();\n if (commands.length === 0) return \"\";\n return [\n \"\",\n \"Project commands:\",\n ...commands.map((command) => {\n const args = command.argumentHint ? ` ${command.argumentHint}` : \"\";\n const description = command.description ?? \"Project slash command.\";\n return ` /${command.name}${args}`.padEnd(24) + description;\n }),\n ].join(\"\\n\");\n}\n\nfunction listVisibleProjectSlashCommands() {\n return listProjectSlashCommands().filter(\n (command) => !isReservedSlashName(command.name),\n );\n}\n\nfunction isReservedSlashName(name: string): boolean {\n const normalized = normalizeGoalToken(name);\n return (\n Boolean(findGoal(normalized)) ||\n isCodeAgentControlSubcommand(normalized) ||\n normalized === \"help\" ||\n normalized === \"exit\" ||\n normalized === \"quit\" ||\n normalized === \"goals\"\n );\n}\n\nfunction normalizeGoalToken(value: string): string {\n return value.replace(/^\\//, \"\").toLowerCase();\n}\n\nfunction findGoal(value: string): CodeAgentCliGoal | undefined {\n const normalized = normalizeGoalToken(value);\n return CODE_AGENT_CLI_GOALS.find(\n (goal) =>\n goal.id === normalized ||\n normalizeGoalToken(goal.slashCommand) === normalized ||\n goal.aliases.includes(normalized),\n );\n}\n\nfunction isCodeAgentControlSubcommand(\n value: string,\n): value is CodeAgentControlSubcommand {\n return CODE_AGENT_CONTROL_SUBCOMMANDS.has(\n value as CodeAgentControlSubcommand,\n );\n}\n\nfunction parseResumeFollowUpPrompt(args: string[]): {\n prompt: string;\n runId?: string;\n permissionMode?: CodeAgentPermissionMode;\n followUpMode?: CodeAgentFollowUpMode;\n} | null {\n const [rawFirst, ...rest] = args;\n if (normalizeGoalToken(rawFirst ?? \"\") !== \"resume\") return null;\n const selector = parseResumeSelectorAndPrompt(rest);\n if (!selector) return null;\n if (\n !selector.hasSeparator &&\n !selector.promptArgs.some((arg) => !arg.startsWith(\"-\"))\n ) {\n return null;\n }\n\n const parsed = parseFollowUpArgs(selector.promptArgs);\n return parsed.prompt\n ? {\n prompt: parsed.prompt,\n runId: selector.runId,\n ...(parsed.followUpMode === \"queued\"\n ? { followUpMode: parsed.followUpMode }\n : {}),\n permissionMode: parsed.permissionModeExplicit\n ? parsed.permissionMode\n : undefined,\n }\n : null;\n}\n\nfunction parseResumeSelectorAndPrompt(\n args: string[],\n): { runId?: string; promptArgs: string[]; hasSeparator: boolean } | null {\n const lastIndex = args.indexOf(\"--last\");\n if (lastIndex !== -1) {\n const promptArgs = args.filter((_, index) => index !== lastIndex);\n const separatorIndex = promptArgs.indexOf(\"--\");\n return {\n promptArgs:\n separatorIndex === -1\n ? promptArgs\n : promptArgs.slice(separatorIndex + 1),\n hasSeparator: separatorIndex !== -1,\n };\n }\n\n const [maybeRunId, ...rest] = args;\n if (\n !maybeRunId ||\n maybeRunId.startsWith(\"-\") ||\n !looksLikeRunId(maybeRunId)\n ) {\n return null;\n }\n const separatorIndex = rest.indexOf(\"--\");\n return {\n runId: maybeRunId,\n promptArgs: separatorIndex === -1 ? rest : rest.slice(separatorIndex + 1),\n hasSeparator: separatorIndex !== -1,\n };\n}\n\nfunction looksLikeRunId(value: string): boolean {\n return /^[a-z][a-z0-9-]*-(?:\\d{14}|\\d{8}t\\d{6}z)-[a-f0-9]{8}$/i.test(value);\n}\n\nfunction parseRelayUrlOption(args: string[]): string | undefined {\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (arg === \"--relay-url\" && args[i + 1]) return args[i + 1];\n if (arg.startsWith(\"--relay-url=\")) {\n const value = arg.slice(\"--relay-url=\".length).trim();\n if (value) return value;\n }\n }\n return undefined;\n}\n\nasync function runCodeAgentControl(\n subcommand: CodeAgentControlSubcommand,\n args: string[],\n output: NodeJS.WritableStream,\n allowPicker = true,\n): Promise<void> {\n const runs = listCodeAgentRunRecords();\n const effectiveArgs = await maybePickRunArgs(\n subcommand,\n runs,\n args,\n output,\n allowPicker,\n );\n if (!effectiveArgs) {\n writeLine(output, \"No Agent-Native Code session selected.\");\n return;\n }\n switch (subcommand) {\n case \"approve\":\n await approveCodeAgentRun(runs, effectiveArgs, output);\n return;\n case \"attach\":\n await attachCodeAgentRun(runs, effectiveArgs, output);\n return;\n case \"logs\":\n writeLine(output, renderCodeAgentLogs(runs, effectiveArgs));\n return;\n case \"list\":\n case \"ps\":\n writeLine(output, renderCodeAgentSessionList(runs));\n return;\n case \"status\":\n writeLine(output, renderCodeAgentStatus(runs, effectiveArgs));\n return;\n case \"resume\":\n writeLine(output, renderCodeAgentResume(runs, effectiveArgs));\n return;\n case \"ui\":\n writeLine(output, renderCodeAgentUi(runs, effectiveArgs));\n return;\n case \"stop\":\n writeLine(output, stopCodeAgentRun(runs, effectiveArgs));\n return;\n }\n}\n\nasync function maybePickRunArgs(\n subcommand: CodeAgentControlSubcommand,\n runs: CodeAgentRunRecord[],\n args: string[],\n output: NodeJS.WritableStream,\n allowPicker: boolean,\n): Promise<string[] | null> {\n if (\n !allowPicker ||\n ![\"approve\", \"attach\", \"logs\", \"resume\"].includes(subcommand) ||\n args.includes(\"--last\") ||\n hasExplicitRunId(args) ||\n runs.length === 0 ||\n !isInteractiveTerminal(process.stdin, output)\n ) {\n return args;\n }\n\n const selected = await promptForRunSelection(runs, output);\n return selected ? [subcommand, selected.id] : null;\n}\n\nasync function promptForRunSelection(\n runs: CodeAgentRunRecord[],\n output: NodeJS.WritableStream,\n): Promise<CodeAgentRunRecord | null> {\n const choices = runs.slice(0, 10);\n writeLine(output, \"\");\n writeLine(output, \"Select an Agent-Native Code session:\");\n choices.forEach((run, index) => {\n writeLine(output, ` ${index + 1}. ${run.id}`);\n writeLine(\n output,\n ` /${run.goalId} ${run.status}${run.phase ? ` (${run.phase})` : \"\"} updated ${run.updatedAt}`,\n );\n writeLine(output, ` ${truncateForDisplay(run.title, 90)}`);\n });\n writeLine(output, \"\");\n\n const rl = createInterface({\n input: process.stdin,\n output,\n terminal: true,\n });\n const answer = await new Promise<string>((resolve) => {\n rl.question(\"Run number or id (blank cancels): \", resolve);\n });\n rl.close();\n\n const trimmed = answer.trim();\n if (!trimmed) {\n writeLine(output, \"No run selected.\");\n return null;\n }\n const index = Number(trimmed);\n if (Number.isInteger(index) && index >= 1 && index <= choices.length) {\n return choices[index - 1] ?? null;\n }\n const matchingRun =\n choices.find((run) => run.id === trimmed) ??\n choices.find((run) => run.id.startsWith(trimmed));\n if (matchingRun) return matchingRun;\n\n writeLine(output, \"No matching run selected.\");\n return null;\n}\n\nfunction renderCodeAgentSessionList(runs: CodeAgentRunRecord[]): string {\n return [\n \"\",\n \"Agent-Native Code sessions\",\n \"\",\n runs.length === 0\n ? \" No Agent-Native Code sessions found.\"\n : ` ${runs.length} session${runs.length === 1 ? \"\" : \"s\"} found. Most recent first.`,\n ...runs.slice(0, 10).map(renderCodeAgentRunListItem),\n runs.length > 10 ? ` - ${runs.length - 10} more...` : \"\",\n \"\",\n runs.length > 0 ? \"Inspect a session:\" : \"\",\n runs.length > 0 ? \" agent-native code status <runId>\" : \"\",\n runs.length > 0 ? \" agent-native code logs <runId>\" : \"\",\n runs.length > 0 ? \" agent-native code resume <runId>\" : \"\",\n runs.length > 0\n ? ' agent-native code resume <runId> \"follow-up prompt\"'\n : 'Start one with: agent-native code \"what to change\"',\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction renderCodeAgentStatus(\n runs: CodeAgentRunRecord[],\n args: string[],\n): string {\n const selected = selectCodeAgentRun(runs, args, {\n defaultToLast: args.includes(\"--last\") || hasExplicitRunId(args),\n });\n if (selected) {\n return renderCodeAgentRunDetail(\"Agent-Native Code status\", selected);\n }\n\n return [\n \"\",\n \"Agent-Native Code status\",\n \"\",\n runs.length === 0\n ? \" No Agent-Native Code sessions found.\"\n : ` ${runs.length} session${runs.length === 1 ? \"\" : \"s\"} found.`,\n ...runs.slice(0, 10).map(renderCodeAgentRunListItem),\n runs.length > 10 ? ` - ${runs.length - 10} more...` : \"\",\n \"\",\n 'Start one with: agent-native code \"what to change\"',\n 'Add a follow-up with: agent-native code resume --last \"what next\"',\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction renderCodeAgentResume(\n runs: CodeAgentRunRecord[],\n args: string[],\n): string {\n const run = selectCodeAgentRun(runs, args, { defaultToLast: true });\n if (!run) {\n return [\n \"\",\n \"Agent-Native Code resume\",\n \"\",\n \" No Agent-Native Code sessions found.\",\n \"\",\n 'Start one with: agent-native code \"what to change\"',\n ].join(\"\\n\");\n }\n\n const transcriptEvents = listCodeAgentTranscriptEvents(run.id);\n const latestEvent = transcriptEvents.at(-1);\n const followUpTarget = args.includes(\"--last\") ? \"--last\" : run.id;\n return [\n \"\",\n \"Agent-Native Code resume\",\n \"\",\n ` Run: ${run.id}`,\n ` Goal: /${run.goalId}`,\n ` Title: ${run.title}`,\n ` Status: ${run.status}${run.phase ? ` (${run.phase})` : \"\"}`,\n run.permissionMode\n ? ` Mode: ${formatCodeAgentRunMode(run.permissionMode)}`\n : \"\",\n ` Updated: ${run.updatedAt}`,\n latestEvent\n ? ` Last: ${truncateForDisplay(latestEvent.message, 140)}`\n : \"\",\n \"\",\n \"Resume execution:\",\n ` agent-native code run ${run.id}`,\n \"\",\n \"Attach to the live transcript:\",\n ` agent-native code attach ${run.id}`,\n \"\",\n \"Append and run a follow-up:\",\n ` agent-native code resume ${followUpTarget} \"next instruction\"`,\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction renderCodeAgentUi(runs: CodeAgentRunRecord[], args: string[]): string {\n const run = selectCodeAgentRun(runs, args, { defaultToLast: true });\n return [\n \"\",\n \"Agent-Native Code UI\",\n \"\",\n \"Open Agent-Native Desktop and choose Agent-Native Code from the left sidebar.\",\n run ? `Run: ${run.id}` : \"No run selected yet.\",\n run ? `Deep link: agentnative://open?app=code-agents&run=${run.id}` : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction stopCodeAgentRun(runs: CodeAgentRunRecord[], args: string[]): string {\n const run = selectCodeAgentRun(runs, args, { defaultToLast: true });\n if (\n run &&\n (run.status === \"completed\" ||\n run.status === \"errored\" ||\n run.phase === \"complete\" ||\n run.phase === \"error\")\n ) {\n return [\n \"\",\n \"Agent-Native Code stop\",\n \"\",\n ` Run: ${run.id}`,\n ` Status: ${run.status}${run.phase ? ` (${run.phase})` : \"\"}`,\n \"\",\n \" This run is already finished; no stop signal was sent.\",\n ].join(\"\\n\");\n }\n if (run) {\n const pid = Number(run.metadata?.runnerPid);\n let killed = false;\n let killError = \"\";\n if (Number.isFinite(pid) && pid > 0) {\n try {\n process.kill(pid, \"SIGTERM\");\n killed = true;\n } catch (err) {\n killError = err instanceof Error ? err.message : String(err);\n }\n }\n appendCodeAgentTranscriptEvent({\n runId: run.id,\n kind: \"status\",\n message: killed\n ? \"Stop requested for Agent-Native Code runner.\"\n : \"Stop requested; no active runner process was found from the CLI.\",\n metadata: {\n source: \"cli-stop\",\n pid: Number.isFinite(pid) ? pid : undefined,\n killed,\n killError: killError || undefined,\n },\n });\n updateCodeAgentRunRecord(run.id, {\n status: \"paused\",\n phase: \"stopped\",\n progress: {\n label: \"Stopped\",\n completed: 0,\n total: 1,\n percent: 0,\n },\n metadata: {\n stoppedAt: new Date().toISOString(),\n stoppedBy: \"cli\",\n stopSignalSent: killed,\n stopError: killError || undefined,\n },\n });\n }\n return [\n \"\",\n \"Agent-Native Code stop\",\n \"\",\n run ? ` Run: ${run.id}` : \" No Agent-Native Code session selected.\",\n \"\",\n run\n ? \" Stop requested. If a tracked runner process is active, it received SIGTERM.\"\n : ' Start one with: agent-native code \"what to change\"',\n ].join(\"\\n\");\n}\n\nasync function approveCodeAgentRun(\n runs: CodeAgentRunRecord[],\n args: string[],\n output: NodeJS.WritableStream,\n): Promise<void> {\n const run = selectCodeAgentRun(runs, args, {\n defaultToLast: args.includes(\"--last\"),\n });\n if (!run) {\n writeLine(\n output,\n [\n \"\",\n \"Agent-Native Code approve\",\n \"\",\n \" No Agent-Native Code session selected.\",\n \"\",\n \"Try: agent-native code approve --last\",\n ].join(\"\\n\"),\n );\n return;\n }\n\n writeLine(\n output,\n [\n \"\",\n \"Agent-Native Code approve\",\n \"\",\n ` Run: ${run.id}`,\n \"\",\n \"Running the pending approved command.\",\n ].join(\"\\n\"),\n );\n await executePendingCodeAgentApproval(run.id, { stdout: output });\n writeLine(\n output,\n [\n \"\",\n \"Approval step finished.\",\n \"\",\n \"Resume the Agent-Native Code session:\",\n ` agent-native code run ${run.id}`,\n ].join(\"\\n\"),\n );\n}\n\nfunction renderCodeAgentLogs(\n runs: CodeAgentRunRecord[],\n args: string[],\n): string {\n const run = selectCodeAgentRun(runs, args, { defaultToLast: true });\n if (!run) {\n return [\n \"\",\n \"Agent-Native Code logs\",\n \"\",\n \" No Agent-Native Code session selected.\",\n \"\",\n \"Try: agent-native code logs --last\",\n ].join(\"\\n\");\n }\n const events = listCodeAgentTranscriptEvents(run.id);\n return [\n \"\",\n `Agent-Native Code logs: ${run.id}`,\n `/${run.goalId} ${run.status}${run.phase ? ` (${run.phase})` : \"\"}`,\n run.title,\n `Updated: ${run.updatedAt}`,\n `Events: ${events.length}`,\n \"\",\n events.length === 0\n ? \" No transcript events recorded yet.\"\n : events.map(renderTranscriptEventForCli).join(\"\\n\"),\n ].join(\"\\n\");\n}\n\nasync function attachCodeAgentRun(\n runs: CodeAgentRunRecord[],\n args: string[],\n output: NodeJS.WritableStream,\n): Promise<void> {\n const run = selectCodeAgentRun(runs, args, { defaultToLast: true });\n if (!run) {\n writeLine(\n output,\n [\n \"\",\n \"Agent-Native Code attach\",\n \"\",\n \" No Agent-Native Code session selected.\",\n \"\",\n \"Try: agent-native code attach --last\",\n ].join(\"\\n\"),\n );\n return;\n }\n\n const follow = !args.includes(\"--no-follow\");\n const printed = new Set<string>();\n writeLine(output, \"\");\n writeLine(output, `Attaching to Agent-Native Code run ${run.id}`);\n writeLine(\n output,\n \"Press Ctrl+C to detach. The session keeps its transcript.\",\n );\n writeLine(output, \"\");\n\n const printNewEvents = () => {\n const events = listCodeAgentTranscriptEvents(run.id);\n for (const event of events) {\n const key = `${event.id}:${event.createdAt}`;\n if (printed.has(key)) continue;\n printed.add(key);\n writeLine(output, renderTranscriptEventForCli(event));\n }\n };\n\n printNewEvents();\n if (!follow) return;\n\n while (true) {\n const latest = getCodeAgentRunRecord(run.id);\n if (!latest || isTerminalRun(latest)) {\n printNewEvents();\n if (latest) {\n writeLine(\n output,\n `\\nRun ${latest.status}${latest.phase ? ` (${latest.phase})` : \"\"}.`,\n );\n }\n return;\n }\n await delay(1_000);\n printNewEvents();\n }\n}\n\nfunction renderTranscriptEventForCli(event: CodeAgentTranscriptEvent): string {\n const timestamp = event.createdAt.replace(\"T\", \" \").replace(/\\.\\d+Z$/, \"Z\");\n const label =\n event.kind === \"user\"\n ? \"user\"\n : event.metadata?.role === \"assistant\"\n ? \"assistant\"\n : event.kind;\n const tool =\n typeof event.metadata?.tool === \"string\" ? ` ${event.metadata.tool}` : \"\";\n return `[${timestamp}] ${label}${tool}: ${event.message}`;\n}\n\nfunction isTerminalRun(run: CodeAgentRunRecord): boolean {\n return (\n run.status === \"completed\" ||\n run.status === \"errored\" ||\n run.status === \"paused\" ||\n run.phase === \"complete\" ||\n run.phase === \"error\" ||\n run.phase === \"paused\" ||\n run.phase === \"missing-credentials\" ||\n run.phase === \"stopped\"\n );\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction selectCodeAgentRun(\n runs: CodeAgentRunRecord[],\n args: string[],\n options: { defaultToLast: boolean },\n): CodeAgentRunRecord | null {\n const explicitRunId = getExplicitRunId(args);\n if (explicitRunId) {\n return runs.find((run) => run.id === explicitRunId) ?? null;\n }\n return options.defaultToLast ? (runs[0] ?? null) : null;\n}\n\nfunction hasExplicitRunId(args: string[]): boolean {\n return Boolean(getExplicitRunId(args));\n}\n\nfunction getExplicitRunId(args: string[]): string | null {\n const subcommand = args[0];\n for (const arg of args.slice(1)) {\n if (arg === \"--last\" || arg === \"--\") continue;\n if (arg.startsWith(\"-\")) continue;\n if (arg === subcommand) continue;\n return arg;\n }\n return null;\n}\n\nfunction renderCodeAgentRunDetail(\n heading: string,\n run: CodeAgentRunRecord,\n): string {\n const transcriptEvents = listCodeAgentTranscriptEvents(run.id);\n return [\n \"\",\n heading,\n \"\",\n ` Run: ${run.id}`,\n ` Goal: /${run.goalId}`,\n ` Title: ${run.title}`,\n run.subtitle ? ` Subtitle: ${run.subtitle}` : \"\",\n run.permissionMode\n ? ` Mode: ${formatCodeAgentRunMode(run.permissionMode)}`\n : \"\",\n run.cwd ? ` Cwd: ${run.cwd}` : \"\",\n ` Status: ${run.status}${run.phase ? ` (${run.phase})` : \"\"}`,\n run.progress\n ? ` Progress: ${run.progress.completed}/${run.progress.total} (${run.progress.percent}%)`\n : \"\",\n run.artifactRoot ? ` Artifacts: ${run.artifactRoot}` : \"\",\n ` Transcript: ${transcriptEvents.length} event${transcriptEvents.length === 1 ? \"\" : \"s\"}`,\n ` Updated: ${run.updatedAt}`,\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction renderCodeAgentRunListItem(run: CodeAgentRunRecord): string {\n const progress = run.progress\n ? `, ${run.progress.completed}/${run.progress.total}`\n : \"\";\n const permission = run.permissionMode\n ? `, ${formatCodeAgentRunMode(run.permissionMode)}`\n : \"\";\n return [\n ` - ${run.id}`,\n ` /${run.goalId} ${run.status}${run.phase ? ` (${run.phase})` : \"\"}${progress}${permission}`,\n ` ${truncateForDisplay(run.title, 100)}`,\n ` updated ${run.updatedAt}`,\n ].join(\"\\n\");\n}\n\nfunction isInteractiveTerminal(\n input: NodeJS.ReadableStream,\n output: NodeJS.WritableStream,\n): boolean {\n return Boolean(\n (input as NodeJS.ReadStream).isTTY && (output as NodeJS.WriteStream).isTTY,\n );\n}\n\nfunction writeLine(output: NodeJS.WritableStream, text = \"\"): void {\n output.write(`${text}\\n`);\n}\n\nfunction writePrompt(output: NodeJS.WritableStream): void {\n output.write(SHELL_PROMPT);\n}\n\nfunction getCorePackageVersion(): string {\n try {\n const cliDir = path.dirname(fileURLToPath(import.meta.url));\n const packagePath = path.resolve(cliDir, \"../../package.json\");\n const pkg = JSON.parse(fs.readFileSync(packagePath, \"utf-8\")) as {\n version?: unknown;\n };\n return typeof pkg.version === \"string\" ? pkg.version : \"unknown\";\n } catch {\n return \"unknown\";\n }\n}\n\nasync function runCodeGoal(\n goalId: CodeAgentGoalId,\n forwardedArgs: string[],\n output: NodeJS.WritableStream = process.stdout,\n): Promise<void> {\n const goal = CODE_AGENT_CLI_GOALS.find(\n (candidate) => candidate.id === goalId,\n );\n if (!goal) {\n throw new Error(`Unknown Agent-Native Code goal: ${goalId}`);\n }\n\n switch (goal.backingCommand) {\n case \"task\":\n await runTask(forwardedArgs, output);\n return;\n case \"audit-agent-web\":\n await runAuditAgentWeb(forwardedArgs);\n return;\n case \"migrate\":\n await runMigrate(forwardedArgs);\n return;\n }\n}\n\nasync function runTask(\n forwardedArgs: string[],\n output: NodeJS.WritableStream,\n options: RunTaskOptions = {},\n): Promise<void> {\n const parsed = parseTaskArgs(forwardedArgs, options.permissionMode);\n if (parsed.error) {\n writeLine(output, parsed.error);\n writeLine(output, taskUsage());\n return;\n }\n if (!parsed.prompt) {\n writeLine(output, taskUsage());\n return;\n }\n\n const prompt = parsed.prompt;\n const run = createCodeAgentRunRecord({\n goalId: \"task\",\n title: titleFromPrompt(prompt),\n subtitle: options.subtitle ?? \"Generic coding task\",\n status: \"running\",\n phase: \"starting\",\n permissionMode: parsed.permissionMode,\n progress: {\n label: \"Starting\",\n completed: 0,\n total: 1,\n percent: 5,\n },\n details: [\n { label: \"Prompt\", value: truncateForDisplay(prompt, 160) },\n { label: \"Agent\", value: \"Running locally\" },\n { label: \"Mode\", value: formatCodeAgentRunMode(parsed.permissionMode) },\n ],\n cwd: process.cwd(),\n metadata: {\n prompt,\n source: options.source ?? \"agent-native code\",\n commandName: options.commandName,\n commandPath: options.commandPath,\n permissionMode: parsed.permissionMode,\n },\n });\n\n appendCodeAgentTranscriptEvent({\n runId: run.id,\n kind: \"user\",\n message: prompt,\n metadata: { source: \"initial-prompt\" },\n });\n appendCodeAgentTranscriptEvent({\n runId: run.id,\n kind: \"status\",\n message: \"Starting local Agent-Native Code execution.\",\n metadata: {\n status: \"running\",\n phase: \"starting\",\n },\n });\n\n writeLine(output, renderTaskStarted(run, prompt));\n await executeCodeAgentRun({\n runId: run.id,\n prompt,\n appendUserEvent: false,\n stdout: output,\n });\n}\n\nasync function runProjectSlashCommand(\n commandName: string,\n forwardedArgs: string[],\n output: NodeJS.WritableStream,\n): Promise<void> {\n const command = findProjectSlashCommand(commandName);\n if (!command) {\n writeLine(\n output,\n `Project slash command not found: /${normalizeGoalToken(commandName)}`,\n );\n return;\n }\n const parsed = parseTaskArgs(forwardedArgs);\n if (parsed.error) {\n writeLine(output, parsed.error);\n return;\n }\n const prompt = renderProjectSlashCommandPrompt(command, parsed.promptArgs);\n await runTask([prompt], output, {\n subtitle: `Project command /${command.name}`,\n source: \"agent-native code project-command\",\n commandName: command.name,\n commandPath: command.path,\n permissionMode: parsed.permissionMode,\n });\n}\n\nasync function recordCodeAgentFollowUpPrompt(\n prompt: string,\n output: NodeJS.WritableStream,\n permissionMode?: CodeAgentPermissionMode,\n runId?: string,\n followUpMode: CodeAgentFollowUpMode = \"immediate\",\n): Promise<void> {\n const run = runId\n ? getCodeAgentRunRecord(runId)\n : getLastCodeAgentRunRecord();\n if (!run) {\n writeLine(\n output,\n [\n \"\",\n runId\n ? `Agent-Native Code run not found: ${runId}`\n : \"No Agent-Native Code runs found.\",\n \"\",\n 'Start one with: agent-native code \"what to change\"',\n ].join(\"\\n\"),\n );\n return;\n }\n\n const activeRun = permissionMode\n ? (updateCodeAgentRunRecord(run.id, { permissionMode }) ?? run)\n : run;\n const shouldQueue = isActiveCodeAgentRun(activeRun);\n const event = appendCodeAgentTranscriptEvent({\n runId: activeRun.id,\n kind: \"user\",\n message: prompt,\n metadata: {\n source: \"resume-follow-up\",\n permissionMode,\n followUpMode,\n delivery: shouldQueue ? followUpMode : \"run-now\",\n },\n });\n if (shouldQueue) {\n queueCodeAgentFollowUp({\n runId: activeRun.id,\n prompt,\n mode: followUpMode,\n eventId: event.id,\n permissionMode,\n source: \"resume-follow-up\",\n createdAt: event.createdAt,\n });\n writeLine(output, renderFollowUpRecorded(activeRun, event, followUpMode));\n return;\n }\n\n writeLine(output, renderFollowUpRecorded(activeRun, event, \"immediate\"));\n await executeCodeAgentRun({\n runId: activeRun.id,\n prompt,\n appendUserEvent: false,\n stdout: output,\n });\n}\n\nfunction parseTaskArgs(\n forwardedArgs: string[],\n defaultPermissionMode: CodeAgentPermissionMode = DEFAULT_CODE_AGENT_PERMISSION_MODE,\n): ParsedTaskArgs {\n const promptArgs: string[] = [];\n let permissionMode: CodeAgentPermissionMode = defaultPermissionMode;\n let permissionModeExplicit = false;\n for (let index = 0; index < forwardedArgs.length; index += 1) {\n const arg = forwardedArgs[index];\n if (arg === \"--\") {\n promptArgs.push(...forwardedArgs.slice(index + 1));\n break;\n }\n if (arg === \"--permission-mode\") {\n const value = forwardedArgs[index + 1];\n const normalized = normalizeCodeAgentPermissionMode(value);\n if (!normalized) {\n return {\n prompt: \"\",\n promptArgs,\n permissionMode,\n error: `Invalid run mode: ${value ?? \"(missing)\"}`,\n };\n }\n permissionMode = normalized;\n permissionModeExplicit = true;\n index += 1;\n continue;\n }\n if (arg.startsWith(\"--permission-mode=\")) {\n const normalized = normalizeCodeAgentPermissionMode(\n arg.slice(\"--permission-mode=\".length),\n );\n if (!normalized) {\n return {\n prompt: \"\",\n promptArgs,\n permissionMode,\n error: `Invalid run mode: ${arg.slice(\"--permission-mode=\".length)}`,\n };\n }\n permissionMode = normalized;\n permissionModeExplicit = true;\n continue;\n }\n const shorthand = parsePermissionModeFlag(arg);\n if (shorthand) {\n permissionMode = shorthand;\n permissionModeExplicit = true;\n continue;\n }\n promptArgs.push(arg);\n }\n return {\n prompt: promptArgs.join(\" \").trim(),\n promptArgs,\n permissionMode,\n permissionModeExplicit,\n };\n}\n\nfunction parseFollowUpArgs(forwardedArgs: string[]): ParsedTaskArgs & {\n followUpMode: CodeAgentFollowUpMode;\n} {\n const promptArgs: string[] = [];\n let followUpMode: CodeAgentFollowUpMode = \"immediate\";\n for (let index = 0; index < forwardedArgs.length; index += 1) {\n const arg = forwardedArgs[index];\n if (arg === \"--\") {\n promptArgs.push(...forwardedArgs.slice(index));\n break;\n }\n if (arg === \"--queue\" || arg === \"--after-completion\") {\n followUpMode = \"queued\";\n continue;\n }\n if (arg === \"--immediate\" || arg === \"--steer\") {\n followUpMode = \"immediate\";\n continue;\n }\n promptArgs.push(arg);\n }\n return {\n ...parseTaskArgs(promptArgs),\n followUpMode,\n };\n}\n\nfunction parsePermissionModeFlag(arg: string): CodeAgentPermissionMode | null {\n switch (arg) {\n case \"--plan\":\n case \"--read-only\":\n return \"read-only\";\n case \"--auto\":\n return \"full-auto\";\n case \"--ask-before-edit\":\n return \"ask-before-edit\";\n case \"--auto-edit\":\n return \"auto-edit\";\n case \"--full-auto\":\n return \"full-auto\";\n default:\n return null;\n }\n}\n\nfunction titleFromPrompt(prompt: string): string {\n return truncateForDisplay(prompt.replace(/\\s+/g, \" \"), 80);\n}\n\nfunction truncateForDisplay(value: string, maxLength: number): string {\n if (value.length <= maxLength) return value;\n return `${value.slice(0, Math.max(0, maxLength - 3))}...`;\n}\n\nfunction renderTaskStarted(run: CodeAgentRunRecord, prompt: string): string {\n return [\n \"\",\n \"Agent-Native Code session started.\",\n \"\",\n ` Run: ${run.id}`,\n ` Prompt: ${truncateForDisplay(prompt, 160)}`,\n ` Mode: ${formatCodeAgentRunMode(run.permissionMode)}`,\n \"\",\n \"Streaming output below. The transcript is saved with this run.\",\n ].join(\"\\n\");\n}\n\nfunction renderFollowUpRecorded(\n run: CodeAgentRunRecord,\n event: ReturnType<typeof appendCodeAgentTranscriptEvent>,\n mode: CodeAgentFollowUpMode,\n): string {\n const active = isActiveCodeAgentRun(run);\n const heading = active\n ? mode === \"queued\"\n ? \"Queued follow-up prompt for Agent-Native Code run.\"\n : \"Recorded steering prompt for active Agent-Native Code run.\"\n : \"Running follow-up prompt for Agent-Native Code run.\";\n return [\n \"\",\n heading,\n \"\",\n ` Run: ${run.id}`,\n ` Goal: /${run.goalId}`,\n ` Event: ${event.id}`,\n \"\",\n active\n ? mode === \"queued\"\n ? \"It will run after the current execution finishes.\"\n : \"It will be applied by the active runner as soon as it can steer.\"\n : \"Streaming output below. The transcript is saved with this run.\",\n ].join(\"\\n\");\n}\n\nfunction taskUsage(): string {\n return [\n \"\",\n \"Usage:\",\n ' agent-native code \"what to change\"',\n ' agent-native code --plan \"explain this repo\"',\n ' agent-native code --auto \"fix this and verify it\"',\n ` agent-native code --permission-mode ${CODE_AGENT_PERMISSION_MODES.join(\"|\")} \"what to change\"`,\n \"\",\n \"The task goal starts a local Agent-Native Code session, saves transcript events, and can be resumed with follow-up prompts.\",\n ].join(\"\\n\");\n}\n\nfunction formatCodeAgentRunMode(\n permissionMode: CodeAgentPermissionMode | undefined,\n): string {\n return permissionMode === \"read-only\" ? \"Plan mode\" : \"Auto mode\";\n}\n"]}
|
|
1
|
+
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/cli/code.ts"],"names":[],"mappings":"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","sourcesContent":["import { createInterface } from \"node:readline\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport {\n CODE_AGENT_PERMISSION_MODES,\n appendCodeAgentTranscriptEvent,\n createCodeAgentRunRecord,\n getCodeAgentRunRecord,\n getLastCodeAgentRunRecord,\n isActiveCodeAgentRun,\n listCodeAgentRunRecords,\n listCodeAgentTranscriptEvents,\n normalizeCodeAgentPermissionMode,\n queueCodeAgentFollowUp,\n updateCodeAgentRunRecord,\n type CodeAgentFollowUpMode,\n type CodeAgentPermissionMode,\n type CodeAgentRunRecord,\n type CodeAgentTranscriptEvent,\n} from \"./code-agent-runs.js\";\nimport {\n findProjectSlashCommand,\n listProjectSlashCommands,\n renderProjectSlashCommandPrompt,\n} from \"./code-agent-commands.js\";\nimport {\n executeApproveAlwaysCodeAgentApproval,\n executeCodeAgentRun,\n executeDenyCodeAgentApproval,\n executeExistingCodeAgentRun,\n executePendingCodeAgentApproval,\n} from \"./code-agent-executor.js\";\nimport { runAuditAgentWeb } from \"./audit-agent-web.js\";\nimport { runMigrate } from \"./migrate.js\";\n\nexport type CodeAgentGoalId = \"task\" | \"migrate\" | \"audit\";\n\nexport interface CodeAgentCliGoal {\n id: CodeAgentGoalId;\n slashCommand: string;\n aliases: string[];\n summary: string;\n backingCommand: \"task\" | \"migrate\" | \"audit-agent-web\";\n}\n\nexport type CodeCliCommand =\n | { kind: \"shell\" }\n | { kind: \"help\" }\n | { kind: \"list-goals\" }\n | { kind: \"serve\"; relayUrl?: string }\n | { kind: \"execute-existing-run\"; runId: string }\n | { kind: \"control\"; subcommand: CodeAgentControlSubcommand; args: string[] }\n | {\n kind: \"record-follow-up\";\n prompt: string;\n runId?: string;\n permissionMode?: CodeAgentPermissionMode;\n followUpMode?: CodeAgentFollowUpMode;\n }\n | {\n kind: \"run-project-command\";\n commandName: string;\n forwardedArgs: string[];\n }\n | {\n kind: \"run-goal\";\n goalId: CodeAgentGoalId;\n forwardedArgs: string[];\n };\n\nexport const CODE_AGENT_CLI_GOALS: CodeAgentCliGoal[] = [\n {\n id: \"task\",\n slashCommand: \"/task\",\n aliases: [\"task\", \"todo\"],\n summary:\n \"Run a generic coding task as a resumable Agent-Native Code session.\",\n backingCommand: \"task\",\n },\n {\n id: \"migrate\",\n slashCommand: \"/migrate\",\n aliases: [\"migrate\", \"migration\"],\n summary:\n \"Move a path, URL, or described product into agent-native with verification.\",\n backingCommand: \"migrate\",\n },\n {\n id: \"audit\",\n slashCommand: \"/audit\",\n aliases: [\"audit\", \"audit-agent-web\", \"agent-web\"],\n summary:\n \"Audit a public URL for agent-readable surfaces such as llms.txt and markdown mirrors.\",\n backingCommand: \"audit-agent-web\",\n },\n];\n\ntype CodeAgentControlSubcommand =\n | \"approve\"\n | \"approve-always\"\n | \"deny\"\n | \"attach\"\n | \"list\"\n | \"logs\"\n | \"ps\"\n | \"resume\"\n | \"status\"\n | \"stop\"\n | \"ui\";\n\nconst CODE_AGENT_CONTROL_SUBCOMMANDS = new Set<CodeAgentControlSubcommand>([\n \"approve\",\n \"approve-always\",\n \"deny\",\n \"attach\",\n \"list\",\n \"logs\",\n \"ps\",\n \"resume\",\n \"status\",\n \"stop\",\n \"ui\",\n] as CodeAgentControlSubcommand[]);\nconst SHELL_PROMPT = \"code> \";\nconst DEFAULT_CODE_AGENT_PERMISSION_MODE: CodeAgentPermissionMode = \"full-auto\";\n\nexport interface CodeShellOptions {\n input?: NodeJS.ReadableStream;\n output?: NodeJS.WritableStream;\n runGoal?: CodeGoalRunner;\n}\n\ntype CodeGoalRunner = (\n goalId: CodeAgentGoalId,\n forwardedArgs: string[],\n output?: NodeJS.WritableStream,\n) => Promise<void>;\n\ntype CodeShellLineResult = \"continue\" | \"exit\";\n\ninterface ParsedTaskArgs {\n prompt: string;\n promptArgs: string[];\n permissionMode: CodeAgentPermissionMode;\n permissionModeExplicit?: boolean;\n error?: string;\n}\n\ninterface RunTaskOptions {\n subtitle?: string;\n source?: string;\n commandName?: string;\n commandPath?: string;\n permissionMode?: CodeAgentPermissionMode;\n}\n\nexport function resolveCodeCommand(argv: string[]): CodeCliCommand {\n const [rawFirst, ...rest] = argv;\n if (!rawFirst) {\n return { kind: \"shell\" };\n }\n\n if (rawFirst === \"--help\" || rawFirst === \"-h\") {\n return { kind: \"help\" };\n }\n\n const first = normalizeGoalToken(rawFirst);\n if (first === \"goals\") {\n return { kind: \"list-goals\" };\n }\n\n if (first === \"serve\") {\n return { kind: \"serve\", relayUrl: parseRelayUrlOption(rest) };\n }\n\n if (first === \"exec\" || first === \"e\") {\n return {\n kind: \"run-goal\",\n goalId: \"task\",\n forwardedArgs: rest,\n };\n }\n\n if (first === \"--print\" || first === \"-p\") {\n return {\n kind: \"run-goal\",\n goalId: \"task\",\n forwardedArgs: rest,\n };\n }\n\n if (first === \"--continue\" || first === \"-c\") {\n const parsed = parseFollowUpArgs(rest);\n return parsed.prompt\n ? {\n kind: \"record-follow-up\",\n prompt: parsed.prompt,\n ...(parsed.followUpMode === \"queued\"\n ? { followUpMode: parsed.followUpMode }\n : {}),\n ...(parsed.permissionModeExplicit\n ? { permissionMode: parsed.permissionMode }\n : {}),\n }\n : {\n kind: \"control\",\n subcommand: \"resume\",\n args: [\"resume\", \"--last\"],\n };\n }\n\n if (first === \"--resume\" || first === \"-r\") {\n return {\n kind: \"control\",\n subcommand: \"resume\",\n args: [\"resume\", ...rest],\n };\n }\n\n if ((first === \"run\" || first === \"start\") && rest[0]) {\n return { kind: \"execute-existing-run\", runId: rest[0] };\n }\n\n const followUp = parseResumeFollowUpPrompt([rawFirst, ...rest]);\n if (followUp) {\n return {\n kind: \"record-follow-up\",\n prompt: followUp.prompt,\n runId: followUp.runId,\n ...(followUp.followUpMode ? { followUpMode: followUp.followUpMode } : {}),\n ...(followUp.permissionMode\n ? { permissionMode: followUp.permissionMode }\n : {}),\n };\n }\n\n const goal = findGoal(first);\n if (goal) {\n return {\n kind: \"run-goal\",\n goalId: goal.id,\n forwardedArgs: rest,\n };\n }\n\n if (rawFirst.startsWith(\"/\")) {\n const projectCommand = findProjectSlashCommand(first);\n if (projectCommand) {\n return {\n kind: \"run-project-command\",\n commandName: projectCommand.name,\n forwardedArgs: rest,\n };\n }\n }\n\n if (isCodeAgentControlSubcommand(first)) {\n return {\n kind: \"control\",\n subcommand: first,\n args: [first, ...rest],\n };\n }\n\n return {\n kind: \"run-goal\",\n goalId: \"task\",\n forwardedArgs: argv,\n };\n}\n\nexport async function runCode(\n argv: string[],\n options: CodeShellOptions = {},\n): Promise<void> {\n const command = resolveCodeCommand(argv);\n const output = options.output ?? process.stdout;\n const runGoal = options.runGoal ?? runCodeGoal;\n\n if (command.kind === \"shell\") {\n await runCodeShell({ ...options, output, runGoal });\n return;\n }\n\n if (command.kind === \"help\") {\n writeLine(output, codeUsage());\n return;\n }\n\n if (command.kind === \"list-goals\") {\n writeLine(output, renderGoalList());\n return;\n }\n\n if (command.kind === \"serve\") {\n const { runCodeAgentConnector } = await import(\"./code-agent-connector.js\");\n const exitCode = await runCodeAgentConnector({\n relayUrl: command.relayUrl,\n output,\n });\n if (exitCode !== 0) process.exitCode = exitCode;\n return;\n }\n\n if (command.kind === \"execute-existing-run\") {\n await executeExistingCodeAgentRun(command.runId, { stdout: output });\n return;\n }\n\n if (command.kind === \"control\") {\n await runCodeAgentControl(command.subcommand, command.args, output);\n return;\n }\n\n if (command.kind === \"record-follow-up\") {\n await recordCodeAgentFollowUpPrompt(\n command.prompt,\n output,\n command.permissionMode,\n command.runId,\n command.followUpMode,\n );\n return;\n }\n\n if (command.kind === \"run-project-command\") {\n await runProjectSlashCommand(\n command.commandName,\n command.forwardedArgs,\n output,\n );\n return;\n }\n\n await runGoal(command.goalId, command.forwardedArgs, output);\n}\n\nexport async function runCodeShell(\n options: CodeShellOptions = {},\n): Promise<void> {\n const input = options.input ?? process.stdin;\n const output = options.output ?? process.stdout;\n const runGoal = options.runGoal ?? runCodeGoal;\n const rl = createInterface({\n input,\n output,\n terminal: isInteractiveTerminal(input, output),\n });\n\n writeLine(output, codeShellIntro());\n writePrompt(output);\n\n try {\n for await (const line of rl) {\n const result = await handleCodeShellLine(line, { output, runGoal });\n if (result === \"exit\") {\n break;\n }\n writePrompt(output);\n }\n } finally {\n rl.close();\n }\n}\n\nexport async function handleCodeShellLine(\n line: string,\n options: Required<Pick<CodeShellOptions, \"output\" | \"runGoal\">>,\n): Promise<CodeShellLineResult> {\n const trimmed = line.trim();\n if (!trimmed) {\n return \"continue\";\n }\n\n const parsed = parseCodeShellArgs(trimmed);\n if (\"error\" in parsed) {\n writeLine(options.output, parsed.error);\n return \"continue\";\n }\n\n const [rawFirst, ...rest] = parsed.args;\n if (!rawFirst) {\n return \"continue\";\n }\n\n const followUp = parseResumeFollowUpPrompt(parsed.args);\n if (followUp) {\n await recordCodeAgentFollowUpPrompt(\n followUp.prompt,\n options.output,\n followUp.permissionMode,\n followUp.runId,\n followUp.followUpMode,\n );\n return \"continue\";\n }\n\n if (rawFirst.startsWith(\"/\")) {\n const first = normalizeGoalToken(rawFirst);\n if (first === \"help\") {\n writeLine(options.output, codeShellHelp());\n return \"continue\";\n }\n\n if (first === \"goals\") {\n writeLine(options.output, renderGoalList());\n return \"continue\";\n }\n\n if (first === \"exit\" || first === \"quit\") {\n writeLine(options.output, \"Leaving Agent-Native Code.\");\n return \"exit\";\n }\n\n const goal = findGoal(first);\n if (goal) {\n await options.runGoal(goal.id, rest, options.output);\n return \"continue\";\n }\n\n const projectCommand = findProjectSlashCommand(first);\n if (projectCommand) {\n await runProjectSlashCommand(projectCommand.name, rest, options.output);\n return \"continue\";\n }\n\n writeLine(\n options.output,\n `Unknown slash command: ${rawFirst}\\nTry /help to see available commands.`,\n );\n return \"continue\";\n }\n\n const first = normalizeGoalToken(rawFirst);\n if (first === \"exec\" || first === \"e\") {\n await options.runGoal(\"task\", rest, options.output);\n return \"continue\";\n }\n\n if (first === \"--print\" || first === \"-p\") {\n await options.runGoal(\"task\", rest, options.output);\n return \"continue\";\n }\n\n if (first === \"--continue\" || first === \"-c\") {\n const parsedTask = parseFollowUpArgs(rest);\n if (parsedTask.prompt) {\n await recordCodeAgentFollowUpPrompt(\n parsedTask.prompt,\n options.output,\n parsedTask.permissionModeExplicit\n ? parsedTask.permissionMode\n : undefined,\n undefined,\n parsedTask.followUpMode,\n );\n } else {\n await runCodeAgentControl(\"resume\", [\"resume\", \"--last\"], options.output);\n }\n return \"continue\";\n }\n\n if (first === \"--resume\" || first === \"-r\") {\n await runCodeAgentControl(\"resume\", [\"resume\", ...rest], options.output);\n return \"continue\";\n }\n\n if ((first === \"run\" || first === \"start\") && rest[0]) {\n await executeExistingCodeAgentRun(rest[0], { stdout: options.output });\n return \"continue\";\n }\n\n if (isCodeAgentControlSubcommand(first)) {\n await runCodeAgentControl(first, parsed.args, options.output);\n return \"continue\";\n }\n\n await options.runGoal(\"task\", parsed.args, options.output);\n return \"continue\";\n}\n\nexport function codeUsage(): string {\n return `agent-native code\n\nOpen the Agent-Native Code shell or run a coding-agent goal directly.\n\nUsage:\n agent-native code\n agent-native code \"fix the failing auth tests\"\n agent-native code exec \"fix the failing auth tests\"\n agent-native code -p \"fix the failing auth tests\"\n agent-native code --plan \"explain this repo\"\n agent-native code --auto \"fix the failing auth tests\"\n agent-native code /review-diff\n agent-native code /audit --url https://example.com\n agent-native code /migrate <source> [--out ../migrated-app]\n agent-native code /migrate --describe \"what to build or migrate\"\n agent-native code attach --last\n agent-native code logs --last\n agent-native code approve --last\n agent-native code list\n agent-native code resume --last \"follow-up prompt\"\n agent-native code --continue \"follow-up prompt\"\n agent-native code resume --last\n agent-native code status --last\n agent-native code serve --relay-url <url>\n agent-native code ui --last\n agent-native code run <runId>\n agent-native code goals\n\nInteractive shell:\n /help Show shell commands\n /goals List available coding-agent goals\n /migrate ... Run the migration goal\n /audit ... Run the web audit goal\n /<project> Run .agents/commands/<project>.md\n /exit Leave the shell\n\nSession commands:\n list List recent sessions\n attach ... Attach to a run transcript, following active work\n logs ... Print a run transcript once\n approve ... Run one pending approved command, then resume the session\n resume ... Continue the latest or selected run\n status ... Show run status\n stop ... Stop a tracked Desktop/CLI runner\n serve ... Run the remote relay connector\n\nModes:\n --plan, --auto\n --permission-mode read-only|ask-before-edit|auto-edit|full-auto\n --read-only, --ask-before-edit, --auto-edit, --full-auto\n\nAvailable goals:\n${renderGoalRows()}\n${renderProjectCommandRows()}\n\nThe existing shortcut still works:\n agent-native migrate <source> [options]`;\n}\n\nexport function codeShellIntro(): string {\n return [\n `Agent-Native Code v${getCorePackageVersion()}`,\n `cwd: ${process.cwd()}`,\n `default: ${formatCodeAgentRunMode(DEFAULT_CODE_AGENT_PERMISSION_MODE)} (${DEFAULT_CODE_AGENT_PERMISSION_MODE})`,\n \"\",\n \"Type a coding task to start a session. Use /help, /goals, or /exit.\",\n ].join(\"\\n\");\n}\n\nexport function codeShellHelp(): string {\n return `Agent-Native Code shell commands:\n /help Show this help\n /goals List available coding-agent goals\n /migrate ... Move a source into agent-native\n /audit ... Audit a public URL for agent-readable surfaces\n /<project> Run a project command from .agents/commands/*.md\n /exit Leave the shell\n /quit Leave the shell\n\nCompatibility shortcuts:\n exec \"prompt\"\n -p \"prompt\"\n list\n ps\n attach --last\n logs --last\n approve --last\n resume --last \"follow-up prompt\"\n --continue \"follow-up prompt\"\n resume --last\n status --last\n ui --last\n stop --last\n\nShell context:\n cwd: ${process.cwd()}\n default mode: ${formatCodeAgentRunMode(DEFAULT_CODE_AGENT_PERMISSION_MODE)} (${DEFAULT_CODE_AGENT_PERMISSION_MODE})`;\n}\n\nexport function codeShellFreeTextMessage(): string {\n return `Bare prompts run as generic Agent-Native Code sessions.\nUse /migrate and /audit for specialized goals.`;\n}\n\nexport function parseCodeShellArgs(\n line: string,\n): { ok: true; args: string[] } | { ok: false; error: string } {\n const args: string[] = [];\n let current = \"\";\n let quote: \"'\" | '\"' | undefined;\n let escaping = false;\n let hasValue = false;\n\n const pushCurrent = () => {\n if (hasValue) {\n args.push(current);\n current = \"\";\n hasValue = false;\n }\n };\n\n for (const char of line) {\n if (escaping) {\n current += char;\n hasValue = true;\n escaping = false;\n continue;\n }\n\n if (char === \"\\\\\" && quote !== \"'\") {\n escaping = true;\n hasValue = true;\n continue;\n }\n\n if (quote) {\n if (char === quote) {\n quote = undefined;\n } else {\n current += char;\n hasValue = true;\n }\n continue;\n }\n\n if (char === \"'\" || char === '\"') {\n quote = char;\n hasValue = true;\n continue;\n }\n\n if (/\\s/.test(char)) {\n pushCurrent();\n continue;\n }\n\n current += char;\n hasValue = true;\n }\n\n if (escaping) {\n current += \"\\\\\";\n }\n\n if (quote) {\n return { ok: false, error: `Unclosed ${quote} quote.` };\n }\n\n pushCurrent();\n return { ok: true, args };\n}\n\nfunction renderGoalList(): string {\n return `Available Agent-Native Code goals:\n${renderGoalRows()}\n${renderProjectCommandRows()}`;\n}\n\nfunction renderGoalRows(): string {\n return CODE_AGENT_CLI_GOALS.map(\n (goal) => ` ${goal.slashCommand.padEnd(12)} ${goal.summary}`,\n ).join(\"\\n\");\n}\n\nfunction renderProjectCommandRows(): string {\n const commands = listVisibleProjectSlashCommands();\n if (commands.length === 0) return \"\";\n return [\n \"\",\n \"Project commands:\",\n ...commands.map((command) => {\n const args = command.argumentHint ? ` ${command.argumentHint}` : \"\";\n const description = command.description ?? \"Project slash command.\";\n return ` /${command.name}${args}`.padEnd(24) + description;\n }),\n ].join(\"\\n\");\n}\n\nfunction listVisibleProjectSlashCommands() {\n return listProjectSlashCommands().filter(\n (command) => !isReservedSlashName(command.name),\n );\n}\n\nfunction isReservedSlashName(name: string): boolean {\n const normalized = normalizeGoalToken(name);\n return (\n Boolean(findGoal(normalized)) ||\n isCodeAgentControlSubcommand(normalized) ||\n normalized === \"help\" ||\n normalized === \"exit\" ||\n normalized === \"quit\" ||\n normalized === \"goals\"\n );\n}\n\nfunction normalizeGoalToken(value: string): string {\n return value.replace(/^\\//, \"\").toLowerCase();\n}\n\nfunction findGoal(value: string): CodeAgentCliGoal | undefined {\n const normalized = normalizeGoalToken(value);\n return CODE_AGENT_CLI_GOALS.find(\n (goal) =>\n goal.id === normalized ||\n normalizeGoalToken(goal.slashCommand) === normalized ||\n goal.aliases.includes(normalized),\n );\n}\n\nfunction isCodeAgentControlSubcommand(\n value: string,\n): value is CodeAgentControlSubcommand {\n return CODE_AGENT_CONTROL_SUBCOMMANDS.has(\n value as CodeAgentControlSubcommand,\n );\n}\n\nfunction parseResumeFollowUpPrompt(args: string[]): {\n prompt: string;\n runId?: string;\n permissionMode?: CodeAgentPermissionMode;\n followUpMode?: CodeAgentFollowUpMode;\n} | null {\n const [rawFirst, ...rest] = args;\n if (normalizeGoalToken(rawFirst ?? \"\") !== \"resume\") return null;\n const selector = parseResumeSelectorAndPrompt(rest);\n if (!selector) return null;\n if (\n !selector.hasSeparator &&\n !selector.promptArgs.some((arg) => !arg.startsWith(\"-\"))\n ) {\n return null;\n }\n\n const parsed = parseFollowUpArgs(selector.promptArgs);\n return parsed.prompt\n ? {\n prompt: parsed.prompt,\n runId: selector.runId,\n ...(parsed.followUpMode === \"queued\"\n ? { followUpMode: parsed.followUpMode }\n : {}),\n permissionMode: parsed.permissionModeExplicit\n ? parsed.permissionMode\n : undefined,\n }\n : null;\n}\n\nfunction parseResumeSelectorAndPrompt(\n args: string[],\n): { runId?: string; promptArgs: string[]; hasSeparator: boolean } | null {\n const lastIndex = args.indexOf(\"--last\");\n if (lastIndex !== -1) {\n const promptArgs = args.filter((_, index) => index !== lastIndex);\n const separatorIndex = promptArgs.indexOf(\"--\");\n return {\n promptArgs:\n separatorIndex === -1\n ? promptArgs\n : promptArgs.slice(separatorIndex + 1),\n hasSeparator: separatorIndex !== -1,\n };\n }\n\n const [maybeRunId, ...rest] = args;\n if (\n !maybeRunId ||\n maybeRunId.startsWith(\"-\") ||\n !looksLikeRunId(maybeRunId)\n ) {\n return null;\n }\n const separatorIndex = rest.indexOf(\"--\");\n return {\n runId: maybeRunId,\n promptArgs: separatorIndex === -1 ? rest : rest.slice(separatorIndex + 1),\n hasSeparator: separatorIndex !== -1,\n };\n}\n\nfunction looksLikeRunId(value: string): boolean {\n return /^[a-z][a-z0-9-]*-(?:\\d{14}|\\d{8}t\\d{6}z)-[a-f0-9]{8}$/i.test(value);\n}\n\nfunction parseRelayUrlOption(args: string[]): string | undefined {\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (arg === \"--relay-url\" && args[i + 1]) return args[i + 1];\n if (arg.startsWith(\"--relay-url=\")) {\n const value = arg.slice(\"--relay-url=\".length).trim();\n if (value) return value;\n }\n }\n return undefined;\n}\n\nasync function runCodeAgentControl(\n subcommand: CodeAgentControlSubcommand,\n args: string[],\n output: NodeJS.WritableStream,\n allowPicker = true,\n): Promise<void> {\n const runs = listCodeAgentRunRecords();\n const effectiveArgs = await maybePickRunArgs(\n subcommand,\n runs,\n args,\n output,\n allowPicker,\n );\n if (!effectiveArgs) {\n writeLine(output, \"No Agent-Native Code session selected.\");\n return;\n }\n switch (subcommand) {\n case \"approve\":\n await approveCodeAgentRun(runs, effectiveArgs, output);\n return;\n case \"approve-always\":\n await approveAlwaysCodeAgentRun(runs, effectiveArgs, output);\n return;\n case \"deny\":\n await denyCodeAgentRun(runs, effectiveArgs, output);\n return;\n case \"attach\":\n await attachCodeAgentRun(runs, effectiveArgs, output);\n return;\n case \"logs\":\n writeLine(output, renderCodeAgentLogs(runs, effectiveArgs));\n return;\n case \"list\":\n case \"ps\":\n writeLine(output, renderCodeAgentSessionList(runs));\n return;\n case \"status\":\n writeLine(output, renderCodeAgentStatus(runs, effectiveArgs));\n return;\n case \"resume\":\n writeLine(output, renderCodeAgentResume(runs, effectiveArgs));\n return;\n case \"ui\":\n writeLine(output, renderCodeAgentUi(runs, effectiveArgs));\n return;\n case \"stop\":\n writeLine(output, stopCodeAgentRun(runs, effectiveArgs));\n return;\n }\n}\n\nasync function maybePickRunArgs(\n subcommand: CodeAgentControlSubcommand,\n runs: CodeAgentRunRecord[],\n args: string[],\n output: NodeJS.WritableStream,\n allowPicker: boolean,\n): Promise<string[] | null> {\n if (\n !allowPicker ||\n ![\"approve\", \"approve-always\", \"deny\", \"attach\", \"logs\", \"resume\"].includes(\n subcommand,\n ) ||\n args.includes(\"--last\") ||\n hasExplicitRunId(args) ||\n runs.length === 0 ||\n !isInteractiveTerminal(process.stdin, output)\n ) {\n return args;\n }\n\n const selected = await promptForRunSelection(runs, output);\n return selected ? [subcommand, selected.id] : null;\n}\n\nasync function promptForRunSelection(\n runs: CodeAgentRunRecord[],\n output: NodeJS.WritableStream,\n): Promise<CodeAgentRunRecord | null> {\n const choices = runs.slice(0, 10);\n writeLine(output, \"\");\n writeLine(output, \"Select an Agent-Native Code session:\");\n choices.forEach((run, index) => {\n writeLine(output, ` ${index + 1}. ${run.id}`);\n writeLine(\n output,\n ` /${run.goalId} ${run.status}${run.phase ? ` (${run.phase})` : \"\"} updated ${run.updatedAt}`,\n );\n writeLine(output, ` ${truncateForDisplay(run.title, 90)}`);\n });\n writeLine(output, \"\");\n\n const rl = createInterface({\n input: process.stdin,\n output,\n terminal: true,\n });\n const answer = await new Promise<string>((resolve) => {\n rl.question(\"Run number or id (blank cancels): \", resolve);\n });\n rl.close();\n\n const trimmed = answer.trim();\n if (!trimmed) {\n writeLine(output, \"No run selected.\");\n return null;\n }\n const index = Number(trimmed);\n if (Number.isInteger(index) && index >= 1 && index <= choices.length) {\n return choices[index - 1] ?? null;\n }\n const matchingRun =\n choices.find((run) => run.id === trimmed) ??\n choices.find((run) => run.id.startsWith(trimmed));\n if (matchingRun) return matchingRun;\n\n writeLine(output, \"No matching run selected.\");\n return null;\n}\n\nfunction renderCodeAgentSessionList(runs: CodeAgentRunRecord[]): string {\n return [\n \"\",\n \"Agent-Native Code sessions\",\n \"\",\n runs.length === 0\n ? \" No Agent-Native Code sessions found.\"\n : ` ${runs.length} session${runs.length === 1 ? \"\" : \"s\"} found. Most recent first.`,\n ...runs.slice(0, 10).map(renderCodeAgentRunListItem),\n runs.length > 10 ? ` - ${runs.length - 10} more...` : \"\",\n \"\",\n runs.length > 0 ? \"Inspect a session:\" : \"\",\n runs.length > 0 ? \" agent-native code status <runId>\" : \"\",\n runs.length > 0 ? \" agent-native code logs <runId>\" : \"\",\n runs.length > 0 ? \" agent-native code resume <runId>\" : \"\",\n runs.length > 0\n ? ' agent-native code resume <runId> \"follow-up prompt\"'\n : 'Start one with: agent-native code \"what to change\"',\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction renderCodeAgentStatus(\n runs: CodeAgentRunRecord[],\n args: string[],\n): string {\n const selected = selectCodeAgentRun(runs, args, {\n defaultToLast: args.includes(\"--last\") || hasExplicitRunId(args),\n });\n if (selected) {\n return renderCodeAgentRunDetail(\"Agent-Native Code status\", selected);\n }\n\n return [\n \"\",\n \"Agent-Native Code status\",\n \"\",\n runs.length === 0\n ? \" No Agent-Native Code sessions found.\"\n : ` ${runs.length} session${runs.length === 1 ? \"\" : \"s\"} found.`,\n ...runs.slice(0, 10).map(renderCodeAgentRunListItem),\n runs.length > 10 ? ` - ${runs.length - 10} more...` : \"\",\n \"\",\n 'Start one with: agent-native code \"what to change\"',\n 'Add a follow-up with: agent-native code resume --last \"what next\"',\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction renderCodeAgentResume(\n runs: CodeAgentRunRecord[],\n args: string[],\n): string {\n const run = selectCodeAgentRun(runs, args, { defaultToLast: true });\n if (!run) {\n return [\n \"\",\n \"Agent-Native Code resume\",\n \"\",\n \" No Agent-Native Code sessions found.\",\n \"\",\n 'Start one with: agent-native code \"what to change\"',\n ].join(\"\\n\");\n }\n\n const transcriptEvents = listCodeAgentTranscriptEvents(run.id);\n const latestEvent = transcriptEvents.at(-1);\n const followUpTarget = args.includes(\"--last\") ? \"--last\" : run.id;\n return [\n \"\",\n \"Agent-Native Code resume\",\n \"\",\n ` Run: ${run.id}`,\n ` Goal: /${run.goalId}`,\n ` Title: ${run.title}`,\n ` Status: ${run.status}${run.phase ? ` (${run.phase})` : \"\"}`,\n run.permissionMode\n ? ` Mode: ${formatCodeAgentRunMode(run.permissionMode)}`\n : \"\",\n ` Updated: ${run.updatedAt}`,\n latestEvent\n ? ` Last: ${truncateForDisplay(latestEvent.message, 140)}`\n : \"\",\n \"\",\n \"Resume execution:\",\n ` agent-native code run ${run.id}`,\n \"\",\n \"Attach to the live transcript:\",\n ` agent-native code attach ${run.id}`,\n \"\",\n \"Append and run a follow-up:\",\n ` agent-native code resume ${followUpTarget} \"next instruction\"`,\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction renderCodeAgentUi(runs: CodeAgentRunRecord[], args: string[]): string {\n const run = selectCodeAgentRun(runs, args, { defaultToLast: true });\n return [\n \"\",\n \"Agent-Native Code UI\",\n \"\",\n \"Open Agent-Native Desktop and choose Agent-Native Code from the left sidebar.\",\n run ? `Run: ${run.id}` : \"No run selected yet.\",\n run ? `Deep link: agentnative://open?app=code-agents&run=${run.id}` : \"\",\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction stopCodeAgentRun(runs: CodeAgentRunRecord[], args: string[]): string {\n const run = selectCodeAgentRun(runs, args, { defaultToLast: true });\n if (\n run &&\n (run.status === \"completed\" ||\n run.status === \"errored\" ||\n run.phase === \"complete\" ||\n run.phase === \"error\")\n ) {\n return [\n \"\",\n \"Agent-Native Code stop\",\n \"\",\n ` Run: ${run.id}`,\n ` Status: ${run.status}${run.phase ? ` (${run.phase})` : \"\"}`,\n \"\",\n \" This run is already finished; no stop signal was sent.\",\n ].join(\"\\n\");\n }\n if (run) {\n const pid = Number(run.metadata?.runnerPid);\n let killed = false;\n let killError = \"\";\n if (Number.isFinite(pid) && pid > 0) {\n try {\n process.kill(pid, \"SIGTERM\");\n killed = true;\n } catch (err) {\n killError = err instanceof Error ? err.message : String(err);\n }\n }\n appendCodeAgentTranscriptEvent({\n runId: run.id,\n kind: \"status\",\n message: killed\n ? \"Stop requested for Agent-Native Code runner.\"\n : \"Stop requested; no active runner process was found from the CLI.\",\n metadata: {\n source: \"cli-stop\",\n pid: Number.isFinite(pid) ? pid : undefined,\n killed,\n killError: killError || undefined,\n },\n });\n updateCodeAgentRunRecord(run.id, {\n status: \"paused\",\n phase: \"stopped\",\n progress: {\n label: \"Stopped\",\n completed: 0,\n total: 1,\n percent: 0,\n },\n metadata: {\n stoppedAt: new Date().toISOString(),\n stoppedBy: \"cli\",\n stopSignalSent: killed,\n stopError: killError || undefined,\n },\n });\n }\n return [\n \"\",\n \"Agent-Native Code stop\",\n \"\",\n run ? ` Run: ${run.id}` : \" No Agent-Native Code session selected.\",\n \"\",\n run\n ? \" Stop requested. If a tracked runner process is active, it received SIGTERM.\"\n : ' Start one with: agent-native code \"what to change\"',\n ].join(\"\\n\");\n}\n\nasync function approveCodeAgentRun(\n runs: CodeAgentRunRecord[],\n args: string[],\n output: NodeJS.WritableStream,\n): Promise<void> {\n const run = selectCodeAgentRun(runs, args, {\n defaultToLast: args.includes(\"--last\"),\n });\n if (!run) {\n writeLine(\n output,\n [\n \"\",\n \"Agent-Native Code approve\",\n \"\",\n \" No Agent-Native Code session selected.\",\n \"\",\n \"Try: agent-native code approve --last\",\n ].join(\"\\n\"),\n );\n return;\n }\n\n writeLine(\n output,\n [\n \"\",\n \"Agent-Native Code approve\",\n \"\",\n ` Run: ${run.id}`,\n \"\",\n \"Running the pending approved command.\",\n ].join(\"\\n\"),\n );\n await executePendingCodeAgentApproval(run.id, { stdout: output });\n writeLine(output, [\"\", \"Approval step finished — run resumed.\"].join(\"\\n\"));\n}\n\nasync function approveAlwaysCodeAgentRun(\n runs: CodeAgentRunRecord[],\n args: string[],\n output: NodeJS.WritableStream,\n): Promise<void> {\n const run = selectCodeAgentRun(runs, args, {\n defaultToLast: args.includes(\"--last\"),\n });\n if (!run) {\n writeLine(\n output,\n [\n \"\",\n \"Agent-Native Code approve-always\",\n \"\",\n \" No Agent-Native Code session selected.\",\n \"\",\n \"Try: agent-native code approve-always --last\",\n ].join(\"\\n\"),\n );\n return;\n }\n\n writeLine(\n output,\n [\n \"\",\n \"Agent-Native Code approve-always\",\n \"\",\n ` Run: ${run.id}`,\n \"\",\n \"Adding command to allowlist and running.\",\n ].join(\"\\n\"),\n );\n await executeApproveAlwaysCodeAgentApproval(run.id, { stdout: output });\n writeLine(output, [\"\", \"Allowlist updated and run resumed.\"].join(\"\\n\"));\n}\n\nasync function denyCodeAgentRun(\n runs: CodeAgentRunRecord[],\n args: string[],\n output: NodeJS.WritableStream,\n): Promise<void> {\n const run = selectCodeAgentRun(runs, args, {\n defaultToLast: args.includes(\"--last\"),\n });\n if (!run) {\n writeLine(\n output,\n [\n \"\",\n \"Agent-Native Code deny\",\n \"\",\n \" No Agent-Native Code session selected.\",\n \"\",\n \"Try: agent-native code deny --last\",\n ].join(\"\\n\"),\n );\n return;\n }\n\n writeLine(\n output,\n [\n \"\",\n \"Agent-Native Code deny\",\n \"\",\n ` Run: ${run.id}`,\n \"\",\n \"Denying approval and resuming run so model can adapt.\",\n ].join(\"\\n\"),\n );\n await executeDenyCodeAgentApproval(run.id, { stdout: output });\n writeLine(output, [\"\", \"Denial recorded — run resumed.\"].join(\"\\n\"));\n}\n\nfunction renderCodeAgentLogs(\n runs: CodeAgentRunRecord[],\n args: string[],\n): string {\n const run = selectCodeAgentRun(runs, args, { defaultToLast: true });\n if (!run) {\n return [\n \"\",\n \"Agent-Native Code logs\",\n \"\",\n \" No Agent-Native Code session selected.\",\n \"\",\n \"Try: agent-native code logs --last\",\n ].join(\"\\n\");\n }\n const events = listCodeAgentTranscriptEvents(run.id);\n return [\n \"\",\n `Agent-Native Code logs: ${run.id}`,\n `/${run.goalId} ${run.status}${run.phase ? ` (${run.phase})` : \"\"}`,\n run.title,\n `Updated: ${run.updatedAt}`,\n `Events: ${events.length}`,\n \"\",\n events.length === 0\n ? \" No transcript events recorded yet.\"\n : events.map(renderTranscriptEventForCli).join(\"\\n\"),\n ].join(\"\\n\");\n}\n\nasync function attachCodeAgentRun(\n runs: CodeAgentRunRecord[],\n args: string[],\n output: NodeJS.WritableStream,\n): Promise<void> {\n const run = selectCodeAgentRun(runs, args, { defaultToLast: true });\n if (!run) {\n writeLine(\n output,\n [\n \"\",\n \"Agent-Native Code attach\",\n \"\",\n \" No Agent-Native Code session selected.\",\n \"\",\n \"Try: agent-native code attach --last\",\n ].join(\"\\n\"),\n );\n return;\n }\n\n const follow = !args.includes(\"--no-follow\");\n const printed = new Set<string>();\n writeLine(output, \"\");\n writeLine(output, `Attaching to Agent-Native Code run ${run.id}`);\n writeLine(\n output,\n \"Press Ctrl+C to detach. The session keeps its transcript.\",\n );\n writeLine(output, \"\");\n\n const printNewEvents = () => {\n const events = listCodeAgentTranscriptEvents(run.id);\n for (const event of events) {\n const key = `${event.id}:${event.createdAt}`;\n if (printed.has(key)) continue;\n printed.add(key);\n writeLine(output, renderTranscriptEventForCli(event));\n }\n };\n\n printNewEvents();\n if (!follow) return;\n\n while (true) {\n const latest = getCodeAgentRunRecord(run.id);\n if (!latest || isTerminalRun(latest)) {\n printNewEvents();\n if (latest) {\n writeLine(\n output,\n `\\nRun ${latest.status}${latest.phase ? ` (${latest.phase})` : \"\"}.`,\n );\n }\n return;\n }\n await delay(1_000);\n printNewEvents();\n }\n}\n\nfunction renderTranscriptEventForCli(event: CodeAgentTranscriptEvent): string {\n const timestamp = event.createdAt.replace(\"T\", \" \").replace(/\\.\\d+Z$/, \"Z\");\n const label =\n event.kind === \"user\"\n ? \"user\"\n : event.metadata?.role === \"assistant\"\n ? \"assistant\"\n : event.kind;\n const tool =\n typeof event.metadata?.tool === \"string\" ? ` ${event.metadata.tool}` : \"\";\n return `[${timestamp}] ${label}${tool}: ${event.message}`;\n}\n\nfunction isTerminalRun(run: CodeAgentRunRecord): boolean {\n return (\n run.status === \"completed\" ||\n run.status === \"errored\" ||\n run.status === \"paused\" ||\n run.phase === \"complete\" ||\n run.phase === \"error\" ||\n run.phase === \"paused\" ||\n run.phase === \"missing-credentials\" ||\n run.phase === \"stopped\"\n );\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction selectCodeAgentRun(\n runs: CodeAgentRunRecord[],\n args: string[],\n options: { defaultToLast: boolean },\n): CodeAgentRunRecord | null {\n const explicitRunId = getExplicitRunId(args);\n if (explicitRunId) {\n return runs.find((run) => run.id === explicitRunId) ?? null;\n }\n return options.defaultToLast ? (runs[0] ?? null) : null;\n}\n\nfunction hasExplicitRunId(args: string[]): boolean {\n return Boolean(getExplicitRunId(args));\n}\n\nfunction getExplicitRunId(args: string[]): string | null {\n const subcommand = args[0];\n for (const arg of args.slice(1)) {\n if (arg === \"--last\" || arg === \"--\") continue;\n if (arg.startsWith(\"-\")) continue;\n if (arg === subcommand) continue;\n return arg;\n }\n return null;\n}\n\nfunction renderCodeAgentRunDetail(\n heading: string,\n run: CodeAgentRunRecord,\n): string {\n const transcriptEvents = listCodeAgentTranscriptEvents(run.id);\n return [\n \"\",\n heading,\n \"\",\n ` Run: ${run.id}`,\n ` Goal: /${run.goalId}`,\n ` Title: ${run.title}`,\n run.subtitle ? ` Subtitle: ${run.subtitle}` : \"\",\n run.permissionMode\n ? ` Mode: ${formatCodeAgentRunMode(run.permissionMode)}`\n : \"\",\n run.cwd ? ` Cwd: ${run.cwd}` : \"\",\n ` Status: ${run.status}${run.phase ? ` (${run.phase})` : \"\"}`,\n run.progress\n ? ` Progress: ${run.progress.completed}/${run.progress.total} (${run.progress.percent}%)`\n : \"\",\n run.artifactRoot ? ` Artifacts: ${run.artifactRoot}` : \"\",\n ` Transcript: ${transcriptEvents.length} event${transcriptEvents.length === 1 ? \"\" : \"s\"}`,\n ` Updated: ${run.updatedAt}`,\n ]\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction renderCodeAgentRunListItem(run: CodeAgentRunRecord): string {\n const progress = run.progress\n ? `, ${run.progress.completed}/${run.progress.total}`\n : \"\";\n const permission = run.permissionMode\n ? `, ${formatCodeAgentRunMode(run.permissionMode)}`\n : \"\";\n return [\n ` - ${run.id}`,\n ` /${run.goalId} ${run.status}${run.phase ? ` (${run.phase})` : \"\"}${progress}${permission}`,\n ` ${truncateForDisplay(run.title, 100)}`,\n ` updated ${run.updatedAt}`,\n ].join(\"\\n\");\n}\n\nfunction isInteractiveTerminal(\n input: NodeJS.ReadableStream,\n output: NodeJS.WritableStream,\n): boolean {\n return Boolean(\n (input as NodeJS.ReadStream).isTTY && (output as NodeJS.WriteStream).isTTY,\n );\n}\n\nfunction writeLine(output: NodeJS.WritableStream, text = \"\"): void {\n output.write(`${text}\\n`);\n}\n\nfunction writePrompt(output: NodeJS.WritableStream): void {\n output.write(SHELL_PROMPT);\n}\n\nfunction getCorePackageVersion(): string {\n try {\n const cliDir = path.dirname(fileURLToPath(import.meta.url));\n const packagePath = path.resolve(cliDir, \"../../package.json\");\n const pkg = JSON.parse(fs.readFileSync(packagePath, \"utf-8\")) as {\n version?: unknown;\n };\n return typeof pkg.version === \"string\" ? pkg.version : \"unknown\";\n } catch {\n return \"unknown\";\n }\n}\n\nasync function runCodeGoal(\n goalId: CodeAgentGoalId,\n forwardedArgs: string[],\n output: NodeJS.WritableStream = process.stdout,\n): Promise<void> {\n const goal = CODE_AGENT_CLI_GOALS.find(\n (candidate) => candidate.id === goalId,\n );\n if (!goal) {\n throw new Error(`Unknown Agent-Native Code goal: ${goalId}`);\n }\n\n switch (goal.backingCommand) {\n case \"task\":\n await runTask(forwardedArgs, output);\n return;\n case \"audit-agent-web\":\n await runAuditAgentWeb(forwardedArgs);\n return;\n case \"migrate\":\n await runMigrate(forwardedArgs);\n return;\n }\n}\n\nasync function runTask(\n forwardedArgs: string[],\n output: NodeJS.WritableStream,\n options: RunTaskOptions = {},\n): Promise<void> {\n const parsed = parseTaskArgs(forwardedArgs, options.permissionMode);\n if (parsed.error) {\n writeLine(output, parsed.error);\n writeLine(output, taskUsage());\n return;\n }\n if (!parsed.prompt) {\n writeLine(output, taskUsage());\n return;\n }\n\n const prompt = parsed.prompt;\n const run = createCodeAgentRunRecord({\n goalId: \"task\",\n title: titleFromPrompt(prompt),\n subtitle: options.subtitle ?? \"Generic coding task\",\n status: \"running\",\n phase: \"starting\",\n permissionMode: parsed.permissionMode,\n progress: {\n label: \"Starting\",\n completed: 0,\n total: 1,\n percent: 5,\n },\n details: [\n { label: \"Prompt\", value: truncateForDisplay(prompt, 160) },\n { label: \"Agent\", value: \"Running locally\" },\n { label: \"Mode\", value: formatCodeAgentRunMode(parsed.permissionMode) },\n ],\n cwd: process.cwd(),\n metadata: {\n prompt,\n source: options.source ?? \"agent-native code\",\n commandName: options.commandName,\n commandPath: options.commandPath,\n permissionMode: parsed.permissionMode,\n },\n });\n\n appendCodeAgentTranscriptEvent({\n runId: run.id,\n kind: \"user\",\n message: prompt,\n metadata: { source: \"initial-prompt\" },\n });\n appendCodeAgentTranscriptEvent({\n runId: run.id,\n kind: \"status\",\n message: \"Starting local Agent-Native Code execution.\",\n metadata: {\n status: \"running\",\n phase: \"starting\",\n },\n });\n\n writeLine(output, renderTaskStarted(run, prompt));\n await executeCodeAgentRun({\n runId: run.id,\n prompt,\n appendUserEvent: false,\n stdout: output,\n });\n}\n\nasync function runProjectSlashCommand(\n commandName: string,\n forwardedArgs: string[],\n output: NodeJS.WritableStream,\n): Promise<void> {\n const command = findProjectSlashCommand(commandName);\n if (!command) {\n writeLine(\n output,\n `Project slash command not found: /${normalizeGoalToken(commandName)}`,\n );\n return;\n }\n const parsed = parseTaskArgs(forwardedArgs);\n if (parsed.error) {\n writeLine(output, parsed.error);\n return;\n }\n const prompt = renderProjectSlashCommandPrompt(command, parsed.promptArgs);\n await runTask([prompt], output, {\n subtitle: `Project command /${command.name}`,\n source: \"agent-native code project-command\",\n commandName: command.name,\n commandPath: command.path,\n permissionMode: parsed.permissionMode,\n });\n}\n\nasync function recordCodeAgentFollowUpPrompt(\n prompt: string,\n output: NodeJS.WritableStream,\n permissionMode?: CodeAgentPermissionMode,\n runId?: string,\n followUpMode: CodeAgentFollowUpMode = \"immediate\",\n): Promise<void> {\n const run = runId\n ? getCodeAgentRunRecord(runId)\n : getLastCodeAgentRunRecord();\n if (!run) {\n writeLine(\n output,\n [\n \"\",\n runId\n ? `Agent-Native Code run not found: ${runId}`\n : \"No Agent-Native Code runs found.\",\n \"\",\n 'Start one with: agent-native code \"what to change\"',\n ].join(\"\\n\"),\n );\n return;\n }\n\n const activeRun = permissionMode\n ? (updateCodeAgentRunRecord(run.id, { permissionMode }) ?? run)\n : run;\n const shouldQueue = isActiveCodeAgentRun(activeRun);\n const event = appendCodeAgentTranscriptEvent({\n runId: activeRun.id,\n kind: \"user\",\n message: prompt,\n metadata: {\n source: \"resume-follow-up\",\n permissionMode,\n followUpMode,\n delivery: shouldQueue ? followUpMode : \"run-now\",\n },\n });\n if (shouldQueue) {\n queueCodeAgentFollowUp({\n runId: activeRun.id,\n prompt,\n mode: followUpMode,\n eventId: event.id,\n permissionMode,\n source: \"resume-follow-up\",\n createdAt: event.createdAt,\n });\n writeLine(output, renderFollowUpRecorded(activeRun, event, followUpMode));\n return;\n }\n\n writeLine(output, renderFollowUpRecorded(activeRun, event, \"immediate\"));\n await executeCodeAgentRun({\n runId: activeRun.id,\n prompt,\n appendUserEvent: false,\n stdout: output,\n });\n}\n\nfunction parseTaskArgs(\n forwardedArgs: string[],\n defaultPermissionMode: CodeAgentPermissionMode = DEFAULT_CODE_AGENT_PERMISSION_MODE,\n): ParsedTaskArgs {\n const promptArgs: string[] = [];\n let permissionMode: CodeAgentPermissionMode = defaultPermissionMode;\n let permissionModeExplicit = false;\n for (let index = 0; index < forwardedArgs.length; index += 1) {\n const arg = forwardedArgs[index];\n if (arg === \"--\") {\n promptArgs.push(...forwardedArgs.slice(index + 1));\n break;\n }\n if (arg === \"--permission-mode\") {\n const value = forwardedArgs[index + 1];\n const normalized = normalizeCodeAgentPermissionMode(value);\n if (!normalized) {\n return {\n prompt: \"\",\n promptArgs,\n permissionMode,\n error: `Invalid run mode: ${value ?? \"(missing)\"}`,\n };\n }\n permissionMode = normalized;\n permissionModeExplicit = true;\n index += 1;\n continue;\n }\n if (arg.startsWith(\"--permission-mode=\")) {\n const normalized = normalizeCodeAgentPermissionMode(\n arg.slice(\"--permission-mode=\".length),\n );\n if (!normalized) {\n return {\n prompt: \"\",\n promptArgs,\n permissionMode,\n error: `Invalid run mode: ${arg.slice(\"--permission-mode=\".length)}`,\n };\n }\n permissionMode = normalized;\n permissionModeExplicit = true;\n continue;\n }\n const shorthand = parsePermissionModeFlag(arg);\n if (shorthand) {\n permissionMode = shorthand;\n permissionModeExplicit = true;\n continue;\n }\n promptArgs.push(arg);\n }\n return {\n prompt: promptArgs.join(\" \").trim(),\n promptArgs,\n permissionMode,\n permissionModeExplicit,\n };\n}\n\nfunction parseFollowUpArgs(forwardedArgs: string[]): ParsedTaskArgs & {\n followUpMode: CodeAgentFollowUpMode;\n} {\n const promptArgs: string[] = [];\n let followUpMode: CodeAgentFollowUpMode = \"immediate\";\n for (let index = 0; index < forwardedArgs.length; index += 1) {\n const arg = forwardedArgs[index];\n if (arg === \"--\") {\n promptArgs.push(...forwardedArgs.slice(index));\n break;\n }\n if (arg === \"--queue\" || arg === \"--after-completion\") {\n followUpMode = \"queued\";\n continue;\n }\n if (arg === \"--immediate\" || arg === \"--steer\") {\n followUpMode = \"immediate\";\n continue;\n }\n promptArgs.push(arg);\n }\n return {\n ...parseTaskArgs(promptArgs),\n followUpMode,\n };\n}\n\nfunction parsePermissionModeFlag(arg: string): CodeAgentPermissionMode | null {\n switch (arg) {\n case \"--plan\":\n case \"--read-only\":\n return \"read-only\";\n case \"--auto\":\n return \"full-auto\";\n case \"--ask-before-edit\":\n return \"ask-before-edit\";\n case \"--auto-edit\":\n return \"auto-edit\";\n case \"--full-auto\":\n return \"full-auto\";\n default:\n return null;\n }\n}\n\nfunction titleFromPrompt(prompt: string): string {\n return truncateForDisplay(prompt.replace(/\\s+/g, \" \"), 80);\n}\n\nfunction truncateForDisplay(value: string, maxLength: number): string {\n if (value.length <= maxLength) return value;\n return `${value.slice(0, Math.max(0, maxLength - 3))}...`;\n}\n\nfunction renderTaskStarted(run: CodeAgentRunRecord, prompt: string): string {\n return [\n \"\",\n \"Agent-Native Code session started.\",\n \"\",\n ` Run: ${run.id}`,\n ` Prompt: ${truncateForDisplay(prompt, 160)}`,\n ` Mode: ${formatCodeAgentRunMode(run.permissionMode)}`,\n \"\",\n \"Streaming output below. The transcript is saved with this run.\",\n ].join(\"\\n\");\n}\n\nfunction renderFollowUpRecorded(\n run: CodeAgentRunRecord,\n event: ReturnType<typeof appendCodeAgentTranscriptEvent>,\n mode: CodeAgentFollowUpMode,\n): string {\n const active = isActiveCodeAgentRun(run);\n const heading = active\n ? mode === \"queued\"\n ? \"Queued follow-up prompt for Agent-Native Code run.\"\n : \"Recorded steering prompt for active Agent-Native Code run.\"\n : \"Running follow-up prompt for Agent-Native Code run.\";\n return [\n \"\",\n heading,\n \"\",\n ` Run: ${run.id}`,\n ` Goal: /${run.goalId}`,\n ` Event: ${event.id}`,\n \"\",\n active\n ? mode === \"queued\"\n ? \"It will run after the current execution finishes.\"\n : \"It will be applied by the active runner as soon as it can steer.\"\n : \"Streaming output below. The transcript is saved with this run.\",\n ].join(\"\\n\");\n}\n\nfunction taskUsage(): string {\n return [\n \"\",\n \"Usage:\",\n ' agent-native code \"what to change\"',\n ' agent-native code --plan \"explain this repo\"',\n ' agent-native code --auto \"fix this and verify it\"',\n ` agent-native code --permission-mode ${CODE_AGENT_PERMISSION_MODES.join(\"|\")} \"what to change\"`,\n \"\",\n \"The task goal starts a local Agent-Native Code session, saves transcript events, and can be resumed with follow-up prompts.\",\n ].join(\"\\n\");\n}\n\nfunction formatCodeAgentRunMode(\n permissionMode: CodeAgentPermissionMode | undefined,\n): string {\n return permissionMode === \"read-only\" ? \"Plan mode\" : \"Auto mode\";\n}\n"]}
|