@inneranimalmedia/agentsam-sdk 2.6.5 → 2.6.8
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 +29 -0
- package/README.md +37 -0
- 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 +12 -7
- package/apps/client-cms-editor/README.md +76 -48
- package/apps/client-cms-editor/agentsam.app.json +26 -9
- package/apps/client-cms-editor/backend/package.json +20 -3
- package/apps/client-cms-editor/backend/src/api/client.ts +134 -101
- package/apps/client-cms-editor/backend/src/index.ts +1 -1
- package/apps/client-cms-editor/backend/src/model.ts +11 -115
- package/apps/client-cms-editor/backend/src/preview/bridge.ts +1 -1
- package/apps/client-cms-editor/backend/tsconfig.json +6 -1
- package/apps/client-cms-editor/bin/agentsam-cms.js +262 -0
- package/apps/client-cms-editor/bin/agentsam-cms.mjs +2 -228
- package/apps/client-cms-editor/frontend/package.json +16 -7
- package/apps/client-cms-editor/frontend/src/AgentSamDrawer.tsx +9 -41
- package/apps/client-cms-editor/frontend/src/CmsAgentSurface.tsx +19 -174
- 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/{CmsEditor.tsx → editor/legacy/CmsEditorPrototype.tsx} +52 -23
- package/apps/client-cms-editor/frontend/src/editor/useCmsEditorController.ts +218 -0
- package/apps/client-cms-editor/frontend/src/index.ts +19 -5
- package/apps/client-cms-editor/frontend/src/lib/agent-host.ts +24 -0
- package/apps/client-cms-editor/frontend/src/main.tsx +82 -8
- package/apps/client-cms-editor/frontend/src/mount.tsx +92 -30
- package/apps/client-cms-editor/frontend/src/styles/agentsam-drawer.css +1 -1
- package/apps/client-cms-editor/frontend/src/styles/cmsShell.css +8 -8
- package/apps/client-cms-editor/frontend/src/styles/studio.css +55 -3
- package/apps/client-cms-editor/frontend/tsconfig.json +12 -1
- package/apps/client-cms-editor/frontend/vite.config.ts +12 -0
- package/apps/client-cms-editor/package-lock.json +973 -134
- package/apps/client-cms-editor/package.json +118 -6
- 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 +17 -7
- package/apps/client-cms-editor/shared/cms/src/adapter.ts +204 -0
- package/apps/client-cms-editor/shared/cms/src/agent-context.ts +7 -5
- package/apps/client-cms-editor/shared/cms/src/editor-types.ts +32 -0
- package/apps/client-cms-editor/shared/cms/src/host.ts +82 -0
- package/apps/client-cms-editor/shared/cms/src/index.ts +4 -0
- package/apps/client-cms-editor/shared/cms/src/map.ts +115 -0
- package/apps/client-cms-editor/shared/cms/src/starter-pack.ts +158 -0
- package/contracts/source-types.v1.json +353 -0
- package/docs/CMS_CONTEXTUAL_COMPOSER.md +1 -1
- package/docs/PRODUCT_LIFECYCLE.md +566 -0
- package/docs/REPO_FILE_MAP.txt +132 -0
- package/docs/THEME_REFINERY.md +2 -2
- package/docs/architecture/AGENTSAM_RUNTIME_PROTOCOL.md +40 -20
- package/docs/content-studio/REVISION_GATE_2026-09-27.md +1 -1
- package/docs/plans/LOCAL_STUDIO_DESKTOP_RELEASE_2026-09-29.md +150 -0
- package/migrations/d1/0017_identity_native_oauth.sql +21 -0
- package/migrations/d1/0018_goap_control_plane_remaster.sql +40 -0
- package/migrations/d1/0019_agentsam_agent_run_plan_todo.sql +14 -0
- package/migrations/d1/README_PORTABLE_CONTROL_PLANE.md +20 -9
- package/migrations/runtime/0002_goap_blackboard_v1.sql +15 -0
- package/migrations/runtime/0004_agent_run_plan_linkage.sql +8 -0
- package/native/agentsam-machine/Cargo.lock +426 -0
- package/native/agentsam-machine/Cargo.toml +9 -0
- package/native/agentsam-machine/cli/Cargo.toml +21 -0
- package/native/agentsam-machine/cli/README.md +21 -0
- package/native/agentsam-machine/cli/src/main.rs +77 -0
- package/native/agentsam-machine/core/Cargo.toml +22 -0
- package/native/agentsam-machine/core/README.md +14 -0
- package/native/agentsam-machine/core/build.rs +33 -0
- package/native/agentsam-machine/core/contracts/source-types.v1.json +353 -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 +1092 -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 +64 -24
- package/packages/agentsam-brand/README.md +1 -1
- package/packages/agentsam-brand/package.json +4 -4
- package/packages/agentsam-brand/src/index.js +1 -1
- package/packages/agentsam-contracts/package.json +13 -3
- package/packages/agentsam-contracts/src/tools.ts +22 -0
- package/packages/agentsam-errors/package.json +13 -3
- package/packages/agentsam-errors/src/index.js +1 -0
- package/packages/agentsam-errors/src/tool.js +56 -0
- package/packages/agentsam-errors/test/tool.test.mjs +58 -0
- package/packages/agentsam-goap/README.md +52 -0
- package/packages/agentsam-goap/package.json +37 -0
- package/packages/agentsam-goap/src/adapters/d1-sqlite.js +570 -0
- package/packages/agentsam-goap/src/adapters/memory.js +199 -0
- package/packages/agentsam-goap/src/contracts.js +226 -0
- package/packages/agentsam-goap/src/control-plane.js +112 -0
- package/packages/agentsam-goap/src/errors.js +157 -0
- package/packages/agentsam-goap/src/index.js +5 -0
- package/packages/agentsam-goap/src/world.js +202 -0
- package/packages/agentsam-goap/test/goap-control-plane.test.mjs +245 -0
- package/packages/agentsam-goap/test/world.test.mjs +79 -0
- package/packages/agentsam-knowledge/package.json +18 -4
- package/packages/agentsam-knowledge/src/autorag/index.js +10 -3
- package/packages/agentsam-knowledge/src/backends/index.js +33 -1
- package/packages/agentsam-knowledge/test/autorag.test.mjs +60 -1
- package/packages/agentsam-nav/dist/browser.global.js +21 -18
- package/packages/agentsam-nav/dist/browser.js +6807 -130
- package/packages/agentsam-nav/dist/index.js +6799 -122
- package/packages/agentsam-nav/package.json +24 -6
- package/packages/agentsam-queue-control/README.md +1 -1
- package/packages/agentsam-queue-control/package.json +7 -2
- package/packages/agentsam-rapid-rust/src/main.rs +1 -1
- package/packages/agentsam-repository/package.json +13 -3
- package/packages/agentsam-repository/src/goap.js +13 -14
- package/packages/agentsam-repository/src/source-types.js +8 -0
- package/packages/agentsam-repository/src/tickets.js +15 -22
- package/packages/agentsam-repository/test/goap-tickets-workspace-state.test.mjs +19 -8
- package/packages/agentsam-vault/package.json +14 -4
- package/packages/agentsam-workbench/package.json +15 -4
- package/packages/agentsam-workbench/src/agent/ToolPermissionRequest.tsx +94 -0
- package/packages/agentsam-workbench/src/agent/index.ts +2 -0
- package/packages/agentsam-workbench/src/agent/tool-permission.css +134 -0
- package/packages/connectors/cloudflare/package.json +15 -3
- package/packages/connectors/cloudflare/src/api-client.js +3 -2
- package/packages/connectors/cloudflare/src/families/vectorize.js +127 -0
- package/packages/connectors/cloudflare/src/index.js +1 -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 +27 -7
- package/packages/identity/README.md +2 -2
- package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +18 -15
- package/packages/identity/migrations/apply-portable.js +109 -0
- package/packages/identity/migrations/sqlite/004_identity_oauth_consent_catalog.sql +1 -1
- package/packages/identity/migrations/sqlite/005_identity_company_native.sql +52 -0
- package/packages/identity/package.json +27 -6
- package/packages/identity/schema/agentsam.identity/manifest.json +101 -0
- package/packages/identity/scripts/local-identity-bridge.mjs +13 -7
- package/packages/identity/scripts/preview-auth-portal.mjs +6 -6
- package/packages/identity/src/adapters/cloudflare-d1/index.js +8 -401
- 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 -312
- package/packages/identity/src/contracts/auth-config.js +0 -1
- package/packages/identity/src/contracts/identity-store.js +56 -5
- package/packages/identity/src/contracts/provider.js +1 -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/pages/login.html +6 -6
- package/packages/identity/src/frontend/auth-portal/pages/reset.html +5 -5
- package/packages/identity/src/frontend/auth-portal/pages/signup.html +5 -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 +6 -37
- package/packages/identity/src/index.js +28 -1
- package/packages/identity/src/migrations/README.md +23 -23
- package/packages/identity/src/oauth/README.md +1 -1
- package/packages/identity/src/oauth/credentials.js +10 -11
- package/packages/identity/src/oauth/google-desktop-exchange.js +195 -27
- 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/github/oauth.js +1 -2
- package/packages/identity/src/providers/github/profile.js +16 -2
- package/packages/identity/src/providers/index.js +11 -3
- package/packages/identity/src/server/identity-service.js +2 -1
- package/packages/identity/src/server/worker-router.js +71 -18
- 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 +15 -4
- 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/oauth-credentials.test.mjs +4 -4
- package/packages/identity/tests/preview-auth-portal.test.mjs +4 -2
- 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/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 +1 -1
- package/packages/theme-scenes/package.json +4 -3
- package/packages/theme-scenes/src/registry.js +187 -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/protocol/FILEMETA_V1.md +2 -2
- 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/theme-refinery/lineage-registry.json +105 -0
- package/protocol/theme-refinery/product-metadata.schema.json +21 -1
- package/python/agentsam_sdk/repository/intelligence/discovery.py +27 -2
- package/python/agentsam_sdk/repository/intelligence/git.py +4 -0
- package/python/tests/test_repository_intelligence.py +30 -0
- package/src/cli/command-catalog.js +48 -5
- package/src/cli/dispatch.js +1 -0
- package/src/cli.js +20 -1
- package/src/cloudflare/runtime-status.js +2 -1
- package/src/commands/autorag.js +67 -13
- package/src/commands/cheat-sheet.js +29 -4
- package/src/commands/codebaseindex.js +45 -2
- package/src/commands/goap-world.js +134 -0
- package/src/commands/goap.js +11 -4
- package/src/commands/knowledge.js +59 -2
- package/src/commands/machine-binary.js +109 -0
- package/src/commands/machine-runtime.js +266 -0
- package/src/commands/machine.js +208 -0
- package/src/commands/package.js +530 -0
- package/src/commands/plan-ledger.js +370 -0
- package/src/commands/plan.js +183 -0
- package/src/commands/security.js +67 -4
- package/src/commands/setup.js +33 -16
- package/src/commands/skill.js +78 -17
- package/src/commands/status.js +8 -1
- package/src/features/resolve.js +1 -0
- package/src/knowledge/engine.js +21 -2
- package/src/knowledge/runtime-discovery.js +127 -0
- package/src/knowledge/source.js +1 -1
- package/src/lib/identity-scaffold.js +53 -13
- package/src/lib/setup/recipes.js +1 -1
- package/src/lib/slash-commands.js +1 -1
- package/src/local/runtime-store.js +24 -2
- package/src/local/sqlite.js +17 -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/sam/operations/package-audit.js +41 -0
- package/src/sam/seed.js +2 -0
- package/src/security/logs.js +3 -0
- package/src/ui/cli/help.js +41 -0
- package/apps/client-cms-editor/backend/src/demo-bootstrap.ts +0 -145
- package/test/account-session.test.mjs +0 -101
- package/test/agent-capabilities.test.mjs +0 -67
- package/test/app-authority-context.test.mjs +0 -32
- package/test/app-building-skills.test.mjs +0 -61
- package/test/apps-scaffold-contract.test.mjs +0 -114
- package/test/blender-cad.test.mjs +0 -146
- package/test/cad-docker.test.mjs +0 -96
- package/test/capabilities.test.mjs +0 -133
- package/test/cli/api-key-env-whoami.test.mjs +0 -129
- package/test/cli/codebaseindex-plan-ux.test.mjs +0 -37
- package/test/cli/eval-live.test.mjs +0 -219
- package/test/cli/go.test.mjs +0 -128
- package/test/cli/local-vault-and-provider-setup.test.mjs +0 -268
- package/test/cli/mcp-client.test.mjs +0 -256
- package/test/cli/preferences-runtime.test.mjs +0 -11
- package/test/cli/runtime-persist.test.mjs +0 -56
- package/test/cli/runtime-ui.test.mjs +0 -141
- package/test/cli/rust-command.test.mjs +0 -21
- package/test/cli/skill-npm-and-env.test.mjs +0 -52
- package/test/cli/status-actions.test.mjs +0 -88
- package/test/cli/wireframes-go-registry.test.mjs +0 -139
- package/test/cli-preferences.test.mjs +0 -46
- package/test/cloudflare-connector.test.mjs +0 -93
- package/test/cloudflare-runtime.test.mjs +0 -82
- package/test/context.test.mjs +0 -159
- package/test/credentials-audit.test.mjs +0 -113
- package/test/deploy-health-scan.test.mjs +0 -95
- package/test/deploy-receipt.test.mjs +0 -91
- package/test/dockerize.test.mjs +0 -93
- package/test/error-diagnostics.test.mjs +0 -124
- package/test/eval-context.test.mjs +0 -37
- package/test/execution-approvals.test.mjs +0 -27
- package/test/fixtures/cad/courtyard-house.json +0 -208
- package/test/fixtures/knowledge-rpc-worker.mjs +0 -16
- package/test/gcloud-auth.test.mjs +0 -111
- package/test/go/build-source-identity.test.mjs +0 -31
- package/test/go/cloudflare-probe.test.mjs +0 -317
- package/test/go/distribution.test.mjs +0 -28
- package/test/google-cloud-connection.test.mjs +0 -83
- package/test/google-cloud-inventory.test.mjs +0 -64
- package/test/indexing-provider.test.mjs +0 -29
- package/test/init-options.test.mjs +0 -35
- package/test/integration/ai-access-onboarding.test.mjs +0 -47
- package/test/integration/app-command.test.mjs +0 -85
- package/test/integration/cad-discovery.test.mjs +0 -158
- package/test/integration/cad-docker-executor.test.mjs +0 -249
- package/test/integration/cad-execution.test.mjs +0 -184
- package/test/integration/cad-project-app.test.mjs +0 -31
- package/test/integration/cad-project-d1.test.mjs +0 -25
- package/test/integration/cad-project-native.test.mjs +0 -24
- package/test/integration/cad-project-workflow.test.mjs +0 -9
- package/test/integration/cad-project.test.mjs +0 -85
- package/test/integration/cli-help.test.mjs +0 -41
- package/test/integration/cms-app-scaffold.test.mjs +0 -71
- package/test/integration/cms-site-tenancy-contract.test.mjs +0 -257
- package/test/integration/codebaseindex-ingest.test.mjs +0 -214
- package/test/integration/core-client.integration.test.mjs +0 -55
- package/test/integration/error-runtime-rpc.test.mjs +0 -71
- package/test/integration/features-resolve.test.mjs +0 -147
- package/test/integration/icon-registry.test.mjs +0 -67
- package/test/integration/ingest-discover-models.test.mjs +0 -30
- package/test/integration/inspect-path-cli.test.mjs +0 -46
- package/test/integration/install-script.test.mjs +0 -110
- package/test/integration/inventory-core.test.mjs +0 -53
- package/test/integration/inventory-evidence.test.mjs +0 -125
- package/test/integration/knowledge-rpc.test.mjs +0 -112
- package/test/integration/local-fs.test.mjs +0 -113
- package/test/integration/merkle-cli.test.mjs +0 -61
- package/test/integration/merkle-persistence-identity.test.mjs +0 -48
- package/test/integration/plugins-cloudflare.integration.test.mjs +0 -28
- package/test/integration/provider-env-cli.test.mjs +0 -50
- package/test/integration/provider-factory.test.mjs +0 -197
- package/test/integration/repository-company-graph.test.mjs +0 -90
- package/test/integration/runtime-migrations.test.mjs +0 -87
- package/test/integration/runtime-status.integration.test.mjs +0 -212
- package/test/integration/sam-activity-recovery.test.mjs +0 -147
- package/test/integration/sam-decision.test.mjs +0 -584
- package/test/integration/sam-kernel.test.mjs +0 -99
- package/test/integration/sam-planning-astar.test.mjs +0 -279
- package/test/integration/scaffold-cloudflare.test.mjs +0 -46
- package/test/integration/skill-runtime.test.mjs +0 -240
- package/test/integration/storage-architecture.test.mjs +0 -154
- package/test/integration/store-discovery.test.mjs +0 -44
- package/test/integration/studio-fs-pty-e2e.test.mjs +0 -294
- package/test/integration/terminal-exec.integration.test.mjs +0 -86
- package/test/integration/tool-runtime.test.mjs +0 -124
- package/test/integration/tool-schema.test.mjs +0 -59
- package/test/jr-dev-skill.test.mjs +0 -26
- package/test/knowledge-context-pack.test.mjs +0 -19
- package/test/knowledge-postgres.test.mjs +0 -40
- package/test/knowledge-service.test.mjs +0 -110
- package/test/knowledge.test.mjs +0 -206
- package/test/live/terminal-transport.live.test.mjs +0 -24
- package/test/local-sessions.test.mjs +0 -57
- package/test/local-studio-deploy.test.mjs +0 -83
- package/test/loopback-oauth.test.mjs +0 -53
- package/test/merkle-render.test.mjs +0 -31
- package/test/mini.test.mjs +0 -140
- package/test/model-catalog.test.mjs +0 -70
- package/test/models.test.mjs +0 -309
- package/test/npm10-lock.test.mjs +0 -29
- package/test/ollama.test.mjs +0 -137
- package/test/open-url.test.mjs +0 -64
- package/test/openai-responses.test.mjs +0 -155
- package/test/portable-context.test.mjs +0 -94
- package/test/project-config.test.mjs +0 -81
- package/test/project-rules.test.mjs +0 -44
- package/test/provider-credentials.test.mjs +0 -106
- package/test/rehydrate.test.mjs +0 -25
- package/test/release-hygiene.test.mjs +0 -42
- package/test/repository-snapshot-view.test.mjs +0 -112
- package/test/responses-runner.test.mjs +0 -465
- package/test/runtime-activity.test.mjs +0 -98
- package/test/sdk-worker-contract.test.mjs +0 -72
- package/test/security.test.mjs +0 -252
- package/test/setup-planner.test.mjs +0 -74
- package/test/setup-runtime.test.mjs +0 -51
- package/test/shell.test.mjs +0 -281
- package/test/skills.test.mjs +0 -22
- package/test/smoke.mjs +0 -122
- package/test/telemetry.test.mjs +0 -79
- package/test/terminal/local-pty.mock.test.mjs +0 -153
- package/test/terminal-machine-identity.test.mjs +0 -88
- package/test/theme-portability.test.mjs +0 -14
- package/test/tools-search.test.mjs +0 -73
- package/test/unit/website-assets-bindings.test.mjs +0 -60
- package/test/whoami-resume.test.mjs +0 -157
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inneranimalmedia/agentsam-nav",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.6.7",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Reusable responsive navigation primitives for AgentSam dashboard-family applications.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
|
-
"files": [
|
|
10
|
-
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"README.md"
|
|
12
|
+
],
|
|
13
|
+
"sideEffects": [
|
|
14
|
+
"**/*.css"
|
|
15
|
+
],
|
|
11
16
|
"license": "MIT",
|
|
12
|
-
"publishConfig": {
|
|
17
|
+
"publishConfig": {
|
|
18
|
+
"access": "public"
|
|
19
|
+
},
|
|
13
20
|
"exports": {
|
|
14
|
-
".": {
|
|
15
|
-
|
|
21
|
+
".": {
|
|
22
|
+
"types": "./dist/index.d.ts",
|
|
23
|
+
"import": "./dist/index.js"
|
|
24
|
+
},
|
|
25
|
+
"./browser": {
|
|
26
|
+
"types": "./dist/browser.d.ts",
|
|
27
|
+
"import": "./dist/browser.js"
|
|
28
|
+
},
|
|
16
29
|
"./browser.global.js": "./dist/browser.global.js",
|
|
17
30
|
"./theme.css": "./dist/theme.css",
|
|
18
31
|
"./legacy.css": "./dist/legacy.css"
|
|
@@ -39,5 +52,10 @@
|
|
|
39
52
|
"@radix-ui/react-dialog": "^1.1.23",
|
|
40
53
|
"@radix-ui/react-dropdown-menu": "^2.1.24",
|
|
41
54
|
"lucide-react": "^0.510.0"
|
|
55
|
+
},
|
|
56
|
+
"repository": {
|
|
57
|
+
"type": "git",
|
|
58
|
+
"url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
|
|
59
|
+
"directory": "packages/agentsam-nav"
|
|
42
60
|
}
|
|
43
61
|
}
|
|
@@ -100,7 +100,7 @@ Dispatch supports exact kinds and prefix wildcards such as `cad.*`.
|
|
|
100
100
|
|
|
101
101
|
## Relationship to WorkGraph
|
|
102
102
|
|
|
103
|
-
Queue Control does not replace `@inneranimalmedia/work-graph`. A WorkGraph can release ready nodes; Queue Control then schedules those nodes to an executor. Completion receipts can be projected back into the graph by the host.
|
|
103
|
+
Queue Control does not replace `@inneranimalmedia/agentsam-work-graph`. A WorkGraph can release ready nodes; Queue Control then schedules those nodes to an executor. Completion receipts can be projected back into the graph by the host.
|
|
104
104
|
|
|
105
105
|
## Relationship to AgentSam tools and MCP
|
|
106
106
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inneranimalmedia/agentsam-queue-control",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.6.7",
|
|
4
4
|
"description": "Portable AgentSam queue, job-routing, batching, and execution-control primitives with Cloudflare-first adapters.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -27,5 +27,10 @@
|
|
|
27
27
|
"publishConfig": {
|
|
28
28
|
"access": "public"
|
|
29
29
|
},
|
|
30
|
-
"license": "MIT"
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
|
|
34
|
+
"directory": "packages/agentsam-queue-control"
|
|
35
|
+
}
|
|
31
36
|
}
|
|
@@ -8,7 +8,7 @@ use std::time::{SystemTime, UNIX_EPOCH};
|
|
|
8
8
|
|
|
9
9
|
const WORKER_VERSION: &str = "0.8.7";
|
|
10
10
|
const WORKER_BUILD_VERSION: &str = "0.8.7";
|
|
11
|
-
const WRANGLER_VERSION: &str = "4.
|
|
11
|
+
const WRANGLER_VERSION: &str = "4.145.0";
|
|
12
12
|
const COMPATIBILITY_DATE: &str = "2026-09-27";
|
|
13
13
|
|
|
14
14
|
#[derive(Parser, Debug)]
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inneranimalmedia/agentsam-repository",
|
|
3
|
-
"version": "
|
|
4
|
-
"private": true,
|
|
3
|
+
"version": "2.6.7",
|
|
5
4
|
"description": "Portable AgentSam repository identity, Merkle, semantic file metadata, persistence, and repository graph runtime contracts.",
|
|
6
5
|
"type": "module",
|
|
7
6
|
"main": "./src/index.js",
|
|
@@ -21,5 +20,16 @@
|
|
|
21
20
|
},
|
|
22
21
|
"engines": {
|
|
23
22
|
"node": ">=22 <25"
|
|
24
|
-
}
|
|
23
|
+
},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
},
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
|
|
30
|
+
"directory": "packages/agentsam-repository"
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"src"
|
|
34
|
+
]
|
|
25
35
|
}
|
|
@@ -5,7 +5,6 @@ import { execFileSync } from 'node:child_process';
|
|
|
5
5
|
import { tryResolveGitContext } from './git-context.js';
|
|
6
6
|
import {
|
|
7
7
|
createTicketId,
|
|
8
|
-
createAgentRunId,
|
|
9
8
|
generateTicketCreateSql,
|
|
10
9
|
generateTicketCloseSql,
|
|
11
10
|
} from './tickets.js';
|
|
@@ -252,7 +251,6 @@ export async function createGoapGoal({
|
|
|
252
251
|
if (!accId) throw new Error('account_id_required');
|
|
253
252
|
|
|
254
253
|
const ticketId = createTicketId();
|
|
255
|
-
const agentRunId = createAgentRunId();
|
|
256
254
|
const now = Math.floor(Date.now() / 1000);
|
|
257
255
|
|
|
258
256
|
const { sql: ticketSql } = generateTicketCreateSql({
|
|
@@ -268,7 +266,6 @@ export async function createGoapGoal({
|
|
|
268
266
|
repositoryId: repoId,
|
|
269
267
|
ownerRef: repoId,
|
|
270
268
|
source: 'agentsam_sdk',
|
|
271
|
-
agentRunId,
|
|
272
269
|
now,
|
|
273
270
|
});
|
|
274
271
|
|
|
@@ -305,7 +302,7 @@ ON CONFLICT(repository_id) DO UPDATE SET
|
|
|
305
302
|
return {
|
|
306
303
|
ok: true,
|
|
307
304
|
ticketId,
|
|
308
|
-
agentRunId,
|
|
305
|
+
agentRunId: null,
|
|
309
306
|
title: cleanTitle,
|
|
310
307
|
status,
|
|
311
308
|
priority,
|
|
@@ -338,23 +335,17 @@ export async function switchGoapGoal({
|
|
|
338
335
|
query,
|
|
339
336
|
wranglerConfig,
|
|
340
337
|
databaseName,
|
|
341
|
-
sql: `SELECT id, account_id, repository_id FROM agentsam_tickets WHERE id = '${sqlEsc(tid)}' LIMIT 1;`,
|
|
338
|
+
sql: `SELECT id, account_id, repository_id, agent_run_id FROM agentsam_tickets WHERE id = '${sqlEsc(tid)}' LIMIT 1;`,
|
|
342
339
|
});
|
|
343
340
|
const ticket = lookup?.[0]?.results?.[0];
|
|
344
341
|
const accId = clean(accountId);
|
|
345
342
|
if (!ticket) throw new Error('ticket_not_found');
|
|
346
343
|
if (ticket.repository_id && ticket.repository_id !== repoId) throw new Error('ticket_repository_mismatch');
|
|
347
344
|
if (!accId || ticket.account_id !== accId) throw new Error('ticket_account_mismatch');
|
|
348
|
-
const runId = createAgentRunId();
|
|
349
345
|
|
|
350
346
|
const sql = `
|
|
351
|
-
INSERT INTO agentsam_agent_run (
|
|
352
|
-
id, account_id, mode, status, started_at_unix, created_at_unix, updated_at_unix
|
|
353
|
-
) VALUES ('${sqlEsc(runId)}', '${sqlEsc(accId)}', 'agent', 'running', ${now}, ${now}, ${now});
|
|
354
|
-
|
|
355
347
|
UPDATE agentsam_tickets SET
|
|
356
348
|
status = 'active',
|
|
357
|
-
agent_run_id = '${sqlEsc(runId)}',
|
|
358
349
|
updated_at = ${now}
|
|
359
350
|
WHERE id = '${sqlEsc(tid)}';
|
|
360
351
|
|
|
@@ -385,7 +376,7 @@ ON CONFLICT(repository_id) DO UPDATE SET
|
|
|
385
376
|
ok: true,
|
|
386
377
|
ticketId: tid,
|
|
387
378
|
repositoryId: repoId,
|
|
388
|
-
agentRunId:
|
|
379
|
+
agentRunId: ticket.agent_run_id || null,
|
|
389
380
|
};
|
|
390
381
|
}
|
|
391
382
|
|
|
@@ -420,7 +411,7 @@ export async function closeGoapGoal({
|
|
|
420
411
|
query,
|
|
421
412
|
wranglerConfig,
|
|
422
413
|
databaseName,
|
|
423
|
-
sql: `SELECT id, account_id, repository_id FROM agentsam_tickets WHERE id = '${sqlEsc(tid)}' LIMIT 1;`,
|
|
414
|
+
sql: `SELECT id, account_id, repository_id, agent_run_id FROM agentsam_tickets WHERE id = '${sqlEsc(tid)}' LIMIT 1;`,
|
|
424
415
|
});
|
|
425
416
|
const ticket = lookup?.[0]?.results?.[0];
|
|
426
417
|
const accId = clean(accountId);
|
|
@@ -471,6 +462,8 @@ export function renderGoapStatus(state = {}) {
|
|
|
471
462
|
const cp = state.cursor || {};
|
|
472
463
|
const git = state.git || {};
|
|
473
464
|
const headSha = git?.revisionSha || git?.headSha || 'unknown';
|
|
465
|
+
const localPlan = state.localPlan || null;
|
|
466
|
+
const world = state.worldSnapshot || null;
|
|
474
467
|
|
|
475
468
|
return [
|
|
476
469
|
'================================================================================',
|
|
@@ -487,6 +480,12 @@ export function renderGoapStatus(state = {}) {
|
|
|
487
480
|
`Checkpoint: ${ws.checkpoint_sha ? ws.checkpoint_sha.slice(0, 10) : 'none'} (Tracker cursor: ${cp.last_sha ? cp.last_sha.slice(0, 10) : 'none'})`,
|
|
488
481
|
`Last Action: ${ws.last_agent_action || 'none'}`,
|
|
489
482
|
`Updated: ${formatDate(ws.updated_at || ticket.updated_at)}`,
|
|
483
|
+
...(localPlan ? [
|
|
484
|
+
`Plan: ${localPlan.title} (${localPlan.tasks_done}/${localPlan.tasks_total})`,
|
|
485
|
+
`World: ${world?.snapshot_id || 'local'} · Merkle ${world?.merkle_root ? world.merkle_root.slice(0, 20) + '…' : 'unknown'}`,
|
|
486
|
+
`Knowledge: ${world?.knowledge_freshness?.status || 'unknown'}${world?.knowledge_freshness?.reason ? ' (' + world.knowledge_freshness.reason + ')' : ''}`,
|
|
487
|
+
`Actions: ${world?.actions?.available?.length || 0} available · ${world?.actions?.blocked?.length || 0} blocked`,
|
|
488
|
+
] : []),
|
|
490
489
|
'--------------------------------------------------------------------------------',
|
|
491
490
|
...(!ticket.id && !ws.current_task_id ? [
|
|
492
491
|
' No active goal. What are you trying to achieve?',
|
|
@@ -499,7 +498,7 @@ export function renderGoapStatus(state = {}) {
|
|
|
499
498
|
: [' (no commits ingested yet)']),
|
|
500
499
|
...(state.stepsUnavailable
|
|
501
500
|
? ['--------------------------------------------------------------------------------',
|
|
502
|
-
' (note: step/plan linkage unavailable
|
|
501
|
+
' (note: remote step/plan linkage is unavailable for this repository)']
|
|
503
502
|
: []),
|
|
504
503
|
'================================================================================',
|
|
505
504
|
].join('\n');
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source-type helpers for AgentSam repository intelligence.
|
|
3
|
+
*
|
|
4
|
+
* SSOT taxonomy (extensions / kind / ast / knowledge):
|
|
5
|
+
* contracts/source-types.v1.json
|
|
6
|
+
* Rust machine inspect loads the same contract. Keep this JS table aligned when
|
|
7
|
+
* adding languages until a shared loader is wired for both runtimes.
|
|
8
|
+
*/
|
|
1
9
|
import path from 'node:path';
|
|
2
10
|
|
|
3
11
|
const DEFINITIONS = [
|
|
@@ -31,7 +31,11 @@ export function createTicketId() {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
|
-
* Generate SQL for ticket creation
|
|
34
|
+
* Generate SQL for ticket creation.
|
|
35
|
+
*
|
|
36
|
+
* Goal state and execution state are separate nouns. Creating/activating a
|
|
37
|
+
* ticket must not fabricate an agentsam_agent_run. Callers may link an
|
|
38
|
+
* already-created real run explicitly via agentRunId.
|
|
35
39
|
*/
|
|
36
40
|
export function generateTicketCreateSql({
|
|
37
41
|
accountId,
|
|
@@ -59,16 +63,7 @@ export function generateTicketCreateSql({
|
|
|
59
63
|
if (!tTitle) throw new Error('title_required');
|
|
60
64
|
|
|
61
65
|
const statements = [];
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (status === 'active' && !runId) {
|
|
65
|
-
runId = createAgentRunId();
|
|
66
|
-
statements.push(`INSERT INTO agentsam_agent_run (
|
|
67
|
-
id, account_id, mode, status, started_at_unix, created_at_unix, updated_at_unix
|
|
68
|
-
) VALUES (
|
|
69
|
-
${sqlText(runId)}, ${sqlText(account)}, 'agent', 'running', ${sqlInt(now)}, ${sqlInt(now)}, ${sqlInt(now)}
|
|
70
|
-
);`);
|
|
71
|
-
}
|
|
66
|
+
const runId = clean(agentRunId);
|
|
72
67
|
|
|
73
68
|
statements.push(`INSERT INTO agentsam_tickets (
|
|
74
69
|
id, title, description, status, status_reason, project, subsystem,
|
|
@@ -98,12 +93,15 @@ export function generateTicketCreateSql({
|
|
|
98
93
|
}
|
|
99
94
|
|
|
100
95
|
/**
|
|
101
|
-
* Generate SQL to activate a ticket
|
|
96
|
+
* Generate SQL to activate a ticket.
|
|
97
|
+
*
|
|
98
|
+
* agentRunId is optional and must reference a run created by the execution
|
|
99
|
+
* subsystem. Activation itself never creates a run.
|
|
102
100
|
*/
|
|
103
101
|
export function generateTicketActivationSql({
|
|
104
102
|
accountId,
|
|
105
103
|
ticketId,
|
|
106
|
-
agentRunId =
|
|
104
|
+
agentRunId = null,
|
|
107
105
|
statusReason = null,
|
|
108
106
|
now = Math.floor(Date.now() / 1000),
|
|
109
107
|
}) {
|
|
@@ -111,18 +109,13 @@ export function generateTicketActivationSql({
|
|
|
111
109
|
const tid = clean(ticketId);
|
|
112
110
|
if (!account) throw new Error('account_id_required');
|
|
113
111
|
if (!tid) throw new Error('ticket_id_required');
|
|
114
|
-
const runId = clean(agentRunId)
|
|
112
|
+
const runId = clean(agentRunId);
|
|
115
113
|
|
|
116
114
|
const statements = [
|
|
117
|
-
`INSERT INTO agentsam_agent_run (
|
|
118
|
-
id, account_id, mode, status, started_at_unix, created_at_unix, updated_at_unix
|
|
119
|
-
) VALUES (
|
|
120
|
-
${sqlText(runId)}, ${sqlText(account)}, 'agent', 'running', ${sqlInt(now)}, ${sqlInt(now)}, ${sqlInt(now)}
|
|
121
|
-
);`,
|
|
122
115
|
`UPDATE agentsam_tickets SET
|
|
123
116
|
status = 'active',
|
|
124
117
|
status_reason = ${sqlText(statusReason)},
|
|
125
|
-
agent_run_id = COALESCE(
|
|
118
|
+
agent_run_id = COALESCE(${sqlText(runId || null)}, agent_run_id),
|
|
126
119
|
updated_at = ${sqlInt(now)},
|
|
127
120
|
closed_at = NULL
|
|
128
121
|
WHERE id = ${sqlText(tid)};`,
|
|
@@ -130,14 +123,14 @@ WHERE id = ${sqlText(tid)};`,
|
|
|
130
123
|
id, ticket_id, event_type, from_status, to_status, detail, actor_type, created_at
|
|
131
124
|
) VALUES (
|
|
132
125
|
'tke_' || lower(hex(randomblob(8))), ${sqlText(tid)}, 'status_change', 'backlog', 'active',
|
|
133
|
-
'
|
|
126
|
+
'activated', 'agentsam_sdk', ${sqlInt(now)}
|
|
134
127
|
);`,
|
|
135
128
|
];
|
|
136
129
|
|
|
137
130
|
return {
|
|
138
131
|
sql: statements.join('\n\n'),
|
|
139
132
|
ticketId: tid,
|
|
140
|
-
agentRunId: runId,
|
|
133
|
+
agentRunId: runId || null,
|
|
141
134
|
};
|
|
142
135
|
}
|
|
143
136
|
|
|
@@ -30,7 +30,7 @@ test('generateTicketCreateSql requires account_id and title', () => {
|
|
|
30
30
|
assert.throws(() => generateTicketCreateSql({ accountId: 'acc_1' }), /title_required/);
|
|
31
31
|
});
|
|
32
32
|
|
|
33
|
-
test('generateTicketCreateSql with status=active
|
|
33
|
+
test('generateTicketCreateSql with status=active does not fabricate an agent run', () => {
|
|
34
34
|
const { sql, ticketId, agentRunId } = generateTicketCreateSql({
|
|
35
35
|
accountId: 'acc_1',
|
|
36
36
|
title: 'Wire GOAP planner',
|
|
@@ -38,12 +38,10 @@ test('generateTicketCreateSql with status=active mints an agent_run and links it
|
|
|
38
38
|
now: 1000,
|
|
39
39
|
});
|
|
40
40
|
assert.ok(ticketId.startsWith('tkt_'));
|
|
41
|
-
assert.
|
|
42
|
-
assert.
|
|
41
|
+
assert.equal(agentRunId, null);
|
|
42
|
+
assert.doesNotMatch(sql, /INSERT INTO agentsam_agent_run/);
|
|
43
43
|
assert.match(sql, /INSERT INTO agentsam_tickets/);
|
|
44
44
|
assert.match(sql, /INSERT INTO agentsam_ticket_events/);
|
|
45
|
-
const runOccurrences = sql.split(agentRunId).length - 1;
|
|
46
|
-
assert.ok(runOccurrences >= 2, 'agent_run id should appear in both the run insert and the ticket insert');
|
|
47
45
|
});
|
|
48
46
|
|
|
49
47
|
test('generateTicketCreateSql with status=backlog does not mint an agent_run', () => {
|
|
@@ -83,16 +81,29 @@ test('generateTicketActivationSql requires account and ticket id', () => {
|
|
|
83
81
|
assert.throws(() => generateTicketActivationSql({ accountId: 'a' }), /ticket_id_required/);
|
|
84
82
|
});
|
|
85
83
|
|
|
86
|
-
test('generateTicketActivationSql
|
|
84
|
+
test('generateTicketActivationSql changes focus without fabricating an agent run', () => {
|
|
87
85
|
const { sql, agentRunId } = generateTicketActivationSql({
|
|
88
86
|
accountId: 'acc_1',
|
|
89
87
|
ticketId: 'tkt_abc',
|
|
90
88
|
now: 1000,
|
|
91
89
|
});
|
|
92
|
-
assert.
|
|
90
|
+
assert.equal(agentRunId, null);
|
|
91
|
+
assert.doesNotMatch(sql, /INSERT INTO agentsam_agent_run/);
|
|
93
92
|
assert.match(sql, /status = 'active'/);
|
|
94
93
|
assert.match(sql, /closed_at = NULL/);
|
|
95
|
-
assert.match(sql, /COALESCE\(agent_run_id
|
|
94
|
+
assert.match(sql, /agent_run_id = COALESCE\(NULL, agent_run_id\)/);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
test('generateTicketActivationSql can link a run created by the execution subsystem', () => {
|
|
98
|
+
const { sql, agentRunId } = generateTicketActivationSql({
|
|
99
|
+
accountId: 'acc_1',
|
|
100
|
+
ticketId: 'tkt_abc',
|
|
101
|
+
agentRunId: 'arun_real',
|
|
102
|
+
now: 1000,
|
|
103
|
+
});
|
|
104
|
+
assert.equal(agentRunId, 'arun_real');
|
|
105
|
+
assert.doesNotMatch(sql, /INSERT INTO agentsam_agent_run/);
|
|
106
|
+
assert.match(sql, /agent_run_id = COALESCE\('arun_real', agent_run_id\)/);
|
|
96
107
|
});
|
|
97
108
|
|
|
98
109
|
test('generateTicketCloseSql maps shipped -> completed and abandoned/blocked -> failed run status', () => {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inneranimalmedia/agentsam-vault",
|
|
3
|
-
"version": "
|
|
4
|
-
"private": true,
|
|
3
|
+
"version": "2.6.7",
|
|
5
4
|
"type": "module",
|
|
6
|
-
"description": "AgentSam credential vault core
|
|
5
|
+
"description": "AgentSam credential vault core — contracts, AES-GCM crypto, provider registry, resolver. UI lives in agentsam-key-manager.",
|
|
7
6
|
"main": "./src/index.js",
|
|
8
7
|
"types": "./src/index.d.ts",
|
|
9
8
|
"exports": {
|
|
@@ -28,5 +27,16 @@
|
|
|
28
27
|
},
|
|
29
28
|
"engines": {
|
|
30
29
|
"node": ">=20"
|
|
31
|
-
}
|
|
30
|
+
},
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public"
|
|
33
|
+
},
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
|
|
37
|
+
"directory": "packages/agentsam-vault"
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
"src"
|
|
41
|
+
]
|
|
32
42
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inneranimalmedia/agentsam-workbench",
|
|
3
|
-
"version": "
|
|
4
|
-
"private": true,
|
|
3
|
+
"version": "2.6.7",
|
|
5
4
|
"description": "Reusable AgentSam workbench primitives for agent threads, composer, browser, terminal and resizable work surfaces.",
|
|
6
5
|
"type": "module",
|
|
7
6
|
"main": "./src/index.ts",
|
|
@@ -10,6 +9,7 @@
|
|
|
10
9
|
"./agent": "./src/agent/index.ts",
|
|
11
10
|
"./agent/mini-agentsam.css": "./src/agent/mini-agentsam.css",
|
|
12
11
|
"./agent/contextual-composer.css": "./src/agent/contextual-composer.css",
|
|
12
|
+
"./agent/tool-permission.css": "./src/agent/tool-permission.css",
|
|
13
13
|
"./shell": "./src/shell/index.ts",
|
|
14
14
|
"./browser": "./src/browser/index.ts",
|
|
15
15
|
"./terminal": "./src/terminal/index.ts",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"test": "node --test test/*.test.mjs"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@inneranimalmedia/agentsam-contracts": "
|
|
25
|
+
"@inneranimalmedia/agentsam-contracts": "2.6.7"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"react": ">=18",
|
|
@@ -34,5 +34,16 @@
|
|
|
34
34
|
"react": "^19.2.0",
|
|
35
35
|
"react-dom": "^19.2.0",
|
|
36
36
|
"typescript": "^5.9.3"
|
|
37
|
-
}
|
|
37
|
+
},
|
|
38
|
+
"publishConfig": {
|
|
39
|
+
"access": "public"
|
|
40
|
+
},
|
|
41
|
+
"repository": {
|
|
42
|
+
"type": "git",
|
|
43
|
+
"url": "git+https://github.com/SamPrimeaux/agentsam-sdk.git",
|
|
44
|
+
"directory": "packages/agentsam-workbench"
|
|
45
|
+
},
|
|
46
|
+
"files": [
|
|
47
|
+
"src"
|
|
48
|
+
]
|
|
38
49
|
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
AgentToolPermissionDecision,
|
|
3
|
+
AgentToolPermissionRequest as AgentToolPermissionRequestContract,
|
|
4
|
+
} from '@inneranimalmedia/agentsam-contracts';
|
|
5
|
+
|
|
6
|
+
export interface ToolPermissionRequestProps {
|
|
7
|
+
request: AgentToolPermissionRequestContract;
|
|
8
|
+
busy?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
onDecision: (decision: AgentToolPermissionDecision) => void | Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function permissionSummary(request: AgentToolPermissionRequestContract) {
|
|
14
|
+
if (request.summary) return request.summary;
|
|
15
|
+
const provider = request.provider ? ' through ' + request.provider : '';
|
|
16
|
+
return 'AgentSam wants to use ' + request.displayName + provider + '.';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function ToolPermissionRequest({
|
|
20
|
+
request,
|
|
21
|
+
busy = false,
|
|
22
|
+
className,
|
|
23
|
+
onDecision,
|
|
24
|
+
}: ToolPermissionRequestProps) {
|
|
25
|
+
const titleId = request.id + '-title';
|
|
26
|
+
const descriptionId = request.id + '-description';
|
|
27
|
+
const rootClass = 'agentsam-tool-permission-overlay' + (className ? ' ' + className : '');
|
|
28
|
+
return (
|
|
29
|
+
<div className={rootClass} role="presentation">
|
|
30
|
+
<section
|
|
31
|
+
className="agentsam-tool-permission-card"
|
|
32
|
+
role="alertdialog"
|
|
33
|
+
aria-modal="true"
|
|
34
|
+
aria-labelledby={titleId}
|
|
35
|
+
aria-describedby={descriptionId}
|
|
36
|
+
>
|
|
37
|
+
<header className="agentsam-tool-permission-header">
|
|
38
|
+
<div className="agentsam-tool-permission-mark" aria-hidden="true">AS</div>
|
|
39
|
+
<div>
|
|
40
|
+
<h2 id={titleId}>Allow AgentSam to use {request.displayName}?</h2>
|
|
41
|
+
<p id={descriptionId}>{permissionSummary(request)}</p>
|
|
42
|
+
</div>
|
|
43
|
+
</header>
|
|
44
|
+
|
|
45
|
+
<div className="agentsam-tool-permission-body">
|
|
46
|
+
<dl className="agentsam-tool-permission-facts">
|
|
47
|
+
<div><dt>Tool</dt><dd>{request.toolKey}</dd></div>
|
|
48
|
+
{request.provider ? <div><dt>Provider</dt><dd>{request.provider}</dd></div> : null}
|
|
49
|
+
{request.scope ? <div><dt>Scope</dt><dd>{request.scope}</dd></div> : null}
|
|
50
|
+
{request.riskLevel ? <div><dt>Risk</dt><dd>{request.riskLevel}</dd></div> : null}
|
|
51
|
+
</dl>
|
|
52
|
+
|
|
53
|
+
{request.sharedData?.length ? (
|
|
54
|
+
<div className="agentsam-tool-permission-shared">
|
|
55
|
+
<h3>Sharing data includes:</h3>
|
|
56
|
+
<dl>
|
|
57
|
+
{request.sharedData.map((item) => (
|
|
58
|
+
<div key={item.label + ':' + item.value}>
|
|
59
|
+
<dt>{item.label}</dt>
|
|
60
|
+
<dd>{item.value}</dd>
|
|
61
|
+
</div>
|
|
62
|
+
))}
|
|
63
|
+
</dl>
|
|
64
|
+
</div>
|
|
65
|
+
) : null}
|
|
66
|
+
|
|
67
|
+
{request.destructive ? (
|
|
68
|
+
<p className="agentsam-tool-permission-warning">
|
|
69
|
+
This action may modify or delete data. Review the scope before allowing it.
|
|
70
|
+
</p>
|
|
71
|
+
) : null}
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
<footer className="agentsam-tool-permission-actions">
|
|
75
|
+
<button type="button" disabled={busy} onClick={() => void onDecision('deny')}>
|
|
76
|
+
Deny
|
|
77
|
+
</button>
|
|
78
|
+
<span className="agentsam-tool-permission-spacer" />
|
|
79
|
+
<button type="button" disabled={busy} onClick={() => void onDecision('allow_once')}>
|
|
80
|
+
Allow once
|
|
81
|
+
</button>
|
|
82
|
+
<button
|
|
83
|
+
type="button"
|
|
84
|
+
className="agentsam-tool-permission-primary"
|
|
85
|
+
disabled={busy}
|
|
86
|
+
onClick={() => void onDecision('allow_session')}
|
|
87
|
+
>
|
|
88
|
+
Allow for this session
|
|
89
|
+
</button>
|
|
90
|
+
</footer>
|
|
91
|
+
</section>
|
|
92
|
+
</div>
|
|
93
|
+
);
|
|
94
|
+
}
|