import { describe, expect, it } from 'vitest' import { RUNTIME_CAPABILITIES } from './protocol-version' // Frozen baseline: additions need no edit; remove a name only when deliberately retiring support. const PUBLISHED_RUNTIME_CAPABILITIES = [ 'accounts.antigravity-chat-sign-in.v1', 'accounts.antigravity-native.v1', 'accounts.claude-sign-in.v1', 'accounts.codex-reset-credit.v1', 'accounts.host-launch-env.v1', 'accounts.import-host-credentials.v1', 'accounts.managed-data-profiles.v1', 'agent-session.accepted-send.v1', 'agent-session.account-env.v1', 'agent-session.attachments.phone.v1', 'agent-session.attachments.v1', 'agent-session.attention-ack.v1', 'agent-session.background-task-child-views.v1', 'agent-session.background-task-row-stop.v1', 'agent-session.background-task-stop.v1', 'agent-session.codebuddy-resume.v1', 'agent-session.continue-interrupted.v1', 'agent-session.conversation-outline.v1', 'agent-session.conversation-stop.v1', 'agent-session.current-requests.v1', 'agent-session.cursor-resume.v1', 'agent-session.dsh-resume.v1', 'agent-session.host-authority.v1', 'agent-session.keyboard.v1', 'agent-session.kimi-resume.v1', 'agent-session.kiro-resume.v1', 'agent-session.model-catalog.saved-only.v1', 'agent-session.muse-resume.v1', 'agent-session.omp-resume-path.v1', 'agent-session.opencode2-resume.v1', 'agent-session.pending-send-result.v1', 'agent-session.permission-modes.v1', 'agent-session.prompt-cancel.v1', 'agent-session.qoder-cn-resume.v1', 'agent-session.qoder-resume.v1', 'agent-session.question-answers.v1', 'agent-session.queued-commands.v1', 'agent-session.queued-message-edit.v1', 'agent-session.qwen-code-resume.v1', 'agent-session.repeated-stop.v1', 'agent-session.rewind-recovery.v1', 'agent-session.rewind.v1', 'agent-session.send-answers-proof.v1', 'agent-session.send-options.v1', 'agent-session.session-boundary.v1', 'agent-session.status-feed.v1', 'agent-session.structured.availability.v1', 'agent-session.structured.cli-source.v1', 'agent-session.structured.client-launch-mode.v1', 'agent-session.structured.hold.v1', 'agent-session.structured.pi-dialogs.v1', 'agent-session.structured.registered-agents.v1', 'agent-session.structured.resume-history.v1', 'agent-session.structured.reveal.v1', 'agent-session.structured.v1', 'agent-session.turn-completion.v1', 'agent-session.turn-item.v1', 'agent-session.zcode-resume.v1', 'agent.launch.create-folder-workspace.v1', 'agent.launch.local-presentation.v1', 'agent.launch.placement.v1', 'agent.launch.prompt-carry.v1', 'agent.launch.prompt-unconfirmed.v1', 'agent.launch.replay-required.v1', 'agent.launch.replay.v1', 'agent.launch.v2', 'agentSession.create.message.v1', 'agentSession.create.tab-id.v1', 'ai-vault.chat-fork-source.v1', 'aiVault.session-titles.v1', 'aiVault.v1', 'automation.create-idempotency.v1', 'automation.list-host-scope.v1', 'automation.owner-fencing.v1', 'automations.extra-agent-args.v1', 'browser.clientHost.automation.v1', 'browser.clientHost.fileChannel.v1', 'browser.clientHost.pageMetadata.v1', 'browser.clientHost.v1', 'browser.screencast.v1', 'browser.tab-create-known-id.v1', 'files.mutation-ownership.v1', 'files.pathsExist', 'files.resolve-terminal-path.cross-workspace.v1', 'folder-workspace.path-status.v1', 'git.antigravity-configured-model.v1', 'github.markPRReadyForReview', 'gitlab.updateMR.readyForReview.v1', 'jira.agent-access.v1', 'jira.attachment-images.v1', 'jira.current-sprint.v1', 'jira.issue-list-statuses.v1', 'jira.issue-summary-generation.v1', 'jira.saved-filter-state.v1', 'jira.transition-fields.v1', 'jira.user-fields.v1', 'linear.issue-attribute-filter.v1', 'managed-runtime.install.v1', 'managed-runtime.remove.v1', 'mobile.desktop-relay.v1', 'mobile.tasks.v1', 'network.browserTunnel.executionHosts.v1', 'network.browserTunnel.v1', 'notifications.remote-push.v1', 'orcad.migration-catalog.v1', 'orcad.terminal-census.v1', 'orchestration.contract.v1', 'orchestration.federation-control-mail.v1', 'orchestration.federation-fleet-snapshot.v1', 'orchestration.federation-lifecycle-settlement.v1', 'orchestration.federation-release-archive.v1', 'orchestration.federation-structured-read.v1', 'orchestration.federation.v1', 'orchestration.worker-launch-preferences.v1', 'orchestration.worker-stop-verdict.v1', 'pairing.delegated-mobile-devices.v1', 'pairing.device-key-ephemeral.v1', 'pairing.device-key.v1', 'preflight.other-runtime-refusal.v1', 'preflight.workspace-scoped.v1', 'project-host-setup.v1', 'remote-runtime.shared-control.v1', 'repo.search-qualified-refs.v1', 'runtime-source-fence.v1', 'runtime.automatic-work.v1', 'runtime.environments.v1', 'runtime.status.compat.v1', 'session-tabs.authoritative-inventory.v1', 'session-tabs.close-intent.v1', 'session-tabs.create-terminal-shell.v1', 'session-tabs.empty-worktree-answer.v1', 'session-tabs.split-group-placement.v1', 'session.tabs.chat-fork-cli.v1', 'session.tabs.qoderOwnedCreate.v1', 'settings.agent-launch.v1', 'skills.delete.v1', 'skills.install-cancel.v1', 'skills.install-progress.v1', 'skills.install-providers.v1', 'skills.install-result.v2', 'skills.install.bundle.v1', 'skills.install.v1', 'skills.manage.v1', 'skills.upload.v1', 'ssh.target-management.v1', 'task-source-context.v1', 'terminal.binary-stream.v1', 'terminal.create-idempotency.v2', 'terminal.create-shell-selection.v1', 'terminal.multiplex.v1', 'terminal.paired-parking.v1', 'terminal.program-status.v1', 'terminal.prompt-delivery.v1', 'terminal.query-reply-input.v1', 'terminal.quick-commands.long-prompts.v1', 'terminal.quick-commands.v1', 'terminal.spawn-intent.v1', 'updater.remote-control.v1', 'workspace-ports.host-scoped.v1', 'workspace-ports.v1', 'workspace-run-context.v1', 'worktree.archive-failure-blocking.v1', 'worktree.create-idempotency.v1', 'worktree.github-pr-suppression.v1', 'worktree.linked-items-delta.v1', 'worktree.linked-items.v1', 'worktree.linked-work-item-context.v1', 'worktree.provisioned-root.v1', 'worktree.visibility-defaults.v1', 'worktree.visibility-source-defaults.v1' ] describe('RUNTIME_CAPABILITIES', () => { it('preserves every previously published capability', () => { expect(RUNTIME_CAPABILITIES).toEqual(expect.arrayContaining(PUBLISHED_RUNTIME_CAPABILITIES)) }) })