@lumenkey/cli 0.3.1 → 0.4.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +36 -2
  2. package/dist/cli/copied.js +86 -85
  3. package/dist/cli/index.js +56 -44
  4. package/dist/cli/render.js +3 -2
  5. package/dist/core/asset-stream.d.ts +16 -0
  6. package/dist/core/asset-stream.js +64 -0
  7. package/dist/core/atomic-config-file.js +8 -7
  8. package/dist/core/chinese-messages.d.ts +4 -0
  9. package/dist/core/chinese-messages.js +907 -0
  10. package/dist/core/chinese-script.d.ts +7 -0
  11. package/dist/core/chinese-script.js +28 -0
  12. package/dist/core/client.js +2 -1
  13. package/dist/core/config-dir.js +2 -1
  14. package/dist/core/config.js +7 -6
  15. package/dist/core/download-root.d.ts +5 -0
  16. package/dist/core/download-root.js +64 -0
  17. package/dist/core/download.js +15 -12
  18. package/dist/core/generation-input.js +3 -2
  19. package/dist/core/generation.d.ts +8 -1
  20. package/dist/core/generation.js +13 -10
  21. package/dist/core/job-display.js +7 -6
  22. package/dist/core/locale.js +163 -148
  23. package/dist/core/outcome.js +6 -4
  24. package/dist/core/output-path.d.ts +3 -1
  25. package/dist/core/output-path.js +5 -2
  26. package/dist/core/params.js +26 -25
  27. package/dist/core/profiles.js +5 -4
  28. package/dist/core/set-values.d.ts +0 -1
  29. package/dist/core/set-values.js +7 -7
  30. package/dist/core/submission-journal.js +31 -16
  31. package/dist/core/version.js +2 -3
  32. package/dist/mcp/server.js +30 -29
  33. package/dist/studio/asset-integrity-hash.d.ts +28 -0
  34. package/dist/studio/asset-integrity-hash.js +93 -0
  35. package/dist/studio/asset-integrity-queue.d.ts +24 -0
  36. package/dist/studio/asset-integrity-queue.js +94 -0
  37. package/dist/studio/asset-store.d.ts +52 -0
  38. package/dist/studio/asset-store.js +352 -0
  39. package/dist/studio/canvas/LICENSES.txt +1590 -0
  40. package/dist/studio/canvas/dependencies.json +862 -0
  41. package/dist/studio/canvas/director-source-manifest.json +47 -0
  42. package/dist/studio/canvas/editor.css +239 -0
  43. package/dist/studio/canvas/editor.js +4613 -0
  44. package/dist/studio/canvas/integration-source-manifest.json +384 -0
  45. package/dist/studio/canvas/source-manifest.json +240 -0
  46. package/dist/studio/canvas-store.d.ts +1254 -0
  47. package/dist/studio/canvas-store.js +205 -0
  48. package/dist/studio/capture-placement.d.ts +11 -0
  49. package/dist/studio/capture-placement.js +85 -0
  50. package/dist/studio/cloud-contract.d.ts +128 -0
  51. package/dist/studio/cloud-contract.js +229 -0
  52. package/dist/studio/cloud-service.d.ts +178 -0
  53. package/dist/studio/cloud-service.js +202 -0
  54. package/dist/studio/director-captures.d.ts +59 -0
  55. package/dist/studio/director-captures.js +141 -0
  56. package/dist/studio/director-contract.d.ts +1489 -0
  57. package/dist/studio/director-contract.js +288 -0
  58. package/dist/studio/director-png.d.ts +6 -0
  59. package/dist/studio/director-png.js +41 -0
  60. package/dist/studio/director-relations.d.ts +40 -0
  61. package/dist/studio/director-relations.js +103 -0
  62. package/dist/studio/document-authority.d.ts +7 -0
  63. package/dist/studio/document-authority.js +50 -0
  64. package/dist/studio/draft-store.d.ts +95 -0
  65. package/dist/studio/draft-store.js +100 -0
  66. package/dist/studio/errors.d.ts +85 -0
  67. package/dist/studio/errors.js +94 -0
  68. package/dist/studio/launch.d.ts +5 -0
  69. package/dist/studio/launch.js +31 -0
  70. package/dist/studio/media.d.ts +9 -0
  71. package/dist/studio/media.js +50 -0
  72. package/dist/studio/output-save-contract.d.ts +1321 -0
  73. package/dist/studio/output-save-contract.js +26 -0
  74. package/dist/studio/output-save-journal.d.ts +971 -0
  75. package/dist/studio/output-save-journal.js +287 -0
  76. package/dist/studio/output-save-recovery.d.ts +18 -0
  77. package/dist/studio/output-save-recovery.js +161 -0
  78. package/dist/studio/output-save-service.d.ts +436 -0
  79. package/dist/studio/output-save-service.js +251 -0
  80. package/dist/studio/output-save-worker.d.ts +40 -0
  81. package/dist/studio/output-save-worker.js +360 -0
  82. package/dist/studio/paths.d.ts +6 -0
  83. package/dist/studio/paths.js +68 -0
  84. package/dist/studio/run-journal.d.ts +993 -0
  85. package/dist/studio/run-journal.js +125 -0
  86. package/dist/studio/server.d.ts +17 -0
  87. package/dist/studio/server.js +440 -0
  88. package/dist/studio/session.d.ts +6 -0
  89. package/dist/studio/session.js +26 -0
  90. package/dist/studio/shell.d.ts +3 -0
  91. package/dist/studio/shell.js +23 -0
  92. package/dist/studio/style.d.ts +2 -0
  93. package/dist/studio/style.js +29 -0
  94. package/dist/studio/types.d.ts +26 -0
  95. package/dist/studio/types.js +2 -0
  96. package/dist/studio/web/app.d.ts +2 -0
  97. package/dist/studio/web/app.js +662 -0
  98. package/dist/studio/web/asset-controller.d.ts +37 -0
  99. package/dist/studio/web/asset-controller.js +191 -0
  100. package/dist/studio/web/asset-model.d.ts +29 -0
  101. package/dist/studio/web/asset-model.js +51 -0
  102. package/dist/studio/web/controller.d.ts +113 -0
  103. package/dist/studio/web/controller.js +401 -0
  104. package/dist/studio/web/messages.d.ts +2 -0
  105. package/dist/studio/web/messages.js +74 -0
  106. package/dist/studio/web/model.d.ts +75 -0
  107. package/dist/studio/web/model.js +182 -0
  108. package/dist/studio/web/save-controller.d.ts +85 -0
  109. package/dist/studio/web/save-controller.js +495 -0
  110. package/dist/studio/web/save-model.d.ts +63 -0
  111. package/dist/studio/web/save-model.js +64 -0
  112. package/dist/studio/web/save-queue.d.ts +7 -0
  113. package/dist/studio/web/save-queue.js +62 -0
  114. package/dist/studio/web/save-view.d.ts +9 -0
  115. package/dist/studio/web/save-view.js +19 -0
  116. package/dist/studio/writer-lock.d.ts +5 -0
  117. package/dist/studio/writer-lock.js +88 -0
  118. package/package.json +11 -5
  119. package/dist/cli/copied.d.ts.map +0 -1
  120. package/dist/cli/copied.js.map +0 -1
  121. package/dist/cli/index.d.ts.map +0 -1
  122. package/dist/cli/index.js.map +0 -1
  123. package/dist/cli/render.d.ts.map +0 -1
  124. package/dist/cli/render.js.map +0 -1
  125. package/dist/core/atomic-config-file.d.ts.map +0 -1
  126. package/dist/core/atomic-config-file.js.map +0 -1
  127. package/dist/core/chat.d.ts.map +0 -1
  128. package/dist/core/chat.js.map +0 -1
  129. package/dist/core/client.d.ts.map +0 -1
  130. package/dist/core/client.js.map +0 -1
  131. package/dist/core/config-dir.d.ts.map +0 -1
  132. package/dist/core/config-dir.js.map +0 -1
  133. package/dist/core/config-error.d.ts.map +0 -1
  134. package/dist/core/config-error.js.map +0 -1
  135. package/dist/core/config.d.ts.map +0 -1
  136. package/dist/core/config.js.map +0 -1
  137. package/dist/core/credit-cap.d.ts.map +0 -1
  138. package/dist/core/credit-cap.js.map +0 -1
  139. package/dist/core/download.d.ts.map +0 -1
  140. package/dist/core/download.js.map +0 -1
  141. package/dist/core/error-result.d.ts.map +0 -1
  142. package/dist/core/error-result.js.map +0 -1
  143. package/dist/core/explain.d.ts.map +0 -1
  144. package/dist/core/explain.js.map +0 -1
  145. package/dist/core/generation-input.d.ts.map +0 -1
  146. package/dist/core/generation-input.js.map +0 -1
  147. package/dist/core/generation-result.d.ts.map +0 -1
  148. package/dist/core/generation-result.js.map +0 -1
  149. package/dist/core/generation.d.ts.map +0 -1
  150. package/dist/core/generation.js.map +0 -1
  151. package/dist/core/job-display.d.ts.map +0 -1
  152. package/dist/core/job-display.js.map +0 -1
  153. package/dist/core/locale.d.ts.map +0 -1
  154. package/dist/core/locale.js.map +0 -1
  155. package/dist/core/origin.d.ts.map +0 -1
  156. package/dist/core/origin.js.map +0 -1
  157. package/dist/core/outcome.d.ts.map +0 -1
  158. package/dist/core/outcome.js.map +0 -1
  159. package/dist/core/output-path.d.ts.map +0 -1
  160. package/dist/core/output-path.js.map +0 -1
  161. package/dist/core/params.d.ts.map +0 -1
  162. package/dist/core/params.js.map +0 -1
  163. package/dist/core/poller.d.ts.map +0 -1
  164. package/dist/core/poller.js.map +0 -1
  165. package/dist/core/profiles.d.ts.map +0 -1
  166. package/dist/core/profiles.js.map +0 -1
  167. package/dist/core/set-values.d.ts.map +0 -1
  168. package/dist/core/set-values.js.map +0 -1
  169. package/dist/core/submission-journal.d.ts.map +0 -1
  170. package/dist/core/submission-journal.js.map +0 -1
  171. package/dist/core/types.d.ts.map +0 -1
  172. package/dist/core/types.js.map +0 -1
  173. package/dist/core/version.d.ts.map +0 -1
  174. package/dist/core/version.js.map +0 -1
  175. package/dist/core/wait.d.ts.map +0 -1
  176. package/dist/core/wait.js.map +0 -1
  177. package/dist/index.d.ts.map +0 -1
  178. package/dist/index.js.map +0 -1
  179. package/dist/mcp/render.d.ts.map +0 -1
  180. package/dist/mcp/render.js.map +0 -1
  181. package/dist/mcp/server.d.ts.map +0 -1
  182. package/dist/mcp/server.js.map +0 -1
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ import { uuid, isoDate, errorCode } from './run-journal.js';
3
+ const integer = z.number().int().nonnegative().safe();
4
+ export const saveState = z.enum(['ACCEPTED', 'SAVING', 'SAVED', 'FAILED', 'RECOVERY_REQUIRED', 'BLOCKED']);
5
+ export const saveStage = z.enum(['QUEUED', 'DOWNLOADING', 'FILE_READY', 'REGISTERED', 'LINKED', 'RECONCILING']);
6
+ export const saveFacts = z.object({ file: z.enum(['NOT_CHECKED', 'ABSENT', 'PARTIAL', 'MISSING', 'UNSAFE', 'UNKNOWN']), registration: z.enum(['ABSENT', 'PRESENT', 'UNKNOWN']), relation: z.enum(['ABSENT', 'PRESENT', 'UNKNOWN']) }).strict();
7
+ const diagnostic = z.object({ code: errorCode, message: z.string().max(1000), type: z.string().max(80), httpStatus: z.number().int().min(400).max(599).optional(), retryable: z.boolean(), mayAlreadyBeSaved: z.boolean().nullable() }).strict();
8
+ const asset = z.object({ assetId: uuid, displayName: z.string().min(1).max(300), mediaType: z.enum(['image/png', 'image/jpeg', 'image/webp', 'video/mp4', 'video/webm']), byteLength: integer.positive(), sha256: z.string().regex(/^[a-f0-9]{64}$/), relativePath: z.string().min(1), absolutePath: z.string().min(1), contentUrl: z.string().min(1) }).strict();
9
+ export const saveMutable = z.object({ state: saveState, stage: saveStage, attempt: integer, facts: saveFacts, asset: asset.nullable(), error: diagnostic.nullable(), retryable: z.boolean(), safeRetry: z.boolean(), mayAlreadyBeSaved: z.boolean().nullable(), checkedAt: z.null() }).strict();
10
+ // Ordinary writers retain the p2 restrictions above. Only the integrity proof
11
+ // path may publish these additive p3 observation fields. Progress is volatile.
12
+ export const integrityFact = z.enum(['NOT_CHECKED', 'ABSENT', 'PARTIAL', 'VERIFIED', 'MISSING', 'MODIFIED', 'UNSAFE', 'UNKNOWN']);
13
+ export const saveReceiptSnapshot = saveMutable.extend({ facts: saveFacts.extend({ file: integrityFact }), checkedAt: isoDate.nullable(), integrityCheck: z.enum(['IDLE', 'PENDING']).default('IDLE'), operationId: uuid, revision: integer.positive(), localOutputId: uuid, runId: uuid, jobId: uuid, gatewayAssetId: uuid, createdAt: isoDate, updatedAt: isoDate }).strict();
14
+ // Private transport evidence: committed before publishing bytes, never sent on HTTP.
15
+ export const saveTransfer = z.object({ temporaryName: z.string().regex(/^[a-f0-9-]{36}\.\d+\.part$/), owner: z.object({ dev: z.string().regex(/^\d+$/), ino: z.string().regex(/^[1-9]\d*$/), birthtimeMs: z.number().nonnegative().finite() }).strict().optional(), completed: z.object({ mediaType: asset.shape.mediaType, byteLength: integer.positive(), sha256: asset.shape.sha256, relativePath: z.string() }).strict().optional() }).strict();
16
+ export const saveOperation = z.object({ connectionId: uuid, requestIds: z.array(uuid).min(1).max(1000).refine(v => new Set(v).size === v.length), assetId: uuid, executionRevision: integer.positive().default(1), transfer: saveTransfer.optional(), receipt: saveReceiptSnapshot }).strict().refine(o => {
17
+ // Local reconciliation increments the execution attempt but retains the byte
18
+ // owner's original temp identity. It cannot adopt a future/zero attempt.
19
+ const ownerAttempt = o.transfer ? Number(o.transfer.temporaryName.split('.').at(-2)) : 0;
20
+ return (!o.transfer || (Number.isSafeInteger(ownerAttempt) && ownerAttempt > 0 && ownerAttempt <= o.receipt.attempt && o.transfer.temporaryName === `${o.assetId}.${ownerAttempt}.part`)) && (!o.transfer?.completed || o.transfer.completed.relativePath === `assets/${o.assetId}.${{ 'image/png': 'png', 'image/jpeg': 'jpg', 'image/webp': 'webp', 'video/mp4': 'mp4', 'video/webm': 'webm' }[o.transfer.completed.mediaType]}`) && (!o.receipt.asset || o.receipt.asset.assetId === o.assetId) && (o.receipt.facts.file !== 'VERIFIED' || (o.receipt.asset && o.receipt.checkedAt !== null && o.receipt.integrityCheck === 'IDLE')) && (o.receipt.integrityCheck !== 'PENDING' || (o.receipt.facts.file === 'NOT_CHECKED' && !o.receipt.safeRetry)) && (o.receipt.state !== 'SAVED' || (o.receipt.stage === 'LINKED' && o.receipt.asset && o.receipt.facts.registration === 'PRESENT' && o.receipt.facts.relation === 'PRESENT'));
21
+ });
22
+ // Validate schema1 under its actual p2 vocabulary before applying p3 defaults.
23
+ // Otherwise malformed old files could introduce VERIFIED or a stuck PENDING.
24
+ export const legacySaveOperation = saveOperation.innerType().omit({ executionRevision: true }).extend({ receipt: saveReceiptSnapshot.omit({ integrityCheck: true }).extend({ facts: saveFacts, checkedAt: z.null() }).strict() }).strict().refine(o => saveOperation.safeParse(o).success && (o.receipt.state !== 'SAVED' || o.receipt.facts.file === 'NOT_CHECKED'));
25
+ export const saveAcceptInput = z.object({ connectionId: uuid, requestId: uuid, localOutputId: uuid, runId: uuid, jobId: uuid, gatewayAssetId: uuid }).strict();
26
+ //# sourceMappingURL=output-save-contract.js.map