@inneranimalmedia/agentsam-sdk 2.6.5 → 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 (371) hide show
  1. package/AGENTSAM.md +29 -0
  2. package/apps/README.md +5 -0
  3. package/apps/cad-creator/README.md +4 -4
  4. package/apps/cad-creator/shared/cad/package.json +1 -1
  5. package/apps/client-cms-editor/AGENTS.md +12 -7
  6. package/apps/client-cms-editor/README.md +76 -48
  7. package/apps/client-cms-editor/agentsam.app.json +26 -9
  8. package/apps/client-cms-editor/backend/package.json +20 -3
  9. package/apps/client-cms-editor/backend/src/api/client.ts +134 -101
  10. package/apps/client-cms-editor/backend/src/index.ts +1 -1
  11. package/apps/client-cms-editor/backend/src/model.ts +11 -115
  12. package/apps/client-cms-editor/backend/src/preview/bridge.ts +1 -1
  13. package/apps/client-cms-editor/backend/tsconfig.json +6 -1
  14. package/apps/client-cms-editor/bin/agentsam-cms.js +262 -0
  15. package/apps/client-cms-editor/bin/agentsam-cms.mjs +2 -228
  16. package/apps/client-cms-editor/frontend/package.json +16 -7
  17. package/apps/client-cms-editor/frontend/src/AgentSamDrawer.tsx +9 -41
  18. package/apps/client-cms-editor/frontend/src/CmsAgentSurface.tsx +19 -174
  19. package/apps/client-cms-editor/frontend/src/adapters/heuristic.ts +29 -0
  20. package/apps/client-cms-editor/frontend/src/adapters/http.ts +628 -0
  21. package/apps/client-cms-editor/frontend/src/adapters/memory.ts +510 -0
  22. package/apps/client-cms-editor/frontend/src/editor/CmsEditor.tsx +213 -0
  23. package/apps/client-cms-editor/frontend/src/editor/CmsEditorProvider.tsx +20 -0
  24. package/apps/client-cms-editor/frontend/src/editor/canvas/PreviewCanvas.tsx +53 -0
  25. package/apps/client-cms-editor/frontend/src/{CmsEditor.tsx → editor/legacy/CmsEditorPrototype.tsx} +52 -23
  26. package/apps/client-cms-editor/frontend/src/editor/useCmsEditorController.ts +218 -0
  27. package/apps/client-cms-editor/frontend/src/index.ts +19 -5
  28. package/apps/client-cms-editor/frontend/src/lib/agent-host.ts +24 -0
  29. package/apps/client-cms-editor/frontend/src/main.tsx +82 -8
  30. package/apps/client-cms-editor/frontend/src/mount.tsx +92 -30
  31. package/apps/client-cms-editor/frontend/src/styles/agentsam-drawer.css +1 -1
  32. package/apps/client-cms-editor/frontend/src/styles/cmsShell.css +8 -8
  33. package/apps/client-cms-editor/frontend/src/styles/studio.css +55 -3
  34. package/apps/client-cms-editor/frontend/tsconfig.json +12 -1
  35. package/apps/client-cms-editor/frontend/vite.config.ts +12 -0
  36. package/apps/client-cms-editor/package-lock.json +973 -134
  37. package/apps/client-cms-editor/package.json +118 -6
  38. package/apps/client-cms-editor/reference/harvest/HARVEST_RECEIPT.json +201 -0
  39. package/apps/client-cms-editor/reference/harvest/PROVENANCE_HISTORY.txt +10 -0
  40. package/apps/client-cms-editor/reference/harvest/README.md +8 -0
  41. package/apps/client-cms-editor/reference/harvest/plans/ARCHIVE-INTAKE.md +135 -0
  42. package/apps/client-cms-editor/reference/harvest/plans/CHATGPT-IDENTITY-HARVEST.md +83 -0
  43. package/apps/client-cms-editor/reference/harvest/plans/CMS-EDITOR-HARVEST.md +166 -0
  44. package/apps/client-cms-editor/reference/harvest/plans/HARVEST-INDEX.md +196 -0
  45. package/apps/client-cms-editor/reference/harvest/plans/INNERANIMALS-CONTENT-001.md +137 -0
  46. package/apps/client-cms-editor/reference/harvest/plans/NO-IMPLICIT-SIDE-EFFECTS.md +87 -0
  47. package/apps/client-cms-editor/reference/harvest/plans/STOREFRONT-SURFACE-MAP.md +140 -0
  48. package/apps/client-cms-editor/reference/harvest/plans/THEME-INNERANIMALS-HARVEST.md +137 -0
  49. package/apps/client-cms-editor/reference/harvest/plans/TOOLING-LAB.md +63 -0
  50. package/apps/client-cms-editor/reference/harvest/plans/harvest-manifest.json +97 -0
  51. package/apps/client-cms-editor/reference/harvest/plans/local-cms-harvest-schema.sql +328 -0
  52. package/apps/client-cms-editor/shared/cms/package.json +17 -7
  53. package/apps/client-cms-editor/shared/cms/src/adapter.ts +204 -0
  54. package/apps/client-cms-editor/shared/cms/src/agent-context.ts +7 -5
  55. package/apps/client-cms-editor/shared/cms/src/editor-types.ts +32 -0
  56. package/apps/client-cms-editor/shared/cms/src/host.ts +82 -0
  57. package/apps/client-cms-editor/shared/cms/src/index.ts +4 -0
  58. package/apps/client-cms-editor/shared/cms/src/map.ts +115 -0
  59. package/apps/client-cms-editor/shared/cms/src/starter-pack.ts +158 -0
  60. package/contracts/source-types.v1.json +353 -0
  61. package/docs/CMS_CONTEXTUAL_COMPOSER.md +1 -1
  62. package/docs/PRODUCT_LIFECYCLE.md +566 -0
  63. package/docs/THEME_REFINERY.md +2 -2
  64. package/docs/architecture/AGENTSAM_RUNTIME_PROTOCOL.md +40 -20
  65. package/docs/content-studio/REVISION_GATE_2026-09-27.md +1 -1
  66. package/docs/plans/LOCAL_STUDIO_DESKTOP_RELEASE_2026-09-29.md +150 -0
  67. package/migrations/d1/0017_identity_native_oauth.sql +21 -0
  68. package/native/agentsam-machine/Cargo.lock +426 -0
  69. package/native/agentsam-machine/Cargo.toml +9 -0
  70. package/native/agentsam-machine/cli/Cargo.toml +14 -0
  71. package/native/agentsam-machine/cli/src/main.rs +77 -0
  72. package/native/agentsam-machine/core/Cargo.toml +15 -0
  73. package/native/agentsam-machine/core/src/assets.rs +790 -0
  74. package/native/agentsam-machine/core/src/bound.rs +298 -0
  75. package/native/agentsam-machine/core/src/enrich.rs +706 -0
  76. package/native/agentsam-machine/core/src/frontend.rs +442 -0
  77. package/native/agentsam-machine/core/src/lib.rs +1086 -0
  78. package/native/agentsam-machine/core/src/liquid.rs +528 -0
  79. package/native/agentsam-machine/core/src/source_types.rs +78 -0
  80. package/package.json +51 -21
  81. package/packages/agentsam-brand/README.md +1 -1
  82. package/packages/agentsam-brand/package.json +4 -4
  83. package/packages/agentsam-brand/src/index.js +1 -1
  84. package/packages/agentsam-contracts/package.json +13 -3
  85. package/packages/agentsam-contracts/src/tools.ts +22 -0
  86. package/packages/agentsam-errors/package.json +13 -3
  87. package/packages/agentsam-knowledge/package.json +18 -4
  88. package/packages/agentsam-knowledge/src/autorag/index.js +10 -3
  89. package/packages/agentsam-knowledge/src/backends/index.js +33 -1
  90. package/packages/agentsam-knowledge/test/autorag.test.mjs +60 -1
  91. package/packages/agentsam-nav/package.json +24 -6
  92. package/packages/agentsam-queue-control/README.md +1 -1
  93. package/packages/agentsam-queue-control/package.json +7 -2
  94. package/packages/agentsam-rapid-rust/src/main.rs +1 -1
  95. package/packages/agentsam-repository/package.json +13 -3
  96. package/packages/agentsam-repository/src/source-types.js +8 -0
  97. package/packages/agentsam-vault/package.json +14 -4
  98. package/packages/agentsam-workbench/package.json +15 -4
  99. package/packages/agentsam-workbench/src/agent/ToolPermissionRequest.tsx +94 -0
  100. package/packages/agentsam-workbench/src/agent/index.ts +2 -0
  101. package/packages/agentsam-workbench/src/agent/tool-permission.css +134 -0
  102. package/packages/connectors/cloudflare/package.json +13 -3
  103. package/packages/connectors/cloudflare/src/api-client.js +3 -2
  104. package/packages/connectors/cloudflare/src/families/vectorize.js +127 -0
  105. package/packages/connectors/cloudflare/src/index.js +1 -0
  106. package/packages/heuristic-theme/README.md +2 -2
  107. package/packages/heuristic-theme/package.json +8 -3
  108. package/packages/heuristic-theme/src/registry.js +2 -2
  109. package/packages/heuristic-theme/src/theme.js +1 -1
  110. package/packages/heuristic-theme/test/theme.test.mjs +1 -1
  111. package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +1 -1
  112. package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +27 -7
  113. package/packages/identity/README.md +2 -2
  114. package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +18 -15
  115. package/packages/identity/migrations/apply-portable.js +109 -0
  116. package/packages/identity/migrations/sqlite/004_identity_oauth_consent_catalog.sql +1 -1
  117. package/packages/identity/migrations/sqlite/005_identity_company_native.sql +52 -0
  118. package/packages/identity/package.json +27 -6
  119. package/packages/identity/schema/agentsam.identity/manifest.json +101 -0
  120. package/packages/identity/scripts/local-identity-bridge.mjs +13 -7
  121. package/packages/identity/scripts/preview-auth-portal.mjs +6 -6
  122. package/packages/identity/src/adapters/cloudflare-d1/index.js +8 -401
  123. package/packages/identity/src/adapters/iam-compat/index.js +540 -0
  124. package/packages/identity/src/adapters/portable-d1/index.js +18 -0
  125. package/packages/identity/src/adapters/portable-store.js +479 -0
  126. package/packages/identity/src/adapters/sqlite/index.js +13 -312
  127. package/packages/identity/src/contracts/auth-config.js +0 -1
  128. package/packages/identity/src/contracts/identity-store.js +56 -5
  129. package/packages/identity/src/contracts/provider.js +1 -0
  130. package/packages/identity/src/contracts/sign-in-options.js +104 -0
  131. package/packages/identity/src/core/constants.js +1 -1
  132. package/packages/identity/src/core/session-policy.js +31 -0
  133. package/packages/identity/src/frontend/auth-portal/pages/login.html +6 -6
  134. package/packages/identity/src/frontend/auth-portal/pages/reset.html +5 -5
  135. package/packages/identity/src/frontend/auth-portal/pages/signup.html +5 -5
  136. package/packages/identity/src/frontend/auth-portal/shared/company-branding.js +1 -1
  137. package/packages/identity/src/frontend/auth-portal/shared/desktop-identity-bridge.js +6 -37
  138. package/packages/identity/src/index.js +28 -1
  139. package/packages/identity/src/migrations/README.md +23 -23
  140. package/packages/identity/src/oauth/README.md +1 -1
  141. package/packages/identity/src/oauth/credentials.js +10 -11
  142. package/packages/identity/src/oauth/google-desktop-exchange.js +195 -27
  143. package/packages/identity/src/oauth/iam-platform.js +21 -9
  144. package/packages/identity/src/oauth/native-handoff.js +136 -0
  145. package/packages/identity/src/providers/chatgpt/headers.js +65 -0
  146. package/packages/identity/src/providers/chatgpt/index.js +86 -0
  147. package/packages/identity/src/providers/chatgpt/mapper.js +43 -0
  148. package/packages/identity/src/providers/chatgpt/paths.js +45 -0
  149. package/packages/identity/src/providers/github/oauth.js +1 -2
  150. package/packages/identity/src/providers/github/profile.js +16 -2
  151. package/packages/identity/src/providers/index.js +11 -3
  152. package/packages/identity/src/server/identity-service.js +2 -1
  153. package/packages/identity/src/server/worker-router.js +71 -18
  154. package/packages/identity/tests/chatgpt-provider.test.mjs +75 -0
  155. package/packages/identity/tests/google-desktop-identity-login.test.mjs +210 -0
  156. package/packages/identity/tests/identity-init-scaffold.test.mjs +15 -4
  157. package/packages/identity/tests/lane1-identity-store-parity.test.mjs +527 -0
  158. package/packages/identity/tests/lane1-packed-consumer.test.mjs +175 -0
  159. package/packages/identity/tests/native-oauth-handoff.test.mjs +292 -0
  160. package/packages/identity/tests/oauth-credentials.test.mjs +4 -4
  161. package/packages/identity/tests/preview-auth-portal.test.mjs +4 -2
  162. package/packages/identity/tests/session-routes-policy.test.mjs +13 -1
  163. package/packages/identity/tests/worker-runtime-boundary.test.mjs +11 -0
  164. package/packages/providers/completeful/package.json +7 -2
  165. package/packages/theme-church-site/package.json +17 -6
  166. package/packages/theme-church-site/src/harvest.json +4 -2
  167. package/packages/theme-church-site/src/index.js +7 -3
  168. package/packages/theme-church-site/test/theme.test.mjs +4 -2
  169. package/packages/theme-companions-site/package.json +17 -6
  170. package/packages/theme-companions-site/src/harvest.json +4 -2
  171. package/packages/theme-companions-site/src/index.js +7 -3
  172. package/packages/theme-companions-site/test/theme.test.mjs +4 -2
  173. package/packages/theme-floors-site/package.json +17 -6
  174. package/packages/theme-floors-site/src/harvest.json +4 -2
  175. package/packages/theme-floors-site/src/index.js +7 -3
  176. package/packages/theme-floors-site/test/theme.test.mjs +4 -2
  177. package/packages/theme-fuelnfree-site/package.json +17 -6
  178. package/packages/theme-fuelnfree-site/src/harvest.json +4 -2
  179. package/packages/theme-fuelnfree-site/src/index.js +7 -3
  180. package/packages/theme-fuelnfree-site/test/theme.test.mjs +4 -2
  181. package/packages/theme-handyman-site/package.json +17 -6
  182. package/packages/theme-handyman-site/src/harvest.json +4 -2
  183. package/packages/theme-handyman-site/src/index.js +7 -3
  184. package/packages/theme-handyman-site/test/theme.test.mjs +4 -2
  185. package/packages/theme-insurance-site/package.json +17 -6
  186. package/packages/theme-insurance-site/src/harvest.json +4 -2
  187. package/packages/theme-insurance-site/src/index.js +7 -3
  188. package/packages/theme-insurance-site/test/theme.test.mjs +4 -2
  189. package/packages/theme-scenes/README.md +1 -1
  190. package/packages/theme-scenes/package.json +4 -3
  191. package/packages/theme-scenes/src/registry.js +187 -0
  192. package/packages/theme-shinshu-site/package.json +17 -6
  193. package/packages/theme-shinshu-site/src/harvest.json +4 -2
  194. package/packages/theme-shinshu-site/src/index.js +7 -3
  195. package/packages/theme-shinshu-site/test/theme.test.mjs +4 -2
  196. package/packages/work-graph/package.json +14 -4
  197. package/protocol/FILEMETA_V1.md +2 -2
  198. package/protocol/capabilities/manifest.json +1 -1
  199. package/protocol/database/agentsam.schema-pack.v1.schema.json +72 -0
  200. package/protocol/presets/catalog.json +2 -2
  201. package/protocol/theme-refinery/lineage-registry.json +105 -0
  202. package/protocol/theme-refinery/product-metadata.schema.json +21 -1
  203. package/skills/grok-auth/SKILL.md +110 -0
  204. package/skills/grok-auth/agentsam.skill.json +25 -0
  205. package/skills/grok-auth/references/grok-identity.md +64 -0
  206. package/skills/grok-auth/references/per-user-data.md +49 -0
  207. package/skills/grok-auth/references/prewired-and-env.md +54 -0
  208. package/skills/grok-auth/references/session-ui.md +133 -0
  209. package/skills/grok-auth/references/sign-in-methods.md +55 -0
  210. package/skills/grok-auth/references/wiring.md +71 -0
  211. package/skills/grok-building-games/SKILL.md +213 -0
  212. package/skills/grok-building-games/agentsam.skill.json +25 -0
  213. package/skills/grok-building-games/references/3d-libs.md +64 -0
  214. package/skills/grok-building-games/references/ai-pathfinding.md +122 -0
  215. package/skills/grok-building-games/references/audio.md +129 -0
  216. package/skills/grok-building-games/references/babylon.md +202 -0
  217. package/skills/grok-building-games/references/collision-physics.md +122 -0
  218. package/skills/grok-building-games/references/ecs-architecture.md +111 -0
  219. package/skills/grok-building-games/references/game-feel-juice.md +110 -0
  220. package/skills/grok-building-games/references/genres/board-card-chess.md +89 -0
  221. package/skills/grok-building-games/references/genres/endless-runner.md +83 -0
  222. package/skills/grok-building-games/references/genres/fps.md +105 -0
  223. package/skills/grok-building-games/references/genres/platformer-2d.md +97 -0
  224. package/skills/grok-building-games/references/genres/puzzle-match3-tetris.md +131 -0
  225. package/skills/grok-building-games/references/genres/racing-kart.md +106 -0
  226. package/skills/grok-building-games/references/genres/topdown-twin-stick.md +97 -0
  227. package/skills/grok-building-games/references/genres/tower-defense.md +84 -0
  228. package/skills/grok-building-games/references/genres/voxel-minecraft.md +89 -0
  229. package/skills/grok-building-games/references/input.md +139 -0
  230. package/skills/grok-building-games/references/phaser.md +277 -0
  231. package/skills/grok-building-games/references/procedural-generation.md +141 -0
  232. package/skills/grok-building-games/references/save-persistence.md +108 -0
  233. package/skills/grok-building-games/references/threejs-foundational.md +148 -0
  234. package/skills/grok-controls/SKILL.md +274 -0
  235. package/skills/grok-controls/agentsam.skill.json +25 -0
  236. package/skills/grok-design-ui/SKILL.md +122 -0
  237. package/skills/grok-design-ui/agentsam.skill.json +25 -0
  238. package/skills/grok-design-ui/references/animations.md +379 -0
  239. package/skills/grok-design-ui/references/performance.md +88 -0
  240. package/skills/grok-design-ui/references/refined-ui.md +384 -0
  241. package/skills/grok-design-ui/references/surfaces.md +247 -0
  242. package/skills/grok-design-ui/references/typography.md +123 -0
  243. package/skills/grok-game-animation-frames/SKILL.md +84 -0
  244. package/skills/grok-game-animation-frames/agentsam.skill.json +25 -0
  245. package/skills/grok-game-asset-core/SKILL.md +69 -0
  246. package/skills/grok-game-asset-core/agentsam.skill.json +25 -0
  247. package/skills/grok-game-character-consistency/SKILL.md +69 -0
  248. package/skills/grok-game-character-consistency/agentsam.skill.json +25 -0
  249. package/skills/grok-game-tilesets/SKILL.md +65 -0
  250. package/skills/grok-game-tilesets/agentsam.skill.json +25 -0
  251. package/skills/grok-game-ui-icons/SKILL.md +56 -0
  252. package/skills/grok-game-ui-icons/agentsam.skill.json +25 -0
  253. package/skills/grok-generate2dmap/LICENSE +21 -0
  254. package/skills/grok-generate2dmap/SKILL.md +120 -0
  255. package/skills/grok-generate2dmap/SOURCE.md +6 -0
  256. package/skills/grok-generate2dmap/agentsam.skill.json +25 -0
  257. package/skills/grok-generate2dmap/references/deliverables.md +101 -0
  258. package/skills/grok-generate2dmap/references/layered-map-contract.md +209 -0
  259. package/skills/grok-generate2dmap/references/map-strategies.md +341 -0
  260. package/skills/grok-generate2dmap/references/object-production-gate.md +24 -0
  261. package/skills/grok-generate2dmap/references/pipeline.md +149 -0
  262. package/skills/grok-generate2dmap/references/prop-pack-contract.md +174 -0
  263. package/skills/grok-generate2dmap/references/side-scroll-stages.md +29 -0
  264. package/skills/grok-generate2dmap/scripts/compose_layered_preview.py +157 -0
  265. package/skills/grok-generate2dmap/scripts/extract_prop_pack.py +369 -0
  266. package/skills/grok-generate2dsprite/LICENSE +21 -0
  267. package/skills/grok-generate2dsprite/SKILL.md +313 -0
  268. package/skills/grok-generate2dsprite/SOURCE.md +6 -0
  269. package/skills/grok-generate2dsprite/agentsam.skill.json +25 -0
  270. package/skills/grok-generate2dsprite/references/modes.md +124 -0
  271. package/skills/grok-generate2dsprite/references/prompt-rules.md +315 -0
  272. package/skills/grok-generate2dsprite/scripts/generate2dsprite.py +1031 -0
  273. package/skills/grok-generate2dsprite/scripts/make_layout_guide.py +109 -0
  274. package/skills/grok-imagine/SKILL.md +201 -0
  275. package/skills/grok-imagine/agentsam.skill.json +25 -0
  276. package/skills/grok-multiplayer-p2p/SKILL.md +111 -0
  277. package/skills/grok-multiplayer-p2p/agentsam.skill.json +25 -0
  278. package/skills/grok-multiplayer-p2p/references/react-binding.md +144 -0
  279. package/skills/grok-multiplayer-p2p/references/signaling-relay.md +269 -0
  280. package/skills/grok-neon/SKILL.md +157 -0
  281. package/skills/grok-neon/agentsam.skill.json +25 -0
  282. package/skills/grok-og/SKILL.md +102 -0
  283. package/skills/grok-og/agentsam.skill.json +25 -0
  284. package/skills/grok-og/references/brand-pass.md +53 -0
  285. package/skills/grok-og/references/custom-card.md +107 -0
  286. package/skills/grok-og/references/favicon-and-icons.md +48 -0
  287. package/skills/grok-og/references/og-type-contract.md +18 -0
  288. package/skills/grok-og/references/placeholder-card.md +21 -0
  289. package/skills/grok-og/references/x-banner.md +41 -0
  290. package/skills/grok-threejs/SKILL.md +67 -0
  291. package/skills/grok-threejs/agentsam.skill.json +25 -0
  292. package/skills/grok-threejs/references/llms-full.txt +2780 -0
  293. package/skills/grok-video2dsprite/LICENSE +21 -0
  294. package/skills/grok-video2dsprite/SKILL.md +236 -0
  295. package/skills/grok-video2dsprite/SOURCE.md +6 -0
  296. package/skills/grok-video2dsprite/agentsam.skill.json +25 -0
  297. package/skills/grok-video2dsprite/references/pipeline.md +90 -0
  298. package/skills/grok-video2dsprite/references/prompt-rules.md +63 -0
  299. package/skills/grok-video2dsprite/scripts/video2dsprite.py +490 -0
  300. package/skills/grok-xai-api/SKILL.md +152 -0
  301. package/skills/grok-xai-api/agentsam.skill.json +25 -0
  302. package/src/cli/command-catalog.js +46 -4
  303. package/src/cli/dispatch.js +1 -0
  304. package/src/cli.js +10 -0
  305. package/src/cloudflare/runtime-status.js +2 -1
  306. package/src/commands/autorag.js +67 -13
  307. package/src/commands/cheat-sheet.js +29 -4
  308. package/src/commands/codebaseindex.js +45 -2
  309. package/src/commands/knowledge.js +59 -2
  310. package/src/commands/machine-binary.js +103 -0
  311. package/src/commands/machine.js +137 -0
  312. package/src/commands/security.js +67 -4
  313. package/src/commands/setup.js +33 -16
  314. package/src/commands/status.js +8 -1
  315. package/src/features/resolve.js +1 -0
  316. package/src/knowledge/engine.js +21 -2
  317. package/src/knowledge/runtime-discovery.js +127 -0
  318. package/src/lib/identity-scaffold.js +53 -13
  319. package/src/lib/setup/recipes.js +1 -1
  320. package/src/models/discovery.js +40 -22
  321. package/src/models/inventory-core.d.ts +105 -0
  322. package/src/models/inventory-core.js +54 -6
  323. package/src/security/logs.js +3 -0
  324. package/src/ui/cli/help.js +41 -0
  325. package/test/apps-scaffold-contract.test.mjs +3 -2
  326. package/test/cli/api-key-env-whoami.test.mjs +2 -2
  327. package/test/cli/catalog-authority.test.mjs +64 -0
  328. package/test/cli/machine-command.test.mjs +34 -0
  329. package/test/fixtures/project-authority/customer-app/.agentsam/app.json +5 -0
  330. package/test/fixtures/project-authority/customer-app/apps/my-product/index.ts +1 -0
  331. package/test/fixtures/project-authority/customer-app/wrangler.toml +17 -0
  332. package/test/integration/autorag-project-authority.integration.test.mjs +51 -0
  333. package/test/integration/autorag-runtime-discovery.test.mjs +107 -0
  334. package/test/integration/cms-app-scaffold.test.mjs +37 -31
  335. package/test/integration/cms-site-tenancy-contract.test.mjs +28 -17
  336. package/test/integration/codebaseindex-ingest.test.mjs +41 -0
  337. package/test/integration/database-hosted-honesty.test.mjs +49 -0
  338. package/test/integration/desktop-keychain-boundary.test.mjs +45 -0
  339. package/test/integration/hosted-work-host-authority.test.mjs +47 -0
  340. package/test/integration/inventory-eligibility.test.mjs +59 -0
  341. package/test/integration/local-provider-bridge.test.mjs +65 -0
  342. package/test/integration/local-studio-settings-production.test.mjs +40 -0
  343. package/test/integration/lockfile-sync.test.mjs +26 -0
  344. package/test/integration/provider-env-cli.test.mjs +13 -3
  345. package/test/integration/runtime-status.integration.test.mjs +16 -1
  346. package/test/integration/theme-package-registry.test.mjs +31 -0
  347. package/test/repository-snapshot-view.test.mjs +2 -2
  348. package/test/security.test.mjs +14 -0
  349. package/test/terminal-machine-identity.test.mjs +2 -2
  350. package/apps/client-cms-editor/backend/src/demo-bootstrap.ts +0 -145
  351. package/packages/agentsam-nav/dist/Nav.d.ts +0 -43
  352. package/packages/agentsam-nav/dist/NavCollapsible.d.ts +0 -10
  353. package/packages/agentsam-nav/dist/NavContent.d.ts +0 -2
  354. package/packages/agentsam-nav/dist/NavFooter.d.ts +0 -2
  355. package/packages/agentsam-nav/dist/NavGroup.d.ts +0 -3
  356. package/packages/agentsam-nav/dist/NavHeader.d.ts +0 -2
  357. package/packages/agentsam-nav/dist/NavMenu.d.ts +0 -22
  358. package/packages/agentsam-nav/dist/NavProvider.d.ts +0 -35
  359. package/packages/agentsam-nav/dist/NavTrigger.d.ts +0 -2
  360. package/packages/agentsam-nav/dist/Surfaces.d.ts +0 -41
  361. package/packages/agentsam-nav/dist/browser.d.ts +0 -11
  362. package/packages/agentsam-nav/dist/browser.global.js +0 -132
  363. package/packages/agentsam-nav/dist/browser.js +0 -613
  364. package/packages/agentsam-nav/dist/contracts.d.ts +0 -76
  365. package/packages/agentsam-nav/dist/index.d.ts +0 -11
  366. package/packages/agentsam-nav/dist/index.js +0 -614
  367. package/packages/agentsam-nav/dist/legacy.css +0 -83
  368. package/packages/agentsam-nav/dist/shell.css +0 -113
  369. package/packages/agentsam-nav/dist/theme.css +0 -113
  370. package/packages/agentsam-nav/dist/utils.d.ts +0 -1
  371. package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +0 -670
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inneranimalmedia/agentsam-sdk",
3
- "version": "2.6.5",
3
+ "version": "2.6.7",
4
4
  "description": "Portable AgentSam SDK and CLI kits for local scaffolding, repository intelligence, incremental indexing, identity adapters, and verified dependency maintenance.",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
@@ -55,6 +55,7 @@
55
55
  "./identity/contracts/provider": "./packages/identity/src/contracts/provider.js",
56
56
  "./identity/contracts/external-identity": "./packages/identity/src/contracts/external-identity.js",
57
57
  "./identity/contracts/auth-config": "./packages/identity/src/contracts/auth-config.js",
58
+ "./identity/contracts/identity-store": "./packages/identity/src/contracts/identity-store.js",
58
59
  "./identity/oauth/callback": "./packages/identity/src/oauth/callback.js",
59
60
  "./identity/oauth/finalize-inbound": "./packages/identity/src/oauth/finalize-inbound.js",
60
61
  "./identity/oauth/redirect-paths": "./packages/identity/src/oauth/redirect-paths.js",
@@ -64,6 +65,9 @@
64
65
  "./identity/recovery/password-reset": "./packages/identity/src/recovery/password-reset.js",
65
66
  "./identity/server/worker-router": "./packages/identity/src/server/worker-router.js",
66
67
  "./identity/server/identity-service": "./packages/identity/src/server/identity-service.js",
68
+ "./identity/adapters/sqlite": "./packages/identity/src/adapters/sqlite/index.js",
69
+ "./identity/adapters/portable-d1": "./packages/identity/src/adapters/portable-d1/index.js",
70
+ "./identity/adapters/iam-compat": "./packages/identity/src/adapters/iam-compat/index.js",
67
71
  "./identity/adapters/cloudflare-d1": "./packages/identity/src/adapters/cloudflare-d1/index.js",
68
72
  "./identity/auth-portal/preview": "./packages/identity/scripts/preview-auth-portal.mjs",
69
73
  "./package.json": "./package.json",
@@ -106,7 +110,15 @@
106
110
  "./theme/insurance-site": "./packages/theme-insurance-site/src/index.js",
107
111
  "./theme/shinshu-site": "./packages/theme-shinshu-site/src/index.js",
108
112
  "./identity/oauth/consent-view": "./packages/identity/src/oauth/consent-view.js",
109
- "./theme-scenes": "./packages/theme-scenes/src/index.js"
113
+ "./theme-scenes": "./packages/theme-scenes/src/index.js",
114
+ "./theme/cypress": "./packages/theme-church-site/src/index.js",
115
+ "./theme/violet": "./packages/theme-companions-site/src/index.js",
116
+ "./theme/grove": "./packages/theme-floors-site/src/index.js",
117
+ "./theme/ember": "./packages/theme-fuelnfree-site/src/index.js",
118
+ "./theme/forge": "./packages/theme-handyman-site/src/index.js",
119
+ "./theme/harbor": "./packages/theme-insurance-site/src/index.js",
120
+ "./theme/summit": "./packages/theme-shinshu-site/src/index.js",
121
+ "./models/inventory": "./src/models/inventory-core.js"
110
122
  },
111
123
  "bin": {
112
124
  "agentsam": "bin/agentsam",
@@ -140,6 +152,7 @@
140
152
  "test",
141
153
  "python",
142
154
  "protocol",
155
+ "contracts",
143
156
  "migrations",
144
157
  "skills",
145
158
  "services/knowledge/package.json",
@@ -166,6 +179,7 @@
166
179
  "packages/agentsam-vault/src",
167
180
  "packages/runtime-protocol/src",
168
181
  "packages/agentsam-rapid-rust",
182
+ "native/agentsam-machine",
169
183
  "scripts/build_rapid_rust_cli.py",
170
184
  "registry/cms-rust-machine-20260928",
171
185
  "apps/client-cms-editor/agentsam.app.json",
@@ -194,35 +208,42 @@
194
208
  "packages/agentsam-workbench/tsconfig.json"
195
209
  ],
196
210
  "workspaces": [
197
- "packages/agentsam-shell-kit",
198
- "packages/agentsam-settings",
199
- "packages/agentsam-work",
200
- "packages/identity",
211
+ "packages/agentsam-assets-core",
201
212
  "packages/agentsam-brand",
213
+ "packages/agentsam-cloudflare-images",
214
+ "packages/agentsam-content",
215
+ "packages/agentsam-content-studio",
202
216
  "packages/agentsam-contracts",
217
+ "packages/agentsam-database-editor",
218
+ "packages/agentsam-desktop-shell",
219
+ "packages/agentsam-docs-theme",
203
220
  "packages/agentsam-errors",
204
- "packages/agentsam-repository",
221
+ "packages/agentsam-ide",
222
+ "packages/agentsam-key-manager",
205
223
  "packages/agentsam-knowledge",
206
224
  "packages/agentsam-nav",
207
- "packages/work-graph",
208
225
  "packages/agentsam-queue-control",
209
- "packages/agentsam-workbench",
210
- "packages/agentsam-assets-core",
226
+ "packages/agentsam-repository",
211
227
  "packages/agentsam-scoring",
212
- "packages/agentsam-cloudflare-images",
213
- "packages/agentsam-content",
214
- "packages/agentsam-content-studio",
215
- "packages/providers/completeful",
216
- "packages/agentsam-desktop-shell",
228
+ "packages/agentsam-settings",
229
+ "packages/agentsam-shell-kit",
230
+ "packages/agentsam-vault",
231
+ "packages/agentsam-work",
232
+ "packages/agentsam-workbench",
233
+ "packages/connectors/cloudflare",
217
234
  "packages/heuristic-theme",
235
+ "packages/identity",
236
+ "packages/providers/completeful",
218
237
  "packages/theme-church-site",
219
238
  "packages/theme-companions-site",
220
239
  "packages/theme-floors-site",
221
240
  "packages/theme-fuelnfree-site",
222
241
  "packages/theme-handyman-site",
242
+ "packages/theme-iasf",
223
243
  "packages/theme-insurance-site",
244
+ "packages/theme-scenes",
224
245
  "packages/theme-shinshu-site",
225
- "packages/theme-scenes"
246
+ "packages/work-graph"
226
247
  ],
227
248
  "scripts": {
228
249
  "test": "npm run test:standard && npm --prefix packages/identity test && npm --prefix packages/agentsam-brand test && npm run test:connectors && npm run test:providers",
@@ -232,7 +253,7 @@
232
253
  "test:standard": "node test/smoke.mjs && npm run test:unit && npm run test:cli && npm run test:integration:mock && npm run test:terminal:mock",
233
254
  "test:unit": "node --test test/*.test.mjs",
234
255
  "test:cli": "node --test test/cli/*.test.mjs",
235
- "test:integration:mock": "node --test test/integration/*.test.mjs",
256
+ "test:integration:mock": "npm run ensure:cms-dist && node --test test/integration/*.test.mjs",
236
257
  "test:terminal:mock": "node --test test/terminal/*.test.mjs",
237
258
  "test:live:terminal": "node --test test/live/*.live.test.mjs",
238
259
  "test:identity": "npm --prefix packages/identity test",
@@ -274,7 +295,9 @@
274
295
  "theme:harvest": "python3 scripts/theme-refinery/harvest.py",
275
296
  "verify:go-distribution": "node scripts/verify-go-distribution.mjs",
276
297
  "prove:product": "node scripts/prove-agentsam-product.mjs",
277
- "security:release": "node scripts/verify-release-security.mjs"
298
+ "security:release": "node scripts/verify-release-security.mjs",
299
+ "verify:database-honesty": "node --test test/integration/database-hosted-honesty.test.mjs",
300
+ "ensure:cms-dist": "node scripts/ensure-cms-dist.mjs"
278
301
  },
279
302
  "engines": {
280
303
  "node": ">=22 <25",
@@ -319,19 +342,26 @@
319
342
  "protobufjs@7.6.6": true,
320
343
  "esbuild@0.28.1": true,
321
344
  "fsevents@2.3.3": true,
322
- "workerd@1.20260925.1": true
345
+ "workerd@1.20260925.1": true,
346
+ "esbuild@0.28.2": true,
347
+ "workerd@1.20260930.2": true,
348
+ "sharp@0.34.5": true,
349
+ "sharp@0.35.4": true,
350
+ "sharp@0.35.5": true
323
351
  },
324
352
  "devDependencies": {
325
353
  "@changesets/changelog-github": "^1.0.1",
326
354
  "@changesets/cli": "^3.0.3",
327
355
  "@electric-sql/pglite": "0.5.8",
328
356
  "@electric-sql/pglite-pgvector": "0.0.9",
357
+ "esbuild": "0.28.1",
329
358
  "grpc-tools": "^1.13.1",
330
- "wrangler": "4.142.0"
359
+ "wrangler": "4.145.0"
331
360
  },
332
361
  "overrides": {
333
362
  "@types/react": "19.2.18",
334
- "@types/react-dom": "19.2.3"
363
+ "@types/react-dom": "19.2.3",
364
+ "esbuild": "0.28.1"
335
365
  },
336
366
  "packageManager": "npm@10.9.2"
337
367
  }
@@ -1,4 +1,4 @@
1
- # @inneranimalmedia/agentsam-sdk-brand
1
+ # @inneranimalmedia/agentsam-brand
2
2
 
3
3
  **Brand compiler** — not just an image optimizer CLI.
4
4
 
@@ -1,6 +1,6 @@
1
1
  {
2
- "name": "@inneranimalmedia/agentsam-sdk-brand",
3
- "version": "0.1.0",
2
+ "name": "@inneranimalmedia/agentsam-brand",
3
+ "version": "2.6.7",
4
4
  "description": "Deterministic Brand Intelligence + portable brand-asset promotion SDK for AgentSam (inspect, derive, plan, promote, publish, verify).",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -8,7 +8,7 @@
8
8
  "node": ">=22 <25"
9
9
  },
10
10
  "dependencies": {
11
- "sharp": "^0.34.5"
11
+ "sharp": "^0.35.5"
12
12
  },
13
13
  "main": "./src/index.js",
14
14
  "bin": {
@@ -41,7 +41,7 @@
41
41
  "directory": "packages/agentsam-brand"
42
42
  },
43
43
  "publishConfig": {
44
- "access": "restricted"
44
+ "access": "public"
45
45
  },
46
46
  "keywords": [
47
47
  "agentsam",
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @inneranimalmedia/agentsam-sdk-brand
2
+ * @inneranimalmedia/agentsam-brand
3
3
  *
4
4
  * Brand intelligence (scan/resolve/plan) + portable brand-asset promotion SDK.
5
5
  * Product-specific assets (e.g. AgentSam icons) live outside this package.
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@inneranimalmedia/agentsam-contracts",
3
- "version": "0.1.0",
4
- "private": true,
3
+ "version": "2.6.7",
5
4
  "description": "Framework-neutral AgentSam contracts for workbench, tools, providers, events, hooks, execution, identity and repository context.",
6
5
  "type": "module",
7
6
  "main": "./src/index.ts",
@@ -28,5 +27,16 @@
28
27
  },
29
28
  "devDependencies": {
30
29
  "typescript": "^5.9.3"
31
- }
30
+ },
31
+ "publishConfig": {
32
+ "access": "public"
33
+ },
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
37
+ "directory": "packages/agentsam-contracts"
38
+ },
39
+ "files": [
40
+ "src"
41
+ ]
32
42
  }
@@ -96,3 +96,25 @@ export interface AgentToolCall {
96
96
  error?: string;
97
97
  metadata?: Record<string, unknown>;
98
98
  }
99
+
100
+ export type AgentToolPermissionDecision = 'allow_once' | 'allow_session' | 'deny';
101
+
102
+ export interface AgentToolPermissionDatum {
103
+ label: string;
104
+ value: string;
105
+ }
106
+
107
+ export interface AgentToolPermissionRequest {
108
+ id: string;
109
+ toolKey: string;
110
+ displayName: string;
111
+ provider?: string;
112
+ summary?: string;
113
+ scope?: string;
114
+ sharedData?: AgentToolPermissionDatum[];
115
+ riskLevel?: AgentToolRiskLevel;
116
+ sideEffectLevel?: AgentToolSideEffectLevel;
117
+ destructive?: boolean;
118
+ openWorld?: boolean;
119
+ metadata?: Record<string, unknown>;
120
+ }
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@inneranimalmedia/agentsam-errors",
3
- "version": "0.1.0",
4
- "private": true,
3
+ "version": "2.6.7",
5
4
  "description": "Canonical AgentSam runtime error normalization, classification, transport, remediation and rendering.",
6
5
  "type": "module",
7
6
  "main": "./src/index.js",
@@ -13,5 +12,16 @@
13
12
  },
14
13
  "engines": {
15
14
  "node": ">=22 <25"
16
- }
15
+ },
16
+ "publishConfig": {
17
+ "access": "public"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
22
+ "directory": "packages/agentsam-errors"
23
+ },
24
+ "files": [
25
+ "src"
26
+ ]
17
27
  }
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@inneranimalmedia/agentsam-knowledge",
3
- "version": "0.1.0",
4
- "private": true,
3
+ "version": "2.6.7",
5
4
  "description": "Portable AutoRAG discovery, adapter registries, probes, and company routing contracts for AgentSam.",
6
5
  "type": "module",
7
6
  "exports": {
@@ -10,6 +9,21 @@
10
9
  "./providers": "./src/providers/index.js",
11
10
  "./backends": "./src/backends/index.js"
12
11
  },
13
- "scripts": { "test": "node --test test/*.test.mjs" },
14
- "engines": { "node": ">=22 <25" }
12
+ "scripts": {
13
+ "test": "node --test test/*.test.mjs"
14
+ },
15
+ "engines": {
16
+ "node": ">=22 <25"
17
+ },
18
+ "publishConfig": {
19
+ "access": "public"
20
+ },
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
24
+ "directory": "packages/agentsam-knowledge"
25
+ },
26
+ "files": [
27
+ "src"
28
+ ]
15
29
  }
@@ -6,6 +6,12 @@ import { createBackendRegistry } from '../backends/index.js';
6
6
 
7
7
  const clean = value => String(value || '').trim();
8
8
  const unique = values => [...new Set(values.filter(Boolean))];
9
+ function portableRepositoryIdentity(remote, root) {
10
+ const value = clean(remote);
11
+ const github = value.match(/^(?:git@github\.com:|https?:\/\/github\.com\/)([^/]+)\/([^/]+?)(?:\.git)?$/i);
12
+ if (github) return 'github:' + github[1].toLowerCase() + '/' + github[2].toLowerCase();
13
+ return value || 'local:' + path.basename(root);
14
+ }
9
15
  function git(root, args) { try { return execFileSync('git', args, { cwd: root, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim() || null; } catch { return null; } }
10
16
  function findScopes(root) {
11
17
  const candidates = ['packages', 'src', 'services', 'apps', 'docs', 'README.md', 'schema', 'migrations'];
@@ -16,15 +22,16 @@ export async function discoverAutoRag({ root = process.cwd(), env = process.env,
16
22
  const providerRegistry = createProviderRegistry({ gemini: { apiKey: env.GEMINI_API_KEY, fetchImpl }, openai: { apiKey: env.OPENAI_API_KEY, fetchImpl }, ollama: { env, fetchImpl } });
17
23
  const providers = await providerRegistry.capabilities();
18
24
  const docker = git(root, ['--version']) && (() => { try { return Boolean(execFileSync('docker', ['--version'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] })); } catch { return false; } })();
19
- const repositoryId = git(root, ['config', '--get', 'remote.origin.url']) || `local:${path.basename(root)}`;
25
+ const repositoryId = portableRepositoryIdentity(git(root, ['config', '--get', 'remote.origin.url']), root);
20
26
  return Object.freeze({
21
27
  repository: { root, name: path.basename(root), identity: repositoryId, branch: git(root, ['branch', '--show-current']), revision: git(root, ['rev-parse', 'HEAD']), git: isGit, merkle: fs.existsSync(path.join(root, '.agentsam', 'merkle.json')), semantic_merkle: fs.existsSync(path.join(root, '.agentsam', 'merkle.json')) },
22
28
  scopes: findScopes(root),
23
- capabilities: { sqlite: true, git: isGit, merkle: isGit, structural_indexing: true, local_knowledge_engine: true, repository_intelligence: fs.existsSync(path.join(root, 'packages', 'agentsam-repository')), docker, providers, backends: createBackendRegistry().capabilities(), company_graph: Boolean(companyAdapter?.discover) ? await companyAdapter.discover() : { available: false } },
29
+ capabilities: { sqlite: true, git: isGit, merkle: isGit, structural_indexing: true, local_knowledge_engine: true, repository_intelligence: true, docker, providers, backends: createBackendRegistry().capabilities(), company_graph: Boolean(companyAdapter?.discover) ? await companyAdapter.discover() : { available: false } },
24
30
  });
25
31
  }
26
32
  export function recommendAutoRag({ discovery, purpose = 'code', include, provider = 'none', backend = 'local_exact', semantic = false } = {}) {
27
- const scopes = include?.length ? unique(include) : purpose === 'code' ? discovery.scopes.filter(scope => ['packages', 'src'].includes(scope)).slice(0, 2) : discovery.scopes.filter(scope => /^(docs|README\.md|schema|migrations)$/.test(scope)).slice(0, 3);
33
+ const codeRoots = ['apps', 'src', 'packages', 'services'];
34
+ const scopes = include?.length ? unique(include) : purpose === 'code' ? codeRoots.filter(scope => discovery.scopes.includes(scope)).slice(0, 3) : discovery.scopes.filter(scope => /^(docs|README\.md|schema|migrations)$/.test(scope)).slice(0, 3);
28
35
  return Object.freeze({ purpose, repositories: [discovery.repository.identity], scope: scopes.length ? scopes : ['.'], evidence: purpose === 'code' ? ['git', 'merkle', 'semantic-metadata', 'ast', 'lexical'] : ['git', 'merkle', 'lexical'], embedding: semantic ? provider : 'none', control_plane: 'local_sqlite', backend, probe: { max_files: 25, max_chunks: 100, max_semantic_queries: 1, paid_embeddings: false }, company_registration: 'disabled' });
29
36
  }
30
37
  export function safeAutoRagConfig({ existing = {}, recommendation, repositoryId, projectKey } = {}) {
@@ -1,8 +1,40 @@
1
+ import { vectorizeDelete, vectorizeGetByIds, vectorizeHealth, vectorizeQuery, vectorizeUpsert } from '../../../connectors/cloudflare/src/families/vectorize.js';
2
+
1
3
  const clean = value => String(value || '').trim();
2
4
  function profileGuard(profile, supported) {
3
5
  if (!supported.includes(profile?.backend)) throw new Error(`backend_profile_mismatch:${profile?.backend}`);
4
6
  if (!Number.isInteger(profile?.dimensions) || profile.dimensions < 1) throw new Error('backend_dimensions_required');
5
7
  }
8
+ function vectorizeBackend() {
9
+ const id = 'cloudflare_vectorize';
10
+ const resource = context => ({ binding: clean(context?.binding || context?.profile?.binding), index: clean(context?.index || context?.profile?.index) });
11
+ return Object.freeze({
12
+ id,
13
+ capabilities: () => ({ id, explicit_resource_required: true, supported: true, transports: ['worker_binding', 'cloudflare_api'] }),
14
+ prepare(profile, context = {}) {
15
+ profileGuard(profile, [id]);
16
+ const target = { binding: clean(context.binding || profile.binding), index: clean(context.index || profile.index) };
17
+ if (!target.binding) throw new Error('backend_cloudflare_vectorize_binding_required');
18
+ if (!target.index) throw new Error('backend_cloudflare_vectorize_index_required');
19
+ return { id, dimensions: profile.dimensions, ...target };
20
+ },
21
+ async upsert(records, context = {}) { return vectorizeUpsert({ ...resource(context), records, context }); },
22
+ async delete(ids, context = {}) { return vectorizeDelete({ ...resource(context), ids, context }); },
23
+ async query(vector, options = {}, context = {}) { return vectorizeQuery({ ...resource(context), vector, options, context }); },
24
+ async verify(ids, context = {}) {
25
+ const receipt = await vectorizeGetByIds({ ...resource(context), ids, context });
26
+ const rows = Array.isArray(receipt.result) ? receipt.result : null;
27
+ return { verified: rows ? rows.length === ids.length : true, transport: receipt.transport, result: receipt.result };
28
+ },
29
+ async health(context = {}) {
30
+ const target = resource(context);
31
+ if (!target.binding || !target.index) return { id, operational: false, error: 'binding_and_index_required' };
32
+ const health = await vectorizeHealth({ ...target, context });
33
+ return { id, ...health };
34
+ },
35
+ });
36
+ }
37
+
6
38
  function bindingBackend(id, required) {
7
39
  return Object.freeze({
8
40
  id, capabilities: () => ({ id, explicit_resource_required: true, supported: true }),
@@ -21,6 +53,6 @@ export function createBackendRegistry() {
21
53
  async upsert(records, context = {}) { if (!context.store?.cachePut) throw new Error('backend_runtime_unavailable:local_exact'); for (const record of records) await context.store.cachePut(record.id, record.vector); return { upserted: records.length }; },
22
54
  async delete() { return { deleted: 0 }; }, async query() { throw new Error('backend_query_owned_by_knowledge_store'); }, async verify() { return { verified: true }; }, health: async () => ({ id: 'local_exact', operational: true }),
23
55
  });
24
- const adapters = new Map([['local_exact', local], ['postgres_pgvector', bindingBackend('postgres_pgvector', ['resource'])], ['supabase_pgvector', bindingBackend('supabase_pgvector', ['resource'])], ['cloudflare_vectorize', bindingBackend('cloudflare_vectorize', ['binding', 'index'])]]);
56
+ const adapters = new Map([['local_exact', local], ['postgres_pgvector', bindingBackend('postgres_pgvector', ['resource'])], ['supabase_pgvector', bindingBackend('supabase_pgvector', ['resource'])], ['cloudflare_vectorize', vectorizeBackend()]]);
25
57
  return Object.freeze({ ids: () => [...adapters.keys()], get(id) { const item = adapters.get(clean(id)); if (!item) throw new Error(`backend_unsupported:${id}`); return item; }, capabilities: () => [...adapters.values()].map(adapter => adapter.capabilities()) });
26
58
  }
@@ -1,6 +1,24 @@
1
1
  import assert from 'node:assert/strict';
2
+ import fs from 'node:fs';
3
+ import os from 'node:os';
4
+ import path from 'node:path';
5
+ import { execFileSync } from 'node:child_process';
2
6
  import test from 'node:test';
3
- import { createFixtureProvider, createOllamaProvider, createProviderRegistry, createBackendRegistry, recommendAutoRag, safeAutoRagConfig, selectIntentRoute, routeCompanyQuestion } from '../src/index.js';
7
+ import { createFixtureProvider, createOllamaProvider, createProviderRegistry, createBackendRegistry, discoverAutoRag, recommendAutoRag, safeAutoRagConfig, selectIntentRoute, routeCompanyQuestion } from '../src/index.js';
8
+
9
+
10
+ test('discovery canonicalizes GitHub repository identity and reports SDK repository intelligence', async () => {
11
+ const root = fs.mkdtempSync(path.join(os.tmpdir(), 'agentsam-autorag-discovery-'));
12
+ try {
13
+ execFileSync('git', ['init'], { cwd: root, stdio: 'ignore' });
14
+ execFileSync('git', ['remote', 'add', 'origin', 'git@github.com:Example/Widget.git'], { cwd: root });
15
+ const discovery = await discoverAutoRag({ root, env: {} });
16
+ assert.equal(discovery.repository.identity, 'github:example/widget');
17
+ assert.equal(discovery.capabilities.repository_intelligence, true);
18
+ } finally {
19
+ fs.rmSync(root, { recursive: true, force: true });
20
+ }
21
+ });
4
22
 
5
23
  test('provider registry is explicit, deterministic, and fails closed', async () => {
6
24
  const registry = createProviderRegistry({ fixture: { dimensions: 3 }, gemini: { apiKey: null }, openai: { apiKey: null } });
@@ -40,6 +58,47 @@ test('backend registry requires explicit resources and dimensions', () => {
40
58
  assert.throws(() => registry.get('unknown'), /backend_unsupported/);
41
59
  });
42
60
 
61
+ test('Cloudflare Vectorize backend executes through Worker binding and user API transports', async () => {
62
+ const backend = createBackendRegistry().get('cloudflare_vectorize');
63
+ const profile = { backend: 'cloudflare_vectorize', dimensions: 3, binding: 'MY_VECTORS', index: 'customer-code-index' };
64
+ assert.deepEqual(backend.prepare(profile), { id: 'cloudflare_vectorize', dimensions: 3, binding: 'MY_VECTORS', index: 'customer-code-index' });
65
+
66
+ const workerCalls = [];
67
+ const workerBinding = {
68
+ async upsert(records) { workerCalls.push(['upsert', records]); return { mutationId: 'm1' }; },
69
+ async query(vector, options) { workerCalls.push(['query', vector, options]); return { matches: [{ id: 'one', score: 0.9 }] }; },
70
+ async deleteByIds(ids) { workerCalls.push(['delete', ids]); return { mutationId: 'm2' }; },
71
+ async getByIds(ids) { workerCalls.push(['get', ids]); return ids.map(id => ({ id })); },
72
+ };
73
+ const workerContext = { binding: 'MY_VECTORS', index: 'customer-code-index', env: { MY_VECTORS: workerBinding } };
74
+ assert.equal((await backend.upsert([{ id: 'one', vector: [1, 0, 0], metadata: { path: 'apps/a.js' } }], workerContext)).transport, 'worker_binding');
75
+ assert.equal((await backend.query([1, 0, 0], { topK: 3 }, workerContext)).transport, 'worker_binding');
76
+ assert.equal((await backend.delete(['one'], workerContext)).transport, 'worker_binding');
77
+ assert.equal((await backend.verify(['one'], workerContext)).verified, true);
78
+ assert.deepEqual(workerCalls.map(row => row[0]), ['upsert', 'query', 'delete', 'get']);
79
+
80
+ const apiCalls = [];
81
+ const apiClient = {
82
+ accountPath(suffix) { return `/accounts/acct${suffix}`; },
83
+ async request(method, requestPath, options) {
84
+ apiCalls.push({ method, requestPath, options });
85
+ if (requestPath.endsWith('/get_by_ids')) return { result: [{ id: 'one' }], auth: { source: 'fixture' } };
86
+ return { result: { ok: true }, auth: { source: 'fixture' } };
87
+ },
88
+ };
89
+ const apiContext = { binding: 'MY_VECTORS', index: 'customer-code-index', apiClient };
90
+ assert.equal((await backend.upsert([{ id: 'one', vector: [1, 0, 0] }], apiContext)).transport, 'cloudflare_api');
91
+ assert.equal((await backend.query([1, 0, 0], { topK: 2 }, apiContext)).transport, 'cloudflare_api');
92
+ assert.equal((await backend.delete(['one'], apiContext)).transport, 'cloudflare_api');
93
+ assert.equal((await backend.verify(['one'], apiContext)).verified, true);
94
+ assert.equal(apiCalls[0].requestPath, '/accounts/acct/vectorize/v2/indexes/customer-code-index/upsert');
95
+ assert.equal(apiCalls[0].options.headers['Content-Type'], 'application/x-ndjson');
96
+ assert.match(apiCalls[0].options.body, /\"id\":\"one\"/);
97
+ assert.equal(apiCalls[1].requestPath, '/accounts/acct/vectorize/v2/indexes/customer-code-index/query');
98
+ assert.equal(apiCalls[2].requestPath, '/accounts/acct/vectorize/v2/indexes/customer-code-index/delete_by_ids');
99
+ assert.equal(apiCalls[3].requestPath, '/accounts/acct/vectorize/v2/indexes/customer-code-index/get_by_ids');
100
+ });
101
+
43
102
  test('recommendation preserves local defaults and never serializes credentials', () => {
44
103
  const discovery = { repository: { identity: 'local:demo' }, scopes: ['src', 'docs'] };
45
104
  const recommendation = recommendAutoRag({ discovery, purpose: 'code' });
@@ -1,18 +1,31 @@
1
1
  {
2
2
  "name": "@inneranimalmedia/agentsam-nav",
3
- "version": "0.1.0",
3
+ "version": "2.6.7",
4
4
  "private": false,
5
5
  "description": "Reusable responsive navigation primitives for AgentSam dashboard-family applications.",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "types": "./dist/index.d.ts",
9
- "files": ["dist", "README.md"],
10
- "sideEffects": ["**/*.css"],
9
+ "files": [
10
+ "dist",
11
+ "README.md"
12
+ ],
13
+ "sideEffects": [
14
+ "**/*.css"
15
+ ],
11
16
  "license": "MIT",
12
- "publishConfig": { "access": "public" },
17
+ "publishConfig": {
18
+ "access": "public"
19
+ },
13
20
  "exports": {
14
- ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" },
15
- "./browser": { "types": "./dist/browser.d.ts", "import": "./dist/browser.js" },
21
+ ".": {
22
+ "types": "./dist/index.d.ts",
23
+ "import": "./dist/index.js"
24
+ },
25
+ "./browser": {
26
+ "types": "./dist/browser.d.ts",
27
+ "import": "./dist/browser.js"
28
+ },
16
29
  "./browser.global.js": "./dist/browser.global.js",
17
30
  "./theme.css": "./dist/theme.css",
18
31
  "./legacy.css": "./dist/legacy.css"
@@ -39,5 +52,10 @@
39
52
  "@radix-ui/react-dialog": "^1.1.23",
40
53
  "@radix-ui/react-dropdown-menu": "^2.1.24",
41
54
  "lucide-react": "^0.510.0"
55
+ },
56
+ "repository": {
57
+ "type": "git",
58
+ "url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
59
+ "directory": "packages/agentsam-nav"
42
60
  }
43
61
  }
@@ -100,7 +100,7 @@ Dispatch supports exact kinds and prefix wildcards such as `cad.*`.
100
100
 
101
101
  ## Relationship to WorkGraph
102
102
 
103
- Queue Control does not replace `@inneranimalmedia/work-graph`. A WorkGraph can release ready nodes; Queue Control then schedules those nodes to an executor. Completion receipts can be projected back into the graph by the host.
103
+ Queue Control does not replace `@inneranimalmedia/agentsam-work-graph`. A WorkGraph can release ready nodes; Queue Control then schedules those nodes to an executor. Completion receipts can be projected back into the graph by the host.
104
104
 
105
105
  ## Relationship to AgentSam tools and MCP
106
106
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inneranimalmedia/agentsam-queue-control",
3
- "version": "0.1.0",
3
+ "version": "2.6.7",
4
4
  "description": "Portable AgentSam queue, job-routing, batching, and execution-control primitives with Cloudflare-first adapters.",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
@@ -27,5 +27,10 @@
27
27
  "publishConfig": {
28
28
  "access": "public"
29
29
  },
30
- "license": "MIT"
30
+ "license": "MIT",
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
34
+ "directory": "packages/agentsam-queue-control"
35
+ }
31
36
  }
@@ -8,7 +8,7 @@ use std::time::{SystemTime, UNIX_EPOCH};
8
8
 
9
9
  const WORKER_VERSION: &str = "0.8.7";
10
10
  const WORKER_BUILD_VERSION: &str = "0.8.7";
11
- const WRANGLER_VERSION: &str = "4.141.0";
11
+ const WRANGLER_VERSION: &str = "4.145.0";
12
12
  const COMPATIBILITY_DATE: &str = "2026-09-27";
13
13
 
14
14
  #[derive(Parser, Debug)]
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@inneranimalmedia/agentsam-repository",
3
- "version": "0.1.0",
4
- "private": true,
3
+ "version": "2.6.7",
5
4
  "description": "Portable AgentSam repository identity, Merkle, semantic file metadata, persistence, and repository graph runtime contracts.",
6
5
  "type": "module",
7
6
  "main": "./src/index.js",
@@ -21,5 +20,16 @@
21
20
  },
22
21
  "engines": {
23
22
  "node": ">=22 <25"
24
- }
23
+ },
24
+ "publishConfig": {
25
+ "access": "public"
26
+ },
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
30
+ "directory": "packages/agentsam-repository"
31
+ },
32
+ "files": [
33
+ "src"
34
+ ]
25
35
  }
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Source-type helpers for AgentSam repository intelligence.
3
+ *
4
+ * SSOT taxonomy (extensions / kind / ast / knowledge):
5
+ * contracts/source-types.v1.json
6
+ * Rust machine inspect loads the same contract. Keep this JS table aligned when
7
+ * adding languages until a shared loader is wired for both runtimes.
8
+ */
1
9
  import path from 'node:path';
2
10
 
3
11
  const DEFINITIONS = [
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "@inneranimalmedia/agentsam-vault",
3
- "version": "0.1.0",
4
- "private": true,
3
+ "version": "2.6.7",
5
4
  "type": "module",
6
- "description": "AgentSam credential vault core \u2014 contracts, AES-GCM crypto, provider registry, resolver. UI lives in agentsam-key-manager.",
5
+ "description": "AgentSam credential vault core — contracts, AES-GCM crypto, provider registry, resolver. UI lives in agentsam-key-manager.",
7
6
  "main": "./src/index.js",
8
7
  "types": "./src/index.d.ts",
9
8
  "exports": {
@@ -28,5 +27,16 @@
28
27
  },
29
28
  "engines": {
30
29
  "node": ">=20"
31
- }
30
+ },
31
+ "publishConfig": {
32
+ "access": "public"
33
+ },
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
37
+ "directory": "packages/agentsam-vault"
38
+ },
39
+ "files": [
40
+ "src"
41
+ ]
32
42
  }