@inneranimalmedia/agentsam-sdk 2.6.2 → 2.6.4
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 +51 -1
- package/README.md +95 -0
- package/apps/README.md +34 -0
- package/apps/cad-creator/README.md +728 -0
- package/apps/cad-creator/shared/cad/package.json +19 -0
- package/apps/cad-creator/shared/cad/src/domain/operations.ts +7 -0
- package/apps/cad-creator/shared/cad/src/domain/project-contract.d.ts +3 -0
- package/apps/cad-creator/shared/cad/src/domain/project-contract.js +75 -0
- package/apps/cad-creator/shared/cad/src/domain/project-tools.d.ts +1 -0
- package/apps/cad-creator/shared/cad/src/domain/project-tools.js +24 -0
- package/apps/cad-creator/shared/cad/src/domain/validation.ts +191 -0
- package/apps/cad-creator/shared/cad/src/index.ts +4 -0
- package/apps/cad-creator/shared/cad/src/robotics/types.ts +232 -0
- package/apps/cad-creator/shared/cad/src/types.ts +507 -0
- package/apps/cad-creator/shared/cad/tsconfig.json +14 -0
- package/bin/agentsam +16 -1
- package/docs/AUTORAG.md +58 -0
- package/docs/BRAND_INTELLIGENCE.md +30 -0
- package/docs/CLI_SHELL.md +4 -2
- package/docs/CMS_CONTEXTUAL_COMPOSER.md +38 -0
- package/docs/MERKLE.md +4 -0
- package/docs/PROJECT_CONFIG.md +3 -0
- package/docs/REPOSITORY_KNOWLEDGE.md +2 -0
- package/docs/THEME_REFINERY.md +120 -0
- package/docs/architecture/AGENTSAM_DISTRIBUTION_OWNERSHIP.md +176 -0
- package/docs/architecture/AGENTSAM_GO_RUNTIME.md +282 -0
- package/docs/architecture/CODEBASEINDEX_GUIDED_PATH.md +202 -0
- package/docs/architecture/FS_E2E_CLOSURE_RECEIPT.md +59 -0
- package/docs/architecture/LOCAL_FS_AUTHORITY.md +38 -0
- package/docs/architecture/LOCAL_STUDIO_CLOUDFLARE_OAUTH.md +28 -0
- package/docs/architecture/PLAN_CLI_AND_LOCAL_STUDIO_DESKTOP.md +96 -0
- package/docs/architecture/PROVIDER-TOOLS-AND-COMPACTION.md +60 -0
- package/docs/architecture/SAM_ACTIVITY_RECOVERY_RECEIPT.md +39 -0
- package/docs/architecture/SAM_DECISION_WORK_RECEIPT.md +54 -0
- package/docs/architecture/SAM_KERNEL.md +181 -0
- package/docs/architecture/SAM_MACHINE_NORMALIZATION_PRECOMMIT_REPORT.md +208 -0
- package/docs/architecture/SLASH_SKILLS_PORTABLE.md +116 -0
- package/docs/architecture/STORAGE.md +87 -0
- package/docs/architecture/fs-e2e-receipt.latest.json +42 -0
- package/docs/architecture/previews/codebaseindex-guided-path/CODEBASEINDEX_GUIDED_PATH.md +202 -0
- package/docs/architecture/previews/codebaseindex-guided-path/index.html +321 -0
- package/docs/cad-project-tools.md +69 -0
- package/docs/cms-scaffolding-pattern-reference.md +73 -0
- package/docs/plans/AGENTSAM-INTERACTIVE-UI-REQUIREMENTS-codex-tui-20260919.md +113 -0
- package/docs/plans/AGENTSAM-INTERACTIVE-UI-REQUIREMENTS.md +85 -0
- package/docs/plans/AGENTSAM-MCP-CLIENT-2026-09-19.md +181 -0
- package/docs/plans/ASBD-PORTABLE-WORKGRAPH-UI-DEFERRED.md +34 -0
- package/docs/plans/ASTRA-BRIEF-2026-09-18.md +258 -0
- package/docs/plans/MULTI-AGENT-SPRINTS-2026-09-19.md +373 -0
- package/docs/plans/NEXT-AGENT-HANDOFF.md +167 -0
- package/docs/plans/RECONCILIATION-2026-09-19.md +178 -0
- package/docs/plugins.md +43 -0
- package/docs/tools/README.md +57 -0
- package/docs/tools/agent-and-orchestration.md +49 -0
- package/docs/tools/browser-and-research.md +46 -0
- package/docs/tools/cloudflare-platform.md +32 -0
- package/docs/tools/cms.md +25 -0
- package/docs/tools/communications.md +41 -0
- package/docs/tools/database-and-storage.md +62 -0
- package/docs/tools/design-and-media.md +64 -0
- package/docs/tools/filesystem-and-code.md +55 -0
- package/docs/tools/github.md +56 -0
- package/docs/tools/integrations-and-misc.md +16 -0
- package/docs/tools/memory.md +21 -0
- package/docs/tools/terminal-and-execution.md +29 -0
- package/docs/tools/tickets-and-platform.md +30 -0
- package/migrations/d1/0001_agentsam_plugin_runtime.sql +177 -0
- package/migrations/d1/0002_agentsam_ticket_ownership.sql +8 -0
- package/migrations/d1/0002_dynamic_model_policies.sql +23 -0
- package/migrations/d1/0003_expand_tool_handler_families.sql +18 -0
- package/migrations/d1/0004_project_aware_retrieval_lanes.sql +24 -0
- package/migrations/d1/0005_portable_knowledge_identity.sql +104 -0
- package/migrations/d1/0006_repair_ops_trail_account_scope.sql +14 -0
- package/migrations/d1/0007_repair_ops_trail_agent_run_account.sql +13 -0
- package/migrations/d1/0008_backfill_knowledge_run_legacy_tenant.sql +14 -0
- package/migrations/d1/0009_normalize_cloudflare_plugin_installations.sql +137 -0
- package/migrations/d1/0010_portable_tickets_memory.sql +140 -0
- package/migrations/d1/0011_agentsam_skill_v2.sql +185 -0
- package/migrations/d1/0011b_agentsam_skill_v2_cutover.sql +22 -0
- package/migrations/d1/0011c_agentsam_skill_v2_backfill.sql +76 -0
- package/migrations/d1/0011d_agentsam_skill_v2_retrieval_revisions.sql +50 -0
- package/migrations/d1/0012_agentsam_tools_required_seed.sql +67 -0
- package/migrations/d1/0013_identity_oauth_states.sql +15 -0
- package/migrations/d1/0014_auth_event_log.sql +20 -0
- package/migrations/d1/0015_identity_oauth_state_app_id.sql +3 -0
- package/migrations/d1/README_PORTABLE_CONTROL_PLANE.md +16 -0
- package/migrations/runtime/0001_cli_runtime.sql +67 -0
- package/migrations/runtime/0002_project_sessions.sql +15 -0
- package/migrations/runtime/0003_provider_continuations.sql +8 -0
- package/migrations/sqlite/agentsam_skill_retrieval.portable.sql +42 -0
- package/package.json +107 -12
- package/packages/agentsam-brand/README.md +21 -0
- package/packages/agentsam-brand/package.json +22 -0
- package/packages/agentsam-brand/src/contract.js +59 -0
- package/packages/agentsam-brand/src/extract.js +126 -0
- package/packages/agentsam-brand/src/goap-actions.js +73 -0
- package/packages/agentsam-brand/src/index.js +48 -0
- package/packages/agentsam-brand/src/plan.js +115 -0
- package/packages/agentsam-brand/src/resolve.js +139 -0
- package/packages/agentsam-brand/src/scan.js +250 -0
- package/packages/agentsam-brand/test/brand-scan.test.mjs +106 -0
- package/packages/agentsam-contracts/README.md +23 -0
- package/packages/agentsam-contracts/package.json +32 -0
- package/packages/agentsam-contracts/src/adapter.ts +25 -0
- package/packages/agentsam-contracts/src/agent.ts +35 -0
- package/packages/agentsam-contracts/src/artifacts.ts +33 -0
- package/packages/agentsam-contracts/src/authority.ts +29 -0
- package/packages/agentsam-contracts/src/context.ts +16 -0
- package/packages/agentsam-contracts/src/errors.ts +62 -0
- package/packages/agentsam-contracts/src/events.ts +47 -0
- package/packages/agentsam-contracts/src/execution.ts +50 -0
- package/packages/agentsam-contracts/src/hooks.ts +40 -0
- package/packages/agentsam-contracts/src/identity.ts +16 -0
- package/packages/agentsam-contracts/src/index.ts +14 -0
- package/packages/agentsam-contracts/src/models.ts +9 -0
- package/packages/agentsam-contracts/src/providers.ts +33 -0
- package/packages/agentsam-contracts/src/repository.ts +64 -0
- package/packages/agentsam-contracts/src/tools.ts +98 -0
- package/packages/agentsam-contracts/test/contracts.test.mjs +16 -0
- package/packages/agentsam-contracts/test/errors-catalog.test.mjs +25 -0
- package/packages/agentsam-contracts/test/repository.test.mjs +18 -0
- package/packages/agentsam-contracts/tsconfig.json +12 -0
- package/packages/agentsam-errors/package.json +17 -0
- package/packages/agentsam-errors/src/adapters/anthropic.js +15 -0
- package/packages/agentsam-errors/src/adapters/cad.js +109 -0
- package/packages/agentsam-errors/src/adapters/cloudflare.js +21 -0
- package/packages/agentsam-errors/src/adapters/cursor.js +4 -0
- package/packages/agentsam-errors/src/adapters/device.js +38 -0
- package/packages/agentsam-errors/src/adapters/docker.js +28 -0
- package/packages/agentsam-errors/src/adapters/gcp.js +14 -0
- package/packages/agentsam-errors/src/adapters/github.js +22 -0
- package/packages/agentsam-errors/src/adapters/google.js +17 -0
- package/packages/agentsam-errors/src/adapters/index.js +55 -0
- package/packages/agentsam-errors/src/adapters/internal.js +40 -0
- package/packages/agentsam-errors/src/adapters/oauth.js +24 -0
- package/packages/agentsam-errors/src/adapters/openai.js +17 -0
- package/packages/agentsam-errors/src/adapters/process.js +35 -0
- package/packages/agentsam-errors/src/adapters/provider.js +114 -0
- package/packages/agentsam-errors/src/envelope.js +239 -0
- package/packages/agentsam-errors/src/error.js +24 -0
- package/packages/agentsam-errors/src/fingerprint.js +35 -0
- package/packages/agentsam-errors/src/index.js +11 -0
- package/packages/agentsam-errors/src/normalize.js +30 -0
- package/packages/agentsam-errors/src/recovery.js +301 -0
- package/packages/agentsam-errors/src/redaction.js +52 -0
- package/packages/agentsam-errors/src/render.js +16 -0
- package/packages/agentsam-errors/src/retry.js +10 -0
- package/packages/agentsam-errors/src/transport.js +52 -0
- package/packages/agentsam-errors/src/vocabulary.js +320 -0
- package/packages/agentsam-errors/test/envelope.test.mjs +70 -0
- package/packages/agentsam-errors/test/providers.test.mjs +99 -0
- package/packages/agentsam-errors/test/redaction.test.mjs +21 -0
- package/packages/agentsam-errors/test/runtime-cad-device.test.mjs +76 -0
- package/packages/agentsam-errors/test/transport.test.mjs +46 -0
- package/packages/agentsam-knowledge/package.json +15 -0
- package/packages/agentsam-knowledge/src/autorag/index.js +64 -0
- package/packages/agentsam-knowledge/src/backends/index.js +26 -0
- package/packages/agentsam-knowledge/src/index.js +3 -0
- package/packages/agentsam-knowledge/src/providers/index.js +107 -0
- package/packages/agentsam-knowledge/test/autorag.test.mjs +42 -0
- package/packages/agentsam-nav/README.md +40 -0
- package/packages/agentsam-nav/dist/Nav.d.ts +43 -0
- package/packages/agentsam-nav/dist/NavCollapsible.d.ts +10 -0
- package/packages/agentsam-nav/dist/NavContent.d.ts +2 -0
- package/packages/agentsam-nav/dist/NavFooter.d.ts +2 -0
- package/packages/agentsam-nav/dist/NavGroup.d.ts +3 -0
- package/packages/agentsam-nav/dist/NavHeader.d.ts +2 -0
- package/packages/agentsam-nav/dist/NavMenu.d.ts +22 -0
- package/packages/agentsam-nav/dist/NavProvider.d.ts +35 -0
- package/packages/agentsam-nav/dist/NavTrigger.d.ts +2 -0
- package/packages/agentsam-nav/dist/Surfaces.d.ts +41 -0
- package/packages/agentsam-nav/dist/browser.d.ts +11 -0
- package/packages/agentsam-nav/dist/browser.global.js +132 -0
- package/packages/agentsam-nav/dist/browser.js +613 -0
- package/packages/agentsam-nav/dist/contracts.d.ts +76 -0
- package/packages/agentsam-nav/dist/index.d.ts +11 -0
- package/packages/agentsam-nav/dist/index.js +614 -0
- package/packages/agentsam-nav/dist/legacy.css +83 -0
- package/packages/agentsam-nav/dist/shell.css +113 -0
- package/packages/agentsam-nav/dist/theme.css +113 -0
- package/packages/agentsam-nav/dist/utils.d.ts +1 -0
- package/packages/agentsam-nav/package.json +43 -0
- package/packages/agentsam-queue-control/README.md +107 -0
- package/packages/agentsam-queue-control/package.json +31 -0
- package/packages/agentsam-queue-control/schemas/job-envelope.schema.json +56 -0
- package/packages/agentsam-queue-control/src/adapters/cloudflare.js +152 -0
- package/packages/agentsam-queue-control/src/adapters/memory.js +38 -0
- package/packages/agentsam-queue-control/src/contracts.js +130 -0
- package/packages/agentsam-queue-control/src/control-plane.js +141 -0
- package/packages/agentsam-queue-control/src/dispatch.js +43 -0
- package/packages/agentsam-queue-control/src/index.js +7 -0
- package/packages/agentsam-queue-control/src/policy.js +88 -0
- package/packages/agentsam-queue-control/src/topology.js +66 -0
- package/packages/agentsam-queue-control/test/queue-control.test.mjs +100 -0
- package/packages/agentsam-repository/src/goap.js +718 -0
- package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +670 -0
- package/packages/agentsam-repository/src/index.js +5 -0
- package/packages/agentsam-repository/src/merkle/cloudflare-persistence.js +2 -2
- package/packages/agentsam-repository/src/tickets.js +184 -0
- package/packages/agentsam-repository/src/work-tracking.js +199 -0
- package/packages/agentsam-repository/src/workspace-state.js +176 -0
- package/packages/agentsam-repository/test/goap-tickets-workspace-state.test.mjs +152 -0
- package/packages/connectors/cloudflare/src/index.js +297 -15
- package/packages/connectors/cloudflare/src/owner.js +43 -40
- package/packages/connectors/cloudflare/src/routes.js +176 -26
- package/packages/connectors/cloudflare/tests/connector.test.mjs +137 -2
- package/packages/heuristic-theme/README.md +11 -0
- package/packages/heuristic-theme/package.json +25 -0
- package/packages/heuristic-theme/src/index.js +2 -0
- package/packages/heuristic-theme/src/registry.js +36 -0
- package/packages/heuristic-theme/src/theme.js +41 -0
- package/packages/heuristic-theme/test/theme.test.mjs +26 -0
- package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +64 -0
- package/packages/identity/.agentsam/features/oauth-login-portal/providers.json +96 -0
- package/packages/identity/.agentsam/features/oauth-login-portal/resources.json +47 -0
- package/packages/identity/.agentsam/features/oauth-login-portal/routes.json +83 -0
- package/packages/identity/.agentsam/features/oauth-login-portal/ui.json +35 -0
- package/packages/identity/docs/PORTABLE_IDENTITY_ARCHITECTURE.md +50 -0
- package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +31 -0
- package/packages/identity/migrations/sqlite/001_identity_core.sql +99 -0
- package/packages/identity/migrations/sqlite/002_identity_oauth_client.sql +38 -0
- package/packages/identity/migrations/sqlite/003_identity_oauth_server.sql +64 -0
- package/packages/identity/package.json +4 -3
- package/packages/identity/src/adapters/cloudflare-d1/ids.js +4 -0
- package/packages/identity/src/adapters/cloudflare-d1/index.js +156 -18
- package/packages/identity/src/adapters/sqlite/index.js +319 -0
- package/packages/identity/src/app/verify-app.js +95 -0
- package/packages/identity/src/contracts/identity-store.js +115 -0
- package/packages/identity/src/contracts/provider.js +3 -2
- package/packages/identity/src/contracts/route-ids.js +30 -0
- package/packages/identity/src/contracts/route-projection.js +218 -0
- package/packages/identity/src/contracts/routes.js +11 -0
- package/packages/identity/src/core/browser-paths.js +4 -5
- package/packages/identity/src/core/constants.js +13 -8
- package/packages/identity/src/core/session-policy.js +32 -0
- package/packages/identity/src/frontend/auth-portal/pages/login.html +16 -9
- package/packages/identity/src/frontend/auth-portal/pages/reset.html +3 -3
- package/packages/identity/src/frontend/auth-portal/pages/signup.html +3 -3
- package/packages/identity/src/frontend/auth-portal/preview/dashboard-stub.html +1 -1
- package/packages/identity/src/index.js +27 -0
- package/packages/identity/src/oauth/README.md +10 -4
- package/packages/identity/src/oauth/credentials.js +31 -11
- package/packages/identity/src/oauth/finalize-inbound.js +1 -1
- package/packages/identity/src/oauth/iam-platform.js +13 -12
- package/packages/identity/src/oauth/redirect-paths.js +27 -36
- package/packages/identity/src/providers/cloudflare/index.js +19 -0
- package/packages/identity/src/providers/cloudflare/mapper.js +21 -0
- package/packages/identity/src/providers/cloudflare/oauth.js +48 -0
- package/packages/identity/src/providers/cloudflare/profile.js +28 -0
- package/packages/identity/src/providers/index.js +18 -2
- package/packages/identity/src/server/identity-service.js +35 -8
- package/packages/identity/src/server/mount-policy.js +30 -0
- package/packages/identity/src/server/post-auth.js +79 -0
- package/packages/identity/src/server/worker-router.js +153 -66
- package/packages/identity/tests/finalize-inbound-oauth.test.mjs +6 -6
- package/packages/identity/tests/iam-provider.test.mjs +1 -1
- package/packages/identity/tests/identity-service.test.mjs +47 -1
- package/packages/identity/tests/oauth-credentials.test.mjs +3 -1
- package/packages/identity/tests/portable-identity-architecture.test.mjs +157 -0
- package/packages/identity/tests/session-routes-policy.test.mjs +21 -0
- package/packages/providers/completeful/README.md +38 -0
- package/packages/providers/completeful/package.json +29 -0
- package/packages/providers/completeful/src/client.js +162 -0
- package/packages/providers/completeful/src/events.js +49 -0
- package/packages/providers/completeful/src/index.js +22 -0
- package/packages/providers/completeful/src/tools.js +579 -0
- package/packages/providers/completeful/src/webhooks.js +55 -0
- package/packages/providers/completeful/test/provider.test.mjs +196 -0
- package/packages/theme-church-site/README.md +10 -0
- package/packages/theme-church-site/package.json +31 -0
- package/packages/theme-church-site/src/harvest.json +14 -0
- package/packages/theme-church-site/src/index.js +85 -0
- package/packages/theme-church-site/test/theme.test.mjs +19 -0
- package/packages/theme-companions-site/README.md +10 -0
- package/packages/theme-companions-site/package.json +31 -0
- package/packages/theme-companions-site/src/harvest.json +12 -0
- package/packages/theme-companions-site/src/index.js +83 -0
- package/packages/theme-companions-site/test/theme.test.mjs +19 -0
- package/packages/theme-floors-site/README.md +10 -0
- package/packages/theme-floors-site/package.json +31 -0
- package/packages/theme-floors-site/src/harvest.json +14 -0
- package/packages/theme-floors-site/src/index.js +83 -0
- package/packages/theme-floors-site/test/theme.test.mjs +19 -0
- package/packages/theme-fuelnfree-site/README.md +10 -0
- package/packages/theme-fuelnfree-site/package.json +31 -0
- package/packages/theme-fuelnfree-site/src/harvest.json +13 -0
- package/packages/theme-fuelnfree-site/src/index.js +82 -0
- package/packages/theme-fuelnfree-site/test/theme.test.mjs +19 -0
- package/packages/theme-handyman-site/README.md +10 -0
- package/packages/theme-handyman-site/package.json +31 -0
- package/packages/theme-handyman-site/src/harvest.json +10 -0
- package/packages/theme-handyman-site/src/index.js +84 -0
- package/packages/theme-handyman-site/test/theme.test.mjs +19 -0
- package/packages/theme-insurance-site/README.md +10 -0
- package/packages/theme-insurance-site/package.json +31 -0
- package/packages/theme-insurance-site/src/harvest.json +10 -0
- package/packages/theme-insurance-site/src/index.js +84 -0
- package/packages/theme-insurance-site/test/theme.test.mjs +19 -0
- package/packages/theme-shinshu-site/README.md +10 -0
- package/packages/theme-shinshu-site/package.json +31 -0
- package/packages/theme-shinshu-site/src/harvest.json +12 -0
- package/packages/theme-shinshu-site/src/index.js +84 -0
- package/packages/theme-shinshu-site/test/theme.test.mjs +19 -0
- package/packages/work-graph/README.md +49 -0
- package/packages/work-graph/package.json +19 -0
- package/packages/work-graph/prototype/README.md +32 -0
- package/packages/work-graph/prototype/data/demo-workgraph.js +47 -0
- package/packages/work-graph/prototype/renderers/timeline-model.js +21 -0
- package/packages/work-graph/prototype/renderers/workgraph-runtime.js +38 -0
- package/packages/work-graph/prototype-gnantt.html +655 -0
- package/packages/work-graph/src/adapters/business/projects.js +23 -0
- package/packages/work-graph/src/adapters/engineering/git.js +22 -0
- package/packages/work-graph/src/adapters/engineering/mcp.js +22 -0
- package/packages/work-graph/src/index.js +76 -0
- package/packages/work-graph/src/renderers/gantt-model.js +11 -0
- package/packages/work-graph/src/renderers/timeline.js +16 -0
- package/packages/work-graph/test/work-graph.test.mjs +37 -0
- package/protocol/README.md +12 -0
- package/protocol/apps/agentsam.app.v1.schema.json +51 -0
- package/protocol/brand/brandpack.v1.schema.json +43 -0
- package/protocol/capabilities/cloudflare-cpu-audit-input.schema.json +30 -6
- package/protocol/capabilities/cloudflare-cpu-profile-input.schema.json +18 -4
- package/protocol/capabilities/cloudflare-wrangler-native-input.schema.json +59 -10
- package/protocol/capabilities/knowledge-search-input.schema.json +35 -0
- package/protocol/capabilities/manifest.json +163 -1
- package/protocol/capabilities/repository-audit-input.schema.json +39 -6
- package/protocol/capabilities/repository-snapshot-input.schema.json +15 -3
- package/protocol/capabilities/terminal-exec-input.schema.json +55 -0
- package/protocol/commerce/catalog.v1.json +50 -0
- package/protocol/credentials/issue.v1.schema.json +38 -0
- package/protocol/database/connection.v1.schema.json +41 -0
- package/protocol/embeddings/embedding-profile.v1.schema.json +20 -0
- package/protocol/errors/error-catalog.json +164 -0
- package/protocol/errors/error-envelope.schema.json +678 -0
- package/protocol/errors/recovery.v1.schema.json +50 -0
- package/protocol/features/README.md +57 -0
- package/protocol/features/agentsam.feature.v1.schema.json +290 -0
- package/protocol/features/catalog.json +65 -0
- package/protocol/features/examples/provider-resend.feature.json +17 -0
- package/protocol/go/agentsam-go-runtime.v1.json +17 -0
- package/protocol/knowledge/LIFECYCLE.md +140 -0
- package/protocol/knowledge/README.md +4 -0
- package/protocol/presets/catalog.json +128 -19
- package/protocol/rpc/v1/errors.proto +24 -0
- package/protocol/runtime/workspace-fs.v1.schema.json +71 -0
- package/protocol/sam/activity.v1.schema.json +48 -0
- package/protocol/sam/answer.v1.schema.json +35 -0
- package/protocol/sam/calibration.v1.schema.json +21 -0
- package/protocol/sam/decision-receipt.v1.schema.json +29 -0
- package/protocol/sam/evaluation.v1.schema.json +19 -0
- package/protocol/sam/operation.schema.json +66 -0
- package/protocol/sam/outcome.v1.schema.json +36 -0
- package/protocol/sam/question.v1.schema.json +26 -0
- package/protocol/sam/registry.seed.json +153 -0
- package/protocol/sam/result.schema.json +53 -0
- package/protocol/sam/state.v1.schema.json +23 -0
- package/protocol/skills/agentsam.interaction.v1.schema.json +50 -0
- package/protocol/skills/agentsam.skill.v1.schema.json +57 -0
- package/protocol/theme-refinery/d1-reconciliation.md +48 -0
- package/protocol/theme-refinery/product-metadata.schema.json +27 -0
- package/protocol/theme-refinery/receipts/products-registry-batch-20260924.json +318 -0
- package/protocol/theme-refinery/receipts/theme-harvest-20260924.json +472 -0
- package/protocol/theme-refinery/reconciliation-receipt.schema.json +83 -0
- package/protocol/ui/icon-registry.mjs +226 -0
- package/protocol/ui/icon.v1.schema.json +51 -0
- package/services/cad/server.py +249 -2
- package/skills/README.md +22 -9
- package/skills/agentsam-codebaseindex/SKILL.md +225 -0
- package/skills/catalog.json +14 -0
- package/src/agent/capability-adapter.js +15 -5
- package/src/agent/index.js +2 -1
- package/src/agent/model-turn.js +51 -0
- package/src/agent/responses-runner.js +304 -38
- package/src/capabilities/index.js +1 -0
- package/src/capabilities/terminal-exec.js +78 -0
- package/src/cli/command-catalog.js +130 -0
- package/src/cli/dispatch.js +48 -0
- package/src/cli.js +160 -10
- package/src/cloudflare/index.js +6 -0
- package/src/cloudflare/runtime-status.js +393 -0
- package/src/cloudflare/wrangler.js +17 -1
- package/src/commands/api-key.js +244 -0
- package/src/commands/app.js +138 -0
- package/src/commands/autorag.js +77 -0
- package/src/commands/brand.js +291 -0
- package/src/commands/cad.js +1 -0
- package/src/commands/codebaseindex.js +688 -0
- package/src/commands/connections.js +126 -29
- package/src/commands/context-economics.js +8 -0
- package/src/commands/db.js +7 -0
- package/src/commands/env.js +155 -27
- package/src/commands/eval.js +209 -14
- package/src/commands/go.js +678 -0
- package/src/commands/goap.js +176 -0
- package/src/commands/identity-init.js +27 -3
- package/src/commands/identity-protocol.js +195 -0
- package/src/commands/interaction-clack.js +115 -0
- package/src/commands/knowledge.js +64 -5
- package/src/commands/mcp.js +341 -0
- package/src/commands/merkle-persist.js +3 -1
- package/src/commands/merkle.js +18 -3
- package/src/commands/models.js +110 -24
- package/src/commands/plugins.js +175 -0
- package/src/commands/preferences.js +28 -8
- package/src/commands/product.js +53 -10
- package/src/commands/providers.js +173 -44
- package/src/commands/resume.js +9 -5
- package/src/commands/runtime-status.js +154 -0
- package/src/commands/shell.js +508 -56
- package/src/commands/skill.js +248 -0
- package/src/commands/skills.js +1 -1
- package/src/commands/start-local.js +4 -0
- package/src/commands/status.js +82 -7
- package/src/commands/tunnel.js +228 -195
- package/src/commands/whoami.js +156 -12
- package/src/context/budget.js +6 -0
- package/src/context/index.js +2 -1
- package/src/context/project-card.js +75 -0
- package/src/errors/contract.js +34 -211
- package/src/errors/diagnostic.js +95 -51
- package/src/errors/index.js +6 -13
- package/src/eval/index.js +6 -0
- package/src/eval/live.js +439 -0
- package/src/features/resolve.js +242 -0
- package/src/go/build.js +298 -0
- package/src/go/cloudflare.js +608 -0
- package/src/go/container.js +120 -0
- package/src/go/contract.js +144 -0
- package/src/go/discover.js +212 -0
- package/src/go/index.js +25 -0
- package/src/go/native-probe-runner.mjs +119 -0
- package/src/go/official-registry.js +280 -0
- package/src/go/official-release.js +10 -0
- package/src/go/receipts.js +144 -0
- package/src/go/verify.js +38 -0
- package/src/index.js +127 -1
- package/src/indexing/ingest/discover-models.js +298 -0
- package/src/indexing/ingest/inventory.js +243 -0
- package/src/indexing/ingest/job-graph.js +181 -0
- package/src/indexing/ingest/materials.js +210 -0
- package/src/knowledge/config.js +13 -5
- package/src/knowledge/engine.js +23 -8
- package/src/knowledge/index.js +1 -0
- package/src/knowledge/lane-registry.js +46 -0
- package/src/knowledge/providers/gemini.js +48 -8
- package/src/knowledge/service/client.js +13 -1
- package/src/knowledge/service/grpc-codec.js +156 -53
- package/src/knowledge/service/job-engine.js +133 -11
- package/src/knowledge/service/job-worker.js +34 -5
- package/src/knowledge/service/server.js +10 -1
- package/src/knowledge/store-discovery.js +77 -0
- package/src/lib/account-session.js +8 -2
- package/src/lib/agent-instructions.js +3 -0
- package/src/lib/auth.js +7 -3
- package/src/lib/cad/blender.js +42 -3
- package/src/lib/cad/d1-project-store.js +43 -0
- package/src/lib/cad/discovery.js +616 -0
- package/src/lib/cad/docker-executor.js +352 -0
- package/src/lib/cad/freecad.js +253 -0
- package/src/lib/cad/index.js +40 -0
- package/src/lib/cad/openscad.js +198 -0
- package/src/lib/cad/project-cli.d.ts +2 -0
- package/src/lib/cad/project-cli.js +21 -0
- package/src/lib/cad/project-contract.d.ts +3 -0
- package/src/lib/cad/project-contract.js +1 -0
- package/src/lib/cad/project-recipe.js +30 -0
- package/src/lib/cad/project-runtime.d.ts +2 -0
- package/src/lib/cad/project-runtime.js +53 -0
- package/src/lib/cad/project-store.js +25 -0
- package/src/lib/cad/project-workflows.js +31 -0
- package/src/lib/cad-docker.js +21 -2
- package/src/lib/cli-preferences.js +17 -2
- package/src/lib/core-client.js +37 -18
- package/src/lib/deploy/local-studio.js +6 -5
- package/src/lib/dockerize.js +3 -0
- package/src/lib/execution-approvals.js +1 -0
- package/src/lib/identity-scaffold.js +4 -1
- package/src/lib/knowledge-docker.js +9 -1
- package/src/lib/local-sessions.js +124 -34
- package/src/lib/local-status.js +35 -14
- package/src/lib/project-config.js +9 -0
- package/src/lib/provider-credentials.js +136 -32
- package/src/lib/scaffold/resolve-cloudflare-account.js +37 -0
- package/src/lib/scaffold/wizards/cms.js +2 -8
- package/src/lib/scaffold/wizards/worker-api.js +2 -8
- package/src/lib/slash-commands.js +10 -2
- package/src/local/migrations.js +109 -1
- package/src/local/runtime-store.js +31 -5
- package/src/local/sqlite.js +36 -1
- package/src/local-fs/capability.js +121 -0
- package/src/local-fs/freshness.js +75 -0
- package/src/local-fs/index.js +385 -0
- package/src/local-fs/paths.js +100 -0
- package/src/local-pty/server.js +295 -19
- package/src/mcp/authority.js +348 -0
- package/src/mcp/client-adapters.js +431 -0
- package/src/mcp/client.js +172 -0
- package/src/mcp/index.js +47 -0
- package/src/mcp/telemetry.js +103 -0
- package/src/models/ai-access-onboarding.js +112 -0
- package/src/models/catalog.js +329 -51
- package/src/models/discovery.js +34 -6
- package/src/models/index.js +2 -0
- package/src/models/inventory-core.js +190 -0
- package/src/models/policy.js +20 -0
- package/src/plugins/cloudflare.js +103 -0
- package/src/plugins/completeful.js +69 -0
- package/src/plugins/contracts.js +86 -0
- package/src/plugins/index.js +11 -0
- package/src/plugins/registry.js +207 -0
- package/src/plugins/resource-scope.js +45 -0
- package/src/plugins/runtime.js +118 -0
- package/src/plugins/vectorize.js +31 -0
- package/src/progression/engine.js +171 -0
- package/src/progression/index.js +1 -0
- package/src/providers/cloudflare-chat.js +1 -1
- package/src/providers/gemini-generate-content.js +2 -1
- package/src/providers/openai-responses.js +45 -16
- package/src/providers/tool-schema.js +85 -0
- package/src/repository/index.js +29 -0
- package/src/rpc/generated/errors_pb.js +961 -1
- package/src/sam/activity/index.js +183 -0
- package/src/sam/client.js +252 -0
- package/src/sam/decision/calibration.js +109 -0
- package/src/sam/decision/confidence.js +126 -0
- package/src/sam/decision/evaluate.js +157 -0
- package/src/sam/decision/evaluators/deterministic.js +341 -0
- package/src/sam/decision/evaluators/heuristic.js +61 -0
- package/src/sam/decision/evaluators/select.js +50 -0
- package/src/sam/decision/evaluators/semantic.js +149 -0
- package/src/sam/decision/hierarchical.js +61 -0
- package/src/sam/decision/index.js +53 -0
- package/src/sam/decision/policy.js +86 -0
- package/src/sam/decision/questions.js +120 -0
- package/src/sam/decision/receipt.js +148 -0
- package/src/sam/decision/state.js +117 -0
- package/src/sam/decision/types.js +22 -0
- package/src/sam/decision/validate.js +200 -0
- package/src/sam/define.js +51 -0
- package/src/sam/index.js +65 -0
- package/src/sam/operations/brand-scan.js +62 -0
- package/src/sam/operations/cad-blender-inspect.js +36 -0
- package/src/sam/operations/codebaseindex-ingest.js +49 -0
- package/src/sam/operations/decision-evaluate.js +59 -0
- package/src/sam/operations/planning-astar.js +77 -0
- package/src/sam/operations/planning-goap.js +60 -0
- package/src/sam/operations/repository-inspect.js +72 -0
- package/src/sam/operations/security-scan.js +33 -0
- package/src/sam/operations/terminal-exec.js +29 -0
- package/src/sam/planning/astar.js +311 -0
- package/src/sam/planning/goap.js +177 -0
- package/src/sam/planning/index.js +21 -0
- package/src/sam/planning/state.js +84 -0
- package/src/sam/registry.js +48 -0
- package/src/sam/result.js +77 -0
- package/src/sam/seed.js +44 -0
- package/src/sam/types.js +91 -0
- package/src/security/local-vault.js +415 -0
- package/src/security/process.js +20 -4
- package/src/skills/catalog.js +64 -0
- package/src/skills/content-resolver.js +124 -0
- package/src/skills/hosted-store.js +37 -0
- package/src/skills/index.js +29 -64
- package/src/skills/interaction.js +102 -0
- package/src/skills/local-store.js +228 -0
- package/src/skills/manifest.js +104 -0
- package/src/skills/metrics.js +31 -0
- package/src/skills/registry.js +184 -0
- package/src/skills/runtime.js +287 -0
- package/src/skills/slash.js +44 -0
- package/src/status/actions.js +192 -0
- package/src/tools/hydrate.js +5 -1
- package/src/tools/index.js +7 -0
- package/src/tools/redact.js +64 -0
- package/src/tools/registry.js +83 -0
- package/src/tools/runtime.js +257 -0
- package/src/tools/search.js +21 -8
- package/src/ui/ansi.js +117 -3
- package/src/ui/cli/activity.js +76 -7
- package/src/ui/cli/footer.js +110 -9
- package/src/ui/cli/help.js +96 -96
- package/src/ui/wireframes.js +166 -0
- package/test/account-session.test.mjs +28 -0
- package/test/apps-scaffold-contract.test.mjs +16 -1
- package/test/capabilities.test.mjs +1 -1
- package/test/cli/api-key-env-whoami.test.mjs +129 -0
- package/test/cli/codebaseindex-plan-ux.test.mjs +37 -0
- package/test/cli/eval-live.test.mjs +219 -0
- package/test/cli/go.test.mjs +128 -0
- package/test/cli/local-vault-and-provider-setup.test.mjs +268 -0
- package/test/cli/mcp-client.test.mjs +245 -0
- package/test/cli/runtime-ui.test.mjs +69 -2
- package/test/cli/skill-npm-and-env.test.mjs +52 -0
- package/test/cli/status-actions.test.mjs +88 -0
- package/test/cli/wireframes-go-registry.test.mjs +139 -0
- package/test/cloudflare-connector.test.mjs +3 -6
- package/test/cloudflare-runtime.test.mjs +8 -1
- package/test/context.test.mjs +15 -0
- package/test/error-diagnostics.test.mjs +9 -0
- package/test/fixtures/cad/courtyard-house.json +208 -0
- package/test/go/build-source-identity.test.mjs +31 -0
- package/test/go/cloudflare-probe.test.mjs +317 -0
- package/test/go/distribution.test.mjs +28 -0
- package/test/integration/ai-access-onboarding.test.mjs +47 -0
- package/test/integration/app-command.test.mjs +55 -0
- package/test/integration/cad-discovery.test.mjs +158 -0
- package/test/integration/cad-docker-executor.test.mjs +249 -0
- package/test/integration/cad-execution.test.mjs +184 -0
- package/test/integration/cad-project-app.test.mjs +31 -0
- package/test/integration/cad-project-d1.test.mjs +25 -0
- package/test/integration/cad-project-native.test.mjs +24 -0
- package/test/integration/cad-project-workflow.test.mjs +9 -0
- package/test/integration/cad-project.test.mjs +82 -0
- package/test/integration/cli-help.test.mjs +5 -1
- package/test/integration/cms-site-tenancy-contract.test.mjs +256 -0
- package/test/integration/codebaseindex-ingest.test.mjs +166 -0
- package/test/integration/core-client.integration.test.mjs +55 -0
- package/test/integration/error-runtime-rpc.test.mjs +71 -0
- package/test/integration/features-resolve.test.mjs +128 -0
- package/test/integration/icon-registry.test.mjs +67 -0
- package/test/integration/ingest-discover-models.test.mjs +30 -0
- package/test/integration/install-script.test.mjs +110 -0
- package/test/integration/inventory-core.test.mjs +53 -0
- package/test/integration/local-fs.test.mjs +113 -0
- package/test/integration/plugins-cloudflare.integration.test.mjs +28 -0
- package/test/integration/provider-env-cli.test.mjs +3 -2
- package/test/integration/runtime-migrations.test.mjs +6 -1
- package/test/integration/runtime-status.integration.test.mjs +211 -0
- package/test/integration/sam-activity-recovery.test.mjs +147 -0
- package/test/integration/sam-decision.test.mjs +584 -0
- package/test/integration/sam-kernel.test.mjs +99 -0
- package/test/integration/sam-planning-astar.test.mjs +279 -0
- package/test/integration/scaffold-cloudflare.test.mjs +46 -0
- package/test/integration/skill-runtime.test.mjs +240 -0
- package/test/integration/storage-architecture.test.mjs +154 -0
- package/test/integration/store-discovery.test.mjs +44 -0
- package/test/integration/studio-fs-pty-e2e.test.mjs +294 -0
- package/test/integration/terminal-exec.integration.test.mjs +86 -0
- package/test/integration/tool-runtime.test.mjs +124 -0
- package/test/integration/tool-schema.test.mjs +59 -0
- package/test/knowledge-service.test.mjs +4 -0
- package/test/local-sessions.test.mjs +11 -2
- package/test/local-studio-deploy.test.mjs +1 -1
- package/test/model-catalog.test.mjs +28 -1
- package/test/models.test.mjs +172 -11
- package/test/openai-responses.test.mjs +60 -0
- package/test/provider-credentials.test.mjs +15 -5
- package/test/responses-runner.test.mjs +321 -6
- package/test/shell.test.mjs +151 -6
- package/test/smoke.mjs +2 -2
- package/test/tools-search.test.mjs +33 -0
- package/test/unit/website-assets-bindings.test.mjs +60 -0
- package/test/whoami-resume.test.mjs +82 -3
- package/examples/gorilla-shell/README.md +0 -15
- package/src/lib/gorilla-template.js +0 -54
- package/templates/gorilla-shell/App.tsx +0 -639
- package/templates/gorilla-shell/README.md +0 -34
- package/templates/gorilla-shell/index.html +0 -15
- package/templates/gorilla-shell/main.jsx +0 -9
- package/templates/gorilla-shell/package.json +0 -19
- package/templates/gorilla-shell/vite.config.js +0 -21
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "agentsam.feature.v1",
|
|
3
|
+
"id": "identity.oauth-login-portal",
|
|
4
|
+
"name": "OAuth Login Portal",
|
|
5
|
+
"kind": "integration",
|
|
6
|
+
"status": "extracted",
|
|
7
|
+
"package": {
|
|
8
|
+
"name": "@inneranimalmedia/agentsam-sdk-identity",
|
|
9
|
+
"version": "2.6.3",
|
|
10
|
+
"directory": "packages/identity"
|
|
11
|
+
},
|
|
12
|
+
"provides": [
|
|
13
|
+
"identity.init",
|
|
14
|
+
"identity.login",
|
|
15
|
+
"identity.session",
|
|
16
|
+
"identity.oauth",
|
|
17
|
+
"identity.password-reset",
|
|
18
|
+
"identity.portal-ui"
|
|
19
|
+
],
|
|
20
|
+
"runtime": [
|
|
21
|
+
"worker",
|
|
22
|
+
"browser"
|
|
23
|
+
],
|
|
24
|
+
"contributes": {
|
|
25
|
+
"ui": [
|
|
26
|
+
"auth-portal"
|
|
27
|
+
],
|
|
28
|
+
"migrations": [
|
|
29
|
+
"src/migrations/0001_identity_core.sql",
|
|
30
|
+
"src/migrations/0002_company.sql"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"artifacts": [
|
|
34
|
+
{
|
|
35
|
+
"kind": "provider-catalog",
|
|
36
|
+
"path": "./providers.json"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"kind": "resources",
|
|
40
|
+
"path": "./resources.json"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"kind": "routes",
|
|
44
|
+
"path": "./routes.json"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"kind": "ui",
|
|
48
|
+
"path": "./ui.json"
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"activation": {
|
|
52
|
+
"steps": [
|
|
53
|
+
"validate_manifest",
|
|
54
|
+
"check_runtime",
|
|
55
|
+
"resolve_requires",
|
|
56
|
+
"plan_migrations",
|
|
57
|
+
"plan_routes",
|
|
58
|
+
"operator_approval",
|
|
59
|
+
"activate",
|
|
60
|
+
"verify",
|
|
61
|
+
"write_install_receipt"
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "agentsam.feature.provider-catalog.v1",
|
|
3
|
+
"feature": "identity.oauth-login-portal",
|
|
4
|
+
"default_provider": "inneranimalmedia",
|
|
5
|
+
"providers": [
|
|
6
|
+
{
|
|
7
|
+
"id": "inneranimalmedia",
|
|
8
|
+
"aliases": ["iam"],
|
|
9
|
+
"oauth_provider_key": "iam",
|
|
10
|
+
"kind": "oidc",
|
|
11
|
+
"status": "ready",
|
|
12
|
+
"title": "Inner Animal Media platform identity",
|
|
13
|
+
"implementation": "src/providers/iam",
|
|
14
|
+
"capabilities": [
|
|
15
|
+
"identity.oauth.authorize",
|
|
16
|
+
"identity.oauth.callback",
|
|
17
|
+
"identity.profile.resolve"
|
|
18
|
+
],
|
|
19
|
+
"required_configuration": [
|
|
20
|
+
"IAM_CLIENT_ID",
|
|
21
|
+
"IAM_CLIENT_SECRET"
|
|
22
|
+
],
|
|
23
|
+
"notes": "Protocol/selection id is inneranimalmedia. OAuth/DB provider key remains iam."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "google",
|
|
27
|
+
"kind": "oauth",
|
|
28
|
+
"status": "ready",
|
|
29
|
+
"implementation": "src/providers/google",
|
|
30
|
+
"capabilities": [
|
|
31
|
+
"identity.oauth.authorize",
|
|
32
|
+
"identity.oauth.callback",
|
|
33
|
+
"identity.profile.resolve"
|
|
34
|
+
],
|
|
35
|
+
"required_configuration": [
|
|
36
|
+
"GOOGLE_CLIENT_ID",
|
|
37
|
+
"GOOGLE_CLIENT_SECRET"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "github",
|
|
42
|
+
"kind": "oauth",
|
|
43
|
+
"status": "ready",
|
|
44
|
+
"implementation": "src/providers/github",
|
|
45
|
+
"capabilities": [
|
|
46
|
+
"identity.oauth.authorize",
|
|
47
|
+
"identity.oauth.callback",
|
|
48
|
+
"identity.profile.resolve"
|
|
49
|
+
],
|
|
50
|
+
"required_configuration": [
|
|
51
|
+
"GITHUB_CLIENT_ID",
|
|
52
|
+
"GITHUB_CLIENT_SECRET"
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"id": "gcp",
|
|
57
|
+
"kind": "oauth",
|
|
58
|
+
"status": "scaffold",
|
|
59
|
+
"implementation": "src/providers/gcp",
|
|
60
|
+
"capabilities": [
|
|
61
|
+
"identity.oauth.authorize",
|
|
62
|
+
"identity.profile.resolve"
|
|
63
|
+
],
|
|
64
|
+
"notes": "Contract + authorize URL only — exchange not implemented."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": "email",
|
|
68
|
+
"kind": "password",
|
|
69
|
+
"status": "scaffold",
|
|
70
|
+
"implementation": "src/providers/email",
|
|
71
|
+
"capabilities": [
|
|
72
|
+
"identity.profile.resolve"
|
|
73
|
+
],
|
|
74
|
+
"notes": "Password verification not yet implemented by the portable provider."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "cloudflare",
|
|
78
|
+
"kind": "oauth",
|
|
79
|
+
"status": "ready",
|
|
80
|
+
"registered": true,
|
|
81
|
+
"implementation": "src/providers/cloudflare",
|
|
82
|
+
"capabilities": [
|
|
83
|
+
"identity.oauth.authorize",
|
|
84
|
+
"identity.oauth.callback",
|
|
85
|
+
"identity.profile.resolve"
|
|
86
|
+
],
|
|
87
|
+
"required_configuration": [
|
|
88
|
+
"CLOUDFLARE_OAUTH_CLIENT_ID"
|
|
89
|
+
],
|
|
90
|
+
"optional_configuration": [
|
|
91
|
+
"CLOUDFLARE_OAUTH_CLIENT_SECRET"
|
|
92
|
+
],
|
|
93
|
+
"notes": "Registered in identityProviders. Client secret optional for PKCE-only clients."
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "agentsam.feature.resources.v1",
|
|
3
|
+
"feature": "identity.oauth-login-portal",
|
|
4
|
+
"engine": "d1",
|
|
5
|
+
"migration_sources": [
|
|
6
|
+
"src/migrations/0001_identity_core.sql",
|
|
7
|
+
"src/migrations/0002_company.sql"
|
|
8
|
+
],
|
|
9
|
+
"notes": "Migration files remain the schema authority. This JSON is an index/contract only.",
|
|
10
|
+
"tables": [
|
|
11
|
+
{
|
|
12
|
+
"name": "auth_users",
|
|
13
|
+
"purpose": "canonical user identity",
|
|
14
|
+
"source": "src/migrations/0001_identity_core.sql"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "auth_sessions",
|
|
18
|
+
"purpose": "authenticated browser/session state",
|
|
19
|
+
"owner_column": "user_id",
|
|
20
|
+
"source": "src/migrations/0001_identity_core.sql"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "account_identities",
|
|
24
|
+
"purpose": "external identity/provider mapping",
|
|
25
|
+
"owner_column": "account_id",
|
|
26
|
+
"source": "src/migrations/0001_identity_core.sql"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "oauth_states",
|
|
30
|
+
"purpose": "short-lived OAuth/PKCE transaction state",
|
|
31
|
+
"sensitive": true,
|
|
32
|
+
"source": "src/migrations/0001_identity_core.sql"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "password_reset_tokens",
|
|
36
|
+
"purpose": "password recovery token state",
|
|
37
|
+
"sensitive": true,
|
|
38
|
+
"owner_column": "user_id",
|
|
39
|
+
"source": "src/migrations/0001_identity_core.sql"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "company",
|
|
43
|
+
"purpose": "auth portal/company branding",
|
|
44
|
+
"source": "src/migrations/0002_company.sql"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "agentsam.feature.routes.v1",
|
|
3
|
+
"feature": "identity.oauth-login-portal",
|
|
4
|
+
"router": "src/server/worker-router.js",
|
|
5
|
+
"routes": [
|
|
6
|
+
{
|
|
7
|
+
"path": "/auth/login",
|
|
8
|
+
"kind": "page",
|
|
9
|
+
"access": "public",
|
|
10
|
+
"surface": "auth-portal"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"path": "/auth/signup",
|
|
14
|
+
"kind": "page",
|
|
15
|
+
"access": "public",
|
|
16
|
+
"surface": "auth-portal"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"path": "/auth/reset",
|
|
20
|
+
"kind": "page",
|
|
21
|
+
"access": "public",
|
|
22
|
+
"surface": "auth-portal"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"path": "/api/auth/login",
|
|
26
|
+
"method": "POST",
|
|
27
|
+
"kind": "api",
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"path": "/api/auth/signup",
|
|
32
|
+
"method": "POST",
|
|
33
|
+
"kind": "api",
|
|
34
|
+
"access": "public"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"path": "/api/oauth/google/start",
|
|
38
|
+
"kind": "api",
|
|
39
|
+
"access": "public",
|
|
40
|
+
"provider": "google"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"path": "/api/oauth/github/start",
|
|
44
|
+
"kind": "api",
|
|
45
|
+
"access": "public",
|
|
46
|
+
"provider": "github"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"path": "/api/oauth/inneranimalmedia/start",
|
|
50
|
+
"kind": "api",
|
|
51
|
+
"access": "public",
|
|
52
|
+
"provider": "inneranimalmedia",
|
|
53
|
+
"oauth_provider_key": "iam",
|
|
54
|
+
"aliases": ["/api/oauth/iam/start"]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"path": "/api/oauth/inneranimalmedia/callback",
|
|
58
|
+
"kind": "api",
|
|
59
|
+
"access": "public",
|
|
60
|
+
"provider": "inneranimalmedia",
|
|
61
|
+
"oauth_provider_key": "iam",
|
|
62
|
+
"aliases": ["/api/oauth/iam/callback"]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"path": "/api/oauth/cloudflare/start",
|
|
66
|
+
"kind": "api",
|
|
67
|
+
"access": "public",
|
|
68
|
+
"provider": "cloudflare"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"path": "/api/oauth/cloudflare/callback",
|
|
72
|
+
"kind": "api",
|
|
73
|
+
"access": "public",
|
|
74
|
+
"provider": "cloudflare"
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"sources": [
|
|
78
|
+
"src/frontend/auth-portal/README.md",
|
|
79
|
+
"src/oauth/README.md",
|
|
80
|
+
"src/oauth/redirect-paths.js",
|
|
81
|
+
"src/server/worker-router.js"
|
|
82
|
+
]
|
|
83
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "agentsam.feature.ui.v1",
|
|
3
|
+
"feature": "identity.oauth-login-portal",
|
|
4
|
+
"surface": "auth-portal",
|
|
5
|
+
"assets": [
|
|
6
|
+
"src/frontend/auth-portal/pages/login.html",
|
|
7
|
+
"src/frontend/auth-portal/pages/signup.html",
|
|
8
|
+
"src/frontend/auth-portal/pages/reset.html",
|
|
9
|
+
"src/frontend/auth-portal/shared/company-branding.js"
|
|
10
|
+
],
|
|
11
|
+
"customizable": [
|
|
12
|
+
"logo",
|
|
13
|
+
"colors",
|
|
14
|
+
"support info",
|
|
15
|
+
"company branding"
|
|
16
|
+
],
|
|
17
|
+
"customizable_fields": [
|
|
18
|
+
"company.name",
|
|
19
|
+
"company.logo_url",
|
|
20
|
+
"company.favicon_url",
|
|
21
|
+
"company.primary_color",
|
|
22
|
+
"company.auth_bg_color",
|
|
23
|
+
"company.support_email",
|
|
24
|
+
"company.website_url",
|
|
25
|
+
"company.tagline"
|
|
26
|
+
],
|
|
27
|
+
"behavior": {
|
|
28
|
+
"implementation": "packages/identity",
|
|
29
|
+
"host_supplies": "brand/runtime config"
|
|
30
|
+
},
|
|
31
|
+
"ownership": {
|
|
32
|
+
"implementation": "packages/identity",
|
|
33
|
+
"branding": "host"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Portable Identity Architecture (pre-commit return)
|
|
2
|
+
|
|
3
|
+
## Invariants
|
|
4
|
+
|
|
5
|
+
1. Portable SDK owns **semantic route IDs** (`identity.login`), never host paths.
|
|
6
|
+
2. App manifests own **HTTP projections**.
|
|
7
|
+
3. Auth-capable apps MUST declare authenticated / login / recovery / OAuth callback.
|
|
8
|
+
4. OAuth **transactions** persist `app_id` + `return_to` (required).
|
|
9
|
+
5. Post-login: valid `return_to` → authenticated entry → recovery+error → **throw** (never `/`).
|
|
10
|
+
6. No `DASHBOARD_AFTER_LOGIN_PATH`, no `LOCAL_STUDIO_APP` in identity, no `APP_HOME_PATH` env.
|
|
11
|
+
7. Missing shell/route → package verification failure.
|
|
12
|
+
|
|
13
|
+
## Artifacts delivered
|
|
14
|
+
|
|
15
|
+
| Deliverable | Location |
|
|
16
|
+
|---|---|
|
|
17
|
+
| IdentityStore + errors | `packages/identity/src/contracts/identity-store.js` |
|
|
18
|
+
| Semantic IDs | `packages/identity/src/contracts/route-ids.js` |
|
|
19
|
+
| Route projection | `packages/identity/src/contracts/route-projection.js` |
|
|
20
|
+
| Fail-closed post-auth | `packages/identity/src/server/post-auth.js` |
|
|
21
|
+
| SESSION_POLICY | `packages/identity/src/core/session-policy.js` |
|
|
22
|
+
| SQLite core pack | `packages/identity/migrations/sqlite/001_identity_core.sql` |
|
|
23
|
+
| SQLite oauth-client | `packages/identity/migrations/sqlite/002_identity_oauth_client.sql` |
|
|
24
|
+
| SQLite oauth-server (optional) | `packages/identity/migrations/sqlite/003_identity_oauth_server.sql` |
|
|
25
|
+
| D1 mapping | `packages/identity/migrations/D1_SCHEMA_MAPPING.md` |
|
|
26
|
+
| createSqliteIdentityAdapter | `packages/identity/src/adapters/sqlite/index.js` |
|
|
27
|
+
| App verify | `packages/identity/src/app/verify-app.js` |
|
|
28
|
+
| App auth contract (Local Studio) | `apps/local-studio/agentsam.app.json` |
|
|
29
|
+
| Tests | `packages/identity/tests/portable-identity-architecture.test.mjs` |
|
|
30
|
+
|
|
31
|
+
## Redirect resolution
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
transaction.return_to → owned by app?
|
|
35
|
+
yes → use
|
|
36
|
+
no → app.authenticated
|
|
37
|
+
missing → identity.recovery?error=…
|
|
38
|
+
none → IdentityRoutingError('AUTH_DESTINATION_UNRESOLVED')
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Local-only path
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
applySqliteIdentityMigrations(db) // core + oauth-client
|
|
45
|
+
createSqliteIdentityAdapter(db)
|
|
46
|
+
createIdentityService({ adapter, app, routeRegistry })
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Zero Cloudflare / IAM / D1 required for password + session + OAuth transaction store.
|
|
50
|
+
Provider secrets → encrypted vault via `credential_ref` on `identity_provider_connections`.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Identity schema mapping — portable ↔ Cloudflare D1
|
|
2
|
+
|
|
3
|
+
Portable SQLite (`packages/identity/migrations/sqlite/`) is the product schema.
|
|
4
|
+
The D1 adapter maps existing hosted table names without requiring a big-bang rename.
|
|
5
|
+
|
|
6
|
+
| Portable (SQLite) | Hosted D1 (current) | Notes |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| `identity_users` | `auth_users` | Same columns |
|
|
9
|
+
| `identity_external_accounts` | `account_identities` | `user_id` ↔ `account_id` |
|
|
10
|
+
| `identity_sessions` | `auth_sessions` | Same columns |
|
|
11
|
+
| `identity_auth_events` | `auth_event_log` | Same columns |
|
|
12
|
+
| `identity_oauth_transactions` | `identity_oauth_states` → migrate to `identity_oauth_transactions` | Requires `app_id NOT NULL`; no silent pre-app_id fallback |
|
|
13
|
+
| `identity_provider_connections` | (new / connector tables) | `credential_ref` → vault/KMS; never store raw tokens in D1 rows |
|
|
14
|
+
| `identity_app_registry` | cache of `agentsam.app.json` | Disk manifests remain SSOT |
|
|
15
|
+
| `identity_route_registry` | projection cache | Disk manifests remain SSOT |
|
|
16
|
+
| `identity_oauth_clients` … | optional `identity.oauth-server` pack | Only if product is an AS |
|
|
17
|
+
|
|
18
|
+
## Schema version
|
|
19
|
+
|
|
20
|
+
Both adapters read `identity_schema_meta.schema_version` (SQLite) or
|
|
21
|
+
`PRAGMA`/meta row. Missing `app_id` on OAuth transactions is an
|
|
22
|
+
`IdentitySchemaError('IDENTITY_SCHEMA_MIGRATION_REQUIRED')`, not a soft
|
|
23
|
+
downgrade.
|
|
24
|
+
|
|
25
|
+
## Packs
|
|
26
|
+
|
|
27
|
+
| Pack | Apply when |
|
|
28
|
+
|---|---|
|
|
29
|
+
| `identity.core` | Always (local + hosted) |
|
|
30
|
+
| `identity.oauth-client` | Signing into external IdPs |
|
|
31
|
+
| `identity.oauth-server` | Product issues its own codes/tokens |
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
-- identity.core — portable local SQLite (no Cloudflare / IAM required)
|
|
2
|
+
-- Timestamps: INTEGER unixepoch seconds
|
|
3
|
+
|
|
4
|
+
PRAGMA foreign_keys = ON;
|
|
5
|
+
|
|
6
|
+
CREATE TABLE IF NOT EXISTS identity_schema_meta (
|
|
7
|
+
key TEXT PRIMARY KEY NOT NULL,
|
|
8
|
+
value TEXT NOT NULL
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
INSERT OR REPLACE INTO identity_schema_meta (key, value)
|
|
12
|
+
VALUES ('schema_version', '1');
|
|
13
|
+
|
|
14
|
+
INSERT OR IGNORE INTO identity_schema_meta (key, value)
|
|
15
|
+
VALUES ('pack_core', '1');
|
|
16
|
+
|
|
17
|
+
CREATE TABLE IF NOT EXISTS identity_users (
|
|
18
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
19
|
+
email TEXT NOT NULL COLLATE NOCASE,
|
|
20
|
+
display_name TEXT,
|
|
21
|
+
password_hash TEXT,
|
|
22
|
+
salt TEXT,
|
|
23
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
24
|
+
created_at INTEGER NOT NULL,
|
|
25
|
+
updated_at INTEGER NOT NULL
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_identity_users_email
|
|
29
|
+
ON identity_users(email);
|
|
30
|
+
|
|
31
|
+
CREATE TABLE IF NOT EXISTS identity_external_accounts (
|
|
32
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
33
|
+
user_id TEXT NOT NULL,
|
|
34
|
+
provider TEXT NOT NULL,
|
|
35
|
+
provider_subject TEXT NOT NULL,
|
|
36
|
+
email TEXT,
|
|
37
|
+
created_at INTEGER NOT NULL,
|
|
38
|
+
updated_at INTEGER NOT NULL,
|
|
39
|
+
FOREIGN KEY (user_id) REFERENCES identity_users(id)
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_identity_external_provider_subject
|
|
43
|
+
ON identity_external_accounts(provider, provider_subject);
|
|
44
|
+
|
|
45
|
+
CREATE TABLE IF NOT EXISTS identity_sessions (
|
|
46
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
47
|
+
user_id TEXT NOT NULL,
|
|
48
|
+
email TEXT,
|
|
49
|
+
provider TEXT,
|
|
50
|
+
provider_subject TEXT,
|
|
51
|
+
display_name TEXT,
|
|
52
|
+
expires_at INTEGER NOT NULL,
|
|
53
|
+
revoked_at INTEGER,
|
|
54
|
+
created_at INTEGER NOT NULL,
|
|
55
|
+
last_active_at INTEGER,
|
|
56
|
+
FOREIGN KEY (user_id) REFERENCES identity_users(id)
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
CREATE INDEX IF NOT EXISTS idx_identity_sessions_user_expires
|
|
60
|
+
ON identity_sessions(user_id, expires_at);
|
|
61
|
+
|
|
62
|
+
CREATE TABLE IF NOT EXISTS identity_auth_events (
|
|
63
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
64
|
+
user_id TEXT,
|
|
65
|
+
event_type TEXT NOT NULL,
|
|
66
|
+
status TEXT NOT NULL DEFAULT 'ok',
|
|
67
|
+
provider TEXT,
|
|
68
|
+
metadata_json TEXT NOT NULL DEFAULT '{}',
|
|
69
|
+
ip_hash TEXT,
|
|
70
|
+
user_agent_hash TEXT,
|
|
71
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
CREATE INDEX IF NOT EXISTS idx_identity_auth_events_user_created
|
|
75
|
+
ON identity_auth_events(user_id, created_at DESC);
|
|
76
|
+
|
|
77
|
+
CREATE TABLE IF NOT EXISTS identity_app_registry (
|
|
78
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
79
|
+
package_name TEXT,
|
|
80
|
+
manifest_version TEXT,
|
|
81
|
+
display_name TEXT,
|
|
82
|
+
authenticated_route_id TEXT NOT NULL,
|
|
83
|
+
login_route_id TEXT NOT NULL,
|
|
84
|
+
recovery_route_id TEXT NOT NULL,
|
|
85
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
86
|
+
installed_at INTEGER NOT NULL,
|
|
87
|
+
updated_at INTEGER NOT NULL
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
CREATE TABLE IF NOT EXISTS identity_route_registry (
|
|
91
|
+
app_id TEXT NOT NULL,
|
|
92
|
+
route_id TEXT NOT NULL,
|
|
93
|
+
path_pattern TEXT NOT NULL,
|
|
94
|
+
runtime TEXT,
|
|
95
|
+
auth_policy TEXT,
|
|
96
|
+
shell_ref TEXT,
|
|
97
|
+
PRIMARY KEY (app_id, route_id),
|
|
98
|
+
FOREIGN KEY (app_id) REFERENCES identity_app_registry(id)
|
|
99
|
+
);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
-- identity.oauth-client — outbound OAuth (sign in with Google/CF/GitHub/IAM)
|
|
2
|
+
-- Secrets/tokens live in the local encrypted vault; this pack stores refs + metadata.
|
|
3
|
+
|
|
4
|
+
INSERT OR IGNORE INTO identity_schema_meta (key, value)
|
|
5
|
+
VALUES ('pack_oauth_client', '1');
|
|
6
|
+
|
|
7
|
+
CREATE TABLE IF NOT EXISTS identity_oauth_transactions (
|
|
8
|
+
state TEXT PRIMARY KEY NOT NULL,
|
|
9
|
+
provider TEXT NOT NULL,
|
|
10
|
+
code_verifier TEXT NOT NULL,
|
|
11
|
+
return_to TEXT,
|
|
12
|
+
app_id TEXT NOT NULL,
|
|
13
|
+
expires_at INTEGER NOT NULL,
|
|
14
|
+
created_at INTEGER NOT NULL,
|
|
15
|
+
consumed_at INTEGER
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
CREATE INDEX IF NOT EXISTS idx_identity_oauth_transactions_expires
|
|
19
|
+
ON identity_oauth_transactions(expires_at);
|
|
20
|
+
|
|
21
|
+
CREATE INDEX IF NOT EXISTS idx_identity_oauth_transactions_app
|
|
22
|
+
ON identity_oauth_transactions(app_id);
|
|
23
|
+
|
|
24
|
+
CREATE TABLE IF NOT EXISTS identity_provider_connections (
|
|
25
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
26
|
+
user_id TEXT NOT NULL,
|
|
27
|
+
provider TEXT NOT NULL,
|
|
28
|
+
granted_scopes_json TEXT NOT NULL DEFAULT '[]',
|
|
29
|
+
credential_ref TEXT NOT NULL,
|
|
30
|
+
expires_at INTEGER,
|
|
31
|
+
refreshable INTEGER NOT NULL DEFAULT 0,
|
|
32
|
+
created_at INTEGER NOT NULL,
|
|
33
|
+
updated_at INTEGER NOT NULL,
|
|
34
|
+
FOREIGN KEY (user_id) REFERENCES identity_users(id)
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_identity_provider_connections_user_provider
|
|
38
|
+
ON identity_provider_connections(user_id, provider);
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
-- identity.oauth-server — OPTIONAL pack for products that issue their own
|
|
2
|
+
-- client IDs, authorization codes, access tokens, and refresh tokens.
|
|
3
|
+
-- Do not apply unless the installed product is an OAuth authorization server.
|
|
4
|
+
|
|
5
|
+
INSERT OR IGNORE INTO identity_schema_meta (key, value)
|
|
6
|
+
VALUES ('pack_oauth_server', '1');
|
|
7
|
+
|
|
8
|
+
CREATE TABLE IF NOT EXISTS identity_oauth_clients (
|
|
9
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
10
|
+
client_id TEXT NOT NULL UNIQUE,
|
|
11
|
+
client_secret_hash TEXT,
|
|
12
|
+
name TEXT NOT NULL,
|
|
13
|
+
redirect_uris_json TEXT NOT NULL DEFAULT '[]',
|
|
14
|
+
grant_types_json TEXT NOT NULL DEFAULT '["authorization_code"]',
|
|
15
|
+
token_endpoint_auth_method TEXT NOT NULL DEFAULT 'none',
|
|
16
|
+
created_at INTEGER NOT NULL,
|
|
17
|
+
updated_at INTEGER NOT NULL
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
CREATE TABLE IF NOT EXISTS identity_oauth_authorization_codes (
|
|
21
|
+
code_hash TEXT PRIMARY KEY NOT NULL,
|
|
22
|
+
client_id TEXT NOT NULL,
|
|
23
|
+
user_id TEXT NOT NULL,
|
|
24
|
+
redirect_uri TEXT NOT NULL,
|
|
25
|
+
scopes_json TEXT NOT NULL DEFAULT '[]',
|
|
26
|
+
code_challenge TEXT,
|
|
27
|
+
code_challenge_method TEXT,
|
|
28
|
+
expires_at INTEGER NOT NULL,
|
|
29
|
+
consumed_at INTEGER,
|
|
30
|
+
created_at INTEGER NOT NULL,
|
|
31
|
+
FOREIGN KEY (user_id) REFERENCES identity_users(id)
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
CREATE TABLE IF NOT EXISTS identity_oauth_access_tokens (
|
|
35
|
+
token_hash TEXT PRIMARY KEY NOT NULL,
|
|
36
|
+
client_id TEXT NOT NULL,
|
|
37
|
+
user_id TEXT NOT NULL,
|
|
38
|
+
scopes_json TEXT NOT NULL DEFAULT '[]',
|
|
39
|
+
expires_at INTEGER NOT NULL,
|
|
40
|
+
revoked_at INTEGER,
|
|
41
|
+
created_at INTEGER NOT NULL,
|
|
42
|
+
FOREIGN KEY (user_id) REFERENCES identity_users(id)
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
CREATE TABLE IF NOT EXISTS identity_oauth_refresh_tokens (
|
|
46
|
+
token_hash TEXT PRIMARY KEY NOT NULL,
|
|
47
|
+
client_id TEXT NOT NULL,
|
|
48
|
+
user_id TEXT NOT NULL,
|
|
49
|
+
scopes_json TEXT NOT NULL DEFAULT '[]',
|
|
50
|
+
expires_at INTEGER NOT NULL,
|
|
51
|
+
revoked_at INTEGER,
|
|
52
|
+
created_at INTEGER NOT NULL,
|
|
53
|
+
FOREIGN KEY (user_id) REFERENCES identity_users(id)
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS identity_oauth_grants (
|
|
57
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
58
|
+
client_id TEXT NOT NULL,
|
|
59
|
+
user_id TEXT NOT NULL,
|
|
60
|
+
scopes_json TEXT NOT NULL DEFAULT '[]',
|
|
61
|
+
created_at INTEGER NOT NULL,
|
|
62
|
+
revoked_at INTEGER,
|
|
63
|
+
FOREIGN KEY (user_id) REFERENCES identity_users(id)
|
|
64
|
+
);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inneranimalmedia/agentsam-sdk-identity",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.4",
|
|
4
4
|
"private": true,
|
|
5
5
|
"type": "module",
|
|
6
|
-
"description": "Identity module for @inneranimalmedia/agentsam-sdk (workspace
|
|
6
|
+
"description": "Identity module for @inneranimalmedia/agentsam-sdk (workspace — publish via root SDK)",
|
|
7
7
|
"agentsam": {
|
|
8
8
|
"system": "identity",
|
|
9
9
|
"kind": "library",
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"./contracts/external-identity": "./src/contracts/external-identity.js",
|
|
29
29
|
"./contracts/auth-config": "./src/contracts/auth-config.js",
|
|
30
30
|
"./oauth/callback": "./src/oauth/callback.js",
|
|
31
|
-
"./frontend/auth-portal/*": "./src/frontend/auth-portal/*"
|
|
31
|
+
"./frontend/auth-portal/*": "./src/frontend/auth-portal/*",
|
|
32
|
+
"./providers/cloudflare": "./src/providers/cloudflare/index.js"
|
|
32
33
|
},
|
|
33
34
|
"scripts": {
|
|
34
35
|
"test": "node --test tests/*.test.mjs",
|