@lssm/example.versioned-knowledge-base 0.0.0-canary-20251217080011 → 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.
Files changed (172) hide show
  1. package/.turbo/turbo-build$colon$bundle.log +279 -226
  2. package/.turbo/turbo-build.log +280 -37
  3. package/CHANGELOG.md +3 -3
  4. package/LICENSE +21 -0
  5. package/dist/contracts/kb.d.ts +72 -71
  6. package/dist/contracts/kb.d.ts.map +1 -0
  7. package/dist/contracts/kb.js +27 -28
  8. package/dist/contracts/kb.js.map +1 -0
  9. package/dist/docs/versioned-knowledge-base.docblock.js +2 -1
  10. package/dist/docs/versioned-knowledge-base.docblock.js.map +1 -0
  11. package/dist/entities/models.d.ts +38 -37
  12. package/dist/entities/models.d.ts.map +1 -0
  13. package/dist/entities/models.js +35 -36
  14. package/dist/entities/models.js.map +1 -0
  15. package/dist/events.d.ts +2 -1
  16. package/dist/events.d.ts.map +1 -0
  17. package/dist/events.js +20 -20
  18. package/dist/events.js.map +1 -0
  19. package/dist/example.d.ts +2 -1
  20. package/dist/example.d.ts.map +1 -0
  21. package/dist/example.js +2 -1
  22. package/dist/example.js.map +1 -0
  23. package/dist/handlers/memory.handlers.d.ts +2 -1
  24. package/dist/handlers/memory.handlers.d.ts.map +1 -0
  25. package/dist/handlers/memory.handlers.js +2 -1
  26. package/dist/handlers/memory.handlers.js.map +1 -0
  27. package/dist/libs/contracts/dist/capabilities/openbanking.js +2 -1
  28. package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -0
  29. package/dist/libs/contracts/dist/contract-registry/schemas.js +2 -1
  30. package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -0
  31. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
  32. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
  33. package/dist/libs/contracts/dist/docs/index.js +2 -6
  34. package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
  35. package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
  36. package/dist/libs/contracts/dist/docs/presentations.js +2 -1
  37. package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
  38. package/dist/libs/contracts/dist/docs/registry.js +2 -1
  39. package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
  40. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
  41. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
  42. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
  43. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
  44. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
  45. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
  46. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
  47. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
  48. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
  49. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
  50. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
  51. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
  52. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
  53. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
  54. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
  55. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
  56. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
  57. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
  58. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
  59. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
  60. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
  61. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
  62. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
  63. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
  64. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
  65. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
  66. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
  67. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
  68. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
  69. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
  70. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
  71. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
  72. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
  73. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
  74. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
  75. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
  76. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
  77. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
  78. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
  79. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
  80. package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
  81. package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
  82. package/dist/libs/contracts/dist/events.js +2 -1
  83. package/dist/libs/contracts/dist/events.js.map +1 -0
  84. package/dist/libs/contracts/dist/index.js +3 -2
  85. package/dist/libs/contracts/dist/integrations/contracts.js +65 -66
  86. package/dist/libs/contracts/dist/integrations/contracts.js.map +1 -0
  87. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
  88. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
  89. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
  90. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
  91. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
  92. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
  93. package/dist/libs/contracts/dist/integrations/openbanking/models.js +60 -61
  94. package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -0
  95. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +2 -1
  96. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
  97. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +2 -1
  98. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
  99. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +2 -1
  100. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
  101. package/dist/libs/contracts/dist/integrations/providers/gmail.js +2 -1
  102. package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -0
  103. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +2 -1
  104. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
  105. package/dist/libs/contracts/dist/integrations/providers/mistral.js +2 -1
  106. package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -0
  107. package/dist/libs/contracts/dist/integrations/providers/postmark.js +2 -1
  108. package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -0
  109. package/dist/libs/contracts/dist/integrations/providers/powens.js +2 -1
  110. package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -0
  111. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +2 -1
  112. package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -0
  113. package/dist/libs/contracts/dist/integrations/providers/stripe.js +2 -1
  114. package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -0
  115. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +2 -1
  116. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
  117. package/dist/libs/contracts/dist/knowledge/contracts.js +44 -45
  118. package/dist/libs/contracts/dist/knowledge/contracts.js.map +1 -0
  119. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +2 -1
  120. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
  121. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
  122. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
  123. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
  124. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
  125. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +2 -1
  126. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
  127. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +2 -1
  128. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
  129. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
  130. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
  131. package/dist/libs/contracts/dist/llm/exporters.js +2 -1
  132. package/dist/libs/contracts/dist/llm/exporters.js.map +1 -0
  133. package/dist/libs/contracts/dist/onboarding-base.js +22 -23
  134. package/dist/libs/contracts/dist/onboarding-base.js.map +1 -0
  135. package/dist/libs/contracts/dist/ownership.js +4 -2
  136. package/dist/libs/contracts/dist/ownership.js.map +1 -0
  137. package/dist/libs/contracts/dist/presentations.v2.js +2 -1
  138. package/dist/libs/contracts/dist/presentations.v2.js.map +1 -0
  139. package/dist/libs/contracts/dist/regenerator/service.js +2 -1
  140. package/dist/libs/contracts/dist/regenerator/service.js.map +1 -0
  141. package/dist/libs/contracts/dist/schema/dist/index.js +3874 -6
  142. package/dist/libs/contracts/dist/schema/dist/index.js.map +1 -0
  143. package/dist/libs/contracts/dist/spec.js +2 -1
  144. package/dist/libs/contracts/dist/spec.js.map +1 -0
  145. package/dist/libs/schema/dist/index.js +4684 -6
  146. package/dist/libs/schema/dist/index.js.map +1 -0
  147. package/dist/versioned-knowledge-base.feature.d.ts +2 -1
  148. package/dist/versioned-knowledge-base.feature.d.ts.map +1 -0
  149. package/dist/versioned-knowledge-base.feature.js +2 -1
  150. package/dist/versioned-knowledge-base.feature.js.map +1 -0
  151. package/package.json +8 -7
  152. package/tsconfig.tsbuildinfo +1 -1
  153. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  154. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  155. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  156. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  157. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  158. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  159. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  160. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  161. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  162. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -39
  163. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  164. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  165. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  166. package/dist/libs/schema/dist/EnumType.js +0 -2
  167. package/dist/libs/schema/dist/FieldType.js +0 -49
  168. package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
  169. package/dist/libs/schema/dist/SchemaModel.js +0 -39
  170. package/dist/libs/schema/dist/entity/defineEntity.js +0 -1
  171. package/dist/libs/schema/dist/entity/index.js +0 -2
  172. package/dist/libs/schema/dist/entity/types.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overview.docblock.js","names":[],"sources":["../../../../../../../../../libs/contracts/dist/docs/tech/workflows/overview.docblock.js"],"sourcesContent":["import { registerDocBlocks } from \"../../registry.js\";\n\n//#region src/docs/tech/workflows/overview.docblock.ts\nconst tech_workflows_overview_DocBlocks = [{\n\tid: \"docs.tech.workflows.overview\",\n\ttitle: \"WorkflowSpec Overview\",\n\tsummary: \"WorkflowSpec provides a declarative, versioned format for long-running flows that mix automation and human review. Specs stay inside `@lssm/lib.contracts` (`src/workflow/spec.ts`) so the same definition powers runtime execution, documentation, and future generation.\",\n\tkind: \"reference\",\n\tvisibility: \"public\",\n\troute: \"/docs/tech/workflows/overview\",\n\ttags: [\n\t\t\"tech\",\n\t\t\"workflows\",\n\t\t\"overview\"\n\t],\n\tbody: \"# WorkflowSpec Overview\\n\\n## Purpose\\n\\nWorkflowSpec provides a declarative, versioned format for long-running flows that mix automation and human review. Specs stay inside `@lssm/lib.contracts` (`src/workflow/spec.ts`) so the same definition powers runtime execution, documentation, and future generation.\\n\\n## Core Types\\n\\n- `WorkflowMeta`: ownership metadata (`title`, `domain`, `owners`, `tags`, `stability`) plus `name` and `version`.\\n- `WorkflowDefinition`:\\n - `entryStepId?`: optional explicit entry point (defaults to first step).\\n - `steps[]`: ordered list of `Step` descriptors.\\n - `transitions[]`: directed edges between steps with optional expressions.\\n - `sla?`: aggregated timing hints for the overall flow or per-step budgets.\\n - `compensation?`: fallback operations executed when a workflow is rolled back or fails.\\n- `Step`:\\n - `type`: `human`, `automation`, or `decision`.\\n - `action`: references either a `ContractSpec` (`operation`) or `FormSpec` (`form`).\\n - Optional `guard`, `timeoutMs`, and retry policy (`maxAttempts`, `backoff`, `delayMs`, `maxDelayMs?`).\\n - `requiredIntegrations?`: integration slot ids that must be bound before the step may execute.\\n - `requiredCapabilities?`: `CapabilityRef[]` that must be enabled in the resolved app config.\\n- `Transition`: `from` → `to` with optional `condition` string (simple data expressions).\\n\\n## Registry & Validation\\n\\n- `WorkflowRegistry` (`src/workflow/spec.ts`) stores specs by key `<name>.v<version>` and exposes `register`, `list`, and `get`.\\n- `validateWorkflowSpec()` (`src/workflow/validation.ts`) checks:\\n - Duplicate step IDs.\\n - Unknown `from`/`to` transitions.\\n - Empty guards/conditions.\\n - Reachability from the entry step.\\n - Cycles in the graph.\\n - Operation/Form references against provided registries.\\n- `assertWorkflowSpecValid()` wraps validation and throws `WorkflowValidationError` when errors remain.\\n\\n## Runtime\\n\\n- `WorkflowRunner` (`src/workflow/runner.ts`) executes workflows and coordinates steps.\\n - `start(name, version?, initialData?)` returns a `workflowId`.\\n - `executeStep(workflowId, input?)` runs the current step (automation or human).\\n - `getState(workflowId)` retrieves the latest state snapshot.\\n - `cancel(workflowId)` marks the workflow as cancelled.\\n - `preFlightCheck(name, version?, resolvedConfig?)` evaluates integration/capability requirements before the workflow starts.\\n - Throws `WorkflowPreFlightError` if required integration slots are unbound or required capabilities are disabled.\\n- `StateStore` (`src/workflow/state.ts`) abstracts persistence. V1 ships with:\\n - `InMemoryStateStore` (`src/workflow/adapters/memory-store.ts`) for tests/dev.\\n - Placeholder factories for file/database adapters (`adapters/file-adapter.ts`, `adapters/db-adapter.ts`).\\n- Guard evaluation: expression guards run through `evaluateExpression()` (`src/workflow/expression.ts`); custom policy guards can be provided via `guardEvaluator`.\\n- Events: the runner emits `workflow.started`, `workflow.step_completed`, `workflow.step_failed`, and `workflow.cancelled` through the optional `eventEmitter`.\\n- React bindings (`@lssm/lib.presentation-runtime-react`):\\n - `useWorkflow` hook (polls state, exposes `executeStep`, `cancel`, `refresh`).\\n - `WorkflowStepper` progress indicator using design-system Stepper.\\n - `WorkflowStepRenderer` helper to render human/automation/decision steps with sensible fallbacks.\\n\\n## Authoring Checklist\\n\\n1. Reuse existing operations/forms; create new specs when missing.\\n2. Prefer explicit `entryStepId` for clarity (especially with decision branches).\\n3. Give automation steps an `operation` and human steps a `form` (warnings surface otherwise).\\n4. Use short, meaningful step IDs (`submit`, `review`, `finalize`) to simplify analytics.\\n5. Keep guard expressions deterministic; complex policy logic should move to PolicySpec (Phase 2).\\n\\n## Testing\\n\\n- Add unit tests for new workflows via `assertWorkflowSpecValid`.\\n- Use the new Vitest suites (`validation.test.ts`, `expression.test.ts`, `runner.test.ts`) as examples.\\n- CLI support will arrive in Phase 1 PR 3 (`contractspec create --type workflow`).\\n\\n## Tooling\\n\\n- `contractspec create --type workflow` scaffolds a WorkflowSpec with interactive prompts.\\n- `contractspec build <spec.workflow.ts>` generates a runner scaffold (`.runner.ts`) wired to `WorkflowRunner` and the in-memory store.\\n- `contractspec validate` understands `.workflow.ts` files and checks core structure (meta, steps, transitions).\\n\\n## Next Steps (Non-MVP)\\n\\n- Persistence adapters (database/file) for workflow state (Phase 2).\\n- React bindings (`useWorkflow`, `WorkflowStepper`) and presentation-runtime integration (PR 3).\\n- Policy engine integration (`guard.type === 'policy'` validated against PolicySpec).\\n- Telemetry hooks for step execution metrics.\\n\\n\"\n}];\nregisterDocBlocks(tech_workflows_overview_DocBlocks);\n\n//#endregion\nexport { tech_workflows_overview_DocBlocks };\n//# sourceMappingURL=overview.docblock.js.map"],"mappings":";;;AAGA,MAAM,oCAAoC,CAAC;CAC1C,IAAI;CACJ,OAAO;CACP,SAAS;CACT,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EACL;EACA;EACA;EACA;CACD,MAAM;CACN,CAAC;AACF,kBAAkB,kCAAkC"}
@@ -0,0 +1,97 @@
1
+ import { registerDocBlocks } from "./registry.js";
2
+
3
+ //#region ../../libs/contracts/dist/docs/tech-contracts.docs.js
4
+ const techContractsDocs = [{
5
+ id: "docs.tech.contracts.presentations-v2",
6
+ title: "Presentations V2 — Unified Descriptor & Transform Engine",
7
+ summary: "How PresentationDescriptorV2 and TransformEngine keep docs/renderers consistent.",
8
+ visibility: "public",
9
+ route: "/docs/tech/contracts/presentations-v2",
10
+ kind: "reference",
11
+ tags: [
12
+ "presentations",
13
+ "docs",
14
+ "mcp"
15
+ ],
16
+ body: `## Presentations V2 — Unified Descriptor & Transform Engine
17
+
18
+ ### Purpose
19
+
20
+ Unify presentations into one descriptor (\`PresentationDescriptorV2\`) that declares a single source (React component key or BlockNote doc) and a list of output targets (react, markdown, application/json, application/xml). A pluggable \`TransformEngine\` renders any target and applies PII redaction.
21
+
22
+ ### Types
23
+
24
+ \`\`\`ts
25
+ type PresentationTarget =
26
+ | 'react'
27
+ | 'markdown'
28
+ | 'application/json'
29
+ | 'application/xml';
30
+
31
+ type PresentationSource =
32
+ | {
33
+ type: 'component';
34
+ framework: 'react';
35
+ componentKey: string;
36
+ props?: AnySchemaModel;
37
+ }
38
+ | { type: 'blocknotejs'; docJson: unknown; blockConfig?: unknown };
39
+
40
+ interface PresentationDescriptorV2 {
41
+ meta: PresentationV2Meta; // includes partial OwnerShipMeta + description
42
+ policy?: { flags?: string[]; pii?: string[] };
43
+ source: PresentationSource;
44
+ targets: PresentationTarget[];
45
+ }
46
+
47
+ // Shared ownership schema (source of truth in @lssm/lib.contracts/src/ownership.ts)
48
+ interface OwnerShipMeta {
49
+ title: string;
50
+ description: string;
51
+ domain: string;
52
+ owners: Owner[];
53
+ tags: Tag[];
54
+ stability: Stability;
55
+ }
56
+
57
+ type Stability = 'experimental' | 'beta' | 'stable' | 'deprecated';
58
+ type Owner = string; // curated list available in code (e.g., '@sigil-team', 'team-strit')
59
+ type Tag = string; // curated list available in code (e.g., 'auth', 'spots')
60
+
61
+ // For V2 presentations, meta is a Partial<OwnerShipMeta> plus description, name, version
62
+ interface PresentationV2Meta extends Partial<OwnerShipMeta> {
63
+ name: string;
64
+ version: number;
65
+ description?: string;
66
+ }
67
+ \`\`\`
68
+
69
+ ### Engine
70
+
71
+ Use \`createDefaultTransformEngine()\` and register custom renderers as needed (e.g., high-fidelity BlockNote → Markdown). The default engine supports markdown/json/xml; a React renderer returns a serializable descriptor the host app renders via a \`componentMap\` or a BlockNote renderer. The canonical source type string is \`blocknotejs\` (not \`blocknote\`).
72
+
73
+ PII paths (JSON-like) are redacted from rendered outputs.
74
+
75
+ ### MCP Integration
76
+
77
+ \`createMcpServer\` accepts \`presentationsV2\`. Each descriptor is exposed under \`presentation://<name>/v<version>\` and negotiated variants (\`.md/.json/.xml\`) are rendered by the engine.
78
+
79
+ ### Migration
80
+
81
+ - V1 \`PresentationSpec\` remains supported; a back-compat helper converts V1 → V2 when convenient.
82
+ - Prefer V2 for new work.
83
+
84
+ ### Examples (Sigil)
85
+
86
+ - \`sigil.auth.webauth_tabs_v2\`: component source (\`componentKey: 'sigil.webauth.tabs'\`), targets \`react/json/xml\`.
87
+ - \`sigil.signup.guide_v2\`: BlockNote doc source, targets \`react/markdown/json/xml\`.
88
+
89
+ ### React Rendering
90
+
91
+ Host apps use a \`componentMap\` (e.g., \`'sigil.webauth.tabs' → WebAuthTabs\`) and a BlockNote renderer to turn the React render descriptor into elements.`
92
+ }];
93
+ registerDocBlocks(techContractsDocs);
94
+
95
+ //#endregion
96
+ export { techContractsDocs };
97
+ //# sourceMappingURL=tech-contracts.docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tech-contracts.docs.js","names":[],"sources":["../../../../../../../libs/contracts/dist/docs/tech-contracts.docs.js"],"sourcesContent":["import { registerDocBlocks } from \"./registry.js\";\n\n//#region src/docs/tech-contracts.docs.ts\nconst techContractsDocs = [{\n\tid: \"docs.tech.contracts.presentations-v2\",\n\ttitle: \"Presentations V2 — Unified Descriptor & Transform Engine\",\n\tsummary: \"How PresentationDescriptorV2 and TransformEngine keep docs/renderers consistent.\",\n\tvisibility: \"public\",\n\troute: \"/docs/tech/contracts/presentations-v2\",\n\tkind: \"reference\",\n\ttags: [\n\t\t\"presentations\",\n\t\t\"docs\",\n\t\t\"mcp\"\n\t],\n\tbody: `## Presentations V2 — Unified Descriptor & Transform Engine\n\n### Purpose\n\nUnify presentations into one descriptor (\\`PresentationDescriptorV2\\`) that declares a single source (React component key or BlockNote doc) and a list of output targets (react, markdown, application/json, application/xml). A pluggable \\`TransformEngine\\` renders any target and applies PII redaction.\n\n### Types\n\n\\`\\`\\`ts\ntype PresentationTarget =\n | 'react'\n | 'markdown'\n | 'application/json'\n | 'application/xml';\n\ntype PresentationSource =\n | {\n type: 'component';\n framework: 'react';\n componentKey: string;\n props?: AnySchemaModel;\n }\n | { type: 'blocknotejs'; docJson: unknown; blockConfig?: unknown };\n\ninterface PresentationDescriptorV2 {\n meta: PresentationV2Meta; // includes partial OwnerShipMeta + description\n policy?: { flags?: string[]; pii?: string[] };\n source: PresentationSource;\n targets: PresentationTarget[];\n}\n\n// Shared ownership schema (source of truth in @lssm/lib.contracts/src/ownership.ts)\ninterface OwnerShipMeta {\n title: string;\n description: string;\n domain: string;\n owners: Owner[];\n tags: Tag[];\n stability: Stability;\n}\n\ntype Stability = 'experimental' | 'beta' | 'stable' | 'deprecated';\ntype Owner = string; // curated list available in code (e.g., '@sigil-team', 'team-strit')\ntype Tag = string; // curated list available in code (e.g., 'auth', 'spots')\n\n// For V2 presentations, meta is a Partial<OwnerShipMeta> plus description, name, version\ninterface PresentationV2Meta extends Partial<OwnerShipMeta> {\n name: string;\n version: number;\n description?: string;\n}\n\\`\\`\\`\n\n### Engine\n\nUse \\`createDefaultTransformEngine()\\` and register custom renderers as needed (e.g., high-fidelity BlockNote → Markdown). The default engine supports markdown/json/xml; a React renderer returns a serializable descriptor the host app renders via a \\`componentMap\\` or a BlockNote renderer. The canonical source type string is \\`blocknotejs\\` (not \\`blocknote\\`).\n\nPII paths (JSON-like) are redacted from rendered outputs.\n\n### MCP Integration\n\n\\`createMcpServer\\` accepts \\`presentationsV2\\`. Each descriptor is exposed under \\`presentation://<name>/v<version>\\` and negotiated variants (\\`.md/.json/.xml\\`) are rendered by the engine.\n\n### Migration\n\n- V1 \\`PresentationSpec\\` remains supported; a back-compat helper converts V1 → V2 when convenient.\n- Prefer V2 for new work.\n\n### Examples (Sigil)\n\n- \\`sigil.auth.webauth_tabs_v2\\`: component source (\\`componentKey: 'sigil.webauth.tabs'\\`), targets \\`react/json/xml\\`.\n- \\`sigil.signup.guide_v2\\`: BlockNote doc source, targets \\`react/markdown/json/xml\\`.\n\n### React Rendering\n\nHost apps use a \\`componentMap\\` (e.g., \\`'sigil.webauth.tabs' → WebAuthTabs\\`) and a BlockNote renderer to turn the React render descriptor into elements.`\n}];\nregisterDocBlocks(techContractsDocs);\n\n//#endregion\nexport { techContractsDocs };\n//# sourceMappingURL=tech-contracts.docs.js.map"],"mappings":";;;AAGA,MAAM,oBAAoB,CAAC;CAC1B,IAAI;CACJ,OAAO;CACP,SAAS;CACT,YAAY;CACZ,OAAO;CACP,MAAM;CACN,MAAM;EACL;EACA;EACA;EACA;CACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4EN,CAAC;AACF,kBAAkB,kBAAkB"}
@@ -7,4 +7,5 @@ function defineEvent(e) {
7
7
  }
8
8
 
9
9
  //#endregion
10
- export { defineEvent };
10
+ export { defineEvent };
11
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","names":[],"sources":["../../../../../../libs/contracts/dist/events.js"],"sourcesContent":["import \"./schema/dist/index.js\";\n\n//#region src/events.ts\n/** Identity function to keep type inference when declaring events. */\nfunction defineEvent(e) {\n\treturn e;\n}\n/** Build a stable string key for an event name/version pair. */\nconst eventKey = (name, version) => `${name}.v${version}`;\n\n//#endregion\nexport { defineEvent, eventKey };\n//# sourceMappingURL=events.js.map"],"mappings":";;;;AAIA,SAAS,YAAY,GAAG;AACvB,QAAO"}
@@ -1,5 +1,4 @@
1
- import { defineSchemaModel } from "./schema/dist/SchemaModel.js";
2
- import "./schema/dist/index.js";
1
+ import { K5 } from "./schema/dist/index.js";
3
2
  import { defineEvent } from "./events.js";
4
3
  import "./presentations.v2.js";
5
4
  import "./client/react/feature-render.js";
@@ -65,6 +64,8 @@ import "./regenerator/service.js";
65
64
  import "./regenerator/index.js";
66
65
  import "./workflow/runner.js";
67
66
  import "./workflow/index.js";
67
+ import { techContractsDocs } from "./docs/tech-contracts.docs.js";
68
+ import { metaDocs } from "./docs/meta.docs.js";
68
69
  import "./docs/index.js";
69
70
  import "./llm/exporters.js";
70
71
  import "./llm/prompts.js";
@@ -1,217 +1,215 @@
1
- import { SchemaModel } from "../schema/dist/SchemaModel.js";
2
- import { ScalarTypeEnum } from "../schema/dist/ScalarTypeEnum.js";
3
- import "../schema/dist/index.js";
1
+ import { E5, x8 } from "../schema/dist/index.js";
4
2
  import { defineCommand, defineQuery } from "../spec.js";
5
3
 
6
4
  //#region ../../libs/contracts/dist/integrations/contracts.js
7
- const IntegrationConnectionRecord = new SchemaModel({
5
+ const IntegrationConnectionRecord = new x8({
8
6
  name: "IntegrationConnectionRecord",
9
7
  fields: {
10
8
  id: {
11
- type: ScalarTypeEnum.ID(),
9
+ type: E5.ID(),
12
10
  isOptional: false
13
11
  },
14
12
  tenantId: {
15
- type: ScalarTypeEnum.ID(),
13
+ type: E5.ID(),
16
14
  isOptional: false
17
15
  },
18
16
  integrationKey: {
19
- type: ScalarTypeEnum.NonEmptyString(),
17
+ type: E5.NonEmptyString(),
20
18
  isOptional: false
21
19
  },
22
20
  integrationVersion: {
23
- type: ScalarTypeEnum.Int_unsecure(),
21
+ type: E5.Int_unsecure(),
24
22
  isOptional: false
25
23
  },
26
24
  label: {
27
- type: ScalarTypeEnum.String_unsecure(),
25
+ type: E5.String_unsecure(),
28
26
  isOptional: false
29
27
  },
30
28
  ownershipMode: {
31
- type: ScalarTypeEnum.String_unsecure(),
29
+ type: E5.String_unsecure(),
32
30
  isOptional: false
33
31
  },
34
32
  externalAccountId: {
35
- type: ScalarTypeEnum.String_unsecure(),
33
+ type: E5.String_unsecure(),
36
34
  isOptional: true
37
35
  },
38
36
  secretProvider: {
39
- type: ScalarTypeEnum.String_unsecure(),
37
+ type: E5.String_unsecure(),
40
38
  isOptional: false
41
39
  },
42
40
  secretRef: {
43
- type: ScalarTypeEnum.String_unsecure(),
41
+ type: E5.String_unsecure(),
44
42
  isOptional: false
45
43
  },
46
44
  status: {
47
- type: ScalarTypeEnum.String_unsecure(),
45
+ type: E5.String_unsecure(),
48
46
  isOptional: false
49
47
  },
50
48
  environment: {
51
- type: ScalarTypeEnum.String_unsecure(),
49
+ type: E5.String_unsecure(),
52
50
  isOptional: true
53
51
  },
54
52
  healthStatus: {
55
- type: ScalarTypeEnum.String_unsecure(),
53
+ type: E5.String_unsecure(),
56
54
  isOptional: true
57
55
  },
58
56
  healthCheckedAt: {
59
- type: ScalarTypeEnum.DateTime(),
57
+ type: E5.DateTime(),
60
58
  isOptional: true
61
59
  },
62
60
  healthLatencyMs: {
63
- type: ScalarTypeEnum.Float_unsecure(),
61
+ type: E5.Float_unsecure(),
64
62
  isOptional: true
65
63
  },
66
64
  healthErrorCode: {
67
- type: ScalarTypeEnum.String_unsecure(),
65
+ type: E5.String_unsecure(),
68
66
  isOptional: true
69
67
  },
70
68
  healthErrorMessage: {
71
- type: ScalarTypeEnum.String_unsecure(),
69
+ type: E5.String_unsecure(),
72
70
  isOptional: true
73
71
  },
74
72
  usageRequestCount: {
75
- type: ScalarTypeEnum.Int_unsecure(),
73
+ type: E5.Int_unsecure(),
76
74
  isOptional: true
77
75
  },
78
76
  usageSuccessCount: {
79
- type: ScalarTypeEnum.Int_unsecure(),
77
+ type: E5.Int_unsecure(),
80
78
  isOptional: true
81
79
  },
82
80
  usageErrorCount: {
83
- type: ScalarTypeEnum.Int_unsecure(),
81
+ type: E5.Int_unsecure(),
84
82
  isOptional: true
85
83
  },
86
84
  usageLastUsedAt: {
87
- type: ScalarTypeEnum.DateTime(),
85
+ type: E5.DateTime(),
88
86
  isOptional: true
89
87
  },
90
88
  usageLastErrorAt: {
91
- type: ScalarTypeEnum.DateTime(),
89
+ type: E5.DateTime(),
92
90
  isOptional: true
93
91
  },
94
92
  usageLastErrorCode: {
95
- type: ScalarTypeEnum.String_unsecure(),
93
+ type: E5.String_unsecure(),
96
94
  isOptional: true
97
95
  },
98
96
  createdAt: {
99
- type: ScalarTypeEnum.DateTime(),
97
+ type: E5.DateTime(),
100
98
  isOptional: true
101
99
  },
102
100
  updatedAt: {
103
- type: ScalarTypeEnum.DateTime(),
101
+ type: E5.DateTime(),
104
102
  isOptional: true
105
103
  }
106
104
  }
107
105
  });
108
- const CreateIntegrationConnectionInput = new SchemaModel({
106
+ const CreateIntegrationConnectionInput = new x8({
109
107
  name: "CreateIntegrationConnectionInput",
110
108
  fields: {
111
109
  tenantId: {
112
- type: ScalarTypeEnum.ID(),
110
+ type: E5.ID(),
113
111
  isOptional: false
114
112
  },
115
113
  integrationKey: {
116
- type: ScalarTypeEnum.NonEmptyString(),
114
+ type: E5.NonEmptyString(),
117
115
  isOptional: false
118
116
  },
119
117
  integrationVersion: {
120
- type: ScalarTypeEnum.Int_unsecure(),
118
+ type: E5.Int_unsecure(),
121
119
  isOptional: false
122
120
  },
123
121
  label: {
124
- type: ScalarTypeEnum.String_unsecure(),
122
+ type: E5.String_unsecure(),
125
123
  isOptional: false
126
124
  },
127
125
  ownershipMode: {
128
- type: ScalarTypeEnum.String_unsecure(),
126
+ type: E5.String_unsecure(),
129
127
  isOptional: false
130
128
  },
131
129
  externalAccountId: {
132
- type: ScalarTypeEnum.String_unsecure(),
130
+ type: E5.String_unsecure(),
133
131
  isOptional: true
134
132
  },
135
133
  secretProvider: {
136
- type: ScalarTypeEnum.String_unsecure(),
134
+ type: E5.String_unsecure(),
137
135
  isOptional: false
138
136
  },
139
137
  secretRef: {
140
- type: ScalarTypeEnum.String_unsecure(),
138
+ type: E5.String_unsecure(),
141
139
  isOptional: false
142
140
  },
143
141
  environment: {
144
- type: ScalarTypeEnum.String_unsecure(),
142
+ type: E5.String_unsecure(),
145
143
  isOptional: true
146
144
  },
147
145
  config: {
148
- type: ScalarTypeEnum.JSONObject(),
146
+ type: E5.JSONObject(),
149
147
  isOptional: false
150
148
  }
151
149
  }
152
150
  });
153
- const UpdateIntegrationConnectionInput = new SchemaModel({
151
+ const UpdateIntegrationConnectionInput = new x8({
154
152
  name: "UpdateIntegrationConnectionInput",
155
153
  fields: {
156
154
  connectionId: {
157
- type: ScalarTypeEnum.ID(),
155
+ type: E5.ID(),
158
156
  isOptional: false
159
157
  },
160
158
  label: {
161
- type: ScalarTypeEnum.String_unsecure(),
159
+ type: E5.String_unsecure(),
162
160
  isOptional: true
163
161
  },
164
162
  status: {
165
- type: ScalarTypeEnum.String_unsecure(),
163
+ type: E5.String_unsecure(),
166
164
  isOptional: true
167
165
  },
168
166
  ownershipMode: {
169
- type: ScalarTypeEnum.String_unsecure(),
167
+ type: E5.String_unsecure(),
170
168
  isOptional: true
171
169
  },
172
170
  externalAccountId: {
173
- type: ScalarTypeEnum.String_unsecure(),
171
+ type: E5.String_unsecure(),
174
172
  isOptional: true
175
173
  },
176
174
  secretProvider: {
177
- type: ScalarTypeEnum.String_unsecure(),
175
+ type: E5.String_unsecure(),
178
176
  isOptional: true
179
177
  },
180
178
  secretRef: {
181
- type: ScalarTypeEnum.String_unsecure(),
179
+ type: E5.String_unsecure(),
182
180
  isOptional: true
183
181
  },
184
182
  config: {
185
- type: ScalarTypeEnum.JSONObject(),
183
+ type: E5.JSONObject(),
186
184
  isOptional: true
187
185
  }
188
186
  }
189
187
  });
190
- const DeleteIntegrationConnectionInput = new SchemaModel({
188
+ const DeleteIntegrationConnectionInput = new x8({
191
189
  name: "DeleteIntegrationConnectionInput",
192
190
  fields: { connectionId: {
193
- type: ScalarTypeEnum.ID(),
191
+ type: E5.ID(),
194
192
  isOptional: false
195
193
  } }
196
194
  });
197
- const ListIntegrationConnectionsInput = new SchemaModel({
195
+ const ListIntegrationConnectionsInput = new x8({
198
196
  name: "ListIntegrationConnectionsInput",
199
197
  fields: {
200
198
  tenantId: {
201
- type: ScalarTypeEnum.ID(),
199
+ type: E5.ID(),
202
200
  isOptional: false
203
201
  },
204
202
  category: {
205
- type: ScalarTypeEnum.String_unsecure(),
203
+ type: E5.String_unsecure(),
206
204
  isOptional: true
207
205
  },
208
206
  status: {
209
- type: ScalarTypeEnum.String_unsecure(),
207
+ type: E5.String_unsecure(),
210
208
  isOptional: true
211
209
  }
212
210
  }
213
211
  });
214
- const ListIntegrationConnectionsOutput = new SchemaModel({
212
+ const ListIntegrationConnectionsOutput = new x8({
215
213
  name: "ListIntegrationConnectionsOutput",
216
214
  fields: { connections: {
217
215
  type: IntegrationConnectionRecord,
@@ -219,42 +217,42 @@ const ListIntegrationConnectionsOutput = new SchemaModel({
219
217
  isArray: true
220
218
  } }
221
219
  });
222
- const TestIntegrationConnectionInput = new SchemaModel({
220
+ const TestIntegrationConnectionInput = new x8({
223
221
  name: "TestIntegrationConnectionInput",
224
222
  fields: { connectionId: {
225
- type: ScalarTypeEnum.ID(),
223
+ type: E5.ID(),
226
224
  isOptional: false
227
225
  } }
228
226
  });
229
- const TestIntegrationConnectionOutput = new SchemaModel({
227
+ const TestIntegrationConnectionOutput = new x8({
230
228
  name: "TestIntegrationConnectionOutput",
231
229
  fields: {
232
230
  success: {
233
- type: ScalarTypeEnum.Boolean(),
231
+ type: E5.Boolean(),
234
232
  isOptional: false
235
233
  },
236
234
  status: {
237
- type: ScalarTypeEnum.String_unsecure(),
235
+ type: E5.String_unsecure(),
238
236
  isOptional: true
239
237
  },
240
238
  latencyMs: {
241
- type: ScalarTypeEnum.Float_unsecure(),
239
+ type: E5.Float_unsecure(),
242
240
  isOptional: true
243
241
  },
244
242
  error: {
245
- type: ScalarTypeEnum.String_unsecure(),
243
+ type: E5.String_unsecure(),
246
244
  isOptional: true
247
245
  },
248
246
  errorCode: {
249
- type: ScalarTypeEnum.String_unsecure(),
247
+ type: E5.String_unsecure(),
250
248
  isOptional: true
251
249
  }
252
250
  }
253
251
  });
254
- const DeleteIntegrationConnectionOutput = new SchemaModel({
252
+ const DeleteIntegrationConnectionOutput = new x8({
255
253
  name: "DeleteIntegrationConnectionOutput",
256
254
  fields: { success: {
257
- type: ScalarTypeEnum.Boolean(),
255
+ type: E5.Boolean(),
258
256
  isOptional: false
259
257
  } }
260
258
  });
@@ -374,4 +372,5 @@ const TestIntegrationConnection = defineCommand({
374
372
  }
375
373
  });
376
374
 
377
- //#endregion
375
+ //#endregion
376
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","names":[],"sources":["../../../../../../../libs/contracts/dist/integrations/contracts.js"],"sourcesContent":["import { E5, x8 } from \"../schema/dist/index.js\";\nimport { defineCommand, defineQuery } from \"../spec.js\";\n\n//#region src/integrations/contracts.ts\nconst IntegrationConnectionRecord = new x8({\n\tname: \"IntegrationConnectionRecord\",\n\tfields: {\n\t\tid: {\n\t\t\ttype: E5.ID(),\n\t\t\tisOptional: false\n\t\t},\n\t\ttenantId: {\n\t\t\ttype: E5.ID(),\n\t\t\tisOptional: false\n\t\t},\n\t\tintegrationKey: {\n\t\t\ttype: E5.NonEmptyString(),\n\t\t\tisOptional: false\n\t\t},\n\t\tintegrationVersion: {\n\t\t\ttype: E5.Int_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tlabel: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\townershipMode: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\texternalAccountId: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tsecretProvider: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tsecretRef: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tstatus: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tenvironment: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\thealthStatus: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\thealthCheckedAt: {\n\t\t\ttype: E5.DateTime(),\n\t\t\tisOptional: true\n\t\t},\n\t\thealthLatencyMs: {\n\t\t\ttype: E5.Float_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\thealthErrorCode: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\thealthErrorMessage: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tusageRequestCount: {\n\t\t\ttype: E5.Int_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tusageSuccessCount: {\n\t\t\ttype: E5.Int_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tusageErrorCount: {\n\t\t\ttype: E5.Int_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tusageLastUsedAt: {\n\t\t\ttype: E5.DateTime(),\n\t\t\tisOptional: true\n\t\t},\n\t\tusageLastErrorAt: {\n\t\t\ttype: E5.DateTime(),\n\t\t\tisOptional: true\n\t\t},\n\t\tusageLastErrorCode: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tcreatedAt: {\n\t\t\ttype: E5.DateTime(),\n\t\t\tisOptional: true\n\t\t},\n\t\tupdatedAt: {\n\t\t\ttype: E5.DateTime(),\n\t\t\tisOptional: true\n\t\t}\n\t}\n});\nconst CreateIntegrationConnectionInput = new x8({\n\tname: \"CreateIntegrationConnectionInput\",\n\tfields: {\n\t\ttenantId: {\n\t\t\ttype: E5.ID(),\n\t\t\tisOptional: false\n\t\t},\n\t\tintegrationKey: {\n\t\t\ttype: E5.NonEmptyString(),\n\t\t\tisOptional: false\n\t\t},\n\t\tintegrationVersion: {\n\t\t\ttype: E5.Int_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tlabel: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\townershipMode: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\texternalAccountId: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tsecretProvider: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tsecretRef: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tenvironment: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tconfig: {\n\t\t\ttype: E5.JSONObject(),\n\t\t\tisOptional: false\n\t\t}\n\t}\n});\nconst UpdateIntegrationConnectionInput = new x8({\n\tname: \"UpdateIntegrationConnectionInput\",\n\tfields: {\n\t\tconnectionId: {\n\t\t\ttype: E5.ID(),\n\t\t\tisOptional: false\n\t\t},\n\t\tlabel: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tstatus: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\townershipMode: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\texternalAccountId: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tsecretProvider: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tsecretRef: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tconfig: {\n\t\t\ttype: E5.JSONObject(),\n\t\t\tisOptional: true\n\t\t}\n\t}\n});\nconst DeleteIntegrationConnectionInput = new x8({\n\tname: \"DeleteIntegrationConnectionInput\",\n\tfields: { connectionId: {\n\t\ttype: E5.ID(),\n\t\tisOptional: false\n\t} }\n});\nconst ListIntegrationConnectionsInput = new x8({\n\tname: \"ListIntegrationConnectionsInput\",\n\tfields: {\n\t\ttenantId: {\n\t\t\ttype: E5.ID(),\n\t\t\tisOptional: false\n\t\t},\n\t\tcategory: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tstatus: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t}\n\t}\n});\nconst ListIntegrationConnectionsOutput = new x8({\n\tname: \"ListIntegrationConnectionsOutput\",\n\tfields: { connections: {\n\t\ttype: IntegrationConnectionRecord,\n\t\tisOptional: false,\n\t\tisArray: true\n\t} }\n});\nconst TestIntegrationConnectionInput = new x8({\n\tname: \"TestIntegrationConnectionInput\",\n\tfields: { connectionId: {\n\t\ttype: E5.ID(),\n\t\tisOptional: false\n\t} }\n});\nconst TestIntegrationConnectionOutput = new x8({\n\tname: \"TestIntegrationConnectionOutput\",\n\tfields: {\n\t\tsuccess: {\n\t\t\ttype: E5.Boolean(),\n\t\t\tisOptional: false\n\t\t},\n\t\tstatus: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tlatencyMs: {\n\t\t\ttype: E5.Float_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\terror: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\terrorCode: {\n\t\t\ttype: E5.String_unsecure(),\n\t\t\tisOptional: true\n\t\t}\n\t}\n});\nconst DeleteIntegrationConnectionOutput = new x8({\n\tname: \"DeleteIntegrationConnectionOutput\",\n\tfields: { success: {\n\t\ttype: E5.Boolean(),\n\t\tisOptional: false\n\t} }\n});\nconst CreateIntegrationConnection = defineCommand({\n\tmeta: {\n\t\tname: \"integrations.connection.create\",\n\t\tversion: 1,\n\t\tdescription: \"Create a new integration connection for a tenant.\",\n\t\tgoal: \"Provision a tenant-scoped connection to an external provider.\",\n\t\tcontext: \"Used by Ops or the App Studio to configure external integrations such as Stripe or Qdrant.\",\n\t\towners: [\"platform.integrations\"],\n\t\ttags: [\"integration\", \"connections\"],\n\t\tstability: \"experimental\"\n\t},\n\tio: {\n\t\tinput: CreateIntegrationConnectionInput,\n\t\toutput: IntegrationConnectionRecord\n\t},\n\tpolicy: {\n\t\tauth: \"admin\",\n\t\tpolicies: [{\n\t\t\tname: \"platform.integration.manage\",\n\t\t\tversion: 1\n\t\t}]\n\t}\n});\nconst UpdateIntegrationConnection = defineCommand({\n\tmeta: {\n\t\tname: \"integrations.connection.update\",\n\t\tversion: 1,\n\t\tdescription: \"Update metadata or credentials for an integration connection.\",\n\t\tgoal: \"Allow secure rotation of credentials and metadata adjustments.\",\n\t\tcontext: \"Supports rotating API keys, toggling status, or updating labels for tenant integrations.\",\n\t\towners: [\"platform.integrations\"],\n\t\ttags: [\"integration\", \"connections\"],\n\t\tstability: \"experimental\"\n\t},\n\tio: {\n\t\tinput: UpdateIntegrationConnectionInput,\n\t\toutput: IntegrationConnectionRecord\n\t},\n\tpolicy: {\n\t\tauth: \"admin\",\n\t\tpolicies: [{\n\t\t\tname: \"platform.integration.manage\",\n\t\t\tversion: 1\n\t\t}]\n\t}\n});\nconst DeleteIntegrationConnection = defineCommand({\n\tmeta: {\n\t\tname: \"integrations.connection.delete\",\n\t\tversion: 1,\n\t\tdescription: \"Delete an integration connection for a tenant.\",\n\t\tgoal: \"Safely remove credentials and disable connector usage.\",\n\t\tcontext: \"Ensures connections are de-provisioned when no longer needed or breached.\",\n\t\towners: [\"platform.integrations\"],\n\t\ttags: [\"integration\", \"connections\"],\n\t\tstability: \"experimental\"\n\t},\n\tio: {\n\t\tinput: DeleteIntegrationConnectionInput,\n\t\toutput: DeleteIntegrationConnectionOutput\n\t},\n\tpolicy: {\n\t\tauth: \"admin\",\n\t\tpolicies: [{\n\t\t\tname: \"platform.integration.manage\",\n\t\t\tversion: 1\n\t\t}]\n\t}\n});\nconst ListIntegrationConnections = defineQuery({\n\tmeta: {\n\t\tname: \"integrations.connection.list\",\n\t\tversion: 1,\n\t\tdescription: \"List integration connections for a tenant.\",\n\t\tgoal: \"Provide visibility into configured integrations and their status.\",\n\t\tcontext: \"Used by the App Studio and Ops flows to show bindings and health.\",\n\t\towners: [\"platform.integrations\"],\n\t\ttags: [\"integration\", \"connections\"],\n\t\tstability: \"experimental\"\n\t},\n\tio: {\n\t\tinput: ListIntegrationConnectionsInput,\n\t\toutput: ListIntegrationConnectionsOutput\n\t},\n\tpolicy: {\n\t\tauth: \"admin\",\n\t\tpolicies: [{\n\t\t\tname: \"platform.integration.read\",\n\t\t\tversion: 1\n\t\t}]\n\t}\n});\nconst TestIntegrationConnection = defineCommand({\n\tmeta: {\n\t\tname: \"integrations.connection.test\",\n\t\tversion: 1,\n\t\tdescription: \"Run a health check against a configured integration connection.\",\n\t\tgoal: \"Validate credentials and connectivity for external providers.\",\n\t\tcontext: \"Triggered manually or by background monitors to confirm provider availability.\",\n\t\towners: [\"platform.integrations\"],\n\t\ttags: [\"integration\", \"connections\"],\n\t\tstability: \"experimental\"\n\t},\n\tio: {\n\t\tinput: TestIntegrationConnectionInput,\n\t\toutput: TestIntegrationConnectionOutput\n\t},\n\tpolicy: {\n\t\tauth: \"admin\",\n\t\tpolicies: [{\n\t\t\tname: \"platform.integration.manage\",\n\t\t\tversion: 1\n\t\t}]\n\t}\n});\nconst integrationContracts = {\n\tCreateIntegrationConnection,\n\tUpdateIntegrationConnection,\n\tDeleteIntegrationConnection,\n\tListIntegrationConnections,\n\tTestIntegrationConnection\n};\nfunction registerIntegrationContracts(registry) {\n\treturn registry.register(CreateIntegrationConnection).register(UpdateIntegrationConnection).register(DeleteIntegrationConnection).register(ListIntegrationConnections).register(TestIntegrationConnection);\n}\n\n//#endregion\nexport { CreateIntegrationConnection, DeleteIntegrationConnection, ListIntegrationConnections, TestIntegrationConnection, UpdateIntegrationConnection, integrationContracts, registerIntegrationContracts };\n//# sourceMappingURL=contracts.js.map"],"mappings":";;;;AAIA,MAAM,8BAA8B,IAAI,GAAG;CAC1C,MAAM;CACN,QAAQ;EACP,IAAI;GACH,MAAM,GAAG,IAAI;GACb,YAAY;GACZ;EACD,UAAU;GACT,MAAM,GAAG,IAAI;GACb,YAAY;GACZ;EACD,gBAAgB;GACf,MAAM,GAAG,gBAAgB;GACzB,YAAY;GACZ;EACD,oBAAoB;GACnB,MAAM,GAAG,cAAc;GACvB,YAAY;GACZ;EACD,OAAO;GACN,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,eAAe;GACd,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,mBAAmB;GAClB,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,gBAAgB;GACf,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,WAAW;GACV,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,QAAQ;GACP,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,aAAa;GACZ,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,cAAc;GACb,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,iBAAiB;GAChB,MAAM,GAAG,UAAU;GACnB,YAAY;GACZ;EACD,iBAAiB;GAChB,MAAM,GAAG,gBAAgB;GACzB,YAAY;GACZ;EACD,iBAAiB;GAChB,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,oBAAoB;GACnB,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,mBAAmB;GAClB,MAAM,GAAG,cAAc;GACvB,YAAY;GACZ;EACD,mBAAmB;GAClB,MAAM,GAAG,cAAc;GACvB,YAAY;GACZ;EACD,iBAAiB;GAChB,MAAM,GAAG,cAAc;GACvB,YAAY;GACZ;EACD,iBAAiB;GAChB,MAAM,GAAG,UAAU;GACnB,YAAY;GACZ;EACD,kBAAkB;GACjB,MAAM,GAAG,UAAU;GACnB,YAAY;GACZ;EACD,oBAAoB;GACnB,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,WAAW;GACV,MAAM,GAAG,UAAU;GACnB,YAAY;GACZ;EACD,WAAW;GACV,MAAM,GAAG,UAAU;GACnB,YAAY;GACZ;EACD;CACD,CAAC;AACF,MAAM,mCAAmC,IAAI,GAAG;CAC/C,MAAM;CACN,QAAQ;EACP,UAAU;GACT,MAAM,GAAG,IAAI;GACb,YAAY;GACZ;EACD,gBAAgB;GACf,MAAM,GAAG,gBAAgB;GACzB,YAAY;GACZ;EACD,oBAAoB;GACnB,MAAM,GAAG,cAAc;GACvB,YAAY;GACZ;EACD,OAAO;GACN,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,eAAe;GACd,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,mBAAmB;GAClB,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,gBAAgB;GACf,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,WAAW;GACV,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,aAAa;GACZ,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,QAAQ;GACP,MAAM,GAAG,YAAY;GACrB,YAAY;GACZ;EACD;CACD,CAAC;AACF,MAAM,mCAAmC,IAAI,GAAG;CAC/C,MAAM;CACN,QAAQ;EACP,cAAc;GACb,MAAM,GAAG,IAAI;GACb,YAAY;GACZ;EACD,OAAO;GACN,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,QAAQ;GACP,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,eAAe;GACd,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,mBAAmB;GAClB,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,gBAAgB;GACf,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,WAAW;GACV,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,QAAQ;GACP,MAAM,GAAG,YAAY;GACrB,YAAY;GACZ;EACD;CACD,CAAC;AACF,MAAM,mCAAmC,IAAI,GAAG;CAC/C,MAAM;CACN,QAAQ,EAAE,cAAc;EACvB,MAAM,GAAG,IAAI;EACb,YAAY;EACZ,EAAE;CACH,CAAC;AACF,MAAM,kCAAkC,IAAI,GAAG;CAC9C,MAAM;CACN,QAAQ;EACP,UAAU;GACT,MAAM,GAAG,IAAI;GACb,YAAY;GACZ;EACD,UAAU;GACT,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,QAAQ;GACP,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD;CACD,CAAC;AACF,MAAM,mCAAmC,IAAI,GAAG;CAC/C,MAAM;CACN,QAAQ,EAAE,aAAa;EACtB,MAAM;EACN,YAAY;EACZ,SAAS;EACT,EAAE;CACH,CAAC;AACF,MAAM,iCAAiC,IAAI,GAAG;CAC7C,MAAM;CACN,QAAQ,EAAE,cAAc;EACvB,MAAM,GAAG,IAAI;EACb,YAAY;EACZ,EAAE;CACH,CAAC;AACF,MAAM,kCAAkC,IAAI,GAAG;CAC9C,MAAM;CACN,QAAQ;EACP,SAAS;GACR,MAAM,GAAG,SAAS;GAClB,YAAY;GACZ;EACD,QAAQ;GACP,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,WAAW;GACV,MAAM,GAAG,gBAAgB;GACzB,YAAY;GACZ;EACD,OAAO;GACN,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD,WAAW;GACV,MAAM,GAAG,iBAAiB;GAC1B,YAAY;GACZ;EACD;CACD,CAAC;AACF,MAAM,oCAAoC,IAAI,GAAG;CAChD,MAAM;CACN,QAAQ,EAAE,SAAS;EAClB,MAAM,GAAG,SAAS;EAClB,YAAY;EACZ,EAAE;CACH,CAAC;AACF,MAAM,8BAA8B,cAAc;CACjD,MAAM;EACL,MAAM;EACN,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,QAAQ,CAAC,wBAAwB;EACjC,MAAM,CAAC,eAAe,cAAc;EACpC,WAAW;EACX;CACD,IAAI;EACH,OAAO;EACP,QAAQ;EACR;CACD,QAAQ;EACP,MAAM;EACN,UAAU,CAAC;GACV,MAAM;GACN,SAAS;GACT,CAAC;EACF;CACD,CAAC;AACF,MAAM,8BAA8B,cAAc;CACjD,MAAM;EACL,MAAM;EACN,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,QAAQ,CAAC,wBAAwB;EACjC,MAAM,CAAC,eAAe,cAAc;EACpC,WAAW;EACX;CACD,IAAI;EACH,OAAO;EACP,QAAQ;EACR;CACD,QAAQ;EACP,MAAM;EACN,UAAU,CAAC;GACV,MAAM;GACN,SAAS;GACT,CAAC;EACF;CACD,CAAC;AACF,MAAM,8BAA8B,cAAc;CACjD,MAAM;EACL,MAAM;EACN,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,QAAQ,CAAC,wBAAwB;EACjC,MAAM,CAAC,eAAe,cAAc;EACpC,WAAW;EACX;CACD,IAAI;EACH,OAAO;EACP,QAAQ;EACR;CACD,QAAQ;EACP,MAAM;EACN,UAAU,CAAC;GACV,MAAM;GACN,SAAS;GACT,CAAC;EACF;CACD,CAAC;AACF,MAAM,6BAA6B,YAAY;CAC9C,MAAM;EACL,MAAM;EACN,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,QAAQ,CAAC,wBAAwB;EACjC,MAAM,CAAC,eAAe,cAAc;EACpC,WAAW;EACX;CACD,IAAI;EACH,OAAO;EACP,QAAQ;EACR;CACD,QAAQ;EACP,MAAM;EACN,UAAU,CAAC;GACV,MAAM;GACN,SAAS;GACT,CAAC;EACF;CACD,CAAC;AACF,MAAM,4BAA4B,cAAc;CAC/C,MAAM;EACL,MAAM;EACN,SAAS;EACT,aAAa;EACb,MAAM;EACN,SAAS;EACT,QAAQ,CAAC,wBAAwB;EACjC,MAAM,CAAC,eAAe,cAAc;EACpC,WAAW;EACX;CACD,IAAI;EACH,OAAO;EACP,QAAQ;EACR;CACD,QAAQ;EACP,MAAM;EACN,UAAU,CAAC;GACV,MAAM;GACN,SAAS;GACT,CAAC;EACF;CACD,CAAC"}