@lssm/example.workflow-system 0.0.0-canary-20251221132705 → 0.0.0-canary-20251221144710
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/dist/approval/approval.contracts.d.ts +133 -133
- package/dist/approval/approval.contracts.d.ts.map +1 -1
- package/dist/approval/approval.contracts.js +2 -1
- package/dist/approval/approval.contracts.js.map +1 -1
- package/dist/approval/approval.enum.d.ts +3 -3
- package/dist/approval/approval.event.d.ts +32 -32
- package/dist/approval/approval.event.d.ts.map +1 -1
- package/dist/approval/approval.schema.d.ts +24 -24
- package/dist/entities/approval.d.ts +36 -36
- package/dist/entities/index.d.ts +127 -127
- package/dist/entities/instance.d.ts +47 -47
- package/dist/entities/instance.d.ts.map +1 -1
- package/dist/entities/step.d.ts +32 -32
- package/dist/entities/step.d.ts.map +1 -1
- package/dist/entities/workflow.d.ts +23 -23
- package/dist/entities/workflow.d.ts.map +1 -1
- package/dist/instance/instance.contracts.d.ts +256 -256
- package/dist/instance/instance.contracts.d.ts.map +1 -1
- package/dist/instance/instance.contracts.js +2 -1
- package/dist/instance/instance.contracts.js.map +1 -1
- package/dist/instance/instance.enum.d.ts +2 -2
- package/dist/instance/instance.enum.d.ts.map +1 -1
- package/dist/instance/instance.event.d.ts +87 -87
- package/dist/libs/contracts/dist/capabilities/index.js +1 -0
- package/dist/libs/contracts/dist/client/react/feature-render.js +2 -1
- package/dist/libs/contracts/dist/client/react/form-render.js +1 -1
- package/dist/libs/contracts/dist/data-views/data-views.js +1 -0
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -2
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/forms/forms.js +1 -0
- package/dist/libs/contracts/dist/index.js +15 -12
- package/dist/libs/contracts/dist/index.js.map +1 -1
- package/dist/libs/contracts/dist/install.js +1 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +2 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +2 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +2 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/{contracts.js → operations.js} +4 -3
- package/dist/libs/contracts/dist/integrations/operations.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/{contracts.js → operations.js} +4 -3
- package/dist/libs/contracts/dist/knowledge/operations.js.map +1 -0
- package/dist/libs/contracts/dist/llm/exporters.js +1 -0
- package/dist/libs/contracts/dist/llm/exporters.js.map +1 -1
- package/dist/libs/contracts/dist/onboarding-base.js +2 -1
- package/dist/libs/contracts/dist/onboarding-base.js.map +1 -1
- package/dist/libs/contracts/dist/operations/index.js +2 -0
- package/dist/libs/contracts/dist/{operation.js → operations/operation.js} +1 -1
- package/dist/libs/contracts/dist/operations/operation.js.map +1 -0
- package/dist/libs/contracts/dist/operations/registry.js +2 -0
- package/dist/libs/contracts/dist/presentations/index.js +2 -0
- package/dist/libs/contracts/dist/presentations/presentations.js +2 -0
- package/dist/libs/contracts/dist/{presentations.v2.js → presentations/transform-engine.js} +2 -2
- package/dist/libs/contracts/dist/presentations/transform-engine.js.map +1 -0
- package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +3 -2
- package/dist/workflow/workflow.contracts.d.ts +246 -246
- package/dist/workflow/workflow.contracts.d.ts.map +1 -1
- package/dist/workflow/workflow.contracts.js +2 -1
- package/dist/workflow/workflow.contracts.js.map +1 -1
- package/dist/workflow/workflow.enum.d.ts +5 -5
- package/dist/workflow/workflow.event.d.ts +33 -33
- package/dist/workflow/workflow.event.d.ts.map +1 -1
- package/dist/workflow/workflow.schema.d.ts +63 -63
- package/dist/workflow/workflow.schema.d.ts.map +1 -1
- package/package.json +11 -11
- package/dist/libs/contracts/dist/data-views.js +0 -1
- package/dist/libs/contracts/dist/forms.js +0 -1
- package/dist/libs/contracts/dist/integrations/contracts.js.map +0 -1
- package/dist/libs/contracts/dist/knowledge/contracts.js.map +0 -1
- package/dist/libs/contracts/dist/operation.js.map +0 -1
- package/dist/libs/contracts/dist/presentations.js +0 -2
- package/dist/libs/contracts/dist/presentations.v2.js.map +0 -1
- package/dist/libs/contracts/dist/registry.js +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance.contracts.d.ts","names":[],"sources":["../../src/instance/instance.contracts.ts"],"sourcesContent":[],"mappings":";;;;;;;cAea,
|
|
1
|
+
{"version":3,"file":"instance.contracts.d.ts","names":[],"sources":["../../src/instance/instance.contracts.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { E5, K5 } from "../libs/schema/dist/index.js";
|
|
2
|
-
import { defineCommand, defineQuery } from "../libs/contracts/dist/operation.js";
|
|
2
|
+
import { defineCommand, defineQuery } from "../libs/contracts/dist/operations/operation.js";
|
|
3
|
+
import "../libs/contracts/dist/operations/index.js";
|
|
3
4
|
import { InstanceStatusEnum } from "./instance.enum.js";
|
|
4
5
|
import { StartWorkflowInputModel, TransitionInputModel, TransitionResultModel, WorkflowInstanceModel } from "./instance.schema.js";
|
|
5
6
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance.contracts.js","names":["defineSchemaModel","ScalarTypeEnum"],"sources":["../../src/instance/instance.contracts.ts"],"sourcesContent":["import { defineCommand, defineQuery } from '@lssm/lib.contracts/operation';\nimport { defineSchemaModel, ScalarTypeEnum } from '@lssm/lib.schema';\nimport { InstanceStatusEnum } from './instance.enum';\nimport {\n WorkflowInstanceModel,\n StartWorkflowInputModel,\n TransitionInputModel,\n TransitionResultModel,\n} from './instance.schema';\n\nconst OWNERS = ['@example.workflow-system'] as const;\n\n/**\n * Start a new workflow instance.\n */\nexport const StartWorkflowContract = defineCommand({\n meta: {\n name: 'workflow.instance.start',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'start'],\n description: 'Start a new workflow instance.',\n goal: 'Initiate a workflow for a business process.',\n context: 'Order creation, request submission, etc.',\n },\n io: {\n input: StartWorkflowInputModel,\n output: WorkflowInstanceModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n name: 'workflow.instance.started',\n version: 1,\n when: 'Workflow starts',\n payload: WorkflowInstanceModel,\n },\n {\n name: 'workflow.step.entered',\n version: 1,\n when: 'First step entered',\n payload: WorkflowInstanceModel,\n },\n ],\n audit: ['workflow.instance.started'],\n },\n});\n\n/**\n * Transition workflow to next step.\n */\nexport const TransitionWorkflowContract = defineCommand({\n meta: {\n name: 'workflow.instance.transition',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'transition', 'state-machine'],\n description: 'Transition a workflow instance to the next step.',\n goal: 'Move workflow forward based on action.',\n context: 'Task completion, approval decisions.',\n },\n io: {\n input: TransitionInputModel,\n output: TransitionResultModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n name: 'workflow.step.exited',\n version: 1,\n when: 'Step is exited',\n payload: WorkflowInstanceModel,\n },\n {\n name: 'workflow.step.entered',\n version: 1,\n when: 'New step is entered',\n payload: WorkflowInstanceModel,\n },\n {\n name: 'workflow.instance.completed',\n version: 1,\n when: 'Workflow reaches end',\n payload: WorkflowInstanceModel,\n },\n ],\n audit: ['workflow.instance.transitioned'],\n },\n});\n\n/**\n * Pause a running workflow.\n */\nexport const PauseWorkflowContract = defineCommand({\n meta: {\n name: 'workflow.instance.pause',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'pause'],\n description: 'Pause a running workflow instance.',\n goal: 'Temporarily halt workflow execution.',\n context: 'Administrative action, emergency stop.',\n },\n io: {\n input: defineSchemaModel({\n name: 'PauseResumeInput',\n fields: {\n instanceId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n reason: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n },\n }),\n output: WorkflowInstanceModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n name: 'workflow.instance.paused',\n version: 1,\n when: 'Workflow is paused',\n payload: WorkflowInstanceModel,\n },\n ],\n audit: ['workflow.instance.paused'],\n },\n});\n\n/**\n * Resume a paused workflow.\n */\nexport const ResumeWorkflowContract = defineCommand({\n meta: {\n name: 'workflow.instance.resume',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'resume'],\n description: 'Resume a paused workflow instance.',\n goal: 'Continue workflow execution.',\n context: 'Administrative action.',\n },\n io: {\n input: defineSchemaModel({\n name: 'PauseResumeInput',\n fields: {\n instanceId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n reason: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n },\n }),\n output: WorkflowInstanceModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n name: 'workflow.instance.resumed',\n version: 1,\n when: 'Workflow is resumed',\n payload: WorkflowInstanceModel,\n },\n ],\n audit: ['workflow.instance.resumed'],\n },\n});\n\n/**\n * Cancel a workflow instance.\n */\nexport const CancelWorkflowContract = defineCommand({\n meta: {\n name: 'workflow.instance.cancel',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'cancel'],\n description: 'Cancel a workflow instance.',\n goal: 'Terminate workflow without completion.',\n context: 'User request, system cancellation.',\n },\n io: {\n input: defineSchemaModel({\n name: 'CancelWorkflowInput',\n fields: {\n instanceId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n reason: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n },\n }),\n output: WorkflowInstanceModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n name: 'workflow.instance.cancelled',\n version: 1,\n when: 'Workflow is cancelled',\n payload: WorkflowInstanceModel,\n },\n ],\n audit: ['workflow.instance.cancelled'],\n },\n});\n\n/**\n * List workflow instances.\n */\nexport const ListInstancesContract = defineQuery({\n meta: {\n name: 'workflow.instance.list',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'list'],\n description: 'List workflow instances with filtering.',\n goal: 'Browse and search running workflows.',\n context: 'Dashboard, monitoring.',\n },\n io: {\n input: defineSchemaModel({\n name: 'ListInstancesInput',\n fields: {\n workflowKey: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n status: { type: InstanceStatusEnum, isOptional: true },\n referenceType: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n referenceId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n triggeredBy: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n limit: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n defaultValue: 20,\n },\n offset: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n defaultValue: 0,\n },\n },\n }),\n output: defineSchemaModel({\n name: 'ListInstancesOutput',\n fields: {\n instances: {\n type: WorkflowInstanceModel,\n isArray: true,\n isOptional: false,\n },\n total: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n },\n }),\n },\n policy: { auth: 'user' },\n});\n\n/**\n * Get a single workflow instance.\n */\nexport const GetInstanceContract = defineQuery({\n meta: {\n name: 'workflow.instance.get',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'get'],\n description: 'Get a workflow instance with details.',\n goal: 'View workflow instance details.',\n context: 'Instance detail view.',\n },\n io: {\n input: defineSchemaModel({\n name: 'GetInstanceInput',\n fields: {\n instanceId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n },\n }),\n output: WorkflowInstanceModel,\n },\n policy: { auth: 'user' },\n});\n"],"mappings":";;;;;;AAUA,MAAM,SAAS,CAAC,2BAA2B;;;;AAK3C,MAAa,wBAAwB,cAAc;CACjD,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAQ;EACvC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa;EACX,OAAO,CACL;GACE,MAAM;GACN,SAAS;GACT,MAAM;GACN,SAAS;GACV,EACD;GACE,MAAM;GACN,SAAS;GACT,MAAM;GACN,SAAS;GACV,CACF;EACD,OAAO,CAAC,4BAA4B;EACrC;CACF,CAAC;;;;AAKF,MAAa,6BAA6B,cAAc;CACtD,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAc;GAAgB;EAC7D,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa;EACX,OAAO;GACL;IACE,MAAM;IACN,SAAS;IACT,MAAM;IACN,SAAS;IACV;GACD;IACE,MAAM;IACN,SAAS;IACT,MAAM;IACN,SAAS;IACV;GACD;IACE,MAAM;IACN,SAAS;IACT,MAAM;IACN,SAAS;IACV;GACF;EACD,OAAO,CAAC,iCAAiC;EAC1C;CACF,CAAC;;;;AAKF,MAAa,wBAAwB,cAAc;CACjD,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAQ;EACvC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAOA,GAAkB;GACvB,MAAM;GACN,QAAQ;IACN,YAAY;KACV,MAAMC,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,QAAQ;KAAE,MAAMA,GAAe,iBAAiB;KAAE,YAAY;KAAM;IACrE;GACF,CAAC;EACF,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa;EACX,OAAO,CACL;GACE,MAAM;GACN,SAAS;GACT,MAAM;GACN,SAAS;GACV,CACF;EACD,OAAO,CAAC,2BAA2B;EACpC;CACF,CAAC;;;;AAKF,MAAa,yBAAyB,cAAc;CAClD,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAS;EACxC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAOD,GAAkB;GACvB,MAAM;GACN,QAAQ;IACN,YAAY;KACV,MAAMC,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,QAAQ;KAAE,MAAMA,GAAe,iBAAiB;KAAE,YAAY;KAAM;IACrE;GACF,CAAC;EACF,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa;EACX,OAAO,CACL;GACE,MAAM;GACN,SAAS;GACT,MAAM;GACN,SAAS;GACV,CACF;EACD,OAAO,CAAC,4BAA4B;EACrC;CACF,CAAC;;;;AAKF,MAAa,yBAAyB,cAAc;CAClD,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAS;EACxC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAOD,GAAkB;GACvB,MAAM;GACN,QAAQ;IACN,YAAY;KACV,MAAMC,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,QAAQ;KACN,MAAMA,GAAe,iBAAiB;KACtC,YAAY;KACb;IACF;GACF,CAAC;EACF,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa;EACX,OAAO,CACL;GACE,MAAM;GACN,SAAS;GACT,MAAM;GACN,SAAS;GACV,CACF;EACD,OAAO,CAAC,8BAA8B;EACvC;CACF,CAAC;;;;AAKF,MAAa,wBAAwB,YAAY;CAC/C,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAO;EACtC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAOD,GAAkB;GACvB,MAAM;GACN,QAAQ;IACN,aAAa;KACX,MAAMC,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,QAAQ;KAAE,MAAM;KAAoB,YAAY;KAAM;IACtD,eAAe;KACb,MAAMA,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,aAAa;KACX,MAAMA,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,aAAa;KACX,MAAMA,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,OAAO;KACL,MAAMA,GAAe,cAAc;KACnC,YAAY;KACZ,cAAc;KACf;IACD,QAAQ;KACN,MAAMA,GAAe,cAAc;KACnC,YAAY;KACZ,cAAc;KACf;IACF;GACF,CAAC;EACF,QAAQD,GAAkB;GACxB,MAAM;GACN,QAAQ;IACN,WAAW;KACT,MAAM;KACN,SAAS;KACT,YAAY;KACb;IACD,OAAO;KAAE,MAAMC,GAAe,cAAc;KAAE,YAAY;KAAO;IAClE;GACF,CAAC;EACH;CACD,QAAQ,EAAE,MAAM,QAAQ;CACzB,CAAC;;;;AAKF,MAAa,sBAAsB,YAAY;CAC7C,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAM;EACrC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAOD,GAAkB;GACvB,MAAM;GACN,QAAQ,EACN,YAAY;IACV,MAAMC,GAAe,iBAAiB;IACtC,YAAY;IACb,EACF;GACF,CAAC;EACF,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"instance.contracts.js","names":["defineSchemaModel","ScalarTypeEnum"],"sources":["../../src/instance/instance.contracts.ts"],"sourcesContent":["import { defineCommand, defineQuery } from '@lssm/lib.contracts/operations';\nimport { defineSchemaModel, ScalarTypeEnum } from '@lssm/lib.schema';\nimport { InstanceStatusEnum } from './instance.enum';\nimport {\n WorkflowInstanceModel,\n StartWorkflowInputModel,\n TransitionInputModel,\n TransitionResultModel,\n} from './instance.schema';\n\nconst OWNERS = ['@example.workflow-system'] as const;\n\n/**\n * Start a new workflow instance.\n */\nexport const StartWorkflowContract = defineCommand({\n meta: {\n name: 'workflow.instance.start',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'start'],\n description: 'Start a new workflow instance.',\n goal: 'Initiate a workflow for a business process.',\n context: 'Order creation, request submission, etc.',\n },\n io: {\n input: StartWorkflowInputModel,\n output: WorkflowInstanceModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n name: 'workflow.instance.started',\n version: 1,\n when: 'Workflow starts',\n payload: WorkflowInstanceModel,\n },\n {\n name: 'workflow.step.entered',\n version: 1,\n when: 'First step entered',\n payload: WorkflowInstanceModel,\n },\n ],\n audit: ['workflow.instance.started'],\n },\n});\n\n/**\n * Transition workflow to next step.\n */\nexport const TransitionWorkflowContract = defineCommand({\n meta: {\n name: 'workflow.instance.transition',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'transition', 'state-machine'],\n description: 'Transition a workflow instance to the next step.',\n goal: 'Move workflow forward based on action.',\n context: 'Task completion, approval decisions.',\n },\n io: {\n input: TransitionInputModel,\n output: TransitionResultModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n name: 'workflow.step.exited',\n version: 1,\n when: 'Step is exited',\n payload: WorkflowInstanceModel,\n },\n {\n name: 'workflow.step.entered',\n version: 1,\n when: 'New step is entered',\n payload: WorkflowInstanceModel,\n },\n {\n name: 'workflow.instance.completed',\n version: 1,\n when: 'Workflow reaches end',\n payload: WorkflowInstanceModel,\n },\n ],\n audit: ['workflow.instance.transitioned'],\n },\n});\n\n/**\n * Pause a running workflow.\n */\nexport const PauseWorkflowContract = defineCommand({\n meta: {\n name: 'workflow.instance.pause',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'pause'],\n description: 'Pause a running workflow instance.',\n goal: 'Temporarily halt workflow execution.',\n context: 'Administrative action, emergency stop.',\n },\n io: {\n input: defineSchemaModel({\n name: 'PauseResumeInput',\n fields: {\n instanceId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n reason: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n },\n }),\n output: WorkflowInstanceModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n name: 'workflow.instance.paused',\n version: 1,\n when: 'Workflow is paused',\n payload: WorkflowInstanceModel,\n },\n ],\n audit: ['workflow.instance.paused'],\n },\n});\n\n/**\n * Resume a paused workflow.\n */\nexport const ResumeWorkflowContract = defineCommand({\n meta: {\n name: 'workflow.instance.resume',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'resume'],\n description: 'Resume a paused workflow instance.',\n goal: 'Continue workflow execution.',\n context: 'Administrative action.',\n },\n io: {\n input: defineSchemaModel({\n name: 'PauseResumeInput',\n fields: {\n instanceId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n reason: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n },\n }),\n output: WorkflowInstanceModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n name: 'workflow.instance.resumed',\n version: 1,\n when: 'Workflow is resumed',\n payload: WorkflowInstanceModel,\n },\n ],\n audit: ['workflow.instance.resumed'],\n },\n});\n\n/**\n * Cancel a workflow instance.\n */\nexport const CancelWorkflowContract = defineCommand({\n meta: {\n name: 'workflow.instance.cancel',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'cancel'],\n description: 'Cancel a workflow instance.',\n goal: 'Terminate workflow without completion.',\n context: 'User request, system cancellation.',\n },\n io: {\n input: defineSchemaModel({\n name: 'CancelWorkflowInput',\n fields: {\n instanceId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n reason: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n },\n }),\n output: WorkflowInstanceModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n name: 'workflow.instance.cancelled',\n version: 1,\n when: 'Workflow is cancelled',\n payload: WorkflowInstanceModel,\n },\n ],\n audit: ['workflow.instance.cancelled'],\n },\n});\n\n/**\n * List workflow instances.\n */\nexport const ListInstancesContract = defineQuery({\n meta: {\n name: 'workflow.instance.list',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'list'],\n description: 'List workflow instances with filtering.',\n goal: 'Browse and search running workflows.',\n context: 'Dashboard, monitoring.',\n },\n io: {\n input: defineSchemaModel({\n name: 'ListInstancesInput',\n fields: {\n workflowKey: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n status: { type: InstanceStatusEnum, isOptional: true },\n referenceType: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n referenceId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n triggeredBy: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n limit: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n defaultValue: 20,\n },\n offset: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n defaultValue: 0,\n },\n },\n }),\n output: defineSchemaModel({\n name: 'ListInstancesOutput',\n fields: {\n instances: {\n type: WorkflowInstanceModel,\n isArray: true,\n isOptional: false,\n },\n total: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n },\n }),\n },\n policy: { auth: 'user' },\n});\n\n/**\n * Get a single workflow instance.\n */\nexport const GetInstanceContract = defineQuery({\n meta: {\n name: 'workflow.instance.get',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'instance', 'get'],\n description: 'Get a workflow instance with details.',\n goal: 'View workflow instance details.',\n context: 'Instance detail view.',\n },\n io: {\n input: defineSchemaModel({\n name: 'GetInstanceInput',\n fields: {\n instanceId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n },\n }),\n output: WorkflowInstanceModel,\n },\n policy: { auth: 'user' },\n});\n"],"mappings":";;;;;;;AAUA,MAAM,SAAS,CAAC,2BAA2B;;;;AAK3C,MAAa,wBAAwB,cAAc;CACjD,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAQ;EACvC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa;EACX,OAAO,CACL;GACE,MAAM;GACN,SAAS;GACT,MAAM;GACN,SAAS;GACV,EACD;GACE,MAAM;GACN,SAAS;GACT,MAAM;GACN,SAAS;GACV,CACF;EACD,OAAO,CAAC,4BAA4B;EACrC;CACF,CAAC;;;;AAKF,MAAa,6BAA6B,cAAc;CACtD,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAc;GAAgB;EAC7D,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAO;EACP,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa;EACX,OAAO;GACL;IACE,MAAM;IACN,SAAS;IACT,MAAM;IACN,SAAS;IACV;GACD;IACE,MAAM;IACN,SAAS;IACT,MAAM;IACN,SAAS;IACV;GACD;IACE,MAAM;IACN,SAAS;IACT,MAAM;IACN,SAAS;IACV;GACF;EACD,OAAO,CAAC,iCAAiC;EAC1C;CACF,CAAC;;;;AAKF,MAAa,wBAAwB,cAAc;CACjD,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAQ;EACvC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAOA,GAAkB;GACvB,MAAM;GACN,QAAQ;IACN,YAAY;KACV,MAAMC,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,QAAQ;KAAE,MAAMA,GAAe,iBAAiB;KAAE,YAAY;KAAM;IACrE;GACF,CAAC;EACF,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa;EACX,OAAO,CACL;GACE,MAAM;GACN,SAAS;GACT,MAAM;GACN,SAAS;GACV,CACF;EACD,OAAO,CAAC,2BAA2B;EACpC;CACF,CAAC;;;;AAKF,MAAa,yBAAyB,cAAc;CAClD,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAS;EACxC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAOD,GAAkB;GACvB,MAAM;GACN,QAAQ;IACN,YAAY;KACV,MAAMC,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,QAAQ;KAAE,MAAMA,GAAe,iBAAiB;KAAE,YAAY;KAAM;IACrE;GACF,CAAC;EACF,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa;EACX,OAAO,CACL;GACE,MAAM;GACN,SAAS;GACT,MAAM;GACN,SAAS;GACV,CACF;EACD,OAAO,CAAC,4BAA4B;EACrC;CACF,CAAC;;;;AAKF,MAAa,yBAAyB,cAAc;CAClD,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAS;EACxC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAOD,GAAkB;GACvB,MAAM;GACN,QAAQ;IACN,YAAY;KACV,MAAMC,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,QAAQ;KACN,MAAMA,GAAe,iBAAiB;KACtC,YAAY;KACb;IACF;GACF,CAAC;EACF,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa;EACX,OAAO,CACL;GACE,MAAM;GACN,SAAS;GACT,MAAM;GACN,SAAS;GACV,CACF;EACD,OAAO,CAAC,8BAA8B;EACvC;CACF,CAAC;;;;AAKF,MAAa,wBAAwB,YAAY;CAC/C,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAO;EACtC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAOD,GAAkB;GACvB,MAAM;GACN,QAAQ;IACN,aAAa;KACX,MAAMC,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,QAAQ;KAAE,MAAM;KAAoB,YAAY;KAAM;IACtD,eAAe;KACb,MAAMA,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,aAAa;KACX,MAAMA,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,aAAa;KACX,MAAMA,GAAe,iBAAiB;KACtC,YAAY;KACb;IACD,OAAO;KACL,MAAMA,GAAe,cAAc;KACnC,YAAY;KACZ,cAAc;KACf;IACD,QAAQ;KACN,MAAMA,GAAe,cAAc;KACnC,YAAY;KACZ,cAAc;KACf;IACF;GACF,CAAC;EACF,QAAQD,GAAkB;GACxB,MAAM;GACN,QAAQ;IACN,WAAW;KACT,MAAM;KACN,SAAS;KACT,YAAY;KACb;IACD,OAAO;KAAE,MAAMC,GAAe,cAAc;KAAE,YAAY;KAAO;IAClE;GACF,CAAC;EACH;CACD,QAAQ,EAAE,MAAM,QAAQ;CACzB,CAAC;;;;AAKF,MAAa,sBAAsB,YAAY;CAC7C,MAAM;EACJ,MAAM;EACN,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM;GAAC;GAAY;GAAY;GAAM;EACrC,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EACF,OAAOD,GAAkB;GACvB,MAAM;GACN,QAAQ,EACN,YAAY;IACV,MAAMC,GAAe,iBAAiB;IACtC,YAAY;IACb,EACF;GACF,CAAC;EACF,QAAQ;EACT;CACD,QAAQ,EAAE,MAAM,QAAQ;CACzB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _lssm_lib_schema601 from "@lssm/lib.schema";
|
|
2
2
|
|
|
3
3
|
//#region src/instance/instance.enum.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Instance status enum.
|
|
6
6
|
*/
|
|
7
|
-
declare const InstanceStatusEnum:
|
|
7
|
+
declare const InstanceStatusEnum: _lssm_lib_schema601.EnumType<[string, string, string, string, string, string, string, string]>;
|
|
8
8
|
//#endregion
|
|
9
9
|
export { InstanceStatusEnum };
|
|
10
10
|
//# sourceMappingURL=instance.enum.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance.enum.d.ts","names":[],"sources":["../../src/instance/instance.enum.ts"],"sourcesContent":[],"mappings":";;;;;;AAKa,cAAA,kBASX,EAAA,
|
|
1
|
+
{"version":3,"file":"instance.enum.d.ts","names":[],"sources":["../../src/instance/instance.enum.ts"],"sourcesContent":[],"mappings":";;;;;;AAKa,cAAA,kBASX,EAAA,mBAAA,CAT6B,QAAA,CAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA"}
|
|
@@ -1,353 +1,353 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as
|
|
1
|
+
import * as _lssm_lib_schema701 from "@lssm/lib.schema";
|
|
2
|
+
import * as _lssm_lib_contracts15 from "@lssm/lib.contracts";
|
|
3
3
|
|
|
4
4
|
//#region src/instance/instance.event.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* InstanceStartedEvent - A new workflow instance has been started.
|
|
7
7
|
*/
|
|
8
|
-
declare const InstanceStartedEvent:
|
|
8
|
+
declare const InstanceStartedEvent: _lssm_lib_contracts15.EventSpec<_lssm_lib_schema701.SchemaModel<{
|
|
9
9
|
instanceId: {
|
|
10
|
-
type:
|
|
10
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
11
11
|
isOptional: false;
|
|
12
12
|
};
|
|
13
13
|
workflowId: {
|
|
14
|
-
type:
|
|
14
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
15
15
|
isOptional: false;
|
|
16
16
|
};
|
|
17
17
|
workflowKey: {
|
|
18
|
-
type:
|
|
18
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
19
19
|
isOptional: false;
|
|
20
20
|
};
|
|
21
21
|
status: {
|
|
22
|
-
type:
|
|
22
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
23
23
|
isOptional: false;
|
|
24
24
|
};
|
|
25
25
|
referenceId: {
|
|
26
|
-
type:
|
|
26
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
27
27
|
isOptional: true;
|
|
28
28
|
};
|
|
29
29
|
referenceType: {
|
|
30
|
-
type:
|
|
30
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
31
31
|
isOptional: true;
|
|
32
32
|
};
|
|
33
33
|
triggeredBy: {
|
|
34
|
-
type:
|
|
34
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
35
35
|
isOptional: false;
|
|
36
36
|
};
|
|
37
37
|
organizationId: {
|
|
38
|
-
type:
|
|
38
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
39
39
|
isOptional: false;
|
|
40
40
|
};
|
|
41
41
|
timestamp: {
|
|
42
|
-
type:
|
|
42
|
+
type: _lssm_lib_schema701.FieldType<Date, string>;
|
|
43
43
|
isOptional: false;
|
|
44
44
|
};
|
|
45
45
|
}>>;
|
|
46
46
|
/**
|
|
47
47
|
* StepEnteredEvent - A workflow instance has entered a new step.
|
|
48
48
|
*/
|
|
49
|
-
declare const StepEnteredEvent:
|
|
49
|
+
declare const StepEnteredEvent: _lssm_lib_contracts15.EventSpec<_lssm_lib_schema701.SchemaModel<{
|
|
50
50
|
instanceId: {
|
|
51
|
-
type:
|
|
51
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
52
52
|
isOptional: false;
|
|
53
53
|
};
|
|
54
54
|
workflowId: {
|
|
55
|
-
type:
|
|
55
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
56
56
|
isOptional: false;
|
|
57
57
|
};
|
|
58
58
|
fromStepKey: {
|
|
59
|
-
type:
|
|
59
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
60
60
|
isOptional: true;
|
|
61
61
|
};
|
|
62
62
|
toStepKey: {
|
|
63
|
-
type:
|
|
63
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
64
64
|
isOptional: false;
|
|
65
65
|
};
|
|
66
66
|
action: {
|
|
67
|
-
type:
|
|
67
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
68
68
|
isOptional: true;
|
|
69
69
|
};
|
|
70
70
|
executedBy: {
|
|
71
|
-
type:
|
|
71
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
72
72
|
isOptional: false;
|
|
73
73
|
};
|
|
74
74
|
timestamp: {
|
|
75
|
-
type:
|
|
75
|
+
type: _lssm_lib_schema701.FieldType<Date, string>;
|
|
76
76
|
isOptional: false;
|
|
77
77
|
};
|
|
78
78
|
}>>;
|
|
79
79
|
/**
|
|
80
80
|
* StepExitedEvent - A workflow instance has exited a step.
|
|
81
81
|
*/
|
|
82
|
-
declare const StepExitedEvent:
|
|
82
|
+
declare const StepExitedEvent: _lssm_lib_contracts15.EventSpec<_lssm_lib_schema701.SchemaModel<{
|
|
83
83
|
instanceId: {
|
|
84
|
-
type:
|
|
84
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
85
85
|
isOptional: false;
|
|
86
86
|
};
|
|
87
87
|
workflowId: {
|
|
88
|
-
type:
|
|
88
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
89
89
|
isOptional: false;
|
|
90
90
|
};
|
|
91
91
|
fromStepKey: {
|
|
92
|
-
type:
|
|
92
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
93
93
|
isOptional: true;
|
|
94
94
|
};
|
|
95
95
|
toStepKey: {
|
|
96
|
-
type:
|
|
96
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
97
97
|
isOptional: false;
|
|
98
98
|
};
|
|
99
99
|
action: {
|
|
100
|
-
type:
|
|
100
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
101
101
|
isOptional: true;
|
|
102
102
|
};
|
|
103
103
|
executedBy: {
|
|
104
|
-
type:
|
|
104
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
105
105
|
isOptional: false;
|
|
106
106
|
};
|
|
107
107
|
timestamp: {
|
|
108
|
-
type:
|
|
108
|
+
type: _lssm_lib_schema701.FieldType<Date, string>;
|
|
109
109
|
isOptional: false;
|
|
110
110
|
};
|
|
111
111
|
}>>;
|
|
112
112
|
/**
|
|
113
113
|
* InstanceCompletedEvent - A workflow instance has completed.
|
|
114
114
|
*/
|
|
115
|
-
declare const InstanceCompletedEvent:
|
|
115
|
+
declare const InstanceCompletedEvent: _lssm_lib_contracts15.EventSpec<_lssm_lib_schema701.SchemaModel<{
|
|
116
116
|
instanceId: {
|
|
117
|
-
type:
|
|
117
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
118
118
|
isOptional: false;
|
|
119
119
|
};
|
|
120
120
|
workflowId: {
|
|
121
|
-
type:
|
|
121
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
122
122
|
isOptional: false;
|
|
123
123
|
};
|
|
124
124
|
workflowKey: {
|
|
125
|
-
type:
|
|
125
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
126
126
|
isOptional: false;
|
|
127
127
|
};
|
|
128
128
|
outcome: {
|
|
129
|
-
type:
|
|
129
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
130
130
|
isOptional: false;
|
|
131
131
|
};
|
|
132
132
|
referenceId: {
|
|
133
|
-
type:
|
|
133
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
134
134
|
isOptional: true;
|
|
135
135
|
};
|
|
136
136
|
referenceType: {
|
|
137
|
-
type:
|
|
137
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
138
138
|
isOptional: true;
|
|
139
139
|
};
|
|
140
140
|
duration: {
|
|
141
|
-
type:
|
|
141
|
+
type: _lssm_lib_schema701.FieldType<number, number>;
|
|
142
142
|
isOptional: false;
|
|
143
143
|
};
|
|
144
144
|
timestamp: {
|
|
145
|
-
type:
|
|
145
|
+
type: _lssm_lib_schema701.FieldType<Date, string>;
|
|
146
146
|
isOptional: false;
|
|
147
147
|
};
|
|
148
148
|
}>>;
|
|
149
149
|
/**
|
|
150
150
|
* InstanceCancelledEvent - A workflow instance has been cancelled.
|
|
151
151
|
*/
|
|
152
|
-
declare const InstanceCancelledEvent:
|
|
152
|
+
declare const InstanceCancelledEvent: _lssm_lib_contracts15.EventSpec<_lssm_lib_schema701.SchemaModel<{
|
|
153
153
|
instanceId: {
|
|
154
|
-
type:
|
|
154
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
155
155
|
isOptional: false;
|
|
156
156
|
};
|
|
157
157
|
workflowId: {
|
|
158
|
-
type:
|
|
158
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
159
159
|
isOptional: false;
|
|
160
160
|
};
|
|
161
161
|
workflowKey: {
|
|
162
|
-
type:
|
|
162
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
163
163
|
isOptional: false;
|
|
164
164
|
};
|
|
165
165
|
status: {
|
|
166
|
-
type:
|
|
166
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
167
167
|
isOptional: false;
|
|
168
168
|
};
|
|
169
169
|
referenceId: {
|
|
170
|
-
type:
|
|
170
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
171
171
|
isOptional: true;
|
|
172
172
|
};
|
|
173
173
|
referenceType: {
|
|
174
|
-
type:
|
|
174
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
175
175
|
isOptional: true;
|
|
176
176
|
};
|
|
177
177
|
triggeredBy: {
|
|
178
|
-
type:
|
|
178
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
179
179
|
isOptional: false;
|
|
180
180
|
};
|
|
181
181
|
organizationId: {
|
|
182
|
-
type:
|
|
182
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
183
183
|
isOptional: false;
|
|
184
184
|
};
|
|
185
185
|
timestamp: {
|
|
186
|
-
type:
|
|
186
|
+
type: _lssm_lib_schema701.FieldType<Date, string>;
|
|
187
187
|
isOptional: false;
|
|
188
188
|
};
|
|
189
189
|
}>>;
|
|
190
190
|
/**
|
|
191
191
|
* InstancePausedEvent - A workflow instance has been paused.
|
|
192
192
|
*/
|
|
193
|
-
declare const InstancePausedEvent:
|
|
193
|
+
declare const InstancePausedEvent: _lssm_lib_contracts15.EventSpec<_lssm_lib_schema701.SchemaModel<{
|
|
194
194
|
instanceId: {
|
|
195
|
-
type:
|
|
195
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
196
196
|
isOptional: false;
|
|
197
197
|
};
|
|
198
198
|
workflowId: {
|
|
199
|
-
type:
|
|
199
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
200
200
|
isOptional: false;
|
|
201
201
|
};
|
|
202
202
|
workflowKey: {
|
|
203
|
-
type:
|
|
203
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
204
204
|
isOptional: false;
|
|
205
205
|
};
|
|
206
206
|
status: {
|
|
207
|
-
type:
|
|
207
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
208
208
|
isOptional: false;
|
|
209
209
|
};
|
|
210
210
|
referenceId: {
|
|
211
|
-
type:
|
|
211
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
212
212
|
isOptional: true;
|
|
213
213
|
};
|
|
214
214
|
referenceType: {
|
|
215
|
-
type:
|
|
215
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
216
216
|
isOptional: true;
|
|
217
217
|
};
|
|
218
218
|
triggeredBy: {
|
|
219
|
-
type:
|
|
219
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
220
220
|
isOptional: false;
|
|
221
221
|
};
|
|
222
222
|
organizationId: {
|
|
223
|
-
type:
|
|
223
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
224
224
|
isOptional: false;
|
|
225
225
|
};
|
|
226
226
|
timestamp: {
|
|
227
|
-
type:
|
|
227
|
+
type: _lssm_lib_schema701.FieldType<Date, string>;
|
|
228
228
|
isOptional: false;
|
|
229
229
|
};
|
|
230
230
|
}>>;
|
|
231
231
|
/**
|
|
232
232
|
* InstanceResumedEvent - A workflow instance has been resumed.
|
|
233
233
|
*/
|
|
234
|
-
declare const InstanceResumedEvent:
|
|
234
|
+
declare const InstanceResumedEvent: _lssm_lib_contracts15.EventSpec<_lssm_lib_schema701.SchemaModel<{
|
|
235
235
|
instanceId: {
|
|
236
|
-
type:
|
|
236
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
237
237
|
isOptional: false;
|
|
238
238
|
};
|
|
239
239
|
workflowId: {
|
|
240
|
-
type:
|
|
240
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
241
241
|
isOptional: false;
|
|
242
242
|
};
|
|
243
243
|
workflowKey: {
|
|
244
|
-
type:
|
|
244
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
245
245
|
isOptional: false;
|
|
246
246
|
};
|
|
247
247
|
status: {
|
|
248
|
-
type:
|
|
248
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
249
249
|
isOptional: false;
|
|
250
250
|
};
|
|
251
251
|
referenceId: {
|
|
252
|
-
type:
|
|
252
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
253
253
|
isOptional: true;
|
|
254
254
|
};
|
|
255
255
|
referenceType: {
|
|
256
|
-
type:
|
|
256
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
257
257
|
isOptional: true;
|
|
258
258
|
};
|
|
259
259
|
triggeredBy: {
|
|
260
|
-
type:
|
|
260
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
261
261
|
isOptional: false;
|
|
262
262
|
};
|
|
263
263
|
organizationId: {
|
|
264
|
-
type:
|
|
264
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
265
265
|
isOptional: false;
|
|
266
266
|
};
|
|
267
267
|
timestamp: {
|
|
268
|
-
type:
|
|
268
|
+
type: _lssm_lib_schema701.FieldType<Date, string>;
|
|
269
269
|
isOptional: false;
|
|
270
270
|
};
|
|
271
271
|
}>>;
|
|
272
272
|
/**
|
|
273
273
|
* InstanceFailedEvent - A workflow instance has failed.
|
|
274
274
|
*/
|
|
275
|
-
declare const InstanceFailedEvent:
|
|
275
|
+
declare const InstanceFailedEvent: _lssm_lib_contracts15.EventSpec<_lssm_lib_schema701.SchemaModel<{
|
|
276
276
|
instanceId: {
|
|
277
|
-
type:
|
|
277
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
278
278
|
isOptional: false;
|
|
279
279
|
};
|
|
280
280
|
workflowId: {
|
|
281
|
-
type:
|
|
281
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
282
282
|
isOptional: false;
|
|
283
283
|
};
|
|
284
284
|
workflowKey: {
|
|
285
|
-
type:
|
|
285
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
286
286
|
isOptional: false;
|
|
287
287
|
};
|
|
288
288
|
status: {
|
|
289
|
-
type:
|
|
289
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
290
290
|
isOptional: false;
|
|
291
291
|
};
|
|
292
292
|
referenceId: {
|
|
293
|
-
type:
|
|
293
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
294
294
|
isOptional: true;
|
|
295
295
|
};
|
|
296
296
|
referenceType: {
|
|
297
|
-
type:
|
|
297
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
298
298
|
isOptional: true;
|
|
299
299
|
};
|
|
300
300
|
triggeredBy: {
|
|
301
|
-
type:
|
|
301
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
302
302
|
isOptional: false;
|
|
303
303
|
};
|
|
304
304
|
organizationId: {
|
|
305
|
-
type:
|
|
305
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
306
306
|
isOptional: false;
|
|
307
307
|
};
|
|
308
308
|
timestamp: {
|
|
309
|
-
type:
|
|
309
|
+
type: _lssm_lib_schema701.FieldType<Date, string>;
|
|
310
310
|
isOptional: false;
|
|
311
311
|
};
|
|
312
312
|
}>>;
|
|
313
313
|
/**
|
|
314
314
|
* InstanceTimedOutEvent - A workflow instance has timed out.
|
|
315
315
|
*/
|
|
316
|
-
declare const InstanceTimedOutEvent:
|
|
316
|
+
declare const InstanceTimedOutEvent: _lssm_lib_contracts15.EventSpec<_lssm_lib_schema701.SchemaModel<{
|
|
317
317
|
instanceId: {
|
|
318
|
-
type:
|
|
318
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
319
319
|
isOptional: false;
|
|
320
320
|
};
|
|
321
321
|
workflowId: {
|
|
322
|
-
type:
|
|
322
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
323
323
|
isOptional: false;
|
|
324
324
|
};
|
|
325
325
|
workflowKey: {
|
|
326
|
-
type:
|
|
326
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
327
327
|
isOptional: false;
|
|
328
328
|
};
|
|
329
329
|
status: {
|
|
330
|
-
type:
|
|
330
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
331
331
|
isOptional: false;
|
|
332
332
|
};
|
|
333
333
|
referenceId: {
|
|
334
|
-
type:
|
|
334
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
335
335
|
isOptional: true;
|
|
336
336
|
};
|
|
337
337
|
referenceType: {
|
|
338
|
-
type:
|
|
338
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
339
339
|
isOptional: true;
|
|
340
340
|
};
|
|
341
341
|
triggeredBy: {
|
|
342
|
-
type:
|
|
342
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
343
343
|
isOptional: false;
|
|
344
344
|
};
|
|
345
345
|
organizationId: {
|
|
346
|
-
type:
|
|
346
|
+
type: _lssm_lib_schema701.FieldType<string, string>;
|
|
347
347
|
isOptional: false;
|
|
348
348
|
};
|
|
349
349
|
timestamp: {
|
|
350
|
-
type:
|
|
350
|
+
type: _lssm_lib_schema701.FieldType<Date, string>;
|
|
351
351
|
isOptional: false;
|
|
352
352
|
};
|
|
353
353
|
}>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./openbanking.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "../registry-utils.js";
|
|
@@ -88,11 +88,11 @@ llm.verify { specPath: "path/to/my.spec.ts", implementationPath: "path/to/impl.t
|
|
|
88
88
|
### Programmatic Usage
|
|
89
89
|
|
|
90
90
|
\`\`\`typescript
|
|
91
|
-
import {
|
|
91
|
+
import { operationSpecToFullMarkdown, operationSpecToAgentPrompt } from '@lssm/lib.contracts/llm';
|
|
92
92
|
import { createAgentGuideService, createVerifyService } from '@lssm/bundle.contractspec-workspace';
|
|
93
93
|
|
|
94
94
|
// Export
|
|
95
|
-
const markdown =
|
|
95
|
+
const markdown = operationSpecToFullMarkdown(mySpec);
|
|
96
96
|
|
|
97
97
|
// Generate guide
|
|
98
98
|
const guideService = createAgentGuideService({ defaultAgent: 'claude-code' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-integration.docblock.js","names":[],"sources":["../../../../../../../../../libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js"],"sourcesContent":["import { registerDocBlocks } from \"../../registry.js\";\n\n//#region src/docs/tech/llm/llm-integration.docblock.ts\nconst tech_llm_integration_DocBlocks = [\n\t{\n\t\tid: \"docs.tech.llm.overview\",\n\t\ttitle: \"LLM Integration Overview\",\n\t\tsummary: \"Export specs to LLM-friendly formats, generate implementation guides, and verify implementations.\",\n\t\tkind: \"reference\",\n\t\tvisibility: \"public\",\n\t\troute: \"/docs/tech/llm/overview\",\n\t\ttags: [\n\t\t\t\"llm\",\n\t\t\t\"ai\",\n\t\t\t\"export\",\n\t\t\t\"guide\",\n\t\t\t\"verify\"\n\t\t],\n\t\tbody: `# LLM Integration\n\nContractSpec provides first-class LLM integration to bridge specifications and AI coding agents.\n\n## Core Features\n\n### 1. Multi-Format Export\n\nExport specs to markdown in formats optimized for LLM consumption:\n\n- **Context format**: Summary for understanding (goal, context, acceptance criteria)\n- **Full format**: Complete spec with all details (I/O schemas, policy, events)\n- **Prompt format**: Actionable prompt with implementation instructions\n\n### 2. Implementation Guidance\n\nGenerate agent-specific implementation plans:\n\n- **Claude Code**: Extended thinking mode with structured prompts\n- **Cursor CLI**: Background/composer mode with .mdc rules generation\n- **Generic MCP**: Standard format for any MCP-compatible agent\n\n### 3. Tiered Verification\n\nVerify implementations against specs:\n\n- **Tier 1 (Structure)**: Types, exports, imports validation\n- **Tier 2 (Behavior)**: Scenario coverage, error handling, events\n- **Tier 3 (AI Review)**: Semantic compliance analysis via LLM\n\n## Access Points\n\n| Surface | Commands/Tools |\n|---------|---------------|\n| CLI | \\`contractspec llm export\\`, \\`guide\\`, \\`verify\\`, \\`copy\\` |\n| MCP | \\`llm.export\\`, \\`llm.guide\\`, \\`llm.verify\\` tools |\n| VSCode | Export to LLM, Generate Guide, Verify, Copy commands |\n\n## Quick Start\n\n### CLI Usage\n\n\\`\\`\\`bash\n# Export spec as markdown\ncontractspec llm export path/to/my.spec.ts --format full\n\n# Generate implementation guide\ncontractspec llm guide path/to/my.spec.ts --agent claude-code\n\n# Verify implementation\ncontractspec llm verify path/to/my.spec.ts path/to/impl.ts --tier 2\n\n# Copy spec to clipboard\ncontractspec llm copy path/to/my.spec.ts --format context\n\\`\\`\\`\n\n### MCP Usage\n\n\\`\\`\\`\n# Export spec\nllm.export { specPath: \"path/to/my.spec.ts\", format: \"full\" }\n\n# Generate guide\nllm.guide { specPath: \"path/to/my.spec.ts\", agent: \"cursor-cli\" }\n\n# Verify implementation\nllm.verify { specPath: \"path/to/my.spec.ts\", implementationPath: \"path/to/impl.ts\", tier: \"2\" }\n\\`\\`\\`\n\n### Programmatic Usage\n\n\\`\\`\\`typescript\nimport { specToFullMarkdown, specToAgentPrompt } from '@lssm/lib.contracts/llm';\nimport { createAgentGuideService, createVerifyService } from '@lssm/bundle.contractspec-workspace';\n\n// Export\nconst markdown = specToFullMarkdown(mySpec);\n\n// Generate guide\nconst guideService = createAgentGuideService({ defaultAgent: 'claude-code' });\nconst guide = guideService.generateGuide(mySpec);\n\n// Verify\nconst verifyService = createVerifyService();\nconst result = await verifyService.verify(mySpec, implementationCode, {\n tiers: ['structure', 'behavior']\n});\n\\`\\`\\`\n`\n\t},\n\t{\n\t\tid: \"docs.tech.llm.export-formats\",\n\t\ttitle: \"LLM Export Formats\",\n\t\tsummary: \"Detailed explanation of the three export formats for LLM consumption.\",\n\t\tkind: \"reference\",\n\t\tvisibility: \"public\",\n\t\troute: \"/docs/tech/llm/export-formats\",\n\t\ttags: [\n\t\t\t\"llm\",\n\t\t\t\"export\",\n\t\t\t\"markdown\"\n\t\t],\n\t\tbody: `# LLM Export Formats\n\nContractSpec provides three export formats optimized for different LLM use cases.\n\n## Context Format\n\nBest for: Understanding what a spec does, providing background to LLMs.\n\nIncludes:\n- Spec name, version, type\n- Goal and context\n- Description\n- Acceptance scenarios\n\nExample:\n\n\\`\\`\\`markdown\n# users.createUser (v1)\n\n> Create a new user account with email verification.\n\n**Type:** command | **Stability:** stable\n\n## Goal\nCreate a new user in the system and trigger email verification.\n\n## Context\nPart of the user onboarding flow. Called after signup form submission.\n\n## Acceptance Criteria\n### Happy path\n**Given:** Valid email and password\n**When:** User submits registration\n**Then:** Account is created, verification email is sent\n\\`\\`\\`\n\n## Full Format\n\nBest for: Complete documentation, implementation reference.\n\nIncludes everything:\n- All metadata\n- JSON schemas for I/O\n- Error definitions\n- Policy (auth, rate limits, PII)\n- Events emitted\n- Examples\n- Transport configuration\n\n## Prompt Format\n\nBest for: Feeding directly to coding agents.\n\nIncludes:\n- Task header with clear instructions\n- Full spec context\n- Implementation requirements\n- Task-specific guidance (implement/test/refactor/review)\n- Expected output format\n\nThe prompt format adapts based on task type:\n- **implement**: Full implementation with tests\n- **test**: Test generation for existing code\n- **refactor**: Refactoring while maintaining behavior\n- **review**: Code review against spec\n`\n\t},\n\t{\n\t\tid: \"docs.tech.llm.agent-adapters\",\n\t\ttitle: \"Agent Adapters\",\n\t\tsummary: \"Adapters for different AI coding agents (Claude, Cursor, MCP).\",\n\t\tkind: \"reference\",\n\t\tvisibility: \"public\",\n\t\troute: \"/docs/tech/llm/agent-adapters\",\n\t\ttags: [\n\t\t\t\"llm\",\n\t\t\t\"agents\",\n\t\t\t\"claude\",\n\t\t\t\"cursor\",\n\t\t\t\"mcp\"\n\t\t],\n\t\tbody: `# Agent Adapters\n\nContractSpec provides specialized adapters for different AI coding agents.\n\n## Claude Code Adapter\n\nOptimized for Anthropic Claude's extended thinking and code generation.\n\nFeatures:\n- Structured markdown with clear sections\n- Checklists for steps and verification\n- Icons for file operations (📝 create, ✏️ modify)\n- System prompt for ContractSpec context\n\nUsage:\n\\`\\`\\`typescript\nconst guideService = createAgentGuideService({ defaultAgent: 'claude-code' });\nconst result = guideService.generateGuide(spec, { agent: 'claude-code' });\n// result.prompt.systemPrompt - Claude system context\n// result.prompt.taskPrompt - Task-specific instructions\n\\`\\`\\`\n\n## Cursor CLI Adapter\n\nOptimized for Cursor's background/composer mode.\n\nFeatures:\n- Compact format for context efficiency\n- .mdc cursor rules generation\n- Integration with Cursor's file system\n- Concise step lists\n\nGenerate Cursor Rules:\n\\`\\`\\`typescript\nconst cursorRules = guideService.generateAgentConfig(spec, 'cursor-cli');\n// Save to .cursor/rules/my-spec.mdc\n\\`\\`\\`\n\n## Generic MCP Adapter\n\nWorks with any MCP-compatible agent (Cline, Aider, etc.).\n\nFeatures:\n- Standard markdown format\n- Table-based metadata\n- JSON resource format support\n- Prompt message format\n\nThe generic adapter is the default and works across all agents.\n\n## Choosing an Adapter\n\n| Agent | Best For | Key Features |\n|-------|----------|--------------|\n| Claude Code | Complex implementations | Extended thinking, detailed steps |\n| Cursor CLI | IDE-integrated work | Cursor rules, compact format |\n| Generic MCP | Any MCP agent | Universal compatibility |\n`\n\t},\n\t{\n\t\tid: \"docs.tech.llm.verification\",\n\t\ttitle: \"Implementation Verification\",\n\t\tsummary: \"Tiered verification of implementations against specifications.\",\n\t\tkind: \"reference\",\n\t\tvisibility: \"public\",\n\t\troute: \"/docs/tech/llm/verification\",\n\t\ttags: [\n\t\t\t\"llm\",\n\t\t\t\"verify\",\n\t\t\t\"validation\",\n\t\t\t\"testing\"\n\t\t],\n\t\tbody: `# Implementation Verification\n\nContractSpec provides tiered verification to check if implementations comply with specs.\n\n## Verification Tiers\n\n### Tier 1: Structure (Fast)\n\nChecks TypeScript structure against spec requirements:\n\n| Check | What it validates |\n|-------|------------------|\n| Handler export | Function is properly exported |\n| Contracts import | Imports from @lssm/lib.contracts |\n| Schema import | Imports from @lssm/lib.schema |\n| No \\`any\\` type | TypeScript strict compliance |\n| Error handling | Error codes are referenced |\n| Event emission | Event patterns exist |\n| Input validation | Validation patterns used |\n| Async patterns | Async/await for commands |\n\n### Tier 2: Behavior (Comprehensive)\n\nChecks implementation coverage of spec behaviors:\n\n| Check | What it validates |\n|-------|------------------|\n| Scenario coverage | Acceptance scenarios implemented |\n| Example coverage | Example I/O values referenced |\n| Error cases | All error conditions handled |\n| Event conditions | Events emitted correctly |\n| Idempotency | Idempotent patterns (if required) |\n\n### Tier 3: AI Review (Deep)\n\nUses LLM for semantic analysis:\n\n- Does the implementation fulfill the spec's intent?\n- Are edge cases properly handled?\n- Is the code quality acceptable?\n- Are there any subtle violations?\n\nRequires AI API key configuration.\n\n## Running Verification\n\n\\`\\`\\`typescript\nconst verifyService = createVerifyService({\n aiApiKey: process.env.ANTHROPIC_API_KEY, // Optional, for Tier 3\n aiProvider: 'anthropic',\n});\n\nconst result = await verifyService.verify(spec, implementationCode, {\n tiers: ['structure', 'behavior'],\n failFast: false,\n includeSuggestions: true,\n});\n\nconsole.log(result.passed); // true/false\nconsole.log(result.score); // 0-100\nconsole.log(result.summary); // Human-readable summary\n\\`\\`\\`\n\n## Verification Report\n\nThe report includes:\n\n- **passed**: Overall compliance\n- **score**: 0-100 score\n- **issues**: Array of problems found\n- **suggestions**: Recommended fixes\n- **coverage**: Metrics on scenario/error/field coverage\n\nEach issue has:\n- **severity**: error, warning, or info\n- **category**: type, export, import, scenario, error_handling, semantic\n- **message**: Description of the issue\n- **suggestion**: How to fix it\n`\n\t}\n];\nregisterDocBlocks(tech_llm_integration_DocBlocks);\n\n//#endregion\nexport { tech_llm_integration_DocBlocks };"],"mappings":";;;AAGA,MAAM,iCAAiC;CACtC;EACC,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GACL;GACA;GACA;GACA;GACA;GACA;EACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyFN;CACD;EACC,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GACL;GACA;GACA;GACA;EACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkEN;CACD;EACC,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GACL;GACA;GACA;GACA;GACA;GACA;EACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DN;CACD;EACC,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GACL;GACA;GACA;GACA;GACA;EACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+EN;CACD;AACD,kBAAkB,+BAA+B"}
|
|
1
|
+
{"version":3,"file":"llm-integration.docblock.js","names":[],"sources":["../../../../../../../../../libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js"],"sourcesContent":["import { registerDocBlocks } from \"../../registry.js\";\n\n//#region src/docs/tech/llm/llm-integration.docblock.ts\nconst tech_llm_integration_DocBlocks = [\n\t{\n\t\tid: \"docs.tech.llm.overview\",\n\t\ttitle: \"LLM Integration Overview\",\n\t\tsummary: \"Export specs to LLM-friendly formats, generate implementation guides, and verify implementations.\",\n\t\tkind: \"reference\",\n\t\tvisibility: \"public\",\n\t\troute: \"/docs/tech/llm/overview\",\n\t\ttags: [\n\t\t\t\"llm\",\n\t\t\t\"ai\",\n\t\t\t\"export\",\n\t\t\t\"guide\",\n\t\t\t\"verify\"\n\t\t],\n\t\tbody: `# LLM Integration\n\nContractSpec provides first-class LLM integration to bridge specifications and AI coding agents.\n\n## Core Features\n\n### 1. Multi-Format Export\n\nExport specs to markdown in formats optimized for LLM consumption:\n\n- **Context format**: Summary for understanding (goal, context, acceptance criteria)\n- **Full format**: Complete spec with all details (I/O schemas, policy, events)\n- **Prompt format**: Actionable prompt with implementation instructions\n\n### 2. Implementation Guidance\n\nGenerate agent-specific implementation plans:\n\n- **Claude Code**: Extended thinking mode with structured prompts\n- **Cursor CLI**: Background/composer mode with .mdc rules generation\n- **Generic MCP**: Standard format for any MCP-compatible agent\n\n### 3. Tiered Verification\n\nVerify implementations against specs:\n\n- **Tier 1 (Structure)**: Types, exports, imports validation\n- **Tier 2 (Behavior)**: Scenario coverage, error handling, events\n- **Tier 3 (AI Review)**: Semantic compliance analysis via LLM\n\n## Access Points\n\n| Surface | Commands/Tools |\n|---------|---------------|\n| CLI | \\`contractspec llm export\\`, \\`guide\\`, \\`verify\\`, \\`copy\\` |\n| MCP | \\`llm.export\\`, \\`llm.guide\\`, \\`llm.verify\\` tools |\n| VSCode | Export to LLM, Generate Guide, Verify, Copy commands |\n\n## Quick Start\n\n### CLI Usage\n\n\\`\\`\\`bash\n# Export spec as markdown\ncontractspec llm export path/to/my.spec.ts --format full\n\n# Generate implementation guide\ncontractspec llm guide path/to/my.spec.ts --agent claude-code\n\n# Verify implementation\ncontractspec llm verify path/to/my.spec.ts path/to/impl.ts --tier 2\n\n# Copy spec to clipboard\ncontractspec llm copy path/to/my.spec.ts --format context\n\\`\\`\\`\n\n### MCP Usage\n\n\\`\\`\\`\n# Export spec\nllm.export { specPath: \"path/to/my.spec.ts\", format: \"full\" }\n\n# Generate guide\nllm.guide { specPath: \"path/to/my.spec.ts\", agent: \"cursor-cli\" }\n\n# Verify implementation\nllm.verify { specPath: \"path/to/my.spec.ts\", implementationPath: \"path/to/impl.ts\", tier: \"2\" }\n\\`\\`\\`\n\n### Programmatic Usage\n\n\\`\\`\\`typescript\nimport { operationSpecToFullMarkdown, operationSpecToAgentPrompt } from '@lssm/lib.contracts/llm';\nimport { createAgentGuideService, createVerifyService } from '@lssm/bundle.contractspec-workspace';\n\n// Export\nconst markdown = operationSpecToFullMarkdown(mySpec);\n\n// Generate guide\nconst guideService = createAgentGuideService({ defaultAgent: 'claude-code' });\nconst guide = guideService.generateGuide(mySpec);\n\n// Verify\nconst verifyService = createVerifyService();\nconst result = await verifyService.verify(mySpec, implementationCode, {\n tiers: ['structure', 'behavior']\n});\n\\`\\`\\`\n`\n\t},\n\t{\n\t\tid: \"docs.tech.llm.export-formats\",\n\t\ttitle: \"LLM Export Formats\",\n\t\tsummary: \"Detailed explanation of the three export formats for LLM consumption.\",\n\t\tkind: \"reference\",\n\t\tvisibility: \"public\",\n\t\troute: \"/docs/tech/llm/export-formats\",\n\t\ttags: [\n\t\t\t\"llm\",\n\t\t\t\"export\",\n\t\t\t\"markdown\"\n\t\t],\n\t\tbody: `# LLM Export Formats\n\nContractSpec provides three export formats optimized for different LLM use cases.\n\n## Context Format\n\nBest for: Understanding what a spec does, providing background to LLMs.\n\nIncludes:\n- Spec name, version, type\n- Goal and context\n- Description\n- Acceptance scenarios\n\nExample:\n\n\\`\\`\\`markdown\n# users.createUser (v1)\n\n> Create a new user account with email verification.\n\n**Type:** command | **Stability:** stable\n\n## Goal\nCreate a new user in the system and trigger email verification.\n\n## Context\nPart of the user onboarding flow. Called after signup form submission.\n\n## Acceptance Criteria\n### Happy path\n**Given:** Valid email and password\n**When:** User submits registration\n**Then:** Account is created, verification email is sent\n\\`\\`\\`\n\n## Full Format\n\nBest for: Complete documentation, implementation reference.\n\nIncludes everything:\n- All metadata\n- JSON schemas for I/O\n- Error definitions\n- Policy (auth, rate limits, PII)\n- Events emitted\n- Examples\n- Transport configuration\n\n## Prompt Format\n\nBest for: Feeding directly to coding agents.\n\nIncludes:\n- Task header with clear instructions\n- Full spec context\n- Implementation requirements\n- Task-specific guidance (implement/test/refactor/review)\n- Expected output format\n\nThe prompt format adapts based on task type:\n- **implement**: Full implementation with tests\n- **test**: Test generation for existing code\n- **refactor**: Refactoring while maintaining behavior\n- **review**: Code review against spec\n`\n\t},\n\t{\n\t\tid: \"docs.tech.llm.agent-adapters\",\n\t\ttitle: \"Agent Adapters\",\n\t\tsummary: \"Adapters for different AI coding agents (Claude, Cursor, MCP).\",\n\t\tkind: \"reference\",\n\t\tvisibility: \"public\",\n\t\troute: \"/docs/tech/llm/agent-adapters\",\n\t\ttags: [\n\t\t\t\"llm\",\n\t\t\t\"agents\",\n\t\t\t\"claude\",\n\t\t\t\"cursor\",\n\t\t\t\"mcp\"\n\t\t],\n\t\tbody: `# Agent Adapters\n\nContractSpec provides specialized adapters for different AI coding agents.\n\n## Claude Code Adapter\n\nOptimized for Anthropic Claude's extended thinking and code generation.\n\nFeatures:\n- Structured markdown with clear sections\n- Checklists for steps and verification\n- Icons for file operations (📝 create, ✏️ modify)\n- System prompt for ContractSpec context\n\nUsage:\n\\`\\`\\`typescript\nconst guideService = createAgentGuideService({ defaultAgent: 'claude-code' });\nconst result = guideService.generateGuide(spec, { agent: 'claude-code' });\n// result.prompt.systemPrompt - Claude system context\n// result.prompt.taskPrompt - Task-specific instructions\n\\`\\`\\`\n\n## Cursor CLI Adapter\n\nOptimized for Cursor's background/composer mode.\n\nFeatures:\n- Compact format for context efficiency\n- .mdc cursor rules generation\n- Integration with Cursor's file system\n- Concise step lists\n\nGenerate Cursor Rules:\n\\`\\`\\`typescript\nconst cursorRules = guideService.generateAgentConfig(spec, 'cursor-cli');\n// Save to .cursor/rules/my-spec.mdc\n\\`\\`\\`\n\n## Generic MCP Adapter\n\nWorks with any MCP-compatible agent (Cline, Aider, etc.).\n\nFeatures:\n- Standard markdown format\n- Table-based metadata\n- JSON resource format support\n- Prompt message format\n\nThe generic adapter is the default and works across all agents.\n\n## Choosing an Adapter\n\n| Agent | Best For | Key Features |\n|-------|----------|--------------|\n| Claude Code | Complex implementations | Extended thinking, detailed steps |\n| Cursor CLI | IDE-integrated work | Cursor rules, compact format |\n| Generic MCP | Any MCP agent | Universal compatibility |\n`\n\t},\n\t{\n\t\tid: \"docs.tech.llm.verification\",\n\t\ttitle: \"Implementation Verification\",\n\t\tsummary: \"Tiered verification of implementations against specifications.\",\n\t\tkind: \"reference\",\n\t\tvisibility: \"public\",\n\t\troute: \"/docs/tech/llm/verification\",\n\t\ttags: [\n\t\t\t\"llm\",\n\t\t\t\"verify\",\n\t\t\t\"validation\",\n\t\t\t\"testing\"\n\t\t],\n\t\tbody: `# Implementation Verification\n\nContractSpec provides tiered verification to check if implementations comply with specs.\n\n## Verification Tiers\n\n### Tier 1: Structure (Fast)\n\nChecks TypeScript structure against spec requirements:\n\n| Check | What it validates |\n|-------|------------------|\n| Handler export | Function is properly exported |\n| Contracts import | Imports from @lssm/lib.contracts |\n| Schema import | Imports from @lssm/lib.schema |\n| No \\`any\\` type | TypeScript strict compliance |\n| Error handling | Error codes are referenced |\n| Event emission | Event patterns exist |\n| Input validation | Validation patterns used |\n| Async patterns | Async/await for commands |\n\n### Tier 2: Behavior (Comprehensive)\n\nChecks implementation coverage of spec behaviors:\n\n| Check | What it validates |\n|-------|------------------|\n| Scenario coverage | Acceptance scenarios implemented |\n| Example coverage | Example I/O values referenced |\n| Error cases | All error conditions handled |\n| Event conditions | Events emitted correctly |\n| Idempotency | Idempotent patterns (if required) |\n\n### Tier 3: AI Review (Deep)\n\nUses LLM for semantic analysis:\n\n- Does the implementation fulfill the spec's intent?\n- Are edge cases properly handled?\n- Is the code quality acceptable?\n- Are there any subtle violations?\n\nRequires AI API key configuration.\n\n## Running Verification\n\n\\`\\`\\`typescript\nconst verifyService = createVerifyService({\n aiApiKey: process.env.ANTHROPIC_API_KEY, // Optional, for Tier 3\n aiProvider: 'anthropic',\n});\n\nconst result = await verifyService.verify(spec, implementationCode, {\n tiers: ['structure', 'behavior'],\n failFast: false,\n includeSuggestions: true,\n});\n\nconsole.log(result.passed); // true/false\nconsole.log(result.score); // 0-100\nconsole.log(result.summary); // Human-readable summary\n\\`\\`\\`\n\n## Verification Report\n\nThe report includes:\n\n- **passed**: Overall compliance\n- **score**: 0-100 score\n- **issues**: Array of problems found\n- **suggestions**: Recommended fixes\n- **coverage**: Metrics on scenario/error/field coverage\n\nEach issue has:\n- **severity**: error, warning, or info\n- **category**: type, export, import, scenario, error_handling, semantic\n- **message**: Description of the issue\n- **suggestion**: How to fix it\n`\n\t}\n];\nregisterDocBlocks(tech_llm_integration_DocBlocks);\n\n//#endregion\nexport { tech_llm_integration_DocBlocks };"],"mappings":";;;AAGA,MAAM,iCAAiC;CACtC;EACC,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GACL;GACA;GACA;GACA;GACA;GACA;EACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyFN;CACD;EACC,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GACL;GACA;GACA;GACA;EACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkEN;CACD;EACC,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GACL;GACA;GACA;GACA;GACA;GACA;EACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DN;CACD;EACC,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GACL;GACA;GACA;GACA;GACA;EACD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+EN;CACD;AACD,kBAAkB,+BAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "../registry-utils.js";
|