@inneranimalmedia/agentsam-sdk 2.6.4 → 2.6.5

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 (418) hide show
  1. package/AGENTSAM.md +11 -0
  2. package/README.md +15 -9
  3. package/apps/client-cms-editor/AGENTS.md +12 -0
  4. package/apps/client-cms-editor/IMPORT_PROVENANCE.json +8 -0
  5. package/apps/client-cms-editor/README.md +72 -0
  6. package/apps/client-cms-editor/agentsam.app.json +57 -0
  7. package/apps/client-cms-editor/backend/README.md +5 -0
  8. package/apps/client-cms-editor/backend/package.json +22 -0
  9. package/apps/client-cms-editor/backend/src/api/client.ts +200 -0
  10. package/apps/client-cms-editor/backend/src/demo-bootstrap.ts +145 -0
  11. package/apps/client-cms-editor/backend/src/index.ts +6 -0
  12. package/apps/client-cms-editor/backend/src/model.ts +115 -0
  13. package/apps/client-cms-editor/backend/src/preview/bridge.ts +79 -0
  14. package/apps/client-cms-editor/backend/src/preview/urls.ts +55 -0
  15. package/apps/client-cms-editor/backend/src/routing/cms-route.js +293 -0
  16. package/apps/client-cms-editor/backend/src/routing/index.js +10 -0
  17. package/apps/client-cms-editor/backend/src/storefront.ts +52 -0
  18. package/apps/client-cms-editor/backend/tsconfig.json +15 -0
  19. package/apps/client-cms-editor/backend/worker/index.js +34 -0
  20. package/apps/client-cms-editor/backend/wrangler.jsonc +11 -0
  21. package/apps/client-cms-editor/bin/agentsam-cms.mjs +229 -0
  22. package/apps/client-cms-editor/frontend/index.html +12 -0
  23. package/apps/client-cms-editor/frontend/package.json +33 -0
  24. package/apps/client-cms-editor/frontend/src/AgentSamDrawer.tsx +188 -0
  25. package/apps/client-cms-editor/frontend/src/CmsAgentSurface.tsx +191 -0
  26. package/apps/client-cms-editor/frontend/src/CmsEditor.tsx +1345 -0
  27. package/apps/client-cms-editor/frontend/src/env.d.ts +14 -0
  28. package/apps/client-cms-editor/frontend/src/index.ts +8 -0
  29. package/apps/client-cms-editor/frontend/src/lib/content-safety.ts +63 -0
  30. package/apps/client-cms-editor/frontend/src/main.tsx +17 -0
  31. package/apps/client-cms-editor/frontend/src/mount.tsx +51 -0
  32. package/apps/client-cms-editor/frontend/src/styles/agentsam-drawer.css +214 -0
  33. package/apps/client-cms-editor/frontend/src/styles/cmsShell.css +1739 -0
  34. package/apps/client-cms-editor/frontend/src/styles/studio.css +106 -0
  35. package/apps/client-cms-editor/frontend/src/surfaces/CmsDashboard.tsx +313 -0
  36. package/apps/client-cms-editor/frontend/src/surfaces/CmsGuidedChatHero.tsx +121 -0
  37. package/apps/client-cms-editor/frontend/src/surfaces/CmsHubPage.tsx +132 -0
  38. package/apps/client-cms-editor/frontend/src/surfaces/CmsSiteSwitcher.tsx +176 -0
  39. package/apps/client-cms-editor/frontend/src/surfaces/index.ts +5 -0
  40. package/apps/client-cms-editor/frontend/src/surfaces/types.ts +48 -0
  41. package/apps/client-cms-editor/frontend/tsconfig.json +25 -0
  42. package/apps/client-cms-editor/frontend/vite.config.ts +13 -0
  43. package/apps/client-cms-editor/package-lock.json +3832 -0
  44. package/apps/client-cms-editor/package.json +23 -0
  45. package/apps/client-cms-editor/reference/DONOR_README.md +52 -0
  46. package/apps/client-cms-editor/reference/DONOR_package-lock.json +1253 -0
  47. package/apps/client-cms-editor/reference/DONOR_tsconfig.json +15 -0
  48. package/apps/client-cms-editor/shared/cms/package.json +21 -0
  49. package/apps/client-cms-editor/shared/cms/src/agent-context.ts +35 -0
  50. package/apps/client-cms-editor/shared/cms/src/cloudflare-bindings.ts +51 -0
  51. package/apps/client-cms-editor/shared/cms/src/editor-types.ts +58 -0
  52. package/apps/client-cms-editor/shared/cms/src/index.ts +5 -0
  53. package/apps/client-cms-editor/shared/cms/src/publication.ts +24 -0
  54. package/apps/client-cms-editor/shared/cms/src/routes.ts +11 -0
  55. package/apps/client-cms-editor/shared/cms/tsconfig.json +12 -0
  56. package/bin/agentsam-rapid-rust +36 -0
  57. package/docs/AUTH_IDENTITY_CONTRACT.md +2 -0
  58. package/docs/MACHINE_INTELLIGENCE.md +120 -0
  59. package/docs/WINDOWS_RUNTIME_INSTALL.md +30 -0
  60. package/docs/architecture/AGENTSAM_APPLICATION_CONTRACT.md +188 -0
  61. package/docs/architecture/AGENTSAM_RUNTIME_PROTOCOL.md +151 -0
  62. package/docs/architecture/LOCAL_STUDIO_CLOUDFLARE_OAUTH.md +12 -4
  63. package/docs/architecture/R2_SLUG_NAMESPACE.md +20 -0
  64. package/docs/architecture/WORK_PRODUCT_EXTRACTION.md +97 -0
  65. package/docs/brand/AGENT_SAM_ICON_GRAMMAR.md +70 -0
  66. package/docs/content-studio/HOST_MOUNT_CHECKLIST.md +71 -0
  67. package/docs/content-studio/REVISION_GATE_2026-09-27.md +501 -0
  68. package/docs/contracts/capability-install-planner.md +67 -0
  69. package/docs/contracts/environment-vocabulary.md +195 -0
  70. package/docs/contracts/google-cloud-oauth-setup.md +199 -0
  71. package/docs/local-studio/WORKMODE_DONOR_NOTES.md +1 -1
  72. package/docs/plans/LOCAL-STUDIO-GRADUATION-2026-09-26.md +290 -0
  73. package/docs/plans/LOCAL-STUDIO-REAL-APP-CONTRACT-ADDENDUM-2026-09-27.md +394 -0
  74. package/docs/plans/MACHINE-FIRST-APPS-TUI-2026-09-24.md +227 -0
  75. package/docs/plans/TOMORROW-EXTENSIVE-TODO-2026-09-26.md +221 -0
  76. package/docs/plans/TOMORROW-MACHINE-FIRST-BRIEFING.md +145 -0
  77. package/docs/plans/UNIVERSAL-INGEST-MACHINE-FIRST-2026-09-24.md +215 -0
  78. package/docs/plugins.md +2 -2
  79. package/docs/product/AGENTSAM_PRODUCT_EXPERIENCE_STANDARD.md +280 -0
  80. package/docs/product/LOCAL_STUDIO_DESKTOP_EXPERIENCE.md +139 -0
  81. package/docs/product/README.md +8 -0
  82. package/docs/rapid-rust-wasm.md +35 -0
  83. package/migrations/d1/0016_cloudflare_oauth_user_oauth_tokens_ssot.sql +14 -0
  84. package/package.json +73 -14
  85. package/packages/agentsam-brand/README.md +106 -11
  86. package/packages/agentsam-brand/bin/agentsam-brand.mjs +9 -0
  87. package/packages/agentsam-brand/package.json +39 -7
  88. package/packages/agentsam-brand/src/adapters/cloudflare-images.js +453 -0
  89. package/packages/agentsam-brand/src/adapters/cloudflare-r2.js +74 -0
  90. package/packages/agentsam-brand/src/adapters/d1-registry.js +26 -0
  91. package/packages/agentsam-brand/src/adapters/filesystem.js +59 -0
  92. package/packages/agentsam-brand/src/adapters/memory.js +31 -0
  93. package/packages/agentsam-brand/src/cli/controller.js +503 -0
  94. package/packages/agentsam-brand/src/cli/wizard.js +526 -0
  95. package/packages/agentsam-brand/src/core/capabilities.js +201 -0
  96. package/packages/agentsam-brand/src/core/derivatives.js +211 -0
  97. package/packages/agentsam-brand/src/core/errors.js +12 -0
  98. package/packages/agentsam-brand/src/core/ingest.js +195 -0
  99. package/packages/agentsam-brand/src/core/inspect.js +109 -0
  100. package/packages/agentsam-brand/src/core/keys.js +83 -0
  101. package/packages/agentsam-brand/src/core/naming.js +142 -0
  102. package/packages/agentsam-brand/src/core/optimize.js +316 -0
  103. package/packages/agentsam-brand/src/core/pack.js +305 -0
  104. package/packages/agentsam-brand/src/core/plan.js +276 -0
  105. package/packages/agentsam-brand/src/core/preview.js +159 -0
  106. package/packages/agentsam-brand/src/core/processors/cloudflare.js +68 -0
  107. package/packages/agentsam-brand/src/core/processors/contract.js +203 -0
  108. package/packages/agentsam-brand/src/core/processors/index.js +148 -0
  109. package/packages/agentsam-brand/src/core/processors/native.js +82 -0
  110. package/packages/agentsam-brand/src/core/processors/sharp.js +113 -0
  111. package/packages/agentsam-brand/src/core/processors/squoosh-binary.js +195 -0
  112. package/packages/agentsam-brand/src/core/promote.js +288 -0
  113. package/packages/agentsam-brand/src/core/receipts.js +155 -0
  114. package/packages/agentsam-brand/src/core/v2/compile.js +280 -0
  115. package/packages/agentsam-brand/src/core/v2/derivatives-semantic.js +207 -0
  116. package/packages/agentsam-brand/src/core/v2/ingest-graph.js +387 -0
  117. package/packages/agentsam-brand/src/core/v2/roles.js +180 -0
  118. package/packages/agentsam-brand/src/core/v2/schema.js +209 -0
  119. package/packages/agentsam-brand/src/core/v2/templates.js +114 -0
  120. package/packages/agentsam-brand/src/index.js +193 -36
  121. package/packages/agentsam-brand/src/presets/app-icon.json +16 -0
  122. package/packages/agentsam-brand/src/presets/favicon.json +17 -0
  123. package/packages/agentsam-brand/src/presets/hero.json +12 -0
  124. package/packages/agentsam-brand/src/presets/index.js +40 -0
  125. package/packages/agentsam-brand/src/presets/logo.json +12 -0
  126. package/packages/agentsam-brand/src/presets/model.json +8 -0
  127. package/packages/agentsam-brand/src/presets/og-image.json +10 -0
  128. package/packages/agentsam-brand/src/presets/product-shot.json +11 -0
  129. package/packages/agentsam-brand/src/presets/social-image.json +10 -0
  130. package/packages/agentsam-brand/src/presets/web-image.json +10 -0
  131. package/packages/agentsam-contracts/src/artifacts.ts +41 -0
  132. package/packages/agentsam-knowledge/src/autorag/index.js +1 -1
  133. package/packages/agentsam-knowledge/src/providers/index.js +6 -4
  134. package/packages/agentsam-knowledge/src/providers/ollama-endpoint.js +31 -0
  135. package/packages/agentsam-knowledge/test/autorag.test.mjs +22 -1
  136. package/packages/agentsam-nav/package.json +2 -2
  137. package/packages/agentsam-rapid-rust/Cargo.lock +344 -0
  138. package/packages/agentsam-rapid-rust/Cargo.toml +18 -0
  139. package/packages/agentsam-rapid-rust/README.md +5 -0
  140. package/packages/agentsam-rapid-rust/src/main.rs +718 -0
  141. package/packages/agentsam-rapid-rust/templates/api/Cargo.toml.tmpl +18 -0
  142. package/packages/agentsam-rapid-rust/templates/api/src/lib.rs.tmpl +17 -0
  143. package/packages/agentsam-rapid-rust/templates/common/README.md.tmpl +22 -0
  144. package/packages/agentsam-rapid-rust/templates/common/package.json.tmpl +12 -0
  145. package/packages/agentsam-rapid-rust/templates/common/wrangler.toml.tmpl +6 -0
  146. package/packages/agentsam-rapid-rust/templates/crypto-auth/Cargo.toml.tmpl +21 -0
  147. package/packages/agentsam-rapid-rust/templates/crypto-auth/src/lib.rs.tmpl +32 -0
  148. package/packages/agentsam-rapid-rust/templates/data-processor/Cargo.toml.tmpl +18 -0
  149. package/packages/agentsam-rapid-rust/templates/data-processor/src/lib.rs.tmpl +41 -0
  150. package/packages/agentsam-rapid-rust/templates/shared-core/Cargo.toml.tmpl +9 -0
  151. package/packages/agentsam-rapid-rust/templates/shared-core/core/Cargo.toml.tmpl +7 -0
  152. package/packages/agentsam-rapid-rust/templates/shared-core/core/src/lib.rs.tmpl +23 -0
  153. package/packages/agentsam-rapid-rust/templates/shared-core/worker/Cargo.toml.tmpl +12 -0
  154. package/packages/agentsam-rapid-rust/templates/shared-core/worker/src/lib.rs.tmpl +16 -0
  155. package/packages/agentsam-rapid-rust/templates/shared-core/wrangler.toml.tmpl +6 -0
  156. package/packages/agentsam-repository/src/index.js +1 -0
  157. package/packages/agentsam-repository/src/merkle/semantic.js +3 -10
  158. package/packages/agentsam-repository/src/source-types.js +85 -0
  159. package/packages/agentsam-vault/README.md +96 -0
  160. package/packages/agentsam-vault/package.json +32 -0
  161. package/packages/agentsam-vault/src/contracts/credential.d.ts +78 -0
  162. package/packages/agentsam-vault/src/contracts/credential.js +132 -0
  163. package/packages/agentsam-vault/src/crypto/aes-gcm.d.ts +30 -0
  164. package/packages/agentsam-vault/src/crypto/aes-gcm.js +107 -0
  165. package/packages/agentsam-vault/src/crypto/oauth-envelope.js +150 -0
  166. package/packages/agentsam-vault/src/index.d.ts +9 -0
  167. package/packages/agentsam-vault/src/index.js +27 -0
  168. package/packages/agentsam-vault/src/providers/registry.js +90 -0
  169. package/packages/agentsam-vault/src/runtime/resolver.js +77 -0
  170. package/packages/agentsam-workbench/README.md +24 -0
  171. package/packages/agentsam-workbench/package.json +38 -0
  172. package/packages/agentsam-workbench/src/agent/AgentPanel.tsx +41 -0
  173. package/packages/agentsam-workbench/src/agent/ArtifactCard.tsx +9 -0
  174. package/packages/agentsam-workbench/src/agent/Composer.tsx +102 -0
  175. package/packages/agentsam-workbench/src/agent/ConnectedAgentPanel.tsx +194 -0
  176. package/packages/agentsam-workbench/src/agent/ContextualComposer.tsx +788 -0
  177. package/packages/agentsam-workbench/src/agent/GoalStatusStrip.tsx +38 -0
  178. package/packages/agentsam-workbench/src/agent/MiniAgentSam.tsx +86 -0
  179. package/packages/agentsam-workbench/src/agent/ModelSelect.tsx +19 -0
  180. package/packages/agentsam-workbench/src/agent/Thread.tsx +56 -0
  181. package/packages/agentsam-workbench/src/agent/ToolReceipt.tsx +11 -0
  182. package/packages/agentsam-workbench/src/agent/contextual-composer.css +611 -0
  183. package/packages/agentsam-workbench/src/agent/index.ts +10 -0
  184. package/packages/agentsam-workbench/src/agent/mini-agentsam.css +12 -0
  185. package/packages/agentsam-workbench/src/browser/BrowserFrame.tsx +37 -0
  186. package/packages/agentsam-workbench/src/browser/index.ts +1 -0
  187. package/packages/agentsam-workbench/src/index.ts +6 -0
  188. package/packages/agentsam-workbench/src/project-control.css +160 -0
  189. package/packages/agentsam-workbench/src/projects/ProjectsSurface.tsx +131 -0
  190. package/packages/agentsam-workbench/src/projects/index.ts +1 -0
  191. package/packages/agentsam-workbench/src/shell/Breadcrumb.tsx +35 -0
  192. package/packages/agentsam-workbench/src/shell/ResizableStage.tsx +99 -0
  193. package/packages/agentsam-workbench/src/shell/SidePanel.tsx +5 -0
  194. package/packages/agentsam-workbench/src/shell/index.ts +4 -0
  195. package/packages/agentsam-workbench/src/shell/surfaceRegistry.ts +29 -0
  196. package/packages/agentsam-workbench/src/terminal/TerminalSurface.tsx +5 -0
  197. package/packages/agentsam-workbench/src/terminal/index.ts +1 -0
  198. package/packages/agentsam-workbench/src/timeline/GanttBoard.tsx +258 -0
  199. package/packages/agentsam-workbench/src/timeline/index.ts +1 -0
  200. package/packages/agentsam-workbench/tsconfig.json +13 -0
  201. package/packages/connectors/cloudflare/OAUTH_STORAGE_AUDIT.md +53 -0
  202. package/packages/connectors/cloudflare/package.json +3 -1
  203. package/packages/connectors/cloudflare/src/api-client.js +279 -0
  204. package/packages/connectors/cloudflare/src/capabilities.js +585 -0
  205. package/packages/connectors/cloudflare/src/credential.js +318 -0
  206. package/packages/connectors/cloudflare/src/families/brand-protection.js +123 -0
  207. package/packages/connectors/cloudflare/src/families/keyless.js +114 -0
  208. package/packages/connectors/cloudflare/src/families/pages.js +151 -0
  209. package/packages/connectors/cloudflare/src/families/scanner.js +123 -0
  210. package/packages/connectors/cloudflare/src/families/snippets.js +207 -0
  211. package/packages/connectors/cloudflare/src/families/tag-gateway.js +46 -0
  212. package/packages/connectors/cloudflare/src/families/tags.js +124 -0
  213. package/packages/connectors/cloudflare/src/families/token-validation.js +95 -0
  214. package/packages/connectors/cloudflare/src/families/workflows.js +156 -0
  215. package/packages/connectors/cloudflare/src/index.js +102 -265
  216. package/packages/connectors/cloudflare/src/oauth-persist.js +336 -0
  217. package/packages/connectors/cloudflare/src/owner.js +42 -12
  218. package/packages/connectors/cloudflare/src/permission-options.js +1064 -0
  219. package/packages/connectors/cloudflare/src/routes.js +309 -144
  220. package/packages/connectors/cloudflare/src/scope-catalog.js +345 -0
  221. package/packages/connectors/cloudflare/src/vault.js +2 -2
  222. package/packages/connectors/cloudflare/tests/capabilities.test.mjs +276 -0
  223. package/packages/connectors/cloudflare/tests/connector.test.mjs +26 -30
  224. package/packages/connectors/cloudflare/tests/oauth-persist.test.mjs +125 -0
  225. package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +22 -2
  226. package/packages/identity/.agentsam/features/oauth-login-portal/resources.json +10 -4
  227. package/packages/identity/.agentsam/features/oauth-login-portal/routes.json +20 -0
  228. package/packages/identity/README.md +1 -1
  229. package/packages/identity/backend/README.md +1 -1
  230. package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +3 -2
  231. package/packages/identity/migrations/sqlite/004_identity_oauth_consent_catalog.sql +48 -0
  232. package/packages/identity/package.json +4 -3
  233. package/packages/identity/scripts/local-identity-bridge.mjs +184 -0
  234. package/packages/identity/scripts/preview-auth-portal.mjs +7 -7
  235. package/packages/identity/src/adapters/cloudflare-d1/index.js +31 -2
  236. package/packages/identity/src/adapters/sqlite/index.js +4 -1
  237. package/packages/identity/src/contracts/auth-config.js +28 -8
  238. package/packages/identity/src/contracts/external-identity.js +1 -1
  239. package/packages/identity/src/contracts/provider.js +1 -0
  240. package/packages/identity/src/frontend/auth-portal/README.md +2 -1
  241. package/packages/identity/src/frontend/auth-portal/pages/login.html +6 -5
  242. package/packages/identity/src/frontend/auth-portal/pages/reset.html +6 -5
  243. package/packages/identity/src/frontend/auth-portal/pages/signup.html +6 -5
  244. package/packages/identity/src/frontend/auth-portal/shared/company-branding.js +1 -1
  245. package/packages/identity/src/frontend/auth-portal/shared/desktop-identity-bridge.js +207 -0
  246. package/packages/identity/src/index.js +16 -0
  247. package/packages/identity/src/migrations/0001_identity_core.sql +19 -2
  248. package/packages/identity/src/migrations/0003_accounts_ssot.sql +20 -0
  249. package/packages/identity/src/migrations/README.md +5 -2
  250. package/packages/identity/src/oauth/README.md +10 -5
  251. package/packages/identity/src/oauth/consent-view.js +388 -0
  252. package/packages/identity/src/oauth/credentials.js +31 -11
  253. package/packages/identity/src/oauth/google-desktop-exchange.js +173 -0
  254. package/packages/identity/src/providers/cloudflare/oauth.js +3 -4
  255. package/packages/identity/src/providers/cloudflare/profile.js +49 -14
  256. package/packages/identity/src/providers/iam/index.js +27 -5
  257. package/packages/identity/src/server/identity-service.js +31 -2
  258. package/packages/identity/src/server/worker-router.js +111 -81
  259. package/packages/identity/tests/auth-config.test.mjs +3 -2
  260. package/packages/identity/tests/identity-init-scaffold.test.mjs +3 -0
  261. package/packages/identity/tests/identity-service.test.mjs +16 -0
  262. package/packages/identity/tests/native-session-worker.test.mjs +64 -0
  263. package/packages/identity/tests/oauth-consent-view.test.mjs +106 -0
  264. package/packages/identity/tests/oauth-credentials.test.mjs +17 -4
  265. package/packages/identity/tests/oauth-presets-accounts-ssot.test.mjs +58 -0
  266. package/packages/identity/tests/preview-auth-portal.test.mjs +3 -3
  267. package/packages/runtime-protocol/src/index.js +154 -0
  268. package/packages/theme-scenes/README.md +164 -0
  269. package/packages/theme-scenes/package.json +53 -0
  270. package/packages/theme-scenes/src/blocks/index.js +30 -0
  271. package/packages/theme-scenes/src/contracts/index.js +286 -0
  272. package/packages/theme-scenes/src/demos/index.js +65 -0
  273. package/packages/theme-scenes/src/index.js +75 -0
  274. package/packages/theme-scenes/src/presets/index.js +263 -0
  275. package/packages/theme-scenes/src/runtime/compile.js +119 -0
  276. package/packages/theme-scenes/src/scenes/index.js +146 -0
  277. package/packages/theme-scenes/src/shell/index.js +47 -0
  278. package/packages/theme-scenes/src/themes/index.js +129 -0
  279. package/packages/theme-scenes/src/visuals/index.js +41 -0
  280. package/packages/theme-scenes/test/theme-scenes.test.mjs +179 -0
  281. package/packages/work-graph/src/index.js +34 -1
  282. package/packages/work-graph/src/renderers/gantt-model.js +24 -0
  283. package/packages/work-graph/test/work-graph.test.mjs +27 -7
  284. package/protocol/README.md +15 -7
  285. package/protocol/apps/agentsam.app.v1.schema.json +89 -7
  286. package/protocol/apps/agentsam.host-install.v1.schema.json +36 -0
  287. package/protocol/assets/README.md +9 -0
  288. package/protocol/assets/asset-record.v1.schema.json +64 -0
  289. package/protocol/runtime/agentsam.runtime.v1.schema.json +75 -0
  290. package/protocol/scoring/README.md +10 -0
  291. package/protocol/scoring/scorecard.v1.schema.json +65 -0
  292. package/protocol/ui/icon-registry.mjs +1 -0
  293. package/registry/cms-rust-machine-20260928/installable-products.json +31 -0
  294. package/registry/cms-rust-machine-20260928/manifest.json +22 -0
  295. package/registry/cms-rust-machine-20260928/migration.sql +237 -0
  296. package/registry/cms-rust-machine-20260928/receipt.json +21 -0
  297. package/registry/cms-rust-machine-20260928/receipt.sql +27 -0
  298. package/scripts/build_rapid_rust_cli.py +83 -0
  299. package/src/attachments/index.js +6 -0
  300. package/src/attachments/intake.js +235 -0
  301. package/src/capabilities/repository-snapshot.js +19 -2
  302. package/src/cli/command-catalog.js +8 -0
  303. package/src/cli.js +182 -26
  304. package/src/commands/account-auth.js +94 -8
  305. package/src/commands/app.js +307 -3
  306. package/src/commands/billing.js +127 -0
  307. package/src/commands/brand.js +74 -60
  308. package/src/commands/cheat-sheet.js +154 -0
  309. package/src/commands/cloudflare-login.js +222 -0
  310. package/src/commands/cloudflare.js +453 -23
  311. package/src/commands/codebaseindex.js +6 -1
  312. package/src/commands/compute.js +4 -0
  313. package/src/commands/connections.js +11 -5
  314. package/src/commands/credentials.js +116 -0
  315. package/src/commands/gcloud-auth.js +427 -0
  316. package/src/commands/google-cloud.js +375 -0
  317. package/src/commands/identity-init.js +2 -2
  318. package/src/commands/mcp.js +226 -33
  319. package/src/commands/ollama.js +3 -2
  320. package/src/commands/plugins.js +7 -2
  321. package/src/commands/product.js +36 -0
  322. package/src/commands/runtime-status.js +28 -9
  323. package/src/commands/runtime.js +313 -0
  324. package/src/commands/rust.js +24 -0
  325. package/src/commands/setup.js +279 -0
  326. package/src/commands/shell.js +16 -3
  327. package/src/commands/start-local.js +2 -2
  328. package/src/commands/terminal.js +171 -0
  329. package/src/commands/update.js +140 -0
  330. package/src/commands/whoami.js +329 -65
  331. package/src/features/resolve.js +1 -0
  332. package/src/index.js +4 -0
  333. package/src/indexing/ingest/inventory.js +254 -19
  334. package/src/indexing/ingest/materials.js +3 -9
  335. package/src/indexing/ingest/style-evidence.js +181 -0
  336. package/src/knowledge/source.js +3 -3
  337. package/src/lib/account-session.js +11 -4
  338. package/src/lib/app-authority.js +172 -0
  339. package/src/lib/auth.js +94 -21
  340. package/src/lib/core-client.js +5 -6
  341. package/src/lib/credentials-audit.js +451 -0
  342. package/src/lib/deploy/health.js +24 -6
  343. package/src/lib/detect-context.js +7 -1
  344. package/src/lib/google-cloud-connection.js +270 -0
  345. package/src/lib/google-cloud-inventory.js +385 -0
  346. package/src/lib/google-desktop-oauth.js +372 -0
  347. package/src/lib/google-studio-brokered-oauth.js +158 -0
  348. package/src/lib/identity-scaffold.js +24 -6
  349. package/src/lib/init-options.js +192 -0
  350. package/src/lib/local-scaffold.js +48 -16
  351. package/src/lib/provider-command-remediation.js +308 -0
  352. package/src/lib/provider-credentials.js +8 -0
  353. package/src/lib/scaffold/index.js +8 -2
  354. package/src/lib/scaffold/mcp-server.js +43 -0
  355. package/src/lib/scaffold/templates/mcp-server/index.js +397 -0
  356. package/src/lib/scaffold/templates/mcp-server/presets.js +39 -0
  357. package/src/lib/scaffold/wizards/cms.js +93 -0
  358. package/src/lib/scaffold/wizards/mcp-server.js +61 -0
  359. package/src/lib/setup/contract.js +26 -0
  360. package/src/lib/setup/discover.js +116 -0
  361. package/src/lib/setup/execute.js +205 -0
  362. package/src/lib/setup/planner.js +134 -0
  363. package/src/lib/setup/recipes.js +235 -0
  364. package/src/lib/setup/runtime-persist.js +197 -0
  365. package/src/lib/setup/runtime.js +394 -0
  366. package/src/lib/slash-commands.js +2 -0
  367. package/src/lib/terminal/machine-identity.js +95 -0
  368. package/src/lib/terminal-local.js +164 -0
  369. package/src/lib/terminal-scopes.js +52 -0
  370. package/src/lib/whoami-capabilities.js +184 -0
  371. package/src/local-pty/server.js +34 -5
  372. package/src/mcp/authority.js +58 -108
  373. package/src/mcp/client-adapters.js +68 -144
  374. package/src/mcp/client.js +142 -122
  375. package/src/mcp/cloudflare-bundles.js +225 -0
  376. package/src/mcp/index.js +12 -0
  377. package/src/plugins/cloudflare.js +1 -1
  378. package/src/providers/ollama-chat.js +2 -1
  379. package/src/sam/types.js +27 -2
  380. package/src/security/inventory.js +12 -2
  381. package/src/security/local-vault.js +2 -0
  382. package/src/security/scan.js +1 -1
  383. package/test/account-session.test.mjs +3 -3
  384. package/test/app-authority-context.test.mjs +32 -0
  385. package/test/cli/codebaseindex-plan-ux.test.mjs +1 -1
  386. package/test/cli/mcp-client.test.mjs +21 -10
  387. package/test/cli/runtime-persist.test.mjs +56 -0
  388. package/test/cli/rust-command.test.mjs +21 -0
  389. package/test/credentials-audit.test.mjs +113 -0
  390. package/test/deploy-health-scan.test.mjs +29 -1
  391. package/test/gcloud-auth.test.mjs +111 -0
  392. package/test/google-cloud-connection.test.mjs +83 -0
  393. package/test/google-cloud-inventory.test.mjs +64 -0
  394. package/test/init-options.test.mjs +35 -0
  395. package/test/integration/app-command.test.mjs +30 -0
  396. package/test/integration/cad-project.test.mjs +4 -1
  397. package/test/integration/cms-app-scaffold.test.mjs +71 -0
  398. package/test/integration/cms-site-tenancy-contract.test.mjs +3 -2
  399. package/test/integration/codebaseindex-ingest.test.mjs +48 -0
  400. package/test/integration/features-resolve.test.mjs +30 -11
  401. package/test/integration/inspect-path-cli.test.mjs +46 -0
  402. package/test/integration/inventory-evidence.test.mjs +125 -0
  403. package/test/integration/runtime-status.integration.test.mjs +2 -1
  404. package/test/knowledge.test.mjs +35 -1
  405. package/test/loopback-oauth.test.mjs +53 -0
  406. package/test/ollama.test.mjs +22 -0
  407. package/test/security.test.mjs +23 -0
  408. package/test/setup-planner.test.mjs +74 -0
  409. package/test/setup-runtime.test.mjs +51 -0
  410. package/test/terminal/local-pty.mock.test.mjs +3 -1
  411. package/test/terminal-machine-identity.test.mjs +88 -0
  412. package/test/whoami-resume.test.mjs +27 -6
  413. package/packages/agentsam-brand/test/brand-scan.test.mjs +0 -106
  414. package/packages/work-graph/prototype/README.md +0 -32
  415. package/packages/work-graph/prototype/data/demo-workgraph.js +0 -47
  416. package/packages/work-graph/prototype/renderers/timeline-model.js +0 -21
  417. package/packages/work-graph/prototype/renderers/workgraph-runtime.js +0 -38
  418. package/packages/work-graph/prototype-gnantt.html +0 -655
@@ -0,0 +1,611 @@
1
+ /* AgentSam CMS contextual composer — Sidekick-style select → suggest → generate */
2
+
3
+ .as-contextual-shell {
4
+ display: grid;
5
+ grid-template-columns: minmax(260px, 320px) 1fr minmax(280px, 360px);
6
+ height: 100%;
7
+ min-height: 480px;
8
+ background: #f4f4f5;
9
+ color: #18181b;
10
+ font: 13px/1.45 ui-sans-serif, system-ui, -apple-system, sans-serif;
11
+ }
12
+
13
+ .as-contextual-canvas {
14
+ position: relative;
15
+ overflow: auto;
16
+ background: #fff;
17
+ border-inline: 1px solid #e4e4e7;
18
+ }
19
+
20
+ /* —— Right composer —— */
21
+ .as-contextual-composer {
22
+ display: flex;
23
+ flex-direction: column;
24
+ background: #fff;
25
+ border-left: 1px solid #e4e4e7;
26
+ min-width: 0;
27
+ }
28
+
29
+ .as-contextual-composer.is-portable {
30
+ border-radius: 16px;
31
+ box-shadow: 0 12px 40px rgba(24, 24, 27, 0.14);
32
+ border: 1px solid #e4e4e7;
33
+ }
34
+
35
+ .as-cc-header {
36
+ display: flex;
37
+ align-items: center;
38
+ gap: 4px;
39
+ padding: 10px 12px;
40
+ border-bottom: 1px solid #f4f4f5;
41
+ }
42
+
43
+ .as-cc-thread-switcher {
44
+ flex: 1;
45
+ display: flex;
46
+ align-items: center;
47
+ gap: 6px;
48
+ border: 0;
49
+ background: transparent;
50
+ cursor: pointer;
51
+ text-align: left;
52
+ min-width: 0;
53
+ padding: 4px;
54
+ border-radius: 8px;
55
+ }
56
+
57
+ .as-cc-thread-switcher:hover { background: #f4f4f5; }
58
+
59
+ .as-cc-thread-title {
60
+ overflow: hidden;
61
+ text-overflow: ellipsis;
62
+ white-space: nowrap;
63
+ font-weight: 600;
64
+ }
65
+
66
+ .as-cc-chevron { color: #71717a; font-size: 11px; }
67
+
68
+ .as-cc-icon-btn {
69
+ width: 28px;
70
+ height: 28px;
71
+ border: 0;
72
+ border-radius: 8px;
73
+ background: transparent;
74
+ cursor: pointer;
75
+ color: #52525b;
76
+ }
77
+
78
+ .as-cc-icon-btn:hover { background: #f4f4f5; }
79
+
80
+ .as-cc-thread-menu {
81
+ display: flex;
82
+ flex-direction: column;
83
+ gap: 2px;
84
+ padding: 8px;
85
+ border-bottom: 1px solid #f4f4f5;
86
+ max-height: 220px;
87
+ overflow: auto;
88
+ }
89
+
90
+ .as-cc-thread-menu button {
91
+ display: flex;
92
+ flex-direction: column;
93
+ align-items: flex-start;
94
+ gap: 2px;
95
+ border: 0;
96
+ background: transparent;
97
+ padding: 8px 10px;
98
+ border-radius: 10px;
99
+ cursor: pointer;
100
+ text-align: left;
101
+ }
102
+
103
+ .as-cc-thread-menu button.active,
104
+ .as-cc-thread-menu button:hover { background: #f4f4f5; }
105
+
106
+ .as-cc-thread-menu span { color: #71717a; font-size: 12px; }
107
+
108
+ .as-cc-body {
109
+ flex: 1;
110
+ overflow: auto;
111
+ padding: 16px;
112
+ }
113
+
114
+ .as-cc-empty {
115
+ height: 100%;
116
+ min-height: 180px;
117
+ display: grid;
118
+ place-content: center;
119
+ gap: 12px;
120
+ text-align: center;
121
+ color: #71717a;
122
+ }
123
+
124
+ .as-cc-mascot {
125
+ width: 56px;
126
+ height: 56px;
127
+ margin: 0 auto;
128
+ border-radius: 18px;
129
+ background:
130
+ radial-gradient(circle at 35% 35%, #c4b5fd, transparent 50%),
131
+ linear-gradient(145deg, #7c3aed, #4c1d95);
132
+ }
133
+
134
+ .as-cc-messages { display: flex; flex-direction: column; gap: 12px; }
135
+
136
+ .as-cc-bubble {
137
+ padding: 10px 12px;
138
+ border-radius: 14px;
139
+ max-width: 95%;
140
+ white-space: pre-wrap;
141
+ }
142
+
143
+ .as-cc-bubble.user {
144
+ align-self: flex-end;
145
+ background: #f4f4f5;
146
+ }
147
+
148
+ .as-cc-bubble.assistant { align-self: flex-start; }
149
+
150
+ .as-cc-bubble.error {
151
+ background: #fef2f2;
152
+ color: #991b1b;
153
+ }
154
+
155
+ .as-cc-status {
156
+ display: inline-flex;
157
+ align-items: center;
158
+ gap: 8px;
159
+ color: #71717a;
160
+ font-size: 12px;
161
+ }
162
+
163
+ .as-cc-spinner {
164
+ width: 12px;
165
+ height: 12px;
166
+ border: 2px solid #ddd6fe;
167
+ border-top-color: #7c3aed;
168
+ border-radius: 50%;
169
+ animation: as-spin 0.7s linear infinite;
170
+ }
171
+
172
+ @keyframes as-spin { to { transform: rotate(360deg); } }
173
+
174
+ .as-cc-suggestion-card {
175
+ width: 100%;
176
+ display: grid;
177
+ grid-template-columns: auto 1fr auto;
178
+ gap: 10px;
179
+ align-items: start;
180
+ text-align: left;
181
+ border: 1px solid #ddd6fe;
182
+ background: #faf5ff;
183
+ border-radius: 14px;
184
+ padding: 12px;
185
+ cursor: pointer;
186
+ }
187
+
188
+ .as-cc-suggestion-card:hover {
189
+ border-color: #a78bfa;
190
+ box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.08);
191
+ }
192
+
193
+ .as-cc-suggestion-icon {
194
+ width: 28px;
195
+ height: 28px;
196
+ border-radius: 8px;
197
+ display: grid;
198
+ place-items: center;
199
+ background: #7c3aed;
200
+ color: #fff;
201
+ font-size: 12px;
202
+ }
203
+
204
+ .as-cc-suggestion-copy {
205
+ display: flex;
206
+ flex-direction: column;
207
+ gap: 4px;
208
+ min-width: 0;
209
+ }
210
+
211
+ .as-cc-suggestion-copy strong {
212
+ color: #6d28d9;
213
+ font-size: 14px;
214
+ }
215
+
216
+ .as-cc-suggestion-copy em {
217
+ font-style: normal;
218
+ color: #52525b;
219
+ font-size: 12px;
220
+ }
221
+
222
+ .as-cc-suggestion-chevron { color: #a78bfa; font-size: 18px; line-height: 1; }
223
+
224
+ .as-cc-feedback {
225
+ display: flex;
226
+ gap: 4px;
227
+ margin-top: 6px;
228
+ }
229
+
230
+ .as-cc-feedback button {
231
+ border: 0;
232
+ background: transparent;
233
+ cursor: pointer;
234
+ opacity: 0.55;
235
+ }
236
+
237
+ .as-cc-feedback button:hover { opacity: 1; }
238
+
239
+ .as-cc-input {
240
+ border-top: 1px solid #f4f4f5;
241
+ padding: 10px 12px 14px;
242
+ display: flex;
243
+ flex-direction: column;
244
+ gap: 8px;
245
+ }
246
+
247
+ .as-cc-scope-chip {
248
+ align-self: flex-start;
249
+ font-size: 11px;
250
+ color: #52525b;
251
+ background: #f4f4f5;
252
+ border-radius: 999px;
253
+ padding: 3px 8px;
254
+ }
255
+
256
+ .as-cc-input-row {
257
+ display: flex;
258
+ align-items: center;
259
+ gap: 6px;
260
+ border: 1px solid #e4e4e7;
261
+ border-radius: 999px;
262
+ padding: 4px 6px 4px 4px;
263
+ background: #fff;
264
+ }
265
+
266
+ .as-cc-input-row input {
267
+ flex: 1;
268
+ border: 0;
269
+ outline: 0;
270
+ background: transparent;
271
+ padding: 8px 4px;
272
+ min-width: 0;
273
+ }
274
+
275
+ .as-cc-send {
276
+ width: 30px;
277
+ height: 30px;
278
+ border: 0;
279
+ border-radius: 999px;
280
+ background: #18181b;
281
+ color: #fff;
282
+ cursor: pointer;
283
+ }
284
+
285
+ .as-cc-send:disabled { opacity: 0.35; cursor: default; }
286
+
287
+ /* —— Generation preview (polished, not raw-first) —— */
288
+ .as-gen-preview {
289
+ margin: 0 12px 8px;
290
+ border: 1px solid #e9d5ff;
291
+ border-radius: 14px;
292
+ background: linear-gradient(180deg, #faf5ff, #fff);
293
+ overflow: hidden;
294
+ }
295
+
296
+ .as-gen-preview header {
297
+ display: flex;
298
+ align-items: center;
299
+ gap: 8px;
300
+ padding: 10px 12px 6px;
301
+ }
302
+
303
+ .as-gen-title { font-weight: 700; }
304
+ .as-gen-phase { color: #7c3aed; font-size: 12px; flex: 1; }
305
+
306
+ .as-gen-code-wrap {
307
+ position: relative;
308
+ margin: 0 10px;
309
+ border-radius: 10px;
310
+ overflow: hidden;
311
+ background: #0f172a;
312
+ }
313
+
314
+ .as-gen-code {
315
+ margin: 0;
316
+ max-height: 120px;
317
+ overflow: auto;
318
+ padding: 12px;
319
+ font: 11px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
320
+ color: #c4b5fd;
321
+ white-space: pre-wrap;
322
+ word-break: break-word;
323
+ }
324
+
325
+ .as-gen-gradient-veil {
326
+ pointer-events: none;
327
+ position: absolute;
328
+ inset: auto 0 0 0;
329
+ height: 48%;
330
+ background: linear-gradient(
331
+ 180deg,
332
+ transparent,
333
+ rgba(250, 245, 255, 0.15) 30%,
334
+ rgba(244, 114, 182, 0.35) 70%,
335
+ rgba(167, 139, 250, 0.55)
336
+ );
337
+ }
338
+
339
+ .as-gen-note {
340
+ margin: 8px 12px 4px;
341
+ color: #71717a;
342
+ font-size: 12px;
343
+ }
344
+
345
+ .as-gen-remove {
346
+ margin: 4px 12px 12px;
347
+ border: 0;
348
+ background: transparent;
349
+ color: #dc2626;
350
+ cursor: pointer;
351
+ font-weight: 600;
352
+ padding: 0;
353
+ }
354
+
355
+ /* Canvas overlay */
356
+ .as-canvas-gen-overlay {
357
+ position: absolute;
358
+ border-radius: 14px;
359
+ border: 1.5px solid rgba(167, 139, 250, 0.7);
360
+ background:
361
+ radial-gradient(circle at 30% 20%, rgba(251, 207, 232, 0.85), transparent 55%),
362
+ linear-gradient(135deg, rgba(244, 114, 182, 0.35), rgba(124, 58, 237, 0.45));
363
+ box-shadow: 0 0 0 4px rgba(167, 139, 250, 0.12);
364
+ animation: as-gen-pulse 1.8s ease-in-out infinite;
365
+ pointer-events: none;
366
+ z-index: 5;
367
+ }
368
+
369
+ @keyframes as-gen-pulse {
370
+ 0%, 100% { opacity: 0.85; transform: scale(1); }
371
+ 50% { opacity: 1; transform: scale(1.01); }
372
+ }
373
+
374
+ .as-thinking-chip {
375
+ position: absolute;
376
+ transform: translateX(-50%);
377
+ z-index: 6;
378
+ display: inline-flex;
379
+ align-items: center;
380
+ gap: 8px;
381
+ background: #fff;
382
+ border: 1px solid #e4e4e7;
383
+ border-radius: 999px;
384
+ padding: 6px 10px;
385
+ box-shadow: 0 8px 24px rgba(24, 24, 27, 0.12);
386
+ font-size: 12px;
387
+ font-weight: 600;
388
+ white-space: nowrap;
389
+ }
390
+
391
+ .as-thinking-icon {
392
+ width: 14px;
393
+ height: 14px;
394
+ border-radius: 4px;
395
+ background: linear-gradient(145deg, #a78bfa, #7c3aed);
396
+ }
397
+
398
+ .as-thinking-chip button {
399
+ border: 0;
400
+ background: #f4f4f5;
401
+ border-radius: 4px;
402
+ width: 18px;
403
+ height: 18px;
404
+ cursor: pointer;
405
+ font-size: 9px;
406
+ }
407
+
408
+ /* —— Left layers + property inspector —— */
409
+ .as-layers-inspector {
410
+ display: flex;
411
+ flex-direction: column;
412
+ min-width: 0;
413
+ background: #fafafa;
414
+ border-right: 1px solid #e4e4e7;
415
+ }
416
+
417
+ .as-layers-tree {
418
+ max-height: 38%;
419
+ overflow: auto;
420
+ padding: 12px;
421
+ border-bottom: 1px solid #e4e4e7;
422
+ }
423
+
424
+ .as-layers-root {
425
+ font-weight: 700;
426
+ margin-bottom: 8px;
427
+ }
428
+
429
+ .as-layer-list {
430
+ list-style: none;
431
+ margin: 0;
432
+ padding: 0 0 0 calc(var(--depth, 0) * 12px);
433
+ }
434
+
435
+ .as-layer-list button {
436
+ width: 100%;
437
+ display: flex;
438
+ gap: 8px;
439
+ align-items: center;
440
+ border: 0;
441
+ background: transparent;
442
+ padding: 6px 8px;
443
+ border-radius: 8px;
444
+ cursor: pointer;
445
+ text-align: left;
446
+ }
447
+
448
+ .as-layer-list button.selected {
449
+ background: #ede9fe;
450
+ color: #5b21b6;
451
+ }
452
+
453
+ .as-layer-kind {
454
+ font-size: 10px;
455
+ text-transform: uppercase;
456
+ letter-spacing: 0.04em;
457
+ color: #a1a1aa;
458
+ }
459
+
460
+ .as-prop-editor {
461
+ flex: 1;
462
+ overflow: auto;
463
+ padding: 12px 14px 20px;
464
+ }
465
+
466
+ .as-prop-editor h3 {
467
+ margin: 0 0 8px;
468
+ font-size: 15px;
469
+ }
470
+
471
+ .as-prop-editor h4 {
472
+ margin: 16px 0 8px;
473
+ font-size: 12px;
474
+ text-transform: uppercase;
475
+ letter-spacing: 0.04em;
476
+ color: #71717a;
477
+ }
478
+
479
+ .as-prop-group {
480
+ display: flex;
481
+ flex-direction: column;
482
+ gap: 6px;
483
+ margin-bottom: 10px;
484
+ padding: 6px;
485
+ border-radius: 10px;
486
+ transition: background 0.4s ease, box-shadow 0.4s ease;
487
+ }
488
+
489
+ .as-prop-group.is-agent-flash {
490
+ background: #f5f3ff;
491
+ box-shadow: 0 0 0 2px rgba(124, 58, 237, 0.25);
492
+ }
493
+
494
+ .as-prop-group label { font-size: 12px; color: #52525b; }
495
+
496
+ .as-prop-group textarea,
497
+ .as-prop-group select,
498
+ .as-prop-group input[type="number"] {
499
+ border: 1px solid #e4e4e7;
500
+ border-radius: 10px;
501
+ padding: 8px 10px;
502
+ font: inherit;
503
+ background: #fff;
504
+ }
505
+
506
+ .as-rich-toolbar {
507
+ display: flex;
508
+ gap: 6px;
509
+ color: #71717a;
510
+ font-size: 12px;
511
+ }
512
+
513
+ .as-segmented {
514
+ display: inline-flex;
515
+ border: 1px solid #e4e4e7;
516
+ border-radius: 10px;
517
+ overflow: hidden;
518
+ background: #fff;
519
+ }
520
+
521
+ .as-segmented button {
522
+ border: 0;
523
+ background: transparent;
524
+ padding: 7px 10px;
525
+ cursor: pointer;
526
+ font: inherit;
527
+ }
528
+
529
+ .as-segmented button.active {
530
+ background: #18181b;
531
+ color: #fff;
532
+ }
533
+
534
+ .as-linkish {
535
+ border: 0;
536
+ background: transparent;
537
+ color: #6d28d9;
538
+ text-align: left;
539
+ padding: 0;
540
+ cursor: pointer;
541
+ font: inherit;
542
+ font-size: 12px;
543
+ }
544
+
545
+ .as-swatch-row {
546
+ display: flex;
547
+ align-items: center;
548
+ gap: 8px;
549
+ }
550
+
551
+ .as-swatch {
552
+ width: 18px;
553
+ height: 18px;
554
+ border-radius: 6px;
555
+ border: 1px solid #e4e4e7;
556
+ }
557
+
558
+ .as-toggle {
559
+ width: 40px;
560
+ height: 22px;
561
+ border-radius: 999px;
562
+ border: 0;
563
+ background: #d4d4d8;
564
+ position: relative;
565
+ cursor: pointer;
566
+ }
567
+
568
+ .as-toggle::after {
569
+ content: '';
570
+ position: absolute;
571
+ top: 2px;
572
+ left: 2px;
573
+ width: 18px;
574
+ height: 18px;
575
+ border-radius: 50%;
576
+ background: #fff;
577
+ transition: transform 0.15s ease;
578
+ }
579
+
580
+ .as-toggle.on { background: #7c3aed; }
581
+ .as-toggle.on::after { transform: translateX(18px); }
582
+
583
+ .as-pad-row {
584
+ display: grid;
585
+ grid-template-columns: 56px 1fr 56px 18px;
586
+ align-items: center;
587
+ gap: 8px;
588
+ }
589
+
590
+ .as-pad-row input[type="range"] { width: 100%; }
591
+
592
+ .as-remove-block {
593
+ margin-top: 18px;
594
+ width: 100%;
595
+ border: 0;
596
+ background: transparent;
597
+ color: #dc2626;
598
+ font-weight: 700;
599
+ cursor: pointer;
600
+ padding: 10px 0;
601
+ text-align: left;
602
+ }
603
+
604
+ .as-cc-muted { color: #a1a1aa; padding: 8px; margin: 0; }
605
+
606
+ @media (max-width: 960px) {
607
+ .as-contextual-shell {
608
+ grid-template-columns: 1fr;
609
+ grid-template-rows: auto 1fr auto;
610
+ }
611
+ }
@@ -0,0 +1,10 @@
1
+ export * from './AgentPanel';
2
+ export * from './Thread';
3
+ export * from './Composer';
4
+ export * from './ModelSelect';
5
+ export * from './ToolReceipt';
6
+ export * from './ArtifactCard';
7
+ export * from './ConnectedAgentPanel';
8
+ export * from './GoalStatusStrip';
9
+ export * from './MiniAgentSam';
10
+ export * from './ContextualComposer';
@@ -0,0 +1,12 @@
1
+ [data-mini-agentsam] { --mini-surface: var(--nav-surface, #292929); --mini-text: var(--nav-text, #f5f5f5); --mini-muted: var(--nav-muted, #c2c2c2); --mini-border: var(--nav-border, #ffffff26); --mini-accent: var(--nav-accent, #a78bfa); font: 400 14px/1.5 var(--nav-font, system-ui); color: var(--mini-text); }
2
+ [data-annotation-selecting] iframe { pointer-events: none; }
3
+ [data-annotation-selecting] { cursor: crosshair; }
4
+ .mini-agentsam-outline { position: fixed; pointer-events: none; z-index: 9998; border: 2px solid var(--mini-accent); border-radius: 6px; }
5
+ .mini-agentsam-hint { position: fixed; z-index: 10000; top: 64px; left: 50%; transform: translateX(-50%); max-width: calc(100vw - 24px); border-radius: 24px; padding: 10px 16px; background: var(--mini-surface); color: var(--mini-text); box-shadow: 0 0 0 1px var(--mini-border); }
6
+ .mini-agentsam-panel { position: fixed; z-index: 10000; width: 360px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 80px); overflow-y: auto; pointer-events: auto; border-radius: 20px; padding: 12px; background: color-mix(in srgb, var(--mini-surface) 90%, transparent); color: var(--mini-text); backdrop-filter: blur(24px) saturate(110%); box-shadow: 0 0 0 1px var(--mini-border), 0 16px 48px #00000028; }
7
+ .mini-agentsam-heading { display: flex; align-items: center; gap: 12px; font-size: 12px; color: var(--mini-muted); }
8
+ .mini-agentsam-heading span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
9
+ .mini-agentsam-heading button { font-size: 22px; min-width: 40px; min-height: 40px; }
10
+ .mini-agentsam-panel textarea { width: 100%; resize: vertical; min-height: 64px; background: transparent; color: var(--mini-text); font: inherit; padding: 8px; }
11
+ .mini-agentsam-panel textarea::placeholder { color: var(--mini-muted); }
12
+ .mini-agentsam-panel p { font-size: 12px; margin: 8px; }
@@ -0,0 +1,37 @@
1
+ import { useEffect, useState, type FormEvent } from 'react';
2
+
3
+ export interface BrowserFrameProps {
4
+ url: string;
5
+ srcDoc?: string | null;
6
+ onNavigate?: (url: string) => void;
7
+ className?: string;
8
+ toolbarClassName?: string;
9
+ inputClassName?: string;
10
+ iframeClassName?: string;
11
+ }
12
+
13
+ export function normalizeBrowserInput(raw: string) {
14
+ const value = raw.trim();
15
+ if (!value) return '';
16
+ if (/^https?:\/\//i.test(value)) return value;
17
+ if (value.includes(' ') || !value.includes('.')) return `https://duckduckgo.com/?q=${encodeURIComponent(value)}`;
18
+ return `https://${value}`;
19
+ }
20
+
21
+ export function BrowserFrame({ url, srcDoc, onNavigate, className, toolbarClassName, inputClassName, iframeClassName }: BrowserFrameProps) {
22
+ const [draft, setDraft] = useState(url);
23
+ useEffect(() => setDraft(url), [url]);
24
+ function submit(event: FormEvent) {
25
+ event.preventDefault();
26
+ const next = normalizeBrowserInput(draft);
27
+ if (next) onNavigate?.(next);
28
+ }
29
+ return (
30
+ <div className={className} data-browser-frame="">
31
+ <form className={toolbarClassName} onSubmit={submit}>
32
+ <input className={inputClassName} value={draft} onChange={(event) => setDraft(event.target.value)} aria-label="Browser address" />
33
+ </form>
34
+ <iframe className={iframeClassName} title={url || 'Browser preview'} src={srcDoc ? undefined : url} srcDoc={srcDoc ?? undefined} />
35
+ </div>
36
+ );
37
+ }
@@ -0,0 +1 @@
1
+ export * from './BrowserFrame';
@@ -0,0 +1,6 @@
1
+ export * from './agent';
2
+ export * from './shell';
3
+ export * from './browser';
4
+ export * from './terminal';
5
+ export * from './projects';
6
+ export * from './timeline';