@mycadet/assistant 0.12.7 → 0.12.8

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.
Files changed (892) hide show
  1. package/README.md +1 -1
  2. package/docs/activation-funnel-telemetry.md +6 -6
  3. package/docs/cadet-doctor.md +7 -7
  4. package/docs/desktop-browser-cli.md +7 -7
  5. package/docs/skills.md +2 -2
  6. package/docs/voice-input-diagnostics.md +1 -1
  7. package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +2 -2
  8. package/node_modules/@mycadet/avatar-manifest/src/__tests__/notification-avatar.test.ts +1 -1
  9. package/node_modules/@mycadet/avatar-manifest/src/notification-avatar.ts +2 -2
  10. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/package.json +1 -1
  11. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  12. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  13. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  14. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  15. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  16. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  17. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  18. package/node_modules/@mycadet/ces-client/src/rpc-client.ts +1 -1
  19. package/node_modules/@mycadet/credential-storage/src/oauth-runtime.ts +1 -1
  20. package/node_modules/@mycadet/credential-storage/src/static-credentials.ts +1 -1
  21. package/node_modules/@mycadet/environments/src/seeds.ts +6 -6
  22. package/node_modules/@mycadet/environments/src/shell.test.ts +1 -1
  23. package/node_modules/@mycadet/environments/src/types.ts +6 -6
  24. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/package.json +1 -1
  25. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  26. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  27. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  28. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  29. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  30. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  31. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  32. package/node_modules/@mycadet/gateway-client/src/binding-strength-contract.ts +5 -5
  33. package/node_modules/@mycadet/gateway-client/src/gateway-ipc-contracts.ts +1 -1
  34. package/node_modules/@mycadet/gateway-client/src/inbound-contract.ts +2 -2
  35. package/node_modules/@mycadet/gateway-client/src/outbound-contract.ts +1 -1
  36. package/node_modules/@mycadet/service-contracts/package.json +1 -1
  37. package/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  38. package/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  39. package/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  40. package/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  41. package/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  42. package/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  43. package/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  44. package/openapi.yaml +6815 -794
  45. package/package.json +2 -2
  46. package/scripts/build-test-fixtures.ts +1 -1
  47. package/scripts/probe-skill-retrieval.ts +1 -1
  48. package/scripts/sync-llm-catalog.ts +2 -2
  49. package/scripts/voice-ttft-spike.ts +2 -2
  50. package/src/__tests__/adaptive-thinking-repair.test.ts +4 -4
  51. package/src/__tests__/agent-loop-override-profile.test.ts +4 -4
  52. package/src/__tests__/agent-loop-subagent-billing-headers.test.ts +1 -1
  53. package/src/__tests__/anthropic-provider.test.ts +2 -2
  54. package/src/__tests__/available-skills.test.ts +11 -12
  55. package/src/__tests__/avatar-identity-sync.test.ts +1 -1
  56. package/src/__tests__/byok-default-profile-ensure.test.ts +7 -7
  57. package/src/__tests__/call-domain.test.ts +1 -1
  58. package/src/__tests__/call-site-routing-connection-auto-resolve.test.ts +2 -2
  59. package/src/__tests__/catalog-files.test.ts +10 -10
  60. package/src/__tests__/catalog-install-normalize.test.ts +3 -3
  61. package/src/__tests__/channel-availability-routes.test.ts +8 -8
  62. package/src/__tests__/channel-readiness-routes.test.ts +4 -4
  63. package/src/__tests__/channel-readiness-service.test.ts +14 -14
  64. package/src/__tests__/channel-readiness-telegram-remote.test.ts +1 -1
  65. package/src/__tests__/chat-reveal-guard-priming.test.ts +5 -6
  66. package/src/__tests__/checker.test.ts +6 -6
  67. package/src/__tests__/clawhub.test.ts +1 -1
  68. package/src/__tests__/{platform-callback-registration.test.ts → cloud-callback-registration.test.ts} +66 -90
  69. package/src/__tests__/{platform-client-verify-credential.test.ts → cloud-client-verify-credential.test.ts} +14 -14
  70. package/src/__tests__/{managed-credential-catalog-cli.test.ts → cloud-credential-catalog-cli.test.ts} +41 -41
  71. package/src/__tests__/{managed-fallback-dispatch.test.ts → cloud-fallback-dispatch.test.ts} +21 -16
  72. package/src/__tests__/{managed-profile-guard.test.ts → cloud-profile-guard.test.ts} +60 -60
  73. package/src/__tests__/{platform-proxy-context.test.ts → cloud-proxy-context.test.ts} +44 -44
  74. package/src/__tests__/{managed-speech-defaults.test.ts → cloud-speech-defaults.test.ts} +41 -41
  75. package/src/__tests__/{managed-store.test.ts → cloud-store.test.ts} +99 -99
  76. package/src/__tests__/compaction-events.test.ts +7 -5
  77. package/src/__tests__/config-loader-backfill.test.ts +65 -65
  78. package/src/__tests__/config-loader-cloud-defaults.test.ts +373 -0
  79. package/src/__tests__/config-loader-corrupt.test.ts +1 -1
  80. package/src/__tests__/config-loader-validation-reset-notice.test.ts +1 -1
  81. package/src/__tests__/config-schema.test.ts +3 -3
  82. package/src/__tests__/{config-set-platform-guard.test.ts → config-set-cloud-guard.test.ts} +6 -6
  83. package/src/__tests__/config-watcher-cleanup-throttle.test.ts +0 -8
  84. package/src/__tests__/config-watcher.test.ts +1 -1
  85. package/src/__tests__/contacts-write.test.ts +1 -1
  86. package/src/__tests__/conversation-agent-loop.test.ts +2 -2
  87. package/src/__tests__/conversation-app-control-instantiation.test.ts +18 -18
  88. package/src/__tests__/conversation-error.test.ts +45 -45
  89. package/src/__tests__/conversation-inference-profile-route.test.ts +4 -4
  90. package/src/__tests__/conversation-rendered-delegation-state.test.ts +4 -4
  91. package/src/__tests__/conversation-skill-tools.test.ts +7 -8
  92. package/src/__tests__/conversation-slash.test.ts +2 -2
  93. package/src/__tests__/conversation-speed-override.test.ts +8 -10
  94. package/src/__tests__/conversation-summarize-up-to.test.ts +4 -4
  95. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +1 -1
  96. package/src/__tests__/conversation-wait-for-idle.test.ts +7 -5
  97. package/src/__tests__/credential-execution-api-key-propagation.test.ts +5 -5
  98. package/src/__tests__/{credential-execution-managed-contract.test.ts → credential-execution-cloud-contract.test.ts} +24 -24
  99. package/src/__tests__/credential-health-service.test.ts +27 -41
  100. package/src/__tests__/credential-routes.test.ts +85 -165
  101. package/src/__tests__/credential-security-invariants.test.ts +6 -7
  102. package/src/__tests__/custom-profile-ensure.test.ts +1 -1
  103. package/src/__tests__/date-context.test.ts +1 -1
  104. package/src/__tests__/default-profile-catalog-fallback.test.ts +15 -15
  105. package/src/__tests__/delete-managed-skill-tool.test.ts +8 -8
  106. package/src/__tests__/discord-callback-round-trip.test.ts +1 -1
  107. package/src/__tests__/disk-usage.test.ts +3 -3
  108. package/src/__tests__/email-invite-adapter.test.ts +5 -5
  109. package/src/__tests__/{embedding-managed-proxy-selection.test.ts → embedding-cloud-proxy-selection.test.ts} +44 -43
  110. package/src/__tests__/emit-signal-routing-intent.test.ts +13 -15
  111. package/src/__tests__/events-dev-bypass-actor.test.ts +2 -2
  112. package/src/__tests__/fallback-breaker.test.ts +7 -7
  113. package/src/__tests__/feature-flag-test-helpers.ts +106 -0
  114. package/src/__tests__/gateway-flag-listener.test.ts +1 -1
  115. package/src/__tests__/gemini-image-service.test.ts +2 -2
  116. package/src/__tests__/gemini-provider.test.ts +5 -5
  117. package/src/__tests__/get-skill-detail-audit.test.ts +9 -8
  118. package/src/__tests__/guardian-verification-voice-binding.test.ts +1 -1
  119. package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +5 -5
  120. package/src/__tests__/host-cu-routes-targeted.test.ts +8 -8
  121. package/src/__tests__/image-credentials.test.ts +13 -13
  122. package/src/__tests__/inbound-admitted-introduction-nudge.test.ts +14 -6
  123. package/src/__tests__/inbound-trust-verdict.test.ts +14 -6
  124. package/src/__tests__/inference-no-mode-boot-e2e.test.ts +11 -11
  125. package/src/__tests__/inference-profile-session-handler.test.ts +7 -7
  126. package/src/__tests__/inference-profile-session-ipc.test.ts +5 -5
  127. package/src/__tests__/inference-profile-validation-jev.test.ts +1 -1
  128. package/src/__tests__/init-feature-flag-overrides.test.ts +40 -24
  129. package/src/__tests__/input-repairs.test.ts +1 -1
  130. package/src/__tests__/install-skill-routing.test.ts +10 -8
  131. package/src/__tests__/integration-status.test.ts +5 -5
  132. package/src/__tests__/internal-telemetry-routes.test.ts +3 -3
  133. package/src/__tests__/invite-routes-http.test.ts +1 -1
  134. package/src/__tests__/llm-catalog-parity.test.ts +5 -7
  135. package/src/__tests__/llm-request-log-source-clickhouse.test.ts +2 -2
  136. package/src/__tests__/llm-resolver-override-or-default.test.ts +3 -3
  137. package/src/__tests__/llm-resolver.test.ts +1 -1
  138. package/src/__tests__/llm-schema-fallback-profile.test.ts +25 -19
  139. package/src/__tests__/llm-usage-store.test.ts +1 -1
  140. package/src/__tests__/managed-skill-lifecycle.test.ts +12 -12
  141. package/src/__tests__/mcp-abort-signal.test.ts +2 -2
  142. package/src/__tests__/mcp-client-auth.test.ts +2 -2
  143. package/src/__tests__/mcp-tool-annotations-risk.test.ts +2 -2
  144. package/src/__tests__/media-generate-image.test.ts +30 -30
  145. package/src/__tests__/memory-config-file-parity.test.ts +6 -6
  146. package/src/__tests__/migration-export-to-gcs.test.ts +4 -4
  147. package/src/__tests__/migration-import-commit-http.test.ts +1 -1
  148. package/src/__tests__/mtime-cache.test.ts +2 -2
  149. package/src/__tests__/{notification-platform-adapter.test.ts → notification-cloud-adapter.test.ts} +39 -39
  150. package/src/__tests__/notification-deep-link.test.ts +40 -40
  151. package/src/__tests__/oauth-apps-routes.test.ts +3 -3
  152. package/src/__tests__/oauth-cli.test.ts +9 -9
  153. package/src/__tests__/oauth-commands-routes.test.ts +16 -16
  154. package/src/__tests__/oauth-connect-orchestrator.test.ts +2 -2
  155. package/src/__tests__/oauth-provider-serializer.test.ts +11 -11
  156. package/src/__tests__/oauth-providers-routes.test.ts +12 -12
  157. package/src/__tests__/oauth-store.test.ts +1 -1
  158. package/src/__tests__/oauth2-gateway-transport.test.ts +3 -3
  159. package/src/__tests__/onboarding-persona-write.test.ts +2 -2
  160. package/src/__tests__/openai-image-service.test.ts +2 -2
  161. package/src/__tests__/openai-responses-cutover-guard.test.ts +2 -2
  162. package/src/__tests__/openai-responses-provider.test.ts +1 -1
  163. package/src/__tests__/path-policy.test.ts +4 -4
  164. package/src/__tests__/personal-memory-auth-bypass.test.ts +1 -1
  165. package/src/__tests__/platform-bash-auto-approve.test.ts +18 -18
  166. package/src/__tests__/plugin-api-model-profiles.test.ts +1 -1
  167. package/src/__tests__/plugin-api-provider.test.ts +1 -1
  168. package/src/__tests__/plugin-api-webhook-url.test.ts +4 -5
  169. package/src/__tests__/plugin-import-boundary-guard.test.ts +8 -39
  170. package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +2 -2
  171. package/src/__tests__/{provider-platform-proxy-integration.test.ts → provider-cloud-proxy-integration.test.ts} +70 -72
  172. package/src/__tests__/provider-commit-message-generator.test.ts +1 -1
  173. package/src/__tests__/provider-connections-backfill.test.ts +9 -9
  174. package/src/__tests__/provider-error-scenarios.test.ts +8 -8
  175. package/src/__tests__/provider-registry-ollama.test.ts +1 -1
  176. package/src/__tests__/provider-send-message-override-profile.test.ts +5 -5
  177. package/src/__tests__/registry.test.ts +3 -3
  178. package/src/__tests__/requests-mock.ts +972 -0
  179. package/src/__tests__/resolve-trust-class.test.ts +1 -1
  180. package/src/__tests__/resource-pressure-guard.test.ts +6 -6
  181. package/src/__tests__/resource-pressure-routes.test.ts +5 -5
  182. package/src/__tests__/retry-fallback-escalation.test.ts +5 -5
  183. package/src/__tests__/sanitize-config-for-transfer.test.ts +1 -1
  184. package/src/__tests__/scaffold-managed-skill-tool.test.ts +97 -97
  185. package/src/__tests__/schedule-store.test.ts +1 -1
  186. package/src/__tests__/search-skills-unified.test.ts +9 -7
  187. package/src/__tests__/{secret-routes-platform-proxy.test.ts → secret-routes-cloud-proxy.test.ts} +48 -95
  188. package/src/__tests__/secret-routes-scrub.test.ts +2 -59
  189. package/src/__tests__/secure-keys.test.ts +1 -1
  190. package/src/__tests__/skill-load-plugin-scope.test.ts +2 -2
  191. package/src/__tests__/skill-load-tool.test.ts +1 -1
  192. package/src/__tests__/skill-projection-feature-flag.test.ts +0 -19
  193. package/src/__tests__/skill-projection.benchmark.test.ts +5 -7
  194. package/src/__tests__/skill-tool-factory.test.ts +1 -1
  195. package/src/__tests__/skills-file-content-endpoint.test.ts +12 -12
  196. package/src/__tests__/skills-files-catalog-fallback.test.ts +9 -9
  197. package/src/__tests__/skills.test.ts +1 -1
  198. package/src/__tests__/slim-skill-category.test.ts +11 -9
  199. package/src/__tests__/stt-stream-session.test.ts +3 -3
  200. package/src/__tests__/subagent-call-site-routing.test.ts +1 -1
  201. package/src/__tests__/subagent-disposal.test.ts +5 -5
  202. package/src/__tests__/subagent-fork-notifications.test.ts +4 -4
  203. package/src/__tests__/subagent-fork-spawn.test.ts +5 -5
  204. package/src/__tests__/subagent-manager-notify.test.ts +5 -5
  205. package/src/__tests__/subagent-tool-gate-mode.test.ts +2 -2
  206. package/src/__tests__/system-prompt.test.ts +1 -1
  207. package/src/__tests__/telegram-bot-username-resolution.test.ts +34 -52
  208. package/src/__tests__/telegram-config.test.ts +16 -16
  209. package/src/__tests__/telephony-tts-guard.test.ts +13 -13
  210. package/src/__tests__/test-preload.ts +17 -7
  211. package/src/__tests__/tool-audit.test.ts +1 -1
  212. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +7 -5
  213. package/src/__tests__/tool-executor-lifecycle-events.test.ts +1 -1
  214. package/src/__tests__/turn-events-store.test.ts +1 -1
  215. package/src/__tests__/twilio-routes.test.ts +2 -1
  216. package/src/__tests__/ui-choice-copy-surfaces.test.ts +1 -1
  217. package/src/__tests__/unified-turn-context-client-os.test.ts +1 -1
  218. package/src/__tests__/validate-input.test.ts +5 -5
  219. package/src/__tests__/verification-outbound-delivery.test.ts +1 -1
  220. package/src/__tests__/voice-config-update.test.ts +15 -15
  221. package/src/__tests__/voice-ingress-preflight.test.ts +4 -4
  222. package/src/__tests__/web-search.test.ts +340 -859
  223. package/src/__tests__/workspace-git-service.test.ts +1 -1
  224. package/src/__tests__/workspace-migration-082-backfill-managed-profile-labels.test.ts +12 -12
  225. package/src/__tests__/workspace-migration-087-memory-router-balanced-profile.test.ts +1 -1
  226. package/src/__tests__/workspace-migration-090-memory-router-cost-optimized-profile.test.ts +1 -1
  227. package/src/__tests__/workspace-migration-100-upgrade-quality-profile-to-fable-5.test.ts +1 -1
  228. package/src/__tests__/workspace-migration-103-upgrade-quality-profile-to-opus-4-8.test.ts +1 -1
  229. package/src/__tests__/workspace-migration-110-flip-balanced-profile-to-together.test.ts +1 -1
  230. package/src/__tests__/workspace-migration-113-swap-balanced-profile-to-glm-5p2.test.ts +1 -1
  231. package/src/__tests__/workspace-migration-114-swap-quality-profile-to-opus.test.ts +1 -1
  232. package/src/__tests__/workspace-migration-123-swap-quality-profile-to-fable.test.ts +1 -1
  233. package/src/__tests__/workspace-migration-125-repoint-managed-connections-to-cadet.test.ts +3 -3
  234. package/src/__tests__/workspace-migration-126-strip-managed-profile-bodies.test.ts +9 -9
  235. package/src/__tests__/workspace-migration-127-backfill-default-provider.test.ts +11 -11
  236. package/src/__tests__/workspace-migration-130-speech-mode-to-provider.test.ts +3 -3
  237. package/src/__tests__/workspace-migration-132-web-search-mode-to-provider.test.ts +6 -6
  238. package/src/__tests__/workspace-migration-133-collapse-provider-connections.test.ts +3 -3
  239. package/src/__tests__/workspace-migration-134-image-generation-mode-to-provider.test.ts +6 -6
  240. package/src/__tests__/workspace-migration-136-repair-stale-fireworks-kimi-model-id.test.ts +1 -1
  241. package/src/__tests__/workspace-migration-137-repair-retired-fireworks-minimax-model-id.test.ts +1 -1
  242. package/src/__tests__/workspace-migration-146-repair-retired-fireworks-deepseek-flash-model-id.test.ts +1 -1
  243. package/src/__tests__/workspace-migration-147-rename-colliding-backup-profile-names.test.ts +1 -1
  244. package/src/__tests__/workspace-migration-151-repair-renamed-fireworks-deepseek-pro-model-id.test.ts +1 -1
  245. package/src/__tests__/workspace-migration-152-repair-retired-fireworks-minimax-m2p7-model-id.test.ts +1 -1
  246. package/src/__tests__/workspace-migration-159-rename-colliding-jev-profile-name.test.ts +1 -1
  247. package/src/__tests__/workspace-migration-160-repair-retired-fireworks-model-ids.test.ts +1 -1
  248. package/src/__tests__/workspace-migration-161-repair-retired-fireworks-glm-5p2-model-id.test.ts +1 -1
  249. package/src/api/events/cloud-disconnected.ts +21 -0
  250. package/src/api/events/host-bash.ts +1 -1
  251. package/src/api/events/host-cu.ts +1 -1
  252. package/src/api/events/host-file.ts +1 -1
  253. package/src/api/events/notification-intent.ts +1 -1
  254. package/src/api/events/{show-platform-login.ts → show-cloud-login.ts} +3 -5
  255. package/src/api/index.ts +11 -11
  256. package/src/api/responses/home.ts +1 -1
  257. package/src/api/surfaces.ts +4 -4
  258. package/src/approvals/guardian-request-resolvers.ts +2 -2
  259. package/src/avatar/accent-backfill.ts +1 -1
  260. package/src/avatar/identity-avatar.ts +1 -1
  261. package/src/avatar/notification-avatar.test.ts +2 -2
  262. package/src/avatar/notification-avatar.ts +2 -2
  263. package/src/avatar/resvg-lazy.test.ts +1 -1
  264. package/src/avatar/resvg-lazy.ts +3 -3
  265. package/src/avatar/sync-avatar.test.ts +76 -76
  266. package/src/avatar/sync-avatar.ts +15 -15
  267. package/src/avatar/traits-png-sync.ts +1 -1
  268. package/src/background-wake/background-wake-routes.test.ts +39 -39
  269. package/src/background-wake/{platform-client.test.ts → cloud-client.test.ts} +11 -11
  270. package/src/background-wake/{platform-client.ts → cloud-client.ts} +14 -14
  271. package/src/background-wake/publisher.ts +4 -4
  272. package/src/background-wake/wake-intent-hooks.test.ts +3 -3
  273. package/src/calls/__tests__/call-controller.test.ts +2 -2
  274. package/src/calls/__tests__/voice-session-bridge.test.ts +1 -1
  275. package/src/calls/call-domain.ts +1 -1
  276. package/src/calls/resolve-call-tts-provider.ts +6 -6
  277. package/src/calls/telephony-credential-preflight.ts +3 -3
  278. package/src/calls/telephony-tts-capability.ts +5 -6
  279. package/src/calls/tts-call-strategy.ts +1 -1
  280. package/src/calls/voice-escalation-judge.ts +1 -1
  281. package/src/calls/voice-ingress-preflight.ts +4 -4
  282. package/src/cli/bundled-modules.ts +1 -1
  283. package/src/cli/commands/__tests__/apps.test.ts +18 -53
  284. package/src/cli/commands/__tests__/plugins.test.ts +13 -13
  285. package/src/cli/commands/__tests__/tts.test.ts +1 -1
  286. package/src/cli/commands/auth.help.ts +3 -3
  287. package/src/cli/commands/auth.ts +2 -4
  288. package/src/cli/commands/browser.help.ts +2 -2
  289. package/src/cli/commands/channels/index.help.ts +2 -2
  290. package/src/cli/commands/channels/index.ts +1 -1
  291. package/src/cli/commands/channels/send.ts +1 -1
  292. package/src/cli/commands/cloud/__tests__/connect.test.ts +1 -1
  293. package/src/cli/commands/cloud/__tests__/disconnect.test.ts +3 -4
  294. package/src/cli/commands/cloud/connect.ts +2 -2
  295. package/src/cli/commands/cloud/credits-format.ts +1 -1
  296. package/src/cli/commands/cloud/index.help.ts +35 -35
  297. package/src/cli/commands/config.ts +1 -1
  298. package/src/cli/commands/credentials.ts +10 -12
  299. package/src/cli/commands/domain.ts +1 -1
  300. package/src/cli/commands/email.help.ts +1 -1
  301. package/src/cli/commands/email.ts +2 -2
  302. package/src/cli/commands/gateway.help.ts +1 -1
  303. package/src/cli/commands/gateway.ts +1 -1
  304. package/src/cli/commands/image-generation.help.ts +1 -1
  305. package/src/cli/commands/inference-providers.ts +1 -1
  306. package/src/cli/commands/inference.help.ts +2 -2
  307. package/src/cli/commands/memory/index.help.ts +1 -1
  308. package/src/cli/commands/oauth/connect.test.ts +2 -2
  309. package/src/cli/commands/oauth/connect.ts +1 -1
  310. package/src/cli/commands/oauth/index.help.ts +5 -5
  311. package/src/cli/commands/oauth/providers.ts +2 -2
  312. package/src/cli/commands/oauth/shared.ts +3 -3
  313. package/src/cli/commands/plugins.help.ts +2 -3
  314. package/src/cli/commands/plugins.ts +5 -5
  315. package/src/cli/commands/roadmap.help.ts +1 -1
  316. package/src/cli/commands/telemetry.help.ts +2 -2
  317. package/src/cli/commands/telemetry.ts +2 -2
  318. package/src/cli/commands/tts.help.ts +3 -3
  319. package/src/cli/commands/webhooks.help.ts +9 -9
  320. package/src/cli/commands/webhooks.ts +1 -1
  321. package/src/cli/lib/__tests__/inspect-plugin.test.ts +8 -8
  322. package/src/cli/lib/__tests__/{install-from-platform.test.ts → install-from-cloud.test.ts} +54 -54
  323. package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +18 -18
  324. package/src/cli/lib/__tests__/{plugin-catalog-platform.test.ts → plugin-catalog-cloud.test.ts} +2 -2
  325. package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +1 -1
  326. package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +9 -9
  327. package/src/cli/lib/__tests__/plugin-details.test.ts +10 -10
  328. package/src/cli/lib/__tests__/plugins-install-offline.test.ts +24 -24
  329. package/src/cli/lib/bundled-marketplace.json +1 -1
  330. package/src/cli/lib/inspect-plugin.ts +2 -2
  331. package/src/cli/lib/{install-from-platform.ts → install-from-cloud.ts} +29 -29
  332. package/src/cli/lib/install-from-github.ts +4 -4
  333. package/src/cli/lib/plugin-catalog-cache.ts +7 -7
  334. package/src/cli/lib/{plugin-catalog-platform.ts → plugin-catalog-cloud.ts} +6 -6
  335. package/src/cli/lib/plugin-catalog-local.ts +2 -2
  336. package/src/cli/lib/publish-plugin.ts +9 -10
  337. package/src/cli/lib/search-plugins.ts +2 -2
  338. package/src/{platform → cloud}/client.test.ts +85 -86
  339. package/src/{platform → cloud}/client.ts +38 -46
  340. package/src/{platform/platform-patch-queue.test.ts → cloud/cloud-patch-queue.test.ts} +6 -9
  341. package/src/{platform/platform-patch-queue.ts → cloud/cloud-patch-queue.ts} +11 -11
  342. package/src/{platform/managed-speech.test.ts → cloud/cloud-speech.test.ts} +19 -19
  343. package/src/{platform/managed-speech.ts → cloud/cloud-speech.ts} +41 -41
  344. package/src/{platform → cloud}/consent-cache.test.ts +5 -5
  345. package/src/{platform → cloud}/consent-cache.ts +8 -8
  346. package/src/cloud/feature-gate.ts +8 -0
  347. package/src/{platform → cloud}/sync-identity.test.ts +4 -4
  348. package/src/{platform → cloud}/sync-identity.ts +6 -6
  349. package/src/config/__tests__/{platform-identity.test.ts → cloud-identity.test.ts} +54 -56
  350. package/src/config/__tests__/{platform-rehydration.test.ts → cloud-rehydration.test.ts} +47 -80
  351. package/src/config/__tests__/default-profile-catalog.test.ts +12 -12
  352. package/src/config/__tests__/default-provider.test.ts +4 -4
  353. package/src/config/__tests__/deployment-context-defaults.test.ts +23 -23
  354. package/src/config/__tests__/{jev-managed-profile.test.ts → jev-cloud-profile.test.ts} +3 -5
  355. package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +2 -2
  356. package/src/config/__tests__/loader-last-known-good.test.ts +6 -6
  357. package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +2 -2
  358. package/src/config/__tests__/profile-materialization.test.ts +7 -7
  359. package/src/config/__tests__/seed-default-provider.test.ts +17 -17
  360. package/src/config/__tests__/sync-gated-profiles.test.ts +20 -20
  361. package/src/config/__tests__/webhook-routing.test.ts +51 -51
  362. package/src/config/bundled-skills/computer-use/TOOLS.json +12 -12
  363. package/src/config/bundled-skills/messaging/SKILL.md +8 -8
  364. package/src/config/bundled-skills/messaging/TOOLS.json +2 -2
  365. package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +1 -1
  366. package/src/config/bundled-skills/messaging/tools/shared.ts +1 -1
  367. package/src/config/bundled-skills/phone-calls/references/TROUBLESHOOTING.md +2 -2
  368. package/src/config/bundled-skills/settings/TOOLS.json +3 -3
  369. package/src/config/bundled-skills/settings/tools/shared.ts +1 -1
  370. package/src/config/bundled-skills/settings/tools/voice-config-update.ts +12 -12
  371. package/src/config/bundled-skills/skill-management/SKILL.md +3 -3
  372. package/src/config/bundled-skills/skill-management/TOOLS.json +8 -8
  373. package/src/config/bundled-skills/skill-management/tools/{delete-managed.ts → delete-cloud.ts} +2 -2
  374. package/src/config/bundled-skills/skill-management/tools/{scaffold-managed.ts → scaffold-cloud.ts} +2 -2
  375. package/src/config/call-site-defaults.ts +6 -6
  376. package/src/config/{platform-identity.ts → cloud-identity.ts} +39 -42
  377. package/src/config/cloud-rehydration.ts +35 -0
  378. package/src/config/{managed-speech-defaults.ts → cloud-speech-defaults.ts} +13 -13
  379. package/src/config/default-profile-catalog.ts +36 -38
  380. package/src/config/default-profile-names.ts +11 -11
  381. package/src/config/default-provider-resolution.ts +2 -2
  382. package/src/config/default-provider.ts +1 -1
  383. package/src/config/env-registry.ts +23 -21
  384. package/src/config/env.ts +33 -46
  385. package/src/config/feature-flag-registry.json +5 -5
  386. package/src/config/inference-profile-validation.ts +1 -1
  387. package/src/config/llm-resolver.ts +9 -10
  388. package/src/config/loader.ts +33 -17
  389. package/src/config/profile-materialization.ts +8 -8
  390. package/src/config/profile-text-generation.test.ts +1 -1
  391. package/src/config/sanitize-for-transfer.ts +1 -1
  392. package/src/config/schema.ts +6 -6
  393. package/src/config/schemas/__tests__/stt.test.ts +2 -2
  394. package/src/config/schemas/call-site-catalog.ts +1 -1
  395. package/src/config/schemas/channels.ts +8 -0
  396. package/src/config/schemas/{platform.ts → cloud.ts} +7 -6
  397. package/src/config/schemas/host-browser.ts +1 -0
  398. package/src/config/schemas/ingress.ts +1 -12
  399. package/src/config/schemas/llm.ts +45 -36
  400. package/src/config/schemas/memory-lifecycle.ts +11 -1
  401. package/src/config/schemas/services.ts +4 -4
  402. package/src/config/schemas/stt.ts +3 -3
  403. package/src/config/schemas/tts.ts +10 -5
  404. package/src/config/schemas/voice.ts +1 -1
  405. package/src/config/seed-inference-profiles.ts +19 -19
  406. package/src/config/skill-state.ts +2 -2
  407. package/src/config/skills.ts +4 -4
  408. package/src/config/sync-gated-profiles.ts +8 -8
  409. package/src/config/webhook-routing.ts +19 -19
  410. package/src/contacts/contacts-write.ts +1 -1
  411. package/src/credential-execution/ces-runtime.ts +6 -6
  412. package/src/credential-execution/{managed-catalog.ts → cloud-catalog.ts} +24 -24
  413. package/src/credential-execution/prompted-credential.ts +6 -18
  414. package/src/credential-health/credential-health-service.ts +61 -76
  415. package/src/daemon/__tests__/can-spawn-subagents.test.ts +1 -1
  416. package/src/daemon/__tests__/conversation-tool-setup-exclude.test.ts +4 -4
  417. package/src/daemon/config-watcher.ts +2 -2
  418. package/src/daemon/conversation-agent-loop.ts +9 -9
  419. package/src/daemon/conversation-error.ts +36 -36
  420. package/src/daemon/conversation-skill-tools.ts +7 -7
  421. package/src/daemon/conversation-surfaces.ts +1 -1
  422. package/src/daemon/conversation-tool-setup.ts +2 -2
  423. package/src/daemon/conversation-turn-finalize.ts +1 -1
  424. package/src/daemon/conversation-workspace.ts +1 -1
  425. package/src/daemon/conversation.ts +1 -1
  426. package/src/daemon/credential-transcript-scrub.ts +21 -35
  427. package/src/daemon/daemon-readiness.ts +1 -1
  428. package/src/daemon/event-loop-watchdog.ts +2 -2
  429. package/src/daemon/handlers/config-ingress.ts +9 -9
  430. package/src/daemon/handlers/config-telegram.ts +6 -6
  431. package/src/daemon/handlers/skills.ts +20 -20
  432. package/src/daemon/host-cu-proxy.ts +1 -1
  433. package/src/daemon/lifecycle.ts +19 -19
  434. package/src/daemon/parse-actual-tokens-from-error.ts +3 -3
  435. package/src/daemon/providers-setup.ts +6 -6
  436. package/src/daemon/resource-pressure-guard-lifecycle.ts +1 -1
  437. package/src/daemon/resource-pressure-guard.ts +6 -6
  438. package/src/daemon/shutdown-handlers.ts +1 -1
  439. package/src/daemon/sqlite-corruption-watchdog.ts +3 -3
  440. package/src/daemon/trust-context.ts +1 -1
  441. package/src/desktop/desktop-automation-lease.ts +1 -1
  442. package/src/desktop/desktop-browser-endpoint.ts +2 -4
  443. package/src/desktop/desktop-computer-use-routing.test.ts +6 -6
  444. package/src/desktop/desktop-stream-bridge.test.ts +4 -4
  445. package/src/desktop/desktop-stream-bridge.ts +1 -1
  446. package/src/desktop/{virtual-desktop-platform.test.ts → virtual-desktop-cloud.test.ts} +6 -6
  447. package/src/desktop/virtual-desktop-feature.ts +7 -7
  448. package/src/email/byo-email-credential.ts +1 -1
  449. package/src/email/registered-inbox.test.ts +16 -16
  450. package/src/email/registered-inbox.ts +20 -20
  451. package/src/heartbeat/heartbeat-service.ts +1 -1
  452. package/src/hooks/hook-loader.ts +2 -2
  453. package/src/inbound/__tests__/oauth-callback-url.test.ts +2 -2
  454. package/src/inbound/__tests__/tunnel-probe.test.ts +8 -8
  455. package/src/inbound/{platform-callback-registration.ts → cloud-callback-registration.ts} +49 -60
  456. package/src/inbound/oauth-callback-url.ts +6 -6
  457. package/src/inbound/pod-webhook-claim.ts +2 -2
  458. package/src/inbound/public-ingress-urls.ts +3 -3
  459. package/src/inbound/tunnel-probe.ts +21 -15
  460. package/src/inbound/tunnel-webhooks-gate.ts +3 -3
  461. package/src/ipc/__tests__/db-readiness-ipc-gate.test.ts +1 -1
  462. package/src/ipc/__tests__/email-ipc.test.ts +8 -8
  463. package/src/ipc/gateway-client.test.ts +55 -59
  464. package/src/ipc/gateway-flag-listener.ts +3 -3
  465. package/src/ipc/routes/db-proxy.ts +1 -1
  466. package/src/live-voice/__tests__/live-activity-reporter.test.ts +2 -2
  467. package/src/live-voice/__tests__/{live-voice-managed-speech-fallback.test.ts → live-voice-cloud-speech-fallback.test.ts} +15 -15
  468. package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +7 -7
  469. package/src/live-voice/__tests__/live-voice-stt.test.ts +1 -1
  470. package/src/live-voice/live-activity-reporter.ts +7 -7
  471. package/src/live-voice/live-voice-credential-preflight.ts +6 -6
  472. package/src/live-voice/live-voice-session.ts +3 -3
  473. package/src/live-voice/live-voice-tts.ts +1 -1
  474. package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +4 -4
  475. package/src/mcp/__tests__/mcp-oauth-provider.test.ts +1 -1
  476. package/src/mcp/mcp-oauth-provider.ts +2 -2
  477. package/src/media/gemini-image-service.ts +11 -13
  478. package/src/media/image-credentials.ts +9 -9
  479. package/src/media/openai-image-service.ts +1 -1
  480. package/src/media/types.ts +3 -3
  481. package/src/messaging/providers/channel-transport.ts +1 -1
  482. package/src/messaging/providers/discord/transport.ts +1 -1
  483. package/src/messaging/providers/gmail/adapter.ts +1 -1
  484. package/src/messaging/providers/gmail/client.ts +4 -4
  485. package/src/messaging/providers/outlook/adapter.ts +1 -1
  486. package/src/messaging/providers/slack/adapter.ts +1 -1
  487. package/src/messaging/providers/slack/transport.ts +1 -1
  488. package/src/messaging/providers/telegram-bot/transport.ts +1 -1
  489. package/src/monitoring/db-integrity-check.ts +1 -1
  490. package/src/monitoring/db-integrity-sample.ts +2 -2
  491. package/src/monitoring/mount-watch.ts +1 -1
  492. package/src/monitoring/oom-kill-reporter.ts +1 -1
  493. package/src/monitoring/worker.ts +5 -5
  494. package/src/notifications/README.md +2 -2
  495. package/src/notifications/__tests__/broadcaster.test.ts +9 -9
  496. package/src/notifications/__tests__/completion-policy.test.ts +1 -1
  497. package/src/notifications/__tests__/emit-signal-pipeline-failure.test.ts +4 -4
  498. package/src/notifications/activity-failed-dedupe.ts +1 -1
  499. package/src/notifications/adapters/{platform.ts → cloud.ts} +8 -8
  500. package/src/notifications/broadcaster.ts +10 -10
  501. package/src/notifications/decision-engine.ts +1 -1
  502. package/src/notifications/destination-resolver.ts +1 -1
  503. package/src/notifications/emit-signal.ts +6 -6
  504. package/src/notifications/types.ts +2 -2
  505. package/src/oauth/__tests__/identity-verifier.test.ts +1 -1
  506. package/src/oauth/__tests__/{seed-providers-managed.test.ts → seed-providers-cloud.test.ts} +13 -13
  507. package/src/oauth/byo-connection.test.ts +2 -2
  508. package/src/oauth/{platform-connection.test.ts → cloud-connection.test.ts} +41 -43
  509. package/src/oauth/{platform-connection.ts → cloud-connection.ts} +19 -19
  510. package/src/oauth/connection-resolver.test.ts +59 -61
  511. package/src/oauth/connection-resolver.ts +22 -22
  512. package/src/oauth/connection.ts +1 -1
  513. package/src/oauth/oauth-store.ts +8 -8
  514. package/src/oauth/provider-serializer.ts +4 -4
  515. package/src/oauth/revoke.ts +1 -1
  516. package/src/oauth/seed-providers.ts +32 -32
  517. package/src/permissions/approval-provenance.ts +1 -1
  518. package/src/permissions/checker.test.ts +18 -16
  519. package/src/permissions/checker.ts +3 -3
  520. package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
  521. package/src/persistence/embeddings/embedding-backend.test.ts +16 -16
  522. package/src/persistence/embeddings/embedding-backend.ts +13 -13
  523. package/src/persistence/embeddings/embedding-gemini.test.ts +9 -12
  524. package/src/persistence/embeddings/embedding-gemini.ts +11 -11
  525. package/src/persistence/embeddings/embedding-runtime-manager.ts +2 -2
  526. package/src/persistence/jobs-store.ts +1 -1
  527. package/src/persistence/lifecycle-events-store.ts +1 -1
  528. package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
  529. package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
  530. package/src/persistence/migrations/224-oauth-providers-managed-service-is-paid.ts +1 -1
  531. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
  532. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.ts +2 -2
  533. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
  534. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.ts +1 -1
  535. package/src/persistence/migrations/351-schedule-skill-script-handoff.ts +1 -1
  536. package/src/persistence/migrations/361-normalize-managed-connection-rows.test.ts +3 -3
  537. package/src/persistence/migrations/361-normalize-managed-connection-rows.ts +7 -7
  538. package/src/persistence/migrations/__tests__/319-remove-legacy-managed-connections.test.ts +2 -2
  539. package/src/persistence/schema/oauth.ts +1 -1
  540. package/src/plugin-api/index.ts +4 -4
  541. package/src/plugin-api/model-profiles.test.ts +1 -1
  542. package/src/plugin-api/model-profiles.ts +1 -1
  543. package/src/plugin-api/transcription-session.ts +1 -1
  544. package/src/plugin-api/vision-support.test.ts +1 -1
  545. package/src/plugin-api/webhook-url.ts +12 -12
  546. package/src/plugins/__tests__/source-fingerprint.test.ts +1 -1
  547. package/src/plugins/defaults/{platform-hosted → cloud-hosted}/__tests__/reengage.test.ts +5 -6
  548. package/src/plugins/defaults/cloud-hosted/package.json +14 -0
  549. package/src/plugins/defaults/{platform-hosted → cloud-hosted}/routes/reengage.ts +3 -3
  550. package/src/plugins/defaults/index.ts +6 -6
  551. package/src/plugins/defaults/main.ts +5 -5
  552. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +5 -5
  553. package/src/plugins/defaults/memory/__tests__/memory-retrospective-prompt.test.ts +1 -1
  554. package/src/plugins/defaults/memory/__tests__/memory-retrospective-provider-path.test.ts +1 -1
  555. package/src/plugins/defaults/memory/config.ts +4 -4
  556. package/src/plugins/defaults/memory/memory-retrospective-constants.ts +2 -2
  557. package/src/plugins/defaults/memory/memory-retrospective-job.ts +7 -7
  558. package/src/plugins/defaults/memory/memory-retrospective-prompt.ts +5 -5
  559. package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +2 -2
  560. package/src/plugins/defaults/memory/src/__tests__/memory-v2-routes.test.ts +1 -1
  561. package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
  562. package/src/plugins/defaults/memory/substrate/__tests__/boot-maintenance.test.ts +20 -20
  563. package/src/plugins/defaults/memory/substrate/__tests__/cli-command-store.test.ts +1 -1
  564. package/src/plugins/defaults/memory/substrate/__tests__/skill-store.test.ts +3 -3
  565. package/src/plugins/defaults/memory/substrate/boot-maintenance.ts +17 -17
  566. package/src/plugins/defaults/memory/substrate/cli-command-store.ts +2 -2
  567. package/src/plugins/defaults/memory/substrate/prompts/consolidation.ts +1 -1
  568. package/src/plugins/defaults/memory/substrate/skill-store.ts +4 -4
  569. package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +3 -3
  570. package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +2 -2
  571. package/src/plugins/defaults/memory/v3/maintain-job.ts +10 -10
  572. package/src/plugins/defaults/memory/v3/orchestrate.ts +3 -3
  573. package/src/plugins/defaults/memory/worker.ts +5 -5
  574. package/src/plugins/defaults/workspace/injectors.ts +2 -2
  575. package/src/plugins/mtime-cache.ts +1 -1
  576. package/src/plugins/source-versions.ts +1 -1
  577. package/src/plugins/types.ts +1 -1
  578. package/src/prompts/__tests__/system-prompt.test.ts +1 -1
  579. package/src/prompts/normalize-onboarding.ts +1 -1
  580. package/src/prompts/persona-resolver.ts +1 -1
  581. package/src/prompts/templates/system-sections.ts +3 -3
  582. package/src/providers/__tests__/cadet-connection-routing.test.ts +7 -7
  583. package/src/providers/__tests__/cadet-mismatch-routing.test.ts +12 -12
  584. package/src/providers/__tests__/connection-model-compat.test.ts +2 -2
  585. package/src/providers/__tests__/dispatch-connection-routing.test.ts +10 -10
  586. package/src/providers/__tests__/inference.test.ts +2 -2
  587. package/src/providers/__tests__/preflight-resolved-config.test.ts +16 -16
  588. package/src/providers/__tests__/retry-callsite.test.ts +1 -1
  589. package/src/providers/__tests__/satellite-connection-routing.test.ts +4 -4
  590. package/src/providers/__tests__/search-provider-catalog.test.ts +2 -2
  591. package/src/providers/__tests__/voice-error-copy.test.ts +3 -3
  592. package/src/providers/anthropic/client.ts +1 -1
  593. package/src/providers/cadet/client.ts +1 -1
  594. package/src/providers/cadet-model-routing.test.ts +19 -19
  595. package/src/providers/cadet-model-routing.ts +23 -23
  596. package/src/providers/call-site-routing.ts +10 -10
  597. package/src/providers/{platform-proxy → cloud-proxy}/constants.ts +11 -11
  598. package/src/providers/{platform-proxy → cloud-proxy}/context.ts +26 -26
  599. package/src/providers/connection-resolution.ts +43 -43
  600. package/src/providers/fallback-breaker.ts +2 -2
  601. package/src/providers/fetch-provider-catalog.ts +3 -3
  602. package/src/providers/gemini/client.ts +5 -5
  603. package/src/providers/inference/__tests__/adapter-factory-openai-compatible.test.ts +3 -3
  604. package/src/providers/inference/__tests__/base-url-route-validation.test.ts +8 -8
  605. package/src/providers/inference/__tests__/base-url-security.test.ts +4 -4
  606. package/src/providers/inference/adapter-factory.ts +35 -35
  607. package/src/providers/inference/auth.ts +10 -10
  608. package/src/providers/inference/backfill.ts +11 -11
  609. package/src/providers/inference/connection-availability.ts +24 -24
  610. package/src/providers/inference/connections.ts +18 -20
  611. package/src/providers/inference/profile-probe.ts +4 -4
  612. package/src/providers/inference/resolve-auth.ts +8 -8
  613. package/src/providers/jev/ask.test.ts +1 -1
  614. package/src/providers/jev/ask.ts +2 -2
  615. package/src/providers/model-catalog.ts +8 -9
  616. package/src/providers/openai/__tests__/api-error-normalization.test.ts +3 -3
  617. package/src/providers/openai/api-error-normalization.ts +2 -2
  618. package/src/providers/provider-availability.ts +4 -4
  619. package/src/providers/provider-env-vars.ts +1 -1
  620. package/src/providers/provider-secret-catalog.ts +1 -1
  621. package/src/providers/registry.ts +20 -20
  622. package/src/providers/retry.ts +26 -26
  623. package/src/providers/routing-identity.ts +10 -10
  624. package/src/providers/search-provider-catalog.ts +2 -2
  625. package/src/providers/speech-to-text/__tests__/{cadet-managed-realtime.test.ts → cadet-cloud-realtime.test.ts} +3 -3
  626. package/src/providers/speech-to-text/__tests__/{cadet-managed.test.ts → cadet-cloud.test.ts} +35 -35
  627. package/src/providers/speech-to-text/__tests__/deepgram-flux-realtime.test.ts +1 -1
  628. package/src/providers/speech-to-text/__tests__/resolve.test.ts +27 -27
  629. package/src/providers/speech-to-text/{cadet-managed-flux-realtime.ts → cadet-cloud-flux-realtime.ts} +6 -8
  630. package/src/providers/speech-to-text/{cadet-managed-realtime.ts → cadet-cloud-realtime.ts} +3 -3
  631. package/src/providers/speech-to-text/{cadet-managed.ts → cadet-cloud.ts} +18 -20
  632. package/src/providers/speech-to-text/cadet-speech-relay-connection.ts +7 -7
  633. package/src/providers/speech-to-text/deepgram-flux-frames.ts +3 -3
  634. package/src/providers/speech-to-text/deepgram-flux-realtime.ts +4 -4
  635. package/src/providers/speech-to-text/provider-catalog.ts +3 -3
  636. package/src/providers/speech-to-text/resolve.ts +26 -28
  637. package/src/providers/together/client.ts +1 -1
  638. package/src/providers/types.ts +4 -4
  639. package/src/providers/voice-error-copy.ts +1 -1
  640. package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +10 -10
  641. package/src/runtime/agent-wake.ts +1 -1
  642. package/src/runtime/auth/__tests__/middleware.test.ts +1 -1
  643. package/src/runtime/auth/middleware.ts +1 -1
  644. package/src/runtime/auth/scopes.ts +1 -1
  645. package/src/runtime/capabilities.ts +1 -1
  646. package/src/runtime/channel-invite-transports/discord.ts +1 -1
  647. package/src/runtime/channel-invite-transports/email.ts +2 -2
  648. package/src/runtime/channel-readiness-service.ts +15 -13
  649. package/src/runtime/channel-reply-session.test.ts +1 -1
  650. package/src/runtime/channel-reply-session.ts +1 -1
  651. package/src/runtime/http-server.ts +4 -4
  652. package/src/runtime/introduction-policy.ts +4 -4
  653. package/src/runtime/migrations/__tests__/origin-mode.test.ts +14 -14
  654. package/src/runtime/migrations/__tests__/v1-test-helpers.ts +1 -1
  655. package/src/runtime/migrations/__tests__/vbundle-import-version-compat.test.ts +2 -2
  656. package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +3 -4
  657. package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +6 -7
  658. package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +1 -1
  659. package/src/runtime/migrations/migration-transport.ts +3 -3
  660. package/src/runtime/migrations/origin-mode.ts +6 -9
  661. package/src/runtime/migrations/vbundle-import-policy.ts +2 -2
  662. package/src/runtime/migrations/vbundle-importer.ts +4 -4
  663. package/src/runtime/migrations/vbundle-streaming-importer.ts +6 -6
  664. package/src/runtime/migrations/vbundle-validator.ts +1 -1
  665. package/src/runtime/routes/__tests__/{platform-credits-routes.test.ts → cloud-credits-routes.test.ts} +9 -9
  666. package/src/runtime/routes/__tests__/{platform-invoice-routes.test.ts → cloud-invoice-routes.test.ts} +13 -13
  667. package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +1 -1
  668. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +26 -25
  669. package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +5 -5
  670. package/src/runtime/routes/__tests__/default-provider-routes.test.ts +10 -10
  671. package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +18 -18
  672. package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +18 -16
  673. package/src/runtime/routes/__tests__/inference-send-routes.test.ts +1 -1
  674. package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
  675. package/src/runtime/routes/__tests__/migration-cadet-metadata-reconcile.test.ts +5 -20
  676. package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +19 -22
  677. package/src/runtime/routes/__tests__/oauth-proxy-routes.test.ts +27 -27
  678. package/src/runtime/routes/__tests__/plugins-routes.test.ts +5 -5
  679. package/src/runtime/routes/__tests__/ps-routes.test.ts +5 -3
  680. package/src/runtime/routes/__tests__/roadmap-routes.test.ts +15 -15
  681. package/src/runtime/routes/__tests__/webhook-routes.test.ts +31 -31
  682. package/src/runtime/routes/app-management-routes.ts +1 -1
  683. package/src/runtime/routes/attachment-routes.ts +1 -1
  684. package/src/runtime/routes/auth-routes.ts +14 -14
  685. package/src/runtime/routes/avatar-routes.ts +0 -14
  686. package/src/runtime/routes/background-wake-routes.ts +4 -4
  687. package/src/runtime/routes/channel-availability-routes.ts +4 -4
  688. package/src/runtime/routes/client-routes.ts +5 -5
  689. package/src/runtime/routes/cloud-credentials.ts +45 -0
  690. package/src/runtime/routes/{platform-routes.ts → cloud-routes.ts} +83 -116
  691. package/src/runtime/routes/conversation-compaction-routes.ts +1 -1
  692. package/src/runtime/routes/conversation-query-routes.ts +82 -282
  693. package/src/runtime/routes/credential-routes.ts +28 -30
  694. package/src/runtime/routes/default-provider-routes.ts +1 -1
  695. package/src/runtime/routes/desktop-setup-routes.test.ts +5 -5
  696. package/src/runtime/routes/desktop-setup-routes.ts +1 -1
  697. package/src/runtime/routes/domain-routes.ts +15 -21
  698. package/src/runtime/routes/email-routes.ts +13 -13
  699. package/src/runtime/routes/errors.ts +1 -1
  700. package/src/runtime/routes/gateway-status-routes.ts +1 -1
  701. package/src/runtime/routes/identity-routes.ts +3 -3
  702. package/src/runtime/routes/inbound-message-handler.ts +1 -1
  703. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +1 -1
  704. package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +1 -1
  705. package/src/runtime/routes/index.ts +1 -1
  706. package/src/runtime/routes/inference-profile-availability-guard.ts +5 -5
  707. package/src/runtime/routes/inference-profiles-routes.ts +11 -11
  708. package/src/runtime/routes/inference-provider-connection-routes.ts +24 -24
  709. package/src/runtime/routes/ingress-status-routes.ts +1 -1
  710. package/src/runtime/routes/integrations/a2a.ts +2 -2
  711. package/src/runtime/routes/integrations/twilio.ts +21 -35
  712. package/src/runtime/routes/internal-telemetry-routes.ts +2 -2
  713. package/src/runtime/routes/live-voice-routes.test.ts +4 -4
  714. package/src/runtime/routes/live-voice-routes.ts +6 -6
  715. package/src/runtime/routes/migration-routes.ts +34 -40
  716. package/src/runtime/routes/oauth-commands-routes.ts +31 -31
  717. package/src/runtime/routes/oauth-providers.ts +5 -5
  718. package/src/runtime/routes/oauth-proxy-passthrough.test.ts +1 -1
  719. package/src/runtime/routes/oauth-proxy-passthrough.ts +8 -8
  720. package/src/runtime/routes/oauth-proxy-routes.ts +15 -17
  721. package/src/runtime/routes/oauth-request-hints.test.ts +1 -1
  722. package/src/runtime/routes/oauth-request-hints.ts +1 -1
  723. package/src/runtime/routes/plugins-routes.ts +9 -9
  724. package/src/runtime/routes/profiler-routes.ts +1 -1
  725. package/src/runtime/routes/ps-routes.ts +4 -0
  726. package/src/runtime/routes/roadmap-routes.ts +18 -20
  727. package/src/runtime/routes/secret-routes.ts +29 -55
  728. package/src/runtime/routes/settings-routes.ts +18 -23
  729. package/src/runtime/routes/telemetry-routes.ts +4 -4
  730. package/src/runtime/routes/tts-routes.ts +4 -4
  731. package/src/runtime/routes/user-route-resolution.ts +1 -1
  732. package/src/runtime/routes/webhook-routes.ts +18 -18
  733. package/src/runtime/routes/workflow-routes.ts +5 -5
  734. package/src/runtime/sync/resource-sync-events.ts +2 -2
  735. package/src/runtime/verification-outbound-actions.ts +4 -4
  736. package/src/schedule/integration-status.ts +6 -6
  737. package/src/schedule/run-script.ts +1 -1
  738. package/src/schedule/schedule-timezone.ts +1 -1
  739. package/src/schedule/worker.ts +5 -5
  740. package/src/security/auth-fallback-events-store.ts +1 -1
  741. package/src/security/oauth2.ts +4 -4
  742. package/src/skills/available-skills.ts +4 -4
  743. package/src/skills/catalog-files.ts +8 -8
  744. package/src/skills/catalog-install.ts +12 -12
  745. package/src/skills/categories-cache.ts +3 -3
  746. package/src/skills/clawhub.ts +1 -1
  747. package/src/skills/{platform-compatibility.test.ts → cloud-compatibility.test.ts} +7 -7
  748. package/src/skills/{platform-compatibility.ts → cloud-compatibility.ts} +2 -4
  749. package/src/skills/{managed-store.ts → cloud-store.ts} +21 -23
  750. package/src/skills/inline-command-runner.ts +1 -1
  751. package/src/skills/install-meta.ts +1 -1
  752. package/src/skills/path-classifier.ts +4 -4
  753. package/src/skills/skill-history.ts +4 -4
  754. package/src/skills/skillssh-registry.ts +1 -1
  755. package/src/stt/__tests__/daemon-batch-transcriber.test.ts +1 -1
  756. package/src/stt/daemon-batch-transcriber.ts +7 -7
  757. package/src/stt/types.ts +3 -3
  758. package/src/subagent/manager.ts +15 -15
  759. package/src/subagent/types.ts +1 -1
  760. package/src/telegram/__tests__/webhook-health.test.ts +16 -16
  761. package/src/telegram/webhook-health.ts +10 -10
  762. package/src/telemetry/__tests__/config-setting-events-store.test.ts +1 -1
  763. package/src/telemetry/__tests__/outbox-test-harness.ts +2 -2
  764. package/src/telemetry/config-setting-events-store.ts +1 -1
  765. package/src/telemetry/config-setting-snapshot.ts +1 -1
  766. package/src/telemetry/memory-corpus-size.ts +1 -1
  767. package/src/telemetry/memory-tier-reporter.test.ts +2 -2
  768. package/src/telemetry/memory-tier-reporter.ts +3 -3
  769. package/src/telemetry/telemetry-event-sources.test.ts +2 -2
  770. package/src/telemetry/telemetry-event-sources.ts +9 -9
  771. package/src/telemetry/telemetry-events-outbox.ts +2 -2
  772. package/src/telemetry/telemetry-wire-validation.test.ts +1 -1
  773. package/src/telemetry/telemetry-wire-validation.ts +3 -3
  774. package/src/telemetry/telemetry-wire.generated.ts +1 -1
  775. package/src/telemetry/tool-audit.ts +1 -1
  776. package/src/telemetry/tool-executed-events-store.test.ts +1 -1
  777. package/src/telemetry/trace-collection-policy.ts +4 -4
  778. package/src/telemetry/turn-events-store.ts +1 -1
  779. package/src/telemetry/turn-outcome.ts +1 -1
  780. package/src/telemetry/turn-trace-store.ts +2 -2
  781. package/src/telemetry/types.test.ts +1 -1
  782. package/src/telemetry/types.ts +19 -19
  783. package/src/telemetry/usage-telemetry-reporter.test.ts +42 -42
  784. package/src/telemetry/usage-telemetry-reporter.ts +17 -17
  785. package/src/telemetry/watchdog-direct-emit.test.ts +9 -9
  786. package/src/telemetry/watchdog-direct-emit.ts +10 -10
  787. package/src/tools/__tests__/side-effect-abort-guard.test.ts +2 -2
  788. package/src/tools/browser/cdp-client/factory.ts +1 -1
  789. package/src/tools/computer-use/target.ts +2 -2
  790. package/src/tools/credentials/store.ts +6 -15
  791. package/src/tools/network/__tests__/{managed-search-proxy.test.ts → cloud-search-proxy.test.ts} +20 -20
  792. package/src/tools/network/__tests__/web-search.test.ts +14 -14
  793. package/src/tools/network/{managed-search-proxy.ts → cloud-search-proxy.ts} +13 -13
  794. package/src/tools/network/web-search.ts +9 -9
  795. package/src/tools/permission-checker.ts +2 -2
  796. package/src/tools/shared/input-misuse.ts +1 -1
  797. package/src/tools/shared/input-repairs.ts +4 -4
  798. package/src/tools/skills/{delete-managed.ts → delete-cloud.ts} +4 -4
  799. package/src/tools/skills/find-similar-skills.test.ts +7 -7
  800. package/src/tools/skills/find-similar-skills.ts +15 -15
  801. package/src/tools/skills/load.ts +6 -6
  802. package/src/tools/skills/{scaffold-managed.ts → scaffold-cloud.ts} +16 -16
  803. package/src/tools/skills/skill-script-runner.ts +2 -2
  804. package/src/tools/terminal/safe-env.ts +3 -3
  805. package/src/tools/tool-types.ts +2 -2
  806. package/src/tools/types.ts +2 -2
  807. package/src/tools/ui-surface/surface-shape-docs.ts +2 -2
  808. package/src/tools/workflows/manage-workflows.ts +1 -1
  809. package/src/tools/workspace-tools/loader.ts +1 -1
  810. package/src/tts/__tests__/cadet-provider.test.ts +5 -5
  811. package/src/tts/provider-catalog.ts +1 -1
  812. package/src/tts/providers/cadet-provider.ts +23 -23
  813. package/src/tts/providers/cadet-tts-socket.ts +2 -2
  814. package/src/tts/tts-config-resolver.ts +1 -1
  815. package/src/tts/tts-voice-field.ts +3 -3
  816. package/src/usage/subagent-attribution.ts +1 -1
  817. package/src/util/__tests__/process-table.test.ts +47 -0
  818. package/src/util/canonicalize-identity.ts +1 -1
  819. package/src/util/cgroup-cpu.ts +5 -5
  820. package/src/util/cgroup-memory.ts +2 -2
  821. package/src/util/container-cpu-sampler.ts +4 -4
  822. package/src/util/disk-usage.ts +4 -4
  823. package/src/util/errors.ts +3 -3
  824. package/src/util/oom-priority.ts +1 -1
  825. package/src/util/platform.ts +5 -5
  826. package/src/util/process-table.ts +39 -5
  827. package/src/util/provider-error-patterns.ts +2 -2
  828. package/src/watch/__tests__/watch-retro.test.ts +2 -2
  829. package/src/watch/watch-retro.ts +1 -1
  830. package/src/watcher/__tests__/telemetry.test.ts +2 -2
  831. package/src/watcher/telemetry.ts +1 -1
  832. package/src/windows-compiled-cli.ts +1 -1
  833. package/src/workspace/adaptive-thinking-repair.ts +4 -4
  834. package/src/workspace/byok-default-profile-ensure.ts +7 -7
  835. package/src/workspace/git-service.ts +2 -2
  836. package/src/workspace/migrations/006-services-config.ts +1 -1
  837. package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
  838. package/src/workspace/migrations/052-seed-default-inference-profiles.ts +1 -1
  839. package/src/workspace/migrations/063-release-notes-dynamic-model-context.ts +1 -1
  840. package/src/workspace/migrations/066-seed-heartbeat-callsite-cost-default.ts +1 -1
  841. package/src/workspace/migrations/082-backfill-managed-profile-labels.ts +4 -4
  842. package/src/workspace/migrations/087-memory-router-balanced-profile.ts +3 -3
  843. package/src/workspace/migrations/090-memory-router-cost-optimized-profile.ts +4 -4
  844. package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +5 -5
  845. package/src/workspace/migrations/100-upgrade-quality-profile-to-fable-5.ts +4 -4
  846. package/src/workspace/migrations/101-upgrade-balanced-economy-to-minimax-m3.ts +4 -4
  847. package/src/workspace/migrations/103-upgrade-quality-profile-to-opus-4-8.ts +5 -5
  848. package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +1 -1
  849. package/src/workspace/migrations/106-drop-collect-usage-data.ts +1 -1
  850. package/src/workspace/migrations/108-drop-balanced-economy-profile.ts +4 -4
  851. package/src/workspace/migrations/109-swap-quality-profile-to-glm-5p2.ts +11 -11
  852. package/src/workspace/migrations/110-flip-balanced-profile-to-together.ts +6 -6
  853. package/src/workspace/migrations/113-swap-balanced-profile-to-glm-5p2.ts +5 -5
  854. package/src/workspace/migrations/114-swap-quality-profile-to-opus.ts +4 -4
  855. package/src/workspace/migrations/115-drop-frontier-profile.ts +5 -5
  856. package/src/workspace/migrations/123-swap-quality-profile-to-fable.ts +5 -5
  857. package/src/workspace/migrations/125-repoint-managed-connections-to-cadet.ts +3 -3
  858. package/src/workspace/migrations/126-strip-managed-profile-bodies.ts +2 -2
  859. package/src/workspace/migrations/127-backfill-default-provider.ts +4 -4
  860. package/src/workspace/migrations/130-speech-mode-to-provider.ts +4 -4
  861. package/src/workspace/migrations/131-drop-web-fetch-mode.ts +1 -1
  862. package/src/workspace/migrations/132-web-search-mode-to-provider.ts +6 -6
  863. package/src/workspace/migrations/133-collapse-provider-connections.ts +3 -3
  864. package/src/workspace/migrations/134-image-generation-mode-to-provider.ts +4 -4
  865. package/src/workspace/migrations/136-repair-stale-fireworks-kimi-model-id.ts +2 -2
  866. package/src/workspace/migrations/137-repair-retired-fireworks-minimax-model-id.ts +2 -2
  867. package/src/workspace/migrations/139-clear-renamed-cost-profile-label.ts +2 -2
  868. package/src/workspace/migrations/141-stt-english-default-to-multilingual.ts +4 -4
  869. package/src/workspace/migrations/144-convert-stranded-subscription-openai-profiles.ts +1 -1
  870. package/src/workspace/migrations/145-collapse-profile-bindings-to-entries.ts +2 -2
  871. package/src/workspace/migrations/146-repair-retired-fireworks-deepseek-flash-model-id.ts +2 -2
  872. package/src/workspace/migrations/148-strip-unsupported-fallback-profiles.ts +2 -2
  873. package/src/workspace/migrations/150-stt-flux-provider-to-model-family.ts +1 -1
  874. package/src/workspace/migrations/151-repair-renamed-fireworks-deepseek-pro-model-id.ts +2 -2
  875. package/src/workspace/migrations/152-repair-retired-fireworks-minimax-m2p7-model-id.ts +2 -2
  876. package/src/workspace/migrations/159-rename-colliding-jev-profile-name.ts +2 -2
  877. package/src/workspace/migrations/160-repair-retired-fireworks-model-ids.ts +2 -2
  878. package/src/workspace/migrations/161-repair-retired-fireworks-glm-5p2-model-id.ts +2 -2
  879. package/src/workspace/migrations/__tests__/141-stt-english-default-to-multilingual.test.ts +1 -1
  880. package/src/workspace/migrations/__tests__/150-stt-flux-provider-to-model-family.test.ts +1 -1
  881. package/src/workspace/migrations/registry.ts +6 -6
  882. package/src/workspace/top-level-renderer.ts +1 -1
  883. package/src/workspace/turn-commit.ts +2 -2
  884. package/src/__tests__/config-loader-platform-defaults.test.ts +0 -606
  885. package/src/__tests__/mock-gateway-ipc.ts +0 -260
  886. package/src/api/events/platform-disconnected.ts +0 -21
  887. package/src/config/platform-rehydration.ts +0 -60
  888. package/src/platform/feature-gate.ts +0 -8
  889. package/src/plugins/defaults/platform-hosted/package.json +0 -14
  890. package/src/runtime/routes/platform-managed-credentials.ts +0 -50
  891. /package/src/__tests__/{gateway-client-managed-outbound.test.ts → gateway-client-cloud-outbound.test.ts} +0 -0
  892. /package/src/__tests__/{secure-keys-managed-failover.test.ts → secure-keys-cloud-failover.test.ts} +0 -0
@@ -17,11 +17,11 @@ const TEST_DIR = process.env.CADET_WORKSPACE_DIR!;
17
17
  import { loadSkillCatalog } from "../config/skills.js";
18
18
  import {
19
19
  buildSkillMarkdown,
20
- createManagedSkill,
21
- deleteManagedSkill,
20
+ createCloudSkill,
21
+ deleteCloudSkill,
22
+ validateCloudSkillId,
22
23
  validateCompanionPath,
23
- validateManagedSkillId,
24
- } from "../skills/managed-store.js";
24
+ } from "../skills/cloud-store.js";
25
25
 
26
26
  beforeEach(() => {
27
27
  mkdirSync(join(TEST_DIR, "skills"), { recursive: true });
@@ -48,31 +48,31 @@ function readInstallMetaFile(skillId: string): TestInstallMeta {
48
48
  );
49
49
  }
50
50
 
51
- describe("validateManagedSkillId", () => {
51
+ describe("validateCloudSkillId", () => {
52
52
  test("accepts valid slug IDs", () => {
53
- expect(validateManagedSkillId("my-skill")).toBeNull();
54
- expect(validateManagedSkillId("skill123")).toBeNull();
55
- expect(validateManagedSkillId("my.skill")).toBeNull();
56
- expect(validateManagedSkillId("my_skill")).toBeNull();
53
+ expect(validateCloudSkillId("my-skill")).toBeNull();
54
+ expect(validateCloudSkillId("skill123")).toBeNull();
55
+ expect(validateCloudSkillId("my.skill")).toBeNull();
56
+ expect(validateCloudSkillId("my_skill")).toBeNull();
57
57
  });
58
58
 
59
59
  test("rejects empty string", () => {
60
- expect(validateManagedSkillId("")).not.toBeNull();
60
+ expect(validateCloudSkillId("")).not.toBeNull();
61
61
  });
62
62
 
63
63
  test("rejects traversal patterns", () => {
64
- expect(validateManagedSkillId("../escape")).not.toBeNull();
65
- expect(validateManagedSkillId("foo/bar")).not.toBeNull();
66
- expect(validateManagedSkillId("foo\\bar")).not.toBeNull();
64
+ expect(validateCloudSkillId("../escape")).not.toBeNull();
65
+ expect(validateCloudSkillId("foo/bar")).not.toBeNull();
66
+ expect(validateCloudSkillId("foo\\bar")).not.toBeNull();
67
67
  });
68
68
 
69
69
  test("rejects uppercase", () => {
70
- expect(validateManagedSkillId("MySkill")).not.toBeNull();
70
+ expect(validateCloudSkillId("MySkill")).not.toBeNull();
71
71
  });
72
72
 
73
73
  test("rejects IDs starting with special chars", () => {
74
- expect(validateManagedSkillId(".hidden")).not.toBeNull();
75
- expect(validateManagedSkillId("-dash")).not.toBeNull();
74
+ expect(validateCloudSkillId(".hidden")).not.toBeNull();
75
+ expect(validateCloudSkillId("-dash")).not.toBeNull();
76
76
  });
77
77
  });
78
78
 
@@ -134,7 +134,7 @@ describe("buildSkillMarkdown", () => {
134
134
 
135
135
  test("round-trips special characters through write and load", () => {
136
136
  // Write a skill with special chars in name/description
137
- createManagedSkill({
137
+ createCloudSkill({
138
138
  id: "roundtrip-test",
139
139
  name: 'Say "hello" & back\\slash',
140
140
  description: "Line1\nLine2\r\nLine3",
@@ -152,7 +152,7 @@ describe("buildSkillMarkdown", () => {
152
152
  test("round-trips backslash-n literal (not a newline) correctly", () => {
153
153
  // A name containing a literal backslash followed by 'n' (not a newline)
154
154
  const nameWithBackslashN = "path\\name";
155
- createManagedSkill({
155
+ createCloudSkill({
156
156
  id: "backslash-n-test",
157
157
  name: nameWithBackslashN,
158
158
  description: "test",
@@ -249,7 +249,7 @@ describe("buildSkillMarkdown", () => {
249
249
  });
250
250
 
251
251
  test("includes round-trips through write and catalog load", () => {
252
- createManagedSkill({
252
+ createCloudSkill({
253
253
  id: "roundtrip-includes",
254
254
  name: "Roundtrip",
255
255
  description: "Test roundtrip",
@@ -283,9 +283,9 @@ describe("buildSkillMarkdown", () => {
283
283
  });
284
284
  });
285
285
 
286
- describe("createManagedSkill", () => {
286
+ describe("createCloudSkill", () => {
287
287
  test("creates skill and writes to expected path", () => {
288
- const result = createManagedSkill({
288
+ const result = createCloudSkill({
289
289
  id: "test-skill",
290
290
  name: "Test Skill",
291
291
  description: "A test skill",
@@ -302,14 +302,14 @@ describe("createManagedSkill", () => {
302
302
  });
303
303
 
304
304
  test("rejects duplicate unless overwrite=true", () => {
305
- createManagedSkill({
305
+ createCloudSkill({
306
306
  id: "dupe",
307
307
  name: "Original",
308
308
  description: "First version",
309
309
  bodyMarkdown: "V1.",
310
310
  });
311
311
 
312
- const result2 = createManagedSkill({
312
+ const result2 = createCloudSkill({
313
313
  id: "dupe",
314
314
  name: "Duplicate",
315
315
  description: "Second version",
@@ -318,7 +318,7 @@ describe("createManagedSkill", () => {
318
318
  expect(result2.created).toBe(false);
319
319
  expect(result2.error).toContain("already exists");
320
320
 
321
- const result3 = createManagedSkill({
321
+ const result3 = createCloudSkill({
322
322
  id: "dupe",
323
323
  name: "Overwritten",
324
324
  description: "Third version",
@@ -331,7 +331,7 @@ describe("createManagedSkill", () => {
331
331
  });
332
332
 
333
333
  test("an overwrite keeps the frontmatter the call omits and replaces the body", () => {
334
- createManagedSkill({
334
+ createCloudSkill({
335
335
  id: "kept",
336
336
  name: "Kept",
337
337
  description: "V1",
@@ -343,7 +343,7 @@ describe("createManagedSkill", () => {
343
343
  category: "productivity",
344
344
  });
345
345
 
346
- const result = createManagedSkill({
346
+ const result = createCloudSkill({
347
347
  id: "kept",
348
348
  name: "Kept",
349
349
  description: "V2",
@@ -388,7 +388,7 @@ describe("createManagedSkill", () => {
388
388
  ].join("\n"),
389
389
  );
390
390
 
391
- const result = createManagedSkill({
391
+ const result = createCloudSkill({
392
392
  id: "hand-edited",
393
393
  name: "Hand Edited",
394
394
  description: "V2",
@@ -416,7 +416,7 @@ describe("createManagedSkill", () => {
416
416
  });
417
417
 
418
418
  test("an overwrite replaces a field it passes and clears one passed empty", () => {
419
- createManagedSkill({
419
+ createCloudSkill({
420
420
  id: "patched",
421
421
  name: "Patched",
422
422
  description: "V1",
@@ -428,7 +428,7 @@ describe("createManagedSkill", () => {
428
428
  category: "productivity",
429
429
  });
430
430
 
431
- createManagedSkill({
431
+ createCloudSkill({
432
432
  id: "patched",
433
433
  name: "Patched",
434
434
  description: "V2",
@@ -452,7 +452,7 @@ describe("createManagedSkill", () => {
452
452
  });
453
453
 
454
454
  test("writes category to frontmatter and round-trips through catalog load", () => {
455
- createManagedSkill({
455
+ createCloudSkill({
456
456
  id: "categorized-skill",
457
457
  name: "Categorized",
458
458
  description: "Has a category",
@@ -473,7 +473,7 @@ describe("createManagedSkill", () => {
473
473
  });
474
474
 
475
475
  test("leaves category unset when omitted", () => {
476
- createManagedSkill({
476
+ createCloudSkill({
477
477
  id: "no-category",
478
478
  name: "No Category",
479
479
  description: "Uncategorized",
@@ -487,7 +487,7 @@ describe("createManagedSkill", () => {
487
487
  });
488
488
 
489
489
  test("rejects invalid IDs", () => {
490
- const result = createManagedSkill({
490
+ const result = createCloudSkill({
491
491
  id: "../escape",
492
492
  name: "Bad",
493
493
  description: "Bad",
@@ -498,7 +498,7 @@ describe("createManagedSkill", () => {
498
498
  });
499
499
 
500
500
  test("rejects empty name", () => {
501
- const result = createManagedSkill({
501
+ const result = createCloudSkill({
502
502
  id: "no-name",
503
503
  name: "",
504
504
  description: "Has desc",
@@ -509,7 +509,7 @@ describe("createManagedSkill", () => {
509
509
  });
510
510
 
511
511
  test("rejects whitespace-only name", () => {
512
- const result = createManagedSkill({
512
+ const result = createCloudSkill({
513
513
  id: "blank-name",
514
514
  name: " ",
515
515
  description: "Has desc",
@@ -520,7 +520,7 @@ describe("createManagedSkill", () => {
520
520
  });
521
521
 
522
522
  test("rejects empty description", () => {
523
- const result = createManagedSkill({
523
+ const result = createCloudSkill({
524
524
  id: "no-desc",
525
525
  name: "Has Name",
526
526
  description: "",
@@ -531,7 +531,7 @@ describe("createManagedSkill", () => {
531
531
  });
532
532
 
533
533
  test("does not create SKILLS.md and is discovered through SKILL.md directory", () => {
534
- createManagedSkill({
534
+ createCloudSkill({
535
535
  id: "discovered-skill",
536
536
  name: "Discovered",
537
537
  description: "Found by directory discovery",
@@ -637,9 +637,9 @@ describe("validateCompanionPath", () => {
637
637
  });
638
638
  });
639
639
 
640
- describe("createManagedSkill companion files", () => {
640
+ describe("createCloudSkill companion files", () => {
641
641
  test("writes companion files under the skill dir and round-trips on disk", () => {
642
- const result = createManagedSkill({
642
+ const result = createCloudSkill({
643
643
  id: "with-files",
644
644
  name: "With Files",
645
645
  description: "Has companion files",
@@ -667,7 +667,7 @@ describe("createManagedSkill companion files", () => {
667
667
  });
668
668
 
669
669
  test("rejects a companion path colliding with an existing directory on overwrite, leaving SKILL.md intact", () => {
670
- const first = createManagedSkill({
670
+ const first = createCloudSkill({
671
671
  id: "dir-collide",
672
672
  name: "Dir Collide",
673
673
  description: "v1",
@@ -679,7 +679,7 @@ describe("createManagedSkill companion files", () => {
679
679
  const before = readFileSync(skillMd, "utf-8");
680
680
 
681
681
  // Overwrite with a companion path that names the existing references/ dir.
682
- const second = createManagedSkill({
682
+ const second = createCloudSkill({
683
683
  id: "dir-collide",
684
684
  name: "Dir Collide",
685
685
  description: "v2",
@@ -695,7 +695,7 @@ describe("createManagedSkill companion files", () => {
695
695
  });
696
696
 
697
697
  test("rejects path traversal and writes nothing", () => {
698
- const result = createManagedSkill({
698
+ const result = createCloudSkill({
699
699
  id: "traversal",
700
700
  name: "Traversal",
701
701
  description: "Bad companion path",
@@ -713,7 +713,7 @@ describe("createManagedSkill companion files", () => {
713
713
  });
714
714
 
715
715
  test("rejects absolute companion paths and writes nothing", () => {
716
- const result = createManagedSkill({
716
+ const result = createCloudSkill({
717
717
  id: "abs-path",
718
718
  name: "Absolute",
719
719
  description: "Absolute companion path",
@@ -729,7 +729,7 @@ describe("createManagedSkill companion files", () => {
729
729
  });
730
730
 
731
731
  test("rejects a path resolving outside the skill dir and writes nothing", () => {
732
- const result = createManagedSkill({
732
+ const result = createCloudSkill({
733
733
  id: "outside",
734
734
  name: "Outside",
735
735
  description: "Resolves outside",
@@ -752,14 +752,14 @@ describe("createManagedSkill companion files", () => {
752
752
  });
753
753
 
754
754
  test("does not write companion files when create errors on an existing skill", () => {
755
- createManagedSkill({
755
+ createCloudSkill({
756
756
  id: "exists-files",
757
757
  name: "Exists",
758
758
  description: "Already here",
759
759
  bodyMarkdown: "Body.",
760
760
  });
761
761
 
762
- const result = createManagedSkill({
762
+ const result = createCloudSkill({
763
763
  id: "exists-files",
764
764
  name: "Exists Again",
765
765
  description: "Should not write",
@@ -780,7 +780,7 @@ describe("createManagedSkill companion files", () => {
780
780
  // Planting a TOOLS.json declaring execution_target/risk would let a
781
781
  // scaffolded skill register attacker-controlled tools. The reserved-name
782
782
  // check must reject it before any write, leaving no SKILL.md or manifest.
783
- const result = createManagedSkill({
783
+ const result = createCloudSkill({
784
784
  id: "tools-manifest",
785
785
  name: "Tools Manifest",
786
786
  description: "Tries to plant a tool manifest",
@@ -814,7 +814,7 @@ describe("createManagedSkill companion files", () => {
814
814
  });
815
815
 
816
816
  test("overwrite re-writes companion files", () => {
817
- createManagedSkill({
817
+ createCloudSkill({
818
818
  id: "overwrite-files",
819
819
  name: "V1",
820
820
  description: "First",
@@ -831,7 +831,7 @@ describe("createManagedSkill companion files", () => {
831
831
  );
832
832
  expect(readFileSync(companionPath, "utf-8")).toBe("v1 notes");
833
833
 
834
- const result = createManagedSkill({
834
+ const result = createCloudSkill({
835
835
  id: "overwrite-files",
836
836
  name: "V2",
837
837
  description: "Second",
@@ -845,12 +845,12 @@ describe("createManagedSkill companion files", () => {
845
845
  });
846
846
  });
847
847
 
848
- describe("createManagedSkill copy_from companion sources", () => {
848
+ describe("createCloudSkill copy_from companion sources", () => {
849
849
  test("copies a workspace source file into the skill dir", () => {
850
850
  const sourcePath = join(TEST_DIR, "ran-script.py");
851
851
  writeFileSync(sourcePath, "print('proven')\n", "utf-8");
852
852
 
853
- const result = createManagedSkill({
853
+ const result = createCloudSkill({
854
854
  id: "copy-source",
855
855
  name: "Copy Source",
856
856
  description: "Copies a proven script",
@@ -871,7 +871,7 @@ describe("createManagedSkill copy_from companion sources", () => {
871
871
  const sourcePath = join(TEST_DIR, "both.py");
872
872
  writeFileSync(sourcePath, "x", "utf-8");
873
873
 
874
- const result = createManagedSkill({
874
+ const result = createCloudSkill({
875
875
  id: "copy-both",
876
876
  name: "Both",
877
877
  description: "Both content and copyFrom",
@@ -885,7 +885,7 @@ describe("createManagedSkill copy_from companion sources", () => {
885
885
  });
886
886
 
887
887
  test("rejects an entry setting neither content nor copyFrom", () => {
888
- const result = createManagedSkill({
888
+ const result = createCloudSkill({
889
889
  id: "copy-neither",
890
890
  name: "Neither",
891
891
  description: "Neither content nor copyFrom",
@@ -898,7 +898,7 @@ describe("createManagedSkill copy_from companion sources", () => {
898
898
  });
899
899
 
900
900
  test("rejects a relative copyFrom source", () => {
901
- const result = createManagedSkill({
901
+ const result = createCloudSkill({
902
902
  id: "copy-relative",
903
903
  name: "Relative",
904
904
  description: "Relative source",
@@ -911,7 +911,7 @@ describe("createManagedSkill copy_from companion sources", () => {
911
911
  });
912
912
 
913
913
  test("rejects a missing copyFrom source, writing nothing", () => {
914
- const result = createManagedSkill({
914
+ const result = createCloudSkill({
915
915
  id: "copy-missing",
916
916
  name: "Missing",
917
917
  description: "Missing source",
@@ -925,7 +925,7 @@ describe("createManagedSkill copy_from companion sources", () => {
925
925
  });
926
926
 
927
927
  test("rejects a source outside the workspace and temp dir", () => {
928
- const result = createManagedSkill({
928
+ const result = createCloudSkill({
929
929
  id: "copy-outside",
930
930
  name: "Outside",
931
931
  description: "Out-of-bounds source",
@@ -943,7 +943,7 @@ describe("createManagedSkill copy_from companion sources", () => {
943
943
  const linkPath = join(TEST_DIR, "sneaky-link");
944
944
  fs.symlinkSync("/etc/hosts", linkPath);
945
945
 
946
- const result = createManagedSkill({
946
+ const result = createCloudSkill({
947
947
  id: "copy-symlink",
948
948
  name: "Symlink",
949
949
  description: "Symlink escape",
@@ -963,7 +963,7 @@ describe("createManagedSkill copy_from companion sources", () => {
963
963
  writeFileSync(sourcePath, "console.log('ok');\n", "utf-8");
964
964
 
965
965
  try {
966
- const result = createManagedSkill({
966
+ const result = createCloudSkill({
967
967
  id: "copy-tmp",
968
968
  name: "Tmp Source",
969
969
  description: "Copies from literal /tmp",
@@ -987,7 +987,7 @@ describe("createManagedSkill copy_from companion sources", () => {
987
987
  const keyPath = join(TEST_DIR, "backup.key");
988
988
  writeFileSync(keyPath, "secret", "utf-8");
989
989
 
990
- const result = createManagedSkill({
990
+ const result = createCloudSkill({
991
991
  id: "copy-denied",
992
992
  name: "Denied",
993
993
  description: "Denied basename",
@@ -1005,7 +1005,7 @@ describe("createManagedSkill copy_from companion sources", () => {
1005
1005
  const linkPath = join(TEST_DIR, "looks-fine.txt");
1006
1006
  fs.symlinkSync(keyPath, linkPath);
1007
1007
 
1008
- const result = createManagedSkill({
1008
+ const result = createCloudSkill({
1009
1009
  id: "copy-denied-link",
1010
1010
  name: "Denied Link",
1011
1011
  description: "Symlink to denied basename",
@@ -1021,7 +1021,7 @@ describe("createManagedSkill copy_from companion sources", () => {
1021
1021
  const dirPath = join(TEST_DIR, "a-directory");
1022
1022
  mkdirSync(dirPath, { recursive: true });
1023
1023
 
1024
- const result = createManagedSkill({
1024
+ const result = createCloudSkill({
1025
1025
  id: "copy-dir",
1026
1026
  name: "Dir",
1027
1027
  description: "Directory source",
@@ -1037,7 +1037,7 @@ describe("createManagedSkill copy_from companion sources", () => {
1037
1037
  const sourcePath = join(TEST_DIR, "manifest.json");
1038
1038
  writeFileSync(sourcePath, "{}", "utf-8");
1039
1039
 
1040
- const result = createManagedSkill({
1040
+ const result = createCloudSkill({
1041
1041
  id: "copy-reserved",
1042
1042
  name: "Reserved",
1043
1043
  description: "Reserved destination",
@@ -1054,7 +1054,7 @@ describe("atomic write safety", () => {
1054
1054
  test("SKILL.md is not partially written on concurrent create", () => {
1055
1055
  // Verify that atomicWriteFile prevents corruption: after creation,
1056
1056
  // the file is always complete (starts with --- and ends with newline)
1057
- const result = createManagedSkill({
1057
+ const result = createCloudSkill({
1058
1058
  id: "atomic-test",
1059
1059
  name: "Atomic",
1060
1060
  description: "Tests atomic write",
@@ -1069,14 +1069,14 @@ describe("atomic write safety", () => {
1069
1069
  });
1070
1070
 
1071
1071
  test("overwrite replaces file atomically (no leftover temp files)", () => {
1072
- createManagedSkill({
1072
+ createCloudSkill({
1073
1073
  id: "atomic-overwrite",
1074
1074
  name: "V1",
1075
1075
  description: "First",
1076
1076
  bodyMarkdown: "Original.",
1077
1077
  });
1078
1078
 
1079
- createManagedSkill({
1079
+ createCloudSkill({
1080
1080
  id: "atomic-overwrite",
1081
1081
  name: "V2",
1082
1082
  description: "Second",
@@ -1122,7 +1122,7 @@ describe("atomic write failure", () => {
1122
1122
 
1123
1123
  try {
1124
1124
  expect(() => {
1125
- createManagedSkill({
1125
+ createCloudSkill({
1126
1126
  id: "fail-write",
1127
1127
  name: "Should Fail",
1128
1128
  description: "This should not be written",
@@ -1141,16 +1141,16 @@ describe("atomic write failure", () => {
1141
1141
  });
1142
1142
  });
1143
1143
 
1144
- describe("deleteManagedSkill", () => {
1144
+ describe("deleteCloudSkill", () => {
1145
1145
  test("deletes existing skill", () => {
1146
- createManagedSkill({
1146
+ createCloudSkill({
1147
1147
  id: "to-delete",
1148
1148
  name: "Delete Me",
1149
1149
  description: "Will be deleted",
1150
1150
  bodyMarkdown: "Gone soon.",
1151
1151
  });
1152
1152
 
1153
- const result = deleteManagedSkill("to-delete");
1153
+ const result = deleteCloudSkill("to-delete");
1154
1154
  expect(result.deleted).toBe(true);
1155
1155
  expect(existsSync(join(TEST_DIR, "skills", "to-delete"))).toBe(false);
1156
1156
 
@@ -1159,19 +1159,19 @@ describe("deleteManagedSkill", () => {
1159
1159
  });
1160
1160
 
1161
1161
  test("returns error for non-existent skill", () => {
1162
- const result = deleteManagedSkill("ghost");
1162
+ const result = deleteCloudSkill("ghost");
1163
1163
  expect(result.deleted).toBe(false);
1164
1164
  expect(result.error).toContain("not found");
1165
1165
  });
1166
1166
 
1167
1167
  test("rejects invalid IDs", () => {
1168
- const result = deleteManagedSkill("../bad");
1168
+ const result = deleteCloudSkill("../bad");
1169
1169
  expect(result.deleted).toBe(false);
1170
1170
  expect(result.error).toContain("traversal");
1171
1171
  });
1172
1172
 
1173
1173
  test("delete leaves a stale SKILLS.md index unchanged", () => {
1174
- createManagedSkill({
1174
+ createCloudSkill({
1175
1175
  id: "keep-index",
1176
1176
  name: "Keep Index",
1177
1177
  description: "Index stays",
@@ -1182,7 +1182,7 @@ describe("deleteManagedSkill", () => {
1182
1182
  "- keep-index\n- survivor\n",
1183
1183
  );
1184
1184
 
1185
- const result = deleteManagedSkill("keep-index");
1185
+ const result = deleteCloudSkill("keep-index");
1186
1186
  expect(result.deleted).toBe(true);
1187
1187
 
1188
1188
  const indexContent = readFileSync(
@@ -1197,7 +1197,7 @@ describe("deleteManagedSkill", () => {
1197
1197
  });
1198
1198
 
1199
1199
  test("delete does not create or edit SKILLS.md", () => {
1200
- createManagedSkill({
1200
+ createCloudSkill({
1201
1201
  id: "delete-no-index",
1202
1202
  name: "Delete No Index",
1203
1203
  description: "No index write",
@@ -1205,7 +1205,7 @@ describe("deleteManagedSkill", () => {
1205
1205
  });
1206
1206
 
1207
1207
  const skillsDir = join(TEST_DIR, "skills");
1208
- const result = deleteManagedSkill("delete-no-index");
1208
+ const result = deleteCloudSkill("delete-no-index");
1209
1209
  expect(result.deleted).toBe(true);
1210
1210
  expect(existsSync(join(skillsDir, "delete-no-index"))).toBe(false);
1211
1211
  expect(existsSync(join(skillsDir, "SKILLS.md"))).toBe(false);
@@ -1213,8 +1213,8 @@ describe("deleteManagedSkill", () => {
1213
1213
  });
1214
1214
 
1215
1215
  describe("version metadata", () => {
1216
- test("createManagedSkill writes install-meta.json without version when version is omitted", () => {
1217
- createManagedSkill({
1216
+ test("createCloudSkill writes install-meta.json without version when version is omitted", () => {
1217
+ createCloudSkill({
1218
1218
  id: "no-version",
1219
1219
  name: "No Version",
1220
1220
  description: "Created without version",
@@ -1226,8 +1226,8 @@ describe("version metadata", () => {
1226
1226
  expect(meta.version).toBeUndefined();
1227
1227
  });
1228
1228
 
1229
- test("createManagedSkill writes install-meta.json when version is provided", () => {
1230
- createManagedSkill({
1229
+ test("createCloudSkill writes install-meta.json when version is provided", () => {
1230
+ createCloudSkill({
1231
1231
  id: "versioned",
1232
1232
  name: "Versioned",
1233
1233
  description: "Has a version",
@@ -1240,7 +1240,7 @@ describe("version metadata", () => {
1240
1240
  });
1241
1241
 
1242
1242
  test("install-meta.json contains valid JSON with origin, version, and installedAt", () => {
1243
- createManagedSkill({
1243
+ createCloudSkill({
1244
1244
  id: "version-meta",
1245
1245
  name: "Meta",
1246
1246
  description: "Check metadata shape",
@@ -1267,7 +1267,7 @@ describe("version metadata", () => {
1267
1267
  });
1268
1268
 
1269
1269
  test("install-meta.json includes installedBy when contactId is provided", () => {
1270
- createManagedSkill({
1270
+ createCloudSkill({
1271
1271
  id: "with-contact",
1272
1272
  name: "With Contact",
1273
1273
  description: "Has contactId",
@@ -1288,7 +1288,7 @@ describe("version metadata", () => {
1288
1288
  });
1289
1289
 
1290
1290
  test("install-meta.json forwards author when provided", () => {
1291
- createManagedSkill({
1291
+ createCloudSkill({
1292
1292
  id: "with-author",
1293
1293
  name: "With Author",
1294
1294
  description: "Has author",
@@ -1300,7 +1300,7 @@ describe("version metadata", () => {
1300
1300
  });
1301
1301
 
1302
1302
  test("install-meta.json omits author when not provided", () => {
1303
- createManagedSkill({
1303
+ createCloudSkill({
1304
1304
  id: "no-author",
1305
1305
  name: "No Author",
1306
1306
  description: "No author",
@@ -1311,7 +1311,7 @@ describe("version metadata", () => {
1311
1311
  });
1312
1312
 
1313
1313
  test("overwrite updates install-meta.json", () => {
1314
- createManagedSkill({
1314
+ createCloudSkill({
1315
1315
  id: "update-version",
1316
1316
  name: "V1",
1317
1317
  description: "First",
@@ -1321,7 +1321,7 @@ describe("version metadata", () => {
1321
1321
 
1322
1322
  expect(readInstallMetaFile("update-version").version).toBe("v1:first");
1323
1323
 
1324
- createManagedSkill({
1324
+ createCloudSkill({
1325
1325
  id: "update-version",
1326
1326
  name: "V2",
1327
1327
  description: "Second",
@@ -1333,7 +1333,7 @@ describe("version metadata", () => {
1333
1333
  });
1334
1334
 
1335
1335
  test("overwrite removes legacy version.json", () => {
1336
- createManagedSkill({
1336
+ createCloudSkill({
1337
1337
  id: "legacy-version",
1338
1338
  name: "Legacy",
1339
1339
  description: "Has legacy metadata",
@@ -1350,7 +1350,7 @@ describe("version metadata", () => {
1350
1350
  writeFileSync(legacyMetaPath, '{"version":"legacy"}', "utf-8");
1351
1351
  expect(existsSync(legacyMetaPath)).toBe(true);
1352
1352
 
1353
- createManagedSkill({
1353
+ createCloudSkill({
1354
1354
  id: "legacy-version",
1355
1355
  name: "Legacy Updated",
1356
1356
  description: "Has current metadata",
@@ -1363,38 +1363,38 @@ describe("version metadata", () => {
1363
1363
  });
1364
1364
  });
1365
1365
 
1366
- describe("validateManagedSkillId edge cases", () => {
1366
+ describe("validateCloudSkillId edge cases", () => {
1367
1367
  test("rejects non-string input", () => {
1368
1368
  // @ts-expect-error testing runtime validation
1369
- expect(validateManagedSkillId(null)).not.toBeNull();
1369
+ expect(validateCloudSkillId(null)).not.toBeNull();
1370
1370
  // @ts-expect-error testing runtime validation
1371
- expect(validateManagedSkillId(undefined)).not.toBeNull();
1371
+ expect(validateCloudSkillId(undefined)).not.toBeNull();
1372
1372
  // @ts-expect-error testing runtime validation
1373
- expect(validateManagedSkillId(123)).not.toBeNull();
1373
+ expect(validateCloudSkillId(123)).not.toBeNull();
1374
1374
  });
1375
1375
 
1376
1376
  test("rejects IDs with only dots", () => {
1377
- expect(validateManagedSkillId("...")).not.toBeNull();
1377
+ expect(validateCloudSkillId("...")).not.toBeNull();
1378
1378
  });
1379
1379
 
1380
1380
  test("rejects single dot (hidden dir)", () => {
1381
- expect(validateManagedSkillId(".")).not.toBeNull();
1381
+ expect(validateCloudSkillId(".")).not.toBeNull();
1382
1382
  });
1383
1383
 
1384
1384
  test("accepts single character ID", () => {
1385
- expect(validateManagedSkillId("a")).toBeNull();
1386
- expect(validateManagedSkillId("0")).toBeNull();
1385
+ expect(validateCloudSkillId("a")).toBeNull();
1386
+ expect(validateCloudSkillId("0")).toBeNull();
1387
1387
  });
1388
1388
 
1389
1389
  test("accepts ID with all allowed character types", () => {
1390
- expect(validateManagedSkillId("a1.b2-c3_d4")).toBeNull();
1390
+ expect(validateCloudSkillId("a1.b2-c3_d4")).toBeNull();
1391
1391
  });
1392
1392
  });
1393
1393
 
1394
1394
  describe("YAML metadata round-trip", () => {
1395
1395
  test("all cadet fields round-trip through write and load", () => {
1396
- // Create a managed skill with every cadet metadata field populated
1397
- createManagedSkill({
1396
+ // Create a cloud skill with every cadet metadata field populated
1397
+ createCloudSkill({
1398
1398
  id: "yaml-roundtrip-all",
1399
1399
  name: "Full Metadata Skill",
1400
1400
  description: "Tests all cadet fields round-trip correctly",
@@ -1418,10 +1418,10 @@ describe("YAML metadata round-trip", () => {
1418
1418
  });
1419
1419
 
1420
1420
  test("activation hints and avoid-when round-trip into SkillSummary", () => {
1421
- // An assistant-authored (retrospective) skill written via createManagedSkill
1421
+ // An assistant-authored (retrospective) skill written via createCloudSkill
1422
1422
  // carries activation hints so the memory seeder emits a "Use when:" clause
1423
1423
  // for it, just like bundled skills.
1424
- createManagedSkill({
1424
+ createCloudSkill({
1425
1425
  id: "hints-roundtrip",
1426
1426
  name: "Hints Roundtrip",
1427
1427
  description: "Trigger phrases round-trip through write and load",