@kb-labs/infra-worker-contracts 2.16.0 → 2.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/version.ts","../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/contract.ts"],"names":[],"mappings":";AAAO,IAAM,iBAAA,GAAoB,uBAAA;AAI1B,IAAM,gBAAA,GAAmB,OAAA;;;ACDzB,IAAM,uBAAA,GAA0B;AAAA,EACrC,MAAA,EAAQ,iBAAA;AAAA,EACR,QAAA,EAAU,uBAAA;AAAA,EACV,gBAAA;AAAA,EACA,SAAA,EAAW;AAAA,IACT,sBAAA,EAAwB;AAAA,MACtB,EAAA,EAAI,sBAAA;AAAA,MACJ,IAAA,EAAM,MAAA;AAAA,MACN,WAAA,EAAa,+CAAA;AAAA,MACb,WAAA,EAAa,qCAAA;AAAA,MACb,SAAA,EAAW,kBAAA;AAAA,MACX,SAAA,EAAW,2DAAA;AAAA,MACX,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,sBAAA;AAAA,QACT,OAAA,EAAS;AAAA,UACP,WAAA,EAAa,QAAA;AAAA,UACb,aAAA,EAAe,SAAA;AAAA,UACf,UAAA,EAAY;AAAA;AACd;AACF;AACF,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,sBAAA,EAAwB;AAAA,MACtB,EAAA,EAAI,sBAAA;AAAA,MACJ,WAAA,EAAa,sEAAA;AAAA,MACb,KAAA,EAAO;AAAA,QACL,GAAA,EAAK,0DAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,GAAA,EAAK,2DAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,QAAA,EAAU,CAAC,sBAAsB,CAAA;AAAA,MACjC,QAAA,EAAU,CAAC,4EAA4E;AAAA,KACzF;AAAA,IACA,+BAAA,EAAiC;AAAA,MAC/B,EAAA,EAAI,+BAAA;AAAA,MACJ,WAAA,EAAa,6CAAA;AAAA,MACb,KAAA,EAAO;AAAA,QACL,GAAA,EAAK,6DAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,GAAA,EAAK,8DAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,UAAU,EAAC;AAAA,MACX,QAAA,EAAU,CAAC,6EAA6E;AAAA,KAC1F;AAAA,IACA,+BAAA,EAAiC;AAAA,MAC/B,EAAA,EAAI,+BAAA;AAAA,MACJ,WAAA,EAAa,4CAAA;AAAA,MACb,KAAA,EAAO;AAAA,QACL,GAAA,EAAK,6DAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,GAAA,EAAK,8DAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,UAAU,EAAC;AAAA,MACX,QAAA,EAAU,CAAC,6EAA6E;AAAA;AAC1F,GACF;AAAA,EACA,WAAW,EAAC;AAAA,EACZ,GAAA,EAAK;AAAA,IACH,IAAA,EAAM;AAAA,MACJ,QAAA,EAAU,0BAAA;AAAA,MACV,QAAQ;AAAC;AACX;AAEJ","file":"contract.js","sourcesContent":["export const contractsSchemaId = 'kb.plugin.contracts/1' as const;\n\nexport type ContractsSchemaId = typeof contractsSchemaId;\n\nexport const contractsVersion = '1.0.0' as const;\n\n","import type { PluginContracts } from './types';\nimport { contractsSchemaId, contractsVersion } from './version';\n\nexport const pluginContractsManifest = {\n schema: contractsSchemaId,\n pluginId: '@kb-labs/infra-worker',\n contractsVersion,\n artifacts: {\n 'infra.prepare.result': {\n id: 'infra.prepare.result',\n kind: 'json',\n description: 'Result payload for infra preparation command.',\n pathPattern: 'artifacts/infra/prepare/result.json',\n mediaType: 'application/json',\n schemaRef: '@kb-labs/infra-worker-contracts/schema#PrepareInfraOutput',\n example: {\n summary: 'Infra prepare output',\n payload: {\n workspaceId: 'ws_123',\n environmentId: 'env_456',\n snapshotId: 'snap_789',\n },\n },\n }\n },\n commands: {\n 'infra-worker:prepare': {\n id: 'infra-worker:prepare',\n description: 'Materialize workspace and optionally provision environment/snapshot.',\n input: {\n ref: '@kb-labs/infra-worker-contracts/schema#PrepareInfraInput',\n format: 'zod'\n },\n output: {\n ref: '@kb-labs/infra-worker-contracts/schema#PrepareInfraOutput',\n format: 'zod'\n },\n produces: ['infra.prepare.result'],\n examples: ['kb infra-worker prepare --sourceRef repo://main --basePath /workspace/main']\n },\n 'infra-worker:capture-snapshot': {\n id: 'infra-worker:capture-snapshot',\n description: 'Capture snapshot for workspace/environment.',\n input: {\n ref: '@kb-labs/infra-worker-contracts/schema#CaptureSnapshotInput',\n format: 'zod'\n },\n output: {\n ref: '@kb-labs/infra-worker-contracts/schema#CaptureSnapshotOutput',\n format: 'zod'\n },\n produces: [],\n examples: ['kb infra-worker capture-snapshot --workspaceId ws_123 --namespace runs/main']\n },\n 'infra-worker:restore-snapshot': {\n id: 'infra-worker:restore-snapshot',\n description: 'Restore snapshot to workspace/environment.',\n input: {\n ref: '@kb-labs/infra-worker-contracts/schema#RestoreSnapshotInput',\n format: 'zod'\n },\n output: {\n ref: '@kb-labs/infra-worker-contracts/schema#RestoreSnapshotOutput',\n format: 'zod'\n },\n produces: [],\n examples: ['kb infra-worker restore-snapshot --snapshotId snap_789 --workspaceId ws_123']\n }\n },\n workflows: {},\n api: {\n rest: {\n basePath: '/v1/plugins/infra-worker',\n routes: {},\n },\n },\n} as const satisfies PluginContracts;\n\nexport type PluginArtifactIds = keyof typeof pluginContractsManifest.artifacts;\nexport type PluginCommandIds = keyof typeof pluginContractsManifest.commands;\nexport type PluginWorkflowIds = keyof typeof pluginContractsManifest.workflows;\nexport type PluginRouteIds = typeof pluginContractsManifest.api extends { rest: { routes: infer R } }\n ? R extends Record<string, any>\n ? keyof R\n : never\n : never;\n"]}
1
+ {"version":3,"sources":["../src/version.ts","../src/contract.ts"],"names":[],"mappings":";AAAO,IAAM,iBAAA,GAAoB,uBAAA;AAI1B,IAAM,gBAAA,GAAmB,OAAA;;;ACDzB,IAAM,uBAAA,GAA0B;AAAA,EACrC,MAAA,EAAQ,iBAAA;AAAA,EACR,QAAA,EAAU,uBAAA;AAAA,EACV,gBAAA;AAAA,EACA,SAAA,EAAW;AAAA,IACT,sBAAA,EAAwB;AAAA,MACtB,EAAA,EAAI,sBAAA;AAAA,MACJ,IAAA,EAAM,MAAA;AAAA,MACN,WAAA,EAAa,+CAAA;AAAA,MACb,WAAA,EAAa,qCAAA;AAAA,MACb,SAAA,EAAW,kBAAA;AAAA,MACX,SAAA,EAAW,2DAAA;AAAA,MACX,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,sBAAA;AAAA,QACT,OAAA,EAAS;AAAA,UACP,WAAA,EAAa,QAAA;AAAA,UACb,aAAA,EAAe,SAAA;AAAA,UACf,UAAA,EAAY;AAAA;AACd;AACF;AACF,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,sBAAA,EAAwB;AAAA,MACtB,EAAA,EAAI,sBAAA;AAAA,MACJ,WAAA,EAAa,sEAAA;AAAA,MACb,KAAA,EAAO;AAAA,QACL,GAAA,EAAK,0DAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,GAAA,EAAK,2DAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,QAAA,EAAU,CAAC,sBAAsB,CAAA;AAAA,MACjC,QAAA,EAAU,CAAC,4EAA4E;AAAA,KACzF;AAAA,IACA,+BAAA,EAAiC;AAAA,MAC/B,EAAA,EAAI,+BAAA;AAAA,MACJ,WAAA,EAAa,6CAAA;AAAA,MACb,KAAA,EAAO;AAAA,QACL,GAAA,EAAK,6DAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,GAAA,EAAK,8DAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,UAAU,EAAC;AAAA,MACX,QAAA,EAAU,CAAC,6EAA6E;AAAA,KAC1F;AAAA,IACA,+BAAA,EAAiC;AAAA,MAC/B,EAAA,EAAI,+BAAA;AAAA,MACJ,WAAA,EAAa,4CAAA;AAAA,MACb,KAAA,EAAO;AAAA,QACL,GAAA,EAAK,6DAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,GAAA,EAAK,8DAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,UAAU,EAAC;AAAA,MACX,QAAA,EAAU,CAAC,6EAA6E;AAAA;AAC1F,GACF;AAAA,EACA,WAAW,EAAC;AAAA,EACZ,GAAA,EAAK;AAAA,IACH,IAAA,EAAM;AAAA,MACJ,QAAA,EAAU,0BAAA;AAAA,MACV,QAAQ;AAAC;AACX;AAEJ","file":"contract.js","sourcesContent":["export const contractsSchemaId = 'kb.plugin.contracts/1' as const;\n\nexport type ContractsSchemaId = typeof contractsSchemaId;\n\nexport const contractsVersion = '1.0.0' as const;\n\n","import type { PluginContracts } from './types';\nimport { contractsSchemaId, contractsVersion } from './version';\n\nexport const pluginContractsManifest = {\n schema: contractsSchemaId,\n pluginId: '@kb-labs/infra-worker',\n contractsVersion,\n artifacts: {\n 'infra.prepare.result': {\n id: 'infra.prepare.result',\n kind: 'json',\n description: 'Result payload for infra preparation command.',\n pathPattern: 'artifacts/infra/prepare/result.json',\n mediaType: 'application/json',\n schemaRef: '@kb-labs/infra-worker-contracts/schema#PrepareInfraOutput',\n example: {\n summary: 'Infra prepare output',\n payload: {\n workspaceId: 'ws_123',\n environmentId: 'env_456',\n snapshotId: 'snap_789',\n },\n },\n }\n },\n commands: {\n 'infra-worker:prepare': {\n id: 'infra-worker:prepare',\n description: 'Materialize workspace and optionally provision environment/snapshot.',\n input: {\n ref: '@kb-labs/infra-worker-contracts/schema#PrepareInfraInput',\n format: 'zod'\n },\n output: {\n ref: '@kb-labs/infra-worker-contracts/schema#PrepareInfraOutput',\n format: 'zod'\n },\n produces: ['infra.prepare.result'],\n examples: ['kb infra-worker prepare --sourceRef repo://main --basePath /workspace/main']\n },\n 'infra-worker:capture-snapshot': {\n id: 'infra-worker:capture-snapshot',\n description: 'Capture snapshot for workspace/environment.',\n input: {\n ref: '@kb-labs/infra-worker-contracts/schema#CaptureSnapshotInput',\n format: 'zod'\n },\n output: {\n ref: '@kb-labs/infra-worker-contracts/schema#CaptureSnapshotOutput',\n format: 'zod'\n },\n produces: [],\n examples: ['kb infra-worker capture-snapshot --workspaceId ws_123 --namespace runs/main']\n },\n 'infra-worker:restore-snapshot': {\n id: 'infra-worker:restore-snapshot',\n description: 'Restore snapshot to workspace/environment.',\n input: {\n ref: '@kb-labs/infra-worker-contracts/schema#RestoreSnapshotInput',\n format: 'zod'\n },\n output: {\n ref: '@kb-labs/infra-worker-contracts/schema#RestoreSnapshotOutput',\n format: 'zod'\n },\n produces: [],\n examples: ['kb infra-worker restore-snapshot --snapshotId snap_789 --workspaceId ws_123']\n }\n },\n workflows: {},\n api: {\n rest: {\n basePath: '/v1/plugins/infra-worker',\n routes: {},\n },\n },\n} as const satisfies PluginContracts;\n\nexport type PluginArtifactIds = keyof typeof pluginContractsManifest.artifacts;\nexport type PluginCommandIds = keyof typeof pluginContractsManifest.commands;\nexport type PluginWorkflowIds = keyof typeof pluginContractsManifest.workflows;\nexport type PluginRouteIds = typeof pluginContractsManifest.api extends { rest: { routes: infer R } }\n ? R extends Record<string, any>\n ? keyof R\n : never\n : never;\n"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/version.ts","../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/contract.ts","../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/helpers.ts","../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/schema/api.schema.ts","../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/schema/artifacts.schema.ts","../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/schema/commands.schema.ts","../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/schema/workflows.schema.ts","../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/schema/contract.schema.ts","../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/types/config.ts","../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/schema.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["export const contractsSchemaId = 'kb.plugin.contracts/1' as const;\n\nexport type ContractsSchemaId = typeof contractsSchemaId;\n\nexport const contractsVersion = '1.0.0' as const;\n\n","import type { PluginContracts } from './types';\nimport { contractsSchemaId, contractsVersion } from './version';\n\nexport const pluginContractsManifest = {\n schema: contractsSchemaId,\n pluginId: '@kb-labs/infra-worker',\n contractsVersion,\n artifacts: {\n 'infra.prepare.result': {\n id: 'infra.prepare.result',\n kind: 'json',\n description: 'Result payload for infra preparation command.',\n pathPattern: 'artifacts/infra/prepare/result.json',\n mediaType: 'application/json',\n schemaRef: '@kb-labs/infra-worker-contracts/schema#PrepareInfraOutput',\n example: {\n summary: 'Infra prepare output',\n payload: {\n workspaceId: 'ws_123',\n environmentId: 'env_456',\n snapshotId: 'snap_789',\n },\n },\n }\n },\n commands: {\n 'infra-worker:prepare': {\n id: 'infra-worker:prepare',\n description: 'Materialize workspace and optionally provision environment/snapshot.',\n input: {\n ref: '@kb-labs/infra-worker-contracts/schema#PrepareInfraInput',\n format: 'zod'\n },\n output: {\n ref: '@kb-labs/infra-worker-contracts/schema#PrepareInfraOutput',\n format: 'zod'\n },\n produces: ['infra.prepare.result'],\n examples: ['kb infra-worker prepare --sourceRef repo://main --basePath /workspace/main']\n },\n 'infra-worker:capture-snapshot': {\n id: 'infra-worker:capture-snapshot',\n description: 'Capture snapshot for workspace/environment.',\n input: {\n ref: '@kb-labs/infra-worker-contracts/schema#CaptureSnapshotInput',\n format: 'zod'\n },\n output: {\n ref: '@kb-labs/infra-worker-contracts/schema#CaptureSnapshotOutput',\n format: 'zod'\n },\n produces: [],\n examples: ['kb infra-worker capture-snapshot --workspaceId ws_123 --namespace runs/main']\n },\n 'infra-worker:restore-snapshot': {\n id: 'infra-worker:restore-snapshot',\n description: 'Restore snapshot to workspace/environment.',\n input: {\n ref: '@kb-labs/infra-worker-contracts/schema#RestoreSnapshotInput',\n format: 'zod'\n },\n output: {\n ref: '@kb-labs/infra-worker-contracts/schema#RestoreSnapshotOutput',\n format: 'zod'\n },\n produces: [],\n examples: ['kb infra-worker restore-snapshot --snapshotId snap_789 --workspaceId ws_123']\n }\n },\n workflows: {},\n api: {\n rest: {\n basePath: '/v1/plugins/infra-worker',\n routes: {},\n },\n },\n} as const satisfies PluginContracts;\n\nexport type PluginArtifactIds = keyof typeof pluginContractsManifest.artifacts;\nexport type PluginCommandIds = keyof typeof pluginContractsManifest.commands;\nexport type PluginWorkflowIds = keyof typeof pluginContractsManifest.workflows;\nexport type PluginRouteIds = typeof pluginContractsManifest.api extends { rest: { routes: infer R } }\n ? R extends Record<string, any>\n ? keyof R\n : never\n : never;\n","/**\n * Type-safe helper functions for contracts\n * @module @kb-labs/plugin-template-contracts/helpers\n */\n\nimport {\n pluginContractsManifest,\n type PluginArtifactIds,\n type PluginCommandIds,\n type PluginRouteIds,\n} from './contract';\n\n/**\n * Get artifact path pattern by ID (type-safe)\n *\n * @example\n * const path = getArtifactPath('template.hello.greeting');\n * // ✅ Автодополнение работает!\n * // ✅ Проверка на этапе компиляции!\n */\nexport function getArtifactPath<T extends PluginArtifactIds>(id: T): string {\n const artifact = pluginContractsManifest.artifacts[id];\n if (!artifact) {\n throw new Error(`Artifact ${String(id)} not found in contracts`);\n }\n return artifact.pathPattern;\n}\n\n/**\n * Get artifact metadata by ID (type-safe)\n *\n * @example\n * const artifact = getArtifact('template.hello.greeting');\n * // artifact.kind, artifact.description, и т.д.\n */\nexport function getArtifact<T extends PluginArtifactIds>(id: T) {\n const artifact = pluginContractsManifest.artifacts[id];\n if (!artifact) {\n throw new Error(`Artifact ${String(id)} not found in contracts`);\n }\n return artifact;\n}\n\n/**\n * Check if artifact ID exists in contracts (type-safe)\n *\n * @example\n * if (hasArtifact('template.hello.greeting')) {\n * // ✅ Типизировано!\n * }\n */\nexport function hasArtifact(id: string): id is PluginArtifactIds {\n return id in pluginContractsManifest.artifacts;\n}\n\n/**\n * Get command metadata by ID (type-safe)\n *\n * @example\n * const command = getCommand('template:hello');\n * // command.description, command.input, command.output, и т.д.\n */\nexport function getCommand<T extends PluginCommandIds>(id: T) {\n if (!pluginContractsManifest.commands) {\n throw new Error('Commands not defined in contracts');\n }\n const command = pluginContractsManifest.commands[id];\n if (!command) {\n throw new Error(`Command ${String(id)} not found in contracts`);\n }\n return command;\n}\n\n/**\n * Check if command ID exists in contracts (type-safe)\n *\n * @example\n * if (hasCommand('template:hello')) {\n * // ✅ Типизировано!\n * }\n */\nexport function hasCommand(id: string): id is PluginCommandIds {\n return pluginContractsManifest.commands !== undefined && id in pluginContractsManifest.commands;\n}\n\n/**\n * Type-safe identity function for command IDs (useful for validation)\n *\n * @example\n * const cmdId = getCommandId('template:hello'); // ✅ Проверка на этапе компиляции!\n */\nexport function getCommandId<T extends PluginCommandIds>(id: T): T {\n return id;\n}\n\n/**\n * Type-safe identity function for artifact IDs (useful for validation)\n *\n * @example\n * const artifactId = getArtifactId('template.hello.greeting'); // ✅ Проверка!\n */\nexport function getArtifactId<T extends PluginArtifactIds>(id: T): T {\n return id;\n}\n\n/**\n * Get route metadata by ID (type-safe)\n *\n * @example\n * const route = getRoute('template.rest.hello');\n * // route.method, route.path, route.response, и т.д.\n */\nexport function getRoute<T extends PluginRouteIds>(id: T) {\n if (!pluginContractsManifest.api?.rest?.routes) {\n throw new Error('REST routes not defined in contracts');\n }\n const route = pluginContractsManifest.api.rest.routes[id];\n if (!route) {\n throw new Error(`Route ${String(id)} not found in contracts`);\n }\n return route;\n}\n\n/**\n * Check if route ID exists in contracts (type-safe)\n *\n * @example\n * if (hasRoute('template.rest.hello')) {\n * // ✅ Типизировано!\n * }\n */\nexport function hasRoute(id: string): id is PluginRouteIds {\n return (\n pluginContractsManifest.api?.rest?.routes !== undefined &&\n id in pluginContractsManifest.api.rest.routes\n );\n}\n\n/**\n * Type-safe identity function for route IDs (useful for validation)\n *\n * @example\n * const routeId = getRouteId('template.rest.hello'); // ✅ Проверка!\n */\nexport function getRouteId<T extends PluginRouteIds>(id: T): T {\n return id;\n}\n\n","import { z } from 'zod';\n\nexport const schemaReferenceSchema = z.object({\n ref: z.string().min(1),\n format: z.enum(['zod', 'json-schema', 'openapi']).optional(),\n description: z.string().optional()\n});\n\nexport const restRouteContractSchema = z.object({\n id: z.string().min(1),\n method: z.string().min(1),\n path: z.string().min(1),\n description: z.string().optional(),\n request: schemaReferenceSchema.optional(),\n response: schemaReferenceSchema.optional(),\n produces: z.array(z.string().min(1)).optional(),\n consumes: z.array(z.string().min(1)).optional()\n});\n\nexport const restApiContractSchema = z.object({\n basePath: z.string().min(1),\n routes: z.record(restRouteContractSchema)\n});\n\nexport const apiContractSchema = z.object({\n rest: restApiContractSchema.optional()\n});\n\n","import { z } from 'zod';\n\nexport const artifactExampleSchema = z.object({\n summary: z.string().optional(),\n payload: z.unknown().optional()\n});\n\nexport const artifactContractSchema = z.object({\n id: z.string().min(1),\n kind: z.enum(['file', 'json', 'markdown', 'binary', 'dir', 'log']),\n description: z.string().optional(),\n pathPattern: z.string().min(1).optional(),\n mediaType: z.string().min(1).optional(),\n schemaRef: z.string().min(1).optional(),\n example: artifactExampleSchema.optional()\n});\n\nexport const artifactsContractMapSchema = z.record(artifactContractSchema);\n\n","import { z } from 'zod';\nimport { schemaReferenceSchema } from './api.schema';\n\nexport const commandContractSchema = z.object({\n id: z.string().min(1),\n description: z.string().optional(),\n input: schemaReferenceSchema.optional(),\n output: schemaReferenceSchema.optional(),\n produces: z.array(z.string().min(1)).optional(),\n consumes: z.array(z.string().min(1)).optional(),\n examples: z.array(z.string().min(1)).optional()\n});\n\nexport const commandContractMapSchema = z.record(commandContractSchema);\n\n","import { z } from 'zod';\n\nexport const workflowStepSchema = z.object({\n id: z.string().min(1),\n description: z.string().optional(),\n commandId: z.string().min(1).optional(),\n consumes: z.array(z.string().min(1)).optional(),\n produces: z.array(z.string().min(1)).optional()\n});\n\nexport const workflowContractSchema = z.object({\n id: z.string().min(1),\n description: z.string().optional(),\n consumes: z.array(z.string().min(1)).optional(),\n produces: z.array(z.string().min(1)).optional(),\n steps: z.array(workflowStepSchema).optional()\n});\n\nexport const workflowContractMapSchema = z.record(workflowContractSchema);\n\n","import { z } from 'zod';\nimport { apiContractSchema } from './api.schema';\nimport { artifactsContractMapSchema } from './artifacts.schema';\nimport { commandContractMapSchema } from './commands.schema';\nimport { workflowContractMapSchema } from './workflows.schema';\nimport { contractsSchemaId } from '../version';\n\nexport const pluginContractsSchema = z\n .object({\n schema: z.literal(contractsSchemaId),\n pluginId: z.string().min(1),\n contractsVersion: z.string().min(1),\n artifacts: artifactsContractMapSchema,\n commands: commandContractMapSchema.optional(),\n workflows: workflowContractMapSchema.optional(),\n api: apiContractSchema.optional()\n })\n .strict();\n\nexport type PluginContractsSchema = z.infer<typeof pluginContractsSchema>;\n\nexport function parsePluginContracts(input: unknown) {\n return pluginContractsSchema.parse(input);\n}\n\n","/**\n * Plugin Configuration Contract\n *\n * Defines the shape of plugin configuration stored in kb.config.json\n * under plugins.template section.\n *\n * This type is the single source of truth for:\n * - defineSetup (setup handler knows what config to create)\n * - defineCommand (commands can access typed config)\n * - REST handlers (API can access typed config)\n */\n\n/**\n * Greeting configuration\n */\nexport interface GreetingConfig {\n /** Path to greeting config file */\n configPath: string;\n /** Default name to greet */\n defaultName: string;\n}\n\n/**\n * Output configuration\n */\nexport interface OutputConfig {\n /** Output directory for generated files */\n directory: string;\n}\n\n/**\n * Plugin configuration stored in kb.config.json\n *\n * @example\n * ```json\n * {\n * \"plugins\": {\n * \"template\": {\n * \"enabled\": true,\n * \"greeting\": {\n * \"configPath\": \".kb/template/hello-config.json\",\n * \"defaultName\": \"KB Labs\"\n * },\n * \"output\": {\n * \"directory\": \".kb/template/output\"\n * }\n * }\n * }\n * }\n * ```\n */\nexport interface PluginConfig {\n /** Whether the plugin is enabled */\n enabled: boolean;\n /** Greeting configuration */\n greeting: GreetingConfig;\n /** Output configuration */\n output: OutputConfig;\n}\n\n/**\n * Default plugin configuration values\n */\nexport const defaultPluginConfig: PluginConfig = {\n enabled: true,\n greeting: {\n configPath: '.kb/template/hello-config.json',\n defaultName: 'KB Labs',\n },\n output: {\n directory: '.kb/template/output',\n },\n};\n","import { z } from 'zod';\n\nexport const PrepareInfraInputSchema = z.object({\n sourceRef: z.string().optional(),\n basePath: z.string().optional(),\n createEnvironment: z.boolean().optional(),\n templateId: z.string().optional(),\n ttlMs: z.number().int().positive().optional(),\n captureSnapshot: z.boolean().optional(),\n namespace: z.string().optional(),\n});\n\nexport const PrepareInfraOutputSchema = z.object({\n workspaceId: z.string(),\n environmentId: z.string().optional(),\n snapshotId: z.string().optional(),\n});\n\nexport type PrepareInfraInput = z.infer<typeof PrepareInfraInputSchema>;\nexport type PrepareInfraOutput = z.infer<typeof PrepareInfraOutputSchema>;\n\nexport const CaptureSnapshotInputSchema = z.object({\n workspaceId: z.string().optional(),\n environmentId: z.string().optional(),\n namespace: z.string().optional(),\n sourcePath: z.string().optional(),\n});\n\nexport const CaptureSnapshotOutputSchema = z.object({\n snapshotId: z.string(),\n});\n\nexport type CaptureSnapshotInput = z.infer<typeof CaptureSnapshotInputSchema>;\nexport type CaptureSnapshotOutput = z.infer<typeof CaptureSnapshotOutputSchema>;\n\nexport const RestoreSnapshotInputSchema = z.object({\n snapshotId: z.string(),\n workspaceId: z.string().optional(),\n environmentId: z.string().optional(),\n targetPath: z.string().optional(),\n overwrite: z.boolean().optional(),\n});\n\nexport const RestoreSnapshotOutputSchema = z.object({\n snapshotId: z.string(),\n restoredAt: z.string(),\n});\n\nexport type RestoreSnapshotInput = z.infer<typeof RestoreSnapshotInputSchema>;\nexport type RestoreSnapshotOutput = z.infer<typeof RestoreSnapshotOutputSchema>;\n"]}
1
+ {"version":3,"sources":["../src/version.ts","../src/contract.ts","../src/helpers.ts","../src/schema/api.schema.ts","../src/schema/artifacts.schema.ts","../src/schema/commands.schema.ts","../src/schema/workflows.schema.ts","../src/schema/contract.schema.ts","../src/types/config.ts","../src/schema.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["export const contractsSchemaId = 'kb.plugin.contracts/1' as const;\n\nexport type ContractsSchemaId = typeof contractsSchemaId;\n\nexport const contractsVersion = '1.0.0' as const;\n\n","import type { PluginContracts } from './types';\nimport { contractsSchemaId, contractsVersion } from './version';\n\nexport const pluginContractsManifest = {\n schema: contractsSchemaId,\n pluginId: '@kb-labs/infra-worker',\n contractsVersion,\n artifacts: {\n 'infra.prepare.result': {\n id: 'infra.prepare.result',\n kind: 'json',\n description: 'Result payload for infra preparation command.',\n pathPattern: 'artifacts/infra/prepare/result.json',\n mediaType: 'application/json',\n schemaRef: '@kb-labs/infra-worker-contracts/schema#PrepareInfraOutput',\n example: {\n summary: 'Infra prepare output',\n payload: {\n workspaceId: 'ws_123',\n environmentId: 'env_456',\n snapshotId: 'snap_789',\n },\n },\n }\n },\n commands: {\n 'infra-worker:prepare': {\n id: 'infra-worker:prepare',\n description: 'Materialize workspace and optionally provision environment/snapshot.',\n input: {\n ref: '@kb-labs/infra-worker-contracts/schema#PrepareInfraInput',\n format: 'zod'\n },\n output: {\n ref: '@kb-labs/infra-worker-contracts/schema#PrepareInfraOutput',\n format: 'zod'\n },\n produces: ['infra.prepare.result'],\n examples: ['kb infra-worker prepare --sourceRef repo://main --basePath /workspace/main']\n },\n 'infra-worker:capture-snapshot': {\n id: 'infra-worker:capture-snapshot',\n description: 'Capture snapshot for workspace/environment.',\n input: {\n ref: '@kb-labs/infra-worker-contracts/schema#CaptureSnapshotInput',\n format: 'zod'\n },\n output: {\n ref: '@kb-labs/infra-worker-contracts/schema#CaptureSnapshotOutput',\n format: 'zod'\n },\n produces: [],\n examples: ['kb infra-worker capture-snapshot --workspaceId ws_123 --namespace runs/main']\n },\n 'infra-worker:restore-snapshot': {\n id: 'infra-worker:restore-snapshot',\n description: 'Restore snapshot to workspace/environment.',\n input: {\n ref: '@kb-labs/infra-worker-contracts/schema#RestoreSnapshotInput',\n format: 'zod'\n },\n output: {\n ref: '@kb-labs/infra-worker-contracts/schema#RestoreSnapshotOutput',\n format: 'zod'\n },\n produces: [],\n examples: ['kb infra-worker restore-snapshot --snapshotId snap_789 --workspaceId ws_123']\n }\n },\n workflows: {},\n api: {\n rest: {\n basePath: '/v1/plugins/infra-worker',\n routes: {},\n },\n },\n} as const satisfies PluginContracts;\n\nexport type PluginArtifactIds = keyof typeof pluginContractsManifest.artifacts;\nexport type PluginCommandIds = keyof typeof pluginContractsManifest.commands;\nexport type PluginWorkflowIds = keyof typeof pluginContractsManifest.workflows;\nexport type PluginRouteIds = typeof pluginContractsManifest.api extends { rest: { routes: infer R } }\n ? R extends Record<string, any>\n ? keyof R\n : never\n : never;\n","/**\n * Type-safe helper functions for contracts\n * @module @kb-labs/plugin-template-contracts/helpers\n */\n\nimport {\n pluginContractsManifest,\n type PluginArtifactIds,\n type PluginCommandIds,\n type PluginRouteIds,\n} from './contract';\n\n/**\n * Get artifact path pattern by ID (type-safe)\n *\n * @example\n * const path = getArtifactPath('template.hello.greeting');\n * // ✅ Автодополнение работает!\n * // ✅ Проверка на этапе компиляции!\n */\nexport function getArtifactPath<T extends PluginArtifactIds>(id: T): string {\n const artifact = pluginContractsManifest.artifacts[id];\n if (!artifact) {\n throw new Error(`Artifact ${String(id)} not found in contracts`);\n }\n return artifact.pathPattern;\n}\n\n/**\n * Get artifact metadata by ID (type-safe)\n *\n * @example\n * const artifact = getArtifact('template.hello.greeting');\n * // artifact.kind, artifact.description, и т.д.\n */\nexport function getArtifact<T extends PluginArtifactIds>(id: T) {\n const artifact = pluginContractsManifest.artifacts[id];\n if (!artifact) {\n throw new Error(`Artifact ${String(id)} not found in contracts`);\n }\n return artifact;\n}\n\n/**\n * Check if artifact ID exists in contracts (type-safe)\n *\n * @example\n * if (hasArtifact('template.hello.greeting')) {\n * // ✅ Типизировано!\n * }\n */\nexport function hasArtifact(id: string): id is PluginArtifactIds {\n return id in pluginContractsManifest.artifacts;\n}\n\n/**\n * Get command metadata by ID (type-safe)\n *\n * @example\n * const command = getCommand('template:hello');\n * // command.description, command.input, command.output, и т.д.\n */\nexport function getCommand<T extends PluginCommandIds>(id: T) {\n if (!pluginContractsManifest.commands) {\n throw new Error('Commands not defined in contracts');\n }\n const command = pluginContractsManifest.commands[id];\n if (!command) {\n throw new Error(`Command ${String(id)} not found in contracts`);\n }\n return command;\n}\n\n/**\n * Check if command ID exists in contracts (type-safe)\n *\n * @example\n * if (hasCommand('template:hello')) {\n * // ✅ Типизировано!\n * }\n */\nexport function hasCommand(id: string): id is PluginCommandIds {\n return pluginContractsManifest.commands !== undefined && id in pluginContractsManifest.commands;\n}\n\n/**\n * Type-safe identity function for command IDs (useful for validation)\n *\n * @example\n * const cmdId = getCommandId('template:hello'); // ✅ Проверка на этапе компиляции!\n */\nexport function getCommandId<T extends PluginCommandIds>(id: T): T {\n return id;\n}\n\n/**\n * Type-safe identity function for artifact IDs (useful for validation)\n *\n * @example\n * const artifactId = getArtifactId('template.hello.greeting'); // ✅ Проверка!\n */\nexport function getArtifactId<T extends PluginArtifactIds>(id: T): T {\n return id;\n}\n\n/**\n * Get route metadata by ID (type-safe)\n *\n * @example\n * const route = getRoute('template.rest.hello');\n * // route.method, route.path, route.response, и т.д.\n */\nexport function getRoute<T extends PluginRouteIds>(id: T) {\n if (!pluginContractsManifest.api?.rest?.routes) {\n throw new Error('REST routes not defined in contracts');\n }\n const route = pluginContractsManifest.api.rest.routes[id];\n if (!route) {\n throw new Error(`Route ${String(id)} not found in contracts`);\n }\n return route;\n}\n\n/**\n * Check if route ID exists in contracts (type-safe)\n *\n * @example\n * if (hasRoute('template.rest.hello')) {\n * // ✅ Типизировано!\n * }\n */\nexport function hasRoute(id: string): id is PluginRouteIds {\n return (\n pluginContractsManifest.api?.rest?.routes !== undefined &&\n id in pluginContractsManifest.api.rest.routes\n );\n}\n\n/**\n * Type-safe identity function for route IDs (useful for validation)\n *\n * @example\n * const routeId = getRouteId('template.rest.hello'); // ✅ Проверка!\n */\nexport function getRouteId<T extends PluginRouteIds>(id: T): T {\n return id;\n}\n\n","import { z } from 'zod';\n\nexport const schemaReferenceSchema = z.object({\n ref: z.string().min(1),\n format: z.enum(['zod', 'json-schema', 'openapi']).optional(),\n description: z.string().optional()\n});\n\nexport const restRouteContractSchema = z.object({\n id: z.string().min(1),\n method: z.string().min(1),\n path: z.string().min(1),\n description: z.string().optional(),\n request: schemaReferenceSchema.optional(),\n response: schemaReferenceSchema.optional(),\n produces: z.array(z.string().min(1)).optional(),\n consumes: z.array(z.string().min(1)).optional()\n});\n\nexport const restApiContractSchema = z.object({\n basePath: z.string().min(1),\n routes: z.record(restRouteContractSchema)\n});\n\nexport const apiContractSchema = z.object({\n rest: restApiContractSchema.optional()\n});\n\n","import { z } from 'zod';\n\nexport const artifactExampleSchema = z.object({\n summary: z.string().optional(),\n payload: z.unknown().optional()\n});\n\nexport const artifactContractSchema = z.object({\n id: z.string().min(1),\n kind: z.enum(['file', 'json', 'markdown', 'binary', 'dir', 'log']),\n description: z.string().optional(),\n pathPattern: z.string().min(1).optional(),\n mediaType: z.string().min(1).optional(),\n schemaRef: z.string().min(1).optional(),\n example: artifactExampleSchema.optional()\n});\n\nexport const artifactsContractMapSchema = z.record(artifactContractSchema);\n\n","import { z } from 'zod';\nimport { schemaReferenceSchema } from './api.schema';\n\nexport const commandContractSchema = z.object({\n id: z.string().min(1),\n description: z.string().optional(),\n input: schemaReferenceSchema.optional(),\n output: schemaReferenceSchema.optional(),\n produces: z.array(z.string().min(1)).optional(),\n consumes: z.array(z.string().min(1)).optional(),\n examples: z.array(z.string().min(1)).optional()\n});\n\nexport const commandContractMapSchema = z.record(commandContractSchema);\n\n","import { z } from 'zod';\n\nexport const workflowStepSchema = z.object({\n id: z.string().min(1),\n description: z.string().optional(),\n commandId: z.string().min(1).optional(),\n consumes: z.array(z.string().min(1)).optional(),\n produces: z.array(z.string().min(1)).optional()\n});\n\nexport const workflowContractSchema = z.object({\n id: z.string().min(1),\n description: z.string().optional(),\n consumes: z.array(z.string().min(1)).optional(),\n produces: z.array(z.string().min(1)).optional(),\n steps: z.array(workflowStepSchema).optional()\n});\n\nexport const workflowContractMapSchema = z.record(workflowContractSchema);\n\n","import { z } from 'zod';\nimport { apiContractSchema } from './api.schema';\nimport { artifactsContractMapSchema } from './artifacts.schema';\nimport { commandContractMapSchema } from './commands.schema';\nimport { workflowContractMapSchema } from './workflows.schema';\nimport { contractsSchemaId } from '../version';\n\nexport const pluginContractsSchema = z\n .object({\n schema: z.literal(contractsSchemaId),\n pluginId: z.string().min(1),\n contractsVersion: z.string().min(1),\n artifacts: artifactsContractMapSchema,\n commands: commandContractMapSchema.optional(),\n workflows: workflowContractMapSchema.optional(),\n api: apiContractSchema.optional()\n })\n .strict();\n\nexport type PluginContractsSchema = z.infer<typeof pluginContractsSchema>;\n\nexport function parsePluginContracts(input: unknown) {\n return pluginContractsSchema.parse(input);\n}\n\n","/**\n * Plugin Configuration Contract\n *\n * Defines the shape of plugin configuration stored in kb.config.json\n * under plugins.template section.\n *\n * This type is the single source of truth for:\n * - defineSetup (setup handler knows what config to create)\n * - defineCommand (commands can access typed config)\n * - REST handlers (API can access typed config)\n */\n\n/**\n * Greeting configuration\n */\nexport interface GreetingConfig {\n /** Path to greeting config file */\n configPath: string;\n /** Default name to greet */\n defaultName: string;\n}\n\n/**\n * Output configuration\n */\nexport interface OutputConfig {\n /** Output directory for generated files */\n directory: string;\n}\n\n/**\n * Plugin configuration stored in kb.config.json\n *\n * @example\n * ```json\n * {\n * \"plugins\": {\n * \"template\": {\n * \"enabled\": true,\n * \"greeting\": {\n * \"configPath\": \".kb/template/hello-config.json\",\n * \"defaultName\": \"KB Labs\"\n * },\n * \"output\": {\n * \"directory\": \".kb/template/output\"\n * }\n * }\n * }\n * }\n * ```\n */\nexport interface PluginConfig {\n /** Whether the plugin is enabled */\n enabled: boolean;\n /** Greeting configuration */\n greeting: GreetingConfig;\n /** Output configuration */\n output: OutputConfig;\n}\n\n/**\n * Default plugin configuration values\n */\nexport const defaultPluginConfig: PluginConfig = {\n enabled: true,\n greeting: {\n configPath: '.kb/template/hello-config.json',\n defaultName: 'KB Labs',\n },\n output: {\n directory: '.kb/template/output',\n },\n};\n","import { z } from 'zod';\n\nexport const PrepareInfraInputSchema = z.object({\n sourceRef: z.string().optional(),\n basePath: z.string().optional(),\n createEnvironment: z.boolean().optional(),\n templateId: z.string().optional(),\n ttlMs: z.number().int().positive().optional(),\n captureSnapshot: z.boolean().optional(),\n namespace: z.string().optional(),\n});\n\nexport const PrepareInfraOutputSchema = z.object({\n workspaceId: z.string(),\n environmentId: z.string().optional(),\n snapshotId: z.string().optional(),\n});\n\nexport type PrepareInfraInput = z.infer<typeof PrepareInfraInputSchema>;\nexport type PrepareInfraOutput = z.infer<typeof PrepareInfraOutputSchema>;\n\nexport const CaptureSnapshotInputSchema = z.object({\n workspaceId: z.string().optional(),\n environmentId: z.string().optional(),\n namespace: z.string().optional(),\n sourcePath: z.string().optional(),\n});\n\nexport const CaptureSnapshotOutputSchema = z.object({\n snapshotId: z.string(),\n});\n\nexport type CaptureSnapshotInput = z.infer<typeof CaptureSnapshotInputSchema>;\nexport type CaptureSnapshotOutput = z.infer<typeof CaptureSnapshotOutputSchema>;\n\nexport const RestoreSnapshotInputSchema = z.object({\n snapshotId: z.string(),\n workspaceId: z.string().optional(),\n environmentId: z.string().optional(),\n targetPath: z.string().optional(),\n overwrite: z.boolean().optional(),\n});\n\nexport const RestoreSnapshotOutputSchema = z.object({\n snapshotId: z.string(),\n restoredAt: z.string(),\n});\n\nexport type RestoreSnapshotInput = z.infer<typeof RestoreSnapshotInputSchema>;\nexport type RestoreSnapshotOutput = z.infer<typeof RestoreSnapshotOutputSchema>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../Users/kirillbaranov/Desktop/kb-labs-workspace/plugins/infra-worker/plugin-template-contracts/src/schema.ts"],"names":[],"mappings":";;;AAEO,IAAM,uBAAA,GAA0B,EAAE,MAAA,CAAO;AAAA,EAC9C,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,iBAAA,EAAmB,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EACxC,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,KAAA,EAAO,EAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EAC5C,eAAA,EAAiB,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EACtC,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACxB,CAAC;AAEM,IAAM,wBAAA,GAA2B,EAAE,MAAA,CAAO;AAAA,EAC/C,WAAA,EAAa,EAAE,MAAA,EAAO;AAAA,EACtB,aAAA,EAAe,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC;AAKM,IAAM,0BAAA,GAA6B,EAAE,MAAA,CAAO;AAAA,EACjD,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,aAAA,EAAe,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC;AAEM,IAAM,2BAAA,GAA8B,EAAE,MAAA,CAAO;AAAA,EAClD,UAAA,EAAY,EAAE,MAAA;AAChB,CAAC;AAKM,IAAM,0BAAA,GAA6B,EAAE,MAAA,CAAO;AAAA,EACjD,UAAA,EAAY,EAAE,MAAA,EAAO;AAAA,EACrB,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,aAAA,EAAe,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,SAAA,EAAW,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACzB,CAAC;AAEM,IAAM,2BAAA,GAA8B,EAAE,MAAA,CAAO;AAAA,EAClD,UAAA,EAAY,EAAE,MAAA,EAAO;AAAA,EACrB,UAAA,EAAY,EAAE,MAAA;AAChB,CAAC","file":"schema.js","sourcesContent":["import { z } from 'zod';\n\nexport const PrepareInfraInputSchema = z.object({\n sourceRef: z.string().optional(),\n basePath: z.string().optional(),\n createEnvironment: z.boolean().optional(),\n templateId: z.string().optional(),\n ttlMs: z.number().int().positive().optional(),\n captureSnapshot: z.boolean().optional(),\n namespace: z.string().optional(),\n});\n\nexport const PrepareInfraOutputSchema = z.object({\n workspaceId: z.string(),\n environmentId: z.string().optional(),\n snapshotId: z.string().optional(),\n});\n\nexport type PrepareInfraInput = z.infer<typeof PrepareInfraInputSchema>;\nexport type PrepareInfraOutput = z.infer<typeof PrepareInfraOutputSchema>;\n\nexport const CaptureSnapshotInputSchema = z.object({\n workspaceId: z.string().optional(),\n environmentId: z.string().optional(),\n namespace: z.string().optional(),\n sourcePath: z.string().optional(),\n});\n\nexport const CaptureSnapshotOutputSchema = z.object({\n snapshotId: z.string(),\n});\n\nexport type CaptureSnapshotInput = z.infer<typeof CaptureSnapshotInputSchema>;\nexport type CaptureSnapshotOutput = z.infer<typeof CaptureSnapshotOutputSchema>;\n\nexport const RestoreSnapshotInputSchema = z.object({\n snapshotId: z.string(),\n workspaceId: z.string().optional(),\n environmentId: z.string().optional(),\n targetPath: z.string().optional(),\n overwrite: z.boolean().optional(),\n});\n\nexport const RestoreSnapshotOutputSchema = z.object({\n snapshotId: z.string(),\n restoredAt: z.string(),\n});\n\nexport type RestoreSnapshotInput = z.infer<typeof RestoreSnapshotInputSchema>;\nexport type RestoreSnapshotOutput = z.infer<typeof RestoreSnapshotOutputSchema>;\n"]}
1
+ {"version":3,"sources":["../src/schema.ts"],"names":[],"mappings":";;;AAEO,IAAM,uBAAA,GAA0B,EAAE,MAAA,CAAO;AAAA,EAC9C,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,iBAAA,EAAmB,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EACxC,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,KAAA,EAAO,EAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EAC5C,eAAA,EAAiB,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EACtC,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACxB,CAAC;AAEM,IAAM,wBAAA,GAA2B,EAAE,MAAA,CAAO;AAAA,EAC/C,WAAA,EAAa,EAAE,MAAA,EAAO;AAAA,EACtB,aAAA,EAAe,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC;AAKM,IAAM,0BAAA,GAA6B,EAAE,MAAA,CAAO;AAAA,EACjD,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,aAAA,EAAe,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC;AAEM,IAAM,2BAAA,GAA8B,EAAE,MAAA,CAAO;AAAA,EAClD,UAAA,EAAY,EAAE,MAAA;AAChB,CAAC;AAKM,IAAM,0BAAA,GAA6B,EAAE,MAAA,CAAO;AAAA,EACjD,UAAA,EAAY,EAAE,MAAA,EAAO;AAAA,EACrB,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,aAAA,EAAe,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,SAAA,EAAW,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACzB,CAAC;AAEM,IAAM,2BAAA,GAA8B,EAAE,MAAA,CAAO;AAAA,EAClD,UAAA,EAAY,EAAE,MAAA,EAAO;AAAA,EACrB,UAAA,EAAY,EAAE,MAAA;AAChB,CAAC","file":"schema.js","sourcesContent":["import { z } from 'zod';\n\nexport const PrepareInfraInputSchema = z.object({\n sourceRef: z.string().optional(),\n basePath: z.string().optional(),\n createEnvironment: z.boolean().optional(),\n templateId: z.string().optional(),\n ttlMs: z.number().int().positive().optional(),\n captureSnapshot: z.boolean().optional(),\n namespace: z.string().optional(),\n});\n\nexport const PrepareInfraOutputSchema = z.object({\n workspaceId: z.string(),\n environmentId: z.string().optional(),\n snapshotId: z.string().optional(),\n});\n\nexport type PrepareInfraInput = z.infer<typeof PrepareInfraInputSchema>;\nexport type PrepareInfraOutput = z.infer<typeof PrepareInfraOutputSchema>;\n\nexport const CaptureSnapshotInputSchema = z.object({\n workspaceId: z.string().optional(),\n environmentId: z.string().optional(),\n namespace: z.string().optional(),\n sourcePath: z.string().optional(),\n});\n\nexport const CaptureSnapshotOutputSchema = z.object({\n snapshotId: z.string(),\n});\n\nexport type CaptureSnapshotInput = z.infer<typeof CaptureSnapshotInputSchema>;\nexport type CaptureSnapshotOutput = z.infer<typeof CaptureSnapshotOutputSchema>;\n\nexport const RestoreSnapshotInputSchema = z.object({\n snapshotId: z.string(),\n workspaceId: z.string().optional(),\n environmentId: z.string().optional(),\n targetPath: z.string().optional(),\n overwrite: z.boolean().optional(),\n});\n\nexport const RestoreSnapshotOutputSchema = z.object({\n snapshotId: z.string(),\n restoredAt: z.string(),\n});\n\nexport type RestoreSnapshotInput = z.infer<typeof RestoreSnapshotInputSchema>;\nexport type RestoreSnapshotOutput = z.infer<typeof RestoreSnapshotOutputSchema>;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kb-labs/infra-worker-contracts",
3
- "version": "2.16.0",
3
+ "version": "2.18.0",
4
4
  "type": "module",
5
5
  "description": "Public contracts package for infra worker plugin invoke payloads and results.",
6
6
  "main": "./dist/index.js",
@@ -36,7 +36,7 @@
36
36
  "tsup": "^8.5.0",
37
37
  "typescript": "^5.6.3",
38
38
  "vitest": "^3.2.4",
39
- "@kb-labs/devkit": "2.16.0"
39
+ "@kb-labs/devkit": "2.18.0"
40
40
  },
41
41
  "engines": {
42
42
  "node": ">=20.0.0",