@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.
- package/AGENTSAM.md +11 -0
- package/README.md +15 -9
- package/apps/client-cms-editor/AGENTS.md +12 -0
- package/apps/client-cms-editor/IMPORT_PROVENANCE.json +8 -0
- package/apps/client-cms-editor/README.md +72 -0
- package/apps/client-cms-editor/agentsam.app.json +57 -0
- package/apps/client-cms-editor/backend/README.md +5 -0
- package/apps/client-cms-editor/backend/package.json +22 -0
- package/apps/client-cms-editor/backend/src/api/client.ts +200 -0
- package/apps/client-cms-editor/backend/src/demo-bootstrap.ts +145 -0
- package/apps/client-cms-editor/backend/src/index.ts +6 -0
- package/apps/client-cms-editor/backend/src/model.ts +115 -0
- package/apps/client-cms-editor/backend/src/preview/bridge.ts +79 -0
- package/apps/client-cms-editor/backend/src/preview/urls.ts +55 -0
- package/apps/client-cms-editor/backend/src/routing/cms-route.js +293 -0
- package/apps/client-cms-editor/backend/src/routing/index.js +10 -0
- package/apps/client-cms-editor/backend/src/storefront.ts +52 -0
- package/apps/client-cms-editor/backend/tsconfig.json +15 -0
- package/apps/client-cms-editor/backend/worker/index.js +34 -0
- package/apps/client-cms-editor/backend/wrangler.jsonc +11 -0
- package/apps/client-cms-editor/bin/agentsam-cms.mjs +229 -0
- package/apps/client-cms-editor/frontend/index.html +12 -0
- package/apps/client-cms-editor/frontend/package.json +33 -0
- package/apps/client-cms-editor/frontend/src/AgentSamDrawer.tsx +188 -0
- package/apps/client-cms-editor/frontend/src/CmsAgentSurface.tsx +191 -0
- package/apps/client-cms-editor/frontend/src/CmsEditor.tsx +1345 -0
- package/apps/client-cms-editor/frontend/src/env.d.ts +14 -0
- package/apps/client-cms-editor/frontend/src/index.ts +8 -0
- package/apps/client-cms-editor/frontend/src/lib/content-safety.ts +63 -0
- package/apps/client-cms-editor/frontend/src/main.tsx +17 -0
- package/apps/client-cms-editor/frontend/src/mount.tsx +51 -0
- package/apps/client-cms-editor/frontend/src/styles/agentsam-drawer.css +214 -0
- package/apps/client-cms-editor/frontend/src/styles/cmsShell.css +1739 -0
- package/apps/client-cms-editor/frontend/src/styles/studio.css +106 -0
- package/apps/client-cms-editor/frontend/src/surfaces/CmsDashboard.tsx +313 -0
- package/apps/client-cms-editor/frontend/src/surfaces/CmsGuidedChatHero.tsx +121 -0
- package/apps/client-cms-editor/frontend/src/surfaces/CmsHubPage.tsx +132 -0
- package/apps/client-cms-editor/frontend/src/surfaces/CmsSiteSwitcher.tsx +176 -0
- package/apps/client-cms-editor/frontend/src/surfaces/index.ts +5 -0
- package/apps/client-cms-editor/frontend/src/surfaces/types.ts +48 -0
- package/apps/client-cms-editor/frontend/tsconfig.json +25 -0
- package/apps/client-cms-editor/frontend/vite.config.ts +13 -0
- package/apps/client-cms-editor/package-lock.json +3832 -0
- package/apps/client-cms-editor/package.json +23 -0
- package/apps/client-cms-editor/reference/DONOR_README.md +52 -0
- package/apps/client-cms-editor/reference/DONOR_package-lock.json +1253 -0
- package/apps/client-cms-editor/reference/DONOR_tsconfig.json +15 -0
- package/apps/client-cms-editor/shared/cms/package.json +21 -0
- package/apps/client-cms-editor/shared/cms/src/agent-context.ts +35 -0
- package/apps/client-cms-editor/shared/cms/src/cloudflare-bindings.ts +51 -0
- package/apps/client-cms-editor/shared/cms/src/editor-types.ts +58 -0
- package/apps/client-cms-editor/shared/cms/src/index.ts +5 -0
- package/apps/client-cms-editor/shared/cms/src/publication.ts +24 -0
- package/apps/client-cms-editor/shared/cms/src/routes.ts +11 -0
- package/apps/client-cms-editor/shared/cms/tsconfig.json +12 -0
- package/bin/agentsam-rapid-rust +36 -0
- package/docs/AUTH_IDENTITY_CONTRACT.md +2 -0
- package/docs/MACHINE_INTELLIGENCE.md +120 -0
- package/docs/WINDOWS_RUNTIME_INSTALL.md +30 -0
- package/docs/architecture/AGENTSAM_APPLICATION_CONTRACT.md +188 -0
- package/docs/architecture/AGENTSAM_RUNTIME_PROTOCOL.md +151 -0
- package/docs/architecture/LOCAL_STUDIO_CLOUDFLARE_OAUTH.md +12 -4
- package/docs/architecture/R2_SLUG_NAMESPACE.md +20 -0
- package/docs/architecture/WORK_PRODUCT_EXTRACTION.md +97 -0
- package/docs/brand/AGENT_SAM_ICON_GRAMMAR.md +70 -0
- package/docs/content-studio/HOST_MOUNT_CHECKLIST.md +71 -0
- package/docs/content-studio/REVISION_GATE_2026-09-27.md +501 -0
- package/docs/contracts/capability-install-planner.md +67 -0
- package/docs/contracts/environment-vocabulary.md +195 -0
- package/docs/contracts/google-cloud-oauth-setup.md +199 -0
- package/docs/local-studio/WORKMODE_DONOR_NOTES.md +1 -1
- package/docs/plans/LOCAL-STUDIO-GRADUATION-2026-09-26.md +290 -0
- package/docs/plans/LOCAL-STUDIO-REAL-APP-CONTRACT-ADDENDUM-2026-09-27.md +394 -0
- package/docs/plans/MACHINE-FIRST-APPS-TUI-2026-09-24.md +227 -0
- package/docs/plans/TOMORROW-EXTENSIVE-TODO-2026-09-26.md +221 -0
- package/docs/plans/TOMORROW-MACHINE-FIRST-BRIEFING.md +145 -0
- package/docs/plans/UNIVERSAL-INGEST-MACHINE-FIRST-2026-09-24.md +215 -0
- package/docs/plugins.md +2 -2
- package/docs/product/AGENTSAM_PRODUCT_EXPERIENCE_STANDARD.md +280 -0
- package/docs/product/LOCAL_STUDIO_DESKTOP_EXPERIENCE.md +139 -0
- package/docs/product/README.md +8 -0
- package/docs/rapid-rust-wasm.md +35 -0
- package/migrations/d1/0016_cloudflare_oauth_user_oauth_tokens_ssot.sql +14 -0
- package/package.json +73 -14
- package/packages/agentsam-brand/README.md +106 -11
- package/packages/agentsam-brand/bin/agentsam-brand.mjs +9 -0
- package/packages/agentsam-brand/package.json +39 -7
- package/packages/agentsam-brand/src/adapters/cloudflare-images.js +453 -0
- package/packages/agentsam-brand/src/adapters/cloudflare-r2.js +74 -0
- package/packages/agentsam-brand/src/adapters/d1-registry.js +26 -0
- package/packages/agentsam-brand/src/adapters/filesystem.js +59 -0
- package/packages/agentsam-brand/src/adapters/memory.js +31 -0
- package/packages/agentsam-brand/src/cli/controller.js +503 -0
- package/packages/agentsam-brand/src/cli/wizard.js +526 -0
- package/packages/agentsam-brand/src/core/capabilities.js +201 -0
- package/packages/agentsam-brand/src/core/derivatives.js +211 -0
- package/packages/agentsam-brand/src/core/errors.js +12 -0
- package/packages/agentsam-brand/src/core/ingest.js +195 -0
- package/packages/agentsam-brand/src/core/inspect.js +109 -0
- package/packages/agentsam-brand/src/core/keys.js +83 -0
- package/packages/agentsam-brand/src/core/naming.js +142 -0
- package/packages/agentsam-brand/src/core/optimize.js +316 -0
- package/packages/agentsam-brand/src/core/pack.js +305 -0
- package/packages/agentsam-brand/src/core/plan.js +276 -0
- package/packages/agentsam-brand/src/core/preview.js +159 -0
- package/packages/agentsam-brand/src/core/processors/cloudflare.js +68 -0
- package/packages/agentsam-brand/src/core/processors/contract.js +203 -0
- package/packages/agentsam-brand/src/core/processors/index.js +148 -0
- package/packages/agentsam-brand/src/core/processors/native.js +82 -0
- package/packages/agentsam-brand/src/core/processors/sharp.js +113 -0
- package/packages/agentsam-brand/src/core/processors/squoosh-binary.js +195 -0
- package/packages/agentsam-brand/src/core/promote.js +288 -0
- package/packages/agentsam-brand/src/core/receipts.js +155 -0
- package/packages/agentsam-brand/src/core/v2/compile.js +280 -0
- package/packages/agentsam-brand/src/core/v2/derivatives-semantic.js +207 -0
- package/packages/agentsam-brand/src/core/v2/ingest-graph.js +387 -0
- package/packages/agentsam-brand/src/core/v2/roles.js +180 -0
- package/packages/agentsam-brand/src/core/v2/schema.js +209 -0
- package/packages/agentsam-brand/src/core/v2/templates.js +114 -0
- package/packages/agentsam-brand/src/index.js +193 -36
- package/packages/agentsam-brand/src/presets/app-icon.json +16 -0
- package/packages/agentsam-brand/src/presets/favicon.json +17 -0
- package/packages/agentsam-brand/src/presets/hero.json +12 -0
- package/packages/agentsam-brand/src/presets/index.js +40 -0
- package/packages/agentsam-brand/src/presets/logo.json +12 -0
- package/packages/agentsam-brand/src/presets/model.json +8 -0
- package/packages/agentsam-brand/src/presets/og-image.json +10 -0
- package/packages/agentsam-brand/src/presets/product-shot.json +11 -0
- package/packages/agentsam-brand/src/presets/social-image.json +10 -0
- package/packages/agentsam-brand/src/presets/web-image.json +10 -0
- package/packages/agentsam-contracts/src/artifacts.ts +41 -0
- package/packages/agentsam-knowledge/src/autorag/index.js +1 -1
- package/packages/agentsam-knowledge/src/providers/index.js +6 -4
- package/packages/agentsam-knowledge/src/providers/ollama-endpoint.js +31 -0
- package/packages/agentsam-knowledge/test/autorag.test.mjs +22 -1
- package/packages/agentsam-nav/package.json +2 -2
- package/packages/agentsam-rapid-rust/Cargo.lock +344 -0
- package/packages/agentsam-rapid-rust/Cargo.toml +18 -0
- package/packages/agentsam-rapid-rust/README.md +5 -0
- package/packages/agentsam-rapid-rust/src/main.rs +718 -0
- package/packages/agentsam-rapid-rust/templates/api/Cargo.toml.tmpl +18 -0
- package/packages/agentsam-rapid-rust/templates/api/src/lib.rs.tmpl +17 -0
- package/packages/agentsam-rapid-rust/templates/common/README.md.tmpl +22 -0
- package/packages/agentsam-rapid-rust/templates/common/package.json.tmpl +12 -0
- package/packages/agentsam-rapid-rust/templates/common/wrangler.toml.tmpl +6 -0
- package/packages/agentsam-rapid-rust/templates/crypto-auth/Cargo.toml.tmpl +21 -0
- package/packages/agentsam-rapid-rust/templates/crypto-auth/src/lib.rs.tmpl +32 -0
- package/packages/agentsam-rapid-rust/templates/data-processor/Cargo.toml.tmpl +18 -0
- package/packages/agentsam-rapid-rust/templates/data-processor/src/lib.rs.tmpl +41 -0
- package/packages/agentsam-rapid-rust/templates/shared-core/Cargo.toml.tmpl +9 -0
- package/packages/agentsam-rapid-rust/templates/shared-core/core/Cargo.toml.tmpl +7 -0
- package/packages/agentsam-rapid-rust/templates/shared-core/core/src/lib.rs.tmpl +23 -0
- package/packages/agentsam-rapid-rust/templates/shared-core/worker/Cargo.toml.tmpl +12 -0
- package/packages/agentsam-rapid-rust/templates/shared-core/worker/src/lib.rs.tmpl +16 -0
- package/packages/agentsam-rapid-rust/templates/shared-core/wrangler.toml.tmpl +6 -0
- package/packages/agentsam-repository/src/index.js +1 -0
- package/packages/agentsam-repository/src/merkle/semantic.js +3 -10
- package/packages/agentsam-repository/src/source-types.js +85 -0
- package/packages/agentsam-vault/README.md +96 -0
- package/packages/agentsam-vault/package.json +32 -0
- package/packages/agentsam-vault/src/contracts/credential.d.ts +78 -0
- package/packages/agentsam-vault/src/contracts/credential.js +132 -0
- package/packages/agentsam-vault/src/crypto/aes-gcm.d.ts +30 -0
- package/packages/agentsam-vault/src/crypto/aes-gcm.js +107 -0
- package/packages/agentsam-vault/src/crypto/oauth-envelope.js +150 -0
- package/packages/agentsam-vault/src/index.d.ts +9 -0
- package/packages/agentsam-vault/src/index.js +27 -0
- package/packages/agentsam-vault/src/providers/registry.js +90 -0
- package/packages/agentsam-vault/src/runtime/resolver.js +77 -0
- package/packages/agentsam-workbench/README.md +24 -0
- package/packages/agentsam-workbench/package.json +38 -0
- package/packages/agentsam-workbench/src/agent/AgentPanel.tsx +41 -0
- package/packages/agentsam-workbench/src/agent/ArtifactCard.tsx +9 -0
- package/packages/agentsam-workbench/src/agent/Composer.tsx +102 -0
- package/packages/agentsam-workbench/src/agent/ConnectedAgentPanel.tsx +194 -0
- package/packages/agentsam-workbench/src/agent/ContextualComposer.tsx +788 -0
- package/packages/agentsam-workbench/src/agent/GoalStatusStrip.tsx +38 -0
- package/packages/agentsam-workbench/src/agent/MiniAgentSam.tsx +86 -0
- package/packages/agentsam-workbench/src/agent/ModelSelect.tsx +19 -0
- package/packages/agentsam-workbench/src/agent/Thread.tsx +56 -0
- package/packages/agentsam-workbench/src/agent/ToolReceipt.tsx +11 -0
- package/packages/agentsam-workbench/src/agent/contextual-composer.css +611 -0
- package/packages/agentsam-workbench/src/agent/index.ts +10 -0
- package/packages/agentsam-workbench/src/agent/mini-agentsam.css +12 -0
- package/packages/agentsam-workbench/src/browser/BrowserFrame.tsx +37 -0
- package/packages/agentsam-workbench/src/browser/index.ts +1 -0
- package/packages/agentsam-workbench/src/index.ts +6 -0
- package/packages/agentsam-workbench/src/project-control.css +160 -0
- package/packages/agentsam-workbench/src/projects/ProjectsSurface.tsx +131 -0
- package/packages/agentsam-workbench/src/projects/index.ts +1 -0
- package/packages/agentsam-workbench/src/shell/Breadcrumb.tsx +35 -0
- package/packages/agentsam-workbench/src/shell/ResizableStage.tsx +99 -0
- package/packages/agentsam-workbench/src/shell/SidePanel.tsx +5 -0
- package/packages/agentsam-workbench/src/shell/index.ts +4 -0
- package/packages/agentsam-workbench/src/shell/surfaceRegistry.ts +29 -0
- package/packages/agentsam-workbench/src/terminal/TerminalSurface.tsx +5 -0
- package/packages/agentsam-workbench/src/terminal/index.ts +1 -0
- package/packages/agentsam-workbench/src/timeline/GanttBoard.tsx +258 -0
- package/packages/agentsam-workbench/src/timeline/index.ts +1 -0
- package/packages/agentsam-workbench/tsconfig.json +13 -0
- package/packages/connectors/cloudflare/OAUTH_STORAGE_AUDIT.md +53 -0
- package/packages/connectors/cloudflare/package.json +3 -1
- package/packages/connectors/cloudflare/src/api-client.js +279 -0
- package/packages/connectors/cloudflare/src/capabilities.js +585 -0
- package/packages/connectors/cloudflare/src/credential.js +318 -0
- package/packages/connectors/cloudflare/src/families/brand-protection.js +123 -0
- package/packages/connectors/cloudflare/src/families/keyless.js +114 -0
- package/packages/connectors/cloudflare/src/families/pages.js +151 -0
- package/packages/connectors/cloudflare/src/families/scanner.js +123 -0
- package/packages/connectors/cloudflare/src/families/snippets.js +207 -0
- package/packages/connectors/cloudflare/src/families/tag-gateway.js +46 -0
- package/packages/connectors/cloudflare/src/families/tags.js +124 -0
- package/packages/connectors/cloudflare/src/families/token-validation.js +95 -0
- package/packages/connectors/cloudflare/src/families/workflows.js +156 -0
- package/packages/connectors/cloudflare/src/index.js +102 -265
- package/packages/connectors/cloudflare/src/oauth-persist.js +336 -0
- package/packages/connectors/cloudflare/src/owner.js +42 -12
- package/packages/connectors/cloudflare/src/permission-options.js +1064 -0
- package/packages/connectors/cloudflare/src/routes.js +309 -144
- package/packages/connectors/cloudflare/src/scope-catalog.js +345 -0
- package/packages/connectors/cloudflare/src/vault.js +2 -2
- package/packages/connectors/cloudflare/tests/capabilities.test.mjs +276 -0
- package/packages/connectors/cloudflare/tests/connector.test.mjs +26 -30
- package/packages/connectors/cloudflare/tests/oauth-persist.test.mjs +125 -0
- package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +22 -2
- package/packages/identity/.agentsam/features/oauth-login-portal/resources.json +10 -4
- package/packages/identity/.agentsam/features/oauth-login-portal/routes.json +20 -0
- package/packages/identity/README.md +1 -1
- package/packages/identity/backend/README.md +1 -1
- package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +3 -2
- package/packages/identity/migrations/sqlite/004_identity_oauth_consent_catalog.sql +48 -0
- package/packages/identity/package.json +4 -3
- package/packages/identity/scripts/local-identity-bridge.mjs +184 -0
- package/packages/identity/scripts/preview-auth-portal.mjs +7 -7
- package/packages/identity/src/adapters/cloudflare-d1/index.js +31 -2
- package/packages/identity/src/adapters/sqlite/index.js +4 -1
- package/packages/identity/src/contracts/auth-config.js +28 -8
- package/packages/identity/src/contracts/external-identity.js +1 -1
- package/packages/identity/src/contracts/provider.js +1 -0
- package/packages/identity/src/frontend/auth-portal/README.md +2 -1
- package/packages/identity/src/frontend/auth-portal/pages/login.html +6 -5
- package/packages/identity/src/frontend/auth-portal/pages/reset.html +6 -5
- package/packages/identity/src/frontend/auth-portal/pages/signup.html +6 -5
- package/packages/identity/src/frontend/auth-portal/shared/company-branding.js +1 -1
- package/packages/identity/src/frontend/auth-portal/shared/desktop-identity-bridge.js +207 -0
- package/packages/identity/src/index.js +16 -0
- package/packages/identity/src/migrations/0001_identity_core.sql +19 -2
- package/packages/identity/src/migrations/0003_accounts_ssot.sql +20 -0
- package/packages/identity/src/migrations/README.md +5 -2
- package/packages/identity/src/oauth/README.md +10 -5
- package/packages/identity/src/oauth/consent-view.js +388 -0
- package/packages/identity/src/oauth/credentials.js +31 -11
- package/packages/identity/src/oauth/google-desktop-exchange.js +173 -0
- package/packages/identity/src/providers/cloudflare/oauth.js +3 -4
- package/packages/identity/src/providers/cloudflare/profile.js +49 -14
- package/packages/identity/src/providers/iam/index.js +27 -5
- package/packages/identity/src/server/identity-service.js +31 -2
- package/packages/identity/src/server/worker-router.js +111 -81
- package/packages/identity/tests/auth-config.test.mjs +3 -2
- package/packages/identity/tests/identity-init-scaffold.test.mjs +3 -0
- package/packages/identity/tests/identity-service.test.mjs +16 -0
- package/packages/identity/tests/native-session-worker.test.mjs +64 -0
- package/packages/identity/tests/oauth-consent-view.test.mjs +106 -0
- package/packages/identity/tests/oauth-credentials.test.mjs +17 -4
- package/packages/identity/tests/oauth-presets-accounts-ssot.test.mjs +58 -0
- package/packages/identity/tests/preview-auth-portal.test.mjs +3 -3
- package/packages/runtime-protocol/src/index.js +154 -0
- package/packages/theme-scenes/README.md +164 -0
- package/packages/theme-scenes/package.json +53 -0
- package/packages/theme-scenes/src/blocks/index.js +30 -0
- package/packages/theme-scenes/src/contracts/index.js +286 -0
- package/packages/theme-scenes/src/demos/index.js +65 -0
- package/packages/theme-scenes/src/index.js +75 -0
- package/packages/theme-scenes/src/presets/index.js +263 -0
- package/packages/theme-scenes/src/runtime/compile.js +119 -0
- package/packages/theme-scenes/src/scenes/index.js +146 -0
- package/packages/theme-scenes/src/shell/index.js +47 -0
- package/packages/theme-scenes/src/themes/index.js +129 -0
- package/packages/theme-scenes/src/visuals/index.js +41 -0
- package/packages/theme-scenes/test/theme-scenes.test.mjs +179 -0
- package/packages/work-graph/src/index.js +34 -1
- package/packages/work-graph/src/renderers/gantt-model.js +24 -0
- package/packages/work-graph/test/work-graph.test.mjs +27 -7
- package/protocol/README.md +15 -7
- package/protocol/apps/agentsam.app.v1.schema.json +89 -7
- package/protocol/apps/agentsam.host-install.v1.schema.json +36 -0
- package/protocol/assets/README.md +9 -0
- package/protocol/assets/asset-record.v1.schema.json +64 -0
- package/protocol/runtime/agentsam.runtime.v1.schema.json +75 -0
- package/protocol/scoring/README.md +10 -0
- package/protocol/scoring/scorecard.v1.schema.json +65 -0
- package/protocol/ui/icon-registry.mjs +1 -0
- package/registry/cms-rust-machine-20260928/installable-products.json +31 -0
- package/registry/cms-rust-machine-20260928/manifest.json +22 -0
- package/registry/cms-rust-machine-20260928/migration.sql +237 -0
- package/registry/cms-rust-machine-20260928/receipt.json +21 -0
- package/registry/cms-rust-machine-20260928/receipt.sql +27 -0
- package/scripts/build_rapid_rust_cli.py +83 -0
- package/src/attachments/index.js +6 -0
- package/src/attachments/intake.js +235 -0
- package/src/capabilities/repository-snapshot.js +19 -2
- package/src/cli/command-catalog.js +8 -0
- package/src/cli.js +182 -26
- package/src/commands/account-auth.js +94 -8
- package/src/commands/app.js +307 -3
- package/src/commands/billing.js +127 -0
- package/src/commands/brand.js +74 -60
- package/src/commands/cheat-sheet.js +154 -0
- package/src/commands/cloudflare-login.js +222 -0
- package/src/commands/cloudflare.js +453 -23
- package/src/commands/codebaseindex.js +6 -1
- package/src/commands/compute.js +4 -0
- package/src/commands/connections.js +11 -5
- package/src/commands/credentials.js +116 -0
- package/src/commands/gcloud-auth.js +427 -0
- package/src/commands/google-cloud.js +375 -0
- package/src/commands/identity-init.js +2 -2
- package/src/commands/mcp.js +226 -33
- package/src/commands/ollama.js +3 -2
- package/src/commands/plugins.js +7 -2
- package/src/commands/product.js +36 -0
- package/src/commands/runtime-status.js +28 -9
- package/src/commands/runtime.js +313 -0
- package/src/commands/rust.js +24 -0
- package/src/commands/setup.js +279 -0
- package/src/commands/shell.js +16 -3
- package/src/commands/start-local.js +2 -2
- package/src/commands/terminal.js +171 -0
- package/src/commands/update.js +140 -0
- package/src/commands/whoami.js +329 -65
- package/src/features/resolve.js +1 -0
- package/src/index.js +4 -0
- package/src/indexing/ingest/inventory.js +254 -19
- package/src/indexing/ingest/materials.js +3 -9
- package/src/indexing/ingest/style-evidence.js +181 -0
- package/src/knowledge/source.js +3 -3
- package/src/lib/account-session.js +11 -4
- package/src/lib/app-authority.js +172 -0
- package/src/lib/auth.js +94 -21
- package/src/lib/core-client.js +5 -6
- package/src/lib/credentials-audit.js +451 -0
- package/src/lib/deploy/health.js +24 -6
- package/src/lib/detect-context.js +7 -1
- package/src/lib/google-cloud-connection.js +270 -0
- package/src/lib/google-cloud-inventory.js +385 -0
- package/src/lib/google-desktop-oauth.js +372 -0
- package/src/lib/google-studio-brokered-oauth.js +158 -0
- package/src/lib/identity-scaffold.js +24 -6
- package/src/lib/init-options.js +192 -0
- package/src/lib/local-scaffold.js +48 -16
- package/src/lib/provider-command-remediation.js +308 -0
- package/src/lib/provider-credentials.js +8 -0
- package/src/lib/scaffold/index.js +8 -2
- package/src/lib/scaffold/mcp-server.js +43 -0
- package/src/lib/scaffold/templates/mcp-server/index.js +397 -0
- package/src/lib/scaffold/templates/mcp-server/presets.js +39 -0
- package/src/lib/scaffold/wizards/cms.js +93 -0
- package/src/lib/scaffold/wizards/mcp-server.js +61 -0
- package/src/lib/setup/contract.js +26 -0
- package/src/lib/setup/discover.js +116 -0
- package/src/lib/setup/execute.js +205 -0
- package/src/lib/setup/planner.js +134 -0
- package/src/lib/setup/recipes.js +235 -0
- package/src/lib/setup/runtime-persist.js +197 -0
- package/src/lib/setup/runtime.js +394 -0
- package/src/lib/slash-commands.js +2 -0
- package/src/lib/terminal/machine-identity.js +95 -0
- package/src/lib/terminal-local.js +164 -0
- package/src/lib/terminal-scopes.js +52 -0
- package/src/lib/whoami-capabilities.js +184 -0
- package/src/local-pty/server.js +34 -5
- package/src/mcp/authority.js +58 -108
- package/src/mcp/client-adapters.js +68 -144
- package/src/mcp/client.js +142 -122
- package/src/mcp/cloudflare-bundles.js +225 -0
- package/src/mcp/index.js +12 -0
- package/src/plugins/cloudflare.js +1 -1
- package/src/providers/ollama-chat.js +2 -1
- package/src/sam/types.js +27 -2
- package/src/security/inventory.js +12 -2
- package/src/security/local-vault.js +2 -0
- package/src/security/scan.js +1 -1
- package/test/account-session.test.mjs +3 -3
- package/test/app-authority-context.test.mjs +32 -0
- package/test/cli/codebaseindex-plan-ux.test.mjs +1 -1
- package/test/cli/mcp-client.test.mjs +21 -10
- package/test/cli/runtime-persist.test.mjs +56 -0
- package/test/cli/rust-command.test.mjs +21 -0
- package/test/credentials-audit.test.mjs +113 -0
- package/test/deploy-health-scan.test.mjs +29 -1
- package/test/gcloud-auth.test.mjs +111 -0
- package/test/google-cloud-connection.test.mjs +83 -0
- package/test/google-cloud-inventory.test.mjs +64 -0
- package/test/init-options.test.mjs +35 -0
- package/test/integration/app-command.test.mjs +30 -0
- package/test/integration/cad-project.test.mjs +4 -1
- package/test/integration/cms-app-scaffold.test.mjs +71 -0
- package/test/integration/cms-site-tenancy-contract.test.mjs +3 -2
- package/test/integration/codebaseindex-ingest.test.mjs +48 -0
- package/test/integration/features-resolve.test.mjs +30 -11
- package/test/integration/inspect-path-cli.test.mjs +46 -0
- package/test/integration/inventory-evidence.test.mjs +125 -0
- package/test/integration/runtime-status.integration.test.mjs +2 -1
- package/test/knowledge.test.mjs +35 -1
- package/test/loopback-oauth.test.mjs +53 -0
- package/test/ollama.test.mjs +22 -0
- package/test/security.test.mjs +23 -0
- package/test/setup-planner.test.mjs +74 -0
- package/test/setup-runtime.test.mjs +51 -0
- package/test/terminal/local-pty.mock.test.mjs +3 -1
- package/test/terminal-machine-identity.test.mjs +88 -0
- package/test/whoami-resume.test.mjs +27 -6
- package/packages/agentsam-brand/test/brand-scan.test.mjs +0 -106
- package/packages/work-graph/prototype/README.md +0 -32
- package/packages/work-graph/prototype/data/demo-workgraph.js +0 -47
- package/packages/work-graph/prototype/renderers/timeline-model.js +0 -21
- package/packages/work-graph/prototype/renderers/workgraph-runtime.js +0 -38
- package/packages/work-graph/prototype-gnantt.html +0 -655
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# AgentSam Runtime Protocol
|
|
2
|
+
|
|
3
|
+
> Branch: `feat/runtime-protocol-agentsamd`. Law: **agentsamd is the machine daemon; providers are adapters.**
|
|
4
|
+
|
|
5
|
+
## Architectural law
|
|
6
|
+
|
|
7
|
+
**agentsamd is the AgentSam machine/runtime daemon. Providers are adapters beneath it.**
|
|
8
|
+
|
|
9
|
+
Physical D1 tables stay `terminal_*` for this generation. Domain nouns in code are `RuntimeInstance`, `RuntimeConnection`, `RuntimeAdapter`, `RuntimeCapabilities`.
|
|
10
|
+
|
|
11
|
+
| Noun | Role |
|
|
12
|
+
|---|---|
|
|
13
|
+
| **agentsamd** | Lives with execution: exec, PTY, fs, processes, git, tools, capabilities, attach |
|
|
14
|
+
| **Native helper** (this sprint) | Privileged companion under unprivileged Go: keychain, mounts, devices |
|
|
15
|
+
| **EXECOS Worker** (`env.EXECOS` / `EXECOS_IAM`) | Interim cloud→machine hop + session/job writes. Becomes `runtime_adapter=execos_legacy`, then retires |
|
|
16
|
+
| **PTY_SERVICE** | VPC/PTY health lane — not the daemon |
|
|
17
|
+
| **agentsam-go-worker** | Optional hosted Go service (same Go core). **Not** the Studio control plane |
|
|
18
|
+
| **Local Studio Worker** | Stock app host: auth, D1 SSOT, bindings, runtime APIs |
|
|
19
|
+
|
|
20
|
+
### Four permanent concepts (never conflate)
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
INSTANCE what computer/execution environment is this?
|
|
24
|
+
ADAPTER what speaks agentsam.runtime.v1 there?
|
|
25
|
+
TRANSPORT how do we reach that adapter?
|
|
26
|
+
AUTH how is this connection authenticated?
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Examples:
|
|
30
|
+
|
|
31
|
+
| | Mac | GCP VM | CF Sandbox |
|
|
32
|
+
|---|---|---|---|
|
|
33
|
+
| provider | local | google_cloud | cloudflare |
|
|
34
|
+
| substrate | host | vm | sandbox |
|
|
35
|
+
| lifecycle | persistent | persistent | ephemeral |
|
|
36
|
+
| provider_product | (host) | compute_engine | sandbox |
|
|
37
|
+
| protocol | agentsam.runtime.v1 | same | same |
|
|
38
|
+
| runtime_adapter | agentsamd | agentsamd | cloudflare_sandbox |
|
|
39
|
+
| transport | cloudflare_tunnel / direct_https | cloudflare_tunnel / vpc_service | service_binding |
|
|
40
|
+
| auth_mode | connection_token | connection_token / platform_bridge | service_binding |
|
|
41
|
+
|
|
42
|
+
**Forbidden:** `transport IN ('execos','container')` — those were adapter/substrate smuggled into transport.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Runtime Registry (D1 spine — preserve)
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
ACCOUNT
|
|
50
|
+
│
|
|
51
|
+
├── agentsam_api_credentials AAK / BRK
|
|
52
|
+
├── cloud_provider_connections optional provisioning authority (widen providers)
|
|
53
|
+
│
|
|
54
|
+
└── terminal_instances WHAT EXISTS
|
|
55
|
+
├── provider, substrate, provider_product, lifecycle
|
|
56
|
+
├── platform / arch / capabilities_json
|
|
57
|
+
▼
|
|
58
|
+
terminal_connections HOW AGENTSAM TALKS TO IT
|
|
59
|
+
├── protocol = agentsam.runtime.v1
|
|
60
|
+
├── runtime_adapter = agentsamd | execos_legacy | …
|
|
61
|
+
├── transport = direct_https | cloudflare_tunnel | vpc_service | …
|
|
62
|
+
├── auth_mode
|
|
63
|
+
├── terminal_connection_credentials
|
|
64
|
+
├── terminal_enrollment_tokens
|
|
65
|
+
├── terminal_sessions interactive PTY
|
|
66
|
+
├── terminal_jobs noninteractive (runtime_run_id)
|
|
67
|
+
└── terminal_port_forwards
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Do not** introduce parallel `runtime_instances` / `runtime_connections` tables this generation.
|
|
71
|
+
|
|
72
|
+
### Authority ladder (keep)
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
AAK / BRK → enrollment token → connection credential → session attach token
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Rebuild now (bounded)
|
|
79
|
+
|
|
80
|
+
1. **`terminal_instances`** — drop `kind`↔provider CHECK; drop `compute_provider`; add substrate / provider_product / lifecycle / hw_model; normalize arch `x64`→`x86_64`.
|
|
81
|
+
2. **`terminal_connections`** — replace transport=`execos|container` with `protocol` + `runtime_adapter` + real `transport`; fold `transport_provider` into `transport`; add `endpoint_ref`; stop growing provider-specific columns (keep queried CF indexes for now, prefer `provider_metadata_json`).
|
|
82
|
+
3. **`terminal_jobs`** — `execos_run_id` → `runtime_run_id` (all live values null).
|
|
83
|
+
4. **`cloud_provider_connections`** — widen `provider`; remove policy CHECK forcing GCP `provider_connection_id`.
|
|
84
|
+
|
|
85
|
+
### Do not rebuild unless needed
|
|
86
|
+
|
|
87
|
+
`terminal_connection_credentials`, `terminal_enrollment_tokens`, `terminal_sessions` (optionally rename `auth_token_hash`→`attach_token_hash` while empty), `terminal_port_forwards`, `agentsam_api_credentials`.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Installation grades (this sprint)
|
|
92
|
+
|
|
93
|
+
| Grade | What |
|
|
94
|
+
|---|---|
|
|
95
|
+
| **Full daemon** | Go `agentsamd` + enroll + LaunchAgent/systemd |
|
|
96
|
+
| **Native helper** | Rust/Zig privileged helper with daemon |
|
|
97
|
+
| **Provider adapter** | CF Sandbox etc. (`runtime_adapter=cloudflare_sandbox`) |
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
agentsam setup runtime
|
|
101
|
+
# plan → create instance → create connection → mint enrollment → agentsamd enroll
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Protocol surface
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
identity / capabilities / health
|
|
110
|
+
exec / spawn / signal / terminate
|
|
111
|
+
pty.create|attach|resize|detach
|
|
112
|
+
fs.read|write|list|watch
|
|
113
|
+
ports.list|expose
|
|
114
|
+
system.inspect
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Migration priority
|
|
120
|
+
|
|
121
|
+
1. Freeze vocabulary (this doc + `packages/runtime-protocol`)
|
|
122
|
+
2. Rebuild `terminal_instances` (local_device→host)
|
|
123
|
+
3. Rebuild `terminal_connections` (execos→`runtime_adapter=execos_legacy`)
|
|
124
|
+
4. New enrollments default `runtime_adapter=agentsamd`, `protocol=agentsam.runtime.v1`
|
|
125
|
+
5. `execos_run_id` → `runtime_run_id`
|
|
126
|
+
6. Widen `cloud_provider_connections`
|
|
127
|
+
7. Heartbeat fills `capabilities_json`, `provider_product`, lifecycle facts
|
|
128
|
+
8. `agentsam setup runtime` writes these records from GOAP plans
|
|
129
|
+
9. After agentsamd proven: migrate live ExecOS rows `execos_legacy` → `agentsamd`
|
|
130
|
+
10. Keep ExecOS as adapter during cutover — never as the architecture
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Rejected
|
|
135
|
+
|
|
136
|
+
- Parallel `runtime_*` physical tables beside `terminal_*` this generation
|
|
137
|
+
- `transport = execos` or `container`
|
|
138
|
+
- kind↔provider coupling (VM=Google only, etc.)
|
|
139
|
+
- Soft dual-write forever
|
|
140
|
+
- Casting agentsam-go-worker as the EXECOS/control plane
|
|
141
|
+
- Stock dependence on `load-agent-env.sh`
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Success criteria
|
|
146
|
+
|
|
147
|
+
- User123: Studio → `setup runtime` → enrolled agentsamd (+ native helper on host) → attach
|
|
148
|
+
- Same protocol on Mac / GCP VM / Docker / CF Container; Sandbox via adapter
|
|
149
|
+
- Transport changes without renaming the instance
|
|
150
|
+
- D1 spine stays `terminal_*`; vocabulary is four-axis + adapter + transport
|
|
151
|
+
- ExecOS is `execos_legacy` until retired; agentsamd is the computer
|
|
@@ -14,12 +14,20 @@
|
|
|
14
14
|
Browser GET on connections **start** → 302 to Cloudflare.
|
|
15
15
|
`fetch` + `Accept: application/json` → `{ authorize_url }`.
|
|
16
16
|
|
|
17
|
-
## D1
|
|
17
|
+
## D1 tables (Cloudflare connect / approve)
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
| Table | Role |
|
|
20
|
+
|---|---|
|
|
21
|
+
| `oauth_state_nonces` | Short-lived PKCE state for connector `/api/connections/cloudflare/*` |
|
|
22
|
+
| `identity_oauth_states` | Short-lived PKCE for identity “Sign in with Cloudflare” |
|
|
23
|
+
| `user_oauth_tokens` | **SSOT** durable grant: sealed access/refresh, scopes, `account_identifier` (= CF account id), `is_active` |
|
|
24
|
+
| `agentsam_cloudflare_connections` | **Legacy** — migrated/superseded into `user_oauth_tokens`; do not write new rows |
|
|
25
|
+
| `agentsam_cloudflare_oauth_state` | Legacy MCP connector PKCE (prefer `oauth_state_nonces`) |
|
|
26
|
+
|
|
27
|
+
Vault seals token material; D1 never stores raw refresh/access plaintext in the durable grant row when vault is configured.
|
|
28
|
+
|
|
29
|
+
Resource discovery (their D1/R2/Workers) uses the sealed token from `user_oauth_tokens` — never the platform `env.DB` binding.
|
|
21
30
|
|
|
22
|
-
## IAM AS redirect (required)
|
|
23
31
|
|
|
24
32
|
Register on client `iam_agentsam_sdk_web`:
|
|
25
33
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# AgentSam R2 layout — slug-keyed customer namespaces (not account_id)
|
|
2
|
+
#
|
|
3
|
+
# Path identity = brand.slug (UNIQUE in D1). account_id lives inside manifest.json
|
|
4
|
+
# as ownership data for auth checks — never as a directory segment.
|
|
5
|
+
#
|
|
6
|
+
# {slug}/
|
|
7
|
+
# brand/identity.json
|
|
8
|
+
# brand/assets/{asset_key}/{version}/ ← brand_asset / brand_asset_variant
|
|
9
|
+
# site/public/… site/draft/…
|
|
10
|
+
# frontend/dist/
|
|
11
|
+
# backend/
|
|
12
|
+
# manifest.json ← account_id, oauth defaults, included_apps
|
|
13
|
+
#
|
|
14
|
+
# Platform chrome (not a customer):
|
|
15
|
+
# _platform/shared/…
|
|
16
|
+
#
|
|
17
|
+
# Product surface for non-git customers:
|
|
18
|
+
# agentsam scaffold new <slug>
|
|
19
|
+
# → provisions R2 prefix + Worker + D1 rows from an npm-packaged app scaffold
|
|
20
|
+
# → customers never see the monorepo
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# AgentSam Work product extraction
|
|
2
|
+
|
|
3
|
+
## Product boundary
|
|
4
|
+
|
|
5
|
+
AgentSam Work is a **private monorepo workspace package**, not a separately
|
|
6
|
+
published product package. It is reusable UI/runtime contract code consumed by
|
|
7
|
+
Local Studio and can later be composed into other AgentSam apps.
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
packages/agentsam-work
|
|
11
|
+
contracts normalized Work view/runtime models
|
|
12
|
+
frontend shell, mini navigation, right rail, surfaces
|
|
13
|
+
client transport adapter
|
|
14
|
+
fixtures production-shaped localhost data
|
|
15
|
+
|
|
16
|
+
apps/local-studio
|
|
17
|
+
frontend route composition + LocalStudio WorkHost
|
|
18
|
+
backend/server/work
|
|
19
|
+
authenticated provider/storage adapters
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The package is intentionally parallel to `@inneranimalmedia/agentsam-settings`:
|
|
23
|
+
presentation/contracts are reusable; Local Studio remains the first host and
|
|
24
|
+
owns backend authority.
|
|
25
|
+
|
|
26
|
+
## Donor material
|
|
27
|
+
|
|
28
|
+
The current InnerAnimalMedia dashboard remains a donor, not a dependency.
|
|
29
|
+
|
|
30
|
+
The extraction studied:
|
|
31
|
+
|
|
32
|
+
- `CollaborateWorkShell.tsx`
|
|
33
|
+
- `CollaboratePageRail.tsx`
|
|
34
|
+
- `collaborateRailNav.ts`
|
|
35
|
+
- `shellNav.ts`
|
|
36
|
+
- `LaunchDeskPage.tsx`
|
|
37
|
+
- `CollaborateTasksPanel.tsx`
|
|
38
|
+
- `MailPage.tsx`
|
|
39
|
+
- `api/tickets.ts`
|
|
40
|
+
- `api/projects.ts`
|
|
41
|
+
- calendar/mail/Gmail OAuth backend modules
|
|
42
|
+
|
|
43
|
+
The useful product grammar is retained:
|
|
44
|
+
|
|
45
|
+
- one Work mini navigation family;
|
|
46
|
+
- optional narrow right utility rail;
|
|
47
|
+
- Calendar/Tickets/Mail as one Work workbench;
|
|
48
|
+
- ticket `surface` separates engineering/platform tickets from Collaborate
|
|
49
|
+
tickets without duplicating the ticket runtime;
|
|
50
|
+
- Artifacts and Projects share the same Work chrome;
|
|
51
|
+
- Projects keep their card-grid information architecture;
|
|
52
|
+
- project detail keeps its main AgentSam composer plus the quick-stats and
|
|
53
|
+
project-context rail.
|
|
54
|
+
|
|
55
|
+
Dashboard-specific route prefixes, workspace navigation infrastructure, and
|
|
56
|
+
host-specific CSS are not imported into the package.
|
|
57
|
+
|
|
58
|
+
## Flat route contract
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
/collaborate
|
|
62
|
+
/collaborate?seg=tickets
|
|
63
|
+
/mail
|
|
64
|
+
/artifacts
|
|
65
|
+
/artifacts/tickets
|
|
66
|
+
/artifacts/tickets/:ticketId
|
|
67
|
+
/projects
|
|
68
|
+
/projects/:projectId
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`seg=tasks` may remain a compatibility alias at a host boundary, but reusable
|
|
72
|
+
links emit `seg=tickets`.
|
|
73
|
+
|
|
74
|
+
## Theme contract
|
|
75
|
+
|
|
76
|
+
The default theme intentionally follows the simple Google Workspace/Cloud
|
|
77
|
+
visual grammar visible in the donor Work pages: bright canvas, subtle blue
|
|
78
|
+
selection, compact rows, restrained borders, little shadow, and rounded
|
|
79
|
+
controls.
|
|
80
|
+
|
|
81
|
+
It is not hard-coded as brand authority. Work surfaces consume semantic
|
|
82
|
+
`--agentsam-work-*` CSS variables. `applyWorkThemeTokens()` lets Local
|
|
83
|
+
Studio project a Settings → Themes selection into the Work package without
|
|
84
|
+
making Work import Settings.
|
|
85
|
+
|
|
86
|
+
## Backend extraction order
|
|
87
|
+
|
|
88
|
+
1. Keep all routes on the production-shaped fixture host until the UI shell is
|
|
89
|
+
approved.
|
|
90
|
+
2. Implement read-only Local Studio adapters for projects, artifacts, tickets,
|
|
91
|
+
calendar, and mail.
|
|
92
|
+
3. Switch Local Studio from `createFixtureWorkHost` to the HTTP host.
|
|
93
|
+
4. Add mutations (ticket CRUD, calendar CRUD, mail actions/compose) behind the
|
|
94
|
+
same adapters.
|
|
95
|
+
5. Normalize Gmail OAuth return paths to flat `/mail`.
|
|
96
|
+
6. Only then evaluate database migrations; do not reshape live D1 just to
|
|
97
|
+
satisfy the frontend scaffold.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# AgentSam icon & motion grammar
|
|
2
|
+
|
|
3
|
+
Family system for product marks and UI glyphs. Static identity stays quiet and architectural; runtime motion (Computational Hyperspace) is spectral and dimensional — not the icon itself.
|
|
4
|
+
|
|
5
|
+
## Brand hierarchy
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
AgentSam master brand
|
|
9
|
+
├── Local Studio product identity
|
|
10
|
+
├── CAD Creator product identity
|
|
11
|
+
├── Ecommerce product identity
|
|
12
|
+
├── CLI surface identity
|
|
13
|
+
└── future apps
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Related without sharing the exact same icon. One recognizable **master silhouette** (abstract SAM core / aperture / dimensional mark — readable at 16–24 px). Each product adds a single cue:
|
|
17
|
+
|
|
18
|
+
| Product | Cue on master geometry |
|
|
19
|
+
|---|---|
|
|
20
|
+
| Local Studio | workspace / portal |
|
|
21
|
+
| CAD Creator | dimensional plane / cube |
|
|
22
|
+
| Ecommerce | modular product-card |
|
|
23
|
+
|
|
24
|
+
## Icon grammar
|
|
25
|
+
|
|
26
|
+
| Attribute | Rule |
|
|
27
|
+
|---|---|
|
|
28
|
+
| Base | graphite / near-black dimensional surface |
|
|
29
|
+
| Accent | spectral blue → violet; amber only for special active states |
|
|
30
|
+
| Geometry | rounded, slightly architectural |
|
|
31
|
+
| Detail | one dominant shape, max 2–3 secondary forms |
|
|
32
|
+
| Text | never in the app icon |
|
|
33
|
+
| Lighting | restrained edge/highlight — not glossy clip-art |
|
|
34
|
+
| Small sizes | simplify rather than shrink detail |
|
|
35
|
+
| Status icons | separate semantic system from product logos |
|
|
36
|
+
| Motion | slow depth/parallax; no bouncing/spinning clutter |
|
|
37
|
+
|
|
38
|
+
## Asset drop paths (desktop shell)
|
|
39
|
+
|
|
40
|
+
| Asset | Path |
|
|
41
|
+
|---|---|
|
|
42
|
+
| App / Dock / tray PNG (prefer **1024×1024**) | `packages/agentsam-desktop-shell/icons/<app_id>/icon.png` |
|
|
43
|
+
| Vector mark | `packages/agentsam-desktop-shell/icons/<app_id>/*.svg` |
|
|
44
|
+
| Manifest | `packages/agentsam-desktop-shell/manifests/<app_id>.json` → `icon_set`, `icon_mark_svg` |
|
|
45
|
+
|
|
46
|
+
Build: `cd packages/agentsam-desktop-shell && npm run build:brand -- local-studio`
|
|
47
|
+
Optional: `AGENTSAM_ICON_URL=https://…/logo.png` overrides local files.
|
|
48
|
+
|
|
49
|
+
`build-brand.mjs` must honor `icon_mark_svg` when `icon.png` is missing (rasterize → `src-tauri/icons/`).
|
|
50
|
+
|
|
51
|
+
## UI glyphs (not product logos)
|
|
52
|
+
|
|
53
|
+
One semantic layer — design system picks the glyph family:
|
|
54
|
+
|
|
55
|
+
```jsx
|
|
56
|
+
<Icon name="workspace" />
|
|
57
|
+
<Icon name="terminal" />
|
|
58
|
+
<Icon name="activity" />
|
|
59
|
+
<Icon name="repository" />
|
|
60
|
+
<Icon name="warning" />
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Do not mix Heroicons / Lucide / random SVGs / macOS symbols as the AgentSam brand identity. Platform-native symbols OK only for OS chrome.
|
|
64
|
+
|
|
65
|
+
## Identity vs motion
|
|
66
|
+
|
|
67
|
+
- **Static identity:** quiet / recognizable / architectural
|
|
68
|
+
- **Runtime motion:** spectral / dimensional / computational (Hyperspace)
|
|
69
|
+
|
|
70
|
+
See also: `docs/plans/LOCAL-STUDIO-GRADUATION-2026-09-26.md`.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Host mount checklist — Content Studio (Path A / Commit 6)
|
|
2
|
+
|
|
3
|
+
Portable packages are ready for host adapters. Full OAuth / production mounts
|
|
4
|
+
are Path B / host-app work — do **not** fork packages per host.
|
|
5
|
+
|
|
6
|
+
## Shared mount contract
|
|
7
|
+
|
|
8
|
+
Each host supplies a `ContentRuntime` via `createContentRuntime({...})`:
|
|
9
|
+
|
|
10
|
+
| Seam | Local Studio | IAM dashboard | Fuel & Free Time (customer) |
|
|
11
|
+
|---|---|---|---|
|
|
12
|
+
| `account` / `actor` | desktop session | IAM auth session | customer tenant session |
|
|
13
|
+
| `providers` / capability adapters | local + optional CF | R2 / Images / Drive / Stream | customer-scoped providers |
|
|
14
|
+
| `brandResolver` | project BrandPack projection | org BrandPack projection | customer BrandPack projection |
|
|
15
|
+
| `knowledge` | local / injected | host Vectorize/AutoRAG/pgvector | customer knowledge adapter |
|
|
16
|
+
| `localHost` | Tauri / agentsamd bridge | usually `unavailable` | usually `unavailable` |
|
|
17
|
+
| `routes` / `permissions` | desktop RouteMap | IAM RouteMap | customer RouteMap |
|
|
18
|
+
| UI | `<ContentStudio runtime={rt} />` | same | same |
|
|
19
|
+
|
|
20
|
+
## Do
|
|
21
|
+
|
|
22
|
+
1. Build runtime in the **host** app (not inside `agentsam-content-studio`).
|
|
23
|
+
2. Derive UI tabs/actions from `await runtime.capabilities()`.
|
|
24
|
+
3. Keep BrandPack authority in `agentsam-brand` / `brand.pack.json`.
|
|
25
|
+
4. Use `inferBrandAssociation` only as proposals + ScoreCard evidence.
|
|
26
|
+
5. Use `@inneranimalmedia/agentsam-cloudflare-images` for CF Images HTTP.
|
|
27
|
+
|
|
28
|
+
## Don't
|
|
29
|
+
|
|
30
|
+
- Import Tauri / raw `fs` / agentsamd into reusable UI packages.
|
|
31
|
+
- Hardcode R2 / Images / Drive / Vectorize tabs in Content Studio.
|
|
32
|
+
- Embed real customer BrandPack fixtures in generic packages.
|
|
33
|
+
- Seed fictional `DEMO_BRAND_PROJECTIONS` into production `/content` runtimes.
|
|
34
|
+
- Run IAM `deploy:full` from this SDK repo for content-studio work.
|
|
35
|
+
|
|
36
|
+
## Local Studio mount (wired)
|
|
37
|
+
|
|
38
|
+
- Route: `/content` → `ContentStudioPage` mounts `<ContentStudio runtime={…} />`
|
|
39
|
+
- Runtime factory: `apps/local-studio/frontend/src/lib/content/createLocalStudioContentRuntime.ts`
|
|
40
|
+
- **Identity:** resolved from `useCurrentUserState()` / Auth session — fail closed when missing.
|
|
41
|
+
No `acct_local_studio` / `local-studio-user` production defaults.
|
|
42
|
+
- **Brand:** empty `ContentBrandResolver` projections until host injects BrandPack (Path B).
|
|
43
|
+
Fictional demos live only in `demoBrandProjections.ts` (tests/examples).
|
|
44
|
+
- **LocalContentHost (desktop):** native Rust Tauri `local_content_bridge` —
|
|
45
|
+
`rfd` pickers, opaque `localref_*` / `localdir_*`, granted roots, browse in place,
|
|
46
|
+
copy only on `import_to_library`. **Does not require** monorepo Node or global Node.
|
|
47
|
+
- **LocalContentHost (browser/dev):** File System Access API when available; else
|
|
48
|
+
explicit browser-import (`import_bytes`, 32 MiB) via Node `/api/content/local/bridge`.
|
|
49
|
+
- Knowledge / BrandSimilarity: noop adapters (no Vectorize hardcode)
|
|
50
|
+
- agentsamd: probed via Tauri `ensure_agentsamd` / health; FS ops are native Rust until
|
|
51
|
+
agentsamd ships native `/v1/fs` (documented migration target)
|
|
52
|
+
|
|
53
|
+
## Packaged-app contract
|
|
54
|
+
|
|
55
|
+
| Requirement | Status |
|
|
56
|
+
|---|---|
|
|
57
|
+
| Works from `/Applications` without repo checkout | Native Rust FS — yes |
|
|
58
|
+
| No global Node for content FS | Desktop native — yes; Node bridge is browser/dev only |
|
|
59
|
+
| Native Open File / Open Folder | `rfd` via `pick_files` / `pick_directory` |
|
|
60
|
+
| Selected file not copied until import | Yes — `import_to_library` is separate |
|
|
61
|
+
| Opaque refs only to UI/models | Yes — absolute paths stay in Rust/grant store |
|
|
62
|
+
|
|
63
|
+
## Remaining for true 3-host E2E (Path B)
|
|
64
|
+
|
|
65
|
+
- agentsamd native `/v1/fs` + watch (migration from native Rust bridge)
|
|
66
|
+
- IAM dashboard route + OAuth-scoped providers
|
|
67
|
+
- F&F admin mount with customer account scope
|
|
68
|
+
- Production BrandPack projection into Local Studio `brandResolver`
|
|
69
|
+
- Harvest Go pipeline → SiteGraph / TokenGraph → package-readiness ScoreCards
|
|
70
|
+
- Brand package migration onto shared CF Images transport (content already uses it)
|
|
71
|
+
- Beta / outcome calibration receipts for accept/reject (does not mutate evidence)
|