@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,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@flowdular/module-agents",
|
|
3
|
+
"version": "0.9.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"exports": {
|
|
6
|
+
".": "./src/index.ts",
|
|
7
|
+
"./client": "./src/client/index.ts",
|
|
8
|
+
"./server": "./src/server/index.ts",
|
|
9
|
+
"./platform": "./src/platform.ts",
|
|
10
|
+
"./module.json": "./module.json"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"typecheck": "tsrx-tsc --noEmit -p tsconfig.json",
|
|
14
|
+
"test": "vitest run"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@flowdular/cli-protocol": "workspace:*",
|
|
18
|
+
"@flowdular/client": "workspace:*",
|
|
19
|
+
"@flowdular/contracts": "workspace:*",
|
|
20
|
+
"@flowdular/database": "workspace:*",
|
|
21
|
+
"@flowdular/harness": "workspace:*",
|
|
22
|
+
"@flowdular/kernel": "workspace:*",
|
|
23
|
+
"@flowdular/module-auth": "workspace:*",
|
|
24
|
+
"@flowdular/server": "workspace:*",
|
|
25
|
+
"@flowdular/ui": "workspace:*",
|
|
26
|
+
"octane": "0.1.51",
|
|
27
|
+
"segment-state": "0.2.0"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@flowdular/database-testing": "workspace:*",
|
|
31
|
+
"@tsrx/typescript-plugin": "0.3.120",
|
|
32
|
+
"@types/node": "24.13.3",
|
|
33
|
+
"typescript": "5.9.3",
|
|
34
|
+
"vitest": "4.1.10"
|
|
35
|
+
},
|
|
36
|
+
"license": "MIT",
|
|
37
|
+
"repository": {
|
|
38
|
+
"type": "git",
|
|
39
|
+
"url": "git+https://github.com/Flowdular/flowdular.git",
|
|
40
|
+
"directory": "modules/agents"
|
|
41
|
+
},
|
|
42
|
+
"files": [
|
|
43
|
+
"src",
|
|
44
|
+
"schemas",
|
|
45
|
+
"dist",
|
|
46
|
+
"bin",
|
|
47
|
+
"public",
|
|
48
|
+
"module.json",
|
|
49
|
+
"migrations",
|
|
50
|
+
"translations",
|
|
51
|
+
"spec",
|
|
52
|
+
"README.md",
|
|
53
|
+
"LICENSE"
|
|
54
|
+
],
|
|
55
|
+
"private": true
|
|
56
|
+
}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
schemaVersion: 1
|
|
2
|
+
id: agents.core
|
|
3
|
+
specVersion: 0.9.1
|
|
4
|
+
status: approved
|
|
5
|
+
name: Agentic Core
|
|
6
|
+
description: Provides tenant-created and module-owned business agent definitions, tenant-scoped provider connections, reusable procedures, durable streamed execution, run history, and the public run queue used by optional automation modules.
|
|
7
|
+
profile: full
|
|
8
|
+
capabilities:
|
|
9
|
+
- api
|
|
10
|
+
- database
|
|
11
|
+
- client
|
|
12
|
+
- translations
|
|
13
|
+
- integration
|
|
14
|
+
- cli
|
|
15
|
+
dependencies:
|
|
16
|
+
- id: system.core
|
|
17
|
+
range: 0.5.0
|
|
18
|
+
- id: auth.core
|
|
19
|
+
range: 0.10.0
|
|
20
|
+
tenancy: required
|
|
21
|
+
locales:
|
|
22
|
+
- en
|
|
23
|
+
- pl
|
|
24
|
+
invariants:
|
|
25
|
+
- Every agent managed by agents.core is a business agent with explicit ownership. A tenant-created definition is owned by one tenant; a module-owned definition is owned by one enabled module and receives a separate tenant-scoped execution binding. Sandbox coding specialists are outside agents.core. Every binding, run, and repository query receives the trusted tenant identifier.
|
|
26
|
+
- An enabled module may register immutable business agent behavior during platform composition with defineAgent. Its stable identity is derived from module id and agent key, its positive definition revision is supplied by the module, and malformed or duplicate identities fail platform boot before workers start.
|
|
27
|
+
- Module-owned instructions, names, maximum tool allowlists, and execution limits are read-only module source. A tenant administrator may bind an available provider and model, pause the binding, and reduce its enabled tool set, but cannot broaden the module allowlist or edit the module behavior in the Agents UI.
|
|
28
|
+
- An unconfigured module-owned agent is visible as unconfigured but cannot be activated, published in a workflow, or executed until its tenant binding names a usable provider and model.
|
|
29
|
+
- A module definition revision is content-stable. Reusing one revision with different executable content or moving backwards fails platform boot. A higher definition revision creates a new immutable tenant executable revision for every existing binding without changing retained revisions.
|
|
30
|
+
- Tenant-created and module-owned executable revisions share one exact-revision contract. A provider, model, module definition revision, instructions, limits, and effective maximum tools are retained before the revision can be used by a workflow.
|
|
31
|
+
- Agent execution is durable and fire-and-forget. The enqueue request persists a queued run before returning and never waits for provider completion.
|
|
32
|
+
- Queued and interrupted runs are recovered after runtime restart without executing one run concurrently more than once inside a process.
|
|
33
|
+
- Browser lifecycle and authenticated session lifetime do not control a queued run after the enqueue transaction commits.
|
|
34
|
+
- Workers claim runs with expiring leases so an interrupted claim can be recovered without allowing two live workers to own the same run.
|
|
35
|
+
- Every claimed run receives a short-lived signed run grant bound to tenant, run, provider, model, worker, attempt, permission digest, tool-grant digest, and current lease. The provider broker atomically consumes the grant once and never returns the upstream credential.
|
|
36
|
+
- Run grants are stored only as hashes and safe identifiers. A replay, expired grant, wrong audience, invalid signature, or grant presented after lease loss is rejected before provider resolution.
|
|
37
|
+
- A single claimed execution can remain detached for up to 24 hours while the worker renews its lease. Provider calls and tools must still use narrower operation timeouts and idempotency controls where side effects are possible.
|
|
38
|
+
- Agent instructions never grant authority. Model execution can reach platform behavior only through registered agent tools and never receives the platform capability registry directly.
|
|
39
|
+
- Agent instructions are a variable template. The stored definition keeps the raw double-brace template; every run snapshot carries the instructions resolved against the run context (tenant name, principal, UTC date) before the harness executes. A variable is offered and resolved only when the principal holds the scope declared by its source.
|
|
40
|
+
- Arbitrary source code, shell commands, raw secrets, and runtime-downloaded client code cannot be stored as agent configuration.
|
|
41
|
+
- Provider, model, instruction revision, limits, input, output, usage, and execution events are captured with every run.
|
|
42
|
+
- Authorization decisions use server-side RBAC scopes and persist the initiating subject plus a permission snapshot for audit without treating that snapshot as future authority.
|
|
43
|
+
- Playground runs use the same authorization, tenancy, budgets, provider adapter, and audit path as platform-triggered runs.
|
|
44
|
+
- The bundled local simulation provider has network access disabled and does not claim to be a production language model.
|
|
45
|
+
- Agent definitions, playground, run history, providers, procedures, and usage are contributed under one collapsible Agents navigation group owned by agents.core. The product never presents these business procedures as coding-agent skills, and the `.ai/skills` and `.agents/skills` authoring catalogs remain separate concepts.
|
|
46
|
+
- Provider connections are configured through authenticated agents.core APIs and stored as tenant-owned metadata plus an encrypted credential envelope; raw credentials never enter client responses, logs, audit metadata, agent definitions, run snapshots, or harness events.
|
|
47
|
+
- The credential encryption key is external to the agents database. Production startup fails when no explicit key is configured, while local development may create a permission-restricted key file outside the database.
|
|
48
|
+
- Provider credentials are decrypted just in time for one claimed execution or readiness probe and are not retained by the harness after that operation.
|
|
49
|
+
- Provider adapters use the Vercel AI SDK language model contract. Bundled adapter kinds are Vercel AI Gateway, Azure OpenAI, OpenAI, OpenAI-compatible, Anthropic, and local simulation.
|
|
50
|
+
- An OpenAI-compatible base URL must use HTTPS and match a deployment-controlled outbound hostname allowlist; provider configuration cannot create arbitrary network access or target private infrastructure.
|
|
51
|
+
- A readiness probe performs a bounded server-side model request, records only safe status, latency, model, and error classification, and never returns provider response bodies or credentials.
|
|
52
|
+
- An agent can be activated only when its provider connection is enabled, its selected model is enabled, and the latest readiness result is healthy within the configured freshness window.
|
|
53
|
+
- Procedures are versioned instruction and capability bundles. A procedure cannot contain executable source code, credentials, or grant a tool that is not independently registered and authorized.
|
|
54
|
+
- Procedures are canonical in the domain model and authenticated API through procedureIds, procedureSnapshots, a procedures response collection, and `/api/agent-procedures` mutation routes. Deprecated skill-named fields and `/api/agent-skills` routes operate on the same records and revisions during the compatibility window and never create a second resource.
|
|
55
|
+
- Existing authorization grants, database rows, run evidence, and audit chains survive the product rename without rewriting history. The stable `agents.skills.read` and `agents.skills.manage` permission identifiers, legacy `agent_skills` storage names, and historical `agent-skill` audit identifiers remain compatibility details while their user-facing labels and descriptions say procedures.
|
|
56
|
+
- Archiving an agent prevents new runs while keeping durable run evidence. Deletion requires an archived, unreferenced record and never cascades through run history or active agent assignments.
|
|
57
|
+
- Tool calls use validated input schemas, explicit grants, target-module server authorization, timeouts, output limits, and persisted start, completion, or denial events. A run sees only the exact intersection of the definition allowlist, a module binding reduction when present, the invocation grants, and tools whose required permissions exist in the initiating actor's trusted permission snapshot. Wildcards never grant tools.
|
|
58
|
+
- Web search is disabled by default and requires an explicit agent policy plus a registered web search capability. Provider-native web search cannot bypass the same permission, budget, audit, and egress controls.
|
|
59
|
+
- Worker output is streamed into ordered durable run events. UI streaming observes persisted events and never owns or cancels the underlying run lifecycle.
|
|
60
|
+
- Workflow, service, and optional automation modules use the same durable enqueue capability as the playground and include a stable idempotency key and initiating principal or approved system principal.
|
|
61
|
+
- agents.core does not own automation schedules, webhook definitions, trigger secrets, or an automation clock. Optional modules reach it only through the public agents.run-queue capability.
|
|
62
|
+
- A run's cost is computed once, from its reported usage and a published per-model price, in the same transaction that settles the run. A model without a published price is recorded in tokens and left unpriced, never priced at a guess.
|
|
63
|
+
- Budget caps are tenant-scoped module settings checked when a run is enqueued. A run already executing is never stopped mid-way, so concurrent enqueues may overshoot a cap by the cost of the runs still in flight.
|
|
64
|
+
- Every saved agent revision is retained as an immutable executable snapshot, including its ownership, exact instructions, procedures, tools, provider, model, and limits.
|
|
65
|
+
- Workflow agent nodes request an exact retained revision through agents.run-execution.v2. The request is workflow-bound, tenant-bound, idempotent, observable through persisted events, and cancellable through the same capability.
|
|
66
|
+
- A structured-output run starts only when its pinned provider can guarantee the declared JSON Schema contract. The harness validates the returned JSON again before the worker settles the run.
|
|
67
|
+
- Business actions exposed to workflows are explicit versioned contracts. Only read and workspace-write risks are eligible, input and output are schema checked, and every invocation is persisted before execution.
|
|
68
|
+
- Workflow action invocations receive a trusted actor, permission snapshot, idempotency key, and AbortSignal. Secrets, raw input, and raw output never enter audit metadata.
|
|
69
|
+
- Every request-time read and write runs on a tenant-scoped database handle. The worker recovery polls are the only cross-tenant reads, they run on a separate read-only role, and the module agent catalog is reconciled at boot on the schema-owner lease that runs migrations.
|
|
70
|
+
- Every table that carries tenant data enables and forces row-level security with a policy bound to the transaction-local tenant, including the child tables that hang off a run, a definition or a provider connection. A read by a caller-supplied parent id therefore cannot cross a workspace even when application code forgets the predicate.
|
|
71
|
+
permissions:
|
|
72
|
+
- id: agents.definitions.read
|
|
73
|
+
description: Read agent definitions in the active tenant.
|
|
74
|
+
- id: agents.definitions.manage
|
|
75
|
+
description: Create and update agent definitions in the active tenant.
|
|
76
|
+
- id: agents.runs.read
|
|
77
|
+
description: Read agent runs and execution traces in the active tenant.
|
|
78
|
+
- id: agents.runs.execute
|
|
79
|
+
description: Queue playground and platform agent runs in the active tenant.
|
|
80
|
+
- id: agents.providers.read
|
|
81
|
+
description: Read safe provider connection metadata and readiness in the active tenant.
|
|
82
|
+
- id: agents.providers.manage
|
|
83
|
+
description: Create, rotate, enable, disable, and remove provider connections in the active tenant.
|
|
84
|
+
- id: agents.providers.test
|
|
85
|
+
description: Execute a bounded readiness probe against a configured provider model.
|
|
86
|
+
- id: agents.skills.read
|
|
87
|
+
description: Read reusable agent procedures in the active tenant. The skill-named identifier is retained for authorization compatibility.
|
|
88
|
+
- id: agents.skills.manage
|
|
89
|
+
description: Create and version reusable agent procedures in the active tenant. The skill-named identifier is retained for authorization compatibility.
|
|
90
|
+
dataOwnership:
|
|
91
|
+
- Business modules own the current module-supplied definition and semantic revision of each module-owned business agent they register.
|
|
92
|
+
- agents.core owns tenant-created agent identity and configuration, tenant bindings for module-owned agents, provider and model selection, reduced tool grants, executable revisions, and lifecycle status.
|
|
93
|
+
- agents.core owns durable run state, input and output snapshots, usage, timing, failure data, and append-only execution events.
|
|
94
|
+
- agents.core owns provider connection metadata, encrypted credential envelopes, configured model allowlists, readiness history, and credential revision identifiers.
|
|
95
|
+
- agents.core owns procedure identity, versioned instructions, required tool identifiers, lifecycle status, and agent-to-procedure assignments. Existing skill-named storage objects hold the same procedure records during the compatibility window.
|
|
96
|
+
- agents.core owns the per-run cost projection, its per-day and per-agent rollups, and the budget caps declared as module settings.
|
|
97
|
+
- agents.core owns immutable agent revision snapshots, workflow-bound run output contracts, and durable versioned action invocation state.
|
|
98
|
+
- Business modules own their records and expose narrowly scoped tools to the harness; agents.core never bypasses their services or ACL rules.
|
|
99
|
+
acceptanceScenarios:
|
|
100
|
+
- id: AGENTS-LIST
|
|
101
|
+
given: Tenant-created business agents and enabled modules with module-owned business agents exist.
|
|
102
|
+
when: An authorized principal lists agents.
|
|
103
|
+
then: The active tenant receives a deterministic catalog with an explicit tenant or module ownership discriminator and no definition from another tenant or disabled module.
|
|
104
|
+
- id: AGENTS-MODULE-REGISTER
|
|
105
|
+
given: An enabled module registers a valid defineAgent definition during composition.
|
|
106
|
+
when: The platform finishes composing modules before starting workers.
|
|
107
|
+
then: The agent registry seals a frozen definition with a stable module-derived identity, while a malformed definition, duplicate identity, wildcard tool, or conflicting same-revision content fails boot.
|
|
108
|
+
- id: AGENTS-MODULE-BIND
|
|
109
|
+
given: A module-owned agent is registered but has no tenant execution binding.
|
|
110
|
+
when: A tenant manager selects a healthy provider and model, chooses a subset of the code allowlist, and activates the binding.
|
|
111
|
+
then: agents.core creates a tenant-scoped immutable executable revision and the business agent becomes runnable without copying or editing its module-owned behavior.
|
|
112
|
+
- id: AGENTS-MODULE-READONLY
|
|
113
|
+
given: A principal can manage agent definitions in the active tenant.
|
|
114
|
+
when: The principal opens, updates, archives, or deletes a module-owned agent.
|
|
115
|
+
then: The UI and API allow only binding changes such as provider, model, paused state, and tool reduction, and refuse edits or deletion of the module-owned definition with a stable error.
|
|
116
|
+
- id: AGENTS-MODULE-REVISION
|
|
117
|
+
given: Existing tenant bindings point at a retained executable revision of a module-owned agent.
|
|
118
|
+
when: A deployment registers a higher module definition revision.
|
|
119
|
+
then: Existing bindings advance to a new immutable executable revision, old workflow references retain their exact snapshot, and a code downgrade or same-revision content drift fails boot.
|
|
120
|
+
- id: AGENTS-MODULE-UNAVAILABLE
|
|
121
|
+
given: A workflow or caller references a module-owned agent whose owning module is no longer registered.
|
|
122
|
+
when: It lists current agents or requests a new execution.
|
|
123
|
+
then: The agent is unavailable for new work and the request is refused without deleting retained revisions, completed runs, or audit evidence.
|
|
124
|
+
- id: AGENTS-CREATE
|
|
125
|
+
given: An authorized principal supplies valid instructions, provider, model, limits, and tool grants.
|
|
126
|
+
when: The agent is created.
|
|
127
|
+
then: A tenant-owned draft agent is persisted at revision one without storing credentials or executable source code.
|
|
128
|
+
- id: AGENTS-UPDATE
|
|
129
|
+
given: An authorized principal edits an agent owned by the active tenant.
|
|
130
|
+
when: The update is accepted.
|
|
131
|
+
then: The definition revision increments and future runs snapshot the new revision while historical runs remain unchanged.
|
|
132
|
+
- id: AGENTS-QUEUE
|
|
133
|
+
given: An active agent and a principal with execution permission.
|
|
134
|
+
when: A playground or platform run is requested.
|
|
135
|
+
then: A queued run is durably persisted and a 202 response is returned before provider execution completes.
|
|
136
|
+
- id: AGENTS-EXECUTE
|
|
137
|
+
given: A queued run with valid server-side grants and bounded execution settings.
|
|
138
|
+
when: The harness worker claims the run.
|
|
139
|
+
then: The run reaches succeeded or failed with output, usage, timestamps, and ordered execution events persisted.
|
|
140
|
+
- id: AGENTS-RECOVER
|
|
141
|
+
given: The process stops after a run was queued or claimed.
|
|
142
|
+
when: The runtime starts again.
|
|
143
|
+
then: Pending runs are recovered and scheduled without duplicate concurrent execution inside that runtime.
|
|
144
|
+
- id: AGENTS-DETACHED
|
|
145
|
+
given: A run was durably queued by an authorized principal.
|
|
146
|
+
when: The initiating browser disconnects or its session later expires.
|
|
147
|
+
then: The worker continues the run from persisted state using bounded execution grants captured by the server at enqueue time.
|
|
148
|
+
- id: AGENTS-AUDIT
|
|
149
|
+
given: An agent is created, changed, queued, claimed, completed, or failed.
|
|
150
|
+
when: The state transition commits.
|
|
151
|
+
then: An append-only tenant-scoped audit event records the actor, action, subject, timestamp, and safe metadata without raw credentials.
|
|
152
|
+
- id: AGENTS-PLAYGROUND
|
|
153
|
+
given: An authorized user enters test input for an active agent.
|
|
154
|
+
when: The playground queues the run.
|
|
155
|
+
then: The UI returns immediately, polls the durable run, and renders its final output or stable failure without a blocking request.
|
|
156
|
+
- id: AGENTS-DENY
|
|
157
|
+
given: A principal is unauthenticated, lacks the required scope, or targets another tenant.
|
|
158
|
+
when: The principal reads, configures, or executes an agent.
|
|
159
|
+
then: The server denies the operation before cross-tenant data or provider execution is exposed.
|
|
160
|
+
- id: AGENTS-PROVIDER-CREATE
|
|
161
|
+
given: An owner with provider management permission submits a supported provider kind, safe metadata, model allowlist, and credential.
|
|
162
|
+
when: The provider connection is created.
|
|
163
|
+
then: Tenant-owned metadata and an encrypted credential envelope are persisted while the response exposes only credential presence and revision.
|
|
164
|
+
- id: AGENTS-PROVIDER-ROTATE
|
|
165
|
+
given: An existing provider connection and a new credential.
|
|
166
|
+
when: An authorized owner rotates the credential.
|
|
167
|
+
then: The encrypted envelope and credential revision change, existing run history stays immutable, and no raw credential is logged or returned.
|
|
168
|
+
- id: AGENTS-PROVIDER-READINESS
|
|
169
|
+
given: An enabled provider connection, an enabled model, and a principal with provider test permission.
|
|
170
|
+
when: A readiness probe is requested.
|
|
171
|
+
then: A bounded Vercel AI SDK request verifies authentication and model execution and stores safe health, latency, timestamp, and error classification.
|
|
172
|
+
- id: AGENTS-PROVIDER-SSRF-DENY
|
|
173
|
+
given: An OpenAI-compatible connection targets a non-HTTPS, private, loopback, link-local, or non-allowlisted hostname.
|
|
174
|
+
when: Configuration or a readiness probe is attempted.
|
|
175
|
+
then: The operation is denied before any outbound request or credential use.
|
|
176
|
+
- id: AGENTS-PROVIDER-ACTIVATION
|
|
177
|
+
given: An agent references an unknown, disabled, stale, or unhealthy provider model.
|
|
178
|
+
when: Activation or enqueue is requested.
|
|
179
|
+
then: The server rejects the operation with a stable readiness error and no provider call starts.
|
|
180
|
+
- id: AGENTS-PROCEDURE
|
|
181
|
+
given: An authorized owner defines a procedure with bounded instructions and registered required tools.
|
|
182
|
+
when: The procedure is attached to an agent and the agent runs.
|
|
183
|
+
then: The harness receives the approved procedure revision, merges its instructions, intersects its tools with agent and run grants, and persists evidence of each capability invoked.
|
|
184
|
+
- id: AGENTS-PROCEDURE-COMPATIBILITY
|
|
185
|
+
given: Existing clients, permission grants, databases, retained revisions, and audit events use the former skill-named contract.
|
|
186
|
+
when: agents.core is upgraded to the procedure-named contract.
|
|
187
|
+
then: The canonical and deprecated API surfaces resolve the same tenant-owned procedure ids and revisions, existing data remains readable and writable without copying it, and no authorization grant, run snapshot, or audit-chain hash is rewritten.
|
|
188
|
+
- id: AGENTS-PROCEDURE-NAVIGATION
|
|
189
|
+
given: A principal can read reusable agent procedures.
|
|
190
|
+
when: The principal opens the Agents navigation or follows the former agent-skills deep link.
|
|
191
|
+
then: The product shows one Procedures screen with procedure terminology throughout, while the former deep link resolves to that same screen without adding a duplicate navigation item.
|
|
192
|
+
- id: AGENTS-TOOL-BOUNDARY
|
|
193
|
+
given: An agent definition has an exact tool allowlist, a module binding may reduce it, an invocation requests explicit grants, and the actor carries a trusted permission snapshot.
|
|
194
|
+
when: The run is enqueued and the model requests tools.
|
|
195
|
+
then: The persisted and exposed tools are only the intersection of all four constraints, an out-of-allowlist or wildcard grant never expands access, and a tool lacking its required permission is denied before execution.
|
|
196
|
+
- id: AGENTS-LIFECYCLE
|
|
197
|
+
given: An agent definition, procedure, or provider connection is no longer needed.
|
|
198
|
+
when: An authorized manager archives or deletes it.
|
|
199
|
+
then: Archiving records an audit event and prevents unsafe future use; deletion checks the trusted tenant, current revision, CSRF, and all active references without cascading run evidence or assignments.
|
|
200
|
+
- id: AGENTS-WEB-SEARCH
|
|
201
|
+
given: An agent has web search disabled or lacks the registered web search permission and grant.
|
|
202
|
+
when: A model requests web search.
|
|
203
|
+
then: The harness denies the call and persists a safe denial event without making a network request.
|
|
204
|
+
- id: AGENTS-STREAM
|
|
205
|
+
given: A claimed run is producing model text or tool events.
|
|
206
|
+
when: An authorized client observes the run event stream.
|
|
207
|
+
then: Ordered persisted deltas and lifecycle events arrive without exposing credentials, hidden provider reasoning, or cross-tenant data.
|
|
208
|
+
- id: AGENTS-RUN-GRANT
|
|
209
|
+
given: A worker owns a live lease for a claimed run.
|
|
210
|
+
when: It requests provider execution.
|
|
211
|
+
then: A signed run grant is issued, atomically consumed once by the provider broker, recorded without its token, and rejected on replay or lease mismatch without returning provider credentials.
|
|
212
|
+
- id: AGENTS-LONG-RUN
|
|
213
|
+
given: An active agent has a bounded execution timeout of up to 24 hours.
|
|
214
|
+
when: Its run continues after the initiating browser closes or session expires.
|
|
215
|
+
then: The worker renews the lease and the persisted run continues independently until completion, bounded failure, or recoverable process interruption.
|
|
216
|
+
- id: AGENTS-WORKFLOW-TRIGGER
|
|
217
|
+
given: A workflow node references an active agent and supplies an idempotency key, bounded input, tenant, and approved execution principal.
|
|
218
|
+
when: The workflow enqueues agent work.
|
|
219
|
+
then: The same durable run contract returns immediately and the workflow can resume from the terminal run event.
|
|
220
|
+
- id: AGENTS-TEMPLATE
|
|
221
|
+
given: An agent definition whose instructions embed run context variables such as context.tenantName and context.today.
|
|
222
|
+
when: An authorized principal queues a run.
|
|
223
|
+
then: The run snapshot carries the instructions resolved to the active tenant, requesting principal, and UTC date while the stored definition keeps the raw template.
|
|
224
|
+
- id: AGENTS-AUDIT-READ
|
|
225
|
+
given: A principal reads the agent audit trail over HTTP.
|
|
226
|
+
when: The principal lacks agents.runs.read, or holds it and pages with a cursor.
|
|
227
|
+
then: The request is denied before any row is read without the scope, and with it only the active tenant's events are returned newest first with a stable occurred-at and sequence cursor and the chain fields.
|
|
228
|
+
- id: AGENTS-AUDIT-VERIFY
|
|
229
|
+
given: A stored agent audit row is altered after it was written.
|
|
230
|
+
when: A principal with agents.runs.read verifies the chain over HTTP, reusing the same walk as the audit-verify CLI.
|
|
231
|
+
then: The response reports the chain as not verified and names the identifier of the first broken row.
|
|
232
|
+
- id: AGENTS-COST
|
|
233
|
+
given: A run completes and reports its token usage.
|
|
234
|
+
when: The run is settled.
|
|
235
|
+
then: Its cost is written in the same transaction from the published price of its model, or left unpriced when the model has none, and appears in the tenant's per-day and per-agent rollups.
|
|
236
|
+
- id: AGENTS-BUDGET
|
|
237
|
+
given: A tenant or per-agent monthly budget is configured and the month's settled cost has reached it.
|
|
238
|
+
when: A further run is enqueued.
|
|
239
|
+
then: The enqueue is refused with a stable budget code before any provider call, while runs already executing continue to completion.
|
|
240
|
+
- id: AGENTS-EXACT-REVISION
|
|
241
|
+
given: A workflow references an active retained agent revision and that agent is edited later.
|
|
242
|
+
when: The workflow enqueues the pinned revision.
|
|
243
|
+
then: The run uses the retained instructions, procedures, tools, provider, model, and limits exactly as saved for that revision.
|
|
244
|
+
- id: AGENTS-MODULE-WORKFLOW
|
|
245
|
+
given: A published workflow pins an active executable revision of a module-owned agent.
|
|
246
|
+
when: The module later registers a higher definition revision or a tenant manager changes its provider binding.
|
|
247
|
+
then: The published workflow continues to resolve the retained executable revision, while newly published workflows can select the new current revision.
|
|
248
|
+
- id: AGENTS-STRUCTURED-OUTPUT
|
|
249
|
+
given: A workflow requests JSON output with a bounded schema from a pinned provider model that supports structured output.
|
|
250
|
+
when: The provider completes the run.
|
|
251
|
+
then: The harness validates the structured value against the schema before the worker persists it, and a missing or invalid value fails with a stable code.
|
|
252
|
+
- id: AGENTS-WORKFLOW-OBSERVE
|
|
253
|
+
given: A workflow enqueued an exact agent revision with a stable idempotency key.
|
|
254
|
+
when: It observes events, reads the result, retries enqueue, or requests cancellation.
|
|
255
|
+
then: It sees only the same tenant and workflow run, retry returns the original run, events remain ordered, and cancellation does not cross an actor or tenant boundary.
|
|
256
|
+
- id: AGENTS-VERSIONED-ACTION
|
|
257
|
+
given: A registered tool opts into workflow use with schemas, a positive contract version, read or workspace-write risk, required idempotency, and a cancellation policy.
|
|
258
|
+
when: A workflow starts the action with a trusted actor and sufficient permission snapshot.
|
|
259
|
+
then: The invocation is persisted before execution, repeated input returns the original invocation, different input conflicts, and output is schema checked before settlement.
|
|
260
|
+
- id: AGENTS-ACTION-DENY
|
|
261
|
+
given: A tool is destructive, external, incomplete, targets another tenant, lacks a required permission, or receives invalid input.
|
|
262
|
+
when: A workflow attempts to list, start, observe, or cancel it.
|
|
263
|
+
then: The capability excludes or refuses it before execution without exposing secrets, cross-tenant state, or raw payloads in audit metadata.
|
|
264
|
+
- id: AGENTS-SERVICE-ACTOR
|
|
265
|
+
given: A schedule, webhook, or other service identity was configured by an authenticated user.
|
|
266
|
+
when: It initiates workflow agent work or a versioned action.
|
|
267
|
+
then: Durable state records the service actor and its configuring user so history never presents background work as an anonymous system mutation.
|
|
268
|
+
- id: AGENT-CHILD-ISOLATION
|
|
269
|
+
given: Two workspaces each own an agent run with procedure snapshots and a provider connection with model readiness.
|
|
270
|
+
when: A caller supplies the other workspace's run id or provider id directly.
|
|
271
|
+
then: The read returns nothing, because those child tables carry their own workspace and force row-level security rather than relying on their parent.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Procedures compatibility plan
|
|
2
|
+
|
|
3
|
+
This note accompanies the draft `agents.core` 0.8.0 specification. It changes
|
|
4
|
+
the business product term from **Skills** to **Procedures**. Coding-agent skill
|
|
5
|
+
catalogs in `.ai/skills` and `.agents/skills` are unrelated and keep their
|
|
6
|
+
current names.
|
|
7
|
+
|
|
8
|
+
## Canonical 0.8 contract
|
|
9
|
+
|
|
10
|
+
| Concern | Canonical procedure contract | Compatibility surface |
|
|
11
|
+
| ------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
|
12
|
+
| Domain | `AgentProcedure`, `AgentProcedureStatus`, `AgentProcedureSnapshot`, `AgentRevisionProcedure` | Deprecated `AgentSkill*` type aliases |
|
|
13
|
+
| Agent configuration | `procedureIds` | Deprecated `skillIds` accepted and returned during the compatibility window |
|
|
14
|
+
| Retained run data | `procedureSnapshots` and `procedures` in executable revisions | Deprecated `skillSnapshots` and `skills` projections of the same immutable values |
|
|
15
|
+
| Collection response | `procedures` | Deprecated `skills` field containing the same records |
|
|
16
|
+
| Mutations | `/api/agent-procedures`, `/update`, `/archive`, `/delete`; response envelope `procedure` | Existing `/api/agent-skills` routes and `skill` envelope call the same service methods |
|
|
17
|
+
| Client route | `agent-procedures` | `agent-skills` remains a hidden deep-link alias |
|
|
18
|
+
| Permission labels | Procedures | `agents.skills.read` and `agents.skills.manage` identifiers remain stable |
|
|
19
|
+
| Persistence | Procedure repository and service method names | Existing `agent_skills`, assignment, and snapshot tables remain the physical storage |
|
|
20
|
+
| Audit display | Procedure | Historical `agent-skill.*` action and subject identifiers remain unchanged |
|
|
21
|
+
|
|
22
|
+
Canonical and deprecated routes must share validation, authorization, CSRF,
|
|
23
|
+
tenant isolation, optimistic concurrency, lifecycle checks, and audit writes.
|
|
24
|
+
Calling both surfaces with the same id cannot create duplicate resources or
|
|
25
|
+
independent revision histories.
|
|
26
|
+
|
|
27
|
+
## Data safety
|
|
28
|
+
|
|
29
|
+
Version 0.8 does not rename or copy database tables. A name-only schema rewrite
|
|
30
|
+
would make rollback to an older binary unsafe and would add no data capability.
|
|
31
|
+
The repository treats the existing tables as a private compatibility detail.
|
|
32
|
+
Existing ids, assignments, retained revision JSON, run snapshots, migration
|
|
33
|
+
checksums, and audit hashes stay byte-for-byte intact.
|
|
34
|
+
|
|
35
|
+
The persisted permission ids also remain stable because tenant grants live in
|
|
36
|
+
`auth.core`. Product labels and descriptions say Procedures, while authorization
|
|
37
|
+
continues to evaluate the existing ids. A future permission-id migration would
|
|
38
|
+
need a separate cross-module specification and dual-grant rollout.
|
|
39
|
+
|
|
40
|
+
## Compatibility window
|
|
41
|
+
|
|
42
|
+
The skill-named HTTP routes, JSON fields, and exported TypeScript aliases remain
|
|
43
|
+
deprecated for the full 0.x line. New Flowdular clients use only the procedure
|
|
44
|
+
contract. Removal requires a major contract version, repository-wide consumer
|
|
45
|
+
search, and an explicit migration guide.
|
|
46
|
+
|
|
47
|
+
Physical table names and historical audit identifiers may remain indefinitely.
|
|
48
|
+
They are not user-facing and changing them would weaken rollback and evidence
|
|
49
|
+
integrity.
|
|
50
|
+
|
|
51
|
+
## Verification required before approval can land
|
|
52
|
+
|
|
53
|
+
1. Existing fixtures created before 0.8 list, update, archive, execute,
|
|
54
|
+
and delete the same records through the procedure API without a data copy.
|
|
55
|
+
2. Canonical and deprecated mutation routes enforce identical 401, 403, CSRF,
|
|
56
|
+
tenant, validation, conflict, and lifecycle behavior.
|
|
57
|
+
3. Agent execution snapshots the selected procedure revision and required tools,
|
|
58
|
+
including an agent stored previously with skill-named assignments.
|
|
59
|
+
4. The Procedures navigation, form, table, empty state, confirmation dialogs,
|
|
60
|
+
agent definition form, and accessibility labels contain no product-facing
|
|
61
|
+
use of Skill.
|
|
62
|
+
5. English and Polish bundles have identical keys, and the former deep link
|
|
63
|
+
resolves to the Procedures view without a second navigation item.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const AGENT_PERMISSIONS = {
|
|
2
|
+
definitionsRead: 'agents.definitions.read',
|
|
3
|
+
definitionsManage: 'agents.definitions.manage',
|
|
4
|
+
runsRead: 'agents.runs.read',
|
|
5
|
+
runsExecute: 'agents.runs.execute',
|
|
6
|
+
providersRead: 'agents.providers.read',
|
|
7
|
+
providersManage: 'agents.providers.manage',
|
|
8
|
+
providersTest: 'agents.providers.test',
|
|
9
|
+
/* Product term is Procedures. The identifiers keep their skill-era
|
|
10
|
+
spelling so existing tenant grants stay valid. */
|
|
11
|
+
proceduresRead: 'agents.skills.read',
|
|
12
|
+
proceduresManage: 'agents.skills.manage',
|
|
13
|
+
} as const;
|