@flowdular/sdk 0.1.0
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/.ai/agents/README.md +27 -0
- package/.ai/agents/module-executor.md +36 -0
- package/.ai/agents/reviewer.md +23 -0
- package/.ai/agents/sandbox/agentic-engineer.md +31 -0
- package/.ai/agents/sandbox/backend-engineer.md +36 -0
- package/.ai/agents/sandbox/business-manager.md +23 -0
- package/.ai/agents/sandbox/frontend-engineer.md +27 -0
- package/.ai/agents/sandbox/ux-designer.md +23 -0
- package/.ai/agents/spec-author.md +29 -0
- package/.ai/blueprints/add-migration/README.md +5 -0
- package/.ai/blueprints/add-migration/allowed-paths.yaml +23 -0
- package/.ai/blueprints/add-migration/blueprint.json +14 -0
- package/.ai/blueprints/add-migration/examples/invalid/input-destructive.json +6 -0
- package/.ai/blueprints/add-migration/examples/invalid/plan-unnumbered-file.json +9 -0
- package/.ai/blueprints/add-migration/examples/valid/input.json +6 -0
- package/.ai/blueprints/add-migration/examples/valid/plan.json +9 -0
- package/.ai/blueprints/add-migration/gates.yaml +30 -0
- package/.ai/blueprints/add-migration/input.schema.json +23 -0
- package/.ai/blueprints/add-migration/plan.schema.json +54 -0
- package/.ai/blueprints/add-migration/required-files.yaml +18 -0
- package/.ai/blueprints/add-migration/spec-requirements.yaml +13 -0
- package/.ai/blueprints/add-migration/steps.yaml +62 -0
- package/.ai/blueprints/author-spec/README.md +5 -0
- package/.ai/blueprints/author-spec/allowed-paths.yaml +7 -0
- package/.ai/blueprints/author-spec/blueprint.json +14 -0
- package/.ai/blueprints/author-spec/examples/invalid/input-missing-outcome.json +5 -0
- package/.ai/blueprints/author-spec/examples/valid/input.json +6 -0
- package/.ai/blueprints/author-spec/gates.yaml +13 -0
- package/.ai/blueprints/author-spec/input.schema.json +20 -0
- package/.ai/blueprints/author-spec/plan.schema.json +14 -0
- package/.ai/blueprints/author-spec/required-files.yaml +6 -0
- package/.ai/blueprints/author-spec/spec-requirements.yaml +35 -0
- package/.ai/blueprints/author-spec/steps.yaml +28 -0
- package/.ai/blueprints/author-spec/templates/module.yaml +45 -0
- package/.ai/blueprints/bug-fix/README.md +5 -0
- package/.ai/blueprints/bug-fix/allowed-paths.yaml +29 -0
- package/.ai/blueprints/bug-fix/blueprint.json +14 -0
- package/.ai/blueprints/bug-fix/examples/invalid/input-no-symptom.json +4 -0
- package/.ai/blueprints/bug-fix/examples/invalid/plan-no-test.json +8 -0
- package/.ai/blueprints/bug-fix/examples/valid/input.json +6 -0
- package/.ai/blueprints/bug-fix/examples/valid/plan.json +8 -0
- package/.ai/blueprints/bug-fix/gates.yaml +30 -0
- package/.ai/blueprints/bug-fix/input.schema.json +25 -0
- package/.ai/blueprints/bug-fix/plan.schema.json +53 -0
- package/.ai/blueprints/bug-fix/required-files.yaml +7 -0
- package/.ai/blueprints/bug-fix/spec-requirements.yaml +7 -0
- package/.ai/blueprints/bug-fix/steps.yaml +51 -0
- package/.ai/blueprints/core-extend/README.md +5 -0
- package/.ai/blueprints/core-extend/allowed-paths.yaml +49 -0
- package/.ai/blueprints/core-extend/blueprint.json +14 -0
- package/.ai/blueprints/core-extend/examples/invalid/input-unknown-package.json +5 -0
- package/.ai/blueprints/core-extend/examples/invalid/plan-missing-gates.json +7 -0
- package/.ai/blueprints/core-extend/examples/valid/input.json +6 -0
- package/.ai/blueprints/core-extend/examples/valid/plan.json +10 -0
- package/.ai/blueprints/core-extend/gates.yaml +16 -0
- package/.ai/blueprints/core-extend/input.schema.json +54 -0
- package/.ai/blueprints/core-extend/plan.schema.json +39 -0
- package/.ai/blueprints/core-extend/required-files.yaml +36 -0
- package/.ai/blueprints/core-extend/spec-requirements.yaml +17 -0
- package/.ai/blueprints/core-extend/steps.yaml +54 -0
- package/.ai/blueprints/edit-module/README.md +9 -0
- package/.ai/blueprints/edit-module/allowed-paths.yaml +27 -0
- package/.ai/blueprints/edit-module/blueprint.json +20 -0
- package/.ai/blueprints/edit-module/examples/invalid/input-unknown-change.json +5 -0
- package/.ai/blueprints/edit-module/examples/invalid/plan-touches-platform.json +15 -0
- package/.ai/blueprints/edit-module/examples/valid/input.json +5 -0
- package/.ai/blueprints/edit-module/examples/valid/plan.json +25 -0
- package/.ai/blueprints/edit-module/gates.yaml +30 -0
- package/.ai/blueprints/edit-module/input.schema.json +31 -0
- package/.ai/blueprints/edit-module/plan.schema.json +65 -0
- package/.ai/blueprints/edit-module/required-files.yaml +80 -0
- package/.ai/blueprints/edit-module/spec-requirements.yaml +15 -0
- package/.ai/blueprints/edit-module/steps.yaml +115 -0
- package/.ai/blueprints/new-module/README.md +7 -0
- package/.ai/blueprints/new-module/allowed-paths.yaml +27 -0
- package/.ai/blueprints/new-module/blueprint.json +20 -0
- package/.ai/blueprints/new-module/examples/invalid/input-spec-outside-modules.json +4 -0
- package/.ai/blueprints/new-module/examples/invalid/plan-unknown-gate.json +8 -0
- package/.ai/blueprints/new-module/examples/valid/input.json +5 -0
- package/.ai/blueprints/new-module/examples/valid/plan.json +22 -0
- package/.ai/blueprints/new-module/gates.yaml +30 -0
- package/.ai/blueprints/new-module/input.schema.json +21 -0
- package/.ai/blueprints/new-module/plan.schema.json +58 -0
- package/.ai/blueprints/new-module/required-files.yaml +73 -0
- package/.ai/blueprints/new-module/spec-requirements.yaml +30 -0
- package/.ai/blueprints/new-module/steps.yaml +138 -0
- package/.ai/blueprints/release/README.md +5 -0
- package/.ai/blueprints/release/allowed-paths.yaml +19 -0
- package/.ai/blueprints/release/blueprint.json +14 -0
- package/.ai/blueprints/release/examples/invalid/input-bad-version.json +4 -0
- package/.ai/blueprints/release/examples/invalid/plan-bad-branch.json +7 -0
- package/.ai/blueprints/release/examples/valid/input.json +5 -0
- package/.ai/blueprints/release/examples/valid/plan.json +20 -0
- package/.ai/blueprints/release/gates.yaml +20 -0
- package/.ai/blueprints/release/input.schema.json +24 -0
- package/.ai/blueprints/release/plan.schema.json +46 -0
- package/.ai/blueprints/release/required-files.yaml +19 -0
- package/.ai/blueprints/release/spec-requirements.yaml +8 -0
- package/.ai/blueprints/release/steps.yaml +47 -0
- package/.ai/blueprints/security-review/README.md +5 -0
- package/.ai/blueprints/security-review/allowed-paths.yaml +6 -0
- package/.ai/blueprints/security-review/blueprint.json +14 -0
- package/.ai/blueprints/security-review/examples/invalid/input-unknown-kind.json +4 -0
- package/.ai/blueprints/security-review/examples/invalid/plan-finding-without-scenario.json +14 -0
- package/.ai/blueprints/security-review/examples/valid/input.json +4 -0
- package/.ai/blueprints/security-review/examples/valid/plan.json +19 -0
- package/.ai/blueprints/security-review/gates.yaml +22 -0
- package/.ai/blueprints/security-review/input.schema.json +20 -0
- package/.ai/blueprints/security-review/plan.schema.json +65 -0
- package/.ai/blueprints/security-review/required-files.yaml +6 -0
- package/.ai/blueprints/security-review/spec-requirements.yaml +9 -0
- package/.ai/blueprints/security-review/steps.yaml +38 -0
- package/.ai/policies/capabilities.yaml +164 -0
- package/.ai/policies/model-routing.yaml +72 -0
- package/.ai/policies/path-ownership.yaml +65 -0
- package/.ai/policies/task-budgets.yaml +37 -0
- package/.ai/references/catalog/LICENSE +21 -0
- package/.ai/references/catalog/migrations/0001_catalog_core.down.sql +2 -0
- package/.ai/references/catalog/migrations/0001_catalog_core.up.sql +21 -0
- package/.ai/references/catalog/migrations/0002_catalog_history.down.sql +3 -0
- package/.ai/references/catalog/migrations/0002_catalog_history.up.sql +20 -0
- package/.ai/references/catalog/migrations/0003_catalog_history_service_actors.down.sql +3 -0
- package/.ai/references/catalog/migrations/0003_catalog_history_service_actors.up.sql +36 -0
- package/.ai/references/catalog/migrations/0004_catalog_idempotency_ledger.down.sql +3 -0
- package/.ai/references/catalog/migrations/0004_catalog_idempotency_ledger.up.sql +19 -0
- package/.ai/references/catalog/migrations/README.md +3 -0
- package/.ai/references/catalog/module.json +27 -0
- package/.ai/references/catalog/package.json +49 -0
- package/.ai/references/catalog/spec/module.yaml +86 -0
- package/.ai/references/catalog/src/acl/permissions.ts +6 -0
- package/.ai/references/catalog/src/agent/tools.ts +164 -0
- package/.ai/references/catalog/src/api/endpoints.ts +243 -0
- package/.ai/references/catalog/src/client/CatalogHistoryDrawer.tsrx +123 -0
- package/.ai/references/catalog/src/client/CatalogItemForm.tsrx +190 -0
- package/.ai/references/catalog/src/client/CatalogView.tsrx +473 -0
- package/.ai/references/catalog/src/client/api.ts +111 -0
- package/.ai/references/catalog/src/client/contribution.tsrx +61 -0
- package/.ai/references/catalog/src/client/index.ts +18 -0
- package/.ai/references/catalog/src/client/navigation-copy.ts +9 -0
- package/.ai/references/catalog/src/client/state.ts +24 -0
- package/.ai/references/catalog/src/domain/types.ts +32 -0
- package/.ai/references/catalog/src/domain/variables.ts +111 -0
- package/.ai/references/catalog/src/index.ts +31 -0
- package/.ai/references/catalog/src/platform.ts +35 -0
- package/.ai/references/catalog/src/server/index.ts +4 -0
- package/.ai/references/catalog/src/server/runtime.ts +86 -0
- package/.ai/references/catalog/src/services/catalog-service.ts +306 -0
- package/.ai/references/catalog/src/services/database-repository.ts +440 -0
- package/.ai/references/catalog/src/services/index.ts +4 -0
- package/.ai/references/catalog/src/services/migration.ts +171 -0
- package/.ai/references/catalog/src/services/repository.ts +36 -0
- package/.ai/references/catalog/src/services/target-idempotency.ts +59 -0
- package/.ai/references/catalog/tests/agent-tools.test.ts +277 -0
- package/.ai/references/catalog/tests/endpoints.test.ts +320 -0
- package/.ai/references/catalog/tests/idempotency.test.ts +297 -0
- package/.ai/references/catalog/tests/migrations.test.ts +149 -0
- package/.ai/references/catalog/tests/module.test.ts +271 -0
- package/.ai/references/catalog/tests/support/database.ts +76 -0
- package/.ai/references/catalog/translations/en.json +101 -0
- package/.ai/references/catalog/translations/pl.json +101 -0
- package/.ai/references/catalog/tsconfig.json +15 -0
- package/.ai/references/catalog/vitest.config.ts +16 -0
- package/.ai/references/catalog.provenance.json +55 -0
- package/.ai/skills/README.md +36 -0
- package/.ai/skills/agent-tool-design/SKILL.md +209 -0
- package/.ai/skills/auth-security-review/SKILL.md +96 -0
- package/.ai/skills/auto-review/SKILL.md +112 -0
- package/.ai/skills/bug-hunt/SKILL.md +110 -0
- package/.ai/skills/business-agent-design/SKILL.md +188 -0
- package/.ai/skills/cli-extension/SKILL.md +114 -0
- package/.ai/skills/core-extend/SKILL.md +104 -0
- package/.ai/skills/database-adapter/SKILL.md +204 -0
- package/.ai/skills/database-adapter/references/first-run-and-matrix.md +105 -0
- package/.ai/skills/migration-authoring/SKILL.md +167 -0
- package/.ai/skills/module-new/SKILL.md +180 -0
- package/.ai/skills/module-update/SKILL.md +100 -0
- package/.ai/skills/perf-audit/SKILL.md +105 -0
- package/.ai/skills/release-eject-pr/SKILL.md +113 -0
- package/.ai/skills/spec-approval/SKILL.md +112 -0
- package/.ai/skills/test-hardening/SKILL.md +86 -0
- package/.ai/skills/translations-i18n/SKILL.md +85 -0
- package/.ai/skills/ux-design/SKILL.md +97 -0
- package/.ai/skills/variables/SKILL.md +164 -0
- package/.ai/skills/workflow-development/SKILL.md +199 -0
- package/AGENTS.md +59 -0
- package/LICENSE +21 -0
- package/README.md +24 -0
- package/docs/agent-contract.md +45 -0
- package/docs/design-system.md +217 -0
- package/modules/agents/migrations/0001_agents_core.down.sql +4 -0
- package/modules/agents/migrations/0001_agents_core.up.sql +106 -0
- package/modules/agents/migrations/0002_provider_connections.down.sql +1 -0
- package/modules/agents/migrations/0002_provider_connections.up.sql +34 -0
- package/modules/agents/migrations/0003_resource_audit.down.sql +1 -0
- package/modules/agents/migrations/0003_resource_audit.up.sql +25 -0
- package/modules/agents/migrations/0004_run_grants.down.sql +1 -0
- package/modules/agents/migrations/0004_run_grants.up.sql +19 -0
- package/modules/agents/migrations/0005_long_running_limits.down.sql +2 -0
- package/modules/agents/migrations/0005_long_running_limits.up.sql +14 -0
- package/modules/agents/migrations/0006_agent_skills.down.sql +3 -0
- package/modules/agents/migrations/0006_agent_skills.up.sql +44 -0
- package/modules/agents/migrations/0007_model_readiness.down.sql +1 -0
- package/modules/agents/migrations/0007_model_readiness.up.sql +18 -0
- package/modules/agents/migrations/0008_output_limits.down.sql +2 -0
- package/modules/agents/migrations/0008_output_limits.up.sql +8 -0
- package/modules/agents/migrations/0009_agent_audit_v3.down.sql +1 -0
- package/modules/agents/migrations/0009_agent_audit_v3.up.sql +25 -0
- package/modules/agents/migrations/0012_agent_run_costs.down.sql +3 -0
- package/modules/agents/migrations/0012_agent_run_costs.up.sql +32 -0
- package/modules/agents/migrations/0013_workflow_prerequisites.down.sql +3 -0
- package/modules/agents/migrations/0013_workflow_prerequisites.up.sql +97 -0
- package/modules/agents/migrations/0014_agent_action_audit.down.sql +1 -0
- package/modules/agents/migrations/0014_agent_action_audit.up.sql +25 -0
- package/modules/agents/migrations/0015_agent_run_actors.down.sql +1 -0
- package/modules/agents/migrations/0015_agent_run_actors.up.sql +17 -0
- package/modules/agents/migrations/0016_module_owned_agents.down.sql +6 -0
- package/modules/agents/migrations/0016_module_owned_agents.up.sql +68 -0
- package/modules/agents/migrations/0017_agent_authorization_subjects.down.sql +2 -0
- package/modules/agents/migrations/0017_agent_authorization_subjects.up.sql +18 -0
- package/modules/agents/migrations/0018_agent_child_tenant_isolation.down.sql +12 -0
- package/modules/agents/migrations/0018_agent_child_tenant_isolation.up.sql +88 -0
- package/modules/agents/migrations/0019_background_recovery_grants.down.sql +6 -0
- package/modules/agents/migrations/0019_background_recovery_grants.up.sql +17 -0
- package/modules/agents/migrations/0020_provider_summary_role.down.sql +2 -0
- package/modules/agents/migrations/0020_provider_summary_role.up.sql +17 -0
- package/modules/agents/migrations/0021_agents_agent_reconciliation_role.down.sql +4 -0
- package/modules/agents/migrations/0021_agents_agent_reconciliation_role.up.sql +7 -0
- package/modules/agents/migrations/README.md +39 -0
- package/modules/agents/module.json +38 -0
- package/modules/agents/package.json +56 -0
- package/modules/agents/spec/module.yaml +271 -0
- package/modules/agents/spec/procedures-compatibility.md +63 -0
- package/modules/agents/src/acl/permissions.ts +13 -0
- package/modules/agents/src/api/endpoints.ts +1122 -0
- package/modules/agents/src/cli/commands.json +29 -0
- package/modules/agents/src/cli/index.ts +162 -0
- package/modules/agents/src/client/AgentDashboardWidget.tsrx +32 -0
- package/modules/agents/src/client/AgentDefinitionForm.tsrx +362 -0
- package/modules/agents/src/client/AgentDefinitionList.tsrx +127 -0
- package/modules/agents/src/client/AgentPlaygroundView.tsrx +246 -0
- package/modules/agents/src/client/AgentProcedureForm.tsrx +182 -0
- package/modules/agents/src/client/AgentProcedureList.tsrx +118 -0
- package/modules/agents/src/client/AgentProceduresView.tsrx +253 -0
- package/modules/agents/src/client/AgentProvidersView.tsrx +248 -0
- package/modules/agents/src/client/AgentRunsView.tsrx +304 -0
- package/modules/agents/src/client/AgentUsageView.tsrx +233 -0
- package/modules/agents/src/client/AgentsView.tsrx +339 -0
- package/modules/agents/src/client/ModuleAgentBindingForm.tsrx +239 -0
- package/modules/agents/src/client/ModuleAgentList.tsrx +122 -0
- package/modules/agents/src/client/ProviderConnectionForm.tsrx +273 -0
- package/modules/agents/src/client/ProviderConnectionList.tsrx +229 -0
- package/modules/agents/src/client/ProviderModelEditor.tsrx +313 -0
- package/modules/agents/src/client/RunTimeline.tsrx +212 -0
- package/modules/agents/src/client/agents.css +349 -0
- package/modules/agents/src/client/api.ts +373 -0
- package/modules/agents/src/client/contribution.tsrx +181 -0
- package/modules/agents/src/client/index.ts +21 -0
- package/modules/agents/src/client/presentation.ts +162 -0
- package/modules/agents/src/client/state.ts +100 -0
- package/modules/agents/src/domain/context-variables.ts +58 -0
- package/modules/agents/src/domain/run-timeline.ts +145 -0
- package/modules/agents/src/domain/types.ts +481 -0
- package/modules/agents/src/index.ts +88 -0
- package/modules/agents/src/platform.ts +82 -0
- package/modules/agents/src/server/action-execution.ts +811 -0
- package/modules/agents/src/server/define-agent.ts +170 -0
- package/modules/agents/src/server/index.ts +67 -0
- package/modules/agents/src/server/run-execution.ts +231 -0
- package/modules/agents/src/server/run-queue.ts +96 -0
- package/modules/agents/src/server/runtime.ts +448 -0
- package/modules/agents/src/server/tools.ts +18 -0
- package/modules/agents/src/services/agent-service.ts +2167 -0
- package/modules/agents/src/services/credential-vault.ts +133 -0
- package/modules/agents/src/services/database-repository.ts +2786 -0
- package/modules/agents/src/services/index.ts +33 -0
- package/modules/agents/src/services/migration.ts +1152 -0
- package/modules/agents/src/services/module-agent-preflight.ts +76 -0
- package/modules/agents/src/services/outbound-policy.ts +136 -0
- package/modules/agents/src/services/provider-broker.ts +80 -0
- package/modules/agents/src/services/provider-repository.ts +589 -0
- package/modules/agents/src/services/provider-service.ts +968 -0
- package/modules/agents/src/services/repository.ts +294 -0
- package/modules/agents/src/services/run-grant.ts +305 -0
- package/modules/agents/src/services/usage-service.ts +119 -0
- package/modules/agents/src/services/worker.ts +442 -0
- package/modules/agents/src/settings.ts +244 -0
- package/modules/agents/translations/en.json +403 -0
- package/modules/agents/translations/pl.json +403 -0
- package/modules/auth/README.md +215 -0
- package/modules/auth/migrations/0001_auth_core.up.sql +108 -0
- package/modules/auth/migrations/0002_bundled_module_scopes.up.sql +26 -0
- package/modules/auth/migrations/0003_agent_core_scopes.up.sql +12 -0
- package/modules/auth/migrations/0004_owner_only_development_scopes.up.sql +8 -0
- package/modules/auth/migrations/0005_agent_provider_scopes.up.sql +13 -0
- package/modules/auth/migrations/0006_tenant_slug.up.sql +6 -0
- package/modules/auth/migrations/0007_sandbox_scopes.up.sql +13 -0
- package/modules/auth/migrations/0008_api_tokens.up.sql +43 -0
- package/modules/auth/migrations/0009_module_settings.up.sql +24 -0
- package/modules/auth/migrations/0010_sign_in_lockout.up.sql +11 -0
- package/modules/auth/migrations/0011_session_ids_and_password_reset.up.sql +7 -0
- package/modules/auth/migrations/0012_roles.up.sql +31 -0
- package/modules/auth/migrations/0013_audit.up.sql +27 -0
- package/modules/auth/migrations/0014_audit_actor.up.sql +4 -0
- package/modules/auth/migrations/0015_account_security.up.sql +81 -0
- package/modules/auth/module.json +26 -0
- package/modules/auth/package.json +61 -0
- package/modules/auth/spec/module.yaml +190 -0
- package/modules/auth/src/acl/scopes.ts +86 -0
- package/modules/auth/src/api/attempt-limiter.ts +42 -0
- package/modules/auth/src/api/client-address.ts +14 -0
- package/modules/auth/src/api/cookies.ts +52 -0
- package/modules/auth/src/api/origin.ts +40 -0
- package/modules/auth/src/cli/commands.json +74 -0
- package/modules/auth/src/cli/database.ts +51 -0
- package/modules/auth/src/cli/greenfield.ts +173 -0
- package/modules/auth/src/cli/index.ts +184 -0
- package/modules/auth/src/cli/provisioning.ts +211 -0
- package/modules/auth/src/client/AuthBackdrop.tsrx +137 -0
- package/modules/auth/src/client/AuthenticationCore.tsrx +630 -0
- package/modules/auth/src/client/PasswordChangeRequired.tsrx +145 -0
- package/modules/auth/src/client/PublicAuthFlows.tsrx +379 -0
- package/modules/auth/src/client/api.ts +464 -0
- package/modules/auth/src/client/audit/AuditView.tsrx +357 -0
- package/modules/auth/src/client/audit/api.ts +164 -0
- package/modules/auth/src/client/audit/audit-columns.tsrx +47 -0
- package/modules/auth/src/client/audit/audit-row.ts +38 -0
- package/modules/auth/src/client/auth.css +483 -0
- package/modules/auth/src/client/contribution.tsrx +100 -0
- package/modules/auth/src/client/index.ts +32 -0
- package/modules/auth/src/client/security/SecurityView.tsrx +253 -0
- package/modules/auth/src/client/settings/PreferencesCard.tsrx +65 -0
- package/modules/auth/src/client/settings/SettingsView.tsrx +212 -0
- package/modules/auth/src/client/settings/WorkspaceCard.tsrx +59 -0
- package/modules/auth/src/client/settings/api.ts +115 -0
- package/modules/auth/src/client/slug.ts +26 -0
- package/modules/auth/src/client/state.ts +115 -0
- package/modules/auth/src/client/tokens/ApiTokenForm.tsrx +153 -0
- package/modules/auth/src/client/tokens/ApiTokenSecret.tsrx +35 -0
- package/modules/auth/src/client/tokens/ApiTokensView.tsrx +216 -0
- package/modules/auth/src/client/tokens/api.ts +59 -0
- package/modules/auth/src/client/tokens/state.ts +26 -0
- package/modules/auth/src/client/tokens/token-columns.tsrx +64 -0
- package/modules/auth/src/client/translations.ts +23 -0
- package/modules/auth/src/domain/types.ts +152 -0
- package/modules/auth/src/index.ts +42 -0
- package/modules/auth/src/middleware/authentication.ts +97 -0
- package/modules/auth/src/platform.ts +0 -0
- package/modules/auth/src/server/actor.ts +12 -0
- package/modules/auth/src/server/audit-endpoints.ts +51 -0
- package/modules/auth/src/server/composition.ts +9 -0
- package/modules/auth/src/server/endpoints.ts +893 -0
- package/modules/auth/src/server/http.ts +153 -0
- package/modules/auth/src/server/index.ts +37 -0
- package/modules/auth/src/server/roles-endpoints.ts +120 -0
- package/modules/auth/src/server/runtime.ts +705 -0
- package/modules/auth/src/server/session-endpoints.ts +86 -0
- package/modules/auth/src/server/session-security.ts +62 -0
- package/modules/auth/src/server/token-endpoints.ts +106 -0
- package/modules/auth/src/services/auth-service-error.ts +11 -0
- package/modules/auth/src/services/auth-service.ts +2309 -0
- package/modules/auth/src/services/database-repository.ts +1825 -0
- package/modules/auth/src/services/mail-delivery.ts +27 -0
- package/modules/auth/src/services/migration.ts +591 -0
- package/modules/auth/src/services/password.ts +115 -0
- package/modules/auth/src/services/repository.ts +395 -0
- package/modules/auth/src/services/settings-store.ts +92 -0
- package/modules/auth/src/services/totp.ts +135 -0
- package/modules/auth/src/services/validation.ts +186 -0
- package/modules/auth/src/settings.ts +150 -0
- package/modules/auth/translations/en.json +263 -0
- package/modules/auth/translations/pl.json +263 -0
- package/modules/automations/migrations/0001_automations_core.down.sql +10 -0
- package/modules/automations/migrations/0001_automations_core.up.sql +76 -0
- package/modules/automations/migrations/0002_automations_targets.down.sql +9 -0
- package/modules/automations/migrations/0002_automations_targets.up.sql +37 -0
- package/modules/automations/migrations/0003_automations_scheduler_role.down.sql +3 -0
- package/modules/automations/migrations/0003_automations_scheduler_role.up.sql +19 -0
- package/modules/automations/migrations/0004_automations_trigger_routing_role.down.sql +3 -0
- package/modules/automations/migrations/0004_automations_trigger_routing_role.up.sql +18 -0
- package/modules/automations/migrations/README.md +3 -0
- package/modules/automations/module.json +31 -0
- package/modules/automations/package.json +55 -0
- package/modules/automations/spec/module.yaml +93 -0
- package/modules/automations/src/acl/permissions.ts +10 -0
- package/modules/automations/src/api/endpoints.ts +480 -0
- package/modules/automations/src/client/AutomationScheduleForm.tsrx +218 -0
- package/modules/automations/src/client/AutomationSchedulesView.tsrx +339 -0
- package/modules/automations/src/client/AutomationTriggerForm.tsrx +190 -0
- package/modules/automations/src/client/AutomationTriggersView.tsrx +329 -0
- package/modules/automations/src/client/api.ts +148 -0
- package/modules/automations/src/client/contribution.tsrx +70 -0
- package/modules/automations/src/client/index.ts +20 -0
- package/modules/automations/src/client/presentation.ts +38 -0
- package/modules/automations/src/client/state.ts +40 -0
- package/modules/automations/src/client/target-selection.ts +44 -0
- package/modules/automations/src/domain/cadence.ts +44 -0
- package/modules/automations/src/domain/types.ts +110 -0
- package/modules/automations/src/domain/variables.ts +178 -0
- package/modules/automations/src/index.ts +39 -0
- package/modules/automations/src/platform.ts +73 -0
- package/modules/automations/src/server/execution.ts +77 -0
- package/modules/automations/src/server/index.ts +39 -0
- package/modules/automations/src/server/runtime.ts +218 -0
- package/modules/automations/src/server/targets.ts +116 -0
- package/modules/automations/src/services/automations-service.ts +10 -0
- package/modules/automations/src/services/database-repository.ts +763 -0
- package/modules/automations/src/services/index.ts +5 -0
- package/modules/automations/src/services/migration.ts +223 -0
- package/modules/automations/src/services/repository.ts +119 -0
- package/modules/automations/src/services/schedule-service.ts +837 -0
- package/modules/automations/src/services/secret-vault.ts +124 -0
- package/modules/automations/src/services/trigger-service.ts +648 -0
- package/modules/automations/src/settings.ts +69 -0
- package/modules/automations/translations/en.json +126 -0
- package/modules/automations/translations/pl.json +126 -0
- package/modules/automations-workflows-integration/module.json +27 -0
- package/modules/automations-workflows-integration/package.json +48 -0
- package/modules/automations-workflows-integration/spec/module.yaml +93 -0
- package/modules/automations-workflows-integration/src/index.ts +14 -0
- package/modules/automations-workflows-integration/src/platform.ts +24 -0
- package/modules/automations-workflows-integration/src/server/adapter.ts +272 -0
- package/modules/automations-workflows-integration/src/server/index.ts +11 -0
- package/modules/automations-workflows-integration/src/server/tools.ts +0 -0
- package/modules/automations-workflows-integration/translations/en.json +21 -0
- package/modules/automations-workflows-integration/translations/pl.json +21 -0
- package/modules/profile/migrations/0001_profile_core.down.sql +1 -0
- package/modules/profile/migrations/0001_profile_core.up.sql +13 -0
- package/modules/profile/migrations/0002_profile_language.down.sql +1 -0
- package/modules/profile/migrations/0002_profile_language.up.sql +12 -0
- package/modules/profile/migrations/README.md +3 -0
- package/modules/profile/module.json +23 -0
- package/modules/profile/package.json +55 -0
- package/modules/profile/spec/module.yaml +136 -0
- package/modules/profile/src/acl/permissions.ts +5 -0
- package/modules/profile/src/api/endpoints.ts +184 -0
- package/modules/profile/src/client/DisplayNameCard.tsrx +59 -0
- package/modules/profile/src/client/LanguageCard.tsrx +89 -0
- package/modules/profile/src/client/PasswordCard.tsrx +79 -0
- package/modules/profile/src/client/ProfileView.tsrx +192 -0
- package/modules/profile/src/client/SessionsCard.tsrx +158 -0
- package/modules/profile/src/client/api.ts +134 -0
- package/modules/profile/src/client/contribution.tsrx +61 -0
- package/modules/profile/src/client/index.ts +15 -0
- package/modules/profile/src/client/password.ts +41 -0
- package/modules/profile/src/client/sessions-api.ts +52 -0
- package/modules/profile/src/client/state.ts +23 -0
- package/modules/profile/src/domain/types.ts +21 -0
- package/modules/profile/src/index.ts +21 -0
- package/modules/profile/src/platform.ts +23 -0
- package/modules/profile/src/server/index.ts +7 -0
- package/modules/profile/src/server/runtime.ts +84 -0
- package/modules/profile/src/services/database-repository.ts +154 -0
- package/modules/profile/src/services/index.ts +6 -0
- package/modules/profile/src/services/migration.ts +58 -0
- package/modules/profile/src/services/profile-service.ts +114 -0
- package/modules/profile/src/services/repository.ts +13 -0
- package/modules/profile/translations/en.json +58 -0
- package/modules/profile/translations/pl.json +58 -0
- package/modules/sandbox/migrations/0001_sandbox_core.down.sql +6 -0
- package/modules/sandbox/migrations/0001_sandbox_core.up.sql +70 -0
- package/modules/sandbox/migrations/0002_sandbox_session_lifecycle.down.sql +36 -0
- package/modules/sandbox/migrations/0002_sandbox_session_lifecycle.up.sql +37 -0
- package/modules/sandbox/migrations/README.md +7 -0
- package/modules/sandbox/module.json +31 -0
- package/modules/sandbox/package.json +56 -0
- package/modules/sandbox/spec/module.yaml +111 -0
- package/modules/sandbox/src/acl/permissions.ts +18 -0
- package/modules/sandbox/src/api/endpoints.ts +439 -0
- package/modules/sandbox/src/cli/commands.json +84 -0
- package/modules/sandbox/src/cli/index.ts +450 -0
- package/modules/sandbox/src/client/SandboxAccessView.tsrx +191 -0
- package/modules/sandbox/src/client/SandboxGrantForm.tsrx +134 -0
- package/modules/sandbox/src/client/SandboxGrantList.tsrx +83 -0
- package/modules/sandbox/src/client/SandboxSessionList.tsrx +56 -0
- package/modules/sandbox/src/client/api.ts +87 -0
- package/modules/sandbox/src/client/contribution.tsrx +47 -0
- package/modules/sandbox/src/client/index.ts +18 -0
- package/modules/sandbox/src/client/presentation.ts +47 -0
- package/modules/sandbox/src/client/state.ts +20 -0
- package/modules/sandbox/src/domain/types.ts +125 -0
- package/modules/sandbox/src/index.ts +33 -0
- package/modules/sandbox/src/platform.ts +28 -0
- package/modules/sandbox/src/server/index.ts +20 -0
- package/modules/sandbox/src/server/runtime.ts +119 -0
- package/modules/sandbox/src/services/database-repository.ts +567 -0
- package/modules/sandbox/src/services/directory.ts +33 -0
- package/modules/sandbox/src/services/index.ts +19 -0
- package/modules/sandbox/src/services/migration.ts +145 -0
- package/modules/sandbox/src/services/repository.ts +55 -0
- package/modules/sandbox/src/services/sandbox-service-error.ts +10 -0
- package/modules/sandbox/src/services/sandbox-service.ts +533 -0
- package/modules/sandbox/translations/en.json +77 -0
- package/modules/sandbox/translations/pl.json +77 -0
- package/modules/system/module.json +18 -0
- package/modules/system/package.json +56 -0
- package/modules/system/spec/module.yaml +104 -0
- package/modules/system/src/acl/permissions.ts +10 -0
- package/modules/system/src/client/ModuleSettingRow.tsrx +191 -0
- package/modules/system/src/client/ModuleSettingsSection.tsrx +155 -0
- package/modules/system/src/client/ModulesView.tsrx +241 -0
- package/modules/system/src/client/api.ts +36 -0
- package/modules/system/src/client/contribution.tsrx +48 -0
- package/modules/system/src/client/index.ts +26 -0
- package/modules/system/src/client/module-columns.tsrx +66 -0
- package/modules/system/src/client/overview-api.ts +30 -0
- package/modules/system/src/client/setting-copy.ts +30 -0
- package/modules/system/src/client/settings-api.ts +57 -0
- package/modules/system/src/client/state.ts +16 -0
- package/modules/system/src/index.ts +11 -0
- package/modules/system/src/platform.ts +11 -0
- package/modules/system/src/server/endpoints.ts +372 -0
- package/modules/system/src/server/index.ts +11 -0
- package/modules/system/src/server/module-catalog.ts +117 -0
- package/modules/system/translations/en.json +64 -0
- package/modules/system/translations/pl.json +64 -0
- package/modules/users/migrations/README.md +3 -0
- package/modules/users/module.json +27 -0
- package/modules/users/package.json +54 -0
- package/modules/users/spec/module.yaml +79 -0
- package/modules/users/src/acl/permissions.ts +6 -0
- package/modules/users/src/api/endpoints.ts +222 -0
- package/modules/users/src/client/InviteMemberForm.tsrx +62 -0
- package/modules/users/src/client/MemberDrawer.tsrx +298 -0
- package/modules/users/src/client/RoleForm.tsrx +140 -0
- package/modules/users/src/client/RolesView.tsrx +288 -0
- package/modules/users/src/client/UserAccountForm.tsrx +86 -0
- package/modules/users/src/client/UsersView.tsrx +486 -0
- package/modules/users/src/client/api.ts +172 -0
- package/modules/users/src/client/contribution.tsrx +92 -0
- package/modules/users/src/client/index.ts +19 -0
- package/modules/users/src/client/member-columns.tsrx +52 -0
- package/modules/users/src/client/roles-api.ts +90 -0
- package/modules/users/src/client/state.ts +42 -0
- package/modules/users/src/index.ts +27 -0
- package/modules/users/src/platform.ts +11 -0
- package/modules/users/src/services/index.ts +2 -0
- package/modules/users/src/services/users-service.ts +142 -0
- package/modules/users/translations/en.json +133 -0
- package/modules/users/translations/pl.json +133 -0
- package/modules/workflows/migrations/0001_workflows_core.down.sql +19 -0
- package/modules/workflows/migrations/0001_workflows_core.up.sql +228 -0
- package/modules/workflows/migrations/0002_workflows_authorization_subject.down.sql +1 -0
- package/modules/workflows/migrations/0002_workflows_authorization_subject.up.sql +9 -0
- package/modules/workflows/migrations/0003_workflows_worker_role.up.sql +34 -0
- package/modules/workflows/migrations/README.md +7 -0
- package/modules/workflows/module.json +31 -0
- package/modules/workflows/package.json +55 -0
- package/modules/workflows/spec/module.yaml +227 -0
- package/modules/workflows/src/acl/permissions.ts +10 -0
- package/modules/workflows/src/api/endpoints.ts +852 -0
- package/modules/workflows/src/client/WorkflowCanvas.tsrx +819 -0
- package/modules/workflows/src/client/WorkflowCreateForm.tsrx +111 -0
- package/modules/workflows/src/client/WorkflowEditor.tsrx +443 -0
- package/modules/workflows/src/client/WorkflowExecutionHistory.tsrx +169 -0
- package/modules/workflows/src/client/WorkflowFixtureDrawer.tsrx +206 -0
- package/modules/workflows/src/client/WorkflowInputForm.tsrx +125 -0
- package/modules/workflows/src/client/WorkflowInputSchemaEditor.tsrx +185 -0
- package/modules/workflows/src/client/WorkflowInspector.tsrx +471 -0
- package/modules/workflows/src/client/WorkflowLiveConfirmation.tsrx +67 -0
- package/modules/workflows/src/client/WorkflowMappingEditor.tsrx +283 -0
- package/modules/workflows/src/client/WorkflowNodePalette.tsrx +50 -0
- package/modules/workflows/src/client/WorkflowPointerField.tsrx +178 -0
- package/modules/workflows/src/client/WorkflowRevisionReview.tsrx +49 -0
- package/modules/workflows/src/client/WorkflowRunInspector.tsrx +143 -0
- package/modules/workflows/src/client/WorkflowTestPanel.tsrx +109 -0
- package/modules/workflows/src/client/WorkflowValidationPanel.tsrx +139 -0
- package/modules/workflows/src/client/WorkflowsView.tsrx +1060 -0
- package/modules/workflows/src/client/api.ts +312 -0
- package/modules/workflows/src/client/canvas-model.ts +472 -0
- package/modules/workflows/src/client/connected-node.ts +71 -0
- package/modules/workflows/src/client/contribution.tsrx +57 -0
- package/modules/workflows/src/client/create-model.ts +15 -0
- package/modules/workflows/src/client/draft-repair.ts +86 -0
- package/modules/workflows/src/client/index.ts +19 -0
- package/modules/workflows/src/client/input-model.ts +124 -0
- package/modules/workflows/src/client/mapping-model.ts +110 -0
- package/modules/workflows/src/client/pointer-model.ts +123 -0
- package/modules/workflows/src/client/presentation.ts +62 -0
- package/modules/workflows/src/client/run-actions.ts +19 -0
- package/modules/workflows/src/client/state.ts +57 -0
- package/modules/workflows/src/client/viewport.ts +107 -0
- package/modules/workflows/src/client/workflows.css +899 -0
- package/modules/workflows/src/domain/events.ts +399 -0
- package/modules/workflows/src/domain/graph.ts +1136 -0
- package/modules/workflows/src/domain/types.ts +563 -0
- package/modules/workflows/src/index.ts +27 -0
- package/modules/workflows/src/platform.ts +49 -0
- package/modules/workflows/src/server/index.ts +13 -0
- package/modules/workflows/src/server/runtime.ts +266 -0
- package/modules/workflows/src/services/cursor-codec.ts +62 -0
- package/modules/workflows/src/services/database-repository.ts +2407 -0
- package/modules/workflows/src/services/index.ts +6 -0
- package/modules/workflows/src/services/migration.ts +375 -0
- package/modules/workflows/src/services/payload-codec.ts +264 -0
- package/modules/workflows/src/services/repository.ts +285 -0
- package/modules/workflows/src/services/simulation.ts +359 -0
- package/modules/workflows/src/services/worker.ts +1196 -0
- package/modules/workflows/src/services/workflows-service.ts +1395 -0
- package/modules/workflows/translations/en.json +348 -0
- package/modules/workflows/translations/pl.json +348 -0
- package/modules.json +41 -0
- package/package.json +125 -0
- package/packages/ai-provider/package.json +46 -0
- package/packages/ai-provider/src/catalog.ts +102 -0
- package/packages/ai-provider/src/errors.ts +110 -0
- package/packages/ai-provider/src/index.ts +33 -0
- package/packages/ai-provider/src/model.ts +198 -0
- package/packages/ai-provider/src/pricing.ts +73 -0
- package/packages/cli-protocol/package.json +40 -0
- package/packages/cli-protocol/src/index.ts +113 -0
- package/packages/client/package.json +46 -0
- package/packages/client/src/ApplicationShell.tsrx +374 -0
- package/packages/client/src/contributions.ts +172 -0
- package/packages/client/src/i18n/index.ts +30 -0
- package/packages/client/src/i18n/locale.ts +25 -0
- package/packages/client/src/i18n/locales/en.json +66 -0
- package/packages/client/src/i18n/locales/pl.json +66 -0
- package/packages/client/src/i18n/runtime.ts +201 -0
- package/packages/client/src/i18n/translations.ts +88 -0
- package/packages/client/src/index.ts +55 -0
- package/packages/client/src/routing.ts +9 -0
- package/packages/client/src/shell/BrandMark.tsrx +10 -0
- package/packages/client/src/shell/CommandPalette.tsrx +79 -0
- package/packages/client/src/shell/ContributionOutlets.tsrx +31 -0
- package/packages/client/src/shell/DashboardView.tsrx +60 -0
- package/packages/client/src/shell/MobileHeader.tsrx +24 -0
- package/packages/client/src/shell/OrganizationSwitcher.tsrx +100 -0
- package/packages/client/src/shell/OverviewCharts.tsrx +167 -0
- package/packages/client/src/shell/PrimaryNavigation.tsrx +75 -0
- package/packages/client/src/shell/Sidebar.tsrx +76 -0
- package/packages/client/src/shell/Topbar.tsrx +44 -0
- package/packages/client/src/shell/UserMenu.tsrx +103 -0
- package/packages/client/src/shell/WorkspaceContent.tsrx +30 -0
- package/packages/client/src/shell/identity.ts +12 -0
- package/packages/client/src/shell/navigation.ts +68 -0
- package/packages/client/src/shell/shell.css +734 -0
- package/packages/client/src/shell/types.ts +29 -0
- package/packages/client/src/state.ts +63 -0
- package/packages/client/src/web.ts +39 -0
- package/packages/coding-agent/package.json +44 -0
- package/packages/coding-agent/src/drivers/byok.ts +322 -0
- package/packages/coding-agent/src/drivers/claude-code.ts +290 -0
- package/packages/coding-agent/src/drivers/codex.ts +281 -0
- package/packages/coding-agent/src/index.ts +56 -0
- package/packages/coding-agent/src/registry.ts +119 -0
- package/packages/coding-agent/src/roles/contract.ts +60 -0
- package/packages/coding-agent/src/roles/defaults.ts +134 -0
- package/packages/coding-agent/src/roles/handoff.ts +41 -0
- package/packages/coding-agent/src/roles/registry.ts +156 -0
- package/packages/coding-agent/src/roles/skills.ts +72 -0
- package/packages/coding-agent/src/roles/sync.ts +88 -0
- package/packages/coding-agent/src/types.ts +102 -0
- package/packages/coding-agent/src/workspace.ts +275 -0
- package/packages/contracts/package.json +38 -0
- package/packages/contracts/schemas/blueprint.schema.json +48 -0
- package/packages/contracts/schemas/cli-extension.schema.json +90 -0
- package/packages/contracts/schemas/module-artifact.schema.json +82 -0
- package/packages/contracts/schemas/module-catalog.schema.json +48 -0
- package/packages/contracts/schemas/module-spec.schema.json +111 -0
- package/packages/contracts/schemas/module.schema.json +156 -0
- package/packages/contracts/schemas/platform-spec.schema.json +17 -0
- package/packages/contracts/schemas/project.schema.json +270 -0
- package/packages/contracts/src/index.ts +191 -0
- package/packages/contracts/src/module-distribution.ts +47 -0
- package/packages/contracts/src/schemas.ts +18 -0
- package/packages/contracts/src/variables.ts +156 -0
- package/packages/contracts/src/web.ts +60 -0
- package/packages/database/package.json +43 -0
- package/packages/database/src/contracts.ts +399 -0
- package/packages/database/src/index.ts +112 -0
- package/packages/database/src/migrations.ts +444 -0
- package/packages/database/src/postgresql.ts +517 -0
- package/packages/database/src/provider.ts +639 -0
- package/packages/database/src/record-history.ts +201 -0
- package/packages/database/src/registry.ts +265 -0
- package/packages/database/src/reset.ts +87 -0
- package/packages/database-pglite/package.json +42 -0
- package/packages/database-pglite/src/driver.ts +168 -0
- package/packages/database-pglite/src/index.ts +2 -0
- package/packages/database-testing/package.json +44 -0
- package/packages/database-testing/src/index.ts +8 -0
- package/packages/database-testing/src/pglite.ts +124 -0
- package/packages/database-testing/src/postgres.ts +184 -0
- package/packages/database-testing/src/provider.ts +43 -0
- package/packages/database-testing/src/vitest-preset.ts +23 -0
- package/packages/dev-console/README.md +6 -0
- package/packages/dev-console/package.json +38 -0
- package/packages/dev-console/src/index.mjs +220 -0
- package/packages/harness/package.json +47 -0
- package/packages/harness/schemas/task-packet.schema.json +48 -0
- package/packages/harness/src/catalog.ts +24 -0
- package/packages/harness/src/errors.ts +9 -0
- package/packages/harness/src/index.ts +53 -0
- package/packages/harness/src/preamble.ts +31 -0
- package/packages/harness/src/runtime.ts +833 -0
- package/packages/harness/src/task-packet.ts +86 -0
- package/packages/harness/src/tool-adapters.ts +106 -0
- package/packages/harness/src/tool-contract.ts +242 -0
- package/packages/harness/src/vercel-ai-provider.ts +198 -0
- package/packages/kernel/package.json +44 -0
- package/packages/kernel/src/acl.ts +20 -0
- package/packages/kernel/src/actor.ts +139 -0
- package/packages/kernel/src/agent-registry.ts +81 -0
- package/packages/kernel/src/capability-registry.ts +28 -0
- package/packages/kernel/src/errors.ts +9 -0
- package/packages/kernel/src/index.ts +90 -0
- package/packages/kernel/src/legacy-local-state.ts +103 -0
- package/packages/kernel/src/module-compatibility.ts +70 -0
- package/packages/kernel/src/module-registry.ts +124 -0
- package/packages/kernel/src/module-settings.ts +403 -0
- package/packages/kernel/src/record-history.ts +146 -0
- package/packages/kernel/src/runtime-config.ts +51 -0
- package/packages/kernel/src/tool-registry.ts +25 -0
- package/packages/kernel/src/variable-registry.ts +339 -0
- package/packages/sandbox/README.md +691 -0
- package/packages/sandbox/bin/flowdular-sandbox.mjs +393 -0
- package/packages/sandbox/dist/client/assets/App-ClMOrpyg.js +11 -0
- package/packages/sandbox/dist/client/assets/PreviewHost-BHiHrfbQ.js +1 -0
- package/packages/sandbox/dist/client/assets/auto-buGEq6de.js +3 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2 +0 -0
- package/packages/sandbox/dist/client/assets/index-CvwhlQ87.js +4 -0
- package/packages/sandbox/dist/client/assets/styles-BPWaGf55.js +3 -0
- package/packages/sandbox/dist/client/assets/styles-Dx1_KOag.css +1 -0
- package/packages/sandbox/dist/client/favicon.svg +1 -0
- package/packages/sandbox/dist/server/assets/auto-CVGNYyb3.js +12785 -0
- package/packages/sandbox/dist/server/assets/chunk-DDJLRBDX-3OUNo51g.js +4125 -0
- package/packages/sandbox/dist/server/assets/nodefs-DVSI7kG0.js +24 -0
- package/packages/sandbox/dist/server/assets/opfs-ahp-D56iokt1.js +388 -0
- package/packages/sandbox/dist/server/assets/token-Bvaq7Anz.js +55 -0
- package/packages/sandbox/dist/server/assets/token-util-BqSvdIPQ.js +3 -0
- package/packages/sandbox/dist/server/assets/token-util-CktFFT4z.js +494 -0
- package/packages/sandbox/dist/server/entry.js +91671 -0
- package/packages/sandbox/dist/server/favicon.svg +1 -0
- package/packages/sandbox/dist/server/index.html +161 -0
- package/packages/sandbox/index.html +159 -0
- package/packages/sandbox/octane.config.ts +36 -0
- package/packages/sandbox/package.json +83 -0
- package/packages/sandbox/public/favicon.svg +1 -0
- package/packages/sandbox/public/og.png +0 -0
- package/packages/sandbox/src/App.tsrx +924 -0
- package/packages/sandbox/src/client/ApprovalHandoff.tsrx +39 -0
- package/packages/sandbox/src/client/ChatPane.tsrx +694 -0
- package/packages/sandbox/src/client/ConnectView.tsrx +86 -0
- package/packages/sandbox/src/client/DiffPane.tsrx +150 -0
- package/packages/sandbox/src/client/EjectModal.tsrx +571 -0
- package/packages/sandbox/src/client/GateResults.tsrx +60 -0
- package/packages/sandbox/src/client/GitHubSettingsModal.tsrx +219 -0
- package/packages/sandbox/src/client/NewSessionForm.tsrx +214 -0
- package/packages/sandbox/src/client/SessionBar.tsrx +151 -0
- package/packages/sandbox/src/client/SessionPicker.tsrx +472 -0
- package/packages/sandbox/src/client/SpecEditor.tsrx +109 -0
- package/packages/sandbox/src/client/SpecReviewCard.tsrx +321 -0
- package/packages/sandbox/src/client/WorkCard.tsrx +128 -0
- package/packages/sandbox/src/client/WorkbenchModal.tsrx +161 -0
- package/packages/sandbox/src/client/WorkspaceMenu.tsrx +100 -0
- package/packages/sandbox/src/client/api.ts +797 -0
- package/packages/sandbox/src/client/attachments.ts +73 -0
- package/packages/sandbox/src/client/dashboard.ts +46 -0
- package/packages/sandbox/src/client/github-settings.ts +48 -0
- package/packages/sandbox/src/client/highlight.ts +105 -0
- package/packages/sandbox/src/client/i18n.ts +32 -0
- package/packages/sandbox/src/client/locales/en.json +466 -0
- package/packages/sandbox/src/client/locales/pl.json +466 -0
- package/packages/sandbox/src/client/session-labels.ts +77 -0
- package/packages/sandbox/src/client/state.ts +108 -0
- package/packages/sandbox/src/index.ts +10 -0
- package/packages/sandbox/src/preview/PreviewHost.tsrx +373 -0
- package/packages/sandbox/src/preview/load-module.ts +16 -0
- package/packages/sandbox/src/server/attachments.ts +308 -0
- package/packages/sandbox/src/server/auto-review.ts +181 -0
- package/packages/sandbox/src/server/checkpoints.ts +90 -0
- package/packages/sandbox/src/server/config.ts +460 -0
- package/packages/sandbox/src/server/dashboard.ts +245 -0
- package/packages/sandbox/src/server/delivery/configuration.ts +193 -0
- package/packages/sandbox/src/server/delivery/git-pr.ts +1473 -0
- package/packages/sandbox/src/server/delivery/index.ts +83 -0
- package/packages/sandbox/src/server/delivery/local.ts +151 -0
- package/packages/sandbox/src/server/delivery/official-modules.ts +516 -0
- package/packages/sandbox/src/server/delivery/plan.ts +218 -0
- package/packages/sandbox/src/server/delivery/policies.ts +239 -0
- package/packages/sandbox/src/server/delivery/record.ts +41 -0
- package/packages/sandbox/src/server/delivery/steps.ts +464 -0
- package/packages/sandbox/src/server/delivery/types.ts +158 -0
- package/packages/sandbox/src/server/dependencies.ts +88 -0
- package/packages/sandbox/src/server/diff.ts +230 -0
- package/packages/sandbox/src/server/gates.ts +388 -0
- package/packages/sandbox/src/server/index.ts +139 -0
- package/packages/sandbox/src/server/path-guard.ts +282 -0
- package/packages/sandbox/src/server/planning.ts +749 -0
- package/packages/sandbox/src/server/platform-client.ts +189 -0
- package/packages/sandbox/src/server/preview-database-host.ts +340 -0
- package/packages/sandbox/src/server/preview-database-protocol.ts +163 -0
- package/packages/sandbox/src/server/preview-database-proxy.ts +356 -0
- package/packages/sandbox/src/server/preview-database.ts +109 -0
- package/packages/sandbox/src/server/preview-ipc.ts +15 -0
- package/packages/sandbox/src/server/preview-modules.ts +83 -0
- package/packages/sandbox/src/server/preview-revision.ts +44 -0
- package/packages/sandbox/src/server/preview-runtime.ts +467 -0
- package/packages/sandbox/src/server/preview-worker-manager.ts +436 -0
- package/packages/sandbox/src/server/preview-worker.ts +168 -0
- package/packages/sandbox/src/server/reference.ts +251 -0
- package/packages/sandbox/src/server/routes.ts +2258 -0
- package/packages/sandbox/src/server/runtime.ts +188 -0
- package/packages/sandbox/src/server/session-owner.ts +23 -0
- package/packages/sandbox/src/server/sessions.ts +849 -0
- package/packages/sandbox/src/server/spec.ts +471 -0
- package/packages/sandbox/src/server/turn-lifecycle.ts +56 -0
- package/packages/sandbox/src/server/turns.ts +993 -0
- package/packages/sandbox/src/server/workspace-install.ts +266 -0
- package/packages/sandbox/src/server/workspace-root.ts +73 -0
- package/packages/sandbox/src/styles.css +1573 -0
- package/packages/sandbox/vite.config.ts +133 -0
- package/packages/server/package.json +43 -0
- package/packages/server/src/application-routes.ts +21 -0
- package/packages/server/src/composition.ts +48 -0
- package/packages/server/src/endpoint.ts +142 -0
- package/packages/server/src/http.ts +128 -0
- package/packages/server/src/index.ts +46 -0
- package/packages/server/src/response-lifetime.ts +56 -0
- package/packages/server/src/security-headers.ts +130 -0
- package/packages/server/src/web-html.ts +55 -0
- package/packages/server/src/web.ts +361 -0
- package/packages/ui/package.json +46 -0
- package/packages/ui/src/brand/BrandMark.tsrx +66 -0
- package/packages/ui/src/brand/mark.ts +44 -0
- package/packages/ui/src/components/Alert.tsrx +17 -0
- package/packages/ui/src/components/Avatar.tsrx +18 -0
- package/packages/ui/src/components/Button.tsrx +29 -0
- package/packages/ui/src/components/Chart.tsrx +274 -0
- package/packages/ui/src/components/CheckGrid.tsrx +93 -0
- package/packages/ui/src/components/ConfirmDialog.tsrx +63 -0
- package/packages/ui/src/components/Drawer.tsrx +71 -0
- package/packages/ui/src/components/EmptyState.tsrx +26 -0
- package/packages/ui/src/components/Filters.tsrx +39 -0
- package/packages/ui/src/components/FormField.tsrx +27 -0
- package/packages/ui/src/components/Kpi.tsrx +36 -0
- package/packages/ui/src/components/PageHeader.tsrx +26 -0
- package/packages/ui/src/components/ScopeSummary.tsrx +76 -0
- package/packages/ui/src/components/SearchField.tsrx +24 -0
- package/packages/ui/src/components/SettingRow.tsrx +50 -0
- package/packages/ui/src/components/Switch.tsrx +21 -0
- package/packages/ui/src/components/Table.tsrx +267 -0
- package/packages/ui/src/components/TableCard.tsrx +52 -0
- package/packages/ui/src/components/Tag.tsrx +28 -0
- package/packages/ui/src/components/VariableField.tsrx +284 -0
- package/packages/ui/src/components/VariableInput.tsrx +7 -0
- package/packages/ui/src/components/VariableSelect.tsrx +72 -0
- package/packages/ui/src/components/VariableTextarea.tsrx +9 -0
- package/packages/ui/src/components/variable-field.ts +61 -0
- package/packages/ui/src/components/variable-select.ts +69 -0
- package/packages/ui/src/icons/Icon.tsrx +56 -0
- package/packages/ui/src/index.ts +81 -0
- package/packages/ui/src/initials.ts +10 -0
- package/packages/ui/src/styles/base.css +71 -0
- package/packages/ui/src/styles/components.css +1859 -0
- package/packages/ui/src/styles/index.css +3 -0
- package/packages/ui/src/styles/tokens.css +124 -0
- package/tsconfig.base.json +18 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS agent_skills (
|
|
2
|
+
id TEXT PRIMARY KEY,
|
|
3
|
+
tenant_id TEXT NOT NULL,
|
|
4
|
+
skill_key TEXT NOT NULL,
|
|
5
|
+
name TEXT NOT NULL,
|
|
6
|
+
description TEXT NOT NULL,
|
|
7
|
+
instructions TEXT NOT NULL,
|
|
8
|
+
required_tools_json TEXT NOT NULL,
|
|
9
|
+
status TEXT NOT NULL CHECK (status IN ('draft', 'active', 'archived')),
|
|
10
|
+
revision INTEGER NOT NULL CHECK (revision >= 1),
|
|
11
|
+
created_by TEXT NOT NULL,
|
|
12
|
+
created_at BIGINT NOT NULL,
|
|
13
|
+
updated_by TEXT NOT NULL,
|
|
14
|
+
updated_at BIGINT NOT NULL,
|
|
15
|
+
UNIQUE (tenant_id, skill_key),
|
|
16
|
+
UNIQUE (id, tenant_id)
|
|
17
|
+
);
|
|
18
|
+
CREATE INDEX IF NOT EXISTS agent_skills_tenant_name_idx ON agent_skills (tenant_id, name, id);
|
|
19
|
+
CREATE TABLE IF NOT EXISTS agent_skill_assignments (
|
|
20
|
+
agent_id TEXT NOT NULL REFERENCES agent_definitions(id) ON DELETE CASCADE,
|
|
21
|
+
skill_id TEXT NOT NULL,
|
|
22
|
+
tenant_id TEXT NOT NULL,
|
|
23
|
+
PRIMARY KEY (agent_id, skill_id),
|
|
24
|
+
FOREIGN KEY (skill_id, tenant_id) REFERENCES agent_skills(id, tenant_id) ON DELETE CASCADE
|
|
25
|
+
);
|
|
26
|
+
CREATE TABLE IF NOT EXISTS agent_run_skill_snapshots (
|
|
27
|
+
run_id TEXT NOT NULL REFERENCES agent_runs(id) ON DELETE CASCADE,
|
|
28
|
+
skill_id TEXT NOT NULL,
|
|
29
|
+
skill_key TEXT NOT NULL,
|
|
30
|
+
skill_name TEXT NOT NULL,
|
|
31
|
+
skill_revision INTEGER NOT NULL,
|
|
32
|
+
required_tools_json TEXT NOT NULL,
|
|
33
|
+
PRIMARY KEY (run_id, skill_id)
|
|
34
|
+
);
|
|
35
|
+
ALTER TABLE agent_skills ENABLE ROW LEVEL SECURITY;
|
|
36
|
+
ALTER TABLE agent_skills FORCE ROW LEVEL SECURITY;
|
|
37
|
+
CREATE POLICY agent_skills_tenant_policy ON agent_skills
|
|
38
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
39
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
40
|
+
ALTER TABLE agent_skill_assignments ENABLE ROW LEVEL SECURITY;
|
|
41
|
+
ALTER TABLE agent_skill_assignments FORCE ROW LEVEL SECURITY;
|
|
42
|
+
CREATE POLICY agent_skill_assignments_tenant_policy ON agent_skill_assignments
|
|
43
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
44
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
DROP TABLE IF EXISTS agent_provider_model_readiness;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS agent_provider_model_readiness (
|
|
2
|
+
provider_id TEXT NOT NULL REFERENCES agent_provider_connections(id) ON DELETE CASCADE,
|
|
3
|
+
model_id TEXT NOT NULL,
|
|
4
|
+
status TEXT NOT NULL CHECK (status IN ('healthy', 'unhealthy')),
|
|
5
|
+
latency_ms BIGINT,
|
|
6
|
+
error_code TEXT,
|
|
7
|
+
checked_at BIGINT NOT NULL,
|
|
8
|
+
PRIMARY KEY (provider_id, model_id)
|
|
9
|
+
);
|
|
10
|
+
INSERT INTO agent_provider_model_readiness
|
|
11
|
+
(provider_id, model_id, status, latency_ms, error_code, checked_at)
|
|
12
|
+
SELECT id, readiness_model, readiness_status, readiness_latency_ms,
|
|
13
|
+
readiness_error_code, readiness_checked_at
|
|
14
|
+
FROM agent_provider_connections
|
|
15
|
+
WHERE readiness_model IS NOT NULL
|
|
16
|
+
AND readiness_checked_at IS NOT NULL
|
|
17
|
+
AND readiness_status IN ('healthy', 'unhealthy')
|
|
18
|
+
ON CONFLICT DO NOTHING;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS agent_definition_output_limits (
|
|
2
|
+
agent_id TEXT PRIMARY KEY REFERENCES agent_definitions(id) ON DELETE CASCADE,
|
|
3
|
+
max_output_tokens BIGINT NOT NULL CHECK (max_output_tokens BETWEEN 256 AND 65536)
|
|
4
|
+
);
|
|
5
|
+
CREATE TABLE IF NOT EXISTS agent_run_output_limits (
|
|
6
|
+
run_id TEXT PRIMARY KEY REFERENCES agent_runs(id) ON DELETE CASCADE,
|
|
7
|
+
max_output_tokens BIGINT NOT NULL CHECK (max_output_tokens BETWEEN 256 AND 65536)
|
|
8
|
+
);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
DROP TABLE IF EXISTS agent_audit_events_v3;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS agent_audit_events_v3 (
|
|
2
|
+
id TEXT PRIMARY KEY,
|
|
3
|
+
tenant_id TEXT NOT NULL,
|
|
4
|
+
sequence BIGINT NOT NULL,
|
|
5
|
+
actor_id TEXT NOT NULL,
|
|
6
|
+
action TEXT NOT NULL,
|
|
7
|
+
subject_type TEXT NOT NULL CHECK (subject_type IN ('agent', 'agent-run', 'agent-provider', 'agent-skill', 'agent-schedule', 'agent-trigger')),
|
|
8
|
+
subject_id TEXT NOT NULL,
|
|
9
|
+
metadata_json TEXT NOT NULL,
|
|
10
|
+
occurred_at BIGINT NOT NULL,
|
|
11
|
+
previous_hash TEXT,
|
|
12
|
+
event_hash TEXT NOT NULL,
|
|
13
|
+
UNIQUE (tenant_id, sequence),
|
|
14
|
+
UNIQUE (tenant_id, event_hash)
|
|
15
|
+
);
|
|
16
|
+
INSERT INTO agent_audit_events_v3
|
|
17
|
+
SELECT * FROM agent_audit_events_v2 ORDER BY tenant_id, sequence
|
|
18
|
+
ON CONFLICT DO NOTHING;
|
|
19
|
+
CREATE INDEX IF NOT EXISTS agent_audit_v3_tenant_time_idx
|
|
20
|
+
ON agent_audit_events_v3 (tenant_id, occurred_at DESC, sequence DESC);
|
|
21
|
+
ALTER TABLE agent_audit_events_v3 ENABLE ROW LEVEL SECURITY;
|
|
22
|
+
ALTER TABLE agent_audit_events_v3 FORCE ROW LEVEL SECURITY;
|
|
23
|
+
CREATE POLICY agent_audit_events_v3_tenant_policy ON agent_audit_events_v3
|
|
24
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
25
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS agent_run_costs (
|
|
2
|
+
run_id TEXT PRIMARY KEY REFERENCES agent_runs(id) ON DELETE CASCADE,
|
|
3
|
+
tenant_id TEXT NOT NULL,
|
|
4
|
+
agent_id TEXT NOT NULL,
|
|
5
|
+
agent_name TEXT NOT NULL,
|
|
6
|
+
model TEXT NOT NULL,
|
|
7
|
+
day TEXT NOT NULL,
|
|
8
|
+
input_tokens BIGINT NOT NULL,
|
|
9
|
+
output_tokens BIGINT NOT NULL,
|
|
10
|
+
cost_micro_usd BIGINT,
|
|
11
|
+
completed_at BIGINT NOT NULL
|
|
12
|
+
);
|
|
13
|
+
CREATE INDEX IF NOT EXISTS agent_run_costs_tenant_day_idx
|
|
14
|
+
ON agent_run_costs (tenant_id, day);
|
|
15
|
+
CREATE INDEX IF NOT EXISTS agent_run_costs_tenant_agent_idx
|
|
16
|
+
ON agent_run_costs (tenant_id, agent_id, day);
|
|
17
|
+
INSERT INTO agent_run_costs
|
|
18
|
+
(run_id, tenant_id, agent_id, agent_name, model, day, input_tokens,
|
|
19
|
+
output_tokens, cost_micro_usd, completed_at)
|
|
20
|
+
SELECT id, tenant_id, agent_id, agent_name, model,
|
|
21
|
+
to_char(to_timestamp(completed_at / 1000), 'YYYY-MM-DD'),
|
|
22
|
+
COALESCE((usage_json::jsonb ->> 'inputTokens')::bigint, 0),
|
|
23
|
+
COALESCE((usage_json::jsonb ->> 'outputTokens')::bigint, 0),
|
|
24
|
+
NULL, completed_at
|
|
25
|
+
FROM agent_runs
|
|
26
|
+
WHERE status = 'succeeded' AND usage_json IS NOT NULL AND completed_at IS NOT NULL
|
|
27
|
+
ON CONFLICT DO NOTHING;
|
|
28
|
+
ALTER TABLE agent_run_costs ENABLE ROW LEVEL SECURITY;
|
|
29
|
+
ALTER TABLE agent_run_costs FORCE ROW LEVEL SECURITY;
|
|
30
|
+
CREATE POLICY agent_run_costs_tenant_policy ON agent_run_costs
|
|
31
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
32
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
-- SQLite expresses immutability with a BEFORE trigger that aborts. PostgreSQL
|
|
2
|
+
-- needs a function to raise from, shared by every immutable table here.
|
|
3
|
+
CREATE OR REPLACE FUNCTION coreloom_reject_change() RETURNS trigger AS $$
|
|
4
|
+
BEGIN
|
|
5
|
+
RAISE EXCEPTION '%', TG_ARGV[0];
|
|
6
|
+
END;
|
|
7
|
+
$$ LANGUAGE plpgsql;
|
|
8
|
+
CREATE TABLE IF NOT EXISTS agent_definition_revisions (
|
|
9
|
+
tenant_id TEXT NOT NULL,
|
|
10
|
+
agent_id TEXT NOT NULL,
|
|
11
|
+
revision INTEGER NOT NULL CHECK (revision >= 1),
|
|
12
|
+
agent_key TEXT NOT NULL,
|
|
13
|
+
name TEXT NOT NULL,
|
|
14
|
+
description TEXT NOT NULL,
|
|
15
|
+
instructions TEXT NOT NULL,
|
|
16
|
+
provider TEXT NOT NULL,
|
|
17
|
+
model TEXT NOT NULL,
|
|
18
|
+
allowed_tools_json TEXT NOT NULL,
|
|
19
|
+
skills_json TEXT NOT NULL,
|
|
20
|
+
max_steps INTEGER NOT NULL CHECK (max_steps BETWEEN 1 AND 32),
|
|
21
|
+
timeout_ms BIGINT NOT NULL CHECK (timeout_ms BETWEEN 250 AND 86400000),
|
|
22
|
+
temperature_milli INTEGER NOT NULL CHECK (temperature_milli BETWEEN 0 AND 2000),
|
|
23
|
+
max_output_tokens BIGINT NOT NULL CHECK (max_output_tokens BETWEEN 256 AND 65536),
|
|
24
|
+
status TEXT NOT NULL CHECK (status IN ('draft', 'active', 'paused', 'archived')),
|
|
25
|
+
retained_by TEXT NOT NULL,
|
|
26
|
+
retained_at BIGINT NOT NULL,
|
|
27
|
+
PRIMARY KEY (tenant_id, agent_id, revision)
|
|
28
|
+
);
|
|
29
|
+
CREATE INDEX IF NOT EXISTS agent_definition_revisions_tenant_agent_idx
|
|
30
|
+
ON agent_definition_revisions (tenant_id, agent_id, revision DESC);
|
|
31
|
+
CREATE TRIGGER agent_definition_revisions_no_update
|
|
32
|
+
BEFORE UPDATE ON agent_definition_revisions
|
|
33
|
+
FOR EACH ROW EXECUTE FUNCTION coreloom_reject_change('agent definition revisions are immutable');
|
|
34
|
+
CREATE TRIGGER agent_definition_revisions_no_delete
|
|
35
|
+
BEFORE DELETE ON agent_definition_revisions
|
|
36
|
+
FOR EACH ROW EXECUTE FUNCTION coreloom_reject_change('agent definition revisions are immutable');
|
|
37
|
+
|
|
38
|
+
CREATE TABLE IF NOT EXISTS agent_run_contracts (
|
|
39
|
+
run_id TEXT PRIMARY KEY REFERENCES agent_runs(id) ON DELETE CASCADE,
|
|
40
|
+
tenant_id TEXT NOT NULL,
|
|
41
|
+
workflow_run_id TEXT,
|
|
42
|
+
output_contract_json TEXT NOT NULL,
|
|
43
|
+
structured_output_json TEXT,
|
|
44
|
+
request_hash TEXT NOT NULL
|
|
45
|
+
);
|
|
46
|
+
CREATE INDEX IF NOT EXISTS agent_run_contracts_tenant_workflow_idx
|
|
47
|
+
ON agent_run_contracts (tenant_id, workflow_run_id, run_id);
|
|
48
|
+
INSERT INTO agent_run_contracts
|
|
49
|
+
(run_id, tenant_id, workflow_run_id, output_contract_json,
|
|
50
|
+
structured_output_json, request_hash)
|
|
51
|
+
SELECT id, tenant_id, NULL, '{"kind":"text"}', NULL,
|
|
52
|
+
encode(sha256(gen_random_uuid()::text::bytea), 'hex')
|
|
53
|
+
FROM agent_runs
|
|
54
|
+
ON CONFLICT DO NOTHING;
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS agent_action_invocations (
|
|
57
|
+
id TEXT PRIMARY KEY,
|
|
58
|
+
tenant_id TEXT NOT NULL,
|
|
59
|
+
workflow_run_id TEXT NOT NULL,
|
|
60
|
+
node_run_id TEXT NOT NULL,
|
|
61
|
+
action_id TEXT NOT NULL,
|
|
62
|
+
contract_version INTEGER NOT NULL CHECK (contract_version >= 1),
|
|
63
|
+
actor_json TEXT NOT NULL,
|
|
64
|
+
permission_snapshot_json TEXT NOT NULL,
|
|
65
|
+
input_json TEXT NOT NULL,
|
|
66
|
+
idempotency_key TEXT NOT NULL,
|
|
67
|
+
request_hash TEXT NOT NULL,
|
|
68
|
+
status TEXT NOT NULL CHECK (status IN ('queued', 'running', 'succeeded', 'failed', 'cancelled')),
|
|
69
|
+
output_json TEXT,
|
|
70
|
+
failure_code TEXT,
|
|
71
|
+
attempt INTEGER NOT NULL DEFAULT 0,
|
|
72
|
+
queued_at BIGINT NOT NULL,
|
|
73
|
+
started_at BIGINT,
|
|
74
|
+
completed_at BIGINT,
|
|
75
|
+
lease_owner TEXT,
|
|
76
|
+
lease_expires_at BIGINT,
|
|
77
|
+
UNIQUE (tenant_id, idempotency_key)
|
|
78
|
+
);
|
|
79
|
+
CREATE INDEX IF NOT EXISTS agent_actions_tenant_workflow_idx
|
|
80
|
+
ON agent_action_invocations (tenant_id, workflow_run_id, queued_at DESC, id);
|
|
81
|
+
CREATE INDEX IF NOT EXISTS agent_actions_recovery_idx
|
|
82
|
+
ON agent_action_invocations (status, lease_expires_at, queued_at);
|
|
83
|
+
ALTER TABLE agent_definition_revisions ENABLE ROW LEVEL SECURITY;
|
|
84
|
+
ALTER TABLE agent_definition_revisions FORCE ROW LEVEL SECURITY;
|
|
85
|
+
CREATE POLICY agent_definition_revisions_tenant_policy ON agent_definition_revisions
|
|
86
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
87
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
88
|
+
ALTER TABLE agent_run_contracts ENABLE ROW LEVEL SECURITY;
|
|
89
|
+
ALTER TABLE agent_run_contracts FORCE ROW LEVEL SECURITY;
|
|
90
|
+
CREATE POLICY agent_run_contracts_tenant_policy ON agent_run_contracts
|
|
91
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
92
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
93
|
+
ALTER TABLE agent_action_invocations ENABLE ROW LEVEL SECURITY;
|
|
94
|
+
ALTER TABLE agent_action_invocations FORCE ROW LEVEL SECURITY;
|
|
95
|
+
CREATE POLICY agent_action_invocations_tenant_policy ON agent_action_invocations
|
|
96
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
97
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
DROP TABLE IF EXISTS agent_audit_events_v4;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS agent_audit_events_v4 (
|
|
2
|
+
id TEXT PRIMARY KEY,
|
|
3
|
+
tenant_id TEXT NOT NULL,
|
|
4
|
+
sequence BIGINT NOT NULL,
|
|
5
|
+
actor_id TEXT NOT NULL,
|
|
6
|
+
action TEXT NOT NULL,
|
|
7
|
+
subject_type TEXT NOT NULL CHECK (subject_type IN ('agent', 'agent-run', 'agent-provider', 'agent-skill', 'agent-schedule', 'agent-trigger', 'agent-action')),
|
|
8
|
+
subject_id TEXT NOT NULL,
|
|
9
|
+
metadata_json TEXT NOT NULL,
|
|
10
|
+
occurred_at BIGINT NOT NULL,
|
|
11
|
+
previous_hash TEXT,
|
|
12
|
+
event_hash TEXT NOT NULL,
|
|
13
|
+
UNIQUE (tenant_id, sequence),
|
|
14
|
+
UNIQUE (tenant_id, event_hash)
|
|
15
|
+
);
|
|
16
|
+
INSERT INTO agent_audit_events_v4
|
|
17
|
+
SELECT * FROM agent_audit_events_v3 ORDER BY tenant_id, sequence
|
|
18
|
+
ON CONFLICT DO NOTHING;
|
|
19
|
+
CREATE INDEX IF NOT EXISTS agent_audit_v4_tenant_time_idx
|
|
20
|
+
ON agent_audit_events_v4 (tenant_id, occurred_at DESC, sequence DESC);
|
|
21
|
+
ALTER TABLE agent_audit_events_v4 ENABLE ROW LEVEL SECURITY;
|
|
22
|
+
ALTER TABLE agent_audit_events_v4 FORCE ROW LEVEL SECURITY;
|
|
23
|
+
CREATE POLICY agent_audit_events_v4_tenant_policy ON agent_audit_events_v4
|
|
24
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
25
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
DROP TABLE IF EXISTS agent_run_actors;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS agent_run_actors (
|
|
2
|
+
run_id TEXT PRIMARY KEY REFERENCES agent_runs(id) ON DELETE CASCADE,
|
|
3
|
+
tenant_id TEXT NOT NULL,
|
|
4
|
+
actor_json TEXT NOT NULL CHECK (actor_json IS JSON OBJECT)
|
|
5
|
+
);
|
|
6
|
+
CREATE INDEX IF NOT EXISTS agent_run_actors_tenant_idx
|
|
7
|
+
ON agent_run_actors (tenant_id, run_id);
|
|
8
|
+
INSERT INTO agent_run_actors (run_id, tenant_id, actor_json)
|
|
9
|
+
SELECT id, tenant_id,
|
|
10
|
+
jsonb_build_object('kind', 'user', 'id', requested_by, 'label', requested_by)::text
|
|
11
|
+
FROM agent_runs
|
|
12
|
+
ON CONFLICT DO NOTHING;
|
|
13
|
+
ALTER TABLE agent_run_actors ENABLE ROW LEVEL SECURITY;
|
|
14
|
+
ALTER TABLE agent_run_actors FORCE ROW LEVEL SECURITY;
|
|
15
|
+
CREATE POLICY agent_run_actors_tenant_policy ON agent_run_actors
|
|
16
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
17
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
DROP TRIGGER IF EXISTS agent_revision_ownership_no_delete;
|
|
2
|
+
DROP TRIGGER IF EXISTS agent_revision_ownership_no_update;
|
|
3
|
+
DROP TABLE IF EXISTS agent_revision_ownership;
|
|
4
|
+
DROP INDEX IF EXISTS module_agent_bindings_tenant_status_idx;
|
|
5
|
+
DROP TABLE IF EXISTS module_agent_bindings;
|
|
6
|
+
DROP TABLE IF EXISTS module_agent_definitions;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
-- SQLite expresses immutability with a BEFORE trigger that aborts. PostgreSQL
|
|
2
|
+
-- needs a function to raise from, shared by every immutable table here.
|
|
3
|
+
CREATE OR REPLACE FUNCTION coreloom_reject_change() RETURNS trigger AS $$
|
|
4
|
+
BEGIN
|
|
5
|
+
RAISE EXCEPTION '%', TG_ARGV[0];
|
|
6
|
+
END;
|
|
7
|
+
$$ LANGUAGE plpgsql;
|
|
8
|
+
CREATE TABLE IF NOT EXISTS module_agent_definitions (
|
|
9
|
+
agent_id TEXT PRIMARY KEY REFERENCES agent_definitions(id),
|
|
10
|
+
module_id TEXT NOT NULL,
|
|
11
|
+
agent_key TEXT NOT NULL,
|
|
12
|
+
definition_revision INTEGER NOT NULL CHECK (definition_revision >= 1),
|
|
13
|
+
content_hash TEXT NOT NULL,
|
|
14
|
+
name TEXT NOT NULL,
|
|
15
|
+
description TEXT NOT NULL,
|
|
16
|
+
instructions TEXT NOT NULL,
|
|
17
|
+
allowed_tools_json TEXT NOT NULL,
|
|
18
|
+
max_steps INTEGER NOT NULL CHECK (max_steps BETWEEN 1 AND 32),
|
|
19
|
+
timeout_ms BIGINT NOT NULL CHECK (timeout_ms BETWEEN 250 AND 86400000),
|
|
20
|
+
temperature_milli INTEGER NOT NULL CHECK (temperature_milli BETWEEN 0 AND 2000),
|
|
21
|
+
max_output_tokens BIGINT NOT NULL CHECK (max_output_tokens BETWEEN 256 AND 65536),
|
|
22
|
+
registered_at BIGINT NOT NULL,
|
|
23
|
+
UNIQUE (module_id, agent_key)
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
CREATE TABLE IF NOT EXISTS module_agent_bindings (
|
|
27
|
+
tenant_id TEXT NOT NULL,
|
|
28
|
+
agent_id TEXT NOT NULL REFERENCES module_agent_definitions(agent_id),
|
|
29
|
+
provider TEXT NOT NULL,
|
|
30
|
+
model TEXT NOT NULL,
|
|
31
|
+
enabled_tools_json TEXT NOT NULL,
|
|
32
|
+
status TEXT NOT NULL CHECK (status IN ('active', 'paused')),
|
|
33
|
+
module_definition_revision INTEGER NOT NULL CHECK (module_definition_revision >= 1),
|
|
34
|
+
executable_revision INTEGER NOT NULL CHECK (executable_revision >= 1),
|
|
35
|
+
revision INTEGER NOT NULL CHECK (revision >= 1),
|
|
36
|
+
updated_by TEXT NOT NULL,
|
|
37
|
+
updated_at BIGINT NOT NULL,
|
|
38
|
+
PRIMARY KEY (tenant_id, agent_id)
|
|
39
|
+
);
|
|
40
|
+
CREATE INDEX IF NOT EXISTS module_agent_bindings_tenant_status_idx
|
|
41
|
+
ON module_agent_bindings (tenant_id, status, agent_id);
|
|
42
|
+
|
|
43
|
+
CREATE TABLE IF NOT EXISTS agent_revision_ownership (
|
|
44
|
+
tenant_id TEXT NOT NULL,
|
|
45
|
+
agent_id TEXT NOT NULL,
|
|
46
|
+
revision INTEGER NOT NULL,
|
|
47
|
+
module_id TEXT NOT NULL,
|
|
48
|
+
module_definition_revision INTEGER NOT NULL CHECK (module_definition_revision >= 1),
|
|
49
|
+
PRIMARY KEY (tenant_id, agent_id, revision),
|
|
50
|
+
FOREIGN KEY (tenant_id, agent_id, revision)
|
|
51
|
+
REFERENCES agent_definition_revisions (tenant_id, agent_id, revision)
|
|
52
|
+
);
|
|
53
|
+
CREATE TRIGGER agent_revision_ownership_no_update
|
|
54
|
+
BEFORE UPDATE ON agent_revision_ownership
|
|
55
|
+
FOR EACH ROW EXECUTE FUNCTION coreloom_reject_change('agent revision ownership is immutable');
|
|
56
|
+
CREATE TRIGGER agent_revision_ownership_no_delete
|
|
57
|
+
BEFORE DELETE ON agent_revision_ownership
|
|
58
|
+
FOR EACH ROW EXECUTE FUNCTION coreloom_reject_change('agent revision ownership is immutable');
|
|
59
|
+
ALTER TABLE module_agent_bindings ENABLE ROW LEVEL SECURITY;
|
|
60
|
+
ALTER TABLE module_agent_bindings FORCE ROW LEVEL SECURITY;
|
|
61
|
+
CREATE POLICY module_agent_bindings_tenant_policy ON module_agent_bindings
|
|
62
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
63
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
64
|
+
ALTER TABLE agent_revision_ownership ENABLE ROW LEVEL SECURITY;
|
|
65
|
+
ALTER TABLE agent_revision_ownership FORCE ROW LEVEL SECURITY;
|
|
66
|
+
CREATE POLICY agent_revision_ownership_tenant_policy ON agent_revision_ownership
|
|
67
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
68
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
ALTER TABLE agent_run_actors
|
|
2
|
+
ADD COLUMN authorization_subject_json TEXT CHECK (authorization_subject_json IS NULL OR (authorization_subject_json IS JSON AND authorization_subject_json::jsonb ->> 'kind' = 'user'));
|
|
3
|
+
UPDATE agent_run_actors
|
|
4
|
+
SET authorization_subject_json = CASE actor_json::jsonb ->> 'kind'
|
|
5
|
+
WHEN 'user' THEN actor_json
|
|
6
|
+
WHEN 'service' THEN actor_json::jsonb ->> 'configuredBy'
|
|
7
|
+
ELSE NULL
|
|
8
|
+
END
|
|
9
|
+
WHERE authorization_subject_json IS NULL;
|
|
10
|
+
ALTER TABLE agent_action_invocations
|
|
11
|
+
ADD COLUMN authorization_subject_json TEXT CHECK (authorization_subject_json IS NULL OR (authorization_subject_json IS JSON AND authorization_subject_json::jsonb ->> 'kind' = 'user'));
|
|
12
|
+
UPDATE agent_action_invocations
|
|
13
|
+
SET authorization_subject_json = CASE actor_json::jsonb ->> 'kind'
|
|
14
|
+
WHEN 'user' THEN actor_json
|
|
15
|
+
WHEN 'service' THEN actor_json::jsonb ->> 'configuredBy'
|
|
16
|
+
ELSE NULL
|
|
17
|
+
END
|
|
18
|
+
WHERE authorization_subject_json IS NULL;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
DROP POLICY IF EXISTS agent_provider_model_readiness_tenant_policy ON agent_provider_model_readiness;
|
|
2
|
+
DROP POLICY IF EXISTS agent_run_skill_snapshots_tenant_policy ON agent_run_skill_snapshots;
|
|
3
|
+
DROP POLICY IF EXISTS agent_run_output_limits_tenant_policy ON agent_run_output_limits;
|
|
4
|
+
DROP POLICY IF EXISTS agent_run_execution_limits_tenant_policy ON agent_run_execution_limits;
|
|
5
|
+
DROP POLICY IF EXISTS agent_definition_output_limits_tenant_policy ON agent_definition_output_limits;
|
|
6
|
+
DROP POLICY IF EXISTS agent_definition_execution_limits_tenant_policy ON agent_definition_execution_limits;
|
|
7
|
+
ALTER TABLE agent_provider_model_readiness DROP COLUMN IF EXISTS tenant_id;
|
|
8
|
+
ALTER TABLE agent_run_skill_snapshots DROP COLUMN IF EXISTS tenant_id;
|
|
9
|
+
ALTER TABLE agent_run_output_limits DROP COLUMN IF EXISTS tenant_id;
|
|
10
|
+
ALTER TABLE agent_run_execution_limits DROP COLUMN IF EXISTS tenant_id;
|
|
11
|
+
ALTER TABLE agent_definition_output_limits DROP COLUMN IF EXISTS tenant_id;
|
|
12
|
+
ALTER TABLE agent_definition_execution_limits DROP COLUMN IF EXISTS tenant_id;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
-- These tables hang off a tenant-owned parent and were protected only by it.
|
|
2
|
+
-- A read by a caller-supplied parent id therefore crossed tenants with nothing
|
|
3
|
+
-- but application code in the way. Each one now carries its own tenant and the
|
|
4
|
+
-- same forced row security every other tenant table has, so a mistake in a
|
|
5
|
+
-- query cannot reach another workspace.
|
|
6
|
+
ALTER TABLE agent_definition_execution_limits ADD COLUMN tenant_id TEXT;
|
|
7
|
+
UPDATE agent_definition_execution_limits AS child
|
|
8
|
+
SET tenant_id = parent.tenant_id
|
|
9
|
+
FROM agent_definitions AS parent
|
|
10
|
+
WHERE parent.id = child.agent_id AND child.tenant_id IS NULL;
|
|
11
|
+
DELETE FROM agent_definition_execution_limits WHERE tenant_id IS NULL;
|
|
12
|
+
ALTER TABLE agent_definition_execution_limits ALTER COLUMN tenant_id SET NOT NULL;
|
|
13
|
+
ALTER TABLE agent_definition_execution_limits ENABLE ROW LEVEL SECURITY;
|
|
14
|
+
ALTER TABLE agent_definition_execution_limits FORCE ROW LEVEL SECURITY;
|
|
15
|
+
CREATE POLICY agent_definition_execution_limits_tenant_policy
|
|
16
|
+
ON agent_definition_execution_limits
|
|
17
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
18
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
19
|
+
|
|
20
|
+
ALTER TABLE agent_definition_output_limits ADD COLUMN tenant_id TEXT;
|
|
21
|
+
UPDATE agent_definition_output_limits AS child
|
|
22
|
+
SET tenant_id = parent.tenant_id
|
|
23
|
+
FROM agent_definitions AS parent
|
|
24
|
+
WHERE parent.id = child.agent_id AND child.tenant_id IS NULL;
|
|
25
|
+
DELETE FROM agent_definition_output_limits WHERE tenant_id IS NULL;
|
|
26
|
+
ALTER TABLE agent_definition_output_limits ALTER COLUMN tenant_id SET NOT NULL;
|
|
27
|
+
ALTER TABLE agent_definition_output_limits ENABLE ROW LEVEL SECURITY;
|
|
28
|
+
ALTER TABLE agent_definition_output_limits FORCE ROW LEVEL SECURITY;
|
|
29
|
+
CREATE POLICY agent_definition_output_limits_tenant_policy
|
|
30
|
+
ON agent_definition_output_limits
|
|
31
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
32
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
33
|
+
|
|
34
|
+
ALTER TABLE agent_run_execution_limits ADD COLUMN tenant_id TEXT;
|
|
35
|
+
UPDATE agent_run_execution_limits AS child
|
|
36
|
+
SET tenant_id = parent.tenant_id
|
|
37
|
+
FROM agent_runs AS parent
|
|
38
|
+
WHERE parent.id = child.run_id AND child.tenant_id IS NULL;
|
|
39
|
+
DELETE FROM agent_run_execution_limits WHERE tenant_id IS NULL;
|
|
40
|
+
ALTER TABLE agent_run_execution_limits ALTER COLUMN tenant_id SET NOT NULL;
|
|
41
|
+
ALTER TABLE agent_run_execution_limits ENABLE ROW LEVEL SECURITY;
|
|
42
|
+
ALTER TABLE agent_run_execution_limits FORCE ROW LEVEL SECURITY;
|
|
43
|
+
CREATE POLICY agent_run_execution_limits_tenant_policy
|
|
44
|
+
ON agent_run_execution_limits
|
|
45
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
46
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
47
|
+
|
|
48
|
+
ALTER TABLE agent_run_output_limits ADD COLUMN tenant_id TEXT;
|
|
49
|
+
UPDATE agent_run_output_limits AS child
|
|
50
|
+
SET tenant_id = parent.tenant_id
|
|
51
|
+
FROM agent_runs AS parent
|
|
52
|
+
WHERE parent.id = child.run_id AND child.tenant_id IS NULL;
|
|
53
|
+
DELETE FROM agent_run_output_limits WHERE tenant_id IS NULL;
|
|
54
|
+
ALTER TABLE agent_run_output_limits ALTER COLUMN tenant_id SET NOT NULL;
|
|
55
|
+
ALTER TABLE agent_run_output_limits ENABLE ROW LEVEL SECURITY;
|
|
56
|
+
ALTER TABLE agent_run_output_limits FORCE ROW LEVEL SECURITY;
|
|
57
|
+
CREATE POLICY agent_run_output_limits_tenant_policy
|
|
58
|
+
ON agent_run_output_limits
|
|
59
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
60
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
61
|
+
|
|
62
|
+
ALTER TABLE agent_run_skill_snapshots ADD COLUMN tenant_id TEXT;
|
|
63
|
+
UPDATE agent_run_skill_snapshots AS child
|
|
64
|
+
SET tenant_id = parent.tenant_id
|
|
65
|
+
FROM agent_runs AS parent
|
|
66
|
+
WHERE parent.id = child.run_id AND child.tenant_id IS NULL;
|
|
67
|
+
DELETE FROM agent_run_skill_snapshots WHERE tenant_id IS NULL;
|
|
68
|
+
ALTER TABLE agent_run_skill_snapshots ALTER COLUMN tenant_id SET NOT NULL;
|
|
69
|
+
ALTER TABLE agent_run_skill_snapshots ENABLE ROW LEVEL SECURITY;
|
|
70
|
+
ALTER TABLE agent_run_skill_snapshots FORCE ROW LEVEL SECURITY;
|
|
71
|
+
CREATE POLICY agent_run_skill_snapshots_tenant_policy
|
|
72
|
+
ON agent_run_skill_snapshots
|
|
73
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
74
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
75
|
+
|
|
76
|
+
ALTER TABLE agent_provider_model_readiness ADD COLUMN tenant_id TEXT;
|
|
77
|
+
UPDATE agent_provider_model_readiness AS child
|
|
78
|
+
SET tenant_id = parent.tenant_id
|
|
79
|
+
FROM agent_provider_connections AS parent
|
|
80
|
+
WHERE parent.id = child.provider_id AND child.tenant_id IS NULL;
|
|
81
|
+
DELETE FROM agent_provider_model_readiness WHERE tenant_id IS NULL;
|
|
82
|
+
ALTER TABLE agent_provider_model_readiness ALTER COLUMN tenant_id SET NOT NULL;
|
|
83
|
+
ALTER TABLE agent_provider_model_readiness ENABLE ROW LEVEL SECURITY;
|
|
84
|
+
ALTER TABLE agent_provider_model_readiness FORCE ROW LEVEL SECURITY;
|
|
85
|
+
CREATE POLICY agent_provider_model_readiness_tenant_policy
|
|
86
|
+
ON agent_provider_model_readiness
|
|
87
|
+
USING (tenant_id = current_setting('coreloom.tenant_id', true))
|
|
88
|
+
WITH CHECK (tenant_id = current_setting('coreloom.tenant_id', true));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
REVOKE SELECT (id, tenant_id, status, queued_at, lease_expires_at)
|
|
2
|
+
ON agent_action_invocations FROM coreloom_background;
|
|
3
|
+
DROP POLICY agent_action_invocations_background_policy ON agent_action_invocations;
|
|
4
|
+
REVOKE SELECT (id, tenant_id, status, queued_at, lease_expires_at)
|
|
5
|
+
ON agent_runs FROM coreloom_background;
|
|
6
|
+
DROP POLICY agent_runs_background_policy ON agent_runs;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
-- The worker recovery polls have to find interrupted work before they know
|
|
2
|
+
-- whose it is, so they read on the background role. That role gets no table
|
|
3
|
+
-- privilege by default: each table it may poll grants the routing columns it
|
|
4
|
+
-- needs and nothing else, under a policy of its own. Every claim that follows
|
|
5
|
+
-- runs on the tenant-scoped runtime role, under the tenant the row named.
|
|
6
|
+
CREATE POLICY agent_runs_background_policy ON agent_runs
|
|
7
|
+
FOR SELECT TO coreloom_background
|
|
8
|
+
USING (true);
|
|
9
|
+
REVOKE SELECT ON agent_runs FROM coreloom_background;
|
|
10
|
+
GRANT SELECT (id, tenant_id, status, queued_at, lease_expires_at)
|
|
11
|
+
ON agent_runs TO coreloom_background;
|
|
12
|
+
CREATE POLICY agent_action_invocations_background_policy ON agent_action_invocations
|
|
13
|
+
FOR SELECT TO coreloom_background
|
|
14
|
+
USING (true);
|
|
15
|
+
REVOKE SELECT ON agent_action_invocations FROM coreloom_background;
|
|
16
|
+
GRANT SELECT (id, tenant_id, status, queued_at, lease_expires_at)
|
|
17
|
+
ON agent_action_invocations TO coreloom_background;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
-- The operator status command counts provider connections across the whole
|
|
2
|
+
-- deployment, which the tenant-scoped runtime role cannot do and should not.
|
|
3
|
+
-- It reads the one flag the count needs, under a policy of this table's own,
|
|
4
|
+
-- and never sees a name, a base URL or an encrypted credential.
|
|
5
|
+
DO $$
|
|
6
|
+
BEGIN
|
|
7
|
+
IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'coreloom_background') THEN
|
|
8
|
+
RAISE EXCEPTION 'The coreloom_background role must exist before this migration.';
|
|
9
|
+
END IF;
|
|
10
|
+
END
|
|
11
|
+
$$;
|
|
12
|
+
CREATE POLICY agent_provider_connections_background_policy
|
|
13
|
+
ON agent_provider_connections
|
|
14
|
+
FOR SELECT TO coreloom_background
|
|
15
|
+
USING (true);
|
|
16
|
+
REVOKE SELECT ON agent_provider_connections FROM coreloom_background;
|
|
17
|
+
GRANT SELECT (id, enabled) ON agent_provider_connections TO coreloom_background;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
REVOKE SELECT (tenant_id) ON agent_definitions FROM coreloom_background;
|
|
2
|
+
DROP POLICY agent_definitions_reconciliation_policy ON agent_definitions;
|
|
3
|
+
REVOKE SELECT (tenant_id, agent_id) ON module_agent_bindings FROM coreloom_background;
|
|
4
|
+
DROP POLICY module_agent_bindings_reconciliation_policy ON module_agent_bindings;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
-- Discover only tenant routing keys; boot-time writes still use tenant transactions.
|
|
2
|
+
CREATE POLICY agent_definitions_reconciliation_policy ON agent_definitions
|
|
3
|
+
FOR SELECT TO coreloom_background USING (true);
|
|
4
|
+
GRANT SELECT (tenant_id) ON agent_definitions TO coreloom_background;
|
|
5
|
+
CREATE POLICY module_agent_bindings_reconciliation_policy ON module_agent_bindings
|
|
6
|
+
FOR SELECT TO coreloom_background USING (true);
|
|
7
|
+
GRANT SELECT (tenant_id, agent_id) ON module_agent_bindings TO coreloom_background;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Agentic core migrations
|
|
2
|
+
|
|
3
|
+
`0001_agents_core.up.sql` owns tenant-scoped agent definitions, durable runs,
|
|
4
|
+
execution events, leases, and the module audit hash chain. The matching down
|
|
5
|
+
migration is destructive and exists for controlled local rollback only.
|
|
6
|
+
|
|
7
|
+
`0012` adds run-cost accounting and backfills tokens for runs that completed
|
|
8
|
+
before it landed. Those rows stay unpriced, because the price a run was billed
|
|
9
|
+
at is not recoverable after the fact.
|
|
10
|
+
|
|
11
|
+
`0009` adopts the pre-ledger v3 audit projection created by the former
|
|
12
|
+
automation subsystem. Its exact table and index fingerprints and its complete
|
|
13
|
+
v2 row copy are checked before adoption.
|
|
14
|
+
|
|
15
|
+
`0013` retains every agent definition revision as an immutable executable
|
|
16
|
+
snapshot, adds workflow-bound run output contracts, and introduces the durable
|
|
17
|
+
versioned action queue.
|
|
18
|
+
|
|
19
|
+
`0014` moves audit writes to v4, whose subject constraint covers both the
|
|
20
|
+
historical schedule and trigger events and workflow action invocations. It
|
|
21
|
+
copies the existing v3 chain byte for byte.
|
|
22
|
+
|
|
23
|
+
`0015` persists the full normalized actor beside each run. Pre-existing rows
|
|
24
|
+
retain their historical requester id as a user actor because the old schema did
|
|
25
|
+
not record enough provenance to infer an agent run or a service configurator.
|
|
26
|
+
|
|
27
|
+
`0016` stores module-owned business-agent definitions, tenant execution
|
|
28
|
+
bindings, and the immutable ownership lineage of executable revisions. Module
|
|
29
|
+
definitions remain after a module disappears so completed runs and workflow
|
|
30
|
+
references retain their evidence.
|
|
31
|
+
|
|
32
|
+
`0017` stores the delegated user separately from the run or action audit actor.
|
|
33
|
+
Workers use that user for live authorization, while audit and record history
|
|
34
|
+
continue to attribute work to the actual service or business agent.
|
|
35
|
+
|
|
36
|
+
`0019` grants the background role the routing columns of `agent_runs` and
|
|
37
|
+
`agent_action_invocations` under a SELECT policy of its own. The recovery polls
|
|
38
|
+
have to find interrupted work before they know whose it is; every claim that
|
|
39
|
+
follows runs on the tenant-scoped runtime role, under the tenant the row named.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../packages/contracts/schemas/module.schema.json",
|
|
3
|
+
"schemaVersion": 1,
|
|
4
|
+
"id": "agents.core",
|
|
5
|
+
"package": "@flowdular/module-agents",
|
|
6
|
+
"version": "0.9.1",
|
|
7
|
+
"profile": "full",
|
|
8
|
+
"capabilities": [
|
|
9
|
+
"api",
|
|
10
|
+
"database",
|
|
11
|
+
"client",
|
|
12
|
+
"translations",
|
|
13
|
+
"integration",
|
|
14
|
+
"cli"
|
|
15
|
+
],
|
|
16
|
+
"platform": {
|
|
17
|
+
"server": true,
|
|
18
|
+
"client": true
|
|
19
|
+
},
|
|
20
|
+
"dependencies": [
|
|
21
|
+
{
|
|
22
|
+
"id": "system.core",
|
|
23
|
+
"range": "0.5.0"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "auth.core",
|
|
27
|
+
"range": "0.10.0"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"tenancy": "required",
|
|
31
|
+
"locales": ["en", "pl"],
|
|
32
|
+
"stability": "experimental",
|
|
33
|
+
"cli": {
|
|
34
|
+
"catalog": "src/cli/commands.json",
|
|
35
|
+
"entry": "src/cli/index.ts"
|
|
36
|
+
},
|
|
37
|
+
"platformApi": "0.1.0"
|
|
38
|
+
}
|