@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,290 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Local Studio Graduation
|
|
3
|
+
overview: Windows agentsamd; unify auth on iam_agentsam_sdk_web; offline Local Studio + agentsamd; then full IDE npm packages — real Monaco, collapsible file tree, real xterm+agentsamd, LSP language packs, and first-login AgentSam CLI setup tutorial (prompt-by-prompt).
|
|
4
|
+
todos:
|
|
5
|
+
- id: win-schtasks
|
|
6
|
+
content: Windows Scheduled Task install/start/stop for agentsamd in runtime.js
|
|
7
|
+
status: in_progress
|
|
8
|
+
- id: brand-grammar
|
|
9
|
+
content: Icon grammar doc + manifest brand fields + icon drop path
|
|
10
|
+
status: pending
|
|
11
|
+
- id: iam-studio-client
|
|
12
|
+
content: "SSOT: IAM_CLIENT_ID=iam_agentsam_sdk_web for Local Studio + agentsam login/CLI; retire iam_cli_agentsam as CLI authority"
|
|
13
|
+
status: pending
|
|
14
|
+
- id: desktop-pkce
|
|
15
|
+
content: Tauri + CLI PKCE via iam_agentsam_sdk_web (same client); Keychain/session; IAM accepts those tokens for SDK APIs
|
|
16
|
+
status: pending
|
|
17
|
+
- id: unify-cli-oauth
|
|
18
|
+
content: "IAM+SDK: resolveNativeCliClientId / oauth_cli verify → iam_agentsam_sdk_web; docs/env no longer teach iam_cli_agentsam"
|
|
19
|
+
status: pending
|
|
20
|
+
- id: offline-sidecar
|
|
21
|
+
content: Bundled dist shell, agentsamd sidecar supervise, protocol handshake
|
|
22
|
+
status: pending
|
|
23
|
+
- id: ide-packages
|
|
24
|
+
content: "Publishable IDE packages: monaco, file-tree, xterm, lsp-client, onboarding — npm-ready from agentsam-workbench"
|
|
25
|
+
status: pending
|
|
26
|
+
- id: real-monaco-tree
|
|
27
|
+
content: Replace scratch-feeling Files with real Monaco + collapsible tree wired to workspace FS (scratch→filesystem via agentsamd)
|
|
28
|
+
status: pending
|
|
29
|
+
- id: real-xterm-agentsamd
|
|
30
|
+
content: CLI boots real xterm over agentsamd PTY (not virtual-only); AgentSam banner + help
|
|
31
|
+
status: pending
|
|
32
|
+
- id: lsp-full
|
|
33
|
+
content: Full LSP via agentsamd (CORE TS/JS + downloadable Go/Rust/Python packs); Monaco language client
|
|
34
|
+
status: pending
|
|
35
|
+
- id: first-login-tutorial
|
|
36
|
+
content: First-login AgentSam setup tutorial in CLI — one prompt at a time, not a wall of text
|
|
37
|
+
status: pending
|
|
38
|
+
isProject: false
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
# Local Studio Graduation + Windows Runtime
|
|
42
|
+
|
|
43
|
+
> **Non-negotiable contract (2026-09-27):**
|
|
44
|
+
> [`LOCAL-STUDIO-REAL-APP-CONTRACT-ADDENDUM-2026-09-27.md`](./LOCAL-STUDIO-REAL-APP-CONTRACT-ADDENDUM-2026-09-27.md)
|
|
45
|
+
> Real bundled client (no product-critical redirect to hosted Studio); shared UI + RuntimeHost; Tauri vs agentsamd split; mock ≠ done; Content Studio / Media acceptance (Sites → Media, desktop optimize not Nitro-universal). **This addendum wins** over scaffold / “Open Studio UI = cloud” shortcuts in this plan or boot copy.
|
|
46
|
+
|
|
47
|
+
## Preconditions (already done)
|
|
48
|
+
|
|
49
|
+
- IAM runtime registry restore is live: commit `109410f19` on `main`, Worker healthy, D1 `runtime_adapter=execos_legacy` — no further restore work ([Restore IAM runtime registry](09fb7f86-daa8-401e-b546-69734a8cbbfc)).
|
|
50
|
+
|
|
51
|
+
## Codebase facts (from shell explore)
|
|
52
|
+
|
|
53
|
+
Confirmed by [Explore Local Studio desktop](cec9baf0-5068-43ae-9924-20649b248584):
|
|
54
|
+
|
|
55
|
+
- Shell is **remote-URL only**: `build-brand.mjs` sets `app.windows[0].url` to `base_url+launch_path`; `dist/index.html` is a placeholder.
|
|
56
|
+
- **No TypeScript in** `packages/agentsam-desktop-shell` — product UI lives in `apps/local-studio` (wire build → shell `dist/`).
|
|
57
|
+
- Auth in shell today: Keychain + deep-link emit only; **no PKCE/loopback**. Copy CLI pattern from `src/lib/google-desktop-oauth.js` / `createLoopbackCallbackListener` in `auth.js`.
|
|
58
|
+
- **No** `externalBin` / agentsamd supervision; `local_node.rs` is terminal enroll only.
|
|
59
|
+
- `icon_mark_svg` is on the manifest but **`build-brand.mjs` never reads it** — only PNG/`AGENTSAM_ICON_URL`; `icons/local-studio/` has SVG, no `icon.png`.
|
|
60
|
+
|
|
61
|
+
## Scope for this implementation pass
|
|
62
|
+
|
|
63
|
+
Ship **Phases 1–5 in full** (Phase 5 is a real IDE product cut, not stubs). Auth SSOT + Windows + offline shell remain prerequisites so Monaco/xterm/LSP have a machine runtime.
|
|
64
|
+
|
|
65
|
+
### Auth SSOT (mandatory — prior plan was wrong)
|
|
66
|
+
|
|
67
|
+
**One product OAuth client for AgentSam Studio + CLI:**
|
|
68
|
+
|
|
69
|
+
| Surface | Client |
|
|
70
|
+
|---|---|
|
|
71
|
+
| Local Studio Worker (production) | `IAM_CLIENT_ID=iam_agentsam_sdk_web` |
|
|
72
|
+
| Local Studio desktop app | same — `iam_agentsam_sdk_web` |
|
|
73
|
+
| `agentsam login` / SDK CLI OAuth | same — `iam_agentsam_sdk_web` |
|
|
74
|
+
|
|
75
|
+
`iam_cli_agentsam` is **not** on production Workers and is **not** the login client. Treat it as a mistaken parallel “native CLI” lane. Plan work removes it as the authority for CLI tokens.
|
|
76
|
+
|
|
77
|
+
**Required code/doc changes:**
|
|
78
|
+
|
|
79
|
+
1. **IAM** ([`agentsam-account-credentials.js`](/Users/samprimeaux/inneranimalmedia/backend/auth/agentsam-account-credentials.js)): `resolveNativeCliClientId` / `DEFAULT_NATIVE_CLI_CLIENT_ID` must resolve to **`iam_agentsam_sdk_web`** (or accept tokens whose `oauth_clients.client_id` is that production client). Stop requiring `iam_cli_agentsam` for `oauth_cli` / SDK API auth.
|
|
80
|
+
2. **SDK** [`src/lib/auth.js`](/Users/samprimeaux/agentsam-sdk/src/lib/auth.js): `agentsam login` must use `iam_agentsam_sdk_web` (env from vault / documented default aligned with Local Studio Worker — not inventing `iam_cli_agentsam`). Loopback redirects allowed on that client (or Worker-mediated exchange keeping secret on Worker).
|
|
81
|
+
3. **Docs/contracts** that say “native CLI = `iam_cli_agentsam`” (`sdk-auth-contract-consumer.md`, CATALOG, etc.) rewritten to **`iam_agentsam_sdk_web` = Studio + CLI login**.
|
|
82
|
+
4. Deprecate / do-not-teach `AGENTSAM_NATIVE_OAUTH_CLIENT_ID=iam_cli_agentsam` for new installs.
|
|
83
|
+
|
|
84
|
+
Identity = Sign in with AgentSam (providers on IAM/Studio server). Connect GitHub/Drive = separate later. No second “CLI-only” OAuth app for Studio/CLI.
|
|
85
|
+
|
|
86
|
+
```mermaid
|
|
87
|
+
flowchart LR
|
|
88
|
+
CLI[agentsam_login]
|
|
89
|
+
Desktop[LocalStudio_app]
|
|
90
|
+
Worker[LocalStudio_Worker]
|
|
91
|
+
IAM[IAM_AS]
|
|
92
|
+
CLI -->|IAM_CLIENT_ID| WebClient[iam_agentsam_sdk_web]
|
|
93
|
+
Desktop -->|same_client| WebClient
|
|
94
|
+
Worker -->|IAM_CLIENT_ID_var| WebClient
|
|
95
|
+
WebClient --> IAM
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
```mermaid
|
|
99
|
+
flowchart TB
|
|
100
|
+
subgraph app [LocalStudio_app]
|
|
101
|
+
Tauri[Rust_Tauri]
|
|
102
|
+
UI[Bundled_TS_UI]
|
|
103
|
+
Sidecar[agentsamd_sidecar]
|
|
104
|
+
Tauri --> UI
|
|
105
|
+
Tauri -->|supervise_handshake| Sidecar
|
|
106
|
+
end
|
|
107
|
+
subgraph auth [Sign_in]
|
|
108
|
+
UI -->|PKCE_open_system_browser| IAMAuth[IAM_oauth_authorize]
|
|
109
|
+
IAMAuth --> Providers[Google_GitHub_email]
|
|
110
|
+
Providers --> Loopback[loopback_callback]
|
|
111
|
+
Loopback --> Keychain[Keychain_refresh]
|
|
112
|
+
end
|
|
113
|
+
Sidecar -->|optional_network| Cloud[AgentSam_Cloud]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Phase 1 — Windows agentsamd install (parity with LaunchAgent)
|
|
119
|
+
|
|
120
|
+
**Today:** [`agentsam-sdk/src/commands/runtime.js`](/Users/samprimeaux/agentsam-sdk/src/commands/runtime.js) builds `agentsamd.exe` on win32 but `writeLaunchAgent` returns `null` on non-Darwin; install never registers persistence.
|
|
121
|
+
|
|
122
|
+
**Implement:**
|
|
123
|
+
- `writeWindowsScheduledTask(home, binary)` — write XML task under `%USERPROFILE%\.agentsam\runtime\` and register via `schtasks /Create /TN "InnerAnimalMedia\\agentsamd" /XML ... /F` (user-level, InteractiveToken, Run at logon + restart on failure).
|
|
124
|
+
- Mirror Darwin logs → `~/.agentsam/runtime/logs/`.
|
|
125
|
+
- `runtime stop` / `start` on Windows: stop/start the Scheduled Task (+ pid fallback); unload LaunchAgent on Darwin when present.
|
|
126
|
+
- Help text: LaunchAgent (Mac) / Scheduled Task (Windows).
|
|
127
|
+
- Linux: spawn+pid only this cut; document clearly.
|
|
128
|
+
- Dry-run / fixture test for XML generation (no live `schtasks` in CI).
|
|
129
|
+
|
|
130
|
+
**Verify:** `node --check` on runtime.js; manual Windows QA: `agentsam runtime install --yes` → health on `127.0.0.1:18765`.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Phase 2 — AgentSam family brand / icon grammar
|
|
135
|
+
|
|
136
|
+
**Today:** [`manifests/local-studio.json`](/Users/samprimeaux/agentsam-sdk/packages/agentsam-desktop-shell/manifests/local-studio.json) + [`icons/local-studio/AgentSam-Mark.svg`](/Users/samprimeaux/agentsam-sdk/packages/agentsam-desktop-shell/icons/local-studio/) + [`scripts/build-brand.mjs`](/Users/samprimeaux/agentsam-sdk/packages/agentsam-desktop-shell/scripts/build-brand.mjs). No 1024 `icon.png` yet.
|
|
137
|
+
|
|
138
|
+
**Implement:**
|
|
139
|
+
- `docs/brand/AGENT_SAM_ICON_GRAMMAR.md` — graphite base, spectral blue→violet accent, one dominant shape, no text in icons; product variations (Local Studio = master + portal; CAD = plane/cube; Ecommerce = modular card).
|
|
140
|
+
- Extend manifest schema: `brand_family`, `product_mark_variant`, icon grammar refs.
|
|
141
|
+
- **Fix `build-brand.mjs`:** honor `icon_mark_svg` (rasterize → `icon.png` via sharp/resvg or `tauri icon`) when `icon.png` missing; keep `AGENTSAM_ICON_URL` / `icon_set/icon.png` precedence.
|
|
142
|
+
- Icon drop path: `icons/<app_id>/icon.png` (1024) → `src-tauri/icons/`.
|
|
143
|
+
- Scaffold semantic `<Icon name="workspace|terminal|activity|repository|warning" />` in **`apps/local-studio` frontend** (not the shell package) — one glyph family.
|
|
144
|
+
- Motion: static = quiet architectural; runtime = Computational Hyperspace tokens only this cut.
|
|
145
|
+
|
|
146
|
+
**You supply** official 1024 PNGs/SVGs into `icons/local-studio/`; pipeline wires them.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Phase 3 — Unified Studio + CLI auth on `iam_agentsam_sdk_web`
|
|
151
|
+
|
|
152
|
+
**Goal:** One client id everywhere production already has it. CLI login and Local Studio are the same AgentSam product identity.
|
|
153
|
+
|
|
154
|
+
**IAM (`inneranimalmedia`):**
|
|
155
|
+
- Change `DEFAULT_NATIVE_CLI_CLIENT_ID` / token verify path so SDK/CLI OAuth access tokens for **`iam_agentsam_sdk_web`** are accepted (today’s hard filter on `iam_cli_agentsam` is wrong for production).
|
|
156
|
+
- Ensure `iam_agentsam_sdk_web` redirect allowlist includes: Local Studio HTTPS callbacks + CLI/desktop loopback `http://127.0.0.1:*/callback` (and/or Worker-mediated code exchange so confidential secret never ships in CLI/`.app`).
|
|
157
|
+
- Stop documenting `iam_cli_agentsam` as the CLI login client; mark migration row legacy / unused for new auth.
|
|
158
|
+
|
|
159
|
+
**SDK CLI (`agentsam login`):**
|
|
160
|
+
- Resolve client as **`iam_agentsam_sdk_web`** (shell vault / same as Local Studio Production). Update error copy that mentions both ids so it does not push a phantom CLI client.
|
|
161
|
+
- Session saved locally still powers `whoami`, API key minting, SDK control-plane — but tokens must verify under `iam_agentsam_sdk_web`.
|
|
162
|
+
|
|
163
|
+
**Desktop shell:**
|
|
164
|
+
- PKCE loopback (or Worker exchange) as Sign in to AgentSam using the **same** client; refresh → Keychain; no provider buttons in the shell.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Phase 4 — Offline-first shell + agentsamd sidecar
|
|
169
|
+
|
|
170
|
+
**Stop** sole boot via remote URL in [`tauri.conf.json`](/Users/samprimeaux/agentsam-sdk/packages/agentsam-desktop-shell/src-tauri/tauri.conf.json).
|
|
171
|
+
|
|
172
|
+
**Implement:**
|
|
173
|
+
- `package.json` pre-tauri step: build `apps/local-studio` frontend → copy into `packages/agentsam-desktop-shell/dist/` (replace placeholder).
|
|
174
|
+
- `build-brand.mjs`: `feature_flags.offline_shell === true` → omit remote `url` / load `/` from `frontendDist`, not HTTPS `launchUrl`. Hosted `/agentsam` = cloud sync enhancement only.
|
|
175
|
+
- New `src-tauri/src/commands/agentsamd.rs` (+ `main.rs` / `mod.rs`): probe `127.0.0.1:18765` → spawn if down → handshake `{ ui_protocol, daemon_protocol, daemon_version, capabilities }`.
|
|
176
|
+
- `build-brand.mjs` + manifest: `bundle.externalBin` for platform `agentsamd` when `feature_flags.agentsamd_sidecar` is true.
|
|
177
|
+
- Offline copy: “Offline — Local machine ready / Cloud unavailable”. Unauthenticated: “Use Local Studio locally”. Expired token offline ≠ kill local IDE.
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Phase 5 — Full IDE product (Monaco + file tree + xterm + LSP + first-login tutorial)
|
|
182
|
+
|
|
183
|
+
**Reject “stubbed only.”** Scratch Files/CLI in production Studio must become a **real, packageable IDE** that ships as SDK npm packages and plugs into Local Studio / desktop without rewriting the Work surface each time.
|
|
184
|
+
|
|
185
|
+
### Today (honest baseline)
|
|
186
|
+
|
|
187
|
+
| Piece | Status |
|
|
188
|
+
|---|---|
|
|
189
|
+
| Monaco | Already used via `@monaco-editor/react` in [`monaco-pane.tsx`](/Users/samprimeaux/agentsam-sdk/apps/local-studio/frontend/src/components/workbench/monaco-pane.tsx) — syntax/theme only, **no LSP** |
|
|
190
|
+
| File tree | [`files.tsx`](/Users/samprimeaux/agentsam-sdk/apps/local-studio/frontend/src/components/workbench/files.tsx) has dir toggle/`openDirs` over **virtual scratch artifacts**, not host FS |
|
|
191
|
+
| xterm | Real `@xterm/xterm` in [`terminal.tsx`](/Users/samprimeaux/agentsam-sdk/apps/local-studio/frontend/src/components/workbench/terminal.tsx) + [`terminal-runtime.ts`](/Users/samprimeaux/agentsam-sdk/apps/local-studio/frontend/src/lib/work/terminal-runtime.ts) — primarily **browser virtual shell**; filesystem/PTY path partial |
|
|
192
|
+
| README claim | “Files open in Monaco / CLI is real xterm” — UI exists; **machine truth + LSP + guided setup** do not |
|
|
193
|
+
|
|
194
|
+
### 5A — npm package layout (rapidly deployable SDK)
|
|
195
|
+
|
|
196
|
+
Extract / harden under `packages/` (publishable, versioned; Local Studio imports them):
|
|
197
|
+
|
|
198
|
+
| Package | Responsibility |
|
|
199
|
+
|---|---|
|
|
200
|
+
| `@inneranimalmedia/agentsam-ide-monaco` | Monaco host, theme bridge, document model, format actions |
|
|
201
|
+
| `@inneranimalmedia/agentsam-ide-filetree` | Collapsible tree, multi-root, keyboard nav, drag-ready API |
|
|
202
|
+
| `@inneranimalmedia/agentsam-ide-terminal` | xterm + fit + session attach API (virtual **or** agentsamd PTY) |
|
|
203
|
+
| `@inneranimalmedia/agentsam-ide-lsp` | Monaco language client ↔ agentsamd language multiplex protocol |
|
|
204
|
+
| `@inneranimalmedia/agentsam-ide-onboarding` | First-login CLI tutorial scripts (step machine, not a wall of text) |
|
|
205
|
+
| `@inneranimalmedia/agentsam-ide` | Meta package re-exporting the above for one-line Studio install |
|
|
206
|
+
|
|
207
|
+
Each package: `package.json` exports, typed public API, vitest/node tests, README with “drop into any AgentSam surface.” Prefer evolving [`agentsam-workbench`](/Users/samprimeaux/agentsam-sdk/packages/agentsam-workbench) into these exports rather than a third parallel UI stack.
|
|
208
|
+
|
|
209
|
+
### 5B — Real Files (Monaco + collapsible tree)
|
|
210
|
+
|
|
211
|
+
- Tree: **collapsible by default** (dirs closed until opened); persist expand state per workspace; chevron + folder semantics kept; support collapse-all / expand-to-selection.
|
|
212
|
+
- Open file → Monaco always (never a plain `<pre>` scratch viewer).
|
|
213
|
+
- Dual workspace modes (existing types): `scratch` (virtual, still Monaco) and `filesystem` (agentsamd path authority). Default first-run after setup: **filesystem** when agentsamd ready.
|
|
214
|
+
- Same `workspace_id` / root / URI / content hash for tree, Monaco, terminal, LSP.
|
|
215
|
+
|
|
216
|
+
### 5C — Real CLI (xterm + agentsamd)
|
|
217
|
+
|
|
218
|
+
- Boot xterm with AgentSam identity banner (version, protocol, `adapter=agentsamd` when live).
|
|
219
|
+
- Prefer **agentsamd PTY** when daemon healthy; degrade to virtual shell only with explicit “Scratch (virtual)” label (current screenshot state becomes fallback, not the happy path).
|
|
220
|
+
- Built-in commands: `help`, `agentsam setup` (enters tutorial), `login`, `status`, `workspace`, language-pack helpers.
|
|
221
|
+
- Wire to same enroll/handshake as desktop sidecar.
|
|
222
|
+
|
|
223
|
+
### 5D — Full LSP (not stubs)
|
|
224
|
+
|
|
225
|
+
```mermaid
|
|
226
|
+
flowchart LR
|
|
227
|
+
Monaco[Monaco]
|
|
228
|
+
LspClient[agentsam_ide_lsp]
|
|
229
|
+
Daemon[agentsamd]
|
|
230
|
+
LS[language_servers]
|
|
231
|
+
Monaco --> LspClient
|
|
232
|
+
LspClient -->|workspace.v1_language| Daemon
|
|
233
|
+
Daemon -->|stdio_JSON_RPC| LS
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
- **CORE (always in IDE package / agentsamd):** TypeScript/JavaScript, JSON, HTML, CSS — ship with product.
|
|
237
|
+
- **Language packs (download once, cache offline):** Go/`gopls`, Rust/`rust-analyzer`, Python/Pyright; capability keys `language.typescript|go|rust|python`.
|
|
238
|
+
- agentsamd: detect languages → start servers → multiplex → WebSocket/local transport → Monaco.
|
|
239
|
+
- Crash → ErrorEnvelope → RecoveryPlan → restart → Activity: “Go language service recovered.”
|
|
240
|
+
- Monaco never owns process supervision.
|
|
241
|
+
|
|
242
|
+
### 5E — First-login AgentSam setup tutorial (prompt-by-prompt)
|
|
243
|
+
|
|
244
|
+
On first successful login (or empty machine profile), opening CLI runs **`agentsam-ide-onboarding`** — **one question / one action at a time**, wait for user reply, then next step. Never dump full setup docs.
|
|
245
|
+
|
|
246
|
+
Suggested step sequence (each is its own prompt + validation):
|
|
247
|
+
|
|
248
|
+
1. Welcome + “Press Enter to set up Local Studio”
|
|
249
|
+
2. Confirm display name / account (from `iam_agentsam_sdk_web` session)
|
|
250
|
+
3. Choose workspace location (folder picker / default `~/AgentSam`)
|
|
251
|
+
4. Install/verify **agentsamd** (`agentsam runtime install` or sidecar already running)
|
|
252
|
+
5. Health check (`/health` handshake) — retry help if fail
|
|
253
|
+
6. Optional: install language packs (TS core already there; offer Go/Rust/Python one-by-one)
|
|
254
|
+
7. Optional: connect GitHub as **capability** (separate from identity) — skip allowed
|
|
255
|
+
8. “You’re ready — try `ls` or open a file” + mark onboarding complete in local durable state
|
|
256
|
+
|
|
257
|
+
Persist `~/.agentsam/runtime/onboarding.json` (`completed_at`, `steps[]`). Re-run via `agentsam setup` / CLI `setup`. Work composer can mirror the same step machine as chat prompts if CLI tab closed.
|
|
258
|
+
|
|
259
|
+
### Phase 5 acceptance criteria
|
|
260
|
+
|
|
261
|
+
- Files tab: collapsible tree + Monaco edit/save on real or scratch workspace; no “fake viewer.”
|
|
262
|
+
- CLI tab: xterm; agentsamd PTY when available; labeled fallback only when offline/daemon down.
|
|
263
|
+
- Completions/diagnostics for CORE languages offline; pack languages after one download.
|
|
264
|
+
- New user: tutorial advances **one prompt at a time** until complete.
|
|
265
|
+
- `npm pack` / publish path documented for `@inneranimalmedia/agentsam-ide*`.
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Out of scope this pass
|
|
270
|
+
|
|
271
|
+
- Apple notarization / Developer ID (document as follow-up for Login Items trust)
|
|
272
|
+
- GitHub App fine-grained repo grants / Google Drive connect (hooks only in onboarding skip)
|
|
273
|
+
- Linux systemd user unit
|
|
274
|
+
- CAD/Ecommerce final icon art beyond grammar + manifest fields
|
|
275
|
+
- Full Merkle/AST browser UI polish beyond LSP diagnostics
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Desktop bundle (agentsam-sdk only)
|
|
280
|
+
|
|
281
|
+
`offline_shell` + `agentsamd_sidecar` are **true** on Local Studio. The installed `.app` must load the **built `apps/local-studio` frontend** copied into `packages/agentsam-desktop-shell/dist/` via `npm run sync:local-studio` — not a permanent thin placeholder, and not a live navigate-only wrapper to inneranimalmedia.com.
|
|
282
|
+
|
|
283
|
+
inneranimalmedia remains the IAM/OAuth Worker host; Local Studio product + desktop + agentsamd live in **agentsam-sdk**.
|
|
284
|
+
|
|
285
|
+
## Delivery order (remaining)
|
|
286
|
+
|
|
287
|
+
1. Wire every desktop release through `sync:local-studio` (full app in `dist/`)
|
|
288
|
+
2. Complete PKCE loopback in Tauri
|
|
289
|
+
3. agentsamd PTY as default CLI + LSP language packs
|
|
290
|
+
4. Commit/push agentsam-sdk only for product work; IAM only when OAuth verify/redirects change
|