@inneranimalmedia/agentsam-sdk 2.6.4 → 2.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTSAM.md +40 -0
- package/README.md +15 -9
- package/apps/README.md +5 -0
- package/apps/cad-creator/README.md +4 -4
- package/apps/cad-creator/shared/cad/package.json +1 -1
- package/apps/client-cms-editor/AGENTS.md +17 -0
- package/apps/client-cms-editor/IMPORT_PROVENANCE.json +8 -0
- package/apps/client-cms-editor/README.md +100 -0
- package/apps/client-cms-editor/agentsam.app.json +74 -0
- package/apps/client-cms-editor/backend/README.md +5 -0
- package/apps/client-cms-editor/backend/package.json +39 -0
- package/apps/client-cms-editor/backend/src/api/client.ts +233 -0
- package/apps/client-cms-editor/backend/src/index.ts +6 -0
- package/apps/client-cms-editor/backend/src/model.ts +11 -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 +20 -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.js +262 -0
- package/apps/client-cms-editor/bin/agentsam-cms.mjs +3 -0
- package/apps/client-cms-editor/frontend/index.html +12 -0
- package/apps/client-cms-editor/frontend/package.json +42 -0
- package/apps/client-cms-editor/frontend/src/AgentSamDrawer.tsx +156 -0
- package/apps/client-cms-editor/frontend/src/CmsAgentSurface.tsx +36 -0
- package/apps/client-cms-editor/frontend/src/adapters/heuristic.ts +29 -0
- package/apps/client-cms-editor/frontend/src/adapters/http.ts +628 -0
- package/apps/client-cms-editor/frontend/src/adapters/memory.ts +510 -0
- package/apps/client-cms-editor/frontend/src/editor/CmsEditor.tsx +213 -0
- package/apps/client-cms-editor/frontend/src/editor/CmsEditorProvider.tsx +20 -0
- package/apps/client-cms-editor/frontend/src/editor/canvas/PreviewCanvas.tsx +53 -0
- package/apps/client-cms-editor/frontend/src/editor/legacy/CmsEditorPrototype.tsx +1374 -0
- package/apps/client-cms-editor/frontend/src/editor/useCmsEditorController.ts +218 -0
- package/apps/client-cms-editor/frontend/src/env.d.ts +14 -0
- package/apps/client-cms-editor/frontend/src/index.ts +22 -0
- package/apps/client-cms-editor/frontend/src/lib/agent-host.ts +24 -0
- package/apps/client-cms-editor/frontend/src/lib/content-safety.ts +63 -0
- package/apps/client-cms-editor/frontend/src/main.tsx +91 -0
- package/apps/client-cms-editor/frontend/src/mount.tsx +113 -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 +158 -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 +36 -0
- package/apps/client-cms-editor/frontend/vite.config.ts +25 -0
- package/apps/client-cms-editor/package-lock.json +4671 -0
- package/apps/client-cms-editor/package.json +135 -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/reference/harvest/HARVEST_RECEIPT.json +201 -0
- package/apps/client-cms-editor/reference/harvest/PROVENANCE_HISTORY.txt +10 -0
- package/apps/client-cms-editor/reference/harvest/README.md +8 -0
- package/apps/client-cms-editor/reference/harvest/plans/ARCHIVE-INTAKE.md +135 -0
- package/apps/client-cms-editor/reference/harvest/plans/CHATGPT-IDENTITY-HARVEST.md +83 -0
- package/apps/client-cms-editor/reference/harvest/plans/CMS-EDITOR-HARVEST.md +166 -0
- package/apps/client-cms-editor/reference/harvest/plans/HARVEST-INDEX.md +196 -0
- package/apps/client-cms-editor/reference/harvest/plans/INNERANIMALS-CONTENT-001.md +137 -0
- package/apps/client-cms-editor/reference/harvest/plans/NO-IMPLICIT-SIDE-EFFECTS.md +87 -0
- package/apps/client-cms-editor/reference/harvest/plans/STOREFRONT-SURFACE-MAP.md +140 -0
- package/apps/client-cms-editor/reference/harvest/plans/THEME-INNERANIMALS-HARVEST.md +137 -0
- package/apps/client-cms-editor/reference/harvest/plans/TOOLING-LAB.md +63 -0
- package/apps/client-cms-editor/reference/harvest/plans/harvest-manifest.json +97 -0
- package/apps/client-cms-editor/reference/harvest/plans/local-cms-harvest-schema.sql +328 -0
- package/apps/client-cms-editor/shared/cms/package.json +31 -0
- package/apps/client-cms-editor/shared/cms/src/adapter.ts +204 -0
- package/apps/client-cms-editor/shared/cms/src/agent-context.ts +37 -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 +90 -0
- package/apps/client-cms-editor/shared/cms/src/host.ts +82 -0
- package/apps/client-cms-editor/shared/cms/src/index.ts +9 -0
- package/apps/client-cms-editor/shared/cms/src/map.ts +115 -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/src/starter-pack.ts +158 -0
- package/apps/client-cms-editor/shared/cms/tsconfig.json +12 -0
- package/bin/agentsam-rapid-rust +36 -0
- package/contracts/source-types.v1.json +353 -0
- package/docs/AUTH_IDENTITY_CONTRACT.md +2 -0
- package/docs/CMS_CONTEXTUAL_COMPOSER.md +1 -1
- package/docs/MACHINE_INTELLIGENCE.md +120 -0
- package/docs/PRODUCT_LIFECYCLE.md +566 -0
- package/docs/THEME_REFINERY.md +2 -2
- package/docs/WINDOWS_RUNTIME_INSTALL.md +30 -0
- package/docs/architecture/AGENTSAM_APPLICATION_CONTRACT.md +188 -0
- package/docs/architecture/AGENTSAM_RUNTIME_PROTOCOL.md +171 -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/LOCAL_STUDIO_DESKTOP_RELEASE_2026-09-29.md +150 -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/migrations/d1/0017_identity_native_oauth.sql +21 -0
- package/native/agentsam-machine/Cargo.lock +426 -0
- package/native/agentsam-machine/Cargo.toml +9 -0
- package/native/agentsam-machine/cli/Cargo.toml +14 -0
- package/native/agentsam-machine/cli/src/main.rs +77 -0
- package/native/agentsam-machine/core/Cargo.toml +15 -0
- package/native/agentsam-machine/core/src/assets.rs +790 -0
- package/native/agentsam-machine/core/src/bound.rs +298 -0
- package/native/agentsam-machine/core/src/enrich.rs +706 -0
- package/native/agentsam-machine/core/src/frontend.rs +442 -0
- package/native/agentsam-machine/core/src/lib.rs +1086 -0
- package/native/agentsam-machine/core/src/liquid.rs +528 -0
- package/native/agentsam-machine/core/src/source_types.rs +78 -0
- package/package.json +110 -21
- package/packages/agentsam-brand/README.md +107 -12
- package/packages/agentsam-brand/bin/agentsam-brand.mjs +9 -0
- package/packages/agentsam-brand/package.json +41 -9
- 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/package.json +13 -3
- package/packages/agentsam-contracts/src/artifacts.ts +41 -0
- package/packages/agentsam-contracts/src/tools.ts +22 -0
- package/packages/agentsam-errors/package.json +13 -3
- package/packages/agentsam-knowledge/package.json +18 -4
- package/packages/agentsam-knowledge/src/autorag/index.js +11 -4
- package/packages/agentsam-knowledge/src/backends/index.js +33 -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 +81 -1
- package/packages/agentsam-nav/package.json +26 -8
- package/packages/agentsam-queue-control/README.md +1 -1
- package/packages/agentsam-queue-control/package.json +7 -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/package.json +13 -3
- 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 +93 -0
- package/packages/agentsam-vault/README.md +96 -0
- package/packages/agentsam-vault/package.json +42 -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 +49 -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/ToolPermissionRequest.tsx +94 -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 +12 -0
- package/packages/agentsam-workbench/src/agent/mini-agentsam.css +12 -0
- package/packages/agentsam-workbench/src/agent/tool-permission.css +134 -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 +16 -4
- package/packages/connectors/cloudflare/src/api-client.js +280 -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/vectorize.js +127 -0
- package/packages/connectors/cloudflare/src/families/workflows.js +156 -0
- package/packages/connectors/cloudflare/src/index.js +103 -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/heuristic-theme/README.md +2 -2
- package/packages/heuristic-theme/package.json +8 -3
- package/packages/heuristic-theme/src/registry.js +2 -2
- package/packages/heuristic-theme/src/theme.js +1 -1
- package/packages/heuristic-theme/test/theme.test.mjs +1 -1
- package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +1 -1
- package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +44 -4
- 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 +2 -2
- package/packages/identity/backend/README.md +1 -1
- package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +18 -14
- package/packages/identity/migrations/apply-portable.js +109 -0
- package/packages/identity/migrations/sqlite/004_identity_oauth_consent_catalog.sql +48 -0
- package/packages/identity/migrations/sqlite/005_identity_company_native.sql +52 -0
- package/packages/identity/package.json +27 -5
- package/packages/identity/schema/agentsam.identity/manifest.json +101 -0
- package/packages/identity/scripts/local-identity-bridge.mjs +190 -0
- package/packages/identity/scripts/preview-auth-portal.mjs +8 -8
- package/packages/identity/src/adapters/cloudflare-d1/index.js +8 -372
- package/packages/identity/src/adapters/iam-compat/index.js +540 -0
- package/packages/identity/src/adapters/portable-d1/index.js +18 -0
- package/packages/identity/src/adapters/portable-store.js +479 -0
- package/packages/identity/src/adapters/sqlite/index.js +13 -309
- package/packages/identity/src/contracts/auth-config.js +27 -8
- package/packages/identity/src/contracts/external-identity.js +1 -1
- package/packages/identity/src/contracts/identity-store.js +56 -5
- package/packages/identity/src/contracts/provider.js +2 -0
- package/packages/identity/src/contracts/sign-in-options.js +104 -0
- package/packages/identity/src/core/constants.js +1 -1
- package/packages/identity/src/core/session-policy.js +31 -0
- package/packages/identity/src/frontend/auth-portal/README.md +2 -1
- package/packages/identity/src/frontend/auth-portal/pages/login.html +7 -6
- 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 +176 -0
- package/packages/identity/src/index.js +44 -1
- 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 +23 -20
- 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 +39 -20
- package/packages/identity/src/oauth/google-desktop-exchange.js +341 -0
- package/packages/identity/src/oauth/iam-platform.js +21 -9
- package/packages/identity/src/oauth/native-handoff.js +136 -0
- package/packages/identity/src/providers/chatgpt/headers.js +65 -0
- package/packages/identity/src/providers/chatgpt/index.js +86 -0
- package/packages/identity/src/providers/chatgpt/mapper.js +43 -0
- package/packages/identity/src/providers/chatgpt/paths.js +45 -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/github/oauth.js +1 -2
- package/packages/identity/src/providers/github/profile.js +16 -2
- package/packages/identity/src/providers/iam/index.js +27 -5
- package/packages/identity/src/providers/index.js +11 -3
- package/packages/identity/src/server/identity-service.js +33 -3
- package/packages/identity/src/server/worker-router.js +171 -88
- package/packages/identity/tests/auth-config.test.mjs +3 -2
- package/packages/identity/tests/chatgpt-provider.test.mjs +75 -0
- package/packages/identity/tests/google-desktop-identity-login.test.mjs +210 -0
- package/packages/identity/tests/identity-init-scaffold.test.mjs +17 -3
- package/packages/identity/tests/identity-service.test.mjs +16 -0
- package/packages/identity/tests/lane1-identity-store-parity.test.mjs +527 -0
- package/packages/identity/tests/lane1-packed-consumer.test.mjs +175 -0
- package/packages/identity/tests/native-oauth-handoff.test.mjs +292 -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 +21 -8
- package/packages/identity/tests/oauth-presets-accounts-ssot.test.mjs +58 -0
- package/packages/identity/tests/preview-auth-portal.test.mjs +5 -3
- package/packages/identity/tests/session-routes-policy.test.mjs +13 -1
- package/packages/identity/tests/worker-runtime-boundary.test.mjs +11 -0
- package/packages/providers/completeful/package.json +7 -2
- package/packages/runtime-protocol/src/index.js +154 -0
- package/packages/theme-church-site/package.json +17 -6
- package/packages/theme-church-site/src/harvest.json +4 -2
- package/packages/theme-church-site/src/index.js +7 -3
- package/packages/theme-church-site/test/theme.test.mjs +4 -2
- package/packages/theme-companions-site/package.json +17 -6
- package/packages/theme-companions-site/src/harvest.json +4 -2
- package/packages/theme-companions-site/src/index.js +7 -3
- package/packages/theme-companions-site/test/theme.test.mjs +4 -2
- package/packages/theme-floors-site/package.json +17 -6
- package/packages/theme-floors-site/src/harvest.json +4 -2
- package/packages/theme-floors-site/src/index.js +7 -3
- package/packages/theme-floors-site/test/theme.test.mjs +4 -2
- package/packages/theme-fuelnfree-site/package.json +17 -6
- package/packages/theme-fuelnfree-site/src/harvest.json +4 -2
- package/packages/theme-fuelnfree-site/src/index.js +7 -3
- package/packages/theme-fuelnfree-site/test/theme.test.mjs +4 -2
- package/packages/theme-handyman-site/package.json +17 -6
- package/packages/theme-handyman-site/src/harvest.json +4 -2
- package/packages/theme-handyman-site/src/index.js +7 -3
- package/packages/theme-handyman-site/test/theme.test.mjs +4 -2
- package/packages/theme-insurance-site/package.json +17 -6
- package/packages/theme-insurance-site/src/harvest.json +4 -2
- package/packages/theme-insurance-site/src/index.js +7 -3
- package/packages/theme-insurance-site/test/theme.test.mjs +4 -2
- package/packages/theme-scenes/README.md +164 -0
- package/packages/theme-scenes/package.json +54 -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/registry.js +187 -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/theme-shinshu-site/package.json +17 -6
- package/packages/theme-shinshu-site/src/harvest.json +4 -2
- package/packages/theme-shinshu-site/src/index.js +7 -3
- package/packages/theme-shinshu-site/test/theme.test.mjs +4 -2
- package/packages/work-graph/package.json +14 -4
- 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/FILEMETA_V1.md +2 -2
- 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/capabilities/manifest.json +1 -1
- package/protocol/database/agentsam.schema-pack.v1.schema.json +72 -0
- package/protocol/presets/catalog.json +2 -2
- 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/theme-refinery/lineage-registry.json +105 -0
- package/protocol/theme-refinery/product-metadata.schema.json +21 -1
- 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/skills/grok-auth/SKILL.md +110 -0
- package/skills/grok-auth/agentsam.skill.json +25 -0
- package/skills/grok-auth/references/grok-identity.md +64 -0
- package/skills/grok-auth/references/per-user-data.md +49 -0
- package/skills/grok-auth/references/prewired-and-env.md +54 -0
- package/skills/grok-auth/references/session-ui.md +133 -0
- package/skills/grok-auth/references/sign-in-methods.md +55 -0
- package/skills/grok-auth/references/wiring.md +71 -0
- package/skills/grok-building-games/SKILL.md +213 -0
- package/skills/grok-building-games/agentsam.skill.json +25 -0
- package/skills/grok-building-games/references/3d-libs.md +64 -0
- package/skills/grok-building-games/references/ai-pathfinding.md +122 -0
- package/skills/grok-building-games/references/audio.md +129 -0
- package/skills/grok-building-games/references/babylon.md +202 -0
- package/skills/grok-building-games/references/collision-physics.md +122 -0
- package/skills/grok-building-games/references/ecs-architecture.md +111 -0
- package/skills/grok-building-games/references/game-feel-juice.md +110 -0
- package/skills/grok-building-games/references/genres/board-card-chess.md +89 -0
- package/skills/grok-building-games/references/genres/endless-runner.md +83 -0
- package/skills/grok-building-games/references/genres/fps.md +105 -0
- package/skills/grok-building-games/references/genres/platformer-2d.md +97 -0
- package/skills/grok-building-games/references/genres/puzzle-match3-tetris.md +131 -0
- package/skills/grok-building-games/references/genres/racing-kart.md +106 -0
- package/skills/grok-building-games/references/genres/topdown-twin-stick.md +97 -0
- package/skills/grok-building-games/references/genres/tower-defense.md +84 -0
- package/skills/grok-building-games/references/genres/voxel-minecraft.md +89 -0
- package/skills/grok-building-games/references/input.md +139 -0
- package/skills/grok-building-games/references/phaser.md +277 -0
- package/skills/grok-building-games/references/procedural-generation.md +141 -0
- package/skills/grok-building-games/references/save-persistence.md +108 -0
- package/skills/grok-building-games/references/threejs-foundational.md +148 -0
- package/skills/grok-controls/SKILL.md +274 -0
- package/skills/grok-controls/agentsam.skill.json +25 -0
- package/skills/grok-design-ui/SKILL.md +122 -0
- package/skills/grok-design-ui/agentsam.skill.json +25 -0
- package/skills/grok-design-ui/references/animations.md +379 -0
- package/skills/grok-design-ui/references/performance.md +88 -0
- package/skills/grok-design-ui/references/refined-ui.md +384 -0
- package/skills/grok-design-ui/references/surfaces.md +247 -0
- package/skills/grok-design-ui/references/typography.md +123 -0
- package/skills/grok-game-animation-frames/SKILL.md +84 -0
- package/skills/grok-game-animation-frames/agentsam.skill.json +25 -0
- package/skills/grok-game-asset-core/SKILL.md +69 -0
- package/skills/grok-game-asset-core/agentsam.skill.json +25 -0
- package/skills/grok-game-character-consistency/SKILL.md +69 -0
- package/skills/grok-game-character-consistency/agentsam.skill.json +25 -0
- package/skills/grok-game-tilesets/SKILL.md +65 -0
- package/skills/grok-game-tilesets/agentsam.skill.json +25 -0
- package/skills/grok-game-ui-icons/SKILL.md +56 -0
- package/skills/grok-game-ui-icons/agentsam.skill.json +25 -0
- package/skills/grok-generate2dmap/LICENSE +21 -0
- package/skills/grok-generate2dmap/SKILL.md +120 -0
- package/skills/grok-generate2dmap/SOURCE.md +6 -0
- package/skills/grok-generate2dmap/agentsam.skill.json +25 -0
- package/skills/grok-generate2dmap/references/deliverables.md +101 -0
- package/skills/grok-generate2dmap/references/layered-map-contract.md +209 -0
- package/skills/grok-generate2dmap/references/map-strategies.md +341 -0
- package/skills/grok-generate2dmap/references/object-production-gate.md +24 -0
- package/skills/grok-generate2dmap/references/pipeline.md +149 -0
- package/skills/grok-generate2dmap/references/prop-pack-contract.md +174 -0
- package/skills/grok-generate2dmap/references/side-scroll-stages.md +29 -0
- package/skills/grok-generate2dmap/scripts/compose_layered_preview.py +157 -0
- package/skills/grok-generate2dmap/scripts/extract_prop_pack.py +369 -0
- package/skills/grok-generate2dsprite/LICENSE +21 -0
- package/skills/grok-generate2dsprite/SKILL.md +313 -0
- package/skills/grok-generate2dsprite/SOURCE.md +6 -0
- package/skills/grok-generate2dsprite/agentsam.skill.json +25 -0
- package/skills/grok-generate2dsprite/references/modes.md +124 -0
- package/skills/grok-generate2dsprite/references/prompt-rules.md +315 -0
- package/skills/grok-generate2dsprite/scripts/generate2dsprite.py +1031 -0
- package/skills/grok-generate2dsprite/scripts/make_layout_guide.py +109 -0
- package/skills/grok-imagine/SKILL.md +201 -0
- package/skills/grok-imagine/agentsam.skill.json +25 -0
- package/skills/grok-multiplayer-p2p/SKILL.md +111 -0
- package/skills/grok-multiplayer-p2p/agentsam.skill.json +25 -0
- package/skills/grok-multiplayer-p2p/references/react-binding.md +144 -0
- package/skills/grok-multiplayer-p2p/references/signaling-relay.md +269 -0
- package/skills/grok-neon/SKILL.md +157 -0
- package/skills/grok-neon/agentsam.skill.json +25 -0
- package/skills/grok-og/SKILL.md +102 -0
- package/skills/grok-og/agentsam.skill.json +25 -0
- package/skills/grok-og/references/brand-pass.md +53 -0
- package/skills/grok-og/references/custom-card.md +107 -0
- package/skills/grok-og/references/favicon-and-icons.md +48 -0
- package/skills/grok-og/references/og-type-contract.md +18 -0
- package/skills/grok-og/references/placeholder-card.md +21 -0
- package/skills/grok-og/references/x-banner.md +41 -0
- package/skills/grok-threejs/SKILL.md +67 -0
- package/skills/grok-threejs/agentsam.skill.json +25 -0
- package/skills/grok-threejs/references/llms-full.txt +2780 -0
- package/skills/grok-video2dsprite/LICENSE +21 -0
- package/skills/grok-video2dsprite/SKILL.md +236 -0
- package/skills/grok-video2dsprite/SOURCE.md +6 -0
- package/skills/grok-video2dsprite/agentsam.skill.json +25 -0
- package/skills/grok-video2dsprite/references/pipeline.md +90 -0
- package/skills/grok-video2dsprite/references/prompt-rules.md +63 -0
- package/skills/grok-video2dsprite/scripts/video2dsprite.py +490 -0
- package/skills/grok-xai-api/SKILL.md +152 -0
- package/skills/grok-xai-api/agentsam.skill.json +25 -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 +53 -3
- package/src/cli/dispatch.js +1 -0
- package/src/cli.js +192 -26
- package/src/cloudflare/runtime-status.js +2 -1
- package/src/commands/account-auth.js +94 -8
- package/src/commands/app.js +307 -3
- package/src/commands/autorag.js +67 -13
- package/src/commands/billing.js +127 -0
- package/src/commands/brand.js +74 -60
- package/src/commands/cheat-sheet.js +179 -0
- package/src/commands/cloudflare-login.js +222 -0
- package/src/commands/cloudflare.js +453 -23
- package/src/commands/codebaseindex.js +51 -3
- 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/knowledge.js +59 -2
- package/src/commands/machine-binary.js +103 -0
- package/src/commands/machine.js +137 -0
- 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/security.js +67 -4
- package/src/commands/setup.js +296 -0
- package/src/commands/shell.js +16 -3
- package/src/commands/start-local.js +2 -2
- package/src/commands/status.js +8 -1
- 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 +2 -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/engine.js +21 -2
- package/src/knowledge/runtime-discovery.js +127 -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 +76 -18
- 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/models/discovery.js +40 -22
- package/src/models/inventory-core.d.ts +105 -0
- package/src/models/inventory-core.js +54 -6
- 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/logs.js +3 -0
- package/src/security/scan.js +1 -1
- package/src/ui/cli/help.js +41 -0
- package/test/account-session.test.mjs +3 -3
- package/test/app-authority-context.test.mjs +32 -0
- package/test/apps-scaffold-contract.test.mjs +3 -2
- package/test/cli/api-key-env-whoami.test.mjs +2 -2
- package/test/cli/catalog-authority.test.mjs +64 -0
- package/test/cli/codebaseindex-plan-ux.test.mjs +1 -1
- package/test/cli/machine-command.test.mjs +34 -0
- 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/fixtures/project-authority/customer-app/.agentsam/app.json +5 -0
- package/test/fixtures/project-authority/customer-app/apps/my-product/index.ts +1 -0
- package/test/fixtures/project-authority/customer-app/wrangler.toml +17 -0
- 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/autorag-project-authority.integration.test.mjs +51 -0
- package/test/integration/autorag-runtime-discovery.test.mjs +107 -0
- package/test/integration/cad-project.test.mjs +4 -1
- package/test/integration/cms-app-scaffold.test.mjs +77 -0
- package/test/integration/cms-site-tenancy-contract.test.mjs +31 -19
- package/test/integration/codebaseindex-ingest.test.mjs +89 -0
- package/test/integration/database-hosted-honesty.test.mjs +49 -0
- package/test/integration/desktop-keychain-boundary.test.mjs +45 -0
- package/test/integration/features-resolve.test.mjs +30 -11
- package/test/integration/hosted-work-host-authority.test.mjs +47 -0
- package/test/integration/inspect-path-cli.test.mjs +46 -0
- package/test/integration/inventory-eligibility.test.mjs +59 -0
- package/test/integration/inventory-evidence.test.mjs +125 -0
- package/test/integration/local-provider-bridge.test.mjs +65 -0
- package/test/integration/local-studio-settings-production.test.mjs +40 -0
- package/test/integration/lockfile-sync.test.mjs +26 -0
- package/test/integration/provider-env-cli.test.mjs +13 -3
- package/test/integration/runtime-status.integration.test.mjs +17 -1
- package/test/integration/theme-package-registry.test.mjs +31 -0
- package/test/knowledge.test.mjs +35 -1
- package/test/loopback-oauth.test.mjs +53 -0
- package/test/ollama.test.mjs +22 -0
- package/test/repository-snapshot-view.test.mjs +2 -2
- package/test/security.test.mjs +37 -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/agentsam-nav/dist/Nav.d.ts +0 -43
- package/packages/agentsam-nav/dist/NavCollapsible.d.ts +0 -10
- package/packages/agentsam-nav/dist/NavContent.d.ts +0 -2
- package/packages/agentsam-nav/dist/NavFooter.d.ts +0 -2
- package/packages/agentsam-nav/dist/NavGroup.d.ts +0 -3
- package/packages/agentsam-nav/dist/NavHeader.d.ts +0 -2
- package/packages/agentsam-nav/dist/NavMenu.d.ts +0 -22
- package/packages/agentsam-nav/dist/NavProvider.d.ts +0 -35
- package/packages/agentsam-nav/dist/NavTrigger.d.ts +0 -2
- package/packages/agentsam-nav/dist/Surfaces.d.ts +0 -41
- package/packages/agentsam-nav/dist/browser.d.ts +0 -11
- package/packages/agentsam-nav/dist/browser.global.js +0 -132
- package/packages/agentsam-nav/dist/browser.js +0 -613
- package/packages/agentsam-nav/dist/contracts.d.ts +0 -76
- package/packages/agentsam-nav/dist/index.d.ts +0 -11
- package/packages/agentsam-nav/dist/index.js +0 -614
- package/packages/agentsam-nav/dist/legacy.css +0 -83
- package/packages/agentsam-nav/dist/shell.css +0 -113
- package/packages/agentsam-nav/dist/theme.css +0 -113
- package/packages/agentsam-nav/dist/utils.d.ts +0 -1
- package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +0 -670
- 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,188 @@
|
|
|
1
|
+
# AgentSam Application Contract
|
|
2
|
+
|
|
3
|
+
**Status:** binding for portable product apps
|
|
4
|
+
**Schema:** `protocol/apps/agentsam.app.v1.schema.json`
|
|
5
|
+
**CLI:** `agentsam app validate` · `agentsam app list` · `agentsam app inspect <id>`
|
|
6
|
+
|
|
7
|
+
## Artifact taxonomy
|
|
8
|
+
|
|
9
|
+
| Type | Meaning | Canonical manifest |
|
|
10
|
+
|------|---------|-------------------|
|
|
11
|
+
| **APP** | Something a user can install/run/use as a product | `agentsam.app.json` |
|
|
12
|
+
| **PACKAGE** | Reusable code/capability | `agentsam.package.json` (or package metadata) |
|
|
13
|
+
| **SERVICE** | Runtime infrastructure/backend | `agentsam.package.json` with `type: "service"` (or `agentsam.service.json`) |
|
|
14
|
+
| **HOST** | Something that mounts/composes apps | host / install state under `.agentsam/` |
|
|
15
|
+
| **THEME** | Appearance/content kit, not an app | theme package / theme-site scaffold |
|
|
16
|
+
|
|
17
|
+
A folder under `apps/` is **not** an APP merely because of its path. The AgentSam APP contract (`agentsam.app.json`) makes it one.
|
|
18
|
+
|
|
19
|
+
Example: `apps/agentsam-go-worker` correctly uses `agentsam.package.json` (`type: "service"`) and must **not** be forced into APP semantics because it is deployable.
|
|
20
|
+
|
|
21
|
+
Theme packages and static theme-site scaffolds likewise stay outside APP semantics.
|
|
22
|
+
|
|
23
|
+
## Target tree (conceptual)
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
apps/
|
|
27
|
+
cad-creator/
|
|
28
|
+
client-cms-editor/
|
|
29
|
+
ecommerce-cms/
|
|
30
|
+
local-studio/
|
|
31
|
+
|
|
32
|
+
packages/
|
|
33
|
+
database-editor/
|
|
34
|
+
settings/
|
|
35
|
+
identity/
|
|
36
|
+
planner/
|
|
37
|
+
cms-sections/
|
|
38
|
+
themes/
|
|
39
|
+
|
|
40
|
+
services/
|
|
41
|
+
go-runtime/
|
|
42
|
+
render-runtime/
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Identity namespaces (must not collapse)
|
|
46
|
+
|
|
47
|
+
| Namespace | Example | Role |
|
|
48
|
+
|-----------|---------|------|
|
|
49
|
+
| `APP.id` | `cad-creator` | Canonical product identity — immutable kebab-case |
|
|
50
|
+
| `HOST.id` / origin | host-install projection | Where this APP instance is served; belongs to installation state, not portable APP identity |
|
|
51
|
+
| npm package | `@inneranimalmedia/agentsam-cad-creator` | Distribute/install code |
|
|
52
|
+
| CLI command | `agentsam-cad-creator` / `agentsam cad` | Launch surface |
|
|
53
|
+
| Cloudflare Worker | `agentsam-cad-creator` | Host deployment name |
|
|
54
|
+
| desktop bundle | `com.inneranimalmedia.agentsam.cadcreator` | OS identity |
|
|
55
|
+
| route | `/cad` | URL mount |
|
|
56
|
+
| service | `cad-render-service` | Infrastructure |
|
|
57
|
+
| `PRODUCT.id` | `cms` | Platform product registry |
|
|
58
|
+
| `MOUNT.id` | `cms-studio` | Host mount slot |
|
|
59
|
+
| remote identity/account issuer | optional host/provider adapter configuration | External account authority for an installation — **not** intrinsic APP identity |
|
|
60
|
+
|
|
61
|
+
Portable APP law: an installable APP must not hardcode a donor/company hostname, remote issuer, tenant, confidential OAuth client, or customer deployment as a prerequisite for its local product experience. Those facts belong to `agentsam.host-install.v1` state or an explicitly installed provider/identity adapter.
|
|
62
|
+
|
|
63
|
+
Those names **may** differ. What must not happen:
|
|
64
|
+
|
|
65
|
+
```js
|
|
66
|
+
const APP = "agentsam-cad-creator"; // Worker name ≠ APP identity
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
```js
|
|
70
|
+
// Forbidden: collapsing HOST and PLATFORM into alias env vars
|
|
71
|
+
const origin = env.AGENTSAM_STUDIO_ORIGIN || env.AGENTSAM_LOCAL_STUDIO_ORIGIN || env.IAM_OAUTH_ISSUER;
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Relate namespaces explicitly:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"schema": "agentsam.host-install.v1",
|
|
79
|
+
"app_id": "local-studio",
|
|
80
|
+
"config": {
|
|
81
|
+
"hosts": [
|
|
82
|
+
{ "host_id": "studio-public", "origin": "https://studio.example.com", "role": "production" }
|
|
83
|
+
],
|
|
84
|
+
"identity": { "portable_default": "local" }
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"id": "client-cms-editor",
|
|
92
|
+
"product_id": "cms",
|
|
93
|
+
"name": "AgentSam CMS",
|
|
94
|
+
"package": "@inneranimalmedia/client-cms-editor"
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"schema": "agentsam.host-install.v1",
|
|
101
|
+
"app_id": "client-cms-editor",
|
|
102
|
+
"config": {},
|
|
103
|
+
"mounts": []
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Manifest authority
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
apps/<app-id>/
|
|
111
|
+
├── agentsam.app.json ← ONE canonical product definition
|
|
112
|
+
├── package.json
|
|
113
|
+
├── frontend/
|
|
114
|
+
├── backend/
|
|
115
|
+
├── bin/
|
|
116
|
+
└── .agentsam/ ← host / install / project state (not a second product def)
|
|
117
|
+
└── app.json ← references app_id; does not redefine identity
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
| File | Role |
|
|
121
|
+
|------|------|
|
|
122
|
+
| `agentsam.app.json` | Package/product definition — sole APP identity authority |
|
|
123
|
+
| `.agentsam/` | Host/user/project **installation** state for this checkout or customer |
|
|
124
|
+
|
|
125
|
+
Same APP installed into Fuel & Free Time, Companions CPAs, InnerAnimalMedia, or a customer localhost keeps the same `APP.id`. `.agentsam/` describes **this** installation.
|
|
126
|
+
|
|
127
|
+
## Physical shape
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
apps/<app-id>/
|
|
131
|
+
├── agentsam.app.json
|
|
132
|
+
├── package.json
|
|
133
|
+
├── frontend/ # portable presentation/UI
|
|
134
|
+
├── backend/ # application-owned server/runtime
|
|
135
|
+
├── bin/ # launch/install/dev CLI
|
|
136
|
+
├── scripts/
|
|
137
|
+
├── test/
|
|
138
|
+
└── README.md
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Not every directory is required for every runtime. Directory **meaning** must not change.
|
|
142
|
+
|
|
143
|
+
## Runtime identity loading
|
|
144
|
+
|
|
145
|
+
```js
|
|
146
|
+
import appManifest from "../../agentsam.app.json";
|
|
147
|
+
|
|
148
|
+
export const APP = Object.freeze(appManifest);
|
|
149
|
+
// APP.id === "cad-creator"
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Forbidden:
|
|
153
|
+
|
|
154
|
+
- `const APP = "..."` (string used as product identity)
|
|
155
|
+
- Duplicated app definitions (root manifest + `.agentsam/app.json` both defining the product)
|
|
156
|
+
- Treating Worker name, npm package name, or route slug as `APP.id`
|
|
157
|
+
|
|
158
|
+
## AGENTSAM APPLICATION CONTRACT (rules)
|
|
159
|
+
|
|
160
|
+
APP represents a portable user-facing AgentSam application.
|
|
161
|
+
|
|
162
|
+
Every APP MUST:
|
|
163
|
+
|
|
164
|
+
1. Own exactly one canonical `agentsam.app.json`.
|
|
165
|
+
2. Have one immutable kebab-case `APP.id`.
|
|
166
|
+
3. Load runtime APP identity from that manifest.
|
|
167
|
+
4. Keep package, service, Worker, host, route, and desktop identities separate from `APP.id`.
|
|
168
|
+
5. Use explicit `app_id` / `product_id` / `service_id` / `package_id` relationships rather than aliases.
|
|
169
|
+
6. Follow the standard `frontend` / `backend` / `bin` layout.
|
|
170
|
+
7. Declare capabilities and entrypoints in its manifest.
|
|
171
|
+
8. Be runnable independently.
|
|
172
|
+
9. Be discoverable/composable by an AgentSam host.
|
|
173
|
+
10. Pass `agentsam app validate`.
|
|
174
|
+
|
|
175
|
+
## Resulting composition model
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
npm / install / package
|
|
179
|
+
↓
|
|
180
|
+
AgentSam APP
|
|
181
|
+
↓
|
|
182
|
+
┌────────┼─────────┐
|
|
183
|
+
▼ ▼ ▼
|
|
184
|
+
standalone Local another
|
|
185
|
+
app Studio APP / host
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Goal is **not** one identifier everywhere. Goal is **one canonical identifier per namespace**, with explicit relationships between namespaces.
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# AgentSam Runtime Protocol
|
|
2
|
+
|
|
3
|
+
> Standing law: **`agentsam.runtime.v1` is the portable execution contract. `agentsamd` and ExecOS are supported runtime implementations/adapters; neither is a transport.**
|
|
4
|
+
|
|
5
|
+
## Architectural law
|
|
6
|
+
|
|
7
|
+
**`agentsam.runtime.v1` is the execution authority. `agentsamd` is the stock portable machine daemon for independent installs; ExecOS is a proven managed/platform runtime and dispatcher used by InnerAnimalMedia. Runtime implementations sit behind the same connection/protocol model, and transports stay separate from them.**
|
|
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 / EXECOS Worker** (`env.EXECOS` / `EXECOS_IAM`) | Supported managed/platform runtime + cloud→machine dispatch used by InnerAnimalMedia. Historical rows may use `runtime_adapter=execos_legacy`; that compatibility id does **not** imply a retirement decision. |
|
|
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 or ExecOS | agentsamd or ExecOS | 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
|
+
### ExecOS support status
|
|
45
|
+
|
|
46
|
+
ExecOS is **supported working machinery**, not presumed deprecated. Current InnerAnimalMedia production/runtime paths still use it for governed dispatch, enrolled-device execution, bridge authentication, terminal/session routing, and `user_hosted_tunnel` flows.
|
|
47
|
+
|
|
48
|
+
`execos_legacy` exists because earlier rows encoded `execos` as a transport and needed a compatibility mapping into the newer four-axis model. The word `legacy` in that identifier is migration vocabulary; it is **not** authorization to delete, disable, or silently replace ExecOS.
|
|
49
|
+
|
|
50
|
+
The portability goal is additive:
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
agentsam.runtime.v1
|
|
54
|
+
├── agentsamd stock portable/local runtime
|
|
55
|
+
├── ExecOS supported managed/platform runtime
|
|
56
|
+
├── cloudflare_sandbox sandbox adapter
|
|
57
|
+
└── future adapters
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Where implementations overlap, converge on protocol semantics and acceptance tests. A future deprecation is a separate, evidence-backed product decision.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Runtime Registry (D1 spine — preserve)
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
ACCOUNT
|
|
68
|
+
│
|
|
69
|
+
├── agentsam_api_credentials AAK / BRK
|
|
70
|
+
├── cloud_provider_connections optional provisioning authority (widen providers)
|
|
71
|
+
│
|
|
72
|
+
└── terminal_instances WHAT EXISTS
|
|
73
|
+
├── provider, substrate, provider_product, lifecycle
|
|
74
|
+
├── platform / arch / capabilities_json
|
|
75
|
+
▼
|
|
76
|
+
terminal_connections HOW AGENTSAM TALKS TO IT
|
|
77
|
+
├── protocol = agentsam.runtime.v1
|
|
78
|
+
├── runtime_adapter = agentsamd | execos_legacy (ExecOS compatibility id) | …
|
|
79
|
+
├── transport = direct_https | cloudflare_tunnel | vpc_service | …
|
|
80
|
+
├── auth_mode
|
|
81
|
+
├── terminal_connection_credentials
|
|
82
|
+
├── terminal_enrollment_tokens
|
|
83
|
+
├── terminal_sessions interactive PTY
|
|
84
|
+
├── terminal_jobs noninteractive (runtime_run_id)
|
|
85
|
+
└── terminal_port_forwards
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Do not** introduce parallel `runtime_instances` / `runtime_connections` tables this generation.
|
|
89
|
+
|
|
90
|
+
### Authority ladder (keep)
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
AAK / BRK → enrollment token → connection credential → session attach token
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Rebuild now (bounded)
|
|
97
|
+
|
|
98
|
+
1. **`terminal_instances`** — drop `kind`↔provider CHECK; drop `compute_provider`; add substrate / provider_product / lifecycle / hw_model; normalize arch `x64`→`x86_64`.
|
|
99
|
+
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`).
|
|
100
|
+
3. **`terminal_jobs`** — `execos_run_id` → `runtime_run_id` (all live values null).
|
|
101
|
+
4. **`cloud_provider_connections`** — widen `provider`; remove policy CHECK forcing GCP `provider_connection_id`.
|
|
102
|
+
|
|
103
|
+
### Do not rebuild unless needed
|
|
104
|
+
|
|
105
|
+
`terminal_connection_credentials`, `terminal_enrollment_tokens`, `terminal_sessions` (optionally rename `auth_token_hash`→`attach_token_hash` while empty), `terminal_port_forwards`, `agentsam_api_credentials`.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Installation grades (this sprint)
|
|
110
|
+
|
|
111
|
+
| Grade | What |
|
|
112
|
+
|---|---|
|
|
113
|
+
| **Full daemon** | Go `agentsamd` + enroll + LaunchAgent/systemd |
|
|
114
|
+
| **Native helper** | Rust/Zig privileged helper with daemon |
|
|
115
|
+
| **Provider adapter** | CF Sandbox etc. (`runtime_adapter=cloudflare_sandbox`) |
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
agentsam setup runtime
|
|
119
|
+
# plan → create instance → create connection → mint enrollment → agentsamd enroll
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Protocol surface
|
|
125
|
+
|
|
126
|
+
```text
|
|
127
|
+
identity / capabilities / health
|
|
128
|
+
exec / spawn / signal / terminate
|
|
129
|
+
pty.create|attach|resize|detach
|
|
130
|
+
fs.read|write|list|watch
|
|
131
|
+
ports.list|expose
|
|
132
|
+
system.inspect
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Migration priority
|
|
138
|
+
|
|
139
|
+
1. Freeze vocabulary (this doc + `packages/runtime-protocol`).
|
|
140
|
+
2. Rebuild `terminal_instances` (local_device→host).
|
|
141
|
+
3. Normalize historical `transport=execos` records into **adapter + real transport** fields. Existing `runtime_adapter=execos_legacy` is a compatibility identifier for ExecOS-backed connections, not a support/deprecation state.
|
|
142
|
+
4. Stock independent/local installs may default to `runtime_adapter=agentsamd`; managed/platform installs may continue to use ExecOS. Both remain valid registered runtimes.
|
|
143
|
+
5. `execos_run_id` → protocol-neutral `runtime_run_id` where that column still encodes implementation detail.
|
|
144
|
+
6. Widen `cloud_provider_connections`.
|
|
145
|
+
7. Heartbeats fill `capabilities_json`, `provider_product`, and lifecycle facts from the selected runtime.
|
|
146
|
+
8. `agentsam setup runtime` writes records from GOAP plans without assuming one runtime implementation.
|
|
147
|
+
9. Prove overlapping ExecOS / agentsamd operations against the same `agentsam.runtime.v1` semantics instead of removing one merely because the other exists.
|
|
148
|
+
10. Any future narrowing or retirement of ExecOS requires an explicit product decision, inventory of production callers, proven replacement parity, migration plan, acceptance tests, and approval.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Rejected
|
|
153
|
+
|
|
154
|
+
- Parallel `runtime_*` physical tables beside `terminal_*` this generation
|
|
155
|
+
- `transport = execos` or `container`
|
|
156
|
+
- kind↔provider coupling (VM=Google only, etc.)
|
|
157
|
+
- Soft dual-write forever
|
|
158
|
+
- Casting agentsam-go-worker as the EXECOS/control plane
|
|
159
|
+
- Stock dependence on `load-agent-env.sh`
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Success criteria
|
|
164
|
+
|
|
165
|
+
- User123 can install Studio → `setup runtime` → enroll the stock `agentsamd` runtime (+ native helper where needed) → attach without InnerAnimalMedia infrastructure.
|
|
166
|
+
- Existing InnerAnimalMedia ExecOS connections remain supported and functional while sharing protocol-neutral registry/session concepts.
|
|
167
|
+
- Same protocol semantics can be implemented across Mac / GCP VM / Docker / CF Container; Sandbox remains an adapter.
|
|
168
|
+
- Transport can change without renaming the instance or changing runtime/session semantics.
|
|
169
|
+
- D1 spine stays `terminal_*`; vocabulary remains instance + adapter + transport + auth.
|
|
170
|
+
- The historical string `execos_legacy` is treated as compatibility vocabulary only. **Do not infer support lifecycle from the identifier.**
|
|
171
|
+
- Duplication between ExecOS and agentsamd is resolved by shared contracts/tests and explicit routing, not by deleting proven machinery without parity.
|
|
@@ -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)
|