@lssm/lib.contracts 0.0.0-canary-20251217083314 → 0.0.0-canary-20251219202229
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/LICENSE +21 -0
- package/dist/app-config/app-config.feature.d.ts +2 -1
- package/dist/app-config/app-config.feature.d.ts.map +1 -0
- package/dist/app-config/app-config.feature.js +2 -1
- package/dist/app-config/app-config.feature.js.map +1 -0
- package/dist/app-config/branding.d.ts +2 -1
- package/dist/app-config/branding.d.ts.map +1 -0
- package/dist/app-config/contracts.d.ts +2 -1
- package/dist/app-config/contracts.d.ts.map +1 -0
- package/dist/app-config/contracts.js +56 -57
- package/dist/app-config/contracts.js.map +1 -0
- package/dist/app-config/docs/app-config.docblock.d.ts +2 -1
- package/dist/app-config/docs/app-config.docblock.d.ts.map +1 -0
- package/dist/app-config/docs/app-config.docblock.js +2 -1
- package/dist/app-config/docs/app-config.docblock.js.map +1 -0
- package/dist/app-config/events.d.ts +29 -28
- package/dist/app-config/events.d.ts.map +1 -0
- package/dist/app-config/events.js +33 -34
- package/dist/app-config/events.js.map +1 -0
- package/dist/app-config/lifecycle-contracts.d.ts +82 -81
- package/dist/app-config/lifecycle-contracts.d.ts.map +1 -0
- package/dist/app-config/lifecycle-contracts.js +68 -69
- package/dist/app-config/lifecycle-contracts.js.map +1 -0
- package/dist/app-config/lifecycle.d.ts +2 -1
- package/dist/app-config/lifecycle.d.ts.map +1 -0
- package/dist/app-config/runtime.d.ts +2 -1
- package/dist/app-config/runtime.d.ts.map +1 -0
- package/dist/app-config/runtime.js +2 -1
- package/dist/app-config/runtime.js.map +1 -0
- package/dist/app-config/spec.d.ts +2 -1
- package/dist/app-config/spec.d.ts.map +1 -0
- package/dist/app-config/spec.js +2 -1
- package/dist/app-config/spec.js.map +1 -0
- package/dist/app-config/validation.d.ts +2 -1
- package/dist/app-config/validation.d.ts.map +1 -0
- package/dist/app-config/validation.js +2 -1
- package/dist/app-config/validation.js.map +1 -0
- package/dist/capabilities/docs/capabilities.docblock.d.ts +2 -1
- package/dist/capabilities/docs/capabilities.docblock.d.ts.map +1 -0
- package/dist/capabilities/docs/capabilities.docblock.js +2 -1
- package/dist/capabilities/docs/capabilities.docblock.js.map +1 -0
- package/dist/capabilities/openbanking.d.ts +2 -1
- package/dist/capabilities/openbanking.d.ts.map +1 -0
- package/dist/capabilities/openbanking.js +2 -1
- package/dist/capabilities/openbanking.js.map +1 -0
- package/dist/capabilities.d.ts +2 -1
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +2 -1
- package/dist/capabilities.js.map +1 -0
- package/dist/client/react/drivers/rn-reusables.d.ts +2 -1
- package/dist/client/react/drivers/rn-reusables.d.ts.map +1 -0
- package/dist/client/react/drivers/rn-reusables.js +2 -1
- package/dist/client/react/drivers/rn-reusables.js.map +1 -0
- package/dist/client/react/drivers/shadcn.d.ts +2 -1
- package/dist/client/react/drivers/shadcn.d.ts.map +1 -0
- package/dist/client/react/drivers/shadcn.js +2 -1
- package/dist/client/react/drivers/shadcn.js.map +1 -0
- package/dist/client/react/feature-render.d.ts +2 -1
- package/dist/client/react/feature-render.d.ts.map +1 -0
- package/dist/client/react/feature-render.js +2 -1
- package/dist/client/react/feature-render.js.map +1 -0
- package/dist/client/react/form-render.d.ts +8 -7
- package/dist/client/react/form-render.d.ts.map +1 -0
- package/dist/client/react/form-render.js +17 -16
- package/dist/client/react/form-render.js.map +1 -0
- package/dist/contract-registry/schemas.d.ts +2 -1
- package/dist/contract-registry/schemas.d.ts.map +1 -0
- package/dist/contract-registry/schemas.js +2 -1
- package/dist/contract-registry/schemas.js.map +1 -0
- package/dist/contract-registry/types.d.ts +2 -1
- package/dist/contract-registry/types.d.ts.map +1 -0
- package/dist/contracts-adapter-hydration.d.ts +2 -1
- package/dist/contracts-adapter-hydration.d.ts.map +1 -0
- package/dist/contracts-adapter-hydration.js +2 -1
- package/dist/contracts-adapter-hydration.js.map +1 -0
- package/dist/contracts-adapter-input.d.ts +2 -1
- package/dist/contracts-adapter-input.d.ts.map +1 -0
- package/dist/contracts-adapter-input.js +2 -1
- package/dist/contracts-adapter-input.js.map +1 -0
- package/dist/data-views/docs/data-views.docblock.d.ts +2 -1
- package/dist/data-views/docs/data-views.docblock.d.ts.map +1 -0
- package/dist/data-views/docs/data-views.docblock.js +2 -1
- package/dist/data-views/docs/data-views.docblock.js.map +1 -0
- package/dist/data-views/query-generator.d.ts +2 -1
- package/dist/data-views/query-generator.d.ts.map +1 -0
- package/dist/data-views/query-generator.js +2 -1
- package/dist/data-views/query-generator.js.map +1 -0
- package/dist/data-views/runtime.d.ts +2 -1
- package/dist/data-views/runtime.d.ts.map +1 -0
- package/dist/data-views/runtime.js +2 -1
- package/dist/data-views/runtime.js.map +1 -0
- package/dist/data-views.d.ts +2 -1
- package/dist/data-views.d.ts.map +1 -0
- package/dist/data-views.js +2 -1
- package/dist/data-views.js.map +1 -0
- package/dist/docs/accessibility_wcag_compliance_specs.docblock.d.ts +2 -1
- package/dist/docs/accessibility_wcag_compliance_specs.docblock.d.ts.map +1 -0
- package/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
- package/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
- package/dist/docs/index.js +0 -6
- package/dist/docs/meta.docs.d.ts +2 -1
- package/dist/docs/meta.docs.d.ts.map +1 -0
- package/dist/docs/meta.docs.js +5 -1
- package/dist/docs/meta.docs.js.map +1 -0
- package/dist/docs/presentations.d.ts +2 -1
- package/dist/docs/presentations.d.ts.map +1 -0
- package/dist/docs/presentations.js +2 -1
- package/dist/docs/presentations.js.map +1 -0
- package/dist/docs/registry.d.ts +2 -1
- package/dist/docs/registry.d.ts.map +1 -0
- package/dist/docs/registry.js +2 -1
- package/dist/docs/registry.js.map +1 -0
- package/dist/docs/tech/auth/better-auth-nextjs.docblock.d.ts +2 -1
- package/dist/docs/tech/auth/better-auth-nextjs.docblock.d.ts.map +1 -0
- package/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
- package/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/README.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/README.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/README.docblock.js +2 -1
- package/dist/docs/tech/contracts/README.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/create-subscription.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/create-subscription.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/create-subscription.docblock.js +2 -1
- package/dist/docs/tech/contracts/create-subscription.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js +2 -1
- package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/migrations.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/migrations.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/migrations.docblock.js +2 -1
- package/dist/docs/tech/contracts/migrations.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/openapi-export.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/openapi-export.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
- package/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js +2 -1
- package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/overlays.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/overlays.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/overlays.docblock.js +2 -1
- package/dist/docs/tech/contracts/overlays.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/tests.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/tests.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/tests.docblock.js +2 -1
- package/dist/docs/tech/contracts/tests.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/themes.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/themes.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/themes.docblock.js +2 -1
- package/dist/docs/tech/contracts/themes.docblock.js.map +1 -0
- package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.d.ts +2 -1
- package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.d.ts.map +1 -0
- package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js +2 -1
- package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js.map +1 -0
- package/dist/docs/tech/lifecycle-stage-system.docblock.d.ts +2 -1
- package/dist/docs/tech/lifecycle-stage-system.docblock.d.ts.map +1 -0
- package/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
- package/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
- package/dist/docs/tech/llm/llm-integration.docblock.d.ts +2 -1
- package/dist/docs/tech/llm/llm-integration.docblock.d.ts.map +1 -0
- package/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
- package/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
- package/dist/docs/tech/mcp-endpoints.docblock.d.ts +2 -1
- package/dist/docs/tech/mcp-endpoints.docblock.d.ts.map +1 -0
- package/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
- package/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
- package/dist/docs/tech/presentation-runtime.docblock.d.ts +2 -1
- package/dist/docs/tech/presentation-runtime.docblock.d.ts.map +1 -0
- package/dist/docs/tech/presentation-runtime.docblock.js +2 -1
- package/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
- package/dist/docs/tech/schema/README.docblock.d.ts +2 -1
- package/dist/docs/tech/schema/README.docblock.d.ts.map +1 -0
- package/dist/docs/tech/schema/README.docblock.js +2 -1
- package/dist/docs/tech/schema/README.docblock.js.map +1 -0
- package/dist/docs/tech/studio/learning-events.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/learning-events.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/learning-events.docblock.js +2 -1
- package/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
- package/dist/docs/tech/studio/learning-journeys.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/learning-journeys.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
- package/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
- package/dist/docs/tech/studio/platform-admin-panel.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/platform-admin-panel.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
- package/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
- package/dist/docs/tech/studio/project-access-teams.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/project-access-teams.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
- package/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
- package/dist/docs/tech/studio/project-routing.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/project-routing.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/project-routing.docblock.js +2 -1
- package/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
- package/dist/docs/tech/studio/sandbox-unlogged.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/sandbox-unlogged.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
- package/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
- package/dist/docs/tech/studio/team-invitations.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/team-invitations.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
- package/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
- package/dist/docs/tech/studio/workspace-ops.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/workspace-ops.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
- package/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
- package/dist/docs/tech/studio/workspaces.docblock.d.ts +2 -1
- package/dist/docs/tech/studio/workspaces.docblock.d.ts.map +1 -0
- package/dist/docs/tech/studio/workspaces.docblock.js +2 -1
- package/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
- package/dist/docs/tech/telemetry-ingest.docblock.d.ts +2 -1
- package/dist/docs/tech/telemetry-ingest.docblock.d.ts.map +1 -0
- package/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
- package/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
- package/dist/docs/tech/templates/runtime.docblock.d.ts +2 -1
- package/dist/docs/tech/templates/runtime.docblock.d.ts.map +1 -0
- package/dist/docs/tech/templates/runtime.docblock.js +2 -1
- package/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
- package/dist/docs/tech/vscode-extension.docblock.d.ts +2 -1
- package/dist/docs/tech/vscode-extension.docblock.d.ts.map +1 -0
- package/dist/docs/tech/vscode-extension.docblock.js +2 -1
- package/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
- package/dist/docs/tech/workflows/overview.docblock.d.ts +2 -1
- package/dist/docs/tech/workflows/overview.docblock.d.ts.map +1 -0
- package/dist/docs/tech/workflows/overview.docblock.js +2 -1
- package/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
- package/dist/docs/tech-contracts.docs.d.ts +2 -1
- package/dist/docs/tech-contracts.docs.d.ts.map +1 -0
- package/dist/docs/tech-contracts.docs.js +5 -1
- package/dist/docs/tech-contracts.docs.js.map +1 -0
- package/dist/docs/types.d.ts +2 -1
- package/dist/docs/types.d.ts.map +1 -0
- package/dist/events.d.ts +2 -1
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +2 -1
- package/dist/events.js.map +1 -0
- package/dist/experiments/docs/experiments.docblock.d.ts +2 -1
- package/dist/experiments/docs/experiments.docblock.d.ts.map +1 -0
- package/dist/experiments/docs/experiments.docblock.js +2 -1
- package/dist/experiments/docs/experiments.docblock.js.map +1 -0
- package/dist/experiments/evaluator.d.ts +2 -1
- package/dist/experiments/evaluator.d.ts.map +1 -0
- package/dist/experiments/evaluator.js +2 -1
- package/dist/experiments/evaluator.js.map +1 -0
- package/dist/experiments/spec-resolver.d.ts +2 -1
- package/dist/experiments/spec-resolver.d.ts.map +1 -0
- package/dist/experiments/spec.d.ts +2 -1
- package/dist/experiments/spec.d.ts.map +1 -0
- package/dist/experiments/spec.js +2 -1
- package/dist/experiments/spec.js.map +1 -0
- package/dist/features.d.ts +2 -1
- package/dist/features.d.ts.map +1 -0
- package/dist/features.js +2 -1
- package/dist/features.js.map +1 -0
- package/dist/forms/docs/forms.docblock.d.ts +2 -1
- package/dist/forms/docs/forms.docblock.d.ts.map +1 -0
- package/dist/forms/docs/forms.docblock.js +2 -1
- package/dist/forms/docs/forms.docblock.js.map +1 -0
- package/dist/forms.d.ts +2 -1
- package/dist/forms.d.ts.map +1 -0
- package/dist/forms.js +2 -1
- package/dist/forms.js.map +1 -0
- package/dist/index.js +2 -3
- package/dist/install.d.ts +2 -1
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +2 -1
- package/dist/install.js.map +1 -0
- package/dist/integrations/binding.d.ts +2 -1
- package/dist/integrations/binding.d.ts.map +1 -0
- package/dist/integrations/connection.d.ts +2 -1
- package/dist/integrations/connection.d.ts.map +1 -0
- package/dist/integrations/contracts.d.ts +104 -103
- package/dist/integrations/contracts.d.ts.map +1 -0
- package/dist/integrations/contracts.js +65 -66
- package/dist/integrations/contracts.js.map +1 -0
- package/dist/integrations/docs/integrations.docblock.d.ts +2 -1
- package/dist/integrations/docs/integrations.docblock.d.ts.map +1 -0
- package/dist/integrations/docs/integrations.docblock.js +2 -1
- package/dist/integrations/docs/integrations.docblock.js.map +1 -0
- package/dist/integrations/health.d.ts +2 -1
- package/dist/integrations/health.d.ts.map +1 -0
- package/dist/integrations/health.js +2 -1
- package/dist/integrations/health.js.map +1 -0
- package/dist/integrations/openbanking/contracts/accounts.d.ts +68 -67
- package/dist/integrations/openbanking/contracts/accounts.d.ts.map +1 -0
- package/dist/integrations/openbanking/contracts/accounts.js +31 -32
- package/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
- package/dist/integrations/openbanking/contracts/balances.d.ts +36 -35
- package/dist/integrations/openbanking/contracts/balances.d.ts.map +1 -0
- package/dist/integrations/openbanking/contracts/balances.js +18 -19
- package/dist/integrations/openbanking/contracts/balances.js.map +1 -0
- package/dist/integrations/openbanking/contracts/index.d.ts +2 -1
- package/dist/integrations/openbanking/contracts/index.d.ts.map +1 -0
- package/dist/integrations/openbanking/contracts/index.js +2 -1
- package/dist/integrations/openbanking/contracts/index.js.map +1 -0
- package/dist/integrations/openbanking/contracts/transactions.d.ts +50 -49
- package/dist/integrations/openbanking/contracts/transactions.d.ts.map +1 -0
- package/dist/integrations/openbanking/contracts/transactions.js +32 -33
- package/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
- package/dist/integrations/openbanking/guards.d.ts +2 -1
- package/dist/integrations/openbanking/guards.d.ts.map +1 -0
- package/dist/integrations/openbanking/guards.js +2 -1
- package/dist/integrations/openbanking/guards.js.map +1 -0
- package/dist/integrations/openbanking/models.d.ts +2 -1
- package/dist/integrations/openbanking/models.d.ts.map +1 -0
- package/dist/integrations/openbanking/models.js +60 -61
- package/dist/integrations/openbanking/models.js.map +1 -0
- package/dist/integrations/openbanking/openbanking.feature.d.ts +2 -1
- package/dist/integrations/openbanking/openbanking.feature.d.ts.map +1 -0
- package/dist/integrations/openbanking/openbanking.feature.js +2 -1
- package/dist/integrations/openbanking/openbanking.feature.js.map +1 -0
- package/dist/integrations/openbanking/telemetry.d.ts +2 -1
- package/dist/integrations/openbanking/telemetry.d.ts.map +1 -0
- package/dist/integrations/openbanking/telemetry.js +2 -1
- package/dist/integrations/openbanking/telemetry.js.map +1 -0
- package/dist/integrations/providers/calendar.d.ts +2 -1
- package/dist/integrations/providers/calendar.d.ts.map +1 -0
- package/dist/integrations/providers/elevenlabs.d.ts +2 -1
- package/dist/integrations/providers/elevenlabs.d.ts.map +1 -0
- package/dist/integrations/providers/elevenlabs.js +2 -1
- package/dist/integrations/providers/elevenlabs.js.map +1 -0
- package/dist/integrations/providers/email.d.ts +2 -1
- package/dist/integrations/providers/email.d.ts.map +1 -0
- package/dist/integrations/providers/embedding.d.ts +2 -1
- package/dist/integrations/providers/embedding.d.ts.map +1 -0
- package/dist/integrations/providers/gcs-storage.d.ts +2 -1
- package/dist/integrations/providers/gcs-storage.d.ts.map +1 -0
- package/dist/integrations/providers/gcs-storage.js +2 -1
- package/dist/integrations/providers/gcs-storage.js.map +1 -0
- package/dist/integrations/providers/gmail.d.ts +2 -1
- package/dist/integrations/providers/gmail.d.ts.map +1 -0
- package/dist/integrations/providers/gmail.js +2 -1
- package/dist/integrations/providers/gmail.js.map +1 -0
- package/dist/integrations/providers/google-calendar.d.ts +2 -1
- package/dist/integrations/providers/google-calendar.d.ts.map +1 -0
- package/dist/integrations/providers/google-calendar.js +2 -1
- package/dist/integrations/providers/google-calendar.js.map +1 -0
- package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +2 -1
- package/dist/integrations/providers/impls/elevenlabs-voice.d.ts.map +1 -0
- package/dist/integrations/providers/impls/elevenlabs-voice.js +2 -1
- package/dist/integrations/providers/impls/elevenlabs-voice.js.map +1 -0
- package/dist/integrations/providers/impls/gcs-storage.d.ts +2 -1
- package/dist/integrations/providers/impls/gcs-storage.d.ts.map +1 -0
- package/dist/integrations/providers/impls/gcs-storage.js +2 -1
- package/dist/integrations/providers/impls/gcs-storage.js.map +1 -0
- package/dist/integrations/providers/impls/gmail-inbound.d.ts +2 -1
- package/dist/integrations/providers/impls/gmail-inbound.d.ts.map +1 -0
- package/dist/integrations/providers/impls/gmail-inbound.js +2 -1
- package/dist/integrations/providers/impls/gmail-inbound.js.map +1 -0
- package/dist/integrations/providers/impls/gmail-outbound.d.ts +2 -1
- package/dist/integrations/providers/impls/gmail-outbound.d.ts.map +1 -0
- package/dist/integrations/providers/impls/gmail-outbound.js +2 -1
- package/dist/integrations/providers/impls/gmail-outbound.js.map +1 -0
- package/dist/integrations/providers/impls/google-calendar.d.ts +2 -1
- package/dist/integrations/providers/impls/google-calendar.d.ts.map +1 -0
- package/dist/integrations/providers/impls/google-calendar.js +2 -1
- package/dist/integrations/providers/impls/google-calendar.js.map +1 -0
- package/dist/integrations/providers/impls/mistral-embedding.d.ts +2 -1
- package/dist/integrations/providers/impls/mistral-embedding.d.ts.map +1 -0
- package/dist/integrations/providers/impls/mistral-embedding.js +2 -1
- package/dist/integrations/providers/impls/mistral-embedding.js.map +1 -0
- package/dist/integrations/providers/impls/mistral-llm.d.ts +2 -1
- package/dist/integrations/providers/impls/mistral-llm.d.ts.map +1 -0
- package/dist/integrations/providers/impls/mistral-llm.js +2 -1
- package/dist/integrations/providers/impls/mistral-llm.js.map +1 -0
- package/dist/integrations/providers/impls/postmark-email.d.ts +2 -1
- package/dist/integrations/providers/impls/postmark-email.d.ts.map +1 -0
- package/dist/integrations/providers/impls/postmark-email.js +2 -1
- package/dist/integrations/providers/impls/postmark-email.js.map +1 -0
- package/dist/integrations/providers/impls/powens-client.d.ts +2 -1
- package/dist/integrations/providers/impls/powens-client.d.ts.map +1 -0
- package/dist/integrations/providers/impls/powens-client.js +2 -1
- package/dist/integrations/providers/impls/powens-client.js.map +1 -0
- package/dist/integrations/providers/impls/powens-openbanking.d.ts +2 -1
- package/dist/integrations/providers/impls/powens-openbanking.d.ts.map +1 -0
- package/dist/integrations/providers/impls/powens-openbanking.js +2 -1
- package/dist/integrations/providers/impls/powens-openbanking.js.map +1 -0
- package/dist/integrations/providers/impls/provider-factory.d.ts +2 -1
- package/dist/integrations/providers/impls/provider-factory.d.ts.map +1 -0
- package/dist/integrations/providers/impls/provider-factory.js +2 -1
- package/dist/integrations/providers/impls/provider-factory.js.map +1 -0
- package/dist/integrations/providers/impls/qdrant-vector.d.ts +2 -1
- package/dist/integrations/providers/impls/qdrant-vector.d.ts.map +1 -0
- package/dist/integrations/providers/impls/qdrant-vector.js +2 -1
- package/dist/integrations/providers/impls/qdrant-vector.js.map +1 -0
- package/dist/integrations/providers/impls/stripe-payments.d.ts +2 -1
- package/dist/integrations/providers/impls/stripe-payments.d.ts.map +1 -0
- package/dist/integrations/providers/impls/stripe-payments.js +2 -1
- package/dist/integrations/providers/impls/stripe-payments.js.map +1 -0
- package/dist/integrations/providers/impls/twilio-sms.d.ts +2 -1
- package/dist/integrations/providers/impls/twilio-sms.d.ts.map +1 -0
- package/dist/integrations/providers/impls/twilio-sms.js +2 -1
- package/dist/integrations/providers/impls/twilio-sms.js.map +1 -0
- package/dist/integrations/providers/llm.d.ts +2 -1
- package/dist/integrations/providers/llm.d.ts.map +1 -0
- package/dist/integrations/providers/mistral.d.ts +2 -1
- package/dist/integrations/providers/mistral.d.ts.map +1 -0
- package/dist/integrations/providers/mistral.js +2 -1
- package/dist/integrations/providers/mistral.js.map +1 -0
- package/dist/integrations/providers/openbanking.d.ts +2 -1
- package/dist/integrations/providers/openbanking.d.ts.map +1 -0
- package/dist/integrations/providers/payments.d.ts +2 -1
- package/dist/integrations/providers/payments.d.ts.map +1 -0
- package/dist/integrations/providers/postmark.d.ts +2 -1
- package/dist/integrations/providers/postmark.d.ts.map +1 -0
- package/dist/integrations/providers/postmark.js +2 -1
- package/dist/integrations/providers/postmark.js.map +1 -0
- package/dist/integrations/providers/powens.d.ts +2 -1
- package/dist/integrations/providers/powens.d.ts.map +1 -0
- package/dist/integrations/providers/powens.js +2 -1
- package/dist/integrations/providers/powens.js.map +1 -0
- package/dist/integrations/providers/qdrant.d.ts +2 -1
- package/dist/integrations/providers/qdrant.d.ts.map +1 -0
- package/dist/integrations/providers/qdrant.js +2 -1
- package/dist/integrations/providers/qdrant.js.map +1 -0
- package/dist/integrations/providers/registry.d.ts +2 -1
- package/dist/integrations/providers/registry.d.ts.map +1 -0
- package/dist/integrations/providers/registry.js +2 -1
- package/dist/integrations/providers/registry.js.map +1 -0
- package/dist/integrations/providers/sms.d.ts +2 -1
- package/dist/integrations/providers/sms.d.ts.map +1 -0
- package/dist/integrations/providers/storage.d.ts +2 -1
- package/dist/integrations/providers/storage.d.ts.map +1 -0
- package/dist/integrations/providers/stripe.d.ts +2 -1
- package/dist/integrations/providers/stripe.d.ts.map +1 -0
- package/dist/integrations/providers/stripe.js +2 -1
- package/dist/integrations/providers/stripe.js.map +1 -0
- package/dist/integrations/providers/twilio-sms.d.ts +2 -1
- package/dist/integrations/providers/twilio-sms.d.ts.map +1 -0
- package/dist/integrations/providers/twilio-sms.js +2 -1
- package/dist/integrations/providers/twilio-sms.js.map +1 -0
- package/dist/integrations/providers/vector-store.d.ts +2 -1
- package/dist/integrations/providers/vector-store.d.ts.map +1 -0
- package/dist/integrations/providers/voice.d.ts +2 -1
- package/dist/integrations/providers/voice.d.ts.map +1 -0
- package/dist/integrations/runtime.d.ts +2 -1
- package/dist/integrations/runtime.d.ts.map +1 -0
- package/dist/integrations/runtime.js +2 -1
- package/dist/integrations/runtime.js.map +1 -0
- package/dist/integrations/secrets/aws-secret-manager.d.ts +2 -1
- package/dist/integrations/secrets/aws-secret-manager.d.ts.map +1 -0
- package/dist/integrations/secrets/aws-secret-manager.js +2 -1
- package/dist/integrations/secrets/aws-secret-manager.js.map +1 -0
- package/dist/integrations/secrets/env-secret-provider.d.ts +2 -1
- package/dist/integrations/secrets/env-secret-provider.d.ts.map +1 -0
- package/dist/integrations/secrets/env-secret-provider.js +2 -1
- package/dist/integrations/secrets/env-secret-provider.js.map +1 -0
- package/dist/integrations/secrets/gcp-secret-manager.d.ts +2 -1
- package/dist/integrations/secrets/gcp-secret-manager.d.ts.map +1 -0
- package/dist/integrations/secrets/gcp-secret-manager.js +2 -1
- package/dist/integrations/secrets/gcp-secret-manager.js.map +1 -0
- package/dist/integrations/secrets/manager.d.ts +2 -1
- package/dist/integrations/secrets/manager.d.ts.map +1 -0
- package/dist/integrations/secrets/manager.js +2 -1
- package/dist/integrations/secrets/manager.js.map +1 -0
- package/dist/integrations/secrets/provider.d.ts +2 -1
- package/dist/integrations/secrets/provider.d.ts.map +1 -0
- package/dist/integrations/secrets/provider.js +2 -1
- package/dist/integrations/secrets/provider.js.map +1 -0
- package/dist/integrations/secrets/scaleway-secret-manager.d.ts +2 -1
- package/dist/integrations/secrets/scaleway-secret-manager.d.ts.map +1 -0
- package/dist/integrations/secrets/scaleway-secret-manager.js +2 -1
- package/dist/integrations/secrets/scaleway-secret-manager.js.map +1 -0
- package/dist/integrations/spec.d.ts +2 -1
- package/dist/integrations/spec.d.ts.map +1 -0
- package/dist/integrations/spec.js +2 -1
- package/dist/integrations/spec.js.map +1 -0
- package/dist/jobs/define-job.d.ts +2 -1
- package/dist/jobs/define-job.d.ts.map +1 -0
- package/dist/jobs/define-job.js +2 -1
- package/dist/jobs/define-job.js.map +1 -0
- package/dist/jobs/gcp-cloud-tasks.d.ts +2 -1
- package/dist/jobs/gcp-cloud-tasks.d.ts.map +1 -0
- package/dist/jobs/gcp-cloud-tasks.js +2 -1
- package/dist/jobs/gcp-cloud-tasks.js.map +1 -0
- package/dist/jobs/gcp-pubsub.d.ts +2 -1
- package/dist/jobs/gcp-pubsub.d.ts.map +1 -0
- package/dist/jobs/gcp-pubsub.js +2 -1
- package/dist/jobs/gcp-pubsub.js.map +1 -0
- package/dist/jobs/handlers/gmail-sync-handler.d.ts +2 -1
- package/dist/jobs/handlers/gmail-sync-handler.d.ts.map +1 -0
- package/dist/jobs/handlers/gmail-sync-handler.js +2 -1
- package/dist/jobs/handlers/gmail-sync-handler.js.map +1 -0
- package/dist/jobs/handlers/index.d.ts +2 -1
- package/dist/jobs/handlers/index.d.ts.map +1 -0
- package/dist/jobs/handlers/index.js +2 -1
- package/dist/jobs/handlers/index.js.map +1 -0
- package/dist/jobs/handlers/ping-handler.d.ts +2 -1
- package/dist/jobs/handlers/ping-handler.d.ts.map +1 -0
- package/dist/jobs/handlers/ping-handler.js +2 -1
- package/dist/jobs/handlers/ping-handler.js.map +1 -0
- package/dist/jobs/handlers/storage-document-handler.d.ts +2 -1
- package/dist/jobs/handlers/storage-document-handler.d.ts.map +1 -0
- package/dist/jobs/handlers/storage-document-handler.js +2 -1
- package/dist/jobs/handlers/storage-document-handler.js.map +1 -0
- package/dist/jobs/memory-queue.d.ts +2 -1
- package/dist/jobs/memory-queue.d.ts.map +1 -0
- package/dist/jobs/memory-queue.js +2 -1
- package/dist/jobs/memory-queue.js.map +1 -0
- package/dist/jobs/queue.d.ts +2 -1
- package/dist/jobs/queue.d.ts.map +1 -0
- package/dist/jobs/queue.js +2 -1
- package/dist/jobs/queue.js.map +1 -0
- package/dist/jobs/scaleway-sqs-queue.d.ts +2 -1
- package/dist/jobs/scaleway-sqs-queue.d.ts.map +1 -0
- package/dist/jobs/scaleway-sqs-queue.js +2 -1
- package/dist/jobs/scaleway-sqs-queue.js.map +1 -0
- package/dist/jsonschema.d.ts +2 -1
- package/dist/jsonschema.d.ts.map +1 -0
- package/dist/jsonschema.js +2 -1
- package/dist/jsonschema.js.map +1 -0
- package/dist/knowledge/binding.d.ts +2 -1
- package/dist/knowledge/binding.d.ts.map +1 -0
- package/dist/knowledge/contracts.d.ts +68 -67
- package/dist/knowledge/contracts.d.ts.map +1 -0
- package/dist/knowledge/contracts.js +44 -45
- package/dist/knowledge/contracts.js.map +1 -0
- package/dist/knowledge/docs/knowledge.docblock.d.ts +2 -1
- package/dist/knowledge/docs/knowledge.docblock.d.ts.map +1 -0
- package/dist/knowledge/docs/knowledge.docblock.js +2 -1
- package/dist/knowledge/docs/knowledge.docblock.js.map +1 -0
- package/dist/knowledge/ingestion/document-processor.d.ts +2 -1
- package/dist/knowledge/ingestion/document-processor.d.ts.map +1 -0
- package/dist/knowledge/ingestion/document-processor.js +2 -1
- package/dist/knowledge/ingestion/document-processor.js.map +1 -0
- package/dist/knowledge/ingestion/embedding-service.d.ts +2 -1
- package/dist/knowledge/ingestion/embedding-service.d.ts.map +1 -0
- package/dist/knowledge/ingestion/embedding-service.js +2 -1
- package/dist/knowledge/ingestion/embedding-service.js.map +1 -0
- package/dist/knowledge/ingestion/gmail-adapter.d.ts +2 -1
- package/dist/knowledge/ingestion/gmail-adapter.d.ts.map +1 -0
- package/dist/knowledge/ingestion/gmail-adapter.js +2 -1
- package/dist/knowledge/ingestion/gmail-adapter.js.map +1 -0
- package/dist/knowledge/ingestion/storage-adapter.d.ts +2 -1
- package/dist/knowledge/ingestion/storage-adapter.d.ts.map +1 -0
- package/dist/knowledge/ingestion/storage-adapter.js +2 -1
- package/dist/knowledge/ingestion/storage-adapter.js.map +1 -0
- package/dist/knowledge/ingestion/vector-indexer.d.ts +2 -1
- package/dist/knowledge/ingestion/vector-indexer.d.ts.map +1 -0
- package/dist/knowledge/ingestion/vector-indexer.js +2 -1
- package/dist/knowledge/ingestion/vector-indexer.js.map +1 -0
- package/dist/knowledge/query/service.d.ts +2 -1
- package/dist/knowledge/query/service.d.ts.map +1 -0
- package/dist/knowledge/query/service.js +2 -1
- package/dist/knowledge/query/service.js.map +1 -0
- package/dist/knowledge/runtime.d.ts +2 -1
- package/dist/knowledge/runtime.d.ts.map +1 -0
- package/dist/knowledge/runtime.js +2 -1
- package/dist/knowledge/runtime.js.map +1 -0
- package/dist/knowledge/source.d.ts +2 -1
- package/dist/knowledge/source.d.ts.map +1 -0
- package/dist/knowledge/spaces/email-threads.d.ts +2 -1
- package/dist/knowledge/spaces/email-threads.d.ts.map +1 -0
- package/dist/knowledge/spaces/email-threads.js +2 -1
- package/dist/knowledge/spaces/email-threads.js.map +1 -0
- package/dist/knowledge/spaces/financial-docs.d.ts +2 -1
- package/dist/knowledge/spaces/financial-docs.d.ts.map +1 -0
- package/dist/knowledge/spaces/financial-docs.js +2 -1
- package/dist/knowledge/spaces/financial-docs.js.map +1 -0
- package/dist/knowledge/spaces/financial-overview.d.ts +2 -1
- package/dist/knowledge/spaces/financial-overview.d.ts.map +1 -0
- package/dist/knowledge/spaces/financial-overview.js +2 -1
- package/dist/knowledge/spaces/financial-overview.js.map +1 -0
- package/dist/knowledge/spaces/product-canon.d.ts +2 -1
- package/dist/knowledge/spaces/product-canon.d.ts.map +1 -0
- package/dist/knowledge/spaces/product-canon.js +2 -1
- package/dist/knowledge/spaces/product-canon.js.map +1 -0
- package/dist/knowledge/spaces/support-faq.d.ts +2 -1
- package/dist/knowledge/spaces/support-faq.d.ts.map +1 -0
- package/dist/knowledge/spaces/support-faq.js +2 -1
- package/dist/knowledge/spaces/support-faq.js.map +1 -0
- package/dist/knowledge/spaces/uploaded-docs.d.ts +2 -1
- package/dist/knowledge/spaces/uploaded-docs.d.ts.map +1 -0
- package/dist/knowledge/spaces/uploaded-docs.js +2 -1
- package/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
- package/dist/knowledge/spec.d.ts +2 -1
- package/dist/knowledge/spec.d.ts.map +1 -0
- package/dist/knowledge/spec.js +2 -1
- package/dist/knowledge/spec.js.map +1 -0
- package/dist/llm/exporters.d.ts +2 -1
- package/dist/llm/exporters.d.ts.map +1 -0
- package/dist/llm/exporters.js +2 -1
- package/dist/llm/exporters.js.map +1 -0
- package/dist/llm/prompts.d.ts +2 -1
- package/dist/llm/prompts.d.ts.map +1 -0
- package/dist/llm/prompts.js +2 -1
- package/dist/llm/prompts.js.map +1 -0
- package/dist/llm/types.d.ts +2 -1
- package/dist/llm/types.d.ts.map +1 -0
- package/dist/markdown.d.ts +2 -1
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +2 -1
- package/dist/markdown.js.map +1 -0
- package/dist/migrations.d.ts +2 -1
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +2 -1
- package/dist/migrations.js.map +1 -0
- package/dist/onboarding-base.d.ts +31 -30
- package/dist/onboarding-base.d.ts.map +1 -0
- package/dist/onboarding-base.js +22 -23
- package/dist/onboarding-base.js.map +1 -0
- package/dist/openapi.d.ts +2 -1
- package/dist/openapi.d.ts.map +1 -0
- package/dist/openapi.js +2 -1
- package/dist/openapi.js.map +1 -0
- package/dist/openbanking/docs/openbanking.docblock.d.ts +2 -1
- package/dist/openbanking/docs/openbanking.docblock.d.ts.map +1 -0
- package/dist/openbanking/docs/openbanking.docblock.js +2 -1
- package/dist/openbanking/docs/openbanking.docblock.js.map +1 -0
- package/dist/ownership.d.ts +6 -7
- package/dist/ownership.d.ts.map +1 -0
- package/dist/ownership.js +6 -6
- package/dist/ownership.js.map +1 -0
- package/dist/policy/docs/policy.docblock.d.ts +2 -1
- package/dist/policy/docs/policy.docblock.d.ts.map +1 -0
- package/dist/policy/docs/policy.docblock.js +2 -1
- package/dist/policy/docs/policy.docblock.js.map +1 -0
- package/dist/policy/engine.d.ts +2 -1
- package/dist/policy/engine.d.ts.map +1 -0
- package/dist/policy/engine.js +2 -1
- package/dist/policy/engine.js.map +1 -0
- package/dist/policy/opa-adapter.d.ts +2 -1
- package/dist/policy/opa-adapter.d.ts.map +1 -0
- package/dist/policy/opa-adapter.js +2 -1
- package/dist/policy/opa-adapter.js.map +1 -0
- package/dist/policy/spec.d.ts +2 -1
- package/dist/policy/spec.d.ts.map +1 -0
- package/dist/policy/spec.js +2 -1
- package/dist/policy/spec.js.map +1 -0
- package/dist/presentations/docs/presentations-conventions.docblock.d.ts +2 -1
- package/dist/presentations/docs/presentations-conventions.docblock.d.ts.map +1 -0
- package/dist/presentations/docs/presentations-conventions.docblock.js +2 -1
- package/dist/presentations/docs/presentations-conventions.docblock.js.map +1 -0
- package/dist/presentations.backcompat.d.ts +2 -1
- package/dist/presentations.backcompat.d.ts.map +1 -0
- package/dist/presentations.backcompat.js +2 -1
- package/dist/presentations.backcompat.js.map +1 -0
- package/dist/presentations.d.ts +5 -4
- package/dist/presentations.d.ts.map +1 -0
- package/dist/presentations.js +2 -1
- package/dist/presentations.js.map +1 -0
- package/dist/presentations.v2.d.ts +2 -1
- package/dist/presentations.v2.d.ts.map +1 -0
- package/dist/presentations.v2.js +2 -1
- package/dist/presentations.v2.js.map +1 -0
- package/dist/prompt.d.ts +2 -1
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +2 -1
- package/dist/prompt.js.map +1 -0
- package/dist/promptRegistry.d.ts +2 -1
- package/dist/promptRegistry.d.ts.map +1 -0
- package/dist/promptRegistry.js +2 -1
- package/dist/promptRegistry.js.map +1 -0
- package/dist/regenerator/adapters.d.ts +2 -1
- package/dist/regenerator/adapters.d.ts.map +1 -0
- package/dist/regenerator/docs/regenerator.docblock.d.ts +2 -1
- package/dist/regenerator/docs/regenerator.docblock.d.ts.map +1 -0
- package/dist/regenerator/docs/regenerator.docblock.js +2 -1
- package/dist/regenerator/docs/regenerator.docblock.js.map +1 -0
- package/dist/regenerator/executor.d.ts +2 -1
- package/dist/regenerator/executor.d.ts.map +1 -0
- package/dist/regenerator/executor.js +2 -1
- package/dist/regenerator/executor.js.map +1 -0
- package/dist/regenerator/service.d.ts +2 -1
- package/dist/regenerator/service.d.ts.map +1 -0
- package/dist/regenerator/service.js +2 -1
- package/dist/regenerator/service.js.map +1 -0
- package/dist/regenerator/sinks.d.ts +2 -1
- package/dist/regenerator/sinks.d.ts.map +1 -0
- package/dist/regenerator/sinks.js +2 -1
- package/dist/regenerator/sinks.js.map +1 -0
- package/dist/regenerator/types.d.ts +2 -1
- package/dist/regenerator/types.d.ts.map +1 -0
- package/dist/regenerator/utils.d.ts +2 -1
- package/dist/regenerator/utils.d.ts.map +1 -0
- package/dist/regenerator/utils.js +2 -1
- package/dist/regenerator/utils.js.map +1 -0
- package/dist/registry.d.ts +2 -1
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +2 -1
- package/dist/registry.js.map +1 -0
- package/dist/resources.d.ts +2 -1
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +2 -1
- package/dist/resources.js.map +1 -0
- package/dist/schema/dist/index.js +4684 -6
- package/dist/schema/dist/index.js.map +1 -0
- package/dist/schema-to-markdown.d.ts +2 -1
- package/dist/schema-to-markdown.d.ts.map +1 -0
- package/dist/schema-to-markdown.js +2 -1
- package/dist/schema-to-markdown.js.map +1 -0
- package/dist/server/graphql-pothos.d.ts +2 -1
- package/dist/server/graphql-pothos.d.ts.map +1 -0
- package/dist/server/graphql-pothos.js +2 -1
- package/dist/server/graphql-pothos.js.map +1 -0
- package/dist/server/mcp/createMcpServer.d.ts +2 -1
- package/dist/server/mcp/createMcpServer.d.ts.map +1 -0
- package/dist/server/mcp/createMcpServer.js +2 -1
- package/dist/server/mcp/createMcpServer.js.map +1 -0
- package/dist/server/mcp/mcpTypes.d.ts +2 -1
- package/dist/server/mcp/mcpTypes.d.ts.map +1 -0
- package/dist/server/mcp/registerPresentations.d.ts +2 -1
- package/dist/server/mcp/registerPresentations.d.ts.map +1 -0
- package/dist/server/mcp/registerPresentations.js +2 -1
- package/dist/server/mcp/registerPresentations.js.map +1 -0
- package/dist/server/mcp/registerPrompts.d.ts +2 -1
- package/dist/server/mcp/registerPrompts.d.ts.map +1 -0
- package/dist/server/mcp/registerPrompts.js +2 -1
- package/dist/server/mcp/registerPrompts.js.map +1 -0
- package/dist/server/mcp/registerResources.d.ts +2 -1
- package/dist/server/mcp/registerResources.d.ts.map +1 -0
- package/dist/server/mcp/registerResources.js +2 -1
- package/dist/server/mcp/registerResources.js.map +1 -0
- package/dist/server/mcp/registerTools.d.ts +2 -1
- package/dist/server/mcp/registerTools.d.ts.map +1 -0
- package/dist/server/mcp/registerTools.js +2 -1
- package/dist/server/mcp/registerTools.js.map +1 -0
- package/dist/server/rest-elysia.d.ts +2 -1
- package/dist/server/rest-elysia.d.ts.map +1 -0
- package/dist/server/rest-elysia.js +2 -1
- package/dist/server/rest-elysia.js.map +1 -0
- package/dist/server/rest-express.d.ts +2 -1
- package/dist/server/rest-express.d.ts.map +1 -0
- package/dist/server/rest-express.js +2 -1
- package/dist/server/rest-express.js.map +1 -0
- package/dist/server/rest-generic.d.ts +2 -1
- package/dist/server/rest-generic.d.ts.map +1 -0
- package/dist/server/rest-generic.js +2 -1
- package/dist/server/rest-generic.js.map +1 -0
- package/dist/server/rest-next-app.d.ts +2 -1
- package/dist/server/rest-next-app.d.ts.map +1 -0
- package/dist/server/rest-next-app.js +2 -1
- package/dist/server/rest-next-app.js.map +1 -0
- package/dist/server/rest-next-mcp.d.ts +2 -1
- package/dist/server/rest-next-mcp.d.ts.map +1 -0
- package/dist/server/rest-next-mcp.js +2 -1
- package/dist/server/rest-next-mcp.js.map +1 -0
- package/dist/server/rest-next-pages.d.ts +2 -1
- package/dist/server/rest-next-pages.d.ts.map +1 -0
- package/dist/server/rest-next-pages.js +2 -1
- package/dist/server/rest-next-pages.js.map +1 -0
- package/dist/spec.d.ts +2 -1
- package/dist/spec.d.ts.map +1 -0
- package/dist/spec.js +2 -1
- package/dist/spec.js.map +1 -0
- package/dist/telemetry/anomaly.d.ts +2 -1
- package/dist/telemetry/anomaly.d.ts.map +1 -0
- package/dist/telemetry/anomaly.js +2 -1
- package/dist/telemetry/anomaly.js.map +1 -0
- package/dist/telemetry/docs/telemetry.docblock.d.ts +2 -1
- package/dist/telemetry/docs/telemetry.docblock.d.ts.map +1 -0
- package/dist/telemetry/docs/telemetry.docblock.js +2 -1
- package/dist/telemetry/docs/telemetry.docblock.js.map +1 -0
- package/dist/telemetry/spec.d.ts +2 -1
- package/dist/telemetry/spec.d.ts.map +1 -0
- package/dist/telemetry/spec.js +2 -1
- package/dist/telemetry/spec.js.map +1 -0
- package/dist/telemetry/tracker.d.ts +2 -1
- package/dist/telemetry/tracker.d.ts.map +1 -0
- package/dist/telemetry/tracker.js +2 -1
- package/dist/telemetry/tracker.js.map +1 -0
- package/dist/tests/runner.d.ts +2 -1
- package/dist/tests/runner.d.ts.map +1 -0
- package/dist/tests/runner.js +2 -1
- package/dist/tests/runner.js.map +1 -0
- package/dist/tests/spec.d.ts +2 -1
- package/dist/tests/spec.d.ts.map +1 -0
- package/dist/tests/spec.js +2 -1
- package/dist/tests/spec.js.map +1 -0
- package/dist/themes.d.ts +2 -1
- package/dist/themes.d.ts.map +1 -0
- package/dist/themes.js +2 -1
- package/dist/themes.js.map +1 -0
- package/dist/translations/catalog.d.ts +2 -1
- package/dist/translations/catalog.d.ts.map +1 -0
- package/dist/translations/tenant.d.ts +2 -1
- package/dist/translations/tenant.d.ts.map +1 -0
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -0
- package/dist/workflow/adapters/db-adapter.d.ts +21 -8
- package/dist/workflow/adapters/db-adapter.d.ts.map +1 -0
- package/dist/workflow/adapters/db-adapter.js +5 -4
- package/dist/workflow/adapters/db-adapter.js.map +1 -0
- package/dist/workflow/adapters/file-adapter.d.ts +2 -1
- package/dist/workflow/adapters/file-adapter.d.ts.map +1 -0
- package/dist/workflow/adapters/file-adapter.js +2 -1
- package/dist/workflow/adapters/file-adapter.js.map +1 -0
- package/dist/workflow/adapters/memory-store.d.ts +2 -1
- package/dist/workflow/adapters/memory-store.d.ts.map +1 -0
- package/dist/workflow/adapters/memory-store.js +2 -1
- package/dist/workflow/adapters/memory-store.js.map +1 -0
- package/dist/workflow/expression.d.ts +2 -1
- package/dist/workflow/expression.d.ts.map +1 -0
- package/dist/workflow/expression.js +2 -1
- package/dist/workflow/expression.js.map +1 -0
- package/dist/workflow/runner.d.ts +2 -1
- package/dist/workflow/runner.d.ts.map +1 -0
- package/dist/workflow/runner.js +2 -1
- package/dist/workflow/runner.js.map +1 -0
- package/dist/workflow/sla-monitor.d.ts +2 -1
- package/dist/workflow/sla-monitor.d.ts.map +1 -0
- package/dist/workflow/sla-monitor.js +2 -1
- package/dist/workflow/sla-monitor.js.map +1 -0
- package/dist/workflow/spec.d.ts +2 -1
- package/dist/workflow/spec.d.ts.map +1 -0
- package/dist/workflow/spec.js +2 -1
- package/dist/workflow/spec.js.map +1 -0
- package/dist/workflow/state.d.ts +2 -1
- package/dist/workflow/state.d.ts.map +1 -0
- package/dist/workflow/validation.d.ts +2 -1
- package/dist/workflow/validation.d.ts.map +1 -0
- package/dist/workflow/validation.js +2 -1
- package/dist/workflow/validation.js.map +1 -0
- package/package.json +12 -17
- package/dist/docs/PUBLISHING.docblock.d.ts +0 -6
- package/dist/docs/PUBLISHING.docblock.js +0 -17
- package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.d.ts +0 -6
- package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -17
- package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.d.ts +0 -6
- package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -17
- package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.d.ts +0 -6
- package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -17
- package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.d.ts +0 -6
- package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -17
- package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.d.ts +0 -6
- package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -17
- package/dist/schema/dist/EnumType.js +0 -2
- package/dist/schema/dist/FieldType.js +0 -49
- package/dist/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/schema/dist/SchemaModel.js +0 -39
- package/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/schema/dist/entity/index.js +0 -2
- package/dist/schema/dist/entity/types.js +0 -1
|
@@ -4,4 +4,5 @@ import { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from "../spec.js";
|
|
|
4
4
|
declare const productCanonKnowledgeSpace: KnowledgeSpaceSpec;
|
|
5
5
|
declare function registerProductCanonKnowledgeSpace(registry: KnowledgeSpaceRegistry): KnowledgeSpaceRegistry;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { productCanonKnowledgeSpace, registerProductCanonKnowledgeSpace };
|
|
7
|
+
export { productCanonKnowledgeSpace, registerProductCanonKnowledgeSpace };
|
|
8
|
+
//# sourceMappingURL=product-canon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-canon.d.ts","names":[],"sources":["../../../src/knowledge/spaces/product-canon.ts"],"sourcesContent":[],"mappings":";;;cAGa,4BAA4B;iBA+BzB,kCAAA,WACJ,yBACT"}
|
|
@@ -35,4 +35,5 @@ function registerProductCanonKnowledgeSpace(registry) {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
//#endregion
|
|
38
|
-
export { productCanonKnowledgeSpace, registerProductCanonKnowledgeSpace };
|
|
38
|
+
export { productCanonKnowledgeSpace, registerProductCanonKnowledgeSpace };
|
|
39
|
+
//# sourceMappingURL=product-canon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-canon.js","names":["productCanonKnowledgeSpace: KnowledgeSpaceSpec"],"sources":["../../../src/knowledge/spaces/product-canon.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from '../spec';\n\nexport const productCanonKnowledgeSpace: KnowledgeSpaceSpec = {\n meta: {\n key: 'knowledge.product-canon',\n version: 1,\n category: 'canonical',\n displayName: 'Product Canon',\n title: 'Product Canon Knowledge Space',\n description:\n 'Authoritative product knowledge covering strategy, roadmap, and delivery canon.',\n domain: 'product',\n owners: ['platform.product'],\n tags: ['knowledge', 'product'],\n stability: StabilityEnum.Stable,\n },\n retention: {\n ttlDays: null,\n },\n access: {\n policy: { name: 'knowledge.access.product-canon', version: 1 },\n trustLevel: 'high',\n automationWritable: false,\n },\n indexing: {\n embeddingModel: 'text-embedding-3-large',\n chunkSize: 800,\n vectorDbIntegration: 'vectordb.qdrant',\n },\n description:\n 'Single source of truth for product canon, principles, and strategic narratives.',\n};\n\nexport function registerProductCanonKnowledgeSpace(\n registry: KnowledgeSpaceRegistry\n): KnowledgeSpaceRegistry {\n return registry.register(productCanonKnowledgeSpace);\n}\n"],"mappings":";;;AAGA,MAAaA,6BAAiD;CAC5D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,mBAAmB;EAC5B,MAAM,CAAC,aAAa,UAAU;EAC9B,WAAW,cAAc;EAC1B;CACD,WAAW,EACT,SAAS,MACV;CACD,QAAQ;EACN,QAAQ;GAAE,MAAM;GAAkC,SAAS;GAAG;EAC9D,YAAY;EACZ,oBAAoB;EACrB;CACD,UAAU;EACR,gBAAgB;EAChB,WAAW;EACX,qBAAqB;EACtB;CACD,aACE;CACH;AAED,SAAgB,mCACd,UACwB;AACxB,QAAO,SAAS,SAAS,2BAA2B"}
|
|
@@ -4,4 +4,5 @@ import { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from "../spec.js";
|
|
|
4
4
|
declare const supportFaqKnowledgeSpace: KnowledgeSpaceSpec;
|
|
5
5
|
declare function registerSupportFaqKnowledgeSpace(registry: KnowledgeSpaceRegistry): KnowledgeSpaceRegistry;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { registerSupportFaqKnowledgeSpace, supportFaqKnowledgeSpace };
|
|
7
|
+
export { registerSupportFaqKnowledgeSpace, supportFaqKnowledgeSpace };
|
|
8
|
+
//# sourceMappingURL=support-faq.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-faq.d.ts","names":[],"sources":["../../../src/knowledge/spaces/support-faq.ts"],"sourcesContent":[],"mappings":";;;cAGa,0BAA0B;iBA+BvB,gCAAA,WACJ,yBACT"}
|
|
@@ -38,4 +38,5 @@ function registerSupportFaqKnowledgeSpace(registry) {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
//#endregion
|
|
41
|
-
export { registerSupportFaqKnowledgeSpace, supportFaqKnowledgeSpace };
|
|
41
|
+
export { registerSupportFaqKnowledgeSpace, supportFaqKnowledgeSpace };
|
|
42
|
+
//# sourceMappingURL=support-faq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-faq.js","names":["supportFaqKnowledgeSpace: KnowledgeSpaceSpec"],"sources":["../../../src/knowledge/spaces/support-faq.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from '../spec';\n\nexport const supportFaqKnowledgeSpace: KnowledgeSpaceSpec = {\n meta: {\n key: 'knowledge.support-faq',\n version: 1,\n category: 'operational',\n displayName: 'Support FAQ',\n title: 'Support & Success FAQ',\n description: 'Operational knowledge base for customer support and success.',\n domain: 'support',\n owners: ['platform.support'],\n tags: ['knowledge', 'support'],\n stability: StabilityEnum.Beta,\n },\n retention: {\n ttlDays: 365,\n archiveAfterDays: 180,\n },\n access: {\n policy: { name: 'knowledge.access.support', version: 1 },\n trustLevel: 'medium',\n automationWritable: true,\n },\n indexing: {\n embeddingModel: 'text-embedding-3-small',\n chunkSize: 700,\n vectorDbIntegration: 'vectordb.qdrant',\n },\n description:\n 'Operational FAQs, runbooks, and customer success playbooks augmented with automation updates.',\n};\n\nexport function registerSupportFaqKnowledgeSpace(\n registry: KnowledgeSpaceRegistry\n): KnowledgeSpaceRegistry {\n return registry.register(supportFaqKnowledgeSpace);\n}\n"],"mappings":";;;AAGA,MAAaA,2BAA+C;CAC1D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,mBAAmB;EAC5B,MAAM,CAAC,aAAa,UAAU;EAC9B,WAAW,cAAc;EAC1B;CACD,WAAW;EACT,SAAS;EACT,kBAAkB;EACnB;CACD,QAAQ;EACN,QAAQ;GAAE,MAAM;GAA4B,SAAS;GAAG;EACxD,YAAY;EACZ,oBAAoB;EACrB;CACD,UAAU;EACR,gBAAgB;EAChB,WAAW;EACX,qBAAqB;EACtB;CACD,aACE;CACH;AAED,SAAgB,iCACd,UACwB;AACxB,QAAO,SAAS,SAAS,yBAAyB"}
|
|
@@ -4,4 +4,5 @@ import { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from "../spec.js";
|
|
|
4
4
|
declare const uploadedDocsKnowledgeSpace: KnowledgeSpaceSpec;
|
|
5
5
|
declare function registerUploadedDocsKnowledgeSpace(registry: KnowledgeSpaceRegistry): KnowledgeSpaceRegistry;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { registerUploadedDocsKnowledgeSpace, uploadedDocsKnowledgeSpace };
|
|
7
|
+
export { registerUploadedDocsKnowledgeSpace, uploadedDocsKnowledgeSpace };
|
|
8
|
+
//# sourceMappingURL=uploaded-docs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploaded-docs.d.ts","names":[],"sources":["../../../src/knowledge/spaces/uploaded-docs.ts"],"sourcesContent":[],"mappings":";;;cAGa,4BAA4B;iBA+BzB,kCAAA,WACJ,yBACT"}
|
|
@@ -35,4 +35,5 @@ function registerUploadedDocsKnowledgeSpace(registry) {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
//#endregion
|
|
38
|
-
export { registerUploadedDocsKnowledgeSpace, uploadedDocsKnowledgeSpace };
|
|
38
|
+
export { registerUploadedDocsKnowledgeSpace, uploadedDocsKnowledgeSpace };
|
|
39
|
+
//# sourceMappingURL=uploaded-docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploaded-docs.js","names":["uploadedDocsKnowledgeSpace: KnowledgeSpaceSpec"],"sources":["../../../src/knowledge/spaces/uploaded-docs.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { KnowledgeSpaceRegistry, KnowledgeSpaceSpec } from '../spec';\n\nexport const uploadedDocsKnowledgeSpace: KnowledgeSpaceSpec = {\n meta: {\n key: 'knowledge.uploaded-docs',\n version: 1,\n category: 'external',\n displayName: 'Uploaded Documents',\n title: 'Uploaded Knowledge Assets',\n description:\n 'Documents uploaded by households, including invoices, contracts, and reference files.',\n domain: 'operations',\n owners: ['platform.operations'],\n tags: ['documents', 'storage'],\n stability: StabilityEnum.Beta,\n },\n retention: {\n ttlDays: null,\n },\n access: {\n policy: { name: 'knowledge.access.uploaded-docs', version: 1 },\n trustLevel: 'medium',\n automationWritable: true,\n },\n indexing: {\n embeddingModel: 'mistral-embed',\n chunkSize: 900,\n vectorDbIntegration: 'vectordb.qdrant',\n },\n description:\n 'User-provided documents normalized and embedded for retrieval augmented workflows.',\n};\n\nexport function registerUploadedDocsKnowledgeSpace(\n registry: KnowledgeSpaceRegistry\n): KnowledgeSpaceRegistry {\n return registry.register(uploadedDocsKnowledgeSpace);\n}\n"],"mappings":";;;AAGA,MAAaA,6BAAiD;CAC5D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,sBAAsB;EAC/B,MAAM,CAAC,aAAa,UAAU;EAC9B,WAAW,cAAc;EAC1B;CACD,WAAW,EACT,SAAS,MACV;CACD,QAAQ;EACN,QAAQ;GAAE,MAAM;GAAkC,SAAS;GAAG;EAC9D,YAAY;EACZ,oBAAoB;EACrB;CACD,UAAU;EACR,gBAAgB;EAChB,WAAW;EACX,qBAAqB;EACtB;CACD,aACE;CACH;AAED,SAAgB,mCACd,UACwB;AACxB,QAAO,SAAS,SAAS,2BAA2B"}
|
package/dist/knowledge/spec.d.ts
CHANGED
|
@@ -49,4 +49,5 @@ declare class KnowledgeSpaceRegistry {
|
|
|
49
49
|
}
|
|
50
50
|
declare function makeKnowledgeSpaceKey(meta: KnowledgeSpaceMeta): string;
|
|
51
51
|
//#endregion
|
|
52
|
-
export { KnowledgeAccessPolicy, KnowledgeCategory, KnowledgeIndexingConfig, KnowledgeRetentionPolicy, KnowledgeSpaceMeta, KnowledgeSpaceRegistry, KnowledgeSpaceSpec, makeKnowledgeSpaceKey };
|
|
52
|
+
export { KnowledgeAccessPolicy, KnowledgeCategory, KnowledgeIndexingConfig, KnowledgeRetentionPolicy, KnowledgeSpaceMeta, KnowledgeSpaceRegistry, KnowledgeSpaceSpec, makeKnowledgeSpaceKey };
|
|
53
|
+
//# sourceMappingURL=spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.d.ts","names":[],"sources":["../../src/knowledge/spec.ts"],"sourcesContent":[],"mappings":";;;;KAGY,iBAAA;UAMK,kBAAA,SAA2B;EANhC;EAMK,GAAA,EAAA,MAAA;EAQA,OAAA,EAAA,MAAA;EAOA,QAAA,EAXL,iBAW0B;EASrB,WAAA,EAAA,MAAA;AAMjB;AACQ,UAvBS,wBAAA,CAuBT;EAEK;EAEH,OAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAEG;EAAuB,gBAAA,CAAA,EAAA,MAAA;AAQpC;AAGiB,UAjCA,qBAAA,CAiCA;EASP;EAI4B,MAAA,CAAA,EA5C3B,SA4C2B;EAgBZ;EAAoB,UAAA,EAAA,MAAA,GAAA,QAAA,GAAA,KAAA;EAAkB;EAKhD,kBAAA,EAAA,OAAqB;;UA1DpB,uBAAA;;;;;UAMA,kBAAA;QACT;;aAEK;;UAEH;;aAEG;;;;cAQA,sBAAA;;iBAGI;UASP;sCAI4B;0BAgBZ,oBAAoB;;iBAK9B,qBAAA,OAA4B"}
|
package/dist/knowledge/spec.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.js","names":["latest: KnowledgeSpaceSpec | undefined"],"sources":["../../src/knowledge/spec.ts"],"sourcesContent":["import type { OwnerShipMeta } from '../ownership';\nimport type { PolicyRef } from '../policy/spec';\n\nexport type KnowledgeCategory =\n | 'canonical' // Ground truth - product specs, schemas, official policies\n | 'operational' // Internal docs - support tickets, runbooks, sales materials\n | 'external' // Third-party - PSP docs, regulations, integration guides\n | 'ephemeral'; // Temporary - agent scratchpads, session context, drafts\n\nexport interface KnowledgeSpaceMeta extends OwnerShipMeta {\n /** Stable space identifier (e.g., \"product-canon\", \"support-faq\"). */\n key: string;\n version: number;\n category: KnowledgeCategory;\n displayName: string;\n}\n\nexport interface KnowledgeRetentionPolicy {\n /** TTL in days (null = indefinite). */\n ttlDays?: number | null;\n /** Auto-archive after inactivity. */\n archiveAfterDays?: number;\n}\n\nexport interface KnowledgeAccessPolicy {\n /** Which PolicySpec governs access. */\n policy?: PolicyRef;\n /** Trust level for agent/workflow consumption. */\n trustLevel: 'high' | 'medium' | 'low';\n /** Can this space be mutated by automation? */\n automationWritable: boolean;\n}\n\nexport interface KnowledgeIndexingConfig {\n embeddingModel?: string;\n chunkSize?: number;\n vectorDbIntegration?: string;\n}\n\nexport interface KnowledgeSpaceSpec {\n meta: KnowledgeSpaceMeta;\n /** Retention and cleanup rules. */\n retention: KnowledgeRetentionPolicy;\n /** Access control and trust. */\n access: KnowledgeAccessPolicy;\n /** Optional embedding/indexing config. */\n indexing?: KnowledgeIndexingConfig;\n /** Documentation. */\n description?: string;\n}\n\nconst knowledgeKey = (meta: Pick<KnowledgeSpaceMeta, 'key' | 'version'>) =>\n `${meta.key}.v${meta.version}`;\n\nexport class KnowledgeSpaceRegistry {\n private readonly items = new Map<string, KnowledgeSpaceSpec>();\n\n register(spec: KnowledgeSpaceSpec): this {\n const key = knowledgeKey(spec.meta);\n if (this.items.has(key)) {\n throw new Error(`Duplicate KnowledgeSpaceSpec ${key}`);\n }\n this.items.set(key, spec);\n return this;\n }\n\n list(): KnowledgeSpaceSpec[] {\n return [...this.items.values()];\n }\n\n get(key: string, version?: number): KnowledgeSpaceSpec | undefined {\n if (version != null) {\n return this.items.get(knowledgeKey({ key, version }));\n }\n let latest: KnowledgeSpaceSpec | undefined;\n let maxVersion = -Infinity;\n for (const spec of this.items.values()) {\n if (spec.meta.key !== key) continue;\n if (spec.meta.version > maxVersion) {\n maxVersion = spec.meta.version;\n latest = spec;\n }\n }\n return latest;\n }\n\n getByCategory(category: KnowledgeCategory): KnowledgeSpaceSpec[] {\n return this.list().filter((spec) => spec.meta.category === category);\n }\n}\n\nexport function makeKnowledgeSpaceKey(meta: KnowledgeSpaceMeta) {\n return knowledgeKey(meta);\n}\n"],"mappings":";AAmDA,MAAM,gBAAgB,SACpB,GAAG,KAAK,IAAI,IAAI,KAAK;AAEvB,IAAa,yBAAb,MAAoC;CAClC,AAAiB,wBAAQ,IAAI,KAAiC;CAE9D,SAAS,MAAgC;EACvC,MAAM,MAAM,aAAa,KAAK,KAAK;AACnC,MAAI,KAAK,MAAM,IAAI,IAAI,CACrB,OAAM,IAAI,MAAM,gCAAgC,MAAM;AAExD,OAAK,MAAM,IAAI,KAAK,KAAK;AACzB,SAAO;;CAGT,OAA6B;AAC3B,SAAO,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC;;CAGjC,IAAI,KAAa,SAAkD;AACjE,MAAI,WAAW,KACb,QAAO,KAAK,MAAM,IAAI,aAAa;GAAE;GAAK;GAAS,CAAC,CAAC;EAEvD,IAAIA;EACJ,IAAI,aAAa;AACjB,OAAK,MAAM,QAAQ,KAAK,MAAM,QAAQ,EAAE;AACtC,OAAI,KAAK,KAAK,QAAQ,IAAK;AAC3B,OAAI,KAAK,KAAK,UAAU,YAAY;AAClC,iBAAa,KAAK,KAAK;AACvB,aAAS;;;AAGb,SAAO;;CAGT,cAAc,UAAmD;AAC/D,SAAO,KAAK,MAAM,CAAC,QAAQ,SAAS,KAAK,KAAK,aAAa,SAAS;;;AAIxE,SAAgB,sBAAsB,MAA0B;AAC9D,QAAO,aAAa,KAAK"}
|
package/dist/llm/exporters.d.ts
CHANGED
|
@@ -64,4 +64,5 @@ declare function exportFeature(feature: FeatureModuleSpec, deps?: {
|
|
|
64
64
|
presentations?: PresentationRegistry;
|
|
65
65
|
}, options?: Partial<FeatureExportOptions>): FeatureExportResult;
|
|
66
66
|
//#endregion
|
|
67
|
-
export { docBlockToMarkdown, eventToMarkdown, exportFeature, exportSpec, featureToMarkdown, presentationToMarkdown, specToAgentPrompt, specToContextMarkdown, specToFullMarkdown };
|
|
67
|
+
export { docBlockToMarkdown, eventToMarkdown, exportFeature, exportSpec, featureToMarkdown, presentationToMarkdown, specToAgentPrompt, specToContextMarkdown, specToFullMarkdown };
|
|
68
|
+
//# sourceMappingURL=exporters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporters.d.ts","names":[],"sources":["../../src/llm/exporters.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;AAkSA;AA8IA;;AAGY,iBAtYI,qBAAA,CAsYJ,IAAA,EAtYgC,eAsYhC,CAAA,EAAA,MAAA;;;;;AA+HZ;AA2DgB,iBAjhBA,kBAAA,CAihBiC,IAAA,EAhhBzC,eAghBwC,EAAA,OAAA,CAAA,EA/gBrC,OA+gBqC,CA/gB7B,iBA+gB6B,CAAA,CAAA,EAAA,MAAA;AAsChD;AA0CA;;;;AAGG,iBA9Za,iBAAA,CA8Zb,IAAA,EA7ZK,eA6ZL,EAAA,OAkCQ,CAlCR,EAAA;EAAgB,QAAA,CAAA,EAAA,WAAA,GAAA,MAAA,GAAA,UAAA,GAAA,QAAA;EAiCH,YAAA,CAAA,EAAA,MAAa;CAClB,CAAA,EAAA,MAAA;;;;;AAMR,iBAxTa,iBAAA,CAwTb,OAAA,EAvTQ,iBAuTR,EAAA,KAAA,EAAA;EAAmB,KAAA,CAAA,EArTV,YAqTU;kBApTF;aAET,QAAQ;;;;iBA4HH,sBAAA,eACA;;;;iBA0DA,eAAA,QAAuB,UAAU;;;;iBAsCjC,kBAAA,MAAwB;;;;;iBA0CxB,UAAA,OACR,2BACG,QAAQ,qBAChB;;;;iBAiCa,aAAA,UACL;UAEC;kBACQ;aAET,QAAQ,wBAChB"}
|
package/dist/llm/exporters.js
CHANGED
|
@@ -538,4 +538,5 @@ function exportFeature(feature, deps, options = {}) {
|
|
|
538
538
|
}
|
|
539
539
|
|
|
540
540
|
//#endregion
|
|
541
|
-
export { docBlockToMarkdown, eventToMarkdown, exportFeature, exportSpec, featureToMarkdown, presentationToMarkdown, specToAgentPrompt, specToContextMarkdown, specToFullMarkdown };
|
|
541
|
+
export { docBlockToMarkdown, eventToMarkdown, exportFeature, exportSpec, featureToMarkdown, presentationToMarkdown, specToAgentPrompt, specToContextMarkdown, specToFullMarkdown };
|
|
542
|
+
//# sourceMappingURL=exporters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporters.js","names":["DEFAULT_SPEC_OPTIONS: SpecExportOptions","DEFAULT_FEATURE_OPTIONS: FeatureExportOptions","lines: string[]","markdown: string"],"sources":["../../src/llm/exporters.ts"],"sourcesContent":["/**\n * LLM Export Functions\n *\n * Provides multi-format markdown export for specs, features, presentations,\n * and other ContractSpec artifacts for LLM consumption.\n */\n\nimport type { AnyContractSpec } from '../spec';\nimport { isEmitDeclRef } from '../spec';\nimport type { FeatureModuleSpec } from '../features';\nimport type { PresentationDescriptorV2 } from '../presentations.v2';\nimport type { EventSpec } from '../events';\nimport type { AnySchemaModel } from '@lssm/lib.schema';\nimport type { DocBlock } from '../docs/types';\nimport type { SpecRegistry } from '../registry';\nimport type { PresentationRegistry } from '../presentations';\nimport { jsonSchemaForSpec } from '../jsonschema';\nimport type {\n SpecExportOptions,\n FeatureExportOptions,\n SpecExportResult,\n FeatureExportResult,\n} from './types';\n\nconst DEFAULT_SPEC_OPTIONS: SpecExportOptions = {\n format: 'full',\n includeSchemas: true,\n includeScenarios: true,\n includeExamples: true,\n includePolicy: true,\n includeSideEffects: true,\n};\n\nconst DEFAULT_FEATURE_OPTIONS: FeatureExportOptions = {\n ...DEFAULT_SPEC_OPTIONS,\n includeRelatedSpecs: true,\n includeRelatedEvents: true,\n includeRelatedPresentations: true,\n};\n\n/**\n * Export a single spec to context-focused markdown.\n * Includes: goal, context, description, acceptance scenarios.\n * Best for: Understanding what the spec does, providing context to LLMs.\n */\nexport function specToContextMarkdown(spec: AnyContractSpec): string {\n const m = spec.meta;\n const lines: string[] = [];\n\n lines.push(`# ${m.name} (v${m.version})`);\n lines.push('');\n lines.push(`> ${m.description}`);\n lines.push('');\n lines.push(`**Type:** ${m.kind} | **Stability:** ${m.stability}`);\n lines.push('');\n\n lines.push('## Goal');\n lines.push('');\n lines.push(m.goal);\n lines.push('');\n\n lines.push('## Context');\n lines.push('');\n lines.push(m.context);\n lines.push('');\n\n if (spec.acceptance?.scenarios?.length) {\n lines.push('## Acceptance Criteria');\n lines.push('');\n for (const s of spec.acceptance.scenarios) {\n lines.push(`### ${s.name}`);\n lines.push('');\n lines.push('**Given:**');\n for (const g of s.given) lines.push(`- ${g}`);\n lines.push('');\n lines.push('**When:**');\n for (const w of s.when) lines.push(`- ${w}`);\n lines.push('');\n lines.push('**Then:**');\n for (const t of s.then) lines.push(`- ${t}`);\n lines.push('');\n }\n }\n\n return lines.join('\\n');\n}\n\n/**\n * Export a single spec to full markdown with all details.\n * Includes: all fields, I/O schemas, policy, events, examples.\n * Best for: Complete documentation, implementation reference.\n */\nexport function specToFullMarkdown(\n spec: AnyContractSpec,\n options: Partial<SpecExportOptions> = {}\n): string {\n const opts = { ...DEFAULT_SPEC_OPTIONS, ...options };\n const m = spec.meta;\n const lines: string[] = [];\n\n // Header\n lines.push(`# ${m.name}.v${m.version}`);\n lines.push('');\n lines.push(`> ${m.description}`);\n lines.push('');\n\n // Metadata table\n lines.push('## Metadata');\n lines.push('');\n lines.push('| Field | Value |');\n lines.push('|-------|-------|');\n lines.push(`| Kind | ${m.kind} |`);\n lines.push(`| Stability | ${m.stability} |`);\n lines.push(`| Owners | ${m.owners.join(', ')} |`);\n lines.push(`| Tags | ${m.tags.join(', ')} |`);\n lines.push('');\n\n // Goal & Context\n lines.push('## Goal');\n lines.push('');\n lines.push(m.goal);\n lines.push('');\n\n lines.push('## Context');\n lines.push('');\n lines.push(m.context);\n lines.push('');\n\n // I/O Schemas\n if (opts.includeSchemas) {\n lines.push('## Input/Output');\n lines.push('');\n\n if (spec.io.input) {\n lines.push('### Input Schema');\n lines.push('');\n lines.push('```json');\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const schema = jsonSchemaForSpec(spec as any) as any;\n lines.push(JSON.stringify(schema.input ?? {}, null, 2));\n } catch {\n lines.push('// Schema generation not available');\n }\n lines.push('```');\n lines.push('');\n }\n\n lines.push('### Output Schema');\n lines.push('');\n lines.push('```json');\n try {\n const schema = jsonSchemaForSpec(spec as any) as any;\n lines.push(JSON.stringify(schema.output ?? {}, null, 2));\n } catch {\n lines.push('// Schema generation not available');\n }\n lines.push('```');\n lines.push('');\n\n // Errors\n if (spec.io.errors && Object.keys(spec.io.errors).length) {\n lines.push('### Error Codes');\n lines.push('');\n lines.push('| Code | HTTP | Description | When |');\n lines.push('|------|------|-------------|------|');\n for (const [code, err] of Object.entries(spec.io.errors)) {\n lines.push(\n `| \\`${code}\\` | ${err.http ?? 400} | ${err.description} | ${err.when} |`\n );\n }\n lines.push('');\n }\n }\n\n // Policy\n if (opts.includePolicy) {\n lines.push('## Policy');\n lines.push('');\n lines.push(`- **Auth Required:** ${spec.policy.auth}`);\n lines.push(\n `- **Idempotent:** ${spec.policy.idempotent ?? m.kind === 'query'}`\n );\n if (spec.policy.rateLimit) {\n lines.push(\n `- **Rate Limit:** ${spec.policy.rateLimit.rpm} rpm per ${spec.policy.rateLimit.key}`\n );\n }\n if (spec.policy.flags?.length) {\n lines.push(`- **Feature Flags:** ${spec.policy.flags.join(', ')}`);\n }\n if (spec.policy.pii?.length) {\n lines.push(`- **PII Fields:** ${spec.policy.pii.join(', ')}`);\n }\n if (spec.policy.escalate) {\n lines.push(`- **Escalation:** ${spec.policy.escalate}`);\n }\n lines.push('');\n }\n\n // Side Effects\n if (opts.includeSideEffects && spec.sideEffects) {\n if (spec.sideEffects.emits?.length) {\n lines.push('## Events Emitted');\n lines.push('');\n for (const e of spec.sideEffects.emits) {\n if (isEmitDeclRef(e)) {\n lines.push(`- \\`${e.ref.name}.v${e.ref.version}\\` — ${e.when}`);\n } else {\n lines.push(`- \\`${e.name}.v${e.version}\\` — ${e.when}`);\n }\n }\n lines.push('');\n }\n\n if (spec.sideEffects.analytics?.length) {\n lines.push('## Analytics Events');\n lines.push('');\n for (const a of spec.sideEffects.analytics) {\n lines.push(`- ${a}`);\n }\n lines.push('');\n }\n }\n\n // Acceptance Scenarios\n if (opts.includeScenarios && spec.acceptance?.scenarios?.length) {\n lines.push('## Acceptance Scenarios');\n lines.push('');\n for (const s of spec.acceptance.scenarios) {\n lines.push(`### ${s.name}`);\n lines.push('');\n lines.push('**Given:**');\n for (const g of s.given) lines.push(`- ${g}`);\n lines.push('');\n lines.push('**When:**');\n for (const w of s.when) lines.push(`- ${w}`);\n lines.push('');\n lines.push('**Then:**');\n for (const t of s.then) lines.push(`- ${t}`);\n lines.push('');\n }\n }\n\n // Examples\n if (opts.includeExamples && spec.acceptance?.examples?.length) {\n lines.push('## Examples');\n lines.push('');\n for (const ex of spec.acceptance.examples) {\n lines.push(`### ${ex.name}`);\n lines.push('');\n lines.push('**Input:**');\n lines.push('```json');\n lines.push(JSON.stringify(ex.input, null, 2));\n lines.push('```');\n lines.push('');\n lines.push('**Output:**');\n lines.push('```json');\n lines.push(JSON.stringify(ex.output, null, 2));\n lines.push('```');\n lines.push('');\n }\n }\n\n // Transport hints\n if (spec.transport) {\n lines.push('## Transport Configuration');\n lines.push('');\n if (spec.transport.rest) {\n lines.push(\n `- **REST:** ${spec.transport.rest.method ?? 'POST'} ${spec.transport.rest.path ?? 'auto'}`\n );\n }\n if (spec.transport.gql) {\n lines.push(`- **GraphQL:** ${spec.transport.gql.field ?? 'auto'}`);\n }\n if (spec.transport.mcp) {\n lines.push(`- **MCP Tool:** ${spec.transport.mcp.toolName ?? 'auto'}`);\n }\n lines.push('');\n }\n\n return lines.join('\\n');\n}\n\n/**\n * Export a single spec as an actionable agent prompt.\n * Includes: instructions, full spec, expected output format.\n * Best for: Directly feeding to coding agents for implementation.\n */\nexport function specToAgentPrompt(\n spec: AnyContractSpec,\n options?: {\n taskType?: 'implement' | 'test' | 'refactor' | 'review';\n existingCode?: string;\n }\n): string {\n const taskType = options?.taskType ?? 'implement';\n const m = spec.meta;\n const lines: string[] = [];\n\n // Task header\n const taskVerb = {\n implement: 'Implement',\n test: 'Write tests for',\n refactor: 'Refactor',\n review: 'Review',\n }[taskType];\n\n lines.push(`# Task: ${taskVerb} ${m.name}.v${m.version}`);\n lines.push('');\n\n // Context\n lines.push('## Context');\n lines.push('');\n lines.push(\n `You are working on a ContractSpec-driven codebase. This spec defines a ${m.kind} operation.`\n );\n lines.push('');\n lines.push(`**Goal:** ${m.goal}`);\n lines.push('');\n lines.push(`**Background:** ${m.context}`);\n lines.push('');\n\n // Full spec\n lines.push('## Specification');\n lines.push('');\n lines.push(specToFullMarkdown(spec));\n lines.push('');\n\n // Task-specific instructions\n lines.push('## Instructions');\n lines.push('');\n\n if (taskType === 'implement') {\n lines.push('Implement this specification following these requirements:');\n lines.push('');\n lines.push(\n '1. **Type Safety**: Use TypeScript with strict typing. No `any` types.'\n );\n lines.push(\n '2. **Input Validation**: Validate input against the schema before processing.'\n );\n lines.push(\n '3. **Error Handling**: Implement all error cases defined in the spec.'\n );\n lines.push('4. **Events**: Emit events as specified in sideEffects.emits.');\n lines.push('5. **Policy**: Respect auth, rate limits, and feature flags.');\n lines.push(\n '6. **Idempotency**: ' +\n (spec.policy.idempotent\n ? 'This operation MUST be idempotent.'\n : 'This operation may have side effects.')\n );\n lines.push('');\n\n if (spec.policy.pii?.length) {\n lines.push(\n '**PII Handling**: The following fields contain PII and must be handled carefully:'\n );\n for (const field of spec.policy.pii) {\n lines.push(`- ${field}`);\n }\n lines.push('');\n }\n } else if (taskType === 'test') {\n lines.push('Write comprehensive tests for this specification:');\n lines.push('');\n lines.push('1. Test all acceptance scenarios defined in the spec.');\n lines.push('2. Test all error cases with appropriate assertions.');\n lines.push('3. Test edge cases and boundary conditions.');\n lines.push('4. Verify events are emitted correctly.');\n lines.push(\n '5. Use descriptive test names following the pattern: \"should [behavior] when [condition]\"'\n );\n lines.push('');\n } else if (taskType === 'refactor') {\n lines.push('Refactor this implementation while preserving all behavior:');\n lines.push('');\n lines.push('1. Maintain compliance with the specification.');\n lines.push('2. Improve code clarity and maintainability.');\n lines.push('3. Reduce complexity where possible.');\n lines.push('4. Ensure all existing tests still pass.');\n lines.push('');\n } else if (taskType === 'review') {\n lines.push('Review this implementation against the specification:');\n lines.push('');\n lines.push('1. Verify input/output types match the schema.');\n lines.push('2. Check all error cases are handled.');\n lines.push('3. Verify events are emitted as specified.');\n lines.push('4. Check policy compliance (auth, rate limits).');\n lines.push('5. Report any deviations from the spec.');\n lines.push('');\n }\n\n // Existing code if provided\n if (options?.existingCode) {\n lines.push('## Existing Code');\n lines.push('');\n lines.push('```typescript');\n lines.push(options.existingCode);\n lines.push('```');\n lines.push('');\n }\n\n // Expected output format\n lines.push('## Expected Output');\n lines.push('');\n if (taskType === 'implement' || taskType === 'refactor') {\n lines.push('Provide a complete TypeScript implementation. Include:');\n lines.push('- Type definitions for input/output');\n lines.push('- Handler function with proper error handling');\n lines.push('- JSDoc comments explaining the implementation');\n } else if (taskType === 'test') {\n lines.push(\n 'Provide a complete test file using the testing framework available (prefer Vitest).'\n );\n } else if (taskType === 'review') {\n lines.push('Provide a structured review with:');\n lines.push('- Compliance status (pass/fail for each requirement)');\n lines.push('- Issues found with severity (error/warning/info)');\n lines.push('- Suggestions for improvement');\n }\n lines.push('');\n\n return lines.join('\\n');\n}\n\n/**\n * Export a feature module to markdown.\n * Includes all related specs, events, and presentations.\n */\nexport function featureToMarkdown(\n feature: FeatureModuleSpec,\n deps?: {\n specs?: SpecRegistry;\n presentations?: PresentationRegistry;\n },\n options: Partial<FeatureExportOptions> = {}\n): string {\n const opts = { ...DEFAULT_FEATURE_OPTIONS, ...options };\n const m = feature.meta;\n const lines: string[] = [];\n\n // Header\n lines.push(`# Feature: ${m.title ?? m.key}`);\n lines.push('');\n if (m.description) {\n lines.push(`> ${m.description}`);\n lines.push('');\n }\n\n // Metadata\n lines.push('## Overview');\n lines.push('');\n lines.push(`- **Key:** \\`${m.key}\\``);\n lines.push(`- **Stability:** ${m.stability}`);\n lines.push(`- **Owners:** ${m.owners.join(', ')}`);\n if (m.tags?.length) {\n lines.push(`- **Tags:** ${m.tags.join(', ')}`);\n }\n lines.push('');\n\n // Operations summary\n if (feature.operations?.length) {\n lines.push('## Operations');\n lines.push('');\n lines.push('| Name | Version | Type |');\n lines.push('|------|---------|------|');\n for (const op of feature.operations) {\n const spec = deps?.specs?.getSpec(op.name, op.version);\n const kind = spec?.meta.kind ?? 'unknown';\n lines.push(`| ${op.name} | v${op.version} | ${kind} |`);\n }\n lines.push('');\n\n // Include full specs if requested\n if (opts.includeRelatedSpecs && deps?.specs) {\n lines.push('### Operation Details');\n lines.push('');\n for (const op of feature.operations) {\n const spec = deps.specs.getSpec(op.name, op.version);\n if (spec) {\n lines.push(`---`);\n lines.push('');\n lines.push(specToFullMarkdown(spec, opts));\n }\n }\n }\n }\n\n // Events summary\n if (feature.events?.length) {\n lines.push('## Events');\n lines.push('');\n lines.push('| Name | Version |');\n lines.push('|------|---------|');\n for (const evt of feature.events) {\n lines.push(`| ${evt.name} | v${evt.version} |`);\n }\n lines.push('');\n }\n\n // Presentations summary\n if (feature.presentations?.length) {\n lines.push('## Presentations');\n lines.push('');\n lines.push('| Name | Version |');\n lines.push('|------|---------|');\n for (const pres of feature.presentations) {\n lines.push(`| ${pres.name} | v${pres.version} |`);\n }\n lines.push('');\n\n // Include full presentations if requested\n if (opts.includeRelatedPresentations && deps?.presentations) {\n lines.push('### Presentation Details');\n lines.push('');\n for (const pres of feature.presentations) {\n const p = deps.presentations.get(pres.name, pres.version);\n if (p) {\n lines.push(`#### ${pres.name}.v${pres.version}`);\n lines.push('');\n lines.push(`- **Kind:** ${(p.content as any).kind ?? 'unknown'}`);\n if ('componentKey' in p.content) {\n lines.push(`- **Component:** ${(p.content as any).componentKey}`);\n }\n lines.push('');\n }\n }\n }\n }\n\n // Capabilities\n if (feature.capabilities) {\n if (feature.capabilities.provides?.length) {\n lines.push('## Capabilities Provided');\n lines.push('');\n for (const cap of feature.capabilities.provides) {\n lines.push(`- \\`${cap.key}.v${cap.version}\\``);\n }\n lines.push('');\n }\n\n if (feature.capabilities.requires?.length) {\n lines.push('## Capabilities Required');\n lines.push('');\n for (const cap of feature.capabilities.requires) {\n lines.push(\n `- \\`${cap.key}\\`${cap.version ? `.v${cap.version}` : ''} (${cap.optional ? 'optional' : 'required'})`\n );\n }\n lines.push('');\n }\n }\n\n return lines.join('\\n');\n}\n\n/**\n * Export a presentation descriptor to markdown.\n */\nexport function presentationToMarkdown(\n presentation: PresentationDescriptorV2\n): string {\n const m = presentation.meta;\n const lines: string[] = [];\n\n lines.push(`# Presentation: ${m.name}.v${m.version}`);\n lines.push('');\n\n if (m.description) {\n lines.push(`> ${m.description}`);\n lines.push('');\n }\n\n lines.push('## Metadata');\n lines.push('');\n lines.push(`- **Name:** ${m.name}`);\n lines.push(`- **Version:** ${m.version}`);\n if (m.stability) lines.push(`- **Stability:** ${m.stability}`);\n if (m.owners?.length) lines.push(`- **Owners:** ${m.owners.join(', ')}`);\n if (m.tags?.length) lines.push(`- **Tags:** ${m.tags.join(', ')}`);\n lines.push('');\n\n lines.push('## Source');\n lines.push('');\n lines.push(`- **Type:** ${presentation.source.type}`);\n if (presentation.source.type === 'component') {\n lines.push(`- **Framework:** ${presentation.source.framework}`);\n lines.push(`- **Component Key:** ${presentation.source.componentKey}`);\n }\n lines.push('');\n\n lines.push('## Supported Targets');\n lines.push('');\n for (const target of presentation.targets) {\n lines.push(`- ${target}`);\n }\n lines.push('');\n\n if (presentation.policy) {\n lines.push('## Policy');\n lines.push('');\n if (presentation.policy.flags?.length) {\n lines.push(\n `- **Feature Flags:** ${presentation.policy.flags.join(', ')}`\n );\n }\n if (presentation.policy.pii?.length) {\n lines.push(`- **PII Fields:** ${presentation.policy.pii.join(', ')}`);\n }\n lines.push('');\n }\n\n return lines.join('\\n');\n}\n\n/**\n * Export an event spec to markdown.\n */\nexport function eventToMarkdown(event: EventSpec<AnySchemaModel>): string {\n const lines: string[] = [];\n\n lines.push(`# Event: ${event.name}.v${event.version}`);\n lines.push('');\n\n lines.push('## Metadata');\n lines.push('');\n lines.push(`- **Name:** ${event.name}`);\n lines.push(`- **Version:** ${event.version}`);\n if (event.description) lines.push(`- **Description:** ${event.description}`);\n lines.push('');\n\n lines.push('## Payload Schema');\n lines.push('');\n lines.push('```json');\n try {\n const zodSchema = event.payload.getZod();\n // Try to get shape if available\n if ('shape' in zodSchema && zodSchema.shape) {\n const shape = zodSchema.shape as Record<string, unknown>;\n const fields = Object.keys(shape);\n lines.push(JSON.stringify({ fields }, null, 2));\n } else {\n lines.push('// Payload schema available at runtime');\n }\n } catch {\n lines.push('// Schema details available at runtime');\n }\n lines.push('```');\n lines.push('');\n\n return lines.join('\\n');\n}\n\n/**\n * Export a DocBlock to markdown (already markdown, but formatted consistently).\n */\nexport function docBlockToMarkdown(doc: DocBlock): string {\n const lines: string[] = [];\n\n lines.push(`# ${doc.title}`);\n lines.push('');\n\n if (doc.summary) {\n lines.push(`> ${doc.summary}`);\n lines.push('');\n }\n\n lines.push('## Metadata');\n lines.push('');\n lines.push(`- **ID:** ${doc.id}`);\n lines.push(`- **Kind:** ${doc.kind ?? 'reference'}`);\n lines.push(`- **Visibility:** ${doc.visibility ?? 'public'}`);\n if (doc.tags?.length) lines.push(`- **Tags:** ${doc.tags.join(', ')}`);\n if (doc.owners?.length) lines.push(`- **Owners:** ${doc.owners.join(', ')}`);\n if (doc.domain) lines.push(`- **Domain:** ${doc.domain}`);\n lines.push('');\n\n lines.push('## Content');\n lines.push('');\n lines.push(doc.body);\n lines.push('');\n\n if (doc.links?.length) {\n lines.push('## Related Links');\n lines.push('');\n for (const link of doc.links) {\n lines.push(`- [${link.label}](${link.href})`);\n }\n lines.push('');\n }\n\n return lines.join('\\n');\n}\n\n/**\n * Export a spec with a specific format.\n * Convenience function that wraps the format-specific functions.\n */\nexport function exportSpec(\n spec: AnyContractSpec,\n options: Partial<SpecExportOptions> = {}\n): SpecExportResult {\n const format = options.format ?? 'full';\n\n let markdown: string;\n switch (format) {\n case 'context':\n markdown = specToContextMarkdown(spec);\n break;\n case 'prompt':\n markdown = specToAgentPrompt(spec);\n break;\n case 'full':\n default:\n markdown = specToFullMarkdown(spec, options);\n break;\n }\n\n return {\n spec,\n markdown,\n format,\n meta: {\n specName: spec.meta.name,\n specVersion: spec.meta.version,\n exportedAt: new Date().toISOString(),\n wordCount: markdown.split(/\\s+/).length,\n },\n };\n}\n\n/**\n * Export a feature with a specific format.\n */\nexport function exportFeature(\n feature: FeatureModuleSpec,\n deps?: {\n specs?: SpecRegistry;\n presentations?: PresentationRegistry;\n },\n options: Partial<FeatureExportOptions> = {}\n): FeatureExportResult {\n const format = options.format ?? 'full';\n const markdown = featureToMarkdown(feature, deps, options);\n\n return {\n feature,\n markdown,\n format,\n includedSpecs:\n feature.operations?.map((o) => `${o.name}.v${o.version}`) ?? [],\n includedEvents: feature.events?.map((e) => `${e.name}.v${e.version}`) ?? [],\n includedPresentations:\n feature.presentations?.map((p) => `${p.name}.v${p.version}`) ?? [],\n };\n}\n"],"mappings":"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"}
|
package/dist/llm/prompts.d.ts
CHANGED
|
@@ -48,4 +48,5 @@ declare function generateFixViolationsPrompt(spec: AnyContractSpec, implementati
|
|
|
48
48
|
suggestion?: string;
|
|
49
49
|
}[]): AgentPrompt;
|
|
50
50
|
//#endregion
|
|
51
|
-
export { AGENT_SYSTEM_PROMPTS, formatPlanForAgent, generateFixViolationsPrompt, generateImplementationPlan, generateImplementationPrompt, generateReviewPrompt, generateTestPrompt, generateVerificationPrompt };
|
|
51
|
+
export { AGENT_SYSTEM_PROMPTS, formatPlanForAgent, generateFixViolationsPrompt, generateImplementationPlan, generateImplementationPrompt, generateReviewPrompt, generateTestPrompt, generateVerificationPrompt };
|
|
52
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","names":[],"sources":["../../src/llm/prompts.ts"],"sourcesContent":[],"mappings":";;;;;;AAoIA;;AAES,cAlHI,oBAkHJ,EAlH0B,MAkH1B,CAlHiC,SAkHjC,EAAA,MAAA,CAAA;;;AAwCT;AACQ,iBAvGQ,4BAAA,CAuGR,IAAA,EAtGA,eAsGA,EAAA,KAAA,EArGC,SAqGD,EAAA,OAGM,CAHN,EAAA;EACC,YAAA,CAAA,EAAA,MAAA;EAEN,UAAA,CAAA,EAAA,MAAA;CAAW,CAAA,EAnGX,WAmGW;AA0Cd;AAkDA;AAgLA;AACQ,iBA3TQ,kBAAA,CA2TR,IAAA,EA1TA,eA0TA,EAAA,KAAA,EAzTC,SAyTD,EAAA,OAEM,CAFN,EAAA;EACC,kBAAA,CAAA,EAAA,MAAA;EACN,aAAA,CAAA,EAAA,QAAA,GAAA,MAAA,GAAA,KAAA;CAAW,CAAA,EAtTX,WAsTW;AAuEd;;;iBA1VgB,oBAAA,OACR,wBACC,wCAEN;;;;iBA0Ca,0BAAA,OACR,8CAEL;;;;iBA+Ca,0BAAA,OACR;;;IAKL;;;;iBA0Ka,kBAAA,OACR,2BACC,YACN;;;;iBAuEa,2BAAA,OACR;;;MAGL"}
|
package/dist/llm/prompts.js
CHANGED
|
@@ -407,4 +407,5 @@ Provide the corrected implementation.`
|
|
|
407
407
|
}
|
|
408
408
|
|
|
409
409
|
//#endregion
|
|
410
|
-
export { AGENT_SYSTEM_PROMPTS, formatPlanForAgent, generateFixViolationsPrompt, generateImplementationPlan, generateImplementationPrompt, generateReviewPrompt, generateTestPrompt, generateVerificationPrompt };
|
|
410
|
+
export { AGENT_SYSTEM_PROMPTS, formatPlanForAgent, generateFixViolationsPrompt, generateImplementationPlan, generateImplementationPrompt, generateReviewPrompt, generateTestPrompt, generateVerificationPrompt };
|
|
411
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","names":["AGENT_SYSTEM_PROMPTS: Record<AgentType, string>","taskPrompt: string","fileStructure: ImplementationPlan['fileStructure']","steps: ImplementationPlan['steps']","constraints: ImplementationPlan['constraints']"],"sources":["../../src/llm/prompts.ts"],"sourcesContent":["/**\n * LLM Prompt Templates\n *\n * Pre-built prompt templates for different agent types and tasks.\n * These prompts are designed to guide AI coding agents in implementing,\n * testing, and verifying ContractSpec-based code.\n */\n\nimport type { AnyContractSpec } from '../spec';\nimport type { FeatureModuleSpec } from '../features';\nimport type { AgentType, AgentPrompt, ImplementationPlan } from './types';\nimport {\n specToFullMarkdown,\n specToAgentPrompt,\n featureToMarkdown,\n} from './exporters';\n\n/**\n * System prompts for different agent types.\n */\nexport const AGENT_SYSTEM_PROMPTS: Record<AgentType, string> = {\n 'claude-code': `You are an expert TypeScript developer working with ContractSpec, a spec-first development framework.\n\nYour code follows these principles:\n- Type-safe with comprehensive TypeScript types (no \\`any\\`)\n- Well-documented with JSDoc comments\n- Production-ready with proper error handling\n- Following SOLID principles and clean code practices\n- Modular and testable\n\nWhen implementing specs:\n1. Validate input against the schema before processing\n2. Handle all error cases defined in the spec\n3. Emit events as specified in sideEffects\n4. Respect policy constraints (auth, rate limits, PII handling)\n5. Follow the acceptance scenarios as your implementation guide\n\nGenerate clean, idiomatic TypeScript that exactly matches the specification.`,\n\n 'cursor-cli': `You are implementing features for a ContractSpec-driven codebase.\n\nContractSpec is a spec-first framework where specifications define:\n- Operations (commands and queries) with typed I/O\n- Events that operations emit\n- Presentations for UI components\n- Features that group related specs\n\nWhen working with specs:\n- Read the spec carefully before implementing\n- Match the input/output types exactly\n- Implement all error cases\n- Follow the acceptance scenarios\n- Respect policy constraints\n\nUse the project's existing patterns and conventions.`,\n\n 'generic-mcp': `You are a code generation assistant working with ContractSpec specifications.\n\nContractSpec specs define:\n- meta: name, version, kind (command/query), description, goal, context\n- io: input schema, output schema, error definitions\n- policy: auth level, rate limits, feature flags, PII handling\n- sideEffects: events to emit, analytics, audit\n- acceptance: scenarios and examples\n\nYour task is to generate or modify code that complies with the given specification.\nFollow the spec exactly and handle all defined cases.`,\n};\n\n/**\n * Generate an implementation prompt for a specific agent type.\n */\nexport function generateImplementationPrompt(\n spec: AnyContractSpec,\n agent: AgentType,\n options?: {\n existingCode?: string;\n targetPath?: string;\n }\n): AgentPrompt {\n const systemPrompt = AGENT_SYSTEM_PROMPTS[agent];\n const specMarkdown = specToFullMarkdown(spec);\n\n let taskPrompt: string;\n\n if (agent === 'claude-code') {\n taskPrompt = `## Implementation Task\n\nImplement the following ContractSpec operation:\n\n${specMarkdown}\n\n${options?.targetPath ? `**Target file:** \\`${options.targetPath}\\`\\n` : ''}\n${options?.existingCode ? `**Existing code to modify:**\\n\\`\\`\\`typescript\\n${options.existingCode}\\n\\`\\`\\`\\n` : ''}\n\nGenerate a complete, production-ready TypeScript implementation that:\n1. Exports a handler function matching the spec signature\n2. Validates input using the schema\n3. Handles all defined error cases\n4. Emits events as specified\n5. Includes JSDoc documentation\n\nProvide ONLY the TypeScript code.`;\n } else if (agent === 'cursor-cli') {\n taskPrompt = `Implement this ContractSpec operation.\n\n${specMarkdown}\n\n${options?.targetPath ? `Target: ${options.targetPath}\\n` : ''}\n\nRequirements:\n- TypeScript with strict types\n- Handle all error cases\n- Emit specified events\n- Follow acceptance scenarios`;\n } else {\n taskPrompt = specToAgentPrompt(spec, {\n taskType: 'implement',\n existingCode: options?.existingCode,\n });\n }\n\n return {\n agent,\n systemPrompt,\n taskPrompt,\n };\n}\n\n/**\n * Generate a test generation prompt.\n */\nexport function generateTestPrompt(\n spec: AnyContractSpec,\n agent: AgentType,\n options?: {\n implementationCode?: string;\n testFramework?: 'vitest' | 'jest' | 'bun';\n }\n): AgentPrompt {\n const framework = options?.testFramework ?? 'vitest';\n const specMarkdown = specToFullMarkdown(spec);\n\n const taskPrompt = `## Test Generation Task\n\nGenerate comprehensive tests for this specification:\n\n${specMarkdown}\n\n${options?.implementationCode ? `**Implementation:**\\n\\`\\`\\`typescript\\n${options.implementationCode}\\n\\`\\`\\`\\n` : ''}\n\n**Test Framework:** ${framework}\n\nGenerate tests that:\n1. Cover all acceptance scenarios from the spec\n2. Test all defined error cases\n3. Verify input validation\n4. Check event emissions\n5. Test edge cases\n\nUse descriptive test names: \"should [behavior] when [condition]\"\n\nProvide a complete test file.`;\n\n return {\n agent,\n systemPrompt: AGENT_SYSTEM_PROMPTS[agent],\n taskPrompt,\n };\n}\n\n/**\n * Generate a code review prompt.\n */\nexport function generateReviewPrompt(\n spec: AnyContractSpec,\n agent: AgentType,\n implementationCode: string\n): AgentPrompt {\n const specMarkdown = specToFullMarkdown(spec);\n\n const taskPrompt = `## Code Review Task\n\nReview this implementation against its specification:\n\n**Specification:**\n${specMarkdown}\n\n**Implementation:**\n\\`\\`\\`typescript\n${implementationCode}\n\\`\\`\\`\n\nProvide a structured review:\n\n### Compliance Check\n- [ ] Input types match spec\n- [ ] Output types match spec\n- [ ] All error cases handled\n- [ ] Events emitted correctly\n- [ ] Policy constraints respected\n\n### Issues Found\nList any issues with severity (error/warning/info)\n\n### Suggestions\nList improvements and recommendations\n\nBe thorough and precise. Focus on spec compliance first, then code quality.`;\n\n return {\n agent,\n systemPrompt: AGENT_SYSTEM_PROMPTS[agent],\n taskPrompt,\n };\n}\n\n/**\n * Generate a verification prompt for AI-powered semantic review.\n */\nexport function generateVerificationPrompt(\n spec: AnyContractSpec,\n implementationCode: string\n): AgentPrompt {\n const specMarkdown = specToFullMarkdown(spec);\n\n const taskPrompt = `## Semantic Verification Task\n\nVerify that this implementation fulfills the specification's intent.\n\n**Specification:**\n${specMarkdown}\n\n**Implementation:**\n\\`\\`\\`typescript\n${implementationCode}\n\\`\\`\\`\n\nAnalyze and respond with JSON:\n\n\\`\\`\\`json\n{\n \"passed\": true/false,\n \"score\": 0-100,\n \"compliance\": {\n \"inputTypes\": { \"match\": true/false, \"issues\": [] },\n \"outputTypes\": { \"match\": true/false, \"issues\": [] },\n \"errorHandling\": { \"coverage\": \"full/partial/none\", \"missing\": [] },\n \"eventEmission\": { \"correct\": true/false, \"issues\": [] },\n \"policyCompliance\": { \"auth\": true/false, \"rateLimit\": true/false, \"pii\": true/false }\n },\n \"scenarios\": [\n { \"name\": \"scenario name\", \"covered\": true/false, \"notes\": \"\" }\n ],\n \"issues\": [\n { \"severity\": \"error/warning/info\", \"category\": \"type/export/import/scenario/error_handling/semantic\", \"message\": \"\", \"suggestion\": \"\" }\n ],\n \"summary\": \"Brief summary of verification results\"\n}\n\\`\\`\\``;\n\n return {\n agent: 'generic-mcp',\n taskPrompt,\n };\n}\n\n/**\n * Generate a feature implementation plan.\n */\nexport function generateImplementationPlan(\n spec: AnyContractSpec,\n options?: {\n projectRoot?: string;\n existingFiles?: string[];\n }\n): ImplementationPlan {\n const m = spec.meta;\n\n // Suggest file structure based on spec type\n const fileStructure: ImplementationPlan['fileStructure'] = [];\n const basePath = options?.projectRoot ?? 'src';\n const specPath = m.name.replace(/\\./g, '/');\n\n if (m.kind === 'command' || m.kind === 'query') {\n fileStructure.push(\n {\n path: `${basePath}/${specPath}/handler.ts`,\n purpose: 'Main handler implementation',\n type: 'create',\n },\n {\n path: `${basePath}/${specPath}/types.ts`,\n purpose: 'Type definitions',\n type: 'create',\n },\n {\n path: `${basePath}/${specPath}/handler.test.ts`,\n purpose: 'Handler tests',\n type: 'create',\n }\n );\n }\n\n // Generate implementation steps from acceptance scenarios\n const steps: ImplementationPlan['steps'] = [];\n let order = 1;\n\n // Step 1: Types\n steps.push({\n order: order++,\n title: 'Define Types',\n description:\n 'Create TypeScript types for input, output, and internal data structures',\n acceptanceCriteria: [\n 'Input type matches spec schema exactly',\n 'Output type matches spec schema exactly',\n 'Error types defined for all error cases',\n ],\n });\n\n // Step 2: Validation\n steps.push({\n order: order++,\n title: 'Implement Input Validation',\n description: 'Add validation logic for the input payload',\n acceptanceCriteria: [\n 'All required fields are validated',\n 'Type constraints are enforced',\n 'Validation errors return appropriate error codes',\n ],\n });\n\n // Step 3: Core logic\n steps.push({\n order: order++,\n title: 'Implement Core Logic',\n description: 'Implement the main business logic of the operation',\n acceptanceCriteria: spec.acceptance?.scenarios?.map((s) => s.name) ?? [\n 'Operation completes successfully for valid input',\n ],\n });\n\n // Step 4: Error handling\n if (spec.io.errors && Object.keys(spec.io.errors).length > 0) {\n steps.push({\n order: order++,\n title: 'Implement Error Handling',\n description: 'Handle all defined error cases',\n acceptanceCriteria: Object.entries(spec.io.errors).map(\n ([code, err]) => `Handle ${code}: ${err.when}`\n ),\n });\n }\n\n // Step 5: Events\n if (spec.sideEffects?.emits?.length) {\n steps.push({\n order: order++,\n title: 'Implement Event Emission',\n description: 'Emit events as specified',\n acceptanceCriteria: spec.sideEffects.emits.map((e) => {\n if ('ref' in e) {\n return `Emit ${e.ref.name}.v${e.ref.version} when ${e.when}`;\n }\n return `Emit ${e.name}.v${e.version} when ${e.when}`;\n }),\n });\n }\n\n // Step 6: Tests\n steps.push({\n order: order++,\n title: 'Write Tests',\n description: 'Create comprehensive test suite',\n acceptanceCriteria: [\n 'All acceptance scenarios covered',\n 'All error cases tested',\n 'Edge cases handled',\n 'Events verified',\n ],\n });\n\n // Extract constraints\n const constraints: ImplementationPlan['constraints'] = {\n policy: [],\n security: [],\n pii: [],\n };\n\n constraints.policy.push(`Auth level: ${spec.policy.auth}`);\n if (spec.policy.idempotent !== undefined) {\n constraints.policy.push(`Idempotent: ${spec.policy.idempotent}`);\n }\n if (spec.policy.rateLimit) {\n constraints.policy.push(\n `Rate limit: ${spec.policy.rateLimit.rpm} rpm per ${spec.policy.rateLimit.key}`\n );\n }\n if (spec.policy.flags?.length) {\n constraints.policy.push(\n `Feature flags required: ${spec.policy.flags.join(', ')}`\n );\n }\n if (spec.policy.escalate) {\n constraints.security.push(`Escalation required: ${spec.policy.escalate}`);\n }\n if (spec.policy.pii?.length) {\n constraints.pii = spec.policy.pii;\n }\n\n // Verification checklist\n const verificationChecklist = [\n 'Input validation works for all cases',\n 'Output matches expected schema',\n 'All error cases return correct codes',\n 'Events are emitted with correct payloads',\n 'Auth requirements are enforced',\n 'Rate limiting is applied (if applicable)',\n 'PII fields are handled correctly',\n 'All acceptance scenarios pass',\n 'Tests provide adequate coverage',\n ];\n\n return {\n target: {\n type: 'spec',\n name: m.name,\n version: m.version,\n },\n context: {\n goal: m.goal,\n description: m.description,\n background: m.context,\n },\n specMarkdown: specToFullMarkdown(spec),\n fileStructure,\n steps,\n constraints,\n verificationChecklist,\n };\n}\n\n/**\n * Format an implementation plan for a specific agent.\n */\nexport function formatPlanForAgent(\n plan: ImplementationPlan,\n agent: AgentType\n): AgentPrompt {\n let taskPrompt: string;\n\n if (agent === 'claude-code') {\n taskPrompt = `## Implementation Plan: ${plan.target.name}.v${plan.target.version}\n\n### Context\n**Goal:** ${plan.context.goal}\n\n**Background:** ${plan.context.background}\n\n### Specification\n${plan.specMarkdown}\n\n### File Structure\n${plan.fileStructure.map((f) => `- \\`${f.path}\\` (${f.type}): ${f.purpose}`).join('\\n')}\n\n### Implementation Steps\n${plan.steps\n .map(\n (s) => `\n#### Step ${s.order}: ${s.title}\n${s.description}\n\n**Acceptance Criteria:**\n${s.acceptanceCriteria.map((c) => `- [ ] ${c}`).join('\\n')}\n`\n )\n .join('\\n')}\n\n### Constraints\n${plan.constraints.policy.length ? `**Policy:**\\n${plan.constraints.policy.map((p) => `- ${p}`).join('\\n')}\\n` : ''}\n${plan.constraints.security.length ? `**Security:**\\n${plan.constraints.security.map((s) => `- ${s}`).join('\\n')}\\n` : ''}\n${plan.constraints.pii.length ? `**PII Handling:**\\n${plan.constraints.pii.map((p) => `- ${p}`).join('\\n')}\\n` : ''}\n\n### Verification Checklist\n${plan.verificationChecklist.map((c) => `- [ ] ${c}`).join('\\n')}\n\nImplement this plan step by step.`;\n } else if (agent === 'cursor-cli') {\n taskPrompt = `# ${plan.target.name}.v${plan.target.version}\n\n${plan.context.goal}\n\n## Spec\n${plan.specMarkdown}\n\n## Files to create\n${plan.fileStructure.map((f) => `${f.type}: ${f.path}`).join('\\n')}\n\n## Steps\n${plan.steps.map((s) => `${s.order}. ${s.title}`).join('\\n')}`;\n } else {\n taskPrompt = `Implementation plan for ${plan.target.name}.v${plan.target.version}\n\n${plan.specMarkdown}\n\nSteps:\n${plan.steps.map((s) => `${s.order}. ${s.title}: ${s.description}`).join('\\n')}`;\n }\n\n return {\n agent,\n systemPrompt: AGENT_SYSTEM_PROMPTS[agent],\n taskPrompt,\n };\n}\n\n/**\n * Generate a fix violations prompt after verification.\n */\nexport function generateFixViolationsPrompt(\n spec: AnyContractSpec,\n implementationCode: string,\n violations: { message: string; suggestion?: string }[]\n): AgentPrompt {\n const specMarkdown = specToFullMarkdown(spec);\n\n const violationsList = violations\n .map(\n (v, i) =>\n `${i + 1}. ${v.message}${v.suggestion ? `\\n Suggestion: ${v.suggestion}` : ''}`\n )\n .join('\\n');\n\n const taskPrompt = `## Fix Specification Violations\n\nThe following implementation has violations against its specification:\n\n**Specification:**\n${specMarkdown}\n\n**Current Implementation:**\n\\`\\`\\`typescript\n${implementationCode}\n\\`\\`\\`\n\n**Violations Found:**\n${violationsList}\n\nFix ALL violations while maintaining existing functionality.\nProvide the corrected implementation.`;\n\n return {\n agent: 'generic-mcp',\n taskPrompt,\n };\n}\n"],"mappings":"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"}
|
package/dist/llm/types.d.ts
CHANGED
|
@@ -210,4 +210,5 @@ type ExportableItem = {
|
|
|
210
210
|
item: DocBlock;
|
|
211
211
|
};
|
|
212
212
|
//#endregion
|
|
213
|
-
export { AgentPrompt, AgentType, BatchExportOptions, ExportableItem, FeatureExportOptions, FeatureExportResult, FeatureLookup, ImplementationPlan, LLMExportFormat, SpecExportOptions, SpecExportResult, SpecLookup, VerificationIssue, VerificationReport, VerificationTier };
|
|
213
|
+
export { AgentPrompt, AgentType, BatchExportOptions, ExportableItem, FeatureExportOptions, FeatureExportResult, FeatureLookup, ImplementationPlan, LLMExportFormat, SpecExportOptions, SpecExportResult, SpecLookup, VerificationIssue, VerificationReport, VerificationTier };
|
|
214
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../src/llm/types.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAmBA;AAGiB,KATL,eAAA,GASsB,SAExB,GAAA,MAAA,GAAA,QAAe;AAczB;AAUiB,KAhCL,SAAA,GAgCqB,aAEzB,GAAA,YAAA,GAIE,aAAA;AAWV;AAgBiB,KA9DL,gBAAA,GA8DuB,WAAA,GAAA,UAAA,GAAA,WAAA;AAuCnC;AAyBiB,UA3HA,iBAAA,CA2HkB;EA4BlB;EAgBA,MAAA,EArKP,eAqKiB;EAMV;EAKA,cAAA,CAAA,EAAA,OAAmB;EAUxB;EACc,gBAAA,CAAA,EAAA,OAAA;EACG;EACK,eAAA,CAAA,EAAA,OAAA;EACG;EAAV,aAAA,CAAA,EAAA,OAAA;EACF;EAAQ,kBAAA,CAAA,EAAA,OAAA;;;UAjLhB,oBAAA,SAA6B;;;;;;;;;UAU7B,gBAAA;;QAET;;;;UAIE;;;;;;;;;;UAWO,mBAAA;;WAEN;;;;UAID;;;;;;;;;UAUO,kBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAuCA,iBAAA;;;;;;;;;;;;;;;;;UAyBA,kBAAA;;QAET;;;;;;UAME;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAoBO,WAAA;;SAER;;;;;;;;;;;;;UAcQ,UAAA;;;;;UAMA,aAAA;;;;UAKA,kBAAA,SAA2B;;;;;;;;;KAUhC,cAAA;;QACc;;;QACG;;;QACK;;;QACP,UAAU;;;QACZ"}
|
package/dist/markdown.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","names":[],"sources":["../src/markdown.ts"],"sourcesContent":[],"mappings":";;;;;;;;AASA;;AAE6B,iBAFb,eAAA,CAEa,GAAA,EADtB,YACsB,EAAA,MA2F7B,CA3F6B,EAAA;EAAiC,aAAA,CAAA,EAAjC,oBAAiC;EAAe,QAAA,CAAA,EAAf,eAAe;AA2F7E,CAAA,CAAA,EAAgB,MAAA;;AAEY,iBAFZ,cAAA,CAEY,GAAA,EADrB,YACqB,EAAA,MAAA,EAAA;EAAiC,aAAA,CAAA,EAAjC,oBAAiC;EAAe,QAAA,CAAA,EAAf,eAAe"}
|
package/dist/markdown.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","names":["lines: string[]","parts: string[]"],"sources":["../src/markdown.ts"],"sourcesContent":["import type { SpecRegistry } from './registry';\nimport { isEmitDeclRef } from './spec';\nimport type { PresentationRegistry } from './presentations';\nimport type { FeatureRegistry } from './features';\n\n/**\n * Render simple Markdown docs for each spec.\n * Useful for dev portals and repo docs generation.\n */\nexport function specsToMarkdown(\n reg: SpecRegistry,\n extras?: { presentations?: PresentationRegistry; features?: FeatureRegistry }\n): string {\n const lines: string[] = [];\n\n for (const spec of reg.listSpecs()) {\n const m = spec.meta;\n lines.push(`# ${m.name}.v${m.version}`);\n lines.push('');\n lines.push(\n `**Kind:** ${m.kind} | **Stability:** ${m.stability} | **Owners:** ${m.owners.join(', ')}`\n );\n lines.push('');\n lines.push(`**Description:** ${m.description}`);\n lines.push('');\n lines.push(`## Goal`);\n lines.push(m.goal);\n lines.push('');\n lines.push(`## Context`);\n lines.push(m.context);\n lines.push('');\n\n lines.push(`## Policy`);\n lines.push(`- Auth: ${spec.policy.auth}`);\n lines.push(`- Idempotent: ${!!spec.policy.idempotent}`);\n if (spec.policy.rateLimit)\n lines.push(\n `- Rate Limit: ${spec.policy.rateLimit.rpm}/min by ${spec.policy.rateLimit.key}`\n );\n if (spec.policy.flags?.length)\n lines.push(`- Flags: ${spec.policy.flags.join(', ')}`);\n if (spec.policy.pii?.length)\n lines.push(`- PII: ${spec.policy.pii.join(', ')}`);\n lines.push('');\n\n if (spec.sideEffects?.emits?.length) {\n lines.push(`## Emits Events`);\n for (const e of spec.sideEffects.emits) {\n if (isEmitDeclRef(e)) {\n lines.push(`- \\`${e.ref.name}.v${e.ref.version}\\` — ${e.when}`);\n } else {\n lines.push(`- \\`${e.name}.v${e.version}\\` — ${e.when}`);\n }\n }\n lines.push('');\n }\n\n if (spec.io.errors && Object.keys(spec.io.errors).length) {\n lines.push(`## Errors`);\n for (const [code, err] of Object.entries(spec.io.errors)) {\n lines.push(\n `- \\`${code}\\` (${err.http ?? 400}) — ${err.description} (when: ${err.when})`\n );\n }\n lines.push('');\n }\n\n if (spec.acceptance?.scenarios?.length) {\n lines.push(`## Acceptance Scenarios`);\n for (const s of spec.acceptance.scenarios) {\n lines.push(`### ${s.name}`);\n lines.push(`- **Given:** ${s.given.join('; ')}`);\n lines.push(`- **When:** ${s.when.join('; ')}`);\n lines.push(`- **Then:** ${s.then.join('; ')}`);\n lines.push('');\n }\n }\n\n if (spec.acceptance?.examples?.length) {\n lines.push(`## Examples`);\n for (const ex of spec.acceptance.examples) {\n lines.push(`- **${ex.name}**`);\n lines.push(' - Input:');\n lines.push(' ```json');\n lines.push(JSON.stringify(ex.input, null, 2));\n lines.push(' ```');\n lines.push(' - Output:');\n lines.push(' ```json');\n lines.push(JSON.stringify(ex.output, null, 2));\n lines.push(' ```');\n lines.push('');\n }\n }\n\n lines.push('---');\n lines.push('');\n }\n\n return lines.join('\\n');\n}\n\n/** Render presentations and features as additional sections. */\nexport function docsToMarkdown(\n reg: SpecRegistry,\n extras: { presentations?: PresentationRegistry; features?: FeatureRegistry }\n): string {\n const parts: string[] = [];\n parts.push(specsToMarkdown(reg, extras));\n\n if (extras.presentations) {\n parts.push('# Presentations');\n parts.push('');\n for (const p of extras.presentations.list()) {\n parts.push(`## ${p.meta.name}.v${p.meta.version}`);\n parts.push('');\n parts.push(`- Kind: ${(p.content as any).kind}`);\n if ('framework' in p.content)\n parts.push(`- Framework: ${p.content.framework}`);\n if ('componentKey' in p.content)\n parts.push(`- Component Key: ${(p.content as any).componentKey}`);\n if ('mimeType' in p.content)\n parts.push(`- MIME Type: ${(p.content as any).mimeType}`);\n parts.push('');\n }\n parts.push('');\n }\n\n if (extras.features) {\n parts.push('# Features');\n parts.push('');\n for (const f of extras.features.list()) {\n parts.push(`## ${f.meta.title} (${f.meta.key})`);\n if (f.meta.description) parts.push(f.meta.description);\n parts.push('');\n if (f.operations?.length) {\n parts.push('- Operations:');\n for (const o of f.operations) parts.push(` - ${o.name}.v${o.version}`);\n }\n if (f.events?.length) {\n parts.push('- Events:');\n for (const e of f.events) parts.push(` - ${e.name}.v${e.version}`);\n }\n if (f.presentations?.length) {\n parts.push('- Presentations:');\n for (const p of f.presentations)\n parts.push(` - ${p.name}.v${p.version}`);\n }\n parts.push('');\n }\n }\n\n return parts.join('\\n');\n}\n"],"mappings":"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"}
|
package/dist/migrations.d.ts
CHANGED
|
@@ -49,4 +49,5 @@ declare class MigrationRegistry {
|
|
|
49
49
|
get(name: string, version?: number): MigrationSpec | undefined;
|
|
50
50
|
}
|
|
51
51
|
//#endregion
|
|
52
|
-
export { DataMigrationStep, MigrationCheck, MigrationMeta, MigrationPlan, MigrationRegistry, MigrationSpec, MigrationStep, MigrationStepBase, MigrationStepKind, SchemaMigrationStep, ValidationMigrationStep };
|
|
52
|
+
export { DataMigrationStep, MigrationCheck, MigrationMeta, MigrationPlan, MigrationRegistry, MigrationSpec, MigrationStep, MigrationStepBase, MigrationStepKind, SchemaMigrationStep, ValidationMigrationStep };
|
|
53
|
+
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","names":[],"sources":["../src/migrations.ts"],"sourcesContent":[],"mappings":";;;KAEY,iBAAA;UAEK,cAAA;EAFL,WAAA,EAAA,MAAA;EAEK,UAAA,EAAA,MAAc;AAK/B;AACQ,UADS,iBAAA,CACT;EAIM,IAAA,EAJN,iBAIM;EACC,WAAA,CAAA,EAAA,MAAA;EAAc,SAAA,CAAA,EAAA,MAAA;EAGZ,OAAA,CAAA,EAAA,MAAA;EAKA,SAAA,CAAA,EATH,cASqB,EAAA;EAKlB,UAAA,CAAA,EAbF,cAa0B,EAAA;AAKzC;AACI,UAhBa,mBAAA,SAA4B,iBAgBzC,CAAA;EACA,IAAA,EAAA,QAAA;EACA,GAAA,EAAA,MAAA;;AAEa,UAfA,iBAAA,SAA0B,iBAeS,CAAA;EAOnC,IAAA,EAAA,MAAA;EAKA,MAAA,EAAA,MAAA;AAQjB;AAGiB,UAjCA,uBAAA,SAAgC,iBAiChC,CAAA;EAOP,IAAA,EAAA,YAAA;EAS6B,SAAA,EAAA,MAAA;;KA5C3B,aAAA,GACR,sBACA,oBACA;UAEa,aAAA,SAAsB;;;;;;UAOtB,aAAA;MACX;SACG;;UAGQ,aAAA;QACT;QACA;;;cAMK,iBAAA;;iBAGI;UAOP;uCAS6B"}
|
package/dist/migrations.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.js","names":["candidate: MigrationSpec | undefined"],"sources":["../src/migrations.ts"],"sourcesContent":["import type { OwnerShipMeta } from './ownership';\n\nexport type MigrationStepKind = 'schema' | 'data' | 'validation';\n\nexport interface MigrationCheck {\n description: string;\n expression: string;\n}\n\nexport interface MigrationStepBase {\n kind: MigrationStepKind;\n description?: string;\n timeoutMs?: number;\n retries?: number;\n preChecks?: MigrationCheck[];\n postChecks?: MigrationCheck[];\n}\n\nexport interface SchemaMigrationStep extends MigrationStepBase {\n kind: 'schema';\n sql: string;\n}\n\nexport interface DataMigrationStep extends MigrationStepBase {\n kind: 'data';\n script: string;\n}\n\nexport interface ValidationMigrationStep extends MigrationStepBase {\n kind: 'validation';\n assertion: string;\n}\n\nexport type MigrationStep =\n | SchemaMigrationStep\n | DataMigrationStep\n | ValidationMigrationStep;\n\nexport interface MigrationMeta extends OwnerShipMeta {\n /** Fully qualified migration name (e.g., \"sigil.db.2025_01_add_users\"). */\n name: string;\n /** Increment when the migration changes. */\n version: number;\n}\n\nexport interface MigrationPlan {\n up: MigrationStep[];\n down?: MigrationStep[];\n}\n\nexport interface MigrationSpec {\n meta: MigrationMeta;\n plan: MigrationPlan;\n dependencies?: string[];\n}\n\nconst migrationKey = (name: string, version: number) => `${name}.v${version}`;\n\nexport class MigrationRegistry {\n private readonly items = new Map<string, MigrationSpec>();\n\n register(spec: MigrationSpec): this {\n const key = migrationKey(spec.meta.name, spec.meta.version);\n if (this.items.has(key)) throw new Error(`Duplicate migration ${key}`);\n this.items.set(key, spec);\n return this;\n }\n\n list(): MigrationSpec[] {\n return [...this.items.values()].sort((a, b) =>\n compareKey(\n migrationKey(a.meta.name, a.meta.version),\n migrationKey(b.meta.name, b.meta.version)\n )\n );\n }\n\n get(name: string, version?: number): MigrationSpec | undefined {\n if (version != null) return this.items.get(migrationKey(name, version));\n let candidate: MigrationSpec | undefined;\n let max = -Infinity;\n for (const spec of this.items.values()) {\n if (spec.meta.name !== name) continue;\n if (spec.meta.version > max) {\n max = spec.meta.version;\n candidate = spec;\n }\n }\n return candidate;\n }\n}\n\nfunction compareKey(a: string, b: string) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n"],"mappings":";AAwDA,MAAM,gBAAgB,MAAc,YAAoB,GAAG,KAAK,IAAI;AAEpE,IAAa,oBAAb,MAA+B;CAC7B,AAAiB,wBAAQ,IAAI,KAA4B;CAEzD,SAAS,MAA2B;EAClC,MAAM,MAAM,aAAa,KAAK,KAAK,MAAM,KAAK,KAAK,QAAQ;AAC3D,MAAI,KAAK,MAAM,IAAI,IAAI,CAAE,OAAM,IAAI,MAAM,uBAAuB,MAAM;AACtE,OAAK,MAAM,IAAI,KAAK,KAAK;AACzB,SAAO;;CAGT,OAAwB;AACtB,SAAO,CAAC,GAAG,KAAK,MAAM,QAAQ,CAAC,CAAC,MAAM,GAAG,MACvC,WACE,aAAa,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EACzC,aAAa,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,CAC1C,CACF;;CAGH,IAAI,MAAc,SAA6C;AAC7D,MAAI,WAAW,KAAM,QAAO,KAAK,MAAM,IAAI,aAAa,MAAM,QAAQ,CAAC;EACvE,IAAIA;EACJ,IAAI,MAAM;AACV,OAAK,MAAM,QAAQ,KAAK,MAAM,QAAQ,EAAE;AACtC,OAAI,KAAK,KAAK,SAAS,KAAM;AAC7B,OAAI,KAAK,KAAK,UAAU,KAAK;AAC3B,UAAM,KAAK,KAAK;AAChB,gBAAY;;;AAGhB,SAAO;;;AAIX,SAAS,WAAW,GAAW,GAAW;AACxC,QAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI"}
|
|
@@ -1,137 +1,138 @@
|
|
|
1
1
|
import { ContractSpec } from "./spec.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as _lssm_lib_schema7 from "@lssm/lib.schema";
|
|
3
3
|
import { SchemaModel } from "@lssm/lib.schema";
|
|
4
4
|
|
|
5
5
|
//#region src/onboarding-base.d.ts
|
|
6
6
|
/** Save/update onboarding draft (auto-save during flow) */
|
|
7
7
|
declare const SaveOnboardingDraftInput: SchemaModel<{
|
|
8
8
|
data: {
|
|
9
|
-
type:
|
|
9
|
+
type: _lssm_lib_schema7.FieldType<unknown, unknown>;
|
|
10
10
|
isOptional: false;
|
|
11
11
|
};
|
|
12
12
|
}>;
|
|
13
13
|
declare const SaveOnboardingDraftOutput: SchemaModel<{
|
|
14
14
|
id: {
|
|
15
|
-
type:
|
|
15
|
+
type: _lssm_lib_schema7.FieldType<string, string>;
|
|
16
16
|
isOptional: false;
|
|
17
17
|
};
|
|
18
18
|
organizationId: {
|
|
19
|
-
type:
|
|
19
|
+
type: _lssm_lib_schema7.FieldType<string, string>;
|
|
20
20
|
isOptional: false;
|
|
21
21
|
};
|
|
22
22
|
}>;
|
|
23
23
|
declare const SaveOnboardingDraftBaseSpec: ContractSpec<SchemaModel<{
|
|
24
24
|
data: {
|
|
25
|
-
type:
|
|
25
|
+
type: _lssm_lib_schema7.FieldType<unknown, unknown>;
|
|
26
26
|
isOptional: false;
|
|
27
27
|
};
|
|
28
28
|
}>, SchemaModel<{
|
|
29
29
|
id: {
|
|
30
|
-
type:
|
|
30
|
+
type: _lssm_lib_schema7.FieldType<string, string>;
|
|
31
31
|
isOptional: false;
|
|
32
32
|
};
|
|
33
33
|
organizationId: {
|
|
34
|
-
type:
|
|
34
|
+
type: _lssm_lib_schema7.FieldType<string, string>;
|
|
35
35
|
isOptional: false;
|
|
36
36
|
};
|
|
37
37
|
}>, undefined>;
|
|
38
38
|
/** Get current onboarding draft (on mount/restore) */
|
|
39
39
|
declare const GetOnboardingDraftOutput: SchemaModel<{
|
|
40
40
|
id: {
|
|
41
|
-
type:
|
|
41
|
+
type: _lssm_lib_schema7.FieldType<string, string>;
|
|
42
42
|
isOptional: true;
|
|
43
43
|
};
|
|
44
44
|
organizationId: {
|
|
45
|
-
type:
|
|
45
|
+
type: _lssm_lib_schema7.FieldType<string, string>;
|
|
46
46
|
isOptional: true;
|
|
47
47
|
};
|
|
48
48
|
data: {
|
|
49
|
-
type:
|
|
49
|
+
type: _lssm_lib_schema7.FieldType<unknown, unknown>;
|
|
50
50
|
isOptional: true;
|
|
51
51
|
};
|
|
52
52
|
createdAt: {
|
|
53
|
-
type:
|
|
53
|
+
type: _lssm_lib_schema7.FieldType<Date, string>;
|
|
54
54
|
isOptional: true;
|
|
55
55
|
};
|
|
56
56
|
updatedAt: {
|
|
57
|
-
type:
|
|
57
|
+
type: _lssm_lib_schema7.FieldType<Date, string>;
|
|
58
58
|
isOptional: true;
|
|
59
59
|
};
|
|
60
60
|
}>;
|
|
61
|
-
declare const GetOnboardingDraftBaseSpec: ContractSpec<
|
|
61
|
+
declare const GetOnboardingDraftBaseSpec: ContractSpec<_lssm_lib_schema7.AnySchemaModel, SchemaModel<{
|
|
62
62
|
id: {
|
|
63
|
-
type:
|
|
63
|
+
type: _lssm_lib_schema7.FieldType<string, string>;
|
|
64
64
|
isOptional: true;
|
|
65
65
|
};
|
|
66
66
|
organizationId: {
|
|
67
|
-
type:
|
|
67
|
+
type: _lssm_lib_schema7.FieldType<string, string>;
|
|
68
68
|
isOptional: true;
|
|
69
69
|
};
|
|
70
70
|
data: {
|
|
71
|
-
type:
|
|
71
|
+
type: _lssm_lib_schema7.FieldType<unknown, unknown>;
|
|
72
72
|
isOptional: true;
|
|
73
73
|
};
|
|
74
74
|
createdAt: {
|
|
75
|
-
type:
|
|
75
|
+
type: _lssm_lib_schema7.FieldType<Date, string>;
|
|
76
76
|
isOptional: true;
|
|
77
77
|
};
|
|
78
78
|
updatedAt: {
|
|
79
|
-
type:
|
|
79
|
+
type: _lssm_lib_schema7.FieldType<Date, string>;
|
|
80
80
|
isOptional: true;
|
|
81
81
|
};
|
|
82
82
|
}>, undefined>;
|
|
83
83
|
/** Delete onboarding draft (cleanup after completion or cancel) */
|
|
84
84
|
declare const DeleteOnboardingDraftOutput: SchemaModel<{
|
|
85
85
|
ok: {
|
|
86
|
-
type:
|
|
86
|
+
type: _lssm_lib_schema7.FieldType<boolean, boolean>;
|
|
87
87
|
isOptional: false;
|
|
88
88
|
};
|
|
89
89
|
}>;
|
|
90
|
-
declare const DeleteOnboardingDraftBaseSpec: ContractSpec<
|
|
90
|
+
declare const DeleteOnboardingDraftBaseSpec: ContractSpec<_lssm_lib_schema7.AnySchemaModel, SchemaModel<{
|
|
91
91
|
ok: {
|
|
92
|
-
type:
|
|
92
|
+
type: _lssm_lib_schema7.FieldType<boolean, boolean>;
|
|
93
93
|
isOptional: false;
|
|
94
94
|
};
|
|
95
95
|
}>, undefined>;
|
|
96
96
|
/** Complete onboarding (final submit, creates entities) */
|
|
97
97
|
declare const CompleteOnboardingBaseInput: SchemaModel<{
|
|
98
98
|
data: {
|
|
99
|
-
type:
|
|
99
|
+
type: _lssm_lib_schema7.FieldType<unknown, unknown>;
|
|
100
100
|
isOptional: false;
|
|
101
101
|
};
|
|
102
102
|
}>;
|
|
103
103
|
declare const CompleteOnboardingBaseOutput: SchemaModel<{
|
|
104
104
|
success: {
|
|
105
|
-
type:
|
|
105
|
+
type: _lssm_lib_schema7.FieldType<boolean, boolean>;
|
|
106
106
|
isOptional: false;
|
|
107
107
|
};
|
|
108
108
|
userId: {
|
|
109
|
-
type:
|
|
109
|
+
type: _lssm_lib_schema7.FieldType<string, string>;
|
|
110
110
|
isOptional: true;
|
|
111
111
|
};
|
|
112
112
|
organizationId: {
|
|
113
|
-
type:
|
|
113
|
+
type: _lssm_lib_schema7.FieldType<string, string>;
|
|
114
114
|
isOptional: true;
|
|
115
115
|
};
|
|
116
116
|
}>;
|
|
117
117
|
declare const CompleteOnboardingBaseSpec: ContractSpec<SchemaModel<{
|
|
118
118
|
data: {
|
|
119
|
-
type:
|
|
119
|
+
type: _lssm_lib_schema7.FieldType<unknown, unknown>;
|
|
120
120
|
isOptional: false;
|
|
121
121
|
};
|
|
122
122
|
}>, SchemaModel<{
|
|
123
123
|
success: {
|
|
124
|
-
type:
|
|
124
|
+
type: _lssm_lib_schema7.FieldType<boolean, boolean>;
|
|
125
125
|
isOptional: false;
|
|
126
126
|
};
|
|
127
127
|
userId: {
|
|
128
|
-
type:
|
|
128
|
+
type: _lssm_lib_schema7.FieldType<string, string>;
|
|
129
129
|
isOptional: true;
|
|
130
130
|
};
|
|
131
131
|
organizationId: {
|
|
132
|
-
type:
|
|
132
|
+
type: _lssm_lib_schema7.FieldType<string, string>;
|
|
133
133
|
isOptional: true;
|
|
134
134
|
};
|
|
135
135
|
}>, undefined>;
|
|
136
136
|
//#endregion
|
|
137
|
-
export { CompleteOnboardingBaseInput, CompleteOnboardingBaseOutput, CompleteOnboardingBaseSpec, DeleteOnboardingDraftBaseSpec, DeleteOnboardingDraftOutput, GetOnboardingDraftBaseSpec, GetOnboardingDraftOutput, SaveOnboardingDraftBaseSpec, SaveOnboardingDraftInput, SaveOnboardingDraftOutput };
|
|
137
|
+
export { CompleteOnboardingBaseInput, CompleteOnboardingBaseOutput, CompleteOnboardingBaseSpec, DeleteOnboardingDraftBaseSpec, DeleteOnboardingDraftOutput, GetOnboardingDraftBaseSpec, GetOnboardingDraftOutput, SaveOnboardingDraftBaseSpec, SaveOnboardingDraftInput, SaveOnboardingDraftOutput };
|
|
138
|
+
//# sourceMappingURL=onboarding-base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding-base.d.ts","names":[],"sources":["../src/onboarding-base.ts"],"sourcesContent":[],"mappings":";;;;;;cASa,0BAAwB;;UAMnC,iBAAA,CAAA;IANW,UAAA,EAAA,KAAA;EAQA,CAAA;CAOX,CAAA;cAPW,2BAAyB;EAAA,EAAA,EAAA;IAAA,IAAA,EAOpC,iBAAA,CAAA,SAPoC,CAAA,MAAA,EAAA,MAAA,CAAA;IASzB,UAAA,EAAA,KAAA;EAwBX,CAAA;EAxBsC,cAAA,EAAA;IAAA,IAAA,6BAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;AAAA,cAA3B,2BAA2B,cAAA,CAAA,WAAA,CAAA;EA2B3B,IAAA,EAAA;IAUX,IAAA,EAbA,iBAAA,CAAA,SAaA,CAAA,OAAA,EAAA,OAAA,CAAA;;;;;UArCsC,iBAAA,CAAA;;EA2BH,CAAA;EAAA,cAAA,EAAA;IAYxB,IAAA,6BAuBX,CAAA,MAAA,EAAA,MAAA,CAAA;IAAA,UAAA,EAvBqC,KAAA;EAAA,CAAA;;;cAZ1B,0BAAwB;;UAUnC,iBAAA,CAAA;;EAEqC,CAAA;EAAA,cAAA,EAAA;IAAA,IAAA,6BAAA,CAAA,MAAA,EAAA,MAAA,CAAA;IA0B1B,UAAA,EAAA,IAAA;EAQA,CAAA;EAuBX,IAAA,EAAA;IAvBwC,IAAA,6BAAA,CAAA,OAAA,EAAA,OAAA,CAAA;IAAA,UAAA,EAAA,IAAA;EAAA,CAAA;EAAA,SAAA,EAAA;IA0B7B,IAAA,6BAMX,KAAA,EAAA,MAAA,CAAA;IAEW,UAAA,EAAA,IAAA;EAQX,CAAA;;;IARuC,UAAA,EAAA,IAAA;EAAA,CAAA;AAUzC,CAAA,CAAA;AAwBE,cAtGW,0BAsGX,EAtGqC,YAsGrC,CA/EA,iBAAA,CAvBqC,cAAA,EAAA,WAsGrC,CAAA;EAxBqC,EAAA,EAAA;IAAA,IAAA,EA9EA,iBAAA,CAAA,SA8EA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;IAAA,UAAA,EAAA,IAAA;;;;;;;;;;;;;;;;cApD1B,6BAA2B;;UAMtC,iBAAA,CAAA;;;;cAEW,+BAA6B,aAuBxC,iBAAA,CAvBwC,cAAA,EAAA;;UAAA,iBAAA,CAAA;;;;;cA0B7B,6BAA2B;;UAMtC,iBAAA,CAAA;;;;cAEW,8BAA4B;;UAQvC,iBAAA,CAAA;;;;;;;;;;;;cAEW,yCAA0B;;UAwBrC,iBAAA,CAAA;;;;;UAxBqC,iBAAA,CAAA"}
|