@inneranimalmedia/agentsam-sdk 2.6.2 → 2.6.4

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 (661) hide show
  1. package/AGENTSAM.md +51 -1
  2. package/README.md +95 -0
  3. package/apps/README.md +34 -0
  4. package/apps/cad-creator/README.md +728 -0
  5. package/apps/cad-creator/shared/cad/package.json +19 -0
  6. package/apps/cad-creator/shared/cad/src/domain/operations.ts +7 -0
  7. package/apps/cad-creator/shared/cad/src/domain/project-contract.d.ts +3 -0
  8. package/apps/cad-creator/shared/cad/src/domain/project-contract.js +75 -0
  9. package/apps/cad-creator/shared/cad/src/domain/project-tools.d.ts +1 -0
  10. package/apps/cad-creator/shared/cad/src/domain/project-tools.js +24 -0
  11. package/apps/cad-creator/shared/cad/src/domain/validation.ts +191 -0
  12. package/apps/cad-creator/shared/cad/src/index.ts +4 -0
  13. package/apps/cad-creator/shared/cad/src/robotics/types.ts +232 -0
  14. package/apps/cad-creator/shared/cad/src/types.ts +507 -0
  15. package/apps/cad-creator/shared/cad/tsconfig.json +14 -0
  16. package/bin/agentsam +16 -1
  17. package/docs/AUTORAG.md +58 -0
  18. package/docs/BRAND_INTELLIGENCE.md +30 -0
  19. package/docs/CLI_SHELL.md +4 -2
  20. package/docs/CMS_CONTEXTUAL_COMPOSER.md +38 -0
  21. package/docs/MERKLE.md +4 -0
  22. package/docs/PROJECT_CONFIG.md +3 -0
  23. package/docs/REPOSITORY_KNOWLEDGE.md +2 -0
  24. package/docs/THEME_REFINERY.md +120 -0
  25. package/docs/architecture/AGENTSAM_DISTRIBUTION_OWNERSHIP.md +176 -0
  26. package/docs/architecture/AGENTSAM_GO_RUNTIME.md +282 -0
  27. package/docs/architecture/CODEBASEINDEX_GUIDED_PATH.md +202 -0
  28. package/docs/architecture/FS_E2E_CLOSURE_RECEIPT.md +59 -0
  29. package/docs/architecture/LOCAL_FS_AUTHORITY.md +38 -0
  30. package/docs/architecture/LOCAL_STUDIO_CLOUDFLARE_OAUTH.md +28 -0
  31. package/docs/architecture/PLAN_CLI_AND_LOCAL_STUDIO_DESKTOP.md +96 -0
  32. package/docs/architecture/PROVIDER-TOOLS-AND-COMPACTION.md +60 -0
  33. package/docs/architecture/SAM_ACTIVITY_RECOVERY_RECEIPT.md +39 -0
  34. package/docs/architecture/SAM_DECISION_WORK_RECEIPT.md +54 -0
  35. package/docs/architecture/SAM_KERNEL.md +181 -0
  36. package/docs/architecture/SAM_MACHINE_NORMALIZATION_PRECOMMIT_REPORT.md +208 -0
  37. package/docs/architecture/SLASH_SKILLS_PORTABLE.md +116 -0
  38. package/docs/architecture/STORAGE.md +87 -0
  39. package/docs/architecture/fs-e2e-receipt.latest.json +42 -0
  40. package/docs/architecture/previews/codebaseindex-guided-path/CODEBASEINDEX_GUIDED_PATH.md +202 -0
  41. package/docs/architecture/previews/codebaseindex-guided-path/index.html +321 -0
  42. package/docs/cad-project-tools.md +69 -0
  43. package/docs/cms-scaffolding-pattern-reference.md +73 -0
  44. package/docs/plans/AGENTSAM-INTERACTIVE-UI-REQUIREMENTS-codex-tui-20260919.md +113 -0
  45. package/docs/plans/AGENTSAM-INTERACTIVE-UI-REQUIREMENTS.md +85 -0
  46. package/docs/plans/AGENTSAM-MCP-CLIENT-2026-09-19.md +181 -0
  47. package/docs/plans/ASBD-PORTABLE-WORKGRAPH-UI-DEFERRED.md +34 -0
  48. package/docs/plans/ASTRA-BRIEF-2026-09-18.md +258 -0
  49. package/docs/plans/MULTI-AGENT-SPRINTS-2026-09-19.md +373 -0
  50. package/docs/plans/NEXT-AGENT-HANDOFF.md +167 -0
  51. package/docs/plans/RECONCILIATION-2026-09-19.md +178 -0
  52. package/docs/plugins.md +43 -0
  53. package/docs/tools/README.md +57 -0
  54. package/docs/tools/agent-and-orchestration.md +49 -0
  55. package/docs/tools/browser-and-research.md +46 -0
  56. package/docs/tools/cloudflare-platform.md +32 -0
  57. package/docs/tools/cms.md +25 -0
  58. package/docs/tools/communications.md +41 -0
  59. package/docs/tools/database-and-storage.md +62 -0
  60. package/docs/tools/design-and-media.md +64 -0
  61. package/docs/tools/filesystem-and-code.md +55 -0
  62. package/docs/tools/github.md +56 -0
  63. package/docs/tools/integrations-and-misc.md +16 -0
  64. package/docs/tools/memory.md +21 -0
  65. package/docs/tools/terminal-and-execution.md +29 -0
  66. package/docs/tools/tickets-and-platform.md +30 -0
  67. package/migrations/d1/0001_agentsam_plugin_runtime.sql +177 -0
  68. package/migrations/d1/0002_agentsam_ticket_ownership.sql +8 -0
  69. package/migrations/d1/0002_dynamic_model_policies.sql +23 -0
  70. package/migrations/d1/0003_expand_tool_handler_families.sql +18 -0
  71. package/migrations/d1/0004_project_aware_retrieval_lanes.sql +24 -0
  72. package/migrations/d1/0005_portable_knowledge_identity.sql +104 -0
  73. package/migrations/d1/0006_repair_ops_trail_account_scope.sql +14 -0
  74. package/migrations/d1/0007_repair_ops_trail_agent_run_account.sql +13 -0
  75. package/migrations/d1/0008_backfill_knowledge_run_legacy_tenant.sql +14 -0
  76. package/migrations/d1/0009_normalize_cloudflare_plugin_installations.sql +137 -0
  77. package/migrations/d1/0010_portable_tickets_memory.sql +140 -0
  78. package/migrations/d1/0011_agentsam_skill_v2.sql +185 -0
  79. package/migrations/d1/0011b_agentsam_skill_v2_cutover.sql +22 -0
  80. package/migrations/d1/0011c_agentsam_skill_v2_backfill.sql +76 -0
  81. package/migrations/d1/0011d_agentsam_skill_v2_retrieval_revisions.sql +50 -0
  82. package/migrations/d1/0012_agentsam_tools_required_seed.sql +67 -0
  83. package/migrations/d1/0013_identity_oauth_states.sql +15 -0
  84. package/migrations/d1/0014_auth_event_log.sql +20 -0
  85. package/migrations/d1/0015_identity_oauth_state_app_id.sql +3 -0
  86. package/migrations/d1/README_PORTABLE_CONTROL_PLANE.md +16 -0
  87. package/migrations/runtime/0001_cli_runtime.sql +67 -0
  88. package/migrations/runtime/0002_project_sessions.sql +15 -0
  89. package/migrations/runtime/0003_provider_continuations.sql +8 -0
  90. package/migrations/sqlite/agentsam_skill_retrieval.portable.sql +42 -0
  91. package/package.json +107 -12
  92. package/packages/agentsam-brand/README.md +21 -0
  93. package/packages/agentsam-brand/package.json +22 -0
  94. package/packages/agentsam-brand/src/contract.js +59 -0
  95. package/packages/agentsam-brand/src/extract.js +126 -0
  96. package/packages/agentsam-brand/src/goap-actions.js +73 -0
  97. package/packages/agentsam-brand/src/index.js +48 -0
  98. package/packages/agentsam-brand/src/plan.js +115 -0
  99. package/packages/agentsam-brand/src/resolve.js +139 -0
  100. package/packages/agentsam-brand/src/scan.js +250 -0
  101. package/packages/agentsam-brand/test/brand-scan.test.mjs +106 -0
  102. package/packages/agentsam-contracts/README.md +23 -0
  103. package/packages/agentsam-contracts/package.json +32 -0
  104. package/packages/agentsam-contracts/src/adapter.ts +25 -0
  105. package/packages/agentsam-contracts/src/agent.ts +35 -0
  106. package/packages/agentsam-contracts/src/artifacts.ts +33 -0
  107. package/packages/agentsam-contracts/src/authority.ts +29 -0
  108. package/packages/agentsam-contracts/src/context.ts +16 -0
  109. package/packages/agentsam-contracts/src/errors.ts +62 -0
  110. package/packages/agentsam-contracts/src/events.ts +47 -0
  111. package/packages/agentsam-contracts/src/execution.ts +50 -0
  112. package/packages/agentsam-contracts/src/hooks.ts +40 -0
  113. package/packages/agentsam-contracts/src/identity.ts +16 -0
  114. package/packages/agentsam-contracts/src/index.ts +14 -0
  115. package/packages/agentsam-contracts/src/models.ts +9 -0
  116. package/packages/agentsam-contracts/src/providers.ts +33 -0
  117. package/packages/agentsam-contracts/src/repository.ts +64 -0
  118. package/packages/agentsam-contracts/src/tools.ts +98 -0
  119. package/packages/agentsam-contracts/test/contracts.test.mjs +16 -0
  120. package/packages/agentsam-contracts/test/errors-catalog.test.mjs +25 -0
  121. package/packages/agentsam-contracts/test/repository.test.mjs +18 -0
  122. package/packages/agentsam-contracts/tsconfig.json +12 -0
  123. package/packages/agentsam-errors/package.json +17 -0
  124. package/packages/agentsam-errors/src/adapters/anthropic.js +15 -0
  125. package/packages/agentsam-errors/src/adapters/cad.js +109 -0
  126. package/packages/agentsam-errors/src/adapters/cloudflare.js +21 -0
  127. package/packages/agentsam-errors/src/adapters/cursor.js +4 -0
  128. package/packages/agentsam-errors/src/adapters/device.js +38 -0
  129. package/packages/agentsam-errors/src/adapters/docker.js +28 -0
  130. package/packages/agentsam-errors/src/adapters/gcp.js +14 -0
  131. package/packages/agentsam-errors/src/adapters/github.js +22 -0
  132. package/packages/agentsam-errors/src/adapters/google.js +17 -0
  133. package/packages/agentsam-errors/src/adapters/index.js +55 -0
  134. package/packages/agentsam-errors/src/adapters/internal.js +40 -0
  135. package/packages/agentsam-errors/src/adapters/oauth.js +24 -0
  136. package/packages/agentsam-errors/src/adapters/openai.js +17 -0
  137. package/packages/agentsam-errors/src/adapters/process.js +35 -0
  138. package/packages/agentsam-errors/src/adapters/provider.js +114 -0
  139. package/packages/agentsam-errors/src/envelope.js +239 -0
  140. package/packages/agentsam-errors/src/error.js +24 -0
  141. package/packages/agentsam-errors/src/fingerprint.js +35 -0
  142. package/packages/agentsam-errors/src/index.js +11 -0
  143. package/packages/agentsam-errors/src/normalize.js +30 -0
  144. package/packages/agentsam-errors/src/recovery.js +301 -0
  145. package/packages/agentsam-errors/src/redaction.js +52 -0
  146. package/packages/agentsam-errors/src/render.js +16 -0
  147. package/packages/agentsam-errors/src/retry.js +10 -0
  148. package/packages/agentsam-errors/src/transport.js +52 -0
  149. package/packages/agentsam-errors/src/vocabulary.js +320 -0
  150. package/packages/agentsam-errors/test/envelope.test.mjs +70 -0
  151. package/packages/agentsam-errors/test/providers.test.mjs +99 -0
  152. package/packages/agentsam-errors/test/redaction.test.mjs +21 -0
  153. package/packages/agentsam-errors/test/runtime-cad-device.test.mjs +76 -0
  154. package/packages/agentsam-errors/test/transport.test.mjs +46 -0
  155. package/packages/agentsam-knowledge/package.json +15 -0
  156. package/packages/agentsam-knowledge/src/autorag/index.js +64 -0
  157. package/packages/agentsam-knowledge/src/backends/index.js +26 -0
  158. package/packages/agentsam-knowledge/src/index.js +3 -0
  159. package/packages/agentsam-knowledge/src/providers/index.js +107 -0
  160. package/packages/agentsam-knowledge/test/autorag.test.mjs +42 -0
  161. package/packages/agentsam-nav/README.md +40 -0
  162. package/packages/agentsam-nav/dist/Nav.d.ts +43 -0
  163. package/packages/agentsam-nav/dist/NavCollapsible.d.ts +10 -0
  164. package/packages/agentsam-nav/dist/NavContent.d.ts +2 -0
  165. package/packages/agentsam-nav/dist/NavFooter.d.ts +2 -0
  166. package/packages/agentsam-nav/dist/NavGroup.d.ts +3 -0
  167. package/packages/agentsam-nav/dist/NavHeader.d.ts +2 -0
  168. package/packages/agentsam-nav/dist/NavMenu.d.ts +22 -0
  169. package/packages/agentsam-nav/dist/NavProvider.d.ts +35 -0
  170. package/packages/agentsam-nav/dist/NavTrigger.d.ts +2 -0
  171. package/packages/agentsam-nav/dist/Surfaces.d.ts +41 -0
  172. package/packages/agentsam-nav/dist/browser.d.ts +11 -0
  173. package/packages/agentsam-nav/dist/browser.global.js +132 -0
  174. package/packages/agentsam-nav/dist/browser.js +613 -0
  175. package/packages/agentsam-nav/dist/contracts.d.ts +76 -0
  176. package/packages/agentsam-nav/dist/index.d.ts +11 -0
  177. package/packages/agentsam-nav/dist/index.js +614 -0
  178. package/packages/agentsam-nav/dist/legacy.css +83 -0
  179. package/packages/agentsam-nav/dist/shell.css +113 -0
  180. package/packages/agentsam-nav/dist/theme.css +113 -0
  181. package/packages/agentsam-nav/dist/utils.d.ts +1 -0
  182. package/packages/agentsam-nav/package.json +43 -0
  183. package/packages/agentsam-queue-control/README.md +107 -0
  184. package/packages/agentsam-queue-control/package.json +31 -0
  185. package/packages/agentsam-queue-control/schemas/job-envelope.schema.json +56 -0
  186. package/packages/agentsam-queue-control/src/adapters/cloudflare.js +152 -0
  187. package/packages/agentsam-queue-control/src/adapters/memory.js +38 -0
  188. package/packages/agentsam-queue-control/src/contracts.js +130 -0
  189. package/packages/agentsam-queue-control/src/control-plane.js +141 -0
  190. package/packages/agentsam-queue-control/src/dispatch.js +43 -0
  191. package/packages/agentsam-queue-control/src/index.js +7 -0
  192. package/packages/agentsam-queue-control/src/policy.js +88 -0
  193. package/packages/agentsam-queue-control/src/topology.js +66 -0
  194. package/packages/agentsam-queue-control/test/queue-control.test.mjs +100 -0
  195. package/packages/agentsam-repository/src/goap.js +718 -0
  196. package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +670 -0
  197. package/packages/agentsam-repository/src/index.js +5 -0
  198. package/packages/agentsam-repository/src/merkle/cloudflare-persistence.js +2 -2
  199. package/packages/agentsam-repository/src/tickets.js +184 -0
  200. package/packages/agentsam-repository/src/work-tracking.js +199 -0
  201. package/packages/agentsam-repository/src/workspace-state.js +176 -0
  202. package/packages/agentsam-repository/test/goap-tickets-workspace-state.test.mjs +152 -0
  203. package/packages/connectors/cloudflare/src/index.js +297 -15
  204. package/packages/connectors/cloudflare/src/owner.js +43 -40
  205. package/packages/connectors/cloudflare/src/routes.js +176 -26
  206. package/packages/connectors/cloudflare/tests/connector.test.mjs +137 -2
  207. package/packages/heuristic-theme/README.md +11 -0
  208. package/packages/heuristic-theme/package.json +25 -0
  209. package/packages/heuristic-theme/src/index.js +2 -0
  210. package/packages/heuristic-theme/src/registry.js +36 -0
  211. package/packages/heuristic-theme/src/theme.js +41 -0
  212. package/packages/heuristic-theme/test/theme.test.mjs +26 -0
  213. package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +64 -0
  214. package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +96 -0
  215. package/packages/identity/.agentsam/features/oauth-login-portal/resources.json +47 -0
  216. package/packages/identity/.agentsam/features/oauth-login-portal/routes.json +83 -0
  217. package/packages/identity/.agentsam/features/oauth-login-portal/ui.json +35 -0
  218. package/packages/identity/docs/PORTABLE_IDENTITY_ARCHITECTURE.md +50 -0
  219. package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +31 -0
  220. package/packages/identity/migrations/sqlite/001_identity_core.sql +99 -0
  221. package/packages/identity/migrations/sqlite/002_identity_oauth_client.sql +38 -0
  222. package/packages/identity/migrations/sqlite/003_identity_oauth_server.sql +64 -0
  223. package/packages/identity/package.json +4 -3
  224. package/packages/identity/src/adapters/cloudflare-d1/ids.js +4 -0
  225. package/packages/identity/src/adapters/cloudflare-d1/index.js +156 -18
  226. package/packages/identity/src/adapters/sqlite/index.js +319 -0
  227. package/packages/identity/src/app/verify-app.js +95 -0
  228. package/packages/identity/src/contracts/identity-store.js +115 -0
  229. package/packages/identity/src/contracts/provider.js +3 -2
  230. package/packages/identity/src/contracts/route-ids.js +30 -0
  231. package/packages/identity/src/contracts/route-projection.js +218 -0
  232. package/packages/identity/src/contracts/routes.js +11 -0
  233. package/packages/identity/src/core/browser-paths.js +4 -5
  234. package/packages/identity/src/core/constants.js +13 -8
  235. package/packages/identity/src/core/session-policy.js +32 -0
  236. package/packages/identity/src/frontend/auth-portal/pages/login.html +16 -9
  237. package/packages/identity/src/frontend/auth-portal/pages/reset.html +3 -3
  238. package/packages/identity/src/frontend/auth-portal/pages/signup.html +3 -3
  239. package/packages/identity/src/frontend/auth-portal/preview/dashboard-stub.html +1 -1
  240. package/packages/identity/src/index.js +27 -0
  241. package/packages/identity/src/oauth/README.md +10 -4
  242. package/packages/identity/src/oauth/credentials.js +31 -11
  243. package/packages/identity/src/oauth/finalize-inbound.js +1 -1
  244. package/packages/identity/src/oauth/iam-platform.js +13 -12
  245. package/packages/identity/src/oauth/redirect-paths.js +27 -36
  246. package/packages/identity/src/providers/cloudflare/index.js +19 -0
  247. package/packages/identity/src/providers/cloudflare/mapper.js +21 -0
  248. package/packages/identity/src/providers/cloudflare/oauth.js +48 -0
  249. package/packages/identity/src/providers/cloudflare/profile.js +28 -0
  250. package/packages/identity/src/providers/index.js +18 -2
  251. package/packages/identity/src/server/identity-service.js +35 -8
  252. package/packages/identity/src/server/mount-policy.js +30 -0
  253. package/packages/identity/src/server/post-auth.js +79 -0
  254. package/packages/identity/src/server/worker-router.js +153 -66
  255. package/packages/identity/tests/finalize-inbound-oauth.test.mjs +6 -6
  256. package/packages/identity/tests/iam-provider.test.mjs +1 -1
  257. package/packages/identity/tests/identity-service.test.mjs +47 -1
  258. package/packages/identity/tests/oauth-credentials.test.mjs +3 -1
  259. package/packages/identity/tests/portable-identity-architecture.test.mjs +157 -0
  260. package/packages/identity/tests/session-routes-policy.test.mjs +21 -0
  261. package/packages/providers/completeful/README.md +38 -0
  262. package/packages/providers/completeful/package.json +29 -0
  263. package/packages/providers/completeful/src/client.js +162 -0
  264. package/packages/providers/completeful/src/events.js +49 -0
  265. package/packages/providers/completeful/src/index.js +22 -0
  266. package/packages/providers/completeful/src/tools.js +579 -0
  267. package/packages/providers/completeful/src/webhooks.js +55 -0
  268. package/packages/providers/completeful/test/provider.test.mjs +196 -0
  269. package/packages/theme-church-site/README.md +10 -0
  270. package/packages/theme-church-site/package.json +31 -0
  271. package/packages/theme-church-site/src/harvest.json +14 -0
  272. package/packages/theme-church-site/src/index.js +85 -0
  273. package/packages/theme-church-site/test/theme.test.mjs +19 -0
  274. package/packages/theme-companions-site/README.md +10 -0
  275. package/packages/theme-companions-site/package.json +31 -0
  276. package/packages/theme-companions-site/src/harvest.json +12 -0
  277. package/packages/theme-companions-site/src/index.js +83 -0
  278. package/packages/theme-companions-site/test/theme.test.mjs +19 -0
  279. package/packages/theme-floors-site/README.md +10 -0
  280. package/packages/theme-floors-site/package.json +31 -0
  281. package/packages/theme-floors-site/src/harvest.json +14 -0
  282. package/packages/theme-floors-site/src/index.js +83 -0
  283. package/packages/theme-floors-site/test/theme.test.mjs +19 -0
  284. package/packages/theme-fuelnfree-site/README.md +10 -0
  285. package/packages/theme-fuelnfree-site/package.json +31 -0
  286. package/packages/theme-fuelnfree-site/src/harvest.json +13 -0
  287. package/packages/theme-fuelnfree-site/src/index.js +82 -0
  288. package/packages/theme-fuelnfree-site/test/theme.test.mjs +19 -0
  289. package/packages/theme-handyman-site/README.md +10 -0
  290. package/packages/theme-handyman-site/package.json +31 -0
  291. package/packages/theme-handyman-site/src/harvest.json +10 -0
  292. package/packages/theme-handyman-site/src/index.js +84 -0
  293. package/packages/theme-handyman-site/test/theme.test.mjs +19 -0
  294. package/packages/theme-insurance-site/README.md +10 -0
  295. package/packages/theme-insurance-site/package.json +31 -0
  296. package/packages/theme-insurance-site/src/harvest.json +10 -0
  297. package/packages/theme-insurance-site/src/index.js +84 -0
  298. package/packages/theme-insurance-site/test/theme.test.mjs +19 -0
  299. package/packages/theme-shinshu-site/README.md +10 -0
  300. package/packages/theme-shinshu-site/package.json +31 -0
  301. package/packages/theme-shinshu-site/src/harvest.json +12 -0
  302. package/packages/theme-shinshu-site/src/index.js +84 -0
  303. package/packages/theme-shinshu-site/test/theme.test.mjs +19 -0
  304. package/packages/work-graph/README.md +49 -0
  305. package/packages/work-graph/package.json +19 -0
  306. package/packages/work-graph/prototype/README.md +32 -0
  307. package/packages/work-graph/prototype/data/demo-workgraph.js +47 -0
  308. package/packages/work-graph/prototype/renderers/timeline-model.js +21 -0
  309. package/packages/work-graph/prototype/renderers/workgraph-runtime.js +38 -0
  310. package/packages/work-graph/prototype-gnantt.html +655 -0
  311. package/packages/work-graph/src/adapters/business/projects.js +23 -0
  312. package/packages/work-graph/src/adapters/engineering/git.js +22 -0
  313. package/packages/work-graph/src/adapters/engineering/mcp.js +22 -0
  314. package/packages/work-graph/src/index.js +76 -0
  315. package/packages/work-graph/src/renderers/gantt-model.js +11 -0
  316. package/packages/work-graph/src/renderers/timeline.js +16 -0
  317. package/packages/work-graph/test/work-graph.test.mjs +37 -0
  318. package/protocol/README.md +12 -0
  319. package/protocol/apps/agentsam.app.v1.schema.json +51 -0
  320. package/protocol/brand/brandpack.v1.schema.json +43 -0
  321. package/protocol/capabilities/cloudflare-cpu-audit-input.schema.json +30 -6
  322. package/protocol/capabilities/cloudflare-cpu-profile-input.schema.json +18 -4
  323. package/protocol/capabilities/cloudflare-wrangler-native-input.schema.json +59 -10
  324. package/protocol/capabilities/knowledge-search-input.schema.json +35 -0
  325. package/protocol/capabilities/manifest.json +163 -1
  326. package/protocol/capabilities/repository-audit-input.schema.json +39 -6
  327. package/protocol/capabilities/repository-snapshot-input.schema.json +15 -3
  328. package/protocol/capabilities/terminal-exec-input.schema.json +55 -0
  329. package/protocol/commerce/catalog.v1.json +50 -0
  330. package/protocol/credentials/issue.v1.schema.json +38 -0
  331. package/protocol/database/connection.v1.schema.json +41 -0
  332. package/protocol/embeddings/embedding-profile.v1.schema.json +20 -0
  333. package/protocol/errors/error-catalog.json +164 -0
  334. package/protocol/errors/error-envelope.schema.json +678 -0
  335. package/protocol/errors/recovery.v1.schema.json +50 -0
  336. package/protocol/features/README.md +57 -0
  337. package/protocol/features/agentsam.feature.v1.schema.json +290 -0
  338. package/protocol/features/catalog.json +65 -0
  339. package/protocol/features/examples/provider-resend.feature.json +17 -0
  340. package/protocol/go/agentsam-go-runtime.v1.json +17 -0
  341. package/protocol/knowledge/LIFECYCLE.md +140 -0
  342. package/protocol/knowledge/README.md +4 -0
  343. package/protocol/presets/catalog.json +128 -19
  344. package/protocol/rpc/v1/errors.proto +24 -0
  345. package/protocol/runtime/workspace-fs.v1.schema.json +71 -0
  346. package/protocol/sam/activity.v1.schema.json +48 -0
  347. package/protocol/sam/answer.v1.schema.json +35 -0
  348. package/protocol/sam/calibration.v1.schema.json +21 -0
  349. package/protocol/sam/decision-receipt.v1.schema.json +29 -0
  350. package/protocol/sam/evaluation.v1.schema.json +19 -0
  351. package/protocol/sam/operation.schema.json +66 -0
  352. package/protocol/sam/outcome.v1.schema.json +36 -0
  353. package/protocol/sam/question.v1.schema.json +26 -0
  354. package/protocol/sam/registry.seed.json +153 -0
  355. package/protocol/sam/result.schema.json +53 -0
  356. package/protocol/sam/state.v1.schema.json +23 -0
  357. package/protocol/skills/agentsam.interaction.v1.schema.json +50 -0
  358. package/protocol/skills/agentsam.skill.v1.schema.json +57 -0
  359. package/protocol/theme-refinery/d1-reconciliation.md +48 -0
  360. package/protocol/theme-refinery/product-metadata.schema.json +27 -0
  361. package/protocol/theme-refinery/receipts/products-registry-batch-20260924.json +318 -0
  362. package/protocol/theme-refinery/receipts/theme-harvest-20260924.json +472 -0
  363. package/protocol/theme-refinery/reconciliation-receipt.schema.json +83 -0
  364. package/protocol/ui/icon-registry.mjs +226 -0
  365. package/protocol/ui/icon.v1.schema.json +51 -0
  366. package/services/cad/server.py +249 -2
  367. package/skills/README.md +22 -9
  368. package/skills/agentsam-codebaseindex/SKILL.md +225 -0
  369. package/skills/catalog.json +14 -0
  370. package/src/agent/capability-adapter.js +15 -5
  371. package/src/agent/index.js +2 -1
  372. package/src/agent/model-turn.js +51 -0
  373. package/src/agent/responses-runner.js +304 -38
  374. package/src/capabilities/index.js +1 -0
  375. package/src/capabilities/terminal-exec.js +78 -0
  376. package/src/cli/command-catalog.js +130 -0
  377. package/src/cli/dispatch.js +48 -0
  378. package/src/cli.js +160 -10
  379. package/src/cloudflare/index.js +6 -0
  380. package/src/cloudflare/runtime-status.js +393 -0
  381. package/src/cloudflare/wrangler.js +17 -1
  382. package/src/commands/api-key.js +244 -0
  383. package/src/commands/app.js +138 -0
  384. package/src/commands/autorag.js +77 -0
  385. package/src/commands/brand.js +291 -0
  386. package/src/commands/cad.js +1 -0
  387. package/src/commands/codebaseindex.js +688 -0
  388. package/src/commands/connections.js +126 -29
  389. package/src/commands/context-economics.js +8 -0
  390. package/src/commands/db.js +7 -0
  391. package/src/commands/env.js +155 -27
  392. package/src/commands/eval.js +209 -14
  393. package/src/commands/go.js +678 -0
  394. package/src/commands/goap.js +176 -0
  395. package/src/commands/identity-init.js +27 -3
  396. package/src/commands/identity-protocol.js +195 -0
  397. package/src/commands/interaction-clack.js +115 -0
  398. package/src/commands/knowledge.js +64 -5
  399. package/src/commands/mcp.js +341 -0
  400. package/src/commands/merkle-persist.js +3 -1
  401. package/src/commands/merkle.js +18 -3
  402. package/src/commands/models.js +110 -24
  403. package/src/commands/plugins.js +175 -0
  404. package/src/commands/preferences.js +28 -8
  405. package/src/commands/product.js +53 -10
  406. package/src/commands/providers.js +173 -44
  407. package/src/commands/resume.js +9 -5
  408. package/src/commands/runtime-status.js +154 -0
  409. package/src/commands/shell.js +508 -56
  410. package/src/commands/skill.js +248 -0
  411. package/src/commands/skills.js +1 -1
  412. package/src/commands/start-local.js +4 -0
  413. package/src/commands/status.js +82 -7
  414. package/src/commands/tunnel.js +228 -195
  415. package/src/commands/whoami.js +156 -12
  416. package/src/context/budget.js +6 -0
  417. package/src/context/index.js +2 -1
  418. package/src/context/project-card.js +75 -0
  419. package/src/errors/contract.js +34 -211
  420. package/src/errors/diagnostic.js +95 -51
  421. package/src/errors/index.js +6 -13
  422. package/src/eval/index.js +6 -0
  423. package/src/eval/live.js +439 -0
  424. package/src/features/resolve.js +242 -0
  425. package/src/go/build.js +298 -0
  426. package/src/go/cloudflare.js +608 -0
  427. package/src/go/container.js +120 -0
  428. package/src/go/contract.js +144 -0
  429. package/src/go/discover.js +212 -0
  430. package/src/go/index.js +25 -0
  431. package/src/go/native-probe-runner.mjs +119 -0
  432. package/src/go/official-registry.js +280 -0
  433. package/src/go/official-release.js +10 -0
  434. package/src/go/receipts.js +144 -0
  435. package/src/go/verify.js +38 -0
  436. package/src/index.js +127 -1
  437. package/src/indexing/ingest/discover-models.js +298 -0
  438. package/src/indexing/ingest/inventory.js +243 -0
  439. package/src/indexing/ingest/job-graph.js +181 -0
  440. package/src/indexing/ingest/materials.js +210 -0
  441. package/src/knowledge/config.js +13 -5
  442. package/src/knowledge/engine.js +23 -8
  443. package/src/knowledge/index.js +1 -0
  444. package/src/knowledge/lane-registry.js +46 -0
  445. package/src/knowledge/providers/gemini.js +48 -8
  446. package/src/knowledge/service/client.js +13 -1
  447. package/src/knowledge/service/grpc-codec.js +156 -53
  448. package/src/knowledge/service/job-engine.js +133 -11
  449. package/src/knowledge/service/job-worker.js +34 -5
  450. package/src/knowledge/service/server.js +10 -1
  451. package/src/knowledge/store-discovery.js +77 -0
  452. package/src/lib/account-session.js +8 -2
  453. package/src/lib/agent-instructions.js +3 -0
  454. package/src/lib/auth.js +7 -3
  455. package/src/lib/cad/blender.js +42 -3
  456. package/src/lib/cad/d1-project-store.js +43 -0
  457. package/src/lib/cad/discovery.js +616 -0
  458. package/src/lib/cad/docker-executor.js +352 -0
  459. package/src/lib/cad/freecad.js +253 -0
  460. package/src/lib/cad/index.js +40 -0
  461. package/src/lib/cad/openscad.js +198 -0
  462. package/src/lib/cad/project-cli.d.ts +2 -0
  463. package/src/lib/cad/project-cli.js +21 -0
  464. package/src/lib/cad/project-contract.d.ts +3 -0
  465. package/src/lib/cad/project-contract.js +1 -0
  466. package/src/lib/cad/project-recipe.js +30 -0
  467. package/src/lib/cad/project-runtime.d.ts +2 -0
  468. package/src/lib/cad/project-runtime.js +53 -0
  469. package/src/lib/cad/project-store.js +25 -0
  470. package/src/lib/cad/project-workflows.js +31 -0
  471. package/src/lib/cad-docker.js +21 -2
  472. package/src/lib/cli-preferences.js +17 -2
  473. package/src/lib/core-client.js +37 -18
  474. package/src/lib/deploy/local-studio.js +6 -5
  475. package/src/lib/dockerize.js +3 -0
  476. package/src/lib/execution-approvals.js +1 -0
  477. package/src/lib/identity-scaffold.js +4 -1
  478. package/src/lib/knowledge-docker.js +9 -1
  479. package/src/lib/local-sessions.js +124 -34
  480. package/src/lib/local-status.js +35 -14
  481. package/src/lib/project-config.js +9 -0
  482. package/src/lib/provider-credentials.js +136 -32
  483. package/src/lib/scaffold/resolve-cloudflare-account.js +37 -0
  484. package/src/lib/scaffold/wizards/cms.js +2 -8
  485. package/src/lib/scaffold/wizards/worker-api.js +2 -8
  486. package/src/lib/slash-commands.js +10 -2
  487. package/src/local/migrations.js +109 -1
  488. package/src/local/runtime-store.js +31 -5
  489. package/src/local/sqlite.js +36 -1
  490. package/src/local-fs/capability.js +121 -0
  491. package/src/local-fs/freshness.js +75 -0
  492. package/src/local-fs/index.js +385 -0
  493. package/src/local-fs/paths.js +100 -0
  494. package/src/local-pty/server.js +295 -19
  495. package/src/mcp/authority.js +348 -0
  496. package/src/mcp/client-adapters.js +431 -0
  497. package/src/mcp/client.js +172 -0
  498. package/src/mcp/index.js +47 -0
  499. package/src/mcp/telemetry.js +103 -0
  500. package/src/models/ai-access-onboarding.js +112 -0
  501. package/src/models/catalog.js +329 -51
  502. package/src/models/discovery.js +34 -6
  503. package/src/models/index.js +2 -0
  504. package/src/models/inventory-core.js +190 -0
  505. package/src/models/policy.js +20 -0
  506. package/src/plugins/cloudflare.js +103 -0
  507. package/src/plugins/completeful.js +69 -0
  508. package/src/plugins/contracts.js +86 -0
  509. package/src/plugins/index.js +11 -0
  510. package/src/plugins/registry.js +207 -0
  511. package/src/plugins/resource-scope.js +45 -0
  512. package/src/plugins/runtime.js +118 -0
  513. package/src/plugins/vectorize.js +31 -0
  514. package/src/progression/engine.js +171 -0
  515. package/src/progression/index.js +1 -0
  516. package/src/providers/cloudflare-chat.js +1 -1
  517. package/src/providers/gemini-generate-content.js +2 -1
  518. package/src/providers/openai-responses.js +45 -16
  519. package/src/providers/tool-schema.js +85 -0
  520. package/src/repository/index.js +29 -0
  521. package/src/rpc/generated/errors_pb.js +961 -1
  522. package/src/sam/activity/index.js +183 -0
  523. package/src/sam/client.js +252 -0
  524. package/src/sam/decision/calibration.js +109 -0
  525. package/src/sam/decision/confidence.js +126 -0
  526. package/src/sam/decision/evaluate.js +157 -0
  527. package/src/sam/decision/evaluators/deterministic.js +341 -0
  528. package/src/sam/decision/evaluators/heuristic.js +61 -0
  529. package/src/sam/decision/evaluators/select.js +50 -0
  530. package/src/sam/decision/evaluators/semantic.js +149 -0
  531. package/src/sam/decision/hierarchical.js +61 -0
  532. package/src/sam/decision/index.js +53 -0
  533. package/src/sam/decision/policy.js +86 -0
  534. package/src/sam/decision/questions.js +120 -0
  535. package/src/sam/decision/receipt.js +148 -0
  536. package/src/sam/decision/state.js +117 -0
  537. package/src/sam/decision/types.js +22 -0
  538. package/src/sam/decision/validate.js +200 -0
  539. package/src/sam/define.js +51 -0
  540. package/src/sam/index.js +65 -0
  541. package/src/sam/operations/brand-scan.js +62 -0
  542. package/src/sam/operations/cad-blender-inspect.js +36 -0
  543. package/src/sam/operations/codebaseindex-ingest.js +49 -0
  544. package/src/sam/operations/decision-evaluate.js +59 -0
  545. package/src/sam/operations/planning-astar.js +77 -0
  546. package/src/sam/operations/planning-goap.js +60 -0
  547. package/src/sam/operations/repository-inspect.js +72 -0
  548. package/src/sam/operations/security-scan.js +33 -0
  549. package/src/sam/operations/terminal-exec.js +29 -0
  550. package/src/sam/planning/astar.js +311 -0
  551. package/src/sam/planning/goap.js +177 -0
  552. package/src/sam/planning/index.js +21 -0
  553. package/src/sam/planning/state.js +84 -0
  554. package/src/sam/registry.js +48 -0
  555. package/src/sam/result.js +77 -0
  556. package/src/sam/seed.js +44 -0
  557. package/src/sam/types.js +91 -0
  558. package/src/security/local-vault.js +415 -0
  559. package/src/security/process.js +20 -4
  560. package/src/skills/catalog.js +64 -0
  561. package/src/skills/content-resolver.js +124 -0
  562. package/src/skills/hosted-store.js +37 -0
  563. package/src/skills/index.js +29 -64
  564. package/src/skills/interaction.js +102 -0
  565. package/src/skills/local-store.js +228 -0
  566. package/src/skills/manifest.js +104 -0
  567. package/src/skills/metrics.js +31 -0
  568. package/src/skills/registry.js +184 -0
  569. package/src/skills/runtime.js +287 -0
  570. package/src/skills/slash.js +44 -0
  571. package/src/status/actions.js +192 -0
  572. package/src/tools/hydrate.js +5 -1
  573. package/src/tools/index.js +7 -0
  574. package/src/tools/redact.js +64 -0
  575. package/src/tools/registry.js +83 -0
  576. package/src/tools/runtime.js +257 -0
  577. package/src/tools/search.js +21 -8
  578. package/src/ui/ansi.js +117 -3
  579. package/src/ui/cli/activity.js +76 -7
  580. package/src/ui/cli/footer.js +110 -9
  581. package/src/ui/cli/help.js +96 -96
  582. package/src/ui/wireframes.js +166 -0
  583. package/test/account-session.test.mjs +28 -0
  584. package/test/apps-scaffold-contract.test.mjs +16 -1
  585. package/test/capabilities.test.mjs +1 -1
  586. package/test/cli/api-key-env-whoami.test.mjs +129 -0
  587. package/test/cli/codebaseindex-plan-ux.test.mjs +37 -0
  588. package/test/cli/eval-live.test.mjs +219 -0
  589. package/test/cli/go.test.mjs +128 -0
  590. package/test/cli/local-vault-and-provider-setup.test.mjs +268 -0
  591. package/test/cli/mcp-client.test.mjs +245 -0
  592. package/test/cli/runtime-ui.test.mjs +69 -2
  593. package/test/cli/skill-npm-and-env.test.mjs +52 -0
  594. package/test/cli/status-actions.test.mjs +88 -0
  595. package/test/cli/wireframes-go-registry.test.mjs +139 -0
  596. package/test/cloudflare-connector.test.mjs +3 -6
  597. package/test/cloudflare-runtime.test.mjs +8 -1
  598. package/test/context.test.mjs +15 -0
  599. package/test/error-diagnostics.test.mjs +9 -0
  600. package/test/fixtures/cad/courtyard-house.json +208 -0
  601. package/test/go/build-source-identity.test.mjs +31 -0
  602. package/test/go/cloudflare-probe.test.mjs +317 -0
  603. package/test/go/distribution.test.mjs +28 -0
  604. package/test/integration/ai-access-onboarding.test.mjs +47 -0
  605. package/test/integration/app-command.test.mjs +55 -0
  606. package/test/integration/cad-discovery.test.mjs +158 -0
  607. package/test/integration/cad-docker-executor.test.mjs +249 -0
  608. package/test/integration/cad-execution.test.mjs +184 -0
  609. package/test/integration/cad-project-app.test.mjs +31 -0
  610. package/test/integration/cad-project-d1.test.mjs +25 -0
  611. package/test/integration/cad-project-native.test.mjs +24 -0
  612. package/test/integration/cad-project-workflow.test.mjs +9 -0
  613. package/test/integration/cad-project.test.mjs +82 -0
  614. package/test/integration/cli-help.test.mjs +5 -1
  615. package/test/integration/cms-site-tenancy-contract.test.mjs +256 -0
  616. package/test/integration/codebaseindex-ingest.test.mjs +166 -0
  617. package/test/integration/core-client.integration.test.mjs +55 -0
  618. package/test/integration/error-runtime-rpc.test.mjs +71 -0
  619. package/test/integration/features-resolve.test.mjs +128 -0
  620. package/test/integration/icon-registry.test.mjs +67 -0
  621. package/test/integration/ingest-discover-models.test.mjs +30 -0
  622. package/test/integration/install-script.test.mjs +110 -0
  623. package/test/integration/inventory-core.test.mjs +53 -0
  624. package/test/integration/local-fs.test.mjs +113 -0
  625. package/test/integration/plugins-cloudflare.integration.test.mjs +28 -0
  626. package/test/integration/provider-env-cli.test.mjs +3 -2
  627. package/test/integration/runtime-migrations.test.mjs +6 -1
  628. package/test/integration/runtime-status.integration.test.mjs +211 -0
  629. package/test/integration/sam-activity-recovery.test.mjs +147 -0
  630. package/test/integration/sam-decision.test.mjs +584 -0
  631. package/test/integration/sam-kernel.test.mjs +99 -0
  632. package/test/integration/sam-planning-astar.test.mjs +279 -0
  633. package/test/integration/scaffold-cloudflare.test.mjs +46 -0
  634. package/test/integration/skill-runtime.test.mjs +240 -0
  635. package/test/integration/storage-architecture.test.mjs +154 -0
  636. package/test/integration/store-discovery.test.mjs +44 -0
  637. package/test/integration/studio-fs-pty-e2e.test.mjs +294 -0
  638. package/test/integration/terminal-exec.integration.test.mjs +86 -0
  639. package/test/integration/tool-runtime.test.mjs +124 -0
  640. package/test/integration/tool-schema.test.mjs +59 -0
  641. package/test/knowledge-service.test.mjs +4 -0
  642. package/test/local-sessions.test.mjs +11 -2
  643. package/test/local-studio-deploy.test.mjs +1 -1
  644. package/test/model-catalog.test.mjs +28 -1
  645. package/test/models.test.mjs +172 -11
  646. package/test/openai-responses.test.mjs +60 -0
  647. package/test/provider-credentials.test.mjs +15 -5
  648. package/test/responses-runner.test.mjs +321 -6
  649. package/test/shell.test.mjs +151 -6
  650. package/test/smoke.mjs +2 -2
  651. package/test/tools-search.test.mjs +33 -0
  652. package/test/unit/website-assets-bindings.test.mjs +60 -0
  653. package/test/whoami-resume.test.mjs +82 -3
  654. package/examples/gorilla-shell/README.md +0 -15
  655. package/src/lib/gorilla-template.js +0 -54
  656. package/templates/gorilla-shell/App.tsx +0 -639
  657. package/templates/gorilla-shell/README.md +0 -34
  658. package/templates/gorilla-shell/index.html +0 -15
  659. package/templates/gorilla-shell/main.jsx +0 -9
  660. package/templates/gorilla-shell/package.json +0 -19
  661. package/templates/gorilla-shell/vite.config.js +0 -21
@@ -0,0 +1,130 @@
1
+ /**
2
+ * CLI command catalog — machine-readable authority for help, assist tips, and dispatch hints.
3
+ * Alias ≠ authority: skill tips and SAM operation ids live here so help is not a prose-only dump.
4
+ */
5
+
6
+ /** @typedef {{ id: string, aliases?: string[], summary: string, topic: string, skill?: string, operation?: string, common?: boolean }} CliCommandEntry */
7
+
8
+ /** @type {CliCommandEntry[]} */
9
+ export const CLI_COMMAND_CATALOG = Object.freeze([
10
+ { id: 'help', aliases: ['-h', '--help'], summary: 'Interactive or topic help from this catalog', topic: 'start', skill: 'agentsam-app-fundamentals', common: true },
11
+ { id: 'create', summary: 'Scaffold a new AgentSam project from a preset', topic: 'create', skill: 'agentsam-app-fundamentals', common: false },
12
+ { id: 'add', summary: 'Add an explicit feature/capability selection', topic: 'create', skill: 'agentsam-app-fundamentals' },
13
+ { id: 'plugins', summary: 'Install and manage AgentSam plugins', topic: 'create', skill: 'agentsam-app-fundamentals' },
14
+ { id: 'dev', summary: 'Run this project’s npm dev script', topic: 'work', skill: 'agentsam-app-fundamentals' },
15
+ { id: 'inspect', summary: 'Bounded repository inspect / authority view', topic: 'work', skill: 'agentsam-app-fundamentals', operation: 'repository.inspect', common: true },
16
+ { id: 'capabilities', summary: 'Inspect capability contracts', topic: 'create', skill: 'agentsam-app-fundamentals' },
17
+ { id: 'skills', aliases: ['skill'], summary: 'List or load portable skill instructions', topic: 'create', skill: 'agentsam-app-fundamentals', common: true },
18
+ { id: 'context', summary: 'Git + bridge context from any repo', topic: 'work', skill: 'agentsam-app-fundamentals' },
19
+ { id: 'status', summary: 'Account, models, terminal, and live deploy awareness', topic: 'runtime', skill: 'agentsam-progression-guard', common: true },
20
+ { id: 'db', summary: 'Project-local SQLite status/init', topic: 'runtime', skill: 'agentsam-app-fundamentals' },
21
+ { id: 'models', summary: 'Probe hosted/local model availability', topic: 'start', skill: 'agentsam-app-fundamentals', common: true },
22
+ { id: 'providers', summary: 'Configure machine provider credentials', topic: 'start', skill: 'agentsam-app-fundamentals' },
23
+ { id: 'env', summary: 'Provider profile / shell loader helpers', topic: 'start', skill: 'agentsam-app-fundamentals' },
24
+ { id: 'api-key', aliases: ['apikey', 'api-keys'], summary: 'Create/list/rotate AgentSam API keys (aak_*)', topic: 'start', skill: 'agentsam-app-fundamentals', common: true },
25
+ { id: 'login', summary: 'Sign in and persist machine-local session', topic: 'start', skill: 'agentsam-app-fundamentals' },
26
+ { id: 'logout', summary: 'Sign out locally', topic: 'start', skill: 'agentsam-app-fundamentals' },
27
+ { id: 'whoami', summary: 'Authenticated account + tokenPermissions', topic: 'start', skill: 'agentsam-app-fundamentals', common: true },
28
+ { id: 'resume', summary: 'Resume a saved AgentSam session', topic: 'start', skill: 'agentsam-app-fundamentals' },
29
+ { id: 'shell', summary: 'Interactive slash-command shell', topic: 'inside', skill: 'agentsam-app-fundamentals' },
30
+ { id: 'start-local', summary: 'Local PTY WebSocket service', topic: 'runtime', skill: 'agentsam-app-fundamentals' },
31
+ { id: 'ollama', summary: 'Local Ollama setup/status/models', topic: 'runtime', skill: 'agentsam-app-fundamentals' },
32
+ { id: 'tunnel', summary: 'Cloudflare Tunnel via Wrangler', topic: 'runtime', skill: 'agentsam-cloudflare-workers' },
33
+ { id: 'connections', aliases: ['connection'], summary: 'Inspect execution connections', topic: 'runtime', skill: 'agentsam-cloudflare-workers' },
34
+ { id: 'deploy', summary: 'Graduate intentionally to cloud', topic: 'runtime', skill: 'agentsam-progression-guard', common: true },
35
+ { id: 'deploy-receipt', summary: 'Merkle deploy/checkpoint receipts', topic: 'runtime', skill: 'agentsam-progression-guard' },
36
+ { id: 'cloudflare', aliases: ['cf'], summary: 'Wrangler reads + Worker CPU profiles', topic: 'runtime', skill: 'agentsam-cloudflare-workers' },
37
+ { id: 'go', summary: 'Go product discover/build/deploy', topic: 'runtime', skill: 'agentsam-cloudflare-workers' },
38
+ { id: 'mcp', summary: 'MCP server catalog and client adapters', topic: 'runtime', skill: 'agentsam-cloudflare-workers' },
39
+ { id: 'eval', summary: 'Context fixtures and live eval telemetry', topic: 'runtime', skill: 'agentsam-app-fundamentals' },
40
+ { id: 'index', summary: 'Plan/run incremental AST (+ optional embeddings)', topic: 'work', skill: 'agentsam-codebaseindex', operation: 'codebaseindex.ingest' },
41
+ { id: 'search', summary: 'Retrieve indexed code/text', topic: 'work', skill: 'agentsam-codebaseindex' },
42
+ { id: 'repo', summary: 'Repository snapshot / observations', topic: 'work', skill: 'agentsam-app-fundamentals', operation: 'repository.inspect' },
43
+ { id: 'init', summary: 'Knowledge setup or local scaffold', topic: 'create', skill: 'agentsam-app-fundamentals' },
44
+ { id: 'codebaseindex', aliases: ['ingest', 'codebase-index'], summary: 'Guided codebase ingest: materials, allowlist, embeddings, storage', topic: 'work', skill: 'agentsam-codebaseindex', operation: 'codebaseindex.ingest', common: true },
45
+ { id: 'brand', summary: 'Deterministic brand intelligence', topic: 'work', skill: 'agentsam-app-fundamentals', operation: 'brand.scan' },
46
+ { id: 'plan', summary: 'Composable plans (e.g. brand)', topic: 'work', skill: 'agentsam-app-fundamentals' },
47
+ { id: 'security', aliases: ['sca'], summary: 'Dependency + trust-boundary scan', topic: 'work', skill: 'agentsam-progression-guard', operation: 'security.scan', common: true },
48
+ { id: 'merkle', summary: 'File integrity snapshots and explorer', topic: 'work', skill: 'agentsam-app-fundamentals' },
49
+ { id: 'cad', summary: 'Blender/OpenSCAD/FreeCAD CAD tools', topic: 'work', skill: 'agentsam-app-fundamentals', operation: 'cad.blender.inspect' },
50
+ { id: 'dockerize', summary: 'Build/run supported containers', topic: 'create', skill: 'agentsam-app-fundamentals' },
51
+ { id: 'mini', summary: 'Create a small local gadget', topic: 'create', skill: 'agentsam-jr-dev' },
52
+ { id: 'recon', summary: 'Bounded-worker packets + finding reports', topic: 'work', skill: 'agentsam-app-fundamentals' },
53
+ { id: 'autorag', summary: 'AutoRAG configure/probe helpers', topic: 'work', skill: 'agentsam-codebaseindex' },
54
+ { id: 'identity', summary: 'Identity portal, providers, protocol surfaces', topic: 'create', skill: 'agentsam-app-fundamentals' },
55
+ { id: 'scaffold', summary: 'Generate CMS or worker-api starter', topic: 'create', skill: 'agentsam-jr-dev' },
56
+ { id: 'goap', summary: 'GOAP blackboard status/plan', topic: 'inside', skill: 'agentsam-app-fundamentals' },
57
+ { id: 'app', aliases: ['apps'], summary: 'Bundled AgentSam apps launcher', topic: 'create', skill: 'agentsam-app-fundamentals' },
58
+ ]);
59
+
60
+ const byId = new Map();
61
+ for (const entry of CLI_COMMAND_CATALOG) {
62
+ byId.set(entry.id, entry);
63
+ for (const alias of entry.aliases || []) byId.set(alias, entry);
64
+ }
65
+
66
+ /**
67
+ * @param {string} name
68
+ * @returns {CliCommandEntry|null}
69
+ */
70
+ export function getCliCommand(name) {
71
+ const key = String(name || '').trim().toLowerCase();
72
+ if (!key) return null;
73
+ return byId.get(key) || null;
74
+ }
75
+
76
+ export function listCliCommands(options = {}) {
77
+ let rows = [...CLI_COMMAND_CATALOG];
78
+ if (options.topic) rows = rows.filter((r) => r.topic === options.topic);
79
+ if (options.common) rows = rows.filter((r) => r.common);
80
+ return rows;
81
+ }
82
+
83
+ /**
84
+ * Machine baseline: every command surfaces how to load its skill from inside the CLI.
85
+ * @param {CliCommandEntry|string} entryOrId
86
+ * @param {{ write?: (s: string) => void, quiet?: boolean }} [options]
87
+ */
88
+ export function printAssistTip(entryOrId, options = {}) {
89
+ if (options.quiet) return;
90
+ // Never contaminate machine JSON streams.
91
+ if (options.json || process.argv.includes('--json') || process.argv.includes('--format=json')) return;
92
+ const entry = typeof entryOrId === 'string' ? getCliCommand(entryOrId) : entryOrId;
93
+ if (!entry?.skill) return;
94
+ const write = options.write || ((s) => process.stderr.write(s));
95
+ const op = entry.operation ? ` · sam.invoke("${entry.operation}")` : '';
96
+ write(` tip: use skill ${entry.skill} (agentsam skills ${entry.skill})${op}\n`);
97
+ }
98
+
99
+ /**
100
+ * Suggest close command ids for unknown input.
101
+ * @param {string} name
102
+ * @param {number} [limit]
103
+ */
104
+ export function suggestCliCommands(name, limit = 5) {
105
+ const q = String(name || '').toLowerCase();
106
+ if (!q) return listCliCommands({ common: true }).slice(0, limit);
107
+ return CLI_COMMAND_CATALOG
108
+ .map((entry) => {
109
+ const hay = [entry.id, ...(entry.aliases || []), entry.summary].join(' ').toLowerCase();
110
+ let score = 0;
111
+ if (entry.id.startsWith(q) || (entry.aliases || []).some((a) => a.startsWith(q))) score += 3;
112
+ if (hay.includes(q)) score += 1;
113
+ for (const t of q.split(/[^a-z0-9]+/).filter(Boolean)) {
114
+ if (hay.includes(t)) score += 1;
115
+ }
116
+ return { entry, score };
117
+ })
118
+ .filter((x) => x.score > 0)
119
+ .sort((a, b) => b.score - a.score || a.entry.id.localeCompare(b.entry.id))
120
+ .slice(0, limit)
121
+ .map((x) => x.entry);
122
+ }
123
+
124
+ export const CLI_HELP_TOPICS = Object.freeze([
125
+ { id: 'start', label: 'Start / resume', summary: 'Enter AgentSam, resume work, identity, models.' },
126
+ { id: 'work', label: 'Build / inspect', summary: 'Repository intelligence, ingest, security, brand.' },
127
+ { id: 'runtime', label: 'Runtime / terminal', summary: 'Local, remote, sandbox, and deployment controls.' },
128
+ { id: 'inside', label: 'Inside AgentSam', summary: 'Shell and GOAP surfaces.' },
129
+ { id: 'create', label: 'Create / extend', summary: 'Scaffold, add capabilities, identity, skills.' },
130
+ ]);
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Catalog-backed dispatch bootstrap.
3
+ * Full cli.js cutover is incremental — this module is the target authority for handlers.
4
+ */
5
+
6
+ import { getCliCommand, printAssistTip, suggestCliCommands } from './command-catalog.js';
7
+
8
+ /** @type {Record<string, () => Promise<(argv: string[]) => unknown>>} */
9
+ const HANDLERS = {
10
+ codebaseindex: async () => (await import('../commands/codebaseindex.js')).runCodebaseindex,
11
+ ingest: async () => (await import('../commands/codebaseindex.js')).runCodebaseindex,
12
+ 'codebase-index': async () => (await import('../commands/codebaseindex.js')).runCodebaseindex,
13
+ skill: async () => (await import('../commands/skill.js')).runSkill,
14
+ skills: async () => (await import('../commands/skills.js')).runSkills,
15
+ };
16
+
17
+ /**
18
+ * @param {string} command
19
+ * @param {string[]} rest
20
+ * @param {{ reportError?: (e: Error) => void }} [ctx]
21
+ */
22
+ export async function dispatchCatalogCommand(command, rest = [], ctx = {}) {
23
+ const entry = getCliCommand(command);
24
+ if (!entry) {
25
+ const suggestions = suggestCliCommands(command);
26
+ const err = new Error(`Unknown command: ${command}`);
27
+ err.code = 'AGENTSAM_UNKNOWN_COMMAND';
28
+ err.suggestions = suggestions;
29
+ throw err;
30
+ }
31
+
32
+ printAssistTip(entry, { json: rest.includes('--json') });
33
+
34
+ const loader = HANDLERS[entry.id] || HANDLERS[command];
35
+ if (!loader) {
36
+ const err = new Error(`Catalog entry "${entry.id}" is not yet wired to a lazy handler (legacy cli.js path).`);
37
+ err.code = 'AGENTSAM_HANDLER_NOT_MIGRATED';
38
+ err.entry = entry;
39
+ throw err;
40
+ }
41
+
42
+ const run = await loader();
43
+ return run(rest);
44
+ }
45
+
46
+ export function listDispatchableCommands() {
47
+ return Object.keys(HANDLERS);
48
+ }
package/src/cli.js CHANGED
@@ -11,6 +11,7 @@ import { printContextSummary } from './lib/detect-context.js';
11
11
  import { runStartLocal } from './commands/start-local.js';
12
12
  import { runOllama } from './commands/ollama.js';
13
13
  import { runModels } from './commands/models.js';
14
+ import { runApp } from './commands/app.js';
14
15
  import { runProviders } from './commands/providers.js';
15
16
  import { runEnv } from './commands/env.js';
16
17
  import { runTunnel } from './commands/tunnel.js';
@@ -23,6 +24,8 @@ import { runDb } from './commands/db.js';
23
24
  import { runStatus } from './commands/status.js';
24
25
  import { runInteractive } from './commands/interactive.js';
25
26
  import { runShell } from './commands/shell.js';
27
+ import { runGoap } from './commands/goap.js';
28
+ import { runBrand, runPlan } from './commands/brand.js';
26
29
  import { runDockerize } from './commands/dockerize.js';
27
30
  import { runMini } from './commands/mini.js';
28
31
  import { runMerkle } from './commands/merkle.js';
@@ -31,11 +34,16 @@ import { runSecurity } from './commands/security.js';
31
34
  import { runRecon } from './commands/recon.js';
32
35
  import { runCad } from './commands/cad.js';
33
36
  import { runSkills } from './commands/skills.js';
37
+ import { runSkill } from './commands/skill.js';
34
38
  import { runEval } from './commands/eval.js';
39
+ import { runMcp } from './commands/mcp.js';
35
40
  import { runCloudflare } from './commands/cloudflare.js';
41
+ import { runGo } from './commands/go.js';
36
42
  import { runWhoami } from './commands/whoami.js';
43
+ import { runApiKey } from './commands/api-key.js';
37
44
  import { runResume } from './commands/resume.js';
38
45
  import { runLogin, runLogout } from './commands/account-auth.js';
46
+ import { runPlugins } from './commands/plugins.js';
39
47
  import { applyPresetSelection, runAdd, runCapabilities, runDev, runInspect } from './commands/product.js';
40
48
  import { listPresets, resolvePreset } from './presets/index.js';
41
49
  import fs from 'node:fs';
@@ -43,6 +51,8 @@ import { repositoryRoot } from './knowledge/config.js';
43
51
  import { resolveAccountAuth } from './lib/account-session.js';
44
52
  import { renderDiagnosticError } from './errors/index.js';
45
53
  import { renderHelpOverview, runHelp } from './ui/cli/help.js';
54
+ import { hydrateSecureCredentials } from './security/local-vault.js';
55
+ import { getCliCommand, printAssistTip, suggestCliCommands } from './cli/command-catalog.js';
46
56
 
47
57
  const VERSION = pkg.version;
48
58
 
@@ -65,27 +75,33 @@ function printLegacyHelp() {
65
75
  agentsam Enter the interactive Agent Sam experience
66
76
  agentsam create <name> --preset <fullstack|cms|prototype|data>
67
77
  agentsam add <auth|cms|knowledge|agent|deploy-cloudflare>
78
+ agentsam plugins list|install|connect|status|remove [@agentsam-mcp]
68
79
  agentsam dev Run this project's existing npm dev script
69
80
  agentsam inspect [--json] Bounded repository index by default; use --view full for authority envelope
81
+ agentsam brand [scan|…] Deterministic brand intelligence on repository.snapshot authority
82
+ agentsam plan brand Composable brand normalization plan (--goap optional)
70
83
  agentsam deploy Graduate an AgentSam project intentionally
71
84
 
72
85
  Capability discovery:
73
86
  agentsam capabilities [capability-id] [--json]
87
+ agentsam skill list|create|inspect|install|alias|remove|invoke
74
88
  agentsam skills [skill-id-or-alias] [--references] [--json]
75
89
 
76
90
  Power-user UX:
77
91
  agentsam context [--json] Git repo/revision + bridge configuration from any repo
78
92
  agentsam init Configure knowledge in this repo; --name scaffolds a new project
79
93
  agentsam index Plan/run incremental AST and optional embeddings (--help)
94
+ agentsam codebaseindex Guided ingest: materials/allowlist/embeddings/storage (alias: ingest)
80
95
  agentsam search "query" Retrieve indexed code/text; --semantic enables embeddings
81
96
  agentsam repo snapshot Git composition/churn; --save retains observations
82
97
  agentsam cad blender Programmatic Blender inspect/build/render/export (--help)
98
+ agentsam cad project Editable CAD project tools/workflows (--help)
83
99
  agentsam mini <name> Create and preview a small local gadget (--help for options)
84
100
  agentsam merkle File integrity, snapshots, comparisons, and interactive explorer (--help)
85
101
  agentsam deploy-receipt Merkle deploy/checkpoint capture + promote/failure receipts (--help)
86
102
  agentsam recon Bounded-worker task packets + finding-report validation (--help)
87
103
  agentsam security Dependency scan, log triage, and verified repair (--help)
88
- agentsam status [--json] Live local Git + DB + API + PTY status
104
+ agentsam status [--json] [-i] Honest awareness: account + models + terminal + live Worker
89
105
  agentsam db init|status Manage the project-local SQLite database
90
106
  agentsam models Verify configured providers and selectable hosted/local models
91
107
  agentsam providers Configure, verify, and remove machine provider credentials
@@ -96,14 +112,16 @@ function printLegacyHelp() {
96
112
  agentsam resume [session] Resume a saved Agent Sam session; omit id for picker
97
113
  agentsam eval context Offline context-strategy/economics fixtures (--help)
98
114
  agentsam cloudflare Native Wrangler reads + Worker CPU profile analysis (--help)
115
+ agentsam go Go runtime discovery/build/deploy (Cloudflare worker-container)
99
116
  agentsam start-local Local PTY on ws://127.0.0.1:3099 (no tunnel, no Cloudflare)
100
117
  agentsam ollama Opt-in local Ollama setup/status/model management
101
118
  agentsam shell Interactive Agent Sam slash-command shell
102
- agentsam tunnel Explicitly expose local PTY when remote access is wanted
119
+ agentsam tunnel Choose/list/inspect/run real Cloudflare Tunnels via Wrangler
103
120
  agentsam deploy Graduate to Cloudflare / GCP when ready
104
121
  agentsam dockerize Build/run app, knowledge, or CAD containers (--help)
105
122
  agentsam identity preview Preview the reusable local auth portal (not production login)
106
- agentsam identity init Add reusable identity package surfaces
123
+ agentsam identity init Scaffold identity app (+ optional --provider)
124
+ agentsam identity providers|plan|schema|resolve Protocol-driven identity surfaces
107
125
  agentsam help
108
126
  agentsam --version
109
127
  agentsam --help
@@ -131,11 +149,13 @@ function printLegacyHelp() {
131
149
  Run agentsam from any project to enter the account-aware interactive experience.
132
150
  Account, model-provider, terminal, and deploy permissions are requested only when the related capability needs them.
133
151
 
134
- Tunnel options:
135
- --quick Quick tunnel (default) — trycloudflare.com URL
136
- --named Named CF tunnel (needs --tunnel-name --hostname --zone-id)
137
- --port <n> Local PTY port (default 3099)
138
- --token <aak_…> Use AGENTSAM_API_KEY-compatible account credential
152
+ Tunnel commands:
153
+ agentsam tunnel Guided picker over Wrangler-visible tunnels
154
+ agentsam tunnel list List real Cloudflare Tunnels
155
+ agentsam tunnel info <id> Inspect one tunnel
156
+ agentsam tunnel run <id> Run/start a connector on this machine
157
+ agentsam tunnel create <name>
158
+ agentsam tunnel quick-start [url]
139
159
 
140
160
  Init options:
141
161
  --name <name> Project directory name
@@ -300,6 +320,13 @@ async function initFromArgs(argv) {
300
320
  const command = process.argv[2];
301
321
  const rest = process.argv.slice(3);
302
322
 
323
+ hydrateSecureCredentials(process.env);
324
+
325
+ const catalogEntry = command && !command.startsWith('-') ? getCliCommand(command) : null;
326
+ if (catalogEntry && command !== 'help') {
327
+ printAssistTip(catalogEntry);
328
+ }
329
+
303
330
  if (command === '--version' || command === '-v') {
304
331
  console.log(VERSION);
305
332
  } else if (command === 'help') {
@@ -333,6 +360,12 @@ if (command === '--version' || command === '-v') {
333
360
  } else if (command === 'add') {
334
361
  try { await runAdd(rest); }
335
362
  catch (e) { reportCliError(e); process.exitCode = 1; }
363
+ } else if (command === 'plugins') {
364
+ try { await runPlugins(rest); }
365
+ catch (e) { reportCliError(e); process.exitCode = 1; }
366
+ } else if (command === 'install' && rest[0] === 'plugins') {
367
+ try { await runPlugins(['install', rest[1] || 'agentsam-mcp', ...rest.slice(2)]); }
368
+ catch (e) { reportCliError(e); process.exitCode = 1; }
336
369
  } else if (command === 'dev') {
337
370
  try { await runDev(rest); }
338
371
  catch (e) { reportCliError(e); process.exitCode = 1; }
@@ -370,6 +403,13 @@ if (command === '--version' || command === '-v') {
370
403
  reportCliError(e);
371
404
  process.exit(1);
372
405
  }
406
+ } else if (command === 'app' || command === 'apps') {
407
+ try {
408
+ await runApp(rest);
409
+ } catch (e) {
410
+ reportCliError(e);
411
+ process.exit(1);
412
+ }
373
413
  } else if (command === 'providers') {
374
414
  try {
375
415
  await runProviders(rest);
@@ -391,6 +431,13 @@ if (command === '--version' || command === '-v') {
391
431
  reportCliError(e);
392
432
  process.exit(1);
393
433
  }
434
+ } else if (command === 'mcp') {
435
+ try {
436
+ await runMcp(rest);
437
+ } catch (e) {
438
+ reportCliError(e);
439
+ process.exitCode = 1;
440
+ }
394
441
  } else if (command === 'cloudflare' || command === 'cf') {
395
442
  try {
396
443
  await runCloudflare(rest);
@@ -398,6 +445,13 @@ if (command === '--version' || command === '-v') {
398
445
  if (!e?.reported) reportCliError(e);
399
446
  process.exitCode = 1;
400
447
  }
448
+ } else if (command === 'go') {
449
+ try {
450
+ await runGo(rest);
451
+ } catch (e) {
452
+ if (!e?.reported) reportCliError(e);
453
+ process.exitCode = 1;
454
+ }
401
455
  } else if (command === 'login') {
402
456
  try {
403
457
  await runLogin(rest);
@@ -419,6 +473,13 @@ if (command === '--version' || command === '-v') {
419
473
  reportCliError(e);
420
474
  process.exitCode = 1;
421
475
  }
476
+ } else if (command === 'api-key' || command === 'apikey' || command === 'api-keys') {
477
+ try {
478
+ await runApiKey(rest);
479
+ } catch (e) {
480
+ reportCliError(e);
481
+ process.exitCode = 1;
482
+ }
422
483
  } else if (command === 'resume') {
423
484
  try {
424
485
  await runResume(rest);
@@ -433,6 +494,30 @@ if (command === '--version' || command === '-v') {
433
494
  reportCliError(e);
434
495
  process.exit(1);
435
496
  }
497
+ } else if (command === 'goap') {
498
+ try {
499
+ await runGoap(rest[0], {
500
+ cwd: process.cwd(),
501
+ json: rest.includes('--json'), args: rest.slice(1),
502
+ });
503
+ } catch (e) {
504
+ reportCliError(e);
505
+ process.exitCode = 1;
506
+ }
507
+ } else if (command === 'brand') {
508
+ try {
509
+ await runBrand(rest);
510
+ } catch (e) {
511
+ reportCliError(e);
512
+ process.exitCode = 1;
513
+ }
514
+ } else if (command === 'plan') {
515
+ try {
516
+ await runPlan(rest);
517
+ } catch (e) {
518
+ reportCliError(e);
519
+ process.exitCode = 1;
520
+ }
436
521
  } else if (command === 'start-local') {
437
522
  await runStartLocal({});
438
523
  } else if (command === 'ollama') {
@@ -479,13 +564,20 @@ if (command === '--version' || command === '-v') {
479
564
  }
480
565
  } else if (command === 'security' || command === 'sca') {
481
566
  await runSecurity(rest);
482
- } else if (command === 'skills' || command === 'skill') {
567
+ } else if (command === 'skills') {
483
568
  try {
484
569
  runSkills(rest);
485
570
  } catch (e) {
486
571
  reportCliError(e);
487
572
  process.exitCode = 1;
488
573
  }
574
+ } else if (command === 'skill') {
575
+ try {
576
+ await runSkill(rest);
577
+ } catch (e) {
578
+ reportCliError(e);
579
+ process.exitCode = 1;
580
+ }
489
581
  } else if (command === 'merkle') {
490
582
  await runMerkle(rest);
491
583
  } else if (command === 'deploy-receipt') {
@@ -499,6 +591,18 @@ if (command === '--version' || command === '-v') {
499
591
  reportCliError(e);
500
592
  process.exitCode = 1;
501
593
  }
594
+ } else if (command === 'autorag') {
595
+ try { await (await import('./commands/autorag.js')).runAutoRag(rest); }
596
+ catch (e) { reportCliError(e); process.exitCode = 1; }
597
+ } else if (command === 'codebaseindex' || command === 'ingest' || command === 'codebase-index') {
598
+ try {
599
+ await (await import('./commands/codebaseindex.js')).runCodebaseindex(rest);
600
+ } catch (e) {
601
+ if (e?.code !== 'AGENTSAM_CODEBASEINDEX_CANCELLED') {
602
+ reportCliError(e);
603
+ process.exitCode = 1;
604
+ }
605
+ }
502
606
  } else if (['index', 'search', 'repo'].includes(command)) {
503
607
  try {
504
608
  const commands = await import('./commands/knowledge.js');
@@ -514,6 +618,7 @@ if (command === '--version' || command === '-v') {
514
618
  } catch (e) { reportCliError(e); process.exitCode = 1; }
515
619
  } else if (command === 'identity') {
516
620
  const sub = rest[0];
621
+ const identityProtocol = await import('./commands/identity-protocol.js');
517
622
  if (sub === 'preview') {
518
623
  try {
519
624
  await runIdentityPreview(rest.slice(1));
@@ -528,12 +633,57 @@ if (command === '--version' || command === '-v') {
528
633
  reportCliError(e);
529
634
  process.exit(1);
530
635
  }
636
+ } else if (sub === 'providers') {
637
+ try {
638
+ await identityProtocol.runIdentityProviders(rest.slice(1));
639
+ } catch (e) {
640
+ reportCliError(e);
641
+ process.exit(1);
642
+ }
643
+ } else if (sub === 'plan') {
644
+ try {
645
+ await identityProtocol.runIdentityPlan(rest.slice(1));
646
+ } catch (e) {
647
+ reportCliError(e);
648
+ process.exit(1);
649
+ }
650
+ } else if (sub === 'schema') {
651
+ try {
652
+ await identityProtocol.runIdentitySchema(rest.slice(1));
653
+ } catch (e) {
654
+ reportCliError(e);
655
+ process.exit(1);
656
+ }
657
+ } else if (sub === 'resolve') {
658
+ try {
659
+ await identityProtocol.runIdentityResolve(rest.slice(1));
660
+ } catch (e) {
661
+ reportCliError(e);
662
+ process.exit(1);
663
+ }
531
664
  } else {
532
- console.error('\n Usage:\n agentsam identity preview [--open] [--port 8791]\n agentsam identity init --name <project> [--brand "Name"]\n');
665
+ identityProtocol.printIdentityHelp();
666
+ process.exit(1);
667
+ }
668
+ } else if (command === 'scaffold') {
669
+ try {
670
+ const { runScaffold } = await import('./lib/scaffold/index.js');
671
+ await runScaffold(rest[0] ?? null);
672
+ } catch (e) {
673
+ reportCliError(e);
533
674
  process.exit(1);
534
675
  }
535
676
  } else {
536
677
  console.error(`\n Unknown command: ${command}\n`);
678
+ const suggestions = suggestCliCommands(command);
679
+ if (suggestions.length) {
680
+ console.error(' Did you mean:');
681
+ for (const row of suggestions) {
682
+ console.error(` agentsam ${row.id} — ${row.summary}`);
683
+ if (row.skill) console.error(` tip: use skill ${row.skill}`);
684
+ }
685
+ console.error('');
686
+ }
537
687
  printHelp();
538
688
  process.exit(1);
539
689
  }
@@ -6,6 +6,12 @@ export {
6
6
  parseWranglerErrorEvidence,
7
7
  runWranglerNative,
8
8
  } from './wrangler.js';
9
+ export {
10
+ readCloudflareDeploymentContract,
11
+ collectCloudflareDeploymentStatus,
12
+ parseWranglerToml,
13
+ resolveProjectD1Database,
14
+ } from './runtime-status.js';
9
15
  export {
10
16
  summarizeCloudflareCpuProfile,
11
17
  summarizeCloudflareCpuProfileFile,