@inneranimalmedia/agentsam-sdk 2.6.4 → 2.6.7

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 (699) hide show
  1. package/AGENTSAM.md +40 -0
  2. package/README.md +15 -9
  3. package/apps/README.md +5 -0
  4. package/apps/cad-creator/README.md +4 -4
  5. package/apps/cad-creator/shared/cad/package.json +1 -1
  6. package/apps/client-cms-editor/AGENTS.md +17 -0
  7. package/apps/client-cms-editor/IMPORT_PROVENANCE.json +8 -0
  8. package/apps/client-cms-editor/README.md +100 -0
  9. package/apps/client-cms-editor/agentsam.app.json +74 -0
  10. package/apps/client-cms-editor/backend/README.md +5 -0
  11. package/apps/client-cms-editor/backend/package.json +39 -0
  12. package/apps/client-cms-editor/backend/src/api/client.ts +233 -0
  13. package/apps/client-cms-editor/backend/src/index.ts +6 -0
  14. package/apps/client-cms-editor/backend/src/model.ts +11 -0
  15. package/apps/client-cms-editor/backend/src/preview/bridge.ts +79 -0
  16. package/apps/client-cms-editor/backend/src/preview/urls.ts +55 -0
  17. package/apps/client-cms-editor/backend/src/routing/cms-route.js +293 -0
  18. package/apps/client-cms-editor/backend/src/routing/index.js +10 -0
  19. package/apps/client-cms-editor/backend/src/storefront.ts +52 -0
  20. package/apps/client-cms-editor/backend/tsconfig.json +20 -0
  21. package/apps/client-cms-editor/backend/worker/index.js +34 -0
  22. package/apps/client-cms-editor/backend/wrangler.jsonc +11 -0
  23. package/apps/client-cms-editor/bin/agentsam-cms.js +262 -0
  24. package/apps/client-cms-editor/bin/agentsam-cms.mjs +3 -0
  25. package/apps/client-cms-editor/frontend/index.html +12 -0
  26. package/apps/client-cms-editor/frontend/package.json +42 -0
  27. package/apps/client-cms-editor/frontend/src/AgentSamDrawer.tsx +156 -0
  28. package/apps/client-cms-editor/frontend/src/CmsAgentSurface.tsx +36 -0
  29. package/apps/client-cms-editor/frontend/src/adapters/heuristic.ts +29 -0
  30. package/apps/client-cms-editor/frontend/src/adapters/http.ts +628 -0
  31. package/apps/client-cms-editor/frontend/src/adapters/memory.ts +510 -0
  32. package/apps/client-cms-editor/frontend/src/editor/CmsEditor.tsx +213 -0
  33. package/apps/client-cms-editor/frontend/src/editor/CmsEditorProvider.tsx +20 -0
  34. package/apps/client-cms-editor/frontend/src/editor/canvas/PreviewCanvas.tsx +53 -0
  35. package/apps/client-cms-editor/frontend/src/editor/legacy/CmsEditorPrototype.tsx +1374 -0
  36. package/apps/client-cms-editor/frontend/src/editor/useCmsEditorController.ts +218 -0
  37. package/apps/client-cms-editor/frontend/src/env.d.ts +14 -0
  38. package/apps/client-cms-editor/frontend/src/index.ts +22 -0
  39. package/apps/client-cms-editor/frontend/src/lib/agent-host.ts +24 -0
  40. package/apps/client-cms-editor/frontend/src/lib/content-safety.ts +63 -0
  41. package/apps/client-cms-editor/frontend/src/main.tsx +91 -0
  42. package/apps/client-cms-editor/frontend/src/mount.tsx +113 -0
  43. package/apps/client-cms-editor/frontend/src/styles/agentsam-drawer.css +214 -0
  44. package/apps/client-cms-editor/frontend/src/styles/cmsShell.css +1739 -0
  45. package/apps/client-cms-editor/frontend/src/styles/studio.css +158 -0
  46. package/apps/client-cms-editor/frontend/src/surfaces/CmsDashboard.tsx +313 -0
  47. package/apps/client-cms-editor/frontend/src/surfaces/CmsGuidedChatHero.tsx +121 -0
  48. package/apps/client-cms-editor/frontend/src/surfaces/CmsHubPage.tsx +132 -0
  49. package/apps/client-cms-editor/frontend/src/surfaces/CmsSiteSwitcher.tsx +176 -0
  50. package/apps/client-cms-editor/frontend/src/surfaces/index.ts +5 -0
  51. package/apps/client-cms-editor/frontend/src/surfaces/types.ts +48 -0
  52. package/apps/client-cms-editor/frontend/tsconfig.json +36 -0
  53. package/apps/client-cms-editor/frontend/vite.config.ts +25 -0
  54. package/apps/client-cms-editor/package-lock.json +4671 -0
  55. package/apps/client-cms-editor/package.json +135 -0
  56. package/apps/client-cms-editor/reference/DONOR_README.md +52 -0
  57. package/apps/client-cms-editor/reference/DONOR_package-lock.json +1253 -0
  58. package/apps/client-cms-editor/reference/DONOR_tsconfig.json +15 -0
  59. package/apps/client-cms-editor/reference/harvest/HARVEST_RECEIPT.json +201 -0
  60. package/apps/client-cms-editor/reference/harvest/PROVENANCE_HISTORY.txt +10 -0
  61. package/apps/client-cms-editor/reference/harvest/README.md +8 -0
  62. package/apps/client-cms-editor/reference/harvest/plans/ARCHIVE-INTAKE.md +135 -0
  63. package/apps/client-cms-editor/reference/harvest/plans/CHATGPT-IDENTITY-HARVEST.md +83 -0
  64. package/apps/client-cms-editor/reference/harvest/plans/CMS-EDITOR-HARVEST.md +166 -0
  65. package/apps/client-cms-editor/reference/harvest/plans/HARVEST-INDEX.md +196 -0
  66. package/apps/client-cms-editor/reference/harvest/plans/INNERANIMALS-CONTENT-001.md +137 -0
  67. package/apps/client-cms-editor/reference/harvest/plans/NO-IMPLICIT-SIDE-EFFECTS.md +87 -0
  68. package/apps/client-cms-editor/reference/harvest/plans/STOREFRONT-SURFACE-MAP.md +140 -0
  69. package/apps/client-cms-editor/reference/harvest/plans/THEME-INNERANIMALS-HARVEST.md +137 -0
  70. package/apps/client-cms-editor/reference/harvest/plans/TOOLING-LAB.md +63 -0
  71. package/apps/client-cms-editor/reference/harvest/plans/harvest-manifest.json +97 -0
  72. package/apps/client-cms-editor/reference/harvest/plans/local-cms-harvest-schema.sql +328 -0
  73. package/apps/client-cms-editor/shared/cms/package.json +31 -0
  74. package/apps/client-cms-editor/shared/cms/src/adapter.ts +204 -0
  75. package/apps/client-cms-editor/shared/cms/src/agent-context.ts +37 -0
  76. package/apps/client-cms-editor/shared/cms/src/cloudflare-bindings.ts +51 -0
  77. package/apps/client-cms-editor/shared/cms/src/editor-types.ts +90 -0
  78. package/apps/client-cms-editor/shared/cms/src/host.ts +82 -0
  79. package/apps/client-cms-editor/shared/cms/src/index.ts +9 -0
  80. package/apps/client-cms-editor/shared/cms/src/map.ts +115 -0
  81. package/apps/client-cms-editor/shared/cms/src/publication.ts +24 -0
  82. package/apps/client-cms-editor/shared/cms/src/routes.ts +11 -0
  83. package/apps/client-cms-editor/shared/cms/src/starter-pack.ts +158 -0
  84. package/apps/client-cms-editor/shared/cms/tsconfig.json +12 -0
  85. package/bin/agentsam-rapid-rust +36 -0
  86. package/contracts/source-types.v1.json +353 -0
  87. package/docs/AUTH_IDENTITY_CONTRACT.md +2 -0
  88. package/docs/CMS_CONTEXTUAL_COMPOSER.md +1 -1
  89. package/docs/MACHINE_INTELLIGENCE.md +120 -0
  90. package/docs/PRODUCT_LIFECYCLE.md +566 -0
  91. package/docs/THEME_REFINERY.md +2 -2
  92. package/docs/WINDOWS_RUNTIME_INSTALL.md +30 -0
  93. package/docs/architecture/AGENTSAM_APPLICATION_CONTRACT.md +188 -0
  94. package/docs/architecture/AGENTSAM_RUNTIME_PROTOCOL.md +171 -0
  95. package/docs/architecture/LOCAL_STUDIO_CLOUDFLARE_OAUTH.md +12 -4
  96. package/docs/architecture/R2_SLUG_NAMESPACE.md +20 -0
  97. package/docs/architecture/WORK_PRODUCT_EXTRACTION.md +97 -0
  98. package/docs/brand/AGENT_SAM_ICON_GRAMMAR.md +70 -0
  99. package/docs/content-studio/HOST_MOUNT_CHECKLIST.md +71 -0
  100. package/docs/content-studio/REVISION_GATE_2026-09-27.md +501 -0
  101. package/docs/contracts/capability-install-planner.md +67 -0
  102. package/docs/contracts/environment-vocabulary.md +195 -0
  103. package/docs/contracts/google-cloud-oauth-setup.md +199 -0
  104. package/docs/local-studio/WORKMODE_DONOR_NOTES.md +1 -1
  105. package/docs/plans/LOCAL-STUDIO-GRADUATION-2026-09-26.md +290 -0
  106. package/docs/plans/LOCAL-STUDIO-REAL-APP-CONTRACT-ADDENDUM-2026-09-27.md +394 -0
  107. package/docs/plans/LOCAL_STUDIO_DESKTOP_RELEASE_2026-09-29.md +150 -0
  108. package/docs/plans/MACHINE-FIRST-APPS-TUI-2026-09-24.md +227 -0
  109. package/docs/plans/TOMORROW-EXTENSIVE-TODO-2026-09-26.md +221 -0
  110. package/docs/plans/TOMORROW-MACHINE-FIRST-BRIEFING.md +145 -0
  111. package/docs/plans/UNIVERSAL-INGEST-MACHINE-FIRST-2026-09-24.md +215 -0
  112. package/docs/plugins.md +2 -2
  113. package/docs/product/AGENTSAM_PRODUCT_EXPERIENCE_STANDARD.md +280 -0
  114. package/docs/product/LOCAL_STUDIO_DESKTOP_EXPERIENCE.md +139 -0
  115. package/docs/product/README.md +8 -0
  116. package/docs/rapid-rust-wasm.md +35 -0
  117. package/migrations/d1/0016_cloudflare_oauth_user_oauth_tokens_ssot.sql +14 -0
  118. package/migrations/d1/0017_identity_native_oauth.sql +21 -0
  119. package/native/agentsam-machine/Cargo.lock +426 -0
  120. package/native/agentsam-machine/Cargo.toml +9 -0
  121. package/native/agentsam-machine/cli/Cargo.toml +14 -0
  122. package/native/agentsam-machine/cli/src/main.rs +77 -0
  123. package/native/agentsam-machine/core/Cargo.toml +15 -0
  124. package/native/agentsam-machine/core/src/assets.rs +790 -0
  125. package/native/agentsam-machine/core/src/bound.rs +298 -0
  126. package/native/agentsam-machine/core/src/enrich.rs +706 -0
  127. package/native/agentsam-machine/core/src/frontend.rs +442 -0
  128. package/native/agentsam-machine/core/src/lib.rs +1086 -0
  129. package/native/agentsam-machine/core/src/liquid.rs +528 -0
  130. package/native/agentsam-machine/core/src/source_types.rs +78 -0
  131. package/package.json +110 -21
  132. package/packages/agentsam-brand/README.md +107 -12
  133. package/packages/agentsam-brand/bin/agentsam-brand.mjs +9 -0
  134. package/packages/agentsam-brand/package.json +41 -9
  135. package/packages/agentsam-brand/src/adapters/cloudflare-images.js +453 -0
  136. package/packages/agentsam-brand/src/adapters/cloudflare-r2.js +74 -0
  137. package/packages/agentsam-brand/src/adapters/d1-registry.js +26 -0
  138. package/packages/agentsam-brand/src/adapters/filesystem.js +59 -0
  139. package/packages/agentsam-brand/src/adapters/memory.js +31 -0
  140. package/packages/agentsam-brand/src/cli/controller.js +503 -0
  141. package/packages/agentsam-brand/src/cli/wizard.js +526 -0
  142. package/packages/agentsam-brand/src/core/capabilities.js +201 -0
  143. package/packages/agentsam-brand/src/core/derivatives.js +211 -0
  144. package/packages/agentsam-brand/src/core/errors.js +12 -0
  145. package/packages/agentsam-brand/src/core/ingest.js +195 -0
  146. package/packages/agentsam-brand/src/core/inspect.js +109 -0
  147. package/packages/agentsam-brand/src/core/keys.js +83 -0
  148. package/packages/agentsam-brand/src/core/naming.js +142 -0
  149. package/packages/agentsam-brand/src/core/optimize.js +316 -0
  150. package/packages/agentsam-brand/src/core/pack.js +305 -0
  151. package/packages/agentsam-brand/src/core/plan.js +276 -0
  152. package/packages/agentsam-brand/src/core/preview.js +159 -0
  153. package/packages/agentsam-brand/src/core/processors/cloudflare.js +68 -0
  154. package/packages/agentsam-brand/src/core/processors/contract.js +203 -0
  155. package/packages/agentsam-brand/src/core/processors/index.js +148 -0
  156. package/packages/agentsam-brand/src/core/processors/native.js +82 -0
  157. package/packages/agentsam-brand/src/core/processors/sharp.js +113 -0
  158. package/packages/agentsam-brand/src/core/processors/squoosh-binary.js +195 -0
  159. package/packages/agentsam-brand/src/core/promote.js +288 -0
  160. package/packages/agentsam-brand/src/core/receipts.js +155 -0
  161. package/packages/agentsam-brand/src/core/v2/compile.js +280 -0
  162. package/packages/agentsam-brand/src/core/v2/derivatives-semantic.js +207 -0
  163. package/packages/agentsam-brand/src/core/v2/ingest-graph.js +387 -0
  164. package/packages/agentsam-brand/src/core/v2/roles.js +180 -0
  165. package/packages/agentsam-brand/src/core/v2/schema.js +209 -0
  166. package/packages/agentsam-brand/src/core/v2/templates.js +114 -0
  167. package/packages/agentsam-brand/src/index.js +193 -36
  168. package/packages/agentsam-brand/src/presets/app-icon.json +16 -0
  169. package/packages/agentsam-brand/src/presets/favicon.json +17 -0
  170. package/packages/agentsam-brand/src/presets/hero.json +12 -0
  171. package/packages/agentsam-brand/src/presets/index.js +40 -0
  172. package/packages/agentsam-brand/src/presets/logo.json +12 -0
  173. package/packages/agentsam-brand/src/presets/model.json +8 -0
  174. package/packages/agentsam-brand/src/presets/og-image.json +10 -0
  175. package/packages/agentsam-brand/src/presets/product-shot.json +11 -0
  176. package/packages/agentsam-brand/src/presets/social-image.json +10 -0
  177. package/packages/agentsam-brand/src/presets/web-image.json +10 -0
  178. package/packages/agentsam-contracts/package.json +13 -3
  179. package/packages/agentsam-contracts/src/artifacts.ts +41 -0
  180. package/packages/agentsam-contracts/src/tools.ts +22 -0
  181. package/packages/agentsam-errors/package.json +13 -3
  182. package/packages/agentsam-knowledge/package.json +18 -4
  183. package/packages/agentsam-knowledge/src/autorag/index.js +11 -4
  184. package/packages/agentsam-knowledge/src/backends/index.js +33 -1
  185. package/packages/agentsam-knowledge/src/providers/index.js +6 -4
  186. package/packages/agentsam-knowledge/src/providers/ollama-endpoint.js +31 -0
  187. package/packages/agentsam-knowledge/test/autorag.test.mjs +81 -1
  188. package/packages/agentsam-nav/package.json +26 -8
  189. package/packages/agentsam-queue-control/README.md +1 -1
  190. package/packages/agentsam-queue-control/package.json +7 -2
  191. package/packages/agentsam-rapid-rust/Cargo.lock +344 -0
  192. package/packages/agentsam-rapid-rust/Cargo.toml +18 -0
  193. package/packages/agentsam-rapid-rust/README.md +5 -0
  194. package/packages/agentsam-rapid-rust/src/main.rs +718 -0
  195. package/packages/agentsam-rapid-rust/templates/api/Cargo.toml.tmpl +18 -0
  196. package/packages/agentsam-rapid-rust/templates/api/src/lib.rs.tmpl +17 -0
  197. package/packages/agentsam-rapid-rust/templates/common/README.md.tmpl +22 -0
  198. package/packages/agentsam-rapid-rust/templates/common/package.json.tmpl +12 -0
  199. package/packages/agentsam-rapid-rust/templates/common/wrangler.toml.tmpl +6 -0
  200. package/packages/agentsam-rapid-rust/templates/crypto-auth/Cargo.toml.tmpl +21 -0
  201. package/packages/agentsam-rapid-rust/templates/crypto-auth/src/lib.rs.tmpl +32 -0
  202. package/packages/agentsam-rapid-rust/templates/data-processor/Cargo.toml.tmpl +18 -0
  203. package/packages/agentsam-rapid-rust/templates/data-processor/src/lib.rs.tmpl +41 -0
  204. package/packages/agentsam-rapid-rust/templates/shared-core/Cargo.toml.tmpl +9 -0
  205. package/packages/agentsam-rapid-rust/templates/shared-core/core/Cargo.toml.tmpl +7 -0
  206. package/packages/agentsam-rapid-rust/templates/shared-core/core/src/lib.rs.tmpl +23 -0
  207. package/packages/agentsam-rapid-rust/templates/shared-core/worker/Cargo.toml.tmpl +12 -0
  208. package/packages/agentsam-rapid-rust/templates/shared-core/worker/src/lib.rs.tmpl +16 -0
  209. package/packages/agentsam-rapid-rust/templates/shared-core/wrangler.toml.tmpl +6 -0
  210. package/packages/agentsam-repository/package.json +13 -3
  211. package/packages/agentsam-repository/src/index.js +1 -0
  212. package/packages/agentsam-repository/src/merkle/semantic.js +3 -10
  213. package/packages/agentsam-repository/src/source-types.js +93 -0
  214. package/packages/agentsam-vault/README.md +96 -0
  215. package/packages/agentsam-vault/package.json +42 -0
  216. package/packages/agentsam-vault/src/contracts/credential.d.ts +78 -0
  217. package/packages/agentsam-vault/src/contracts/credential.js +132 -0
  218. package/packages/agentsam-vault/src/crypto/aes-gcm.d.ts +30 -0
  219. package/packages/agentsam-vault/src/crypto/aes-gcm.js +107 -0
  220. package/packages/agentsam-vault/src/crypto/oauth-envelope.js +150 -0
  221. package/packages/agentsam-vault/src/index.d.ts +9 -0
  222. package/packages/agentsam-vault/src/index.js +27 -0
  223. package/packages/agentsam-vault/src/providers/registry.js +90 -0
  224. package/packages/agentsam-vault/src/runtime/resolver.js +77 -0
  225. package/packages/agentsam-workbench/README.md +24 -0
  226. package/packages/agentsam-workbench/package.json +49 -0
  227. package/packages/agentsam-workbench/src/agent/AgentPanel.tsx +41 -0
  228. package/packages/agentsam-workbench/src/agent/ArtifactCard.tsx +9 -0
  229. package/packages/agentsam-workbench/src/agent/Composer.tsx +102 -0
  230. package/packages/agentsam-workbench/src/agent/ConnectedAgentPanel.tsx +194 -0
  231. package/packages/agentsam-workbench/src/agent/ContextualComposer.tsx +788 -0
  232. package/packages/agentsam-workbench/src/agent/GoalStatusStrip.tsx +38 -0
  233. package/packages/agentsam-workbench/src/agent/MiniAgentSam.tsx +86 -0
  234. package/packages/agentsam-workbench/src/agent/ModelSelect.tsx +19 -0
  235. package/packages/agentsam-workbench/src/agent/Thread.tsx +56 -0
  236. package/packages/agentsam-workbench/src/agent/ToolPermissionRequest.tsx +94 -0
  237. package/packages/agentsam-workbench/src/agent/ToolReceipt.tsx +11 -0
  238. package/packages/agentsam-workbench/src/agent/contextual-composer.css +611 -0
  239. package/packages/agentsam-workbench/src/agent/index.ts +12 -0
  240. package/packages/agentsam-workbench/src/agent/mini-agentsam.css +12 -0
  241. package/packages/agentsam-workbench/src/agent/tool-permission.css +134 -0
  242. package/packages/agentsam-workbench/src/browser/BrowserFrame.tsx +37 -0
  243. package/packages/agentsam-workbench/src/browser/index.ts +1 -0
  244. package/packages/agentsam-workbench/src/index.ts +6 -0
  245. package/packages/agentsam-workbench/src/project-control.css +160 -0
  246. package/packages/agentsam-workbench/src/projects/ProjectsSurface.tsx +131 -0
  247. package/packages/agentsam-workbench/src/projects/index.ts +1 -0
  248. package/packages/agentsam-workbench/src/shell/Breadcrumb.tsx +35 -0
  249. package/packages/agentsam-workbench/src/shell/ResizableStage.tsx +99 -0
  250. package/packages/agentsam-workbench/src/shell/SidePanel.tsx +5 -0
  251. package/packages/agentsam-workbench/src/shell/index.ts +4 -0
  252. package/packages/agentsam-workbench/src/shell/surfaceRegistry.ts +29 -0
  253. package/packages/agentsam-workbench/src/terminal/TerminalSurface.tsx +5 -0
  254. package/packages/agentsam-workbench/src/terminal/index.ts +1 -0
  255. package/packages/agentsam-workbench/src/timeline/GanttBoard.tsx +258 -0
  256. package/packages/agentsam-workbench/src/timeline/index.ts +1 -0
  257. package/packages/agentsam-workbench/tsconfig.json +13 -0
  258. package/packages/connectors/cloudflare/OAUTH_STORAGE_AUDIT.md +53 -0
  259. package/packages/connectors/cloudflare/package.json +16 -4
  260. package/packages/connectors/cloudflare/src/api-client.js +280 -0
  261. package/packages/connectors/cloudflare/src/capabilities.js +585 -0
  262. package/packages/connectors/cloudflare/src/credential.js +318 -0
  263. package/packages/connectors/cloudflare/src/families/brand-protection.js +123 -0
  264. package/packages/connectors/cloudflare/src/families/keyless.js +114 -0
  265. package/packages/connectors/cloudflare/src/families/pages.js +151 -0
  266. package/packages/connectors/cloudflare/src/families/scanner.js +123 -0
  267. package/packages/connectors/cloudflare/src/families/snippets.js +207 -0
  268. package/packages/connectors/cloudflare/src/families/tag-gateway.js +46 -0
  269. package/packages/connectors/cloudflare/src/families/tags.js +124 -0
  270. package/packages/connectors/cloudflare/src/families/token-validation.js +95 -0
  271. package/packages/connectors/cloudflare/src/families/vectorize.js +127 -0
  272. package/packages/connectors/cloudflare/src/families/workflows.js +156 -0
  273. package/packages/connectors/cloudflare/src/index.js +103 -265
  274. package/packages/connectors/cloudflare/src/oauth-persist.js +336 -0
  275. package/packages/connectors/cloudflare/src/owner.js +42 -12
  276. package/packages/connectors/cloudflare/src/permission-options.js +1064 -0
  277. package/packages/connectors/cloudflare/src/routes.js +309 -144
  278. package/packages/connectors/cloudflare/src/scope-catalog.js +345 -0
  279. package/packages/connectors/cloudflare/src/vault.js +2 -2
  280. package/packages/connectors/cloudflare/tests/capabilities.test.mjs +276 -0
  281. package/packages/connectors/cloudflare/tests/connector.test.mjs +26 -30
  282. package/packages/connectors/cloudflare/tests/oauth-persist.test.mjs +125 -0
  283. package/packages/heuristic-theme/README.md +2 -2
  284. package/packages/heuristic-theme/package.json +8 -3
  285. package/packages/heuristic-theme/src/registry.js +2 -2
  286. package/packages/heuristic-theme/src/theme.js +1 -1
  287. package/packages/heuristic-theme/test/theme.test.mjs +1 -1
  288. package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +1 -1
  289. package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +44 -4
  290. package/packages/identity/.agentsam/features/oauth-login-portal/resources.json +10 -4
  291. package/packages/identity/.agentsam/features/oauth-login-portal/routes.json +20 -0
  292. package/packages/identity/README.md +2 -2
  293. package/packages/identity/backend/README.md +1 -1
  294. package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +18 -14
  295. package/packages/identity/migrations/apply-portable.js +109 -0
  296. package/packages/identity/migrations/sqlite/004_identity_oauth_consent_catalog.sql +48 -0
  297. package/packages/identity/migrations/sqlite/005_identity_company_native.sql +52 -0
  298. package/packages/identity/package.json +27 -5
  299. package/packages/identity/schema/agentsam.identity/manifest.json +101 -0
  300. package/packages/identity/scripts/local-identity-bridge.mjs +190 -0
  301. package/packages/identity/scripts/preview-auth-portal.mjs +8 -8
  302. package/packages/identity/src/adapters/cloudflare-d1/index.js +8 -372
  303. package/packages/identity/src/adapters/iam-compat/index.js +540 -0
  304. package/packages/identity/src/adapters/portable-d1/index.js +18 -0
  305. package/packages/identity/src/adapters/portable-store.js +479 -0
  306. package/packages/identity/src/adapters/sqlite/index.js +13 -309
  307. package/packages/identity/src/contracts/auth-config.js +27 -8
  308. package/packages/identity/src/contracts/external-identity.js +1 -1
  309. package/packages/identity/src/contracts/identity-store.js +56 -5
  310. package/packages/identity/src/contracts/provider.js +2 -0
  311. package/packages/identity/src/contracts/sign-in-options.js +104 -0
  312. package/packages/identity/src/core/constants.js +1 -1
  313. package/packages/identity/src/core/session-policy.js +31 -0
  314. package/packages/identity/src/frontend/auth-portal/README.md +2 -1
  315. package/packages/identity/src/frontend/auth-portal/pages/login.html +7 -6
  316. package/packages/identity/src/frontend/auth-portal/pages/reset.html +6 -5
  317. package/packages/identity/src/frontend/auth-portal/pages/signup.html +6 -5
  318. package/packages/identity/src/frontend/auth-portal/shared/company-branding.js +1 -1
  319. package/packages/identity/src/frontend/auth-portal/shared/desktop-identity-bridge.js +176 -0
  320. package/packages/identity/src/index.js +44 -1
  321. package/packages/identity/src/migrations/0001_identity_core.sql +19 -2
  322. package/packages/identity/src/migrations/0003_accounts_ssot.sql +20 -0
  323. package/packages/identity/src/migrations/README.md +23 -20
  324. package/packages/identity/src/oauth/README.md +10 -5
  325. package/packages/identity/src/oauth/consent-view.js +388 -0
  326. package/packages/identity/src/oauth/credentials.js +39 -20
  327. package/packages/identity/src/oauth/google-desktop-exchange.js +341 -0
  328. package/packages/identity/src/oauth/iam-platform.js +21 -9
  329. package/packages/identity/src/oauth/native-handoff.js +136 -0
  330. package/packages/identity/src/providers/chatgpt/headers.js +65 -0
  331. package/packages/identity/src/providers/chatgpt/index.js +86 -0
  332. package/packages/identity/src/providers/chatgpt/mapper.js +43 -0
  333. package/packages/identity/src/providers/chatgpt/paths.js +45 -0
  334. package/packages/identity/src/providers/cloudflare/oauth.js +3 -4
  335. package/packages/identity/src/providers/cloudflare/profile.js +49 -14
  336. package/packages/identity/src/providers/github/oauth.js +1 -2
  337. package/packages/identity/src/providers/github/profile.js +16 -2
  338. package/packages/identity/src/providers/iam/index.js +27 -5
  339. package/packages/identity/src/providers/index.js +11 -3
  340. package/packages/identity/src/server/identity-service.js +33 -3
  341. package/packages/identity/src/server/worker-router.js +171 -88
  342. package/packages/identity/tests/auth-config.test.mjs +3 -2
  343. package/packages/identity/tests/chatgpt-provider.test.mjs +75 -0
  344. package/packages/identity/tests/google-desktop-identity-login.test.mjs +210 -0
  345. package/packages/identity/tests/identity-init-scaffold.test.mjs +17 -3
  346. package/packages/identity/tests/identity-service.test.mjs +16 -0
  347. package/packages/identity/tests/lane1-identity-store-parity.test.mjs +527 -0
  348. package/packages/identity/tests/lane1-packed-consumer.test.mjs +175 -0
  349. package/packages/identity/tests/native-oauth-handoff.test.mjs +292 -0
  350. package/packages/identity/tests/native-session-worker.test.mjs +64 -0
  351. package/packages/identity/tests/oauth-consent-view.test.mjs +106 -0
  352. package/packages/identity/tests/oauth-credentials.test.mjs +21 -8
  353. package/packages/identity/tests/oauth-presets-accounts-ssot.test.mjs +58 -0
  354. package/packages/identity/tests/preview-auth-portal.test.mjs +5 -3
  355. package/packages/identity/tests/session-routes-policy.test.mjs +13 -1
  356. package/packages/identity/tests/worker-runtime-boundary.test.mjs +11 -0
  357. package/packages/providers/completeful/package.json +7 -2
  358. package/packages/runtime-protocol/src/index.js +154 -0
  359. package/packages/theme-church-site/package.json +17 -6
  360. package/packages/theme-church-site/src/harvest.json +4 -2
  361. package/packages/theme-church-site/src/index.js +7 -3
  362. package/packages/theme-church-site/test/theme.test.mjs +4 -2
  363. package/packages/theme-companions-site/package.json +17 -6
  364. package/packages/theme-companions-site/src/harvest.json +4 -2
  365. package/packages/theme-companions-site/src/index.js +7 -3
  366. package/packages/theme-companions-site/test/theme.test.mjs +4 -2
  367. package/packages/theme-floors-site/package.json +17 -6
  368. package/packages/theme-floors-site/src/harvest.json +4 -2
  369. package/packages/theme-floors-site/src/index.js +7 -3
  370. package/packages/theme-floors-site/test/theme.test.mjs +4 -2
  371. package/packages/theme-fuelnfree-site/package.json +17 -6
  372. package/packages/theme-fuelnfree-site/src/harvest.json +4 -2
  373. package/packages/theme-fuelnfree-site/src/index.js +7 -3
  374. package/packages/theme-fuelnfree-site/test/theme.test.mjs +4 -2
  375. package/packages/theme-handyman-site/package.json +17 -6
  376. package/packages/theme-handyman-site/src/harvest.json +4 -2
  377. package/packages/theme-handyman-site/src/index.js +7 -3
  378. package/packages/theme-handyman-site/test/theme.test.mjs +4 -2
  379. package/packages/theme-insurance-site/package.json +17 -6
  380. package/packages/theme-insurance-site/src/harvest.json +4 -2
  381. package/packages/theme-insurance-site/src/index.js +7 -3
  382. package/packages/theme-insurance-site/test/theme.test.mjs +4 -2
  383. package/packages/theme-scenes/README.md +164 -0
  384. package/packages/theme-scenes/package.json +54 -0
  385. package/packages/theme-scenes/src/blocks/index.js +30 -0
  386. package/packages/theme-scenes/src/contracts/index.js +286 -0
  387. package/packages/theme-scenes/src/demos/index.js +65 -0
  388. package/packages/theme-scenes/src/index.js +75 -0
  389. package/packages/theme-scenes/src/presets/index.js +263 -0
  390. package/packages/theme-scenes/src/registry.js +187 -0
  391. package/packages/theme-scenes/src/runtime/compile.js +119 -0
  392. package/packages/theme-scenes/src/scenes/index.js +146 -0
  393. package/packages/theme-scenes/src/shell/index.js +47 -0
  394. package/packages/theme-scenes/src/themes/index.js +129 -0
  395. package/packages/theme-scenes/src/visuals/index.js +41 -0
  396. package/packages/theme-scenes/test/theme-scenes.test.mjs +179 -0
  397. package/packages/theme-shinshu-site/package.json +17 -6
  398. package/packages/theme-shinshu-site/src/harvest.json +4 -2
  399. package/packages/theme-shinshu-site/src/index.js +7 -3
  400. package/packages/theme-shinshu-site/test/theme.test.mjs +4 -2
  401. package/packages/work-graph/package.json +14 -4
  402. package/packages/work-graph/src/index.js +34 -1
  403. package/packages/work-graph/src/renderers/gantt-model.js +24 -0
  404. package/packages/work-graph/test/work-graph.test.mjs +27 -7
  405. package/protocol/FILEMETA_V1.md +2 -2
  406. package/protocol/README.md +15 -7
  407. package/protocol/apps/agentsam.app.v1.schema.json +89 -7
  408. package/protocol/apps/agentsam.host-install.v1.schema.json +36 -0
  409. package/protocol/assets/README.md +9 -0
  410. package/protocol/assets/asset-record.v1.schema.json +64 -0
  411. package/protocol/capabilities/manifest.json +1 -1
  412. package/protocol/database/agentsam.schema-pack.v1.schema.json +72 -0
  413. package/protocol/presets/catalog.json +2 -2
  414. package/protocol/runtime/agentsam.runtime.v1.schema.json +75 -0
  415. package/protocol/scoring/README.md +10 -0
  416. package/protocol/scoring/scorecard.v1.schema.json +65 -0
  417. package/protocol/theme-refinery/lineage-registry.json +105 -0
  418. package/protocol/theme-refinery/product-metadata.schema.json +21 -1
  419. package/protocol/ui/icon-registry.mjs +1 -0
  420. package/registry/cms-rust-machine-20260928/installable-products.json +31 -0
  421. package/registry/cms-rust-machine-20260928/manifest.json +22 -0
  422. package/registry/cms-rust-machine-20260928/migration.sql +237 -0
  423. package/registry/cms-rust-machine-20260928/receipt.json +21 -0
  424. package/registry/cms-rust-machine-20260928/receipt.sql +27 -0
  425. package/scripts/build_rapid_rust_cli.py +83 -0
  426. package/skills/grok-auth/SKILL.md +110 -0
  427. package/skills/grok-auth/agentsam.skill.json +25 -0
  428. package/skills/grok-auth/references/grok-identity.md +64 -0
  429. package/skills/grok-auth/references/per-user-data.md +49 -0
  430. package/skills/grok-auth/references/prewired-and-env.md +54 -0
  431. package/skills/grok-auth/references/session-ui.md +133 -0
  432. package/skills/grok-auth/references/sign-in-methods.md +55 -0
  433. package/skills/grok-auth/references/wiring.md +71 -0
  434. package/skills/grok-building-games/SKILL.md +213 -0
  435. package/skills/grok-building-games/agentsam.skill.json +25 -0
  436. package/skills/grok-building-games/references/3d-libs.md +64 -0
  437. package/skills/grok-building-games/references/ai-pathfinding.md +122 -0
  438. package/skills/grok-building-games/references/audio.md +129 -0
  439. package/skills/grok-building-games/references/babylon.md +202 -0
  440. package/skills/grok-building-games/references/collision-physics.md +122 -0
  441. package/skills/grok-building-games/references/ecs-architecture.md +111 -0
  442. package/skills/grok-building-games/references/game-feel-juice.md +110 -0
  443. package/skills/grok-building-games/references/genres/board-card-chess.md +89 -0
  444. package/skills/grok-building-games/references/genres/endless-runner.md +83 -0
  445. package/skills/grok-building-games/references/genres/fps.md +105 -0
  446. package/skills/grok-building-games/references/genres/platformer-2d.md +97 -0
  447. package/skills/grok-building-games/references/genres/puzzle-match3-tetris.md +131 -0
  448. package/skills/grok-building-games/references/genres/racing-kart.md +106 -0
  449. package/skills/grok-building-games/references/genres/topdown-twin-stick.md +97 -0
  450. package/skills/grok-building-games/references/genres/tower-defense.md +84 -0
  451. package/skills/grok-building-games/references/genres/voxel-minecraft.md +89 -0
  452. package/skills/grok-building-games/references/input.md +139 -0
  453. package/skills/grok-building-games/references/phaser.md +277 -0
  454. package/skills/grok-building-games/references/procedural-generation.md +141 -0
  455. package/skills/grok-building-games/references/save-persistence.md +108 -0
  456. package/skills/grok-building-games/references/threejs-foundational.md +148 -0
  457. package/skills/grok-controls/SKILL.md +274 -0
  458. package/skills/grok-controls/agentsam.skill.json +25 -0
  459. package/skills/grok-design-ui/SKILL.md +122 -0
  460. package/skills/grok-design-ui/agentsam.skill.json +25 -0
  461. package/skills/grok-design-ui/references/animations.md +379 -0
  462. package/skills/grok-design-ui/references/performance.md +88 -0
  463. package/skills/grok-design-ui/references/refined-ui.md +384 -0
  464. package/skills/grok-design-ui/references/surfaces.md +247 -0
  465. package/skills/grok-design-ui/references/typography.md +123 -0
  466. package/skills/grok-game-animation-frames/SKILL.md +84 -0
  467. package/skills/grok-game-animation-frames/agentsam.skill.json +25 -0
  468. package/skills/grok-game-asset-core/SKILL.md +69 -0
  469. package/skills/grok-game-asset-core/agentsam.skill.json +25 -0
  470. package/skills/grok-game-character-consistency/SKILL.md +69 -0
  471. package/skills/grok-game-character-consistency/agentsam.skill.json +25 -0
  472. package/skills/grok-game-tilesets/SKILL.md +65 -0
  473. package/skills/grok-game-tilesets/agentsam.skill.json +25 -0
  474. package/skills/grok-game-ui-icons/SKILL.md +56 -0
  475. package/skills/grok-game-ui-icons/agentsam.skill.json +25 -0
  476. package/skills/grok-generate2dmap/LICENSE +21 -0
  477. package/skills/grok-generate2dmap/SKILL.md +120 -0
  478. package/skills/grok-generate2dmap/SOURCE.md +6 -0
  479. package/skills/grok-generate2dmap/agentsam.skill.json +25 -0
  480. package/skills/grok-generate2dmap/references/deliverables.md +101 -0
  481. package/skills/grok-generate2dmap/references/layered-map-contract.md +209 -0
  482. package/skills/grok-generate2dmap/references/map-strategies.md +341 -0
  483. package/skills/grok-generate2dmap/references/object-production-gate.md +24 -0
  484. package/skills/grok-generate2dmap/references/pipeline.md +149 -0
  485. package/skills/grok-generate2dmap/references/prop-pack-contract.md +174 -0
  486. package/skills/grok-generate2dmap/references/side-scroll-stages.md +29 -0
  487. package/skills/grok-generate2dmap/scripts/compose_layered_preview.py +157 -0
  488. package/skills/grok-generate2dmap/scripts/extract_prop_pack.py +369 -0
  489. package/skills/grok-generate2dsprite/LICENSE +21 -0
  490. package/skills/grok-generate2dsprite/SKILL.md +313 -0
  491. package/skills/grok-generate2dsprite/SOURCE.md +6 -0
  492. package/skills/grok-generate2dsprite/agentsam.skill.json +25 -0
  493. package/skills/grok-generate2dsprite/references/modes.md +124 -0
  494. package/skills/grok-generate2dsprite/references/prompt-rules.md +315 -0
  495. package/skills/grok-generate2dsprite/scripts/generate2dsprite.py +1031 -0
  496. package/skills/grok-generate2dsprite/scripts/make_layout_guide.py +109 -0
  497. package/skills/grok-imagine/SKILL.md +201 -0
  498. package/skills/grok-imagine/agentsam.skill.json +25 -0
  499. package/skills/grok-multiplayer-p2p/SKILL.md +111 -0
  500. package/skills/grok-multiplayer-p2p/agentsam.skill.json +25 -0
  501. package/skills/grok-multiplayer-p2p/references/react-binding.md +144 -0
  502. package/skills/grok-multiplayer-p2p/references/signaling-relay.md +269 -0
  503. package/skills/grok-neon/SKILL.md +157 -0
  504. package/skills/grok-neon/agentsam.skill.json +25 -0
  505. package/skills/grok-og/SKILL.md +102 -0
  506. package/skills/grok-og/agentsam.skill.json +25 -0
  507. package/skills/grok-og/references/brand-pass.md +53 -0
  508. package/skills/grok-og/references/custom-card.md +107 -0
  509. package/skills/grok-og/references/favicon-and-icons.md +48 -0
  510. package/skills/grok-og/references/og-type-contract.md +18 -0
  511. package/skills/grok-og/references/placeholder-card.md +21 -0
  512. package/skills/grok-og/references/x-banner.md +41 -0
  513. package/skills/grok-threejs/SKILL.md +67 -0
  514. package/skills/grok-threejs/agentsam.skill.json +25 -0
  515. package/skills/grok-threejs/references/llms-full.txt +2780 -0
  516. package/skills/grok-video2dsprite/LICENSE +21 -0
  517. package/skills/grok-video2dsprite/SKILL.md +236 -0
  518. package/skills/grok-video2dsprite/SOURCE.md +6 -0
  519. package/skills/grok-video2dsprite/agentsam.skill.json +25 -0
  520. package/skills/grok-video2dsprite/references/pipeline.md +90 -0
  521. package/skills/grok-video2dsprite/references/prompt-rules.md +63 -0
  522. package/skills/grok-video2dsprite/scripts/video2dsprite.py +490 -0
  523. package/skills/grok-xai-api/SKILL.md +152 -0
  524. package/skills/grok-xai-api/agentsam.skill.json +25 -0
  525. package/src/attachments/index.js +6 -0
  526. package/src/attachments/intake.js +235 -0
  527. package/src/capabilities/repository-snapshot.js +19 -2
  528. package/src/cli/command-catalog.js +53 -3
  529. package/src/cli/dispatch.js +1 -0
  530. package/src/cli.js +192 -26
  531. package/src/cloudflare/runtime-status.js +2 -1
  532. package/src/commands/account-auth.js +94 -8
  533. package/src/commands/app.js +307 -3
  534. package/src/commands/autorag.js +67 -13
  535. package/src/commands/billing.js +127 -0
  536. package/src/commands/brand.js +74 -60
  537. package/src/commands/cheat-sheet.js +179 -0
  538. package/src/commands/cloudflare-login.js +222 -0
  539. package/src/commands/cloudflare.js +453 -23
  540. package/src/commands/codebaseindex.js +51 -3
  541. package/src/commands/compute.js +4 -0
  542. package/src/commands/connections.js +11 -5
  543. package/src/commands/credentials.js +116 -0
  544. package/src/commands/gcloud-auth.js +427 -0
  545. package/src/commands/google-cloud.js +375 -0
  546. package/src/commands/identity-init.js +2 -2
  547. package/src/commands/knowledge.js +59 -2
  548. package/src/commands/machine-binary.js +103 -0
  549. package/src/commands/machine.js +137 -0
  550. package/src/commands/mcp.js +226 -33
  551. package/src/commands/ollama.js +3 -2
  552. package/src/commands/plugins.js +7 -2
  553. package/src/commands/product.js +36 -0
  554. package/src/commands/runtime-status.js +28 -9
  555. package/src/commands/runtime.js +313 -0
  556. package/src/commands/rust.js +24 -0
  557. package/src/commands/security.js +67 -4
  558. package/src/commands/setup.js +296 -0
  559. package/src/commands/shell.js +16 -3
  560. package/src/commands/start-local.js +2 -2
  561. package/src/commands/status.js +8 -1
  562. package/src/commands/terminal.js +171 -0
  563. package/src/commands/update.js +140 -0
  564. package/src/commands/whoami.js +329 -65
  565. package/src/features/resolve.js +2 -0
  566. package/src/index.js +4 -0
  567. package/src/indexing/ingest/inventory.js +254 -19
  568. package/src/indexing/ingest/materials.js +3 -9
  569. package/src/indexing/ingest/style-evidence.js +181 -0
  570. package/src/knowledge/engine.js +21 -2
  571. package/src/knowledge/runtime-discovery.js +127 -0
  572. package/src/knowledge/source.js +3 -3
  573. package/src/lib/account-session.js +11 -4
  574. package/src/lib/app-authority.js +172 -0
  575. package/src/lib/auth.js +94 -21
  576. package/src/lib/core-client.js +5 -6
  577. package/src/lib/credentials-audit.js +451 -0
  578. package/src/lib/deploy/health.js +24 -6
  579. package/src/lib/detect-context.js +7 -1
  580. package/src/lib/google-cloud-connection.js +270 -0
  581. package/src/lib/google-cloud-inventory.js +385 -0
  582. package/src/lib/google-desktop-oauth.js +372 -0
  583. package/src/lib/google-studio-brokered-oauth.js +158 -0
  584. package/src/lib/identity-scaffold.js +76 -18
  585. package/src/lib/init-options.js +192 -0
  586. package/src/lib/local-scaffold.js +48 -16
  587. package/src/lib/provider-command-remediation.js +308 -0
  588. package/src/lib/provider-credentials.js +8 -0
  589. package/src/lib/scaffold/index.js +8 -2
  590. package/src/lib/scaffold/mcp-server.js +43 -0
  591. package/src/lib/scaffold/templates/mcp-server/index.js +397 -0
  592. package/src/lib/scaffold/templates/mcp-server/presets.js +39 -0
  593. package/src/lib/scaffold/wizards/cms.js +93 -0
  594. package/src/lib/scaffold/wizards/mcp-server.js +61 -0
  595. package/src/lib/setup/contract.js +26 -0
  596. package/src/lib/setup/discover.js +116 -0
  597. package/src/lib/setup/execute.js +205 -0
  598. package/src/lib/setup/planner.js +134 -0
  599. package/src/lib/setup/recipes.js +235 -0
  600. package/src/lib/setup/runtime-persist.js +197 -0
  601. package/src/lib/setup/runtime.js +394 -0
  602. package/src/lib/slash-commands.js +2 -0
  603. package/src/lib/terminal/machine-identity.js +95 -0
  604. package/src/lib/terminal-local.js +164 -0
  605. package/src/lib/terminal-scopes.js +52 -0
  606. package/src/lib/whoami-capabilities.js +184 -0
  607. package/src/local-pty/server.js +34 -5
  608. package/src/mcp/authority.js +58 -108
  609. package/src/mcp/client-adapters.js +68 -144
  610. package/src/mcp/client.js +142 -122
  611. package/src/mcp/cloudflare-bundles.js +225 -0
  612. package/src/mcp/index.js +12 -0
  613. package/src/models/discovery.js +40 -22
  614. package/src/models/inventory-core.d.ts +105 -0
  615. package/src/models/inventory-core.js +54 -6
  616. package/src/plugins/cloudflare.js +1 -1
  617. package/src/providers/ollama-chat.js +2 -1
  618. package/src/sam/types.js +27 -2
  619. package/src/security/inventory.js +12 -2
  620. package/src/security/local-vault.js +2 -0
  621. package/src/security/logs.js +3 -0
  622. package/src/security/scan.js +1 -1
  623. package/src/ui/cli/help.js +41 -0
  624. package/test/account-session.test.mjs +3 -3
  625. package/test/app-authority-context.test.mjs +32 -0
  626. package/test/apps-scaffold-contract.test.mjs +3 -2
  627. package/test/cli/api-key-env-whoami.test.mjs +2 -2
  628. package/test/cli/catalog-authority.test.mjs +64 -0
  629. package/test/cli/codebaseindex-plan-ux.test.mjs +1 -1
  630. package/test/cli/machine-command.test.mjs +34 -0
  631. package/test/cli/mcp-client.test.mjs +21 -10
  632. package/test/cli/runtime-persist.test.mjs +56 -0
  633. package/test/cli/rust-command.test.mjs +21 -0
  634. package/test/credentials-audit.test.mjs +113 -0
  635. package/test/deploy-health-scan.test.mjs +29 -1
  636. package/test/fixtures/project-authority/customer-app/.agentsam/app.json +5 -0
  637. package/test/fixtures/project-authority/customer-app/apps/my-product/index.ts +1 -0
  638. package/test/fixtures/project-authority/customer-app/wrangler.toml +17 -0
  639. package/test/gcloud-auth.test.mjs +111 -0
  640. package/test/google-cloud-connection.test.mjs +83 -0
  641. package/test/google-cloud-inventory.test.mjs +64 -0
  642. package/test/init-options.test.mjs +35 -0
  643. package/test/integration/app-command.test.mjs +30 -0
  644. package/test/integration/autorag-project-authority.integration.test.mjs +51 -0
  645. package/test/integration/autorag-runtime-discovery.test.mjs +107 -0
  646. package/test/integration/cad-project.test.mjs +4 -1
  647. package/test/integration/cms-app-scaffold.test.mjs +77 -0
  648. package/test/integration/cms-site-tenancy-contract.test.mjs +31 -19
  649. package/test/integration/codebaseindex-ingest.test.mjs +89 -0
  650. package/test/integration/database-hosted-honesty.test.mjs +49 -0
  651. package/test/integration/desktop-keychain-boundary.test.mjs +45 -0
  652. package/test/integration/features-resolve.test.mjs +30 -11
  653. package/test/integration/hosted-work-host-authority.test.mjs +47 -0
  654. package/test/integration/inspect-path-cli.test.mjs +46 -0
  655. package/test/integration/inventory-eligibility.test.mjs +59 -0
  656. package/test/integration/inventory-evidence.test.mjs +125 -0
  657. package/test/integration/local-provider-bridge.test.mjs +65 -0
  658. package/test/integration/local-studio-settings-production.test.mjs +40 -0
  659. package/test/integration/lockfile-sync.test.mjs +26 -0
  660. package/test/integration/provider-env-cli.test.mjs +13 -3
  661. package/test/integration/runtime-status.integration.test.mjs +17 -1
  662. package/test/integration/theme-package-registry.test.mjs +31 -0
  663. package/test/knowledge.test.mjs +35 -1
  664. package/test/loopback-oauth.test.mjs +53 -0
  665. package/test/ollama.test.mjs +22 -0
  666. package/test/repository-snapshot-view.test.mjs +2 -2
  667. package/test/security.test.mjs +37 -0
  668. package/test/setup-planner.test.mjs +74 -0
  669. package/test/setup-runtime.test.mjs +51 -0
  670. package/test/terminal/local-pty.mock.test.mjs +3 -1
  671. package/test/terminal-machine-identity.test.mjs +88 -0
  672. package/test/whoami-resume.test.mjs +27 -6
  673. package/packages/agentsam-brand/test/brand-scan.test.mjs +0 -106
  674. package/packages/agentsam-nav/dist/Nav.d.ts +0 -43
  675. package/packages/agentsam-nav/dist/NavCollapsible.d.ts +0 -10
  676. package/packages/agentsam-nav/dist/NavContent.d.ts +0 -2
  677. package/packages/agentsam-nav/dist/NavFooter.d.ts +0 -2
  678. package/packages/agentsam-nav/dist/NavGroup.d.ts +0 -3
  679. package/packages/agentsam-nav/dist/NavHeader.d.ts +0 -2
  680. package/packages/agentsam-nav/dist/NavMenu.d.ts +0 -22
  681. package/packages/agentsam-nav/dist/NavProvider.d.ts +0 -35
  682. package/packages/agentsam-nav/dist/NavTrigger.d.ts +0 -2
  683. package/packages/agentsam-nav/dist/Surfaces.d.ts +0 -41
  684. package/packages/agentsam-nav/dist/browser.d.ts +0 -11
  685. package/packages/agentsam-nav/dist/browser.global.js +0 -132
  686. package/packages/agentsam-nav/dist/browser.js +0 -613
  687. package/packages/agentsam-nav/dist/contracts.d.ts +0 -76
  688. package/packages/agentsam-nav/dist/index.d.ts +0 -11
  689. package/packages/agentsam-nav/dist/index.js +0 -614
  690. package/packages/agentsam-nav/dist/legacy.css +0 -83
  691. package/packages/agentsam-nav/dist/shell.css +0 -113
  692. package/packages/agentsam-nav/dist/theme.css +0 -113
  693. package/packages/agentsam-nav/dist/utils.d.ts +0 -1
  694. package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +0 -670
  695. package/packages/work-graph/prototype/README.md +0 -32
  696. package/packages/work-graph/prototype/data/demo-workgraph.js +0 -47
  697. package/packages/work-graph/prototype/renderers/timeline-model.js +0 -21
  698. package/packages/work-graph/prototype/renderers/workgraph-runtime.js +0 -38
  699. package/packages/work-graph/prototype-gnantt.html +0 -655
@@ -1,142 +1,65 @@
1
1
  import fs from 'node:fs';
2
2
  import os from 'node:os';
3
3
  import path from 'node:path';
4
+ import { cloudflareBundlesAsServerCatalog, getCloudflareMcpBundle } from './cloudflare-bundles.js';
4
5
 
5
6
  export const MCP_AUTHORITY_SCHEMA = 'agentsam.mcp.authority.v1';
6
7
  export const SERVER_CATALOG_CACHE_SCHEMA = 'agentsam.mcp.server-catalog.v1';
7
8
  export const DEFAULT_SERVER_CATALOG_URL = 'https://mcp.inneranimalmedia.com/api/mcp/servers';
8
9
 
9
10
  /**
10
- * Seed MCP server catalog snapshot derived directly from D1 table:
11
- * `agentsam_mcp_servers`.
12
- *
13
- * Captures live server authority, authentication requirements, and live health metrics
14
- * for offline and instantaneous CLI resolution.
11
+ * Seed MCP *server* catalog.
12
+ * Cloudflare portal rows come from cloudflare-bundles.js (not client-adapters).
13
+ * Health metrics are unknown until probed — do not fabricate latency.
15
14
  */
16
- export const SEED_MCP_SERVER_CATALOG = Object.freeze([
15
+ const IAM_SEED_SERVERS = Object.freeze([
17
16
  {
18
17
  name: 'inneranimalmedia',
19
18
  display_name: 'InnerAnimalMedia Main MCP',
20
19
  url: 'https://mcp.inneranimalmedia.com/mcp',
21
20
  authUrl: 'https://mcp.inneranimalmedia.com/auth/connect',
22
21
  auth_type: 'bearer',
23
- protocol: 'sse',
22
+ protocol: 'streamable_http',
24
23
  defaultClients: ['cursor', 'claude'],
25
- health_status: 'healthy',
26
- avg_latency_ms: 443,
27
- error_rate: 0,
28
- description: 'Inner Animal Media canonical MCP server (~218 tools, D1 telemetry)',
24
+ health_status: 'unknown',
25
+ avg_latency_ms: null,
26
+ error_rate: null,
27
+ description: 'Inner Animal Media canonical MCP server',
28
+ provider: 'inneranimalmedia',
29
29
  },
30
30
  {
31
31
  name: 'agent_sam_bridge',
32
32
  display_name: 'Agent Sam Bridge MCP',
33
33
  url: 'https://mcp.inneranimalmedia.com/mcp',
34
34
  auth_type: 'bearer',
35
- protocol: 'sse',
36
- defaultClients: ['cursor'],
37
- health_status: 'healthy',
38
- avg_latency_ms: 432,
39
- error_rate: 0,
40
- description: 'Agent Sam Bridge MCP',
41
- },
42
- {
43
- name: 'cloudflare-api',
44
- display_name: 'Cloudflare API',
45
- url: 'https://mcp.cloudflare.com/mcp',
46
- auth_type: 'bearer',
47
- protocol: 'sse',
48
- defaultClients: ['cursor'],
49
- health_status: 'degraded',
50
- avg_latency_ms: 9,
51
- error_rate: 0,
52
- description: 'Cloudflare API (Codex registered)',
53
- },
54
- {
55
- name: 'cloudflare-docs',
56
- display_name: 'Cloudflare Docs',
57
- url: 'https://docs.mcp.cloudflare.com/mcp',
58
- auth_type: 'none',
59
- protocol: 'sse',
60
- defaultClients: ['cursor'],
61
- health_status: 'degraded',
62
- avg_latency_ms: 10,
63
- error_rate: 0,
64
- description: 'Cloudflare documentation reference tools',
65
- },
66
- {
67
- name: 'cloudflare-bindings',
68
- display_name: 'Cloudflare Bindings',
69
- url: 'https://bindings.mcp.cloudflare.com/mcp',
70
- auth_type: 'user_oauth_cloudflare',
71
- protocol: 'sse',
72
- defaultClients: ['cursor'],
73
- health_status: 'degraded',
74
- avg_latency_ms: 8,
75
- error_rate: 0,
76
- description: 'Cloudflare Workers storage, AI, and compute bindings',
77
- },
78
- {
79
- name: 'cloudflare-builds',
80
- display_name: 'Cloudflare Builds',
81
- url: 'https://builds.mcp.cloudflare.com/mcp',
82
- auth_type: 'bearer',
83
- protocol: 'sse',
35
+ protocol: 'streamable_http',
84
36
  defaultClients: ['cursor'],
85
- health_status: 'degraded',
86
- avg_latency_ms: 6,
87
- error_rate: 0,
88
- description: 'Cloudflare Workers Builds and CI/CD operations',
89
- },
90
- {
91
- name: 'cloudflare-observability',
92
- display_name: 'Cloudflare Observability',
93
- url: 'https://observability.mcp.cloudflare.com/mcp',
94
- auth_type: 'bearer',
95
- protocol: 'sse',
96
- defaultClients: ['cursor'],
97
- health_status: 'degraded',
98
- avg_latency_ms: 10,
99
- error_rate: 0,
100
- description: 'Cloudflare logs and analytics tools',
37
+ health_status: 'unknown',
38
+ avg_latency_ms: null,
39
+ error_rate: null,
40
+ description: 'Agent Sam Bridge MCP (same IAM endpoint; bridge-scoped tools)',
41
+ provider: 'inneranimalmedia',
101
42
  },
102
43
  {
103
44
  name: 'github-official',
104
45
  display_name: 'GitHub (official)',
105
46
  url: 'https://api.githubcopilot.com/mcp/',
106
47
  auth_type: 'user_oauth_github',
107
- protocol: 'sse',
108
- defaultClients: ['cursor'],
109
- health_status: 'degraded',
110
- avg_latency_ms: 338,
111
- error_rate: 0,
112
- description: 'Official GitHub Copilot MCP server',
113
- },
114
- {
115
- name: 'gmail-official',
116
- display_name: 'Gmail (official Google MCP)',
117
- url: 'https://gmailmcp.googleapis.com/mcp/v1',
118
- auth_type: 'user_oauth_gmail',
119
- protocol: 'sse',
120
- defaultClients: ['cursor'],
121
- health_status: 'degraded',
122
- avg_latency_ms: 662,
123
- error_rate: 0,
124
- description: 'Official Google Gmail MCP server',
125
- },
126
- {
127
- name: 'cf_builds',
128
- display_name: 'Cloudflare Builds System',
129
- url: 'internal',
130
- auth_type: 'bearer',
131
- protocol: 'sse',
48
+ protocol: 'streamable_http',
132
49
  defaultClients: ['cursor'],
133
50
  health_status: 'unknown',
134
51
  avg_latency_ms: null,
135
- error_rate: 0,
136
- description: 'Cloudflare internal builds system',
52
+ error_rate: null,
53
+ description: 'Official GitHub Copilot MCP server',
54
+ provider: 'github',
137
55
  },
138
56
  ]);
139
57
 
58
+ export const SEED_MCP_SERVER_CATALOG = Object.freeze([
59
+ ...IAM_SEED_SERVERS,
60
+ ...cloudflareBundlesAsServerCatalog(),
61
+ ]);
62
+
140
63
  /**
141
64
  * Backward compatibility dictionary mapping server_key/name to preset definition.
142
65
  */
@@ -220,7 +143,7 @@ export async function fetchMcpServerCatalog(options = {}) {
220
143
  return cached.servers;
221
144
  }
222
145
 
223
- return SEED_MCP_SERVER_CATALOG;
146
+ return [...SEED_MCP_SERVER_CATALOG];
224
147
  }
225
148
 
226
149
  export function listKnownServers(options = {}) {
@@ -228,13 +151,35 @@ export function listKnownServers(options = {}) {
228
151
  if (cached?.servers?.length) {
229
152
  return cached.servers;
230
153
  }
231
- return SEED_MCP_SERVER_CATALOG;
154
+ return [...SEED_MCP_SERVER_CATALOG];
232
155
  }
233
156
 
234
157
  export function resolveServerPreset(name, options = {}) {
235
158
  const cleanName = clean(name).toLowerCase();
236
159
  if (!cleanName) return null;
237
160
 
161
+ const bundle = getCloudflareMcpBundle(cleanName);
162
+ if (bundle) {
163
+ return {
164
+ name: bundle.name,
165
+ display_name: bundle.display_name,
166
+ url: bundle.url,
167
+ authUrl: null,
168
+ auth_type: bundle.auth_type,
169
+ protocol: bundle.protocol,
170
+ defaultClients: ['cursor'],
171
+ health_status: 'unknown',
172
+ avg_latency_ms: null,
173
+ error_rate: null,
174
+ description: bundle.description,
175
+ feature_packs: bundle.feature_packs,
176
+ capability_ids: bundle.capability_ids,
177
+ portal_manage_scopes: bundle.portal_manage_scopes,
178
+ provider: 'cloudflare',
179
+ kind: 'mcp_portal_bundle',
180
+ };
181
+ }
182
+
238
183
  const catalog = listKnownServers(options);
239
184
  const found = catalog.find((s) => (s.name || s.server_key || '').toLowerCase() === cleanName);
240
185
  if (found) {
@@ -244,12 +189,17 @@ export function resolveServerPreset(name, options = {}) {
244
189
  url: found.url,
245
190
  authUrl: found.authUrl || (found.name === 'inneranimalmedia' ? 'https://mcp.inneranimalmedia.com/auth/connect' : null),
246
191
  auth_type: found.auth_type || 'bearer',
247
- protocol: found.protocol || 'sse',
192
+ protocol: found.protocol || 'streamable_http',
248
193
  defaultClients: found.defaultClients || ['cursor'],
249
194
  health_status: found.health_status || 'unknown',
250
195
  avg_latency_ms: found.avg_latency_ms ?? null,
251
- error_rate: found.error_rate ?? 0,
196
+ error_rate: found.error_rate ?? null,
252
197
  description: found.description || found.display_name || '',
198
+ feature_packs: found.feature_packs || [],
199
+ capability_ids: found.capability_ids || [],
200
+ portal_manage_scopes: found.portal_manage_scopes || [],
201
+ provider: found.provider || null,
202
+ kind: found.kind || null,
253
203
  };
254
204
  }
255
205
 
@@ -300,7 +250,7 @@ export function writeMcpServer(name, serverConfig, options = {}) {
300
250
  schema_version: MCP_AUTHORITY_SCHEMA,
301
251
  name: clean(name).toLowerCase(),
302
252
  url: clean(serverConfig.url),
303
- protocol: clean(serverConfig.protocol) || 'sse',
253
+ protocol: clean(serverConfig.protocol) || 'streamable_http',
304
254
  auth: serverConfig.auth || null,
305
255
  clients: Array.isArray(serverConfig.clients) ? [...new Set(serverConfig.clients.map(clean).filter(Boolean))] : ['cursor'],
306
256
  metadata: serverConfig.metadata || {},
@@ -1,17 +1,50 @@
1
+ /**
2
+ * MCP *client* adapters — hosts that consume MCP servers (Cursor, Claude, …).
3
+ *
4
+ * Cloudflare MCP portal hostnames are offerable *server* connections
5
+ * (see SEED_OFFERABLE_MCP_SERVER_CONNECTIONS / cloudflare-bundles.js) — not
6
+ * OAuth client registry rows.
7
+ */
1
8
  import fs from 'node:fs';
2
- import os from 'node:os';
3
9
  import path from 'node:path';
4
10
  import { getMcpDir, homeDirectory } from './authority.js';
11
+ import { listCloudflareMcpBundles } from './cloudflare-bundles.js';
5
12
 
6
13
  export const DEFAULT_CLIENT_REGISTRY_URL = 'https://mcp.inneranimalmedia.com/api/mcp/clients';
7
14
  export const CLIENT_REGISTRY_CACHE_SCHEMA = 'agentsam.mcp.client-registry.v1';
8
15
 
9
16
  /**
10
- * Seed external MCP client registry snapshot derived directly from D1 table:
11
- * `agentsam_mcp_oauth_external_client_registry`.
12
- *
13
- * This acts as the baseline cache for offline or pre-fetch execution,
14
- * respecting `is_active` and `sort_order`.
17
+ * Offerable MCP server connections (including every CF portal hostname).
18
+ * These are what `agentsam mcp add` / Studio connection pickers should list.
19
+ */
20
+ export const SEED_OFFERABLE_MCP_SERVER_CONNECTIONS = Object.freeze([
21
+ {
22
+ connection_key: 'inneranimalmedia',
23
+ display_name: 'Inner Animal Media MCP',
24
+ url: 'https://mcp.inneranimalmedia.com/mcp',
25
+ kind: 'mcp_server',
26
+ provider: 'inneranimalmedia',
27
+ },
28
+ ...listCloudflareMcpBundles().map((b) => ({
29
+ connection_key: b.name,
30
+ display_name: b.display_name,
31
+ url: b.url,
32
+ kind: 'mcp_server',
33
+ provider: 'cloudflare',
34
+ host: new URL(b.url).hostname,
35
+ feature_packs: b.feature_packs,
36
+ portal_manage_scopes: b.portal_manage_scopes,
37
+ notes: b.description,
38
+ })),
39
+ ]);
40
+
41
+ export function listOfferableMcpServerConnections() {
42
+ return [...SEED_OFFERABLE_MCP_SERVER_CONNECTIONS];
43
+ }
44
+
45
+ /**
46
+ * Seed for OAuth/external *client* registry only (who connects TO an MCP server).
47
+ * Do not put Cloudflare portal hostnames here — those belong in the server catalog.
15
48
  */
16
49
  export const SEED_EXTERNAL_CLIENT_REGISTRY = Object.freeze([
17
50
  {
@@ -32,105 +65,6 @@ export const SEED_EXTERNAL_CLIENT_REGISTRY = Object.freeze([
32
65
  is_active: 1,
33
66
  notes: 'OpenAI ChatGPT connector_platform_oauth + per-connector redirect',
34
67
  },
35
- {
36
- client_key: 'cf_docs_mcp',
37
- display_name: 'Cloudflare Docs',
38
- oauth_client_id: 'iam_mcp_inneranimalmedia',
39
- redirect_host_patterns: ['docs.mcp.cloudflare.com'],
40
- sort_order: 10,
41
- is_active: 1,
42
- notes: 'https://docs.mcp.cloudflare.com/mcp — CF docs reference',
43
- },
44
- {
45
- client_key: 'cf_bindings_mcp',
46
- display_name: 'Cloudflare Workers Bindings',
47
- oauth_client_id: 'iam_mcp_inneranimalmedia',
48
- redirect_host_patterns: ['bindings.mcp.cloudflare.com'],
49
- sort_order: 11,
50
- is_active: 1,
51
- notes: 'https://bindings.mcp.cloudflare.com/mcp — Workers storage, AI, compute',
52
- },
53
- {
54
- client_key: 'cf_builds_mcp',
55
- display_name: 'Cloudflare Workers Builds',
56
- oauth_client_id: 'iam_mcp_inneranimalmedia',
57
- redirect_host_patterns: ['builds.mcp.cloudflare.com'],
58
- sort_order: 12,
59
- is_active: 1,
60
- notes: 'https://builds.mcp.cloudflare.com/mcp — CI/CD insights',
61
- },
62
- {
63
- client_key: 'cf_observability_mcp',
64
- display_name: 'Cloudflare Observability',
65
- oauth_client_id: 'iam_mcp_inneranimalmedia',
66
- redirect_host_patterns: ['observability.mcp.cloudflare.com'],
67
- sort_order: 13,
68
- is_active: 1,
69
- notes: 'https://observability.mcp.cloudflare.com/mcp — logs and analytics',
70
- },
71
- {
72
- client_key: 'cf_browser_mcp',
73
- display_name: 'Cloudflare Browser Rendering',
74
- oauth_client_id: 'iam_mcp_inneranimalmedia',
75
- redirect_host_patterns: ['browser.mcp.cloudflare.com'],
76
- sort_order: 14,
77
- is_active: 1,
78
- notes: 'https://browser.mcp.cloudflare.com/mcp — fetch pages, markdown, screenshots',
79
- },
80
- {
81
- client_key: 'cf_logs_mcp',
82
- display_name: 'Cloudflare Logpush',
83
- oauth_client_id: 'iam_mcp_inneranimalmedia',
84
- redirect_host_patterns: ['logs.mcp.cloudflare.com'],
85
- sort_order: 15,
86
- is_active: 1,
87
- notes: 'https://logs.mcp.cloudflare.com/mcp — Logpush job health',
88
- },
89
- {
90
- client_key: 'cf_ai_gateway_mcp',
91
- display_name: 'Cloudflare AI Gateway',
92
- oauth_client_id: 'iam_mcp_inneranimalmedia',
93
- redirect_host_patterns: ['ai-gateway.mcp.cloudflare.com'],
94
- sort_order: 16,
95
- is_active: 1,
96
- notes: 'https://ai-gateway.mcp.cloudflare.com/mcp — AI request logs',
97
- },
98
- {
99
- client_key: 'cf_audit_logs_mcp',
100
- display_name: 'Cloudflare Audit Logs',
101
- oauth_client_id: 'iam_mcp_inneranimalmedia',
102
- redirect_host_patterns: ['auditlogs.mcp.cloudflare.com'],
103
- sort_order: 17,
104
- is_active: 1,
105
- notes: 'https://auditlogs.mcp.cloudflare.com/mcp — audit log reports',
106
- },
107
- {
108
- client_key: 'cf_dns_analytics_mcp',
109
- display_name: 'Cloudflare DNS Analytics',
110
- oauth_client_id: 'iam_mcp_inneranimalmedia',
111
- redirect_host_patterns: ['dns-analytics.mcp.cloudflare.com'],
112
- sort_order: 18,
113
- is_active: 1,
114
- notes: 'https://dns-analytics.mcp.cloudflare.com/mcp — DNS performance',
115
- },
116
- {
117
- client_key: 'cf_graphql_mcp',
118
- display_name: 'Cloudflare GraphQL',
119
- oauth_client_id: 'iam_mcp_inneranimalmedia',
120
- redirect_host_patterns: ['graphql.mcp.cloudflare.com'],
121
- sort_order: 19,
122
- is_active: 1,
123
- notes: 'https://graphql.mcp.cloudflare.com/mcp — analytics via GraphQL',
124
- },
125
- {
126
- client_key: 'cf_codemode_mcp',
127
- display_name: 'Cloudflare Code Mode',
128
- oauth_client_id: 'iam_mcp_inneranimalmedia',
129
- redirect_host_patterns: ['mcp.cloudflare.com'],
130
- sort_order: 20,
131
- is_active: 1,
132
- notes: 'https://mcp.cloudflare.com/mcp — full CF API in 2 tools, ~1000 tokens',
133
- },
134
68
  {
135
69
  client_key: 'claude',
136
70
  display_name: 'Claude.ai',
@@ -140,15 +74,6 @@ export const SEED_EXTERNAL_CLIENT_REGISTRY = Object.freeze([
140
74
  is_active: 1,
141
75
  notes: 'Anthropic Claude.ai MCP auth_callback',
142
76
  },
143
- {
144
- client_key: 'cf_containers_mcp',
145
- display_name: 'Cloudflare Container Sandbox',
146
- oauth_client_id: 'iam_mcp_inneranimalmedia',
147
- redirect_host_patterns: ['containers.mcp.cloudflare.com'],
148
- sort_order: 21,
149
- is_active: 1,
150
- notes: 'https://containers.mcp.cloudflare.com/mcp — ephemeral ~10min sandboxed containers',
151
- },
152
77
  {
153
78
  client_key: 'cursor',
154
79
  display_name: 'Cursor',
@@ -156,13 +81,11 @@ export const SEED_EXTERNAL_CLIENT_REGISTRY = Object.freeze([
156
81
  redirect_host_patterns: ['mcp.inneranimalmedia.com', 'cursor.com', 'www.cursor.com'],
157
82
  sort_order: 30,
158
83
  is_active: 1,
159
- notes: 'Cursor desktop (cursor://, localhost:8787) + Cursor Agents',
84
+ notes: 'Cursor desktop (cursor://, localhost) + Cursor Agents',
160
85
  },
161
86
  ]);
162
87
 
163
- /**
164
- * Dynamic list of all recognized active client keys.
165
- */
88
+ /** Active client keys from seed (IDE hosts only). */
166
89
  export const SUPPORTED_CLIENTS = Object.freeze(
167
90
  SEED_EXTERNAL_CLIENT_REGISTRY.filter((c) => Number(c.is_active) !== 0).map((c) => c.client_key),
168
91
  );
@@ -222,8 +145,14 @@ export async function fetchExternalClientRegistry(options = {}) {
222
145
  if (res.ok) {
223
146
  const body = await res.json();
224
147
  if (body?.ok && Array.isArray(body.clients)) {
225
- writeCachedClientRegistry(body.clients, options);
226
- return body.clients.filter((c) => Number(c.is_active) !== 0);
148
+ // Never treat MCP portal hostnames as clients even if a stale API row says so.
149
+ const clients = body.clients.filter((c) => {
150
+ if (Number(c.is_active) === 0) return false;
151
+ const key = String(c.client_key || '').toLowerCase();
152
+ return !key.startsWith('cf_') && !key.includes('mcp.cloudflare');
153
+ });
154
+ writeCachedClientRegistry(clients, options);
155
+ return clients;
227
156
  }
228
157
  }
229
158
  } catch {
@@ -241,7 +170,10 @@ export async function fetchExternalClientRegistry(options = {}) {
241
170
  export function listRegisteredClients(options = {}) {
242
171
  const cached = loadCachedClientRegistry(options);
243
172
  if (cached?.clients?.length) {
244
- return cached.clients;
173
+ return cached.clients.filter((c) => {
174
+ const key = String(c.client_key || '').toLowerCase();
175
+ return !key.startsWith('cf_');
176
+ });
245
177
  }
246
178
  return SEED_EXTERNAL_CLIENT_REGISTRY.filter((c) => Number(c.is_active) !== 0);
247
179
  }
@@ -276,12 +208,10 @@ export function getClientConfigPath(clientName, options = {}) {
276
208
  return path.join(getMcpDir(options), 'clients', 'chatgpt-connector.json');
277
209
  }
278
210
 
279
- // AgentSam apps/ family and standalone binary adapter
280
211
  if (client === 'agentsam') {
281
212
  return path.join(home, '.agentsam', 'mcp.json');
282
213
  }
283
214
 
284
- // Any other active client in registry: adapter configuration JSON
285
215
  if (isClientRegistered(client, options)) {
286
216
  return path.join(getMcpDir(options), 'clients', `${client}.json`);
287
217
  }
@@ -293,29 +223,25 @@ export function detectInstalledClients(options = {}) {
293
223
  const detected = [];
294
224
  const home = homeDirectory(options);
295
225
 
296
- // Check Cursor
297
226
  const cursorDir = path.join(home, '.cursor');
298
- if (fs.existsSync(cursorDir)) {
299
- detected.push('cursor');
300
- }
227
+ if (fs.existsSync(cursorDir)) detected.push('cursor');
301
228
 
302
- // Check Claude
303
- const claudeConfig = getClientConfigPath('claude', options);
304
- if (fs.existsSync(path.dirname(claudeConfig))) {
305
- detected.push('claude');
229
+ try {
230
+ const claudeConfig = getClientConfigPath('claude', options);
231
+ if (fs.existsSync(path.dirname(claudeConfig))) detected.push('claude');
232
+ } catch {
233
+ // ignore
306
234
  }
307
235
 
308
- // Check ChatGPT
309
- const chatgptConfig = getClientConfigPath('chatgpt', options);
310
- if (fs.existsSync(chatgptConfig)) {
311
- detected.push('chatgpt');
236
+ try {
237
+ const chatgptConfig = getClientConfigPath('chatgpt', options);
238
+ if (fs.existsSync(chatgptConfig)) detected.push('chatgpt');
239
+ } catch {
240
+ // ignore
312
241
  }
313
242
 
314
- // Check AgentSam family adapter target (~/.agentsam)
315
243
  const agentsamDir = path.join(home, '.agentsam');
316
- if (fs.existsSync(agentsamDir)) {
317
- detected.push('agentsam');
318
- }
244
+ if (fs.existsSync(agentsamDir)) detected.push('agentsam');
319
245
 
320
246
  return detected;
321
247
  }
@@ -338,13 +264,12 @@ export function syncServerToClient(clientName, serverName, serverConfig, options
338
264
  const configPath = getClientConfigPath(clientName, options);
339
265
  const client = clean(clientName).toLowerCase();
340
266
 
341
- // ChatGPT connector payload export
342
267
  if (client === 'chatgpt') {
343
268
  const chatgptPayload = {
344
269
  schema: 'agentsam.mcp.client-adapter.chatgpt.v1',
345
270
  name: serverName,
346
271
  server_url: serverConfig.url,
347
- protocol: serverConfig.protocol || 'sse',
272
+ protocol: serverConfig.protocol || 'streamable_http',
348
273
  auth: serverConfig.auth || { type: 'none' },
349
274
  description: serverConfig.metadata?.description || `MCP Server connection for ${serverName}`,
350
275
  instructions: 'Use in ChatGPT Custom GPTs or ChatGPT Developer Mode Action Connectors.',
@@ -354,7 +279,6 @@ export function syncServerToClient(clientName, serverName, serverConfig, options
354
279
  return { client, configPath, synced: true };
355
280
  }
356
281
 
357
- // Default Cursor / Claude mcpServers schema
358
282
  const existing = readJsonSafe(configPath) || { mcpServers: {} };
359
283
  if (!existing.mcpServers || typeof existing.mcpServers !== 'object') {
360
284
  existing.mcpServers = {};
@@ -362,10 +286,10 @@ export function syncServerToClient(clientName, serverName, serverConfig, options
362
286
 
363
287
  const headers = {};
364
288
  if (serverConfig.auth?.token) {
365
- headers['Authorization'] = `Bearer ${serverConfig.auth.token}`;
289
+ headers.Authorization = `Bearer ${serverConfig.auth.token}`;
366
290
  }
367
291
  if (client === 'cursor') {
368
- headers['Accept'] = 'application/json, text/event-stream';
292
+ headers.Accept = 'application/json, text/event-stream';
369
293
  }
370
294
 
371
295
  existing.mcpServers[serverName] = {