yaml-flow 8.6.4 → 8.7.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.
Files changed (146) hide show
  1. package/browser/adapters/firebase-storage.js +3 -0
  2. package/browser/adapters/firestore-storage.js +3 -0
  3. package/browser/adapters/localstorage-storage.js +4 -0
  4. package/browser/asset-integrity.json +20 -4
  5. package/browser/server-runtime-controlface.js +8 -0
  6. package/examples/ARCHITECTURE.md +5 -32
  7. package/examples/board/demo-shell-with-server.html +2 -2
  8. package/examples/board/doc.html +2 -2
  9. package/examples/board/server/board-server.js +4 -2
  10. package/examples/board-firestore/README.md +81 -0
  11. package/examples/board-firestore/browser/board-runtime.js +263 -0
  12. package/examples/board-firestore/firestore.indexes.json +29 -0
  13. package/examples/board-firestore/package.json +14 -0
  14. package/examples/board-firestore/server/adapters/firestore-archive-factory.js +59 -0
  15. package/examples/board-firestore/server/adapters/firestore-blob-storage.js +82 -0
  16. package/examples/board-firestore/server/adapters/firestore-board-adapter.js +127 -0
  17. package/examples/board-firestore/server/adapters/firestore-journal-storage.js +54 -0
  18. package/examples/board-firestore/server/adapters/firestore-kv-storage.js +47 -0
  19. package/examples/board-firestore/server/adapters/firestore-lock.js +62 -0
  20. package/examples/board-firestore/server/adapters/firestore-queue-storage.js +186 -0
  21. package/examples/board-firestore/server/adapters/firestore-scratch-storage.js +50 -0
  22. package/examples/board-firestore/server/worker.js +146 -0
  23. package/lib/{artifacts-store-lib-BR-Samty.d.cts → artifacts-store-lib-D9nMkVcE.d.cts} +1 -1
  24. package/lib/{artifacts-store-lib-DT7XlWUL.d.ts → artifacts-store-lib-DSSMqVL2.d.ts} +1 -1
  25. package/lib/artifacts-store-public.d.cts +2 -2
  26. package/lib/artifacts-store-public.d.ts +2 -2
  27. package/lib/board-live-cards-mcp.cjs +1 -1
  28. package/lib/board-live-cards-mcp.d.cts +50 -3
  29. package/lib/board-live-cards-mcp.d.ts +50 -3
  30. package/lib/board-live-cards-mcp.js +1 -1
  31. package/lib/board-live-cards-node.cjs +8 -8
  32. package/lib/board-live-cards-node.d.cts +13 -9
  33. package/lib/board-live-cards-node.d.ts +13 -9
  34. package/lib/board-live-cards-node.js +8 -8
  35. package/lib/{board-live-cards-public-BMUIPOrc.d.ts → board-live-cards-public-D-DJek3X.d.ts} +1 -1
  36. package/lib/{board-live-cards-public-wkNmBIRC.d.cts → board-live-cards-public-DQzPe7A9.d.cts} +1 -1
  37. package/lib/board-live-cards-public-async-3hUuHxDx.d.ts +55 -0
  38. package/lib/board-live-cards-public-async-CgMCYYft.d.cts +55 -0
  39. package/lib/board-live-cards-public.d.cts +1 -1
  40. package/lib/board-live-cards-public.d.ts +1 -1
  41. package/lib/board-live-cards-server-runtime.cjs +1 -1
  42. package/lib/board-live-cards-server-runtime.d.cts +10 -6
  43. package/lib/board-live-cards-server-runtime.d.ts +10 -6
  44. package/lib/board-live-cards-server-runtime.js +1 -1
  45. package/lib/board-platform-adapter-async-DOfEq_HC.d.cts +129 -0
  46. package/lib/board-platform-adapter-async-JZPCzZnH.d.ts +129 -0
  47. package/lib/board-worker-adapter.cjs +3 -3
  48. package/lib/board-worker-adapter.js +3 -3
  49. package/lib/card-store-public.d.cts +1 -1
  50. package/lib/card-store-public.d.ts +1 -1
  51. package/lib/{chat-storage-lib-BIUbE-fM.d.cts → chat-storage-lib-B9Q34Dyv.d.cts} +1 -1
  52. package/lib/{chat-storage-lib-BlG-sobS.d.ts → chat-storage-lib-DB9iSai2.d.ts} +1 -1
  53. package/lib/chat-store-public.d.cts +2 -2
  54. package/lib/chat-store-public.d.ts +2 -2
  55. package/lib/chunk-272IYUKT.cjs +2 -0
  56. package/lib/chunk-5XHOHTLZ.cjs +2 -0
  57. package/lib/chunk-6APH25VI.js +2 -0
  58. package/lib/chunk-7FGPOGRV.cjs +2 -0
  59. package/lib/chunk-7ICPAABP.cjs +7 -0
  60. package/lib/chunk-CPAXTVBQ.cjs +2 -0
  61. package/lib/chunk-DDYSXP2A.cjs +3 -0
  62. package/lib/chunk-EGRHWZRV.js +2 -0
  63. package/lib/chunk-GL2OHR2E.cjs +2 -0
  64. package/lib/chunk-IPLSRN6P.cjs +4 -0
  65. package/lib/chunk-J5J6BG7B.js +2 -0
  66. package/lib/chunk-KAWQPLIE.cjs +2 -0
  67. package/lib/chunk-LPXVVMQT.cjs +2 -0
  68. package/lib/chunk-M3OU6IS5.cjs +2 -0
  69. package/lib/chunk-M6STQR5F.cjs +2 -0
  70. package/lib/chunk-NJJ7WEDT.cjs +2 -0
  71. package/lib/chunk-NKIQRCOM.cjs +2 -0
  72. package/lib/chunk-NM6O35RY.cjs +2 -0
  73. package/lib/chunk-NTICU4OK.js +2 -0
  74. package/lib/chunk-O7NOHKVR.js +2 -0
  75. package/lib/chunk-PRHQBGPT.js +2 -0
  76. package/lib/chunk-S44QZUDX.js +2 -0
  77. package/lib/chunk-SGV7PU4H.js +2 -0
  78. package/lib/chunk-TSN3RTXT.js +4 -0
  79. package/lib/chunk-VXJHBWK3.js +2 -0
  80. package/lib/chunk-WHDEBJLT.js +7 -0
  81. package/lib/chunk-XYN5D3GL.js +2 -0
  82. package/lib/chunk-YGALANRO.js +2 -0
  83. package/lib/chunk-ZJ5M5COT.js +2 -0
  84. package/lib/chunk-ZXQR7GHT.js +3 -0
  85. package/lib/cloud-storage.cjs +1 -1
  86. package/lib/cloud-storage.d.cts +5 -3
  87. package/lib/cloud-storage.d.ts +5 -3
  88. package/lib/cloud-storage.js +1 -1
  89. package/lib/firebase-storage/index.cjs +3 -0
  90. package/lib/firebase-storage/index.d.cts +57 -0
  91. package/lib/firebase-storage/index.d.ts +57 -0
  92. package/lib/firebase-storage/index.js +3 -0
  93. package/lib/firestore-storage/index.cjs +3 -0
  94. package/lib/firestore-storage/index.d.cts +98 -0
  95. package/lib/firestore-storage/index.d.ts +98 -0
  96. package/lib/firestore-storage/index.js +3 -0
  97. package/lib/localstorage-storage/index.cjs +2 -0
  98. package/lib/localstorage-storage/index.d.cts +39 -0
  99. package/lib/localstorage-storage/index.d.ts +39 -0
  100. package/lib/localstorage-storage/index.js +2 -0
  101. package/lib/mcp-tool-registries-BBObLYga.d.ts +41 -0
  102. package/lib/mcp-tool-registries-W3TRj6O5.d.cts +41 -0
  103. package/lib/queue-lane-registry-PaZuFpwp.d.cts +30 -0
  104. package/lib/queue-lane-registry-PaZuFpwp.d.ts +30 -0
  105. package/lib/server-jobs-queue-runner/index.cjs +2 -0
  106. package/lib/server-jobs-queue-runner/index.d.cts +22 -0
  107. package/lib/server-jobs-queue-runner/index.d.ts +22 -0
  108. package/lib/server-jobs-queue-runner/index.js +2 -0
  109. package/lib/server-runtime/index.cjs +1 -1
  110. package/lib/server-runtime/index.d.cts +11 -17
  111. package/lib/server-runtime/index.d.ts +11 -17
  112. package/lib/server-runtime/index.js +1 -1
  113. package/lib/server-runtime-agentface/index.cjs +2 -0
  114. package/lib/server-runtime-agentface/index.d.cts +53 -0
  115. package/lib/server-runtime-agentface/index.d.ts +53 -0
  116. package/lib/server-runtime-agentface/index.js +2 -0
  117. package/lib/server-runtime-controlface/index.cjs +2 -0
  118. package/lib/server-runtime-controlface/index.d.cts +80 -0
  119. package/lib/server-runtime-controlface/index.d.ts +80 -0
  120. package/lib/server-runtime-controlface/index.js +2 -0
  121. package/lib/server-runtime-core/index.cjs +2 -0
  122. package/lib/server-runtime-core/index.d.cts +376 -0
  123. package/lib/server-runtime-core/index.d.ts +376 -0
  124. package/lib/server-runtime-core/index.js +2 -0
  125. package/lib/server-runtime-watchers/index.cjs +2 -0
  126. package/lib/server-runtime-watchers/index.d.cts +127 -0
  127. package/lib/server-runtime-watchers/index.d.ts +127 -0
  128. package/lib/server-runtime-watchers/index.js +2 -0
  129. package/lib/server-runtime-webhooks/index.cjs +2 -0
  130. package/lib/server-runtime-webhooks/index.d.cts +34 -0
  131. package/lib/server-runtime-webhooks/index.d.ts +34 -0
  132. package/lib/server-runtime-webhooks/index.js +2 -0
  133. package/lib/storage-async-interface-BRR4eBjx.d.cts +81 -0
  134. package/lib/storage-async-interface-DhlOVPSp.d.ts +81 -0
  135. package/lib/{queue-lane-registry-BPKWWgd4.d.cts → types-BzQY45dH.d.cts} +8 -34
  136. package/lib/{queue-lane-registry-Be6c0ftj.d.ts → types-CF2xUcZW.d.ts} +8 -34
  137. package/package.json +46 -2
  138. package/examples/board-local/demo-shell-localstorage.html +0 -843
  139. package/lib/board-live-cards-public-async-DKZqbJVU.d.ts +0 -256
  140. package/lib/board-live-cards-public-async-dMWNbWq6.d.cts +0 -256
  141. package/lib/chunk-KXWT3CY6.cjs +0 -8
  142. package/lib/chunk-MLVTJASJ.js +0 -2
  143. package/lib/chunk-OJLA6NLU.js +0 -8
  144. package/lib/chunk-R5L5WUKN.js +0 -2
  145. package/lib/chunk-WOALA3V5.cjs +0 -2
  146. package/lib/chunk-YEB5QHGE.cjs +0 -2
@@ -1,5 +1,5 @@
1
- import { a as CommandInput, C as CommandResult } from './board-live-cards-public-wkNmBIRC.cjs';
2
- import { A as ArtifactInfo, a as ArtifactsStore } from './artifacts-store-lib-BR-Samty.cjs';
1
+ import { C as CommandInput, a as CommandResult } from './board-live-cards-public-DQzPe7A9.cjs';
2
+ import { A as ArtifactInfo, a as ArtifactsStore } from './artifacts-store-lib-D9nMkVcE.cjs';
3
3
  import './storage-interface-BFiD3kyB.cjs';
4
4
  import './execution-refs.cjs';
5
5
  import './types-BBhqYGhE.cjs';
@@ -1,5 +1,5 @@
1
- import { a as CommandInput, C as CommandResult } from './board-live-cards-public-BMUIPOrc.js';
2
- import { A as ArtifactInfo, a as ArtifactsStore } from './artifacts-store-lib-DT7XlWUL.js';
1
+ import { C as CommandInput, a as CommandResult } from './board-live-cards-public-D-DJek3X.js';
2
+ import { A as ArtifactInfo, a as ArtifactsStore } from './artifacts-store-lib-DSSMqVL2.js';
3
3
  import './storage-interface-BFiD3kyB.js';
4
4
  import './execution-refs.js';
5
5
  import './types-BBhqYGhE.js';
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkYEB5QHGE_cjs=require('./chunk-YEB5QHGE.cjs');require('./chunk-IXZG74EW.cjs'),require('./chunk-NMZ6XNLB.cjs'),require('./chunk-UJ7ZTV4J.cjs'),require('./chunk-GNFE24S7.cjs');Object.defineProperty(exports,"createBoardLiveCardsMcp",{enumerable:true,get:function(){return chunkYEB5QHGE_cjs.a}});//# sourceMappingURL=board-live-cards-mcp.cjs.map
1
+ 'use strict';var chunkM6STQR5F_cjs=require('./chunk-M6STQR5F.cjs');require('./chunk-IXZG74EW.cjs'),require('./chunk-NMZ6XNLB.cjs'),require('./chunk-UJ7ZTV4J.cjs'),require('./chunk-GNFE24S7.cjs');Object.defineProperty(exports,"createBoardLiveCardsMcp",{enumerable:true,get:function(){return chunkM6STQR5F_cjs.a}});//# sourceMappingURL=board-live-cards-mcp.cjs.map
2
2
  //# sourceMappingURL=board-live-cards-mcp.cjs.map
@@ -1,6 +1,6 @@
1
- import { C as CommandResult, L as LiveCard } from './board-live-cards-public-wkNmBIRC.cjs';
1
+ import { L as LiveCard, a as CommandResult } from './board-live-cards-public-DQzPe7A9.cjs';
2
2
  import { ChatStorePublic } from './chat-store-public.cjs';
3
- import { C as ChatRecord } from './chat-storage-lib-BIUbE-fM.cjs';
3
+ import { a as ChatRecord } from './chat-storage-lib-B9Q34Dyv.cjs';
4
4
  import './storage-interface-BFiD3kyB.cjs';
5
5
  import './execution-refs.cjs';
6
6
  import './types-BBhqYGhE.cjs';
@@ -114,6 +114,14 @@ interface BoardLiveCardsMcpManageAddChatEntryAndAnyAttachmentsResult {
114
114
  files: Array<Record<string, unknown>>;
115
115
  };
116
116
  }
117
+ interface BoardLiveCardsMcpManageAddChatAttachmentResult {
118
+ status: 'success';
119
+ data: {
120
+ cardId: string;
121
+ turn: string;
122
+ files: Array<Record<string, unknown>>;
123
+ };
124
+ }
117
125
  interface BoardLiveCardsMcpPreflightRunOneCycleResult {
118
126
  status: 'success';
119
127
  data: {
@@ -242,6 +250,15 @@ interface BoardLiveCardsMcpDeps {
242
250
  nonCore: BoardLiveCardsMcpNonCoreDeps;
243
251
  cardStore: BoardLiveCardsMcpCardStoreDeps;
244
252
  chatStore: ChatStorePublic;
253
+ processAccumulated?: () => Awaitable<CommandResult>;
254
+ sourceFetchDone?: (args: {
255
+ token: string;
256
+ ref: string;
257
+ }) => Awaitable<CommandResult>;
258
+ sourceFetchFailed?: (args: {
259
+ token: string;
260
+ reason: string;
261
+ }) => Awaitable<CommandResult>;
245
262
  uploadCardFile(args: {
246
263
  cardId: string;
247
264
  fileName: string;
@@ -263,6 +280,7 @@ interface BoardLiveCardsMcpDeps {
263
280
  }): unknown | null;
264
281
  }
265
282
  interface BoardLiveCardsMcp {
283
+ listRuntimeCards(): Promise<LiveCard[]>;
266
284
  discoverSourceKinds(): Promise<BoardLiveCardsMcpDiscoverSourceKindsResult>;
267
285
  inspectBoardRuntimeStatus(): Promise<BoardLiveCardsMcpBoardStatusResult>;
268
286
  inspectCardDefinitionAndRuntime(args: {
@@ -310,6 +328,12 @@ interface BoardLiveCardsMcp {
310
328
  manageReadCard(args: {
311
329
  cardId: string;
312
330
  }): Promise<LiveCard[]>;
331
+ manageAddChatAttachment(args: {
332
+ cardId: string;
333
+ role?: string;
334
+ turn?: string;
335
+ files?: unknown[];
336
+ }): Promise<BoardLiveCardsMcpManageAddChatAttachmentResult>;
313
337
  manageAddChatEntryAndAnyAttachments(args: {
314
338
  cardId: string;
315
339
  role: string;
@@ -317,6 +341,10 @@ interface BoardLiveCardsMcp {
317
341
  turn?: string;
318
342
  files?: unknown[];
319
343
  }): Promise<BoardLiveCardsMcpManageAddChatEntryAndAnyAttachmentsResult>;
344
+ managePatchCard(args: {
345
+ cardId: string;
346
+ patch: UnknownRecord;
347
+ }): Promise<BoardLiveCardsMcpManageUpsertCardResult>;
320
348
  manageUpsertCard(args: {
321
349
  cardId: string;
322
350
  candidateCardContent: UnknownRecord;
@@ -344,7 +372,26 @@ interface BoardLiveCardsMcp {
344
372
  cardId: string;
345
373
  active: boolean;
346
374
  };
375
+ webhookProcessAccumulated(): Promise<CommandResult<{
376
+ runtime_result: unknown;
377
+ }>>;
378
+ webhookSourceFetchDone(args: {
379
+ token: string;
380
+ ref: string;
381
+ }): Promise<CommandResult<{
382
+ token: string;
383
+ ref: string;
384
+ runtime_result: unknown;
385
+ }>>;
386
+ webhookSourceFetchFailed(args: {
387
+ token: string;
388
+ reason: string;
389
+ }): Promise<CommandResult<{
390
+ token: string;
391
+ reason: string;
392
+ runtime_result: unknown;
393
+ }>>;
347
394
  }
348
395
  declare function createBoardLiveCardsMcp(deps: BoardLiveCardsMcpDeps): BoardLiveCardsMcp;
349
396
 
350
- export { type BoardLiveCardsMcp, type BoardLiveCardsMcpBoardDeps, type BoardLiveCardsMcpBoardStatusCard, type BoardLiveCardsMcpBoardStatusResult, type BoardLiveCardsMcpCardStoreDeps, type BoardLiveCardsMcpDeps, type BoardLiveCardsMcpDiscoverSourceKindsResult, type BoardLiveCardsMcpFileDownloadDescriptor, type BoardLiveCardsMcpInspectCardDefinitionAndRuntimeResult, type BoardLiveCardsMcpInspectChatMessagesResult, type BoardLiveCardsMcpManageAddChatEntryAndAnyAttachmentsResult, type BoardLiveCardsMcpManageUpsertCardFailureResult, type BoardLiveCardsMcpManageUpsertCardResult, type BoardLiveCardsMcpManageUpsertCardSuccessResult, type BoardLiveCardsMcpNonCoreDeps, type BoardLiveCardsMcpPreflightMaterializeResult, type BoardLiveCardsMcpPreflightRunOneCycleResult, type BoardLiveCardsMcpRenderedView, type BoardLiveCardsMcpRenderedViewElement, createBoardLiveCardsMcp };
397
+ export { type BoardLiveCardsMcp, type BoardLiveCardsMcpBoardDeps, type BoardLiveCardsMcpBoardStatusCard, type BoardLiveCardsMcpBoardStatusResult, type BoardLiveCardsMcpCardStoreDeps, type BoardLiveCardsMcpDeps, type BoardLiveCardsMcpDiscoverSourceKindsResult, type BoardLiveCardsMcpFileDownloadDescriptor, type BoardLiveCardsMcpInspectCardDefinitionAndRuntimeResult, type BoardLiveCardsMcpInspectChatMessagesResult, type BoardLiveCardsMcpManageAddChatAttachmentResult, type BoardLiveCardsMcpManageAddChatEntryAndAnyAttachmentsResult, type BoardLiveCardsMcpManageUpsertCardFailureResult, type BoardLiveCardsMcpManageUpsertCardResult, type BoardLiveCardsMcpManageUpsertCardSuccessResult, type BoardLiveCardsMcpNonCoreDeps, type BoardLiveCardsMcpPreflightMaterializeResult, type BoardLiveCardsMcpPreflightRunOneCycleResult, type BoardLiveCardsMcpRenderedView, type BoardLiveCardsMcpRenderedViewElement, createBoardLiveCardsMcp };
@@ -1,6 +1,6 @@
1
- import { C as CommandResult, L as LiveCard } from './board-live-cards-public-BMUIPOrc.js';
1
+ import { L as LiveCard, a as CommandResult } from './board-live-cards-public-D-DJek3X.js';
2
2
  import { ChatStorePublic } from './chat-store-public.js';
3
- import { C as ChatRecord } from './chat-storage-lib-BlG-sobS.js';
3
+ import { a as ChatRecord } from './chat-storage-lib-DB9iSai2.js';
4
4
  import './storage-interface-BFiD3kyB.js';
5
5
  import './execution-refs.js';
6
6
  import './types-BBhqYGhE.js';
@@ -114,6 +114,14 @@ interface BoardLiveCardsMcpManageAddChatEntryAndAnyAttachmentsResult {
114
114
  files: Array<Record<string, unknown>>;
115
115
  };
116
116
  }
117
+ interface BoardLiveCardsMcpManageAddChatAttachmentResult {
118
+ status: 'success';
119
+ data: {
120
+ cardId: string;
121
+ turn: string;
122
+ files: Array<Record<string, unknown>>;
123
+ };
124
+ }
117
125
  interface BoardLiveCardsMcpPreflightRunOneCycleResult {
118
126
  status: 'success';
119
127
  data: {
@@ -242,6 +250,15 @@ interface BoardLiveCardsMcpDeps {
242
250
  nonCore: BoardLiveCardsMcpNonCoreDeps;
243
251
  cardStore: BoardLiveCardsMcpCardStoreDeps;
244
252
  chatStore: ChatStorePublic;
253
+ processAccumulated?: () => Awaitable<CommandResult>;
254
+ sourceFetchDone?: (args: {
255
+ token: string;
256
+ ref: string;
257
+ }) => Awaitable<CommandResult>;
258
+ sourceFetchFailed?: (args: {
259
+ token: string;
260
+ reason: string;
261
+ }) => Awaitable<CommandResult>;
245
262
  uploadCardFile(args: {
246
263
  cardId: string;
247
264
  fileName: string;
@@ -263,6 +280,7 @@ interface BoardLiveCardsMcpDeps {
263
280
  }): unknown | null;
264
281
  }
265
282
  interface BoardLiveCardsMcp {
283
+ listRuntimeCards(): Promise<LiveCard[]>;
266
284
  discoverSourceKinds(): Promise<BoardLiveCardsMcpDiscoverSourceKindsResult>;
267
285
  inspectBoardRuntimeStatus(): Promise<BoardLiveCardsMcpBoardStatusResult>;
268
286
  inspectCardDefinitionAndRuntime(args: {
@@ -310,6 +328,12 @@ interface BoardLiveCardsMcp {
310
328
  manageReadCard(args: {
311
329
  cardId: string;
312
330
  }): Promise<LiveCard[]>;
331
+ manageAddChatAttachment(args: {
332
+ cardId: string;
333
+ role?: string;
334
+ turn?: string;
335
+ files?: unknown[];
336
+ }): Promise<BoardLiveCardsMcpManageAddChatAttachmentResult>;
313
337
  manageAddChatEntryAndAnyAttachments(args: {
314
338
  cardId: string;
315
339
  role: string;
@@ -317,6 +341,10 @@ interface BoardLiveCardsMcp {
317
341
  turn?: string;
318
342
  files?: unknown[];
319
343
  }): Promise<BoardLiveCardsMcpManageAddChatEntryAndAnyAttachmentsResult>;
344
+ managePatchCard(args: {
345
+ cardId: string;
346
+ patch: UnknownRecord;
347
+ }): Promise<BoardLiveCardsMcpManageUpsertCardResult>;
320
348
  manageUpsertCard(args: {
321
349
  cardId: string;
322
350
  candidateCardContent: UnknownRecord;
@@ -344,7 +372,26 @@ interface BoardLiveCardsMcp {
344
372
  cardId: string;
345
373
  active: boolean;
346
374
  };
375
+ webhookProcessAccumulated(): Promise<CommandResult<{
376
+ runtime_result: unknown;
377
+ }>>;
378
+ webhookSourceFetchDone(args: {
379
+ token: string;
380
+ ref: string;
381
+ }): Promise<CommandResult<{
382
+ token: string;
383
+ ref: string;
384
+ runtime_result: unknown;
385
+ }>>;
386
+ webhookSourceFetchFailed(args: {
387
+ token: string;
388
+ reason: string;
389
+ }): Promise<CommandResult<{
390
+ token: string;
391
+ reason: string;
392
+ runtime_result: unknown;
393
+ }>>;
347
394
  }
348
395
  declare function createBoardLiveCardsMcp(deps: BoardLiveCardsMcpDeps): BoardLiveCardsMcp;
349
396
 
350
- export { type BoardLiveCardsMcp, type BoardLiveCardsMcpBoardDeps, type BoardLiveCardsMcpBoardStatusCard, type BoardLiveCardsMcpBoardStatusResult, type BoardLiveCardsMcpCardStoreDeps, type BoardLiveCardsMcpDeps, type BoardLiveCardsMcpDiscoverSourceKindsResult, type BoardLiveCardsMcpFileDownloadDescriptor, type BoardLiveCardsMcpInspectCardDefinitionAndRuntimeResult, type BoardLiveCardsMcpInspectChatMessagesResult, type BoardLiveCardsMcpManageAddChatEntryAndAnyAttachmentsResult, type BoardLiveCardsMcpManageUpsertCardFailureResult, type BoardLiveCardsMcpManageUpsertCardResult, type BoardLiveCardsMcpManageUpsertCardSuccessResult, type BoardLiveCardsMcpNonCoreDeps, type BoardLiveCardsMcpPreflightMaterializeResult, type BoardLiveCardsMcpPreflightRunOneCycleResult, type BoardLiveCardsMcpRenderedView, type BoardLiveCardsMcpRenderedViewElement, createBoardLiveCardsMcp };
397
+ export { type BoardLiveCardsMcp, type BoardLiveCardsMcpBoardDeps, type BoardLiveCardsMcpBoardStatusCard, type BoardLiveCardsMcpBoardStatusResult, type BoardLiveCardsMcpCardStoreDeps, type BoardLiveCardsMcpDeps, type BoardLiveCardsMcpDiscoverSourceKindsResult, type BoardLiveCardsMcpFileDownloadDescriptor, type BoardLiveCardsMcpInspectCardDefinitionAndRuntimeResult, type BoardLiveCardsMcpInspectChatMessagesResult, type BoardLiveCardsMcpManageAddChatAttachmentResult, type BoardLiveCardsMcpManageAddChatEntryAndAnyAttachmentsResult, type BoardLiveCardsMcpManageUpsertCardFailureResult, type BoardLiveCardsMcpManageUpsertCardResult, type BoardLiveCardsMcpManageUpsertCardSuccessResult, type BoardLiveCardsMcpNonCoreDeps, type BoardLiveCardsMcpPreflightMaterializeResult, type BoardLiveCardsMcpPreflightRunOneCycleResult, type BoardLiveCardsMcpRenderedView, type BoardLiveCardsMcpRenderedViewElement, createBoardLiveCardsMcp };
@@ -1,2 +1,2 @@
1
- export{a as createBoardLiveCardsMcp}from'./chunk-R5L5WUKN.js';import'./chunk-JMDHDY6M.js';import'./chunk-VLBB3D6B.js';import'./chunk-MNEOJWPS.js';import'./chunk-FW4363Y4.js';//# sourceMappingURL=board-live-cards-mcp.js.map
1
+ export{a as createBoardLiveCardsMcp}from'./chunk-PRHQBGPT.js';import'./chunk-JMDHDY6M.js';import'./chunk-VLBB3D6B.js';import'./chunk-MNEOJWPS.js';import'./chunk-FW4363Y4.js';//# sourceMappingURL=board-live-cards-mcp.js.map
2
2
  //# sourceMappingURL=board-live-cards-mcp.js.map
@@ -1,12 +1,12 @@
1
- 'use strict';var chunkWOALA3V5_cjs=require('./chunk-WOALA3V5.cjs'),chunkPMUSJQSR_cjs=require('./chunk-PMUSJQSR.cjs');require('./chunk-PBCDDO4V.cjs');var chunkOEFTOO47_cjs=require('./chunk-OEFTOO47.cjs'),chunkU2N6MCD5_cjs=require('./chunk-U2N6MCD5.cjs'),chunkSFVO2LB2_cjs=require('./chunk-SFVO2LB2.cjs');require('./chunk-G4XXRHL2.cjs'),require('./chunk-LODXIALE.cjs');var chunkYEB5QHGE_cjs=require('./chunk-YEB5QHGE.cjs');require('./chunk-IXZG74EW.cjs');var chunkNMZ6XNLB_cjs=require('./chunk-NMZ6XNLB.cjs');require('./chunk-UJ7ZTV4J.cjs');var chunkYMEIPKLW_cjs=require('./chunk-YMEIPKLW.cjs'),chunkP7ZCDICS_cjs=require('./chunk-P7ZCDICS.cjs');require('./chunk-GNFE24S7.cjs');var child_process=require('child_process'),a=require('fs'),Ee=require('os'),y=require('path'),Te=require('net'),url=require('url'),crypto=require('crypto'),module$1=require('module'),properLockfile=require('proper-lockfile');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var a__namespace=/*#__PURE__*/_interopNamespace(a);var Ee__namespace=/*#__PURE__*/_interopNamespace(Ee);var y__namespace=/*#__PURE__*/_interopNamespace(y);var Te__namespace=/*#__PURE__*/_interopNamespace(Te);function b(...e){return y__namespace.join(...e)}function Be(e){return y__namespace.isAbsolute(e)}function X(){return crypto.randomUUID()}function Ie(e){return crypto.createHash("sha256").update(e).digest("hex")}function Ce(e){return y__namespace.dirname(url.fileURLToPath(e))}function wt(e){if(typeof e=="object"&&e!==null){let{command:r,args:n=[],...o}=e,s=Ae(r,n);return {...o,command:s.command,args:s.args}}let t=Fe(e);if(t.length===0)throw new Error(`Empty command spec: ${JSON.stringify(e)}`);return Ae(t[0],t.slice(1))}function Ae(e,t){return /^(node|node\.exe)$/i.test(e)?{command:process.execPath,args:t}:/\.m?js$/i.test(e)?{command:process.execPath,args:[e,...t]}:{command:e,args:t}}function Fe(e){let t=[],r="",n=null;for(let o of e.trim()){if(n){o===n?n=null:r+=o;continue}if(o==='"'||o==="'"){n=o;continue}if(/\s/.test(o)){r&&(t.push(r),r="");continue}r+=o;}if(n)throw new Error(`Unterminated quote in command: ${e}`);return r&&t.push(r),t}function Me(e){return process.platform==="win32"&&/\.(cmd|bat)$/i.test(e)}function je(e,t){let{command:r,args:n=[],cwd:o,env:s,timeoutMs:u}=e;return child_process.execFileSync(r,n,{shell:Me(r),timeout:u,encoding:t?.encoding??"utf-8",cwd:o,windowsHide:true,env:s?{...process.env,...s}:void 0,input:t?.input})}function kt(e,t){let{command:r,args:n=[],cwd:o,env:s,timeoutMs:u=3e4}=e;child_process.execFile(r,n,{shell:Me(r),encoding:"utf8",windowsHide:true,timeout:u,maxBuffer:10*1024*1024,cwd:o,env:s?{...process.env,...s}:void 0},(l,g,i)=>t(l??null,g,i));}function $e(e,t,r){let n=y__namespace.join(e,"board-live-cards-cli.js");if(a__namespace.existsSync(n))return {cmd:process.execPath,args:[n,t,...r]};let o=y__namespace.join(e,"board-live-cards-cli.ts"),u=[y__namespace.join(e,"..","..","..","node_modules","tsx","dist","cli.mjs"),y__namespace.join(e,"..","..","node_modules","tsx","dist","cli.mjs"),y__namespace.join(e,"..","..","..","node_modules",".bin","tsx"),y__namespace.join(e,"..","..","node_modules",".bin","tsx")].find(g=>a__namespace.existsSync(g));return a__namespace.existsSync(o)&&u?{cmd:process.execPath,args:[u,o,t,...r]}:{cmd:process.platform==="win32"?"npx.cmd":"npx",args:["tsx",o,t,...r]}}function Pe(e){let t=y__namespace.join(e,"board-live-cards-cli.mjs");if(a__namespace.existsSync(t))return t;let r=y__namespace.join(e,"..","..","..","dev","board-live-cards-cli.js");if(a__namespace.existsSync(r))return r;let n=y__namespace.join(e,"..","..","dev","board-live-cards-cli.js");if(a__namespace.existsSync(n))return n;let o=y__namespace.join(e,"board-live-cards-cli.js");if(a__namespace.existsSync(o))return o;throw new Error(`resolveBoardCliCallbackTarget: cannot find callback target in ${e} (expected dev/board-live-cards-cli.js wrapper, ${o}, or ${t})`)}function vt(e){return process.platform==="win32"?`\\\\.\\pipe\\${e}`:y__namespace.join(Ee__namespace.tmpdir(),`${e}.sock`)}var Z=new Map;function Le(e,t,r){if(t.length===0)return;let n=t.map(l=>JSON.stringify(l)).join(`
1
+ 'use strict';require('./chunk-NKIQRCOM.cjs');var chunkNJJ7WEDT_cjs=require('./chunk-NJJ7WEDT.cjs'),chunkGL2OHR2E_cjs=require('./chunk-GL2OHR2E.cjs'),chunkPMUSJQSR_cjs=require('./chunk-PMUSJQSR.cjs');require('./chunk-PBCDDO4V.cjs');var chunkOEFTOO47_cjs=require('./chunk-OEFTOO47.cjs'),chunkU2N6MCD5_cjs=require('./chunk-U2N6MCD5.cjs'),chunkSFVO2LB2_cjs=require('./chunk-SFVO2LB2.cjs');require('./chunk-G4XXRHL2.cjs'),require('./chunk-LODXIALE.cjs');var chunkM6STQR5F_cjs=require('./chunk-M6STQR5F.cjs');require('./chunk-IXZG74EW.cjs');var chunkNMZ6XNLB_cjs=require('./chunk-NMZ6XNLB.cjs');require('./chunk-UJ7ZTV4J.cjs');var chunkYMEIPKLW_cjs=require('./chunk-YMEIPKLW.cjs'),chunkP7ZCDICS_cjs=require('./chunk-P7ZCDICS.cjs');require('./chunk-GNFE24S7.cjs');var child_process=require('child_process'),i=require('fs'),Ee=require('os'),y=require('path'),Te=require('net'),url=require('url'),crypto=require('crypto'),module$1=require('module'),properLockfile=require('proper-lockfile');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var i__namespace=/*#__PURE__*/_interopNamespace(i);var Ee__namespace=/*#__PURE__*/_interopNamespace(Ee);var y__namespace=/*#__PURE__*/_interopNamespace(y);var Te__namespace=/*#__PURE__*/_interopNamespace(Te);function b(...e){return y__namespace.join(...e)}function Be(e){return y__namespace.isAbsolute(e)}function X(){return crypto.randomUUID()}function Ie(e){return crypto.createHash("sha256").update(e).digest("hex")}function Ce(e){return y__namespace.dirname(url.fileURLToPath(e))}function kt(e){if(typeof e=="object"&&e!==null){let{command:r,args:n=[],...o}=e,s=Ae(r,n);return {...o,command:s.command,args:s.args}}let t=Me(e);if(t.length===0)throw new Error(`Empty command spec: ${JSON.stringify(e)}`);return Ae(t[0],t.slice(1))}function Ae(e,t){return /^(node|node\.exe)$/i.test(e)?{command:process.execPath,args:t}:/\.m?js$/i.test(e)?{command:process.execPath,args:[e,...t]}:{command:e,args:t}}function Me(e){let t=[],r="",n=null;for(let o of e.trim()){if(n){o===n?n=null:r+=o;continue}if(o==='"'||o==="'"){n=o;continue}if(/\s/.test(o)){r&&(t.push(r),r="");continue}r+=o;}if(n)throw new Error(`Unterminated quote in command: ${e}`);return r&&t.push(r),t}function Fe(e){return process.platform==="win32"&&/\.(cmd|bat)$/i.test(e)}function je(e,t){let{command:r,args:n=[],cwd:o,env:s,timeoutMs:u}=e;return child_process.execFileSync(r,n,{shell:Fe(r),timeout:u,encoding:t?.encoding??"utf-8",cwd:o,windowsHide:true,env:s?{...process.env,...s}:void 0,input:t?.input})}function wt(e,t){let{command:r,args:n=[],cwd:o,env:s,timeoutMs:u=3e4}=e;child_process.execFile(r,n,{shell:Fe(r),encoding:"utf8",windowsHide:true,timeout:u,maxBuffer:10*1024*1024,cwd:o,env:s?{...process.env,...s}:void 0},(l,g,a)=>t(l??null,g,a));}function $e(e,t,r){let n=y__namespace.join(e,"board-live-cards-cli.js");if(i__namespace.existsSync(n))return {cmd:process.execPath,args:[n,t,...r]};let o=y__namespace.join(e,"board-live-cards-cli.ts"),u=[y__namespace.join(e,"..","..","..","node_modules","tsx","dist","cli.mjs"),y__namespace.join(e,"..","..","node_modules","tsx","dist","cli.mjs"),y__namespace.join(e,"..","..","..","node_modules",".bin","tsx"),y__namespace.join(e,"..","..","node_modules",".bin","tsx")].find(g=>i__namespace.existsSync(g));return i__namespace.existsSync(o)&&u?{cmd:process.execPath,args:[u,o,t,...r]}:{cmd:process.platform==="win32"?"npx.cmd":"npx",args:["tsx",o,t,...r]}}function Pe(e){let t=y__namespace.join(e,"board-live-cards-cli.mjs");if(i__namespace.existsSync(t))return t;let r=y__namespace.join(e,"..","..","..","dev","board-live-cards-cli.js");if(i__namespace.existsSync(r))return r;let n=y__namespace.join(e,"..","..","dev","board-live-cards-cli.js");if(i__namespace.existsSync(n))return n;let o=y__namespace.join(e,"board-live-cards-cli.js");if(i__namespace.existsSync(o))return o;throw new Error(`resolveBoardCliCallbackTarget: cannot find callback target in ${e} (expected dev/board-live-cards-cli.js wrapper, ${o}, or ${t})`)}function vt(e){return process.platform==="win32"?`\\\\.\\pipe\\${e}`:y__namespace.join(Ee__namespace.tmpdir(),`${e}.sock`)}var Z=new Map;function qe(e,t,r){if(t.length===0)return;let n=t.map(l=>JSON.stringify(l)).join(`
2
2
  `)+`
3
- `,o=Z.get(e);if(o&&!o.socket.destroyed){o.ready?o.socket.write(n):o.queue.push(n);return}let s=vt(e),u=Te__namespace.createConnection(s);o={socket:u,ready:false,queue:[n]},Z.set(e,o),u.on("connect",()=>{o.ready=true;for(let l of o.queue)u.write(l);o.queue.length=0;}),u.on("error",l=>{r?.(`[named-pipe publish] ${s}: ${l instanceof Error?l.message:String(l)}`),Z.delete(e);}),u.on("close",()=>{Z.delete(e);});}function qe(){return {executeSync(e,t,r){return je({command:e,args:t,cwd:r?.cwd,timeoutMs:r?.timeout,env:r?.env},{encoding:r?.encoding,input:r?.input})},executeAsync(e,t,r){kt({command:e,args:t},r);},resolveInvocation(e,t){let r=wt({command:e,args:t});return {cmd:r.command,args:r.args??[]}},splitCommand:Fe}}function fe(e){return {id:e.id??"board-worker",pollIntervalMs:e.pollIntervalMs,visibilityMs:e.visibilityMs,concurrency:e.concurrency,maxAttempts:e.maxAttempts,async lease(t){return e.workerStore.leaseRequests(t).map(r=>({id:r.messageId,attempt:r.attempt,message:r.request,ack:()=>e.workerStore.ackRequest(r.messageId,r.leaseToken),nack:n=>e.workerStore.nackRequest(r.messageId,r.leaseToken,n)}))},async handle(t){await e.handleRequest(t.args,t);},onError:e.onError}}function pe(e){return {id:e.id,pollIntervalMs:e.pollIntervalMs,visibilityMs:e.visibilityMs,concurrency:e.concurrency,maxAttempts:e.maxAttempts,async lease(t){return e.queueStorage.lease(t).map(r=>({id:r.id,attempt:r.attempt,message:r.body,ack:()=>e.queueStorage.ack(r.id,r.leaseToken),nack:n=>e.queueStorage.nack(r.id,r.leaseToken,n)}))},handle:e.handleMessage,onError:e.onError}}async function Oe(e,t){try{await e.handle(t.message,t),await t.ack();}catch(r){let n=t.attempt>=Math.max(1,Math.floor(e.maxAttempts??5));await t.nack({dead:n,reason:r instanceof Error?r.message:String(r)}),e.onError?.(r,t);}}function Qe(e){let t=Math.max(1,Math.floor(e.pollIntervalMs??250)),r=Math.max(1,Math.floor(e.visibilityMs??6e4)),n=Math.max(1,Math.floor(e.concurrency??1)),o=false,s=false;async function u(){if(!(o||s)){s=true;try{let g=await e.lease({max:n,visibilityMs:r});for(let i of g)await Oe(e,i);}finally{s=false;}}}let l=setInterval(()=>{u();},t);return typeof l.unref=="function"&&l.unref(),u(),()=>{o=true,clearInterval(l);}}async function bt(e){let t=Math.max(1,Math.floor(e.visibilityMs??6e4)),r=Math.max(1,Math.floor(e.concurrency??1)),n=await e.lease({max:r,visibilityMs:t});for(let o of n)await Oe(e,o);return n.length}async function ee(e,t){let r=Math.max(1,Math.floor(t?.maxPasses??256)),n=0;for(let o=0;o<r;o+=1){let s=await bt(e);if(n+=s,s<=0)return n}throw new Error(`drainQueueLaneToIdle exceeded ${r} passes for lane "${e.id}"`)}function At(e){let r=(Array.isArray(e)?e:e.lanes).map(n=>Qe(n));return ()=>{for(let n of r)n();}}var Tt=module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('board-live-cards-node.cjs', document.baseURI).href)));function Bt(e){return typeof e=="object"?e:chunkSFVO2LB2_cjs.b(e)}function Ne(e){let t=y__namespace.basename(String(e||"").trim());if(!t)throw new Error(`resolveYamlFlowCliPath: expected non-empty cli file name, got ${JSON.stringify(e)}`);let r=y__namespace.dirname(Tt.resolve("yaml-flow/package.json")),n=t.replace(/\.[^.]+$/,""),o=y__namespace.join(r,"cli","bundled",`${n}.mjs`);if(a__namespace.existsSync(o))return o;let s=y__namespace.join(r,"cli","node",t);if(a__namespace.existsSync(s))return s;throw new Error(`resolveYamlFlowCliPath: could not find ${t} under cli/bundled or cli/node in ${r}`)}function $(e){let t=Bt(e);return t.kind==="yaml-flow-cli"?Ne(t.value):t.value}function It(e,t){let r=$(e);switch(r){case "source-cli-task-executor":{let n=y__namespace.join(t,"source-cli-task-executor.js");if(a__namespace.existsSync(n))return {command:process.execPath,args:[n]};let o=y__namespace.join(t,"source-cli-task-executor.ts"),s=y__namespace.join(t,"..","..","node_modules","tsx","dist","cli.mjs"),u=y__namespace.join(t,"..","..","node_modules",".bin","tsx"),l=a__namespace.existsSync(s)?s:u;return a__namespace.existsSync(o)&&a__namespace.existsSync(l)?{command:process.execPath,args:[l,o]}:{command:process.execPath,args:[n]}}case "board-live-cards":{let{cmd:n,args:o}=$e(t,"_",[]);return {command:n,args:o}}default:throw new Error(`resolveBuiltIn: unknown built-in name "${r}". Supported: source-cli-task-executor, board-live-cards`)}}function Ct(e,t){if(e.howToRun==="built-in"){let{command:n,args:o}=It(e.whatToRun,t);return {command:n,baseArgs:o}}let r=(typeof e.whatToRun=="object",$(e.whatToRun));switch(e.howToRun){case "local-node":return {command:process.execPath,baseArgs:[r]};case "local-python":return {command:process.platform==="win32"?"python":"python3",baseArgs:[r]};case "local-process":return {command:r,baseArgs:[]};default:throw new Error(`resolveBaseInvocation: howToRun "${e.howToRun}" is not a local transport`)}}function te(e,t){return Ct(e,t)}var ge=new Map;function Ft(e,t){let r=String(e||"").trim();if(!r)throw new Error("registerInProcessExecutionHandler: key is required");ge.set(r,t);}function Mt(e){let t=String(e||"").trim();t&&ge.delete(t);}function _e(e){let t=e.trim();if(!t)throw new Error("empty stdout");try{return JSON.parse(t)}catch{let r=t.split(/\r?\n/).filter(Boolean),n=r[r.length-1];return JSON.parse(n)}}function Je(e,t){return {...t,whatToRun:$(e.whatToRun),...e.extra?{extra:e.extra}:{}}}function me(e,t,r="invokeExecutionRef"){return chunkPMUSJQSR_cjs.a(e,t,r)}function De(e,t){if(e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.result=="string"&&e.data&&typeof e.data=="object"&&!Array.isArray(e.data))return {...e,...t||{}};if(e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.status=="string"){let n=e,o=n.status==="success"?"success":n.status==="fail"?"failure":n.status,s=n.data&&typeof n.data=="object"&&!Array.isArray(n.data)?n.data:n.data===void 0?{}:{stdout:n.data};return {result:o,data:s,...typeof n.error=="string"?{error:n.error}:{},...t||{}}}return {result:"success",data:e&&typeof e=="object"&&!Array.isArray(e)?e:{stdout:e},...t||{}}}function j(e){return {result:"failure",data:{error:e}}}function q(e,t,r){let n=r?.label??"invokeExecutionRefSync",o=r?.cliDir??r?.cwd??process.cwd(),s;try{s=me(e.argsMassaging,Je(e,t),n);}catch(d){let f=d instanceof Error?d.message:String(d);return j(f)}let u;try{u=te(e,o);}catch(d){let f=d instanceof Error?d.message:String(d);return j(`[${n}] ref resolution failed: ${f}`)}let l=[...u.baseArgs,...s.cmdArgs??[]],g=JSON.stringify(s.stdin??t),i=qe(),c;try{c=i.executeSync(u.command,l,{timeout:r?.timeoutMs??3e4,encoding:"utf-8",cwd:r?.cwd,input:g});}catch(d){let f=d,m=(f.stderr?String(f.stderr):"").trim(),S=typeof f.status=="number"?f.status:"unknown",h=m||f.message;return j(`[${n}] ref exited with status ${S}${h?`: ${h}`:""}`)}try{return De(_e(c))}catch{return {result:"success",data:{stdout:c.trim()}}}}async function We(e,t,r){let n=r?.label??"invokeExecutionRef",o;try{o=me(e.argsMassaging,Je(e,t),n);}catch(d){let f=d instanceof Error?d.message:String(d);return j(f)}let s=$(e.whatToRun),u=o.headers?{"Content-Type":"application/json",...o.headers}:{"Content-Type":"application/json"},l=o.url??s,g;if(e.howToRun==="http:get"){let d=o.body&&typeof o.body=="object"&&!Array.isArray(o.body)?o.body:t,f=new URLSearchParams(Object.entries(d).filter(([,m])=>m!=null).map(([m,S])=>[m,String(S)]));f.size>0&&(l=`${l}${l.includes("?")?"&":"?"}${f.toString()}`);}else g=JSON.stringify(o.body??t);let i={method:e.howToRun==="http:get"?"GET":"POST",headers:u,body:g},c=0;for(;;)try{let d=await fetch(l,i);if(!d.ok){let h=await d.text().catch(()=>"");return j(`[${n}] HTTP ${d.status}${h?`: ${h}`:""}`)}let f={};d.headers.forEach((h,k)=>{f[k]=h;});let m=new Uint8Array(await d.arrayBuffer());if(m.byteLength===0)return {result:"success",data:{},headers:f};let S=new TextDecoder().decode(m);try{return De(_e(S),{headers:f})}catch{return {result:"success",data:{stdout:S},headers:f}}}catch(d){let f=d?.cause,m=f&&typeof f=="object"&&"code"in f?String(f.code||""):"";if((m==="ECONNRESET"||m==="UND_ERR_SOCKET")&&c===0){c+=1;continue}let h=d instanceof Error?d.message:String(d),k=f instanceof Error?`${f.name}: ${f.message}${m?` [${m}]`:""}`:f?String(f):"",p=o.url??s??"",x=`${h}${k?` (cause: ${k})`:""}${p?` url=${p}`:""}`;return j(`[${n}] ${x}`)}}async function jt(e,t,r){let n=r?.label??"invokeExecutionRef",o=$(e.whatToRun).trim();if(!o)return j(`[${n}] in-process-loop requires a non-empty handler key`);let s=ge.get(o);if(!s)return j(`[${n}] no in-process handler registered for: ${o}`);try{return await s(e,t,r)}catch(u){let l=u instanceof Error?u.message:String(u);return j(`[${n}] ${l}`)}}var $t={"local-node":async(e,t,r)=>q(e,t,r),"local-python":async(e,t,r)=>q(e,t,r),"local-process":async(e,t,r)=>q(e,t,r),"built-in":async(e,t,r)=>q(e,t,r),"http:post":We,"http:get":We,"in-process-loop":jt},Pt={"local-node":q,"local-python":q,"local-process":q,"built-in":q};async function D(e,t,r){let n=r?.transports?.[e.howToRun]??$t[e.howToRun];return n?n(e,t,r):j(`[${r?.label??"invokeExecutionRef"}] unsupported howToRun: ${e.howToRun}`)}function ye(e,t,r){let n=r?.syncTransports?.[e.howToRun]??Pt[e.howToRun];return n?n(e,t,r):j(`[${r?.label??"invokeExecutionRefSync"}] unsupported sync howToRun: ${e.howToRun}`)}function Lt(e){return {invoke(t,r){return D(t,r,e)},invokeSync(t,r){return ye(t,r,e)}}}function qt(e,t,r){return ye(e,t,r)}function he(e){return {messageId:e.id,enqueuedAt:e.enqueuedAt,attempt:e.attempt,request:e.body}}function Ot(e){return {...he(e),leaseToken:e.leaseToken,leaseExpiresAt:e.leaseExpiresAt}}function Qt(e){return {...he(e),reason:e.reason}}function H(e){return {enqueueRequest(t){return e.enqueue(t).id},enqueueRequestIfAbsent:e.enqueueIfAbsent?(t,r)=>{let n=e.enqueueIfAbsent(t,r);return n?n.id:null}:void 0,leaseRequests(t){return e.lease(t).map(Ot)},ackRequest(t,r){return e.ack(t,r)},nackRequest(t,r,n){return e.nack(t,r,n)},peekActive(){return e.peekActive().map(he)},peekDeadLetter(){return e.peekDeadLetter().map(Qt)}}}function C(e,t){if(process.platform!=="win32"){a__namespace.renameSync(e,t);return}let r=[10,20,40,80,160];for(let n=0;n<=r.length;n++)try{a__namespace.renameSync(e,t);return}catch(o){let s=o.code;if((s==="EPERM"||s==="EBUSY")&&n<r.length){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,r[n]);continue}throw o}}function U(e){function t(o){return y__namespace.join(e,...o.split("/"))}function r(o){return y__namespace.relative(e,o).replace(/\\/g,"/")}function n(o,s){if(a__namespace.existsSync(o))for(let u of a__namespace.readdirSync(o,{withFileTypes:true})){let l=y__namespace.join(o,u.name);if(u.isDirectory()){n(l,s);continue}u.isFile()&&s.push(r(l));}}return {read(o){let s=t(o);if(!a__namespace.existsSync(s))return null;try{return a__namespace.readFileSync(s,"utf-8")}catch{return null}},write(o,s){let u=t(o),l=`${u}.${process.pid}.${crypto.randomUUID()}.tmp`;a__namespace.mkdirSync(y__namespace.dirname(u),{recursive:true}),a__namespace.writeFileSync(l,s,"utf-8"),C(l,u);},exists(o){return a__namespace.existsSync(t(o))},remove(o){let s=t(o);try{a__namespace.existsSync(s)&&a__namespace.unlinkSync(s);}catch{}},readBytes(o){let s=t(o);if(!a__namespace.existsSync(s))return null;try{return new Uint8Array(a__namespace.readFileSync(s))}catch{return null}},writeBytes(o,s){let u=t(o),l=`${u}.${process.pid}.${crypto.randomUUID()}.tmp`;a__namespace.mkdirSync(y__namespace.dirname(u),{recursive:true}),a__namespace.writeFileSync(l,Buffer.from(s)),C(l,u);},listKeys(o){let s=[];n(e,s);let u=s.sort();return o?u.filter(l=>l.startsWith(o)):u},stat(o){let s=t(o);if(!a__namespace.existsSync(s))return null;try{let u=a__namespace.statSync(s);return {key:o,size:Number(u.size||0),updatedAt:new Date(u.mtimeMs).toISOString()}}catch{return null}},keyRef(o){return {kind:"fs-path",value:t(o)}}}}function we(){return {read(e){if(!a__namespace.existsSync(e))return null;try{return a__namespace.readFileSync(e,"utf-8")}catch{return null}},write(e,t){let r=`${e}.${process.pid}.${crypto.randomUUID()}.tmp`;a__namespace.mkdirSync(y__namespace.dirname(e),{recursive:true}),a__namespace.writeFileSync(r,t,"utf-8"),C(r,e);},exists(e){return a__namespace.existsSync(e)},remove(e){try{a__namespace.existsSync(e)&&a__namespace.unlinkSync(e);}catch{}},readBytes(e){if(!a__namespace.existsSync(e))return null;try{return new Uint8Array(a__namespace.readFileSync(e))}catch{return null}},writeBytes(e,t){let r=`${e}.${process.pid}.${crypto.randomUUID()}.tmp`;a__namespace.mkdirSync(y__namespace.dirname(e),{recursive:true}),a__namespace.writeFileSync(r,Buffer.from(t)),C(r,e);},stat(e){if(!a__namespace.existsSync(e))return null;try{let t=a__namespace.statSync(e);return {key:e,size:Number(t.size||0),updatedAt:new Date(t.mtimeMs).toISOString()}}catch{return null}},listKeys(e){return []}}}function K(e,t){let r=`${e}.${process.pid}.${crypto.randomUUID()}.tmp`;a__namespace.mkdirSync(y__namespace.dirname(e),{recursive:true}),a__namespace.writeFileSync(r,JSON.stringify(t,null,2),"utf-8"),C(r,e);}function N(e){if(!a__namespace.existsSync(e))return null;try{return JSON.parse(a__namespace.readFileSync(e,"utf-8"))}catch{return null}}function V(e){return a__namespace.existsSync(e)?a__namespace.readdirSync(e).filter(t=>t.endsWith(".json")).sort().map(t=>y__namespace.join(e,t)):[]}function z(e){return {id:e.id,body:e.body,enqueuedAt:e.enqueuedAt,attempt:e.attempt}}function _t(e){return {...z(e),leaseToken:String(e.leaseToken||""),leaseExpiresAt:String(e.leaseExpiresAt||"")}}function Jt(e){return {...z(e),reason:e.reason}}function _(e){let t=y__namespace.join(e,"active"),r=y__namespace.join(e,"leased"),n=y__namespace.join(e,"done"),o=y__namespace.join(e,"dead");for(let c of [t,r,n,o])a__namespace.mkdirSync(c,{recursive:true});function s(c){let d=String(c.enqueuedAt||new Date().toISOString()).replace(/[:.]/g,"-");return y__namespace.join(t,`${d}-${c.id}.json`)}function u(c){return y__namespace.join(r,`${c}.json`)}function l(c){return y__namespace.join(n,`${c}.json`)}function g(c){return y__namespace.join(o,`${c}.json`)}function i(){let c=Date.now();for(let d of V(r)){let f=N(d);if(!f?.leaseExpiresAt)continue;let m=Date.parse(f.leaseExpiresAt);if(Number.isNaN(m)||m>c)continue;let S={id:f.id,body:f.body,enqueuedAt:f.enqueuedAt,attempt:f.attempt};K(s(S),S);try{a__namespace.unlinkSync(d);}catch{}}}return {enqueue(c){let d={id:crypto.randomUUID(),body:c,enqueuedAt:new Date().toISOString(),attempt:0};return K(s(d),d),z(d)},enqueueIfAbsent(c,d){i();for(let m of [t,r])for(let S of V(m))if(N(S)?.dedupKey===d)return null;let f={id:crypto.randomUUID(),body:c,enqueuedAt:new Date().toISOString(),attempt:0,dedupKey:d};return K(s(f),f),z(f)},lease(c){i();let d=Math.max(1,Math.floor(c?.max??1)),f=Math.max(1,Math.floor(c?.visibilityMs??6e4)),m=[];for(let S of V(t)){if(m.length>=d)break;let h=N(S);if(!h)continue;let k=u(h.id);try{C(S,k);}catch{continue}let p={...h,attempt:(Number(h.attempt)||0)+1,leaseToken:crypto.randomUUID(),leaseExpiresAt:new Date(Date.now()+f).toISOString()};K(k,p),m.push(_t(p));}return m},ack(c,d){let f=u(c),m=N(f);if(!m||m.leaseToken!==d)return false;try{C(f,l(c));}catch{return false}return true},nack(c,d,f){let m=u(c),S=N(m);if(!S||S.leaseToken!==d)return false;let h={id:S.id,body:S.body,enqueuedAt:S.enqueuedAt,attempt:S.attempt};f?.dead?(h.reason=f.reason,K(g(c),h)):K(s(h),h);try{a__namespace.unlinkSync(m);}catch{}return true},peekActive(c){return i(),V(t).map(d=>N(d)).filter(d=>!!d).map(z)},peekDeadLetter(c){return V(o).map(d=>N(d)).filter(d=>!!d).map(Jt)}}}var Se="__scratch-marker",Re="__scratch-config.json",Dt=1440*60*1e3,Ht=720*60*1e3,Kt=500;function He(e,t){if(!e)return t;let r=e.replace(/[^A-Za-z0-9._-]/g,"_");return r.length>0?r:t}function G(e){a__namespace.mkdirSync(e,{recursive:true});let t=y__namespace.join(e,Se),r=y__namespace.join(e,Re),n=!a__namespace.existsSync(t);if(n)try{a__namespace.writeFileSync(t,`scratch-store
3
+ `,o=Z.get(e);if(o&&!o.socket.destroyed){o.ready?o.socket.write(n):o.queue.push(n);return}let s=vt(e),u=Te__namespace.createConnection(s);o={socket:u,ready:false,queue:[n]},Z.set(e,o),u.on("connect",()=>{o.ready=true;for(let l of o.queue)u.write(l);o.queue.length=0;}),u.on("error",l=>{r?.(`[named-pipe publish] ${s}: ${l instanceof Error?l.message:String(l)}`),Z.delete(e);}),u.on("close",()=>{Z.delete(e);});}function Le(){return {executeSync(e,t,r){return je({command:e,args:t,cwd:r?.cwd,timeoutMs:r?.timeout,env:r?.env},{encoding:r?.encoding,input:r?.input})},executeAsync(e,t,r){wt({command:e,args:t},r);},resolveInvocation(e,t){let r=kt({command:e,args:t});return {cmd:r.command,args:r.args??[]}},splitCommand:Me}}function fe(e){return {id:e.id??"board-worker",pollIntervalMs:e.pollIntervalMs,visibilityMs:e.visibilityMs,concurrency:e.concurrency,maxAttempts:e.maxAttempts,async lease(t){return e.workerStore.leaseRequests(t).map(r=>({id:r.messageId,attempt:r.attempt,message:r.request,ack:()=>e.workerStore.ackRequest(r.messageId,r.leaseToken),nack:n=>e.workerStore.nackRequest(r.messageId,r.leaseToken,n)}))},async handle(t){await e.handleRequest(t.args,t);},onError:e.onError}}function pe(e){return {id:e.id,pollIntervalMs:e.pollIntervalMs,visibilityMs:e.visibilityMs,concurrency:e.concurrency,maxAttempts:e.maxAttempts,async lease(t){return e.queueStorage.lease(t).map(r=>({id:r.id,attempt:r.attempt,message:r.body,ack:()=>e.queueStorage.ack(r.id,r.leaseToken),nack:n=>e.queueStorage.nack(r.id,r.leaseToken,n)}))},handle:e.handleMessage,onError:e.onError}}async function Qe(e,t){try{await e.handle(t.message,t),await t.ack();}catch(r){let n=t.attempt>=Math.max(1,Math.floor(e.maxAttempts??5));await t.nack({dead:n,reason:r instanceof Error?r.message:String(r)}),e.onError?.(r,t);}}function Oe(e){let t=Math.max(1,Math.floor(e.pollIntervalMs??250)),r=Math.max(1,Math.floor(e.visibilityMs??6e4)),n=Math.max(1,Math.floor(e.concurrency??1)),o=false,s=false;async function u(){if(!(o||s)){s=true;try{let g=await e.lease({max:n,visibilityMs:r});for(let a of g)await Qe(e,a);}finally{s=false;}}}let l=setInterval(()=>{u();},t);return typeof l.unref=="function"&&l.unref(),u(),()=>{o=true,clearInterval(l);}}async function bt(e){let t=Math.max(1,Math.floor(e.visibilityMs??6e4)),r=Math.max(1,Math.floor(e.concurrency??1)),n=await e.lease({max:r,visibilityMs:t});for(let o of n)await Qe(e,o);return n.length}async function ee(e,t){let r=Math.max(1,Math.floor(t?.maxPasses??256)),n=0;for(let o=0;o<r;o+=1){let s=await bt(e);if(n+=s,s<=0)return n}throw new Error(`drainQueueLaneToIdle exceeded ${r} passes for lane "${e.id}"`)}function At(e){let r=(Array.isArray(e)?e:e.lanes).map(n=>Oe(n));return ()=>{for(let n of r)n();}}var Tt=module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('board-live-cards-node.cjs', document.baseURI).href)));function Bt(e){return typeof e=="object"?e:chunkSFVO2LB2_cjs.b(e)}function _e(e){let t=y__namespace.basename(String(e||"").trim());if(!t)throw new Error(`resolveYamlFlowCliPath: expected non-empty cli file name, got ${JSON.stringify(e)}`);let r=y__namespace.dirname(Tt.resolve("yaml-flow/package.json")),n=t.replace(/\.[^.]+$/,""),o=y__namespace.join(r,"cli","bundled",`${n}.mjs`);if(i__namespace.existsSync(o))return o;let s=y__namespace.join(r,"cli","node",t);if(i__namespace.existsSync(s))return s;throw new Error(`resolveYamlFlowCliPath: could not find ${t} under cli/bundled or cli/node in ${r}`)}function $(e){let t=Bt(e);return t.kind==="yaml-flow-cli"?_e(t.value):t.value}function It(e,t){let r=$(e);switch(r){case "source-cli-task-executor":{let n=y__namespace.join(t,"source-cli-task-executor.js");if(i__namespace.existsSync(n))return {command:process.execPath,args:[n]};let o=y__namespace.join(t,"source-cli-task-executor.ts"),s=y__namespace.join(t,"..","..","node_modules","tsx","dist","cli.mjs"),u=y__namespace.join(t,"..","..","node_modules",".bin","tsx"),l=i__namespace.existsSync(s)?s:u;return i__namespace.existsSync(o)&&i__namespace.existsSync(l)?{command:process.execPath,args:[l,o]}:{command:process.execPath,args:[n]}}case "board-live-cards":{let{cmd:n,args:o}=$e(t,"_",[]);return {command:n,args:o}}default:throw new Error(`resolveBuiltIn: unknown built-in name "${r}". Supported: source-cli-task-executor, board-live-cards`)}}function Ct(e,t){if(e.howToRun==="built-in"){let{command:n,args:o}=It(e.whatToRun,t);return {command:n,baseArgs:o}}let r=(typeof e.whatToRun=="object",$(e.whatToRun));switch(e.howToRun){case "local-node":return {command:process.execPath,baseArgs:[r]};case "local-python":return {command:process.platform==="win32"?"python":"python3",baseArgs:[r]};case "local-process":return {command:r,baseArgs:[]};default:throw new Error(`resolveBaseInvocation: howToRun "${e.howToRun}" is not a local transport`)}}function te(e,t){return Ct(e,t)}var ge=new Map;function Mt(e,t){let r=String(e||"").trim();if(!r)throw new Error("registerInProcessExecutionHandler: key is required");ge.set(r,t);}function Ft(e){let t=String(e||"").trim();t&&ge.delete(t);}function Ne(e){let t=e.trim();if(!t)throw new Error("empty stdout");try{return JSON.parse(t)}catch{let r=t.split(/\r?\n/).filter(Boolean),n=r[r.length-1];return JSON.parse(n)}}function Je(e,t){return {...t,whatToRun:$(e.whatToRun),...e.extra?{extra:e.extra}:{}}}function me(e,t,r="invokeExecutionRef"){return chunkPMUSJQSR_cjs.a(e,t,r)}function De(e,t){if(e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.result=="string"&&e.data&&typeof e.data=="object"&&!Array.isArray(e.data))return {...e,...t||{}};if(e&&typeof e=="object"&&!Array.isArray(e)&&typeof e.status=="string"){let n=e,o=n.status==="success"?"success":n.status==="fail"?"failure":n.status,s=n.data&&typeof n.data=="object"&&!Array.isArray(n.data)?n.data:n.data===void 0?{}:{stdout:n.data};return {result:o,data:s,...typeof n.error=="string"?{error:n.error}:{},...t||{}}}return {result:"success",data:e&&typeof e=="object"&&!Array.isArray(e)?e:{stdout:e},...t||{}}}function j(e){return {result:"failure",data:{error:e}}}function L(e,t,r){let n=r?.label??"invokeExecutionRefSync",o=r?.cliDir??r?.cwd??process.cwd(),s;try{s=me(e.argsMassaging,Je(e,t),n);}catch(d){let f=d instanceof Error?d.message:String(d);return j(f)}let u;try{u=te(e,o);}catch(d){let f=d instanceof Error?d.message:String(d);return j(`[${n}] ref resolution failed: ${f}`)}let l=[...u.baseArgs,...s.cmdArgs??[]],g=JSON.stringify(s.stdin??t),a=Le(),c;try{c=a.executeSync(u.command,l,{timeout:r?.timeoutMs??3e4,encoding:"utf-8",cwd:r?.cwd,input:g});}catch(d){let f=d,m=(f.stderr?String(f.stderr):"").trim(),S=typeof f.status=="number"?f.status:"unknown",h=m||f.message;return j(`[${n}] ref exited with status ${S}${h?`: ${h}`:""}`)}try{return De(Ne(c))}catch{return {result:"success",data:{stdout:c.trim()}}}}async function We(e,t,r){let n=r?.label??"invokeExecutionRef",o;try{o=me(e.argsMassaging,Je(e,t),n);}catch(d){let f=d instanceof Error?d.message:String(d);return j(f)}let s=$(e.whatToRun),u=o.headers?{"Content-Type":"application/json",...o.headers}:{"Content-Type":"application/json"},l=o.url??s,g;if(e.howToRun==="http:get"){let d=o.body&&typeof o.body=="object"&&!Array.isArray(o.body)?o.body:t,f=new URLSearchParams(Object.entries(d).filter(([,m])=>m!=null).map(([m,S])=>[m,String(S)]));f.size>0&&(l=`${l}${l.includes("?")?"&":"?"}${f.toString()}`);}else g=JSON.stringify(o.body??t);let a={method:e.howToRun==="http:get"?"GET":"POST",headers:u,body:g},c=0;for(;;)try{let d=await fetch(l,a);if(!d.ok){let h=await d.text().catch(()=>"");return j(`[${n}] HTTP ${d.status}${h?`: ${h}`:""}`)}let f={};d.headers.forEach((h,w)=>{f[w]=h;});let m=new Uint8Array(await d.arrayBuffer());if(m.byteLength===0)return {result:"success",data:{},headers:f};let S=new TextDecoder().decode(m);try{return De(Ne(S),{headers:f})}catch{return {result:"success",data:{stdout:S},headers:f}}}catch(d){let f=d?.cause,m=f&&typeof f=="object"&&"code"in f?String(f.code||""):"";if((m==="ECONNRESET"||m==="UND_ERR_SOCKET")&&c===0){c+=1;continue}let h=d instanceof Error?d.message:String(d),w=f instanceof Error?`${f.name}: ${f.message}${m?` [${m}]`:""}`:f?String(f):"",p=o.url??s??"",x=`${h}${w?` (cause: ${w})`:""}${p?` url=${p}`:""}`;return j(`[${n}] ${x}`)}}async function jt(e,t,r){let n=r?.label??"invokeExecutionRef",o=$(e.whatToRun).trim();if(!o)return j(`[${n}] in-process-loop requires a non-empty handler key`);let s=ge.get(o);if(!s)return j(`[${n}] no in-process handler registered for: ${o}`);try{return await s(e,t,r)}catch(u){let l=u instanceof Error?u.message:String(u);return j(`[${n}] ${l}`)}}var $t={"local-node":async(e,t,r)=>L(e,t,r),"local-python":async(e,t,r)=>L(e,t,r),"local-process":async(e,t,r)=>L(e,t,r),"built-in":async(e,t,r)=>L(e,t,r),"http:post":We,"http:get":We,"in-process-loop":jt},Pt={"local-node":L,"local-python":L,"local-process":L,"built-in":L};async function D(e,t,r){let n=r?.transports?.[e.howToRun]??$t[e.howToRun];return n?n(e,t,r):j(`[${r?.label??"invokeExecutionRef"}] unsupported howToRun: ${e.howToRun}`)}function ye(e,t,r){let n=r?.syncTransports?.[e.howToRun]??Pt[e.howToRun];return n?n(e,t,r):j(`[${r?.label??"invokeExecutionRefSync"}] unsupported sync howToRun: ${e.howToRun}`)}function qt(e){return {invoke(t,r){return D(t,r,e)},invokeSync(t,r){return ye(t,r,e)}}}function Lt(e,t,r){return ye(e,t,r)}function he(e){return {messageId:e.id,enqueuedAt:e.enqueuedAt,attempt:e.attempt,request:e.body}}function Qt(e){return {...he(e),leaseToken:e.leaseToken,leaseExpiresAt:e.leaseExpiresAt}}function Ot(e){return {...he(e),reason:e.reason}}function H(e){return {enqueueRequest(t){return e.enqueue(t).id},enqueueRequestIfAbsent:e.enqueueIfAbsent?(t,r)=>{let n=e.enqueueIfAbsent(t,r);return n?n.id:null}:void 0,leaseRequests(t){return e.lease(t).map(Qt)},ackRequest(t,r){return e.ack(t,r)},nackRequest(t,r,n){return e.nack(t,r,n)},peekActive(){return e.peekActive().map(he)},peekDeadLetter(){return e.peekDeadLetter().map(Ot)}}}function C(e,t){if(process.platform!=="win32"){i__namespace.renameSync(e,t);return}let r=[10,20,40,80,160];for(let n=0;n<=r.length;n++)try{i__namespace.renameSync(e,t);return}catch(o){let s=o.code;if((s==="EPERM"||s==="EBUSY")&&n<r.length){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,r[n]);continue}throw o}}function U(e){function t(o){return y__namespace.join(e,...o.split("/"))}function r(o){return y__namespace.relative(e,o).replace(/\\/g,"/")}function n(o,s){if(i__namespace.existsSync(o))for(let u of i__namespace.readdirSync(o,{withFileTypes:true})){let l=y__namespace.join(o,u.name);if(u.isDirectory()){n(l,s);continue}u.isFile()&&s.push(r(l));}}return {read(o){let s=t(o);if(!i__namespace.existsSync(s))return null;try{return i__namespace.readFileSync(s,"utf-8")}catch{return null}},write(o,s){let u=t(o),l=`${u}.${process.pid}.${crypto.randomUUID()}.tmp`;i__namespace.mkdirSync(y__namespace.dirname(u),{recursive:true}),i__namespace.writeFileSync(l,s,"utf-8"),C(l,u);},exists(o){return i__namespace.existsSync(t(o))},remove(o){let s=t(o);try{i__namespace.existsSync(s)&&i__namespace.unlinkSync(s);}catch{}},readBytes(o){let s=t(o);if(!i__namespace.existsSync(s))return null;try{return new Uint8Array(i__namespace.readFileSync(s))}catch{return null}},writeBytes(o,s){let u=t(o),l=`${u}.${process.pid}.${crypto.randomUUID()}.tmp`;i__namespace.mkdirSync(y__namespace.dirname(u),{recursive:true}),i__namespace.writeFileSync(l,Buffer.from(s)),C(l,u);},listKeys(o){let s=[];n(e,s);let u=s.sort();return o?u.filter(l=>l.startsWith(o)):u},stat(o){let s=t(o);if(!i__namespace.existsSync(s))return null;try{let u=i__namespace.statSync(s);return {key:o,size:Number(u.size||0),updatedAt:new Date(u.mtimeMs).toISOString()}}catch{return null}},keyRef(o){return {kind:"fs-path",value:t(o)}}}}function ke(){return {read(e){if(!i__namespace.existsSync(e))return null;try{return i__namespace.readFileSync(e,"utf-8")}catch{return null}},write(e,t){let r=`${e}.${process.pid}.${crypto.randomUUID()}.tmp`;i__namespace.mkdirSync(y__namespace.dirname(e),{recursive:true}),i__namespace.writeFileSync(r,t,"utf-8"),C(r,e);},exists(e){return i__namespace.existsSync(e)},remove(e){try{i__namespace.existsSync(e)&&i__namespace.unlinkSync(e);}catch{}},readBytes(e){if(!i__namespace.existsSync(e))return null;try{return new Uint8Array(i__namespace.readFileSync(e))}catch{return null}},writeBytes(e,t){let r=`${e}.${process.pid}.${crypto.randomUUID()}.tmp`;i__namespace.mkdirSync(y__namespace.dirname(e),{recursive:true}),i__namespace.writeFileSync(r,Buffer.from(t)),C(r,e);},stat(e){if(!i__namespace.existsSync(e))return null;try{let t=i__namespace.statSync(e);return {key:e,size:Number(t.size||0),updatedAt:new Date(t.mtimeMs).toISOString()}}catch{return null}},listKeys(e){return []}}}function K(e,t){let r=`${e}.${process.pid}.${crypto.randomUUID()}.tmp`;i__namespace.mkdirSync(y__namespace.dirname(e),{recursive:true}),i__namespace.writeFileSync(r,JSON.stringify(t,null,2),"utf-8"),C(r,e);}function _(e){if(!i__namespace.existsSync(e))return null;try{return JSON.parse(i__namespace.readFileSync(e,"utf-8"))}catch{return null}}function V(e){return i__namespace.existsSync(e)?i__namespace.readdirSync(e).filter(t=>t.endsWith(".json")).sort().map(t=>y__namespace.join(e,t)):[]}function z(e){return {id:e.id,body:e.body,enqueuedAt:e.enqueuedAt,attempt:e.attempt}}function Nt(e){return {...z(e),leaseToken:String(e.leaseToken||""),leaseExpiresAt:String(e.leaseExpiresAt||"")}}function Jt(e){return {...z(e),reason:e.reason}}function N(e){let t=y__namespace.join(e,"active"),r=y__namespace.join(e,"leased"),n=y__namespace.join(e,"done"),o=y__namespace.join(e,"dead");for(let c of [t,r,n,o])i__namespace.mkdirSync(c,{recursive:true});function s(c){let d=String(c.enqueuedAt||new Date().toISOString()).replace(/[:.]/g,"-");return y__namespace.join(t,`${d}-${c.id}.json`)}function u(c){return y__namespace.join(r,`${c}.json`)}function l(c){return y__namespace.join(n,`${c}.json`)}function g(c){return y__namespace.join(o,`${c}.json`)}function a(){let c=Date.now();for(let d of V(r)){let f=_(d);if(!f?.leaseExpiresAt)continue;let m=Date.parse(f.leaseExpiresAt);if(Number.isNaN(m)||m>c)continue;let S={id:f.id,body:f.body,enqueuedAt:f.enqueuedAt,attempt:f.attempt};K(s(S),S);try{i__namespace.unlinkSync(d);}catch{}}}return {enqueue(c){let d={id:crypto.randomUUID(),body:c,enqueuedAt:new Date().toISOString(),attempt:0};return K(s(d),d),z(d)},enqueueIfAbsent(c,d){a();for(let m of [t,r])for(let S of V(m))if(_(S)?.dedupKey===d)return null;let f={id:crypto.randomUUID(),body:c,enqueuedAt:new Date().toISOString(),attempt:0,dedupKey:d};return K(s(f),f),z(f)},lease(c){a();let d=Math.max(1,Math.floor(c?.max??1)),f=Math.max(1,Math.floor(c?.visibilityMs??6e4)),m=[];for(let S of V(t)){if(m.length>=d)break;let h=_(S);if(!h)continue;let w=u(h.id);try{C(S,w);}catch{continue}let p={...h,attempt:(Number(h.attempt)||0)+1,leaseToken:crypto.randomUUID(),leaseExpiresAt:new Date(Date.now()+f).toISOString()};K(w,p),m.push(Nt(p));}return m},ack(c,d){let f=u(c),m=_(f);if(!m||m.leaseToken!==d)return false;try{C(f,l(c));}catch{return false}return true},nack(c,d,f){let m=u(c),S=_(m);if(!S||S.leaseToken!==d)return false;let h={id:S.id,body:S.body,enqueuedAt:S.enqueuedAt,attempt:S.attempt};f?.dead?(h.reason=f.reason,K(g(c),h)):K(s(h),h);try{i__namespace.unlinkSync(m);}catch{}return true},peekActive(c){return a(),V(t).map(d=>_(d)).filter(d=>!!d).map(z)},peekDeadLetter(c){return V(o).map(d=>_(d)).filter(d=>!!d).map(Jt)}}}var Se="__scratch-marker",Re="__scratch-config.json",Dt=1440*60*1e3,Ht=720*60*1e3,Kt=500;function He(e,t){if(!e)return t;let r=e.replace(/[^A-Za-z0-9._-]/g,"_");return r.length>0?r:t}function G(e){i__namespace.mkdirSync(e,{recursive:true});let t=y__namespace.join(e,Se),r=y__namespace.join(e,Re),n=!i__namespace.existsSync(t);if(n)try{i__namespace.writeFileSync(t,`scratch-store
4
4
  ${new Date().toISOString()}
5
- `,"utf-8");}catch{}function o(){if(!a__namespace.existsSync(r))return {};try{let i=a__namespace.readFileSync(r,"utf-8"),c=JSON.parse(i);return c&&typeof c=="object"&&!Array.isArray(c)?c:{}}catch{return {}}}function s(i){let c=`${r}.${process.pid}.${crypto.randomUUID()}.tmp`;try{a__namespace.writeFileSync(c,JSON.stringify(i,null,2),"utf-8"),C(c,r);}catch{}}if(n){let i=o();typeof i["retention.lastSweepAt"]!="number"&&(i["retention.lastSweepAt"]=Date.now(),s(i));}function u(){if(!a__namespace.existsSync(t))return;let i=o(),c=typeof i["retention.maxAgeMs"]=="number"?i["retention.maxAgeMs"]:Dt,d=typeof i["retention.sweepIntervalMs"]=="number"?i["retention.sweepIntervalMs"]:Ht;if(c<=0||d<=0)return;let f=typeof i["retention.lastSweepAt"]=="number"?i["retention.lastSweepAt"]:0,m=Date.now();if(m-f<d)return;i["retention.lastSweepAt"]=m,s(i);let S=m;try{let h=a__namespace.readdirSync(e,{withFileTypes:!0});for(let k of h){if(Date.now()-S>Kt)break;if(!k.isFile()||k.name===Se||k.name===Re)continue;let p=y__namespace.join(e,k.name);try{let x=a__namespace.statSync(p);if(m-x.mtimeMs>c)try{a__namespace.unlinkSync(p);}catch{}}catch{}}}catch{}}function l(i,c){let d=He(i,"scratch"),f=He(c,".json"),m=f.startsWith(".")?f:`.${f}`,S=`${d}-${Date.now()}-${crypto.randomUUID().slice(0,8)}${m}`;return y__namespace.join(e,S)}function g(i,c){let d=`${i}.${process.pid}.${crypto.randomUUID()}.tmp`;a__namespace.mkdirSync(y__namespace.dirname(i),{recursive:true}),a__namespace.writeFileSync(d,c,"utf-8"),C(d,i);}return {read(i){if(!a__namespace.existsSync(i))return null;try{return a__namespace.readFileSync(i,"utf-8")}catch{return null}},write(i,c){g(i,c);try{u();}catch{}},exists(i){return a__namespace.existsSync(i)},remove(i){try{a__namespace.existsSync(i)&&a__namespace.unlinkSync(i);}catch{}},readBytes(i){if(!a__namespace.existsSync(i))return null;try{return new Uint8Array(a__namespace.readFileSync(i))}catch{return null}},writeBytes(i,c){let d=`${i}.${process.pid}.${crypto.randomUUID()}.tmp`;a__namespace.mkdirSync(y__namespace.dirname(i),{recursive:true}),a__namespace.writeFileSync(d,Buffer.from(c)),C(d,i);try{u();}catch{}},stat(i){if(!a__namespace.existsSync(i))return null;try{let c=a__namespace.statSync(i);return {key:i,size:Number(c.size||0),updatedAt:new Date(c.mtimeMs).toISOString()}}catch{return null}},listKeys(i){try{let c=a__namespace.readdirSync(e,{withFileTypes:!0}),d=[];for(let f of c){if(!f.isFile()||f.name===Se||f.name===Re)continue;let m=y__namespace.join(e,f.name);(!i||m.startsWith(i))&&d.push(m);}return d.sort()}catch{return []}},getUniqueKey(i,c){return l(i,c)},create(i,c,d){let f=l(c,d);g(f,i);try{u();}catch{}return f},keyRef(i){return {kind:"fs-path",value:i}},config:{get(i){return o()[i]??null},set(i,c){let d=o();c==null?delete d[i]:d[i]=c,s(d);}}}}var Ut="__archive-marker",Vt="__archive-config.json",re="streams",ne="blobs",zt=500;function Ke(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"_");if(!t)throw new Error("Archive segment name cannot be empty after sanitization");return t}function oe(e){a__namespace.mkdirSync(e,{recursive:true}),a__namespace.mkdirSync(y__namespace.join(e,re),{recursive:true}),a__namespace.mkdirSync(y__namespace.join(e,ne),{recursive:true});let t=y__namespace.join(e,Ut),r=y__namespace.join(e,Vt);if(!a__namespace.existsSync(t))try{a__namespace.writeFileSync(t,`archive-store
5
+ `,"utf-8");}catch{}function o(){if(!i__namespace.existsSync(r))return {};try{let a=i__namespace.readFileSync(r,"utf-8"),c=JSON.parse(a);return c&&typeof c=="object"&&!Array.isArray(c)?c:{}}catch{return {}}}function s(a){let c=`${r}.${process.pid}.${crypto.randomUUID()}.tmp`;try{i__namespace.writeFileSync(c,JSON.stringify(a,null,2),"utf-8"),C(c,r);}catch{}}if(n){let a=o();typeof a["retention.lastSweepAt"]!="number"&&(a["retention.lastSweepAt"]=Date.now(),s(a));}function u(){if(!i__namespace.existsSync(t))return;let a=o(),c=typeof a["retention.maxAgeMs"]=="number"?a["retention.maxAgeMs"]:Dt,d=typeof a["retention.sweepIntervalMs"]=="number"?a["retention.sweepIntervalMs"]:Ht;if(c<=0||d<=0)return;let f=typeof a["retention.lastSweepAt"]=="number"?a["retention.lastSweepAt"]:0,m=Date.now();if(m-f<d)return;a["retention.lastSweepAt"]=m,s(a);let S=m;try{let h=i__namespace.readdirSync(e,{withFileTypes:!0});for(let w of h){if(Date.now()-S>Kt)break;if(!w.isFile()||w.name===Se||w.name===Re)continue;let p=y__namespace.join(e,w.name);try{let x=i__namespace.statSync(p);if(m-x.mtimeMs>c)try{i__namespace.unlinkSync(p);}catch{}}catch{}}}catch{}}function l(a,c){let d=He(a,"scratch"),f=He(c,".json"),m=f.startsWith(".")?f:`.${f}`,S=`${d}-${Date.now()}-${crypto.randomUUID().slice(0,8)}${m}`;return y__namespace.join(e,S)}function g(a,c){let d=`${a}.${process.pid}.${crypto.randomUUID()}.tmp`;i__namespace.mkdirSync(y__namespace.dirname(a),{recursive:true}),i__namespace.writeFileSync(d,c,"utf-8"),C(d,a);}return {read(a){if(!i__namespace.existsSync(a))return null;try{return i__namespace.readFileSync(a,"utf-8")}catch{return null}},write(a,c){g(a,c);try{u();}catch{}},exists(a){return i__namespace.existsSync(a)},remove(a){try{i__namespace.existsSync(a)&&i__namespace.unlinkSync(a);}catch{}},readBytes(a){if(!i__namespace.existsSync(a))return null;try{return new Uint8Array(i__namespace.readFileSync(a))}catch{return null}},writeBytes(a,c){let d=`${a}.${process.pid}.${crypto.randomUUID()}.tmp`;i__namespace.mkdirSync(y__namespace.dirname(a),{recursive:true}),i__namespace.writeFileSync(d,Buffer.from(c)),C(d,a);try{u();}catch{}},stat(a){if(!i__namespace.existsSync(a))return null;try{let c=i__namespace.statSync(a);return {key:a,size:Number(c.size||0),updatedAt:new Date(c.mtimeMs).toISOString()}}catch{return null}},listKeys(a){try{let c=i__namespace.readdirSync(e,{withFileTypes:!0}),d=[];for(let f of c){if(!f.isFile()||f.name===Se||f.name===Re)continue;let m=y__namespace.join(e,f.name);(!a||m.startsWith(a))&&d.push(m);}return d.sort()}catch{return []}},getUniqueKey(a,c){return l(a,c)},create(a,c,d){let f=l(c,d);g(f,a);try{u();}catch{}return f},keyRef(a){return {kind:"fs-path",value:a}},config:{get(a){return o()[a]??null},set(a,c){let d=o();c==null?delete d[a]:d[a]=c,s(d);}}}}var Ut="__archive-marker",Vt="__archive-config.json",re="streams",ne="blobs",zt=500;function Ke(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"_");if(!t)throw new Error("Archive segment name cannot be empty after sanitization");return t}function oe(e){i__namespace.mkdirSync(e,{recursive:true}),i__namespace.mkdirSync(y__namespace.join(e,re),{recursive:true}),i__namespace.mkdirSync(y__namespace.join(e,ne),{recursive:true});let t=y__namespace.join(e,Ut),r=y__namespace.join(e,Vt);if(!i__namespace.existsSync(t))try{i__namespace.writeFileSync(t,`archive-store
6
6
  ${new Date().toISOString()}
7
- `,"utf-8");}catch{}function n(){if(!a__namespace.existsSync(r))return {};try{let u=a__namespace.readFileSync(r,"utf-8"),l=JSON.parse(u);return l&&typeof l=="object"&&!Array.isArray(l)?l:{}}catch{return {}}}function o(u){let l=`${r}.${process.pid}.${crypto.randomUUID()}.tmp`;try{a__namespace.writeFileSync(l,JSON.stringify(u,null,2),"utf-8"),C(l,r);}catch{}}function s(){if(!a__namespace.existsSync(t))return;let u=n(),l=typeof u["retention.maxAgeMs"]=="number"?u["retention.maxAgeMs"]:0,g=typeof u["retention.sweepIntervalMs"]=="number"?u["retention.sweepIntervalMs"]:0;if(l<=0||g<=0)return;let i=typeof u["retention.lastSweepAt"]=="number"?u["retention.lastSweepAt"]:0,c=Date.now();if(c-i<g)return;u["retention.lastSweepAt"]=c,o(u);let d=c,f=m=>{let S;try{S=a__namespace.readdirSync(m,{withFileTypes:!0});}catch{return}for(let h of S){if(Date.now()-d>zt)return;let k=y__namespace.join(m,h.name);if(h.isDirectory()){f(k);continue}if(h.isFile())try{let p=a__namespace.statSync(k);if(c-p.mtimeMs>l)try{a__namespace.unlinkSync(k);}catch{}}catch{}}};f(y__namespace.join(e,re)),f(y__namespace.join(e,ne));}return {stream(u){let l=Ke(u),g=y__namespace.join(e,re,`${l}.jsonl`),i=ke(g);return {append(c){let d=i.append(c);try{s();}catch{}return d},readAll:()=>i.readAll(),readAfter:c=>i.readAfter(c),clear:()=>{i.clear&&i.clear();}}},blob(u){let l=Ke(u),g=y__namespace.join(e,ne,l);a__namespace.mkdirSync(g,{recursive:true});let i=U(g);return {read:c=>i.read(c),write:(c,d)=>{i.write(c,d);try{s();}catch{}},exists:c=>i.exists(c),remove:c=>i.remove(c),readBytes:i.readBytes?c=>i.readBytes(c):void 0,writeBytes:i.writeBytes?(c,d)=>{i.writeBytes(c,d);try{s();}catch{}}:void 0,listKeys:c=>i.listKeys(c),stat:i.stat?c=>i.stat(c):void 0}},listStreams(u){let l=y__namespace.join(e,re);try{return a__namespace.readdirSync(l,{withFileTypes:!0}).filter(g=>g.isFile()&&g.name.endsWith(".jsonl")).map(g=>g.name.slice(0,-6)).filter(g=>!u||g.startsWith(u)).sort()}catch{return []}},listBlobs(u){let l=y__namespace.join(e,ne);try{return a__namespace.readdirSync(l,{withFileTypes:!0}).filter(g=>g.isDirectory()).map(g=>g.name).filter(g=>!u||g.startsWith(u)).sort()}catch{return []}},config:{get(u){return n()[u]??null},set(u,l){let g=n();l==null?delete g[u]:g[u]=l,o(g);}}}}function se(e){function t(n){return y__namespace.join(e,...n.split("/"))+".json"}function r(n,o,s,u){if(a__namespace.existsSync(n))for(let l of a__namespace.readdirSync(n,{withFileTypes:true})){let g=o?`${o}/${l.name}`:l.name;if(l.isDirectory()){r(y__namespace.join(n,l.name),g,s,u);continue}if(!l.isFile()||!l.name.endsWith(".json"))continue;let i=g.replace(/\.json$/,"");(!s||i.startsWith(s))&&u.push(i);}}return {read(n){let o=t(n);if(!a__namespace.existsSync(o))return null;try{return JSON.parse(a__namespace.readFileSync(o,"utf-8"))}catch{return null}},write(n,o){let s=t(n),u=`${s}.${process.pid}.${crypto.randomUUID()}.tmp`;a__namespace.mkdirSync(y__namespace.dirname(s),{recursive:true}),a__namespace.writeFileSync(u,JSON.stringify(o,null,2),"utf-8"),C(u,s);},delete(n){let o=t(n);try{a__namespace.existsSync(o)&&a__namespace.unlinkSync(o);}catch{}},listKeys(n){let o=[];return r(e,"",n,o),o.sort()}}}function ke(e){function t(){if(!a__namespace.existsSync(e))return [];let r=a__namespace.readFileSync(e,"utf-8").trim();return r?r.split(`
8
- `).filter(Boolean).map(n=>JSON.parse(n)):[]}return {append(r){let n={id:crypto.randomUUID(),payload:r};return a__namespace.mkdirSync(y__namespace.dirname(e),{recursive:true}),a__namespace.appendFileSync(e,JSON.stringify(n)+`
9
- `,"utf-8"),n},readAll(){return t()},readAfter(r){let n=t();if(!r)return {entries:n,newCursor:n.length>0?n[n.length-1].id:null};let o=n.findIndex(u=>u.id===r),s=o===-1?n:n.slice(o+1);return {entries:s,newCursor:s.length>0?s[s.length-1].id:r}},clear(){a__namespace.existsSync(e)&&a__namespace.truncateSync(e,0);}}}function xe(e){if(e==null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return `[${e.map(xe).join(",")}]`;let t=e;return `{${Object.keys(t).sort().map(n=>`${JSON.stringify(n)}:${xe(t[n])}`).join(",")}}`}function Ue(e){return crypto.createHash("sha256").update(xe(e)).digest("hex")}function Ve(e){let t=y__namespace.join(e,"board-journal.jsonl");return {readAllEntries(){if(!a__namespace.existsSync(t))return [];let r=a__namespace.readFileSync(t,"utf-8").trim();return r?r.split(`
10
- `).filter(Boolean).map(n=>JSON.parse(n)):[]},appendEntry(r){a__namespace.appendFileSync(t,JSON.stringify(r)+`
11
- `,"utf-8");},generateId(){return crypto.randomUUID()}}}function ze(e){return {tryAcquire(){try{if(!a__namespace.existsSync(e)){a__namespace.mkdirSync(y__namespace.dirname(e),{recursive:!0});try{a__namespace.writeFileSync(e,"{}",{flag:"wx"});}catch{}}return properLockfile.lockSync(e,{retries:0})}catch{return null}}}}function _r(){return {async invoke(e,t){if(e.howToRun!=="local-node")return {dispatched:false,error:`createNodeSpawnInvocationAdapter: unsupported howToRun "${e.howToRun}"`};let r="";try{let s=e.whatToRun;r=$(s);}catch{r="";}if(!r)return {dispatched:false,error:"createNodeSpawnInvocationAdapter: could not resolve executable path from whatToRun"};let n={...t},o=Buffer.from(JSON.stringify(n)).toString("base64");try{return child_process.spawn(process.execPath,[r,"--boardId",String(t.boardId??""),"--cardId",String(t.cardId??""),"--extraEncJson",o],{stdio:"ignore",windowsHide:!0}).unref(),{dispatched:!0}}catch(s){return {dispatched:false,error:s instanceof Error?s.message:String(s)}}},async describe(e){if(e.howToRun!=="local-node")return null;let t="";try{let r=e.whatToRun;t=$(r);}catch{t="";}if(!t)return null;try{let r=child_process.spawnSync(process.execPath,[t,"describe"],{timeout:5e3,encoding:"utf-8",windowsHide:!0});return r.status!==0?null:JSON.parse(String(r.stdout).trim())}catch{return null}}}}var Yt=".board.lock";function Ye(e,t){if(!e||!t)return false;let r=String(e).replace(/[\\/]+$/,"").split(/[\\/]+/).filter(Boolean);return r.length>0&&r[r.length-1]===t}function Zt(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function Xt(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function Ze(e){if(e)return e;let t=Ce((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('board-live-cards-node.cjs', document.baseURI).href))),r=[t,b(t,"..","cli","node"),b(t,"..","..","cli","node")];for(let n of r)try{return Pe(n),n}catch{}throw new Error(`createFsBoardPlatformAdapter: could not resolve a public CLI directory from module dir ${t}`)}function er(e,t,r){let{cliDir:n,opts:o}=Zt(t,r),s=e.value,u,l=null,g,i,c,d=null,f;function m(){return f||(f=Ze(n)),f}let S=o?.callbackTransport??chunkOEFTOO47_cjs.g(o?.notifyChannel),h;function k(){if(o?.suppressSpawn||l)return;let p=fe({id:"task-executor",workerStore:h.boardWorkerStore(),handleRequest:async(x,B)=>{let v=await D(B.ref,B.args,{cliDir:m(),cwd:process.cwd(),label:"fsBoardAdapter.boardWorker"});if(v.result!=="success"){let R=typeof v.data?.error=="string"?v.data.error:v.error;throw new Error(R||v.result)}}});l=ee(p).catch(x=>{o?.onWarn?.(`[board-worker] in-process queue drain failed: ${x instanceof Error?x.message:String(x)}`);}).finally(()=>{l=null,h.boardWorkerStore().peekActive().length>0&&k();});}return h={kvStorage:p=>se(b(s,`.${p}`)),blobStorage:p=>p?U(b(s,p)):U(s),scratchStorage:()=>G(b(s,".tmp")),scratchStorageForRef:p=>G(chunkSFVO2LB2_cjs.b(p).value),archiveFactory:()=>oe(b(s,"archive")),archiveFactoryForRef:p=>oe(chunkSFVO2LB2_cjs.b(p).value),journalAdapter:()=>Ve(s),boardWorkerStore:()=>(u||(u=H(_(b(s,".board-worker-queue")))),u),chatAgentStore:()=>(g||(g=H(_(b(s,".chat-agent-queue")))),g),processAccumulatedStore:()=>(i||(i=_(b(s,".process-accumulated-queue"))),i),lock:ze(b(s,Yt)),callbackTransport:S,async dispatchExecution(p,x){let B=!!x.output?.ref;if(p.howToRun==="queue-storage")try{let R=u??H(_(b(s,".board-worker-queue")));u||(u=R);let E=typeof p.extra?.boardId=="string"?p.extra.boardId:void 0;if(B)return R.enqueueRequest({boardId:E,ref:p,args:x}),{dispatched:!0};let F=x.source_def?.bindTo??X().slice(0,8),w=G(b(s,".tmp")),I=w.create(JSON.stringify(x,null,2),`exec-in-${F}`,".json"),J=w.getUniqueKey(`exec-out-${F}`,".json"),O=w.getUniqueKey(`exec-err-${F}`,".txt"),ae=chunkSFVO2LB2_cjs.a(w.keyRef(I)),Y=chunkSFVO2LB2_cjs.a(w.keyRef(J)),ie=chunkSFVO2LB2_cjs.a(w.keyRef(O));return R.enqueueRequest({boardId:E,ref:p,args:{subcommand:"run-source-fetch",inRef:ae,outRef:Y,errRef:ie}}),{dispatched:!0}}catch(R){return {dispatched:false,error:R instanceof Error?R.message:String(R)}}if(B&&(p.howToRun==="http:post"||p.howToRun==="in-process-loop"))try{if(p.howToRun==="http:post"){let F=$(p.whatToRun),w=await fetch(F,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...x,...p.extra?{extra:p.extra}:{}})});if(!w.ok){let I=await w.text().catch(()=>"");return {dispatched:!1,error:`HTTP ${w.status}: ${I}`}}return {dispatched:!0}}let R=await D(p,x,{cwd:process.cwd(),label:"dispatchExecution.directHostedWorker"});return R.result==="success"?{dispatched:!0}:{dispatched:!1,error:(typeof R.data?.error=="string"?R.data.error:R.error)||R.result}}catch(R){return {dispatched:false,error:R instanceof Error?R.message:String(R)}}let v=p.howToRun==="local-node"||p.howToRun==="local-process"||p.howToRun==="local-python"||p.howToRun==="built-in";if(o?.suppressSpawn&&v)return {dispatched:false};try{let R=x.source_def?.bindTo??X().slice(0,8),E=G(b(s,".tmp")),F=E.create(JSON.stringify(x,null,2),`exec-in-${R}`,".json"),w=E.getUniqueKey(`exec-out-${R}`,".json"),I=E.getUniqueKey(`exec-err-${R}`,".txt"),J=chunkSFVO2LB2_cjs.a(E.keyRef(F)),O=chunkSFVO2LB2_cjs.a(E.keyRef(w)),ae=chunkSFVO2LB2_cjs.a(E.keyRef(I)),Y=u??H(_(b(s,".board-worker-queue")));u||(u=Y);let ie=typeof p.extra?.boardId=="string"?p.extra.boardId:void 0;return Y.enqueueRequest({boardId:ie,ref:p,args:{subcommand:"run-source-fetch",inRef:J,outRef:O,errRef:ae}}),k(),{dispatched:!0}}catch(R){let E=R instanceof Error?R.message:String(R);try{let F=oe(b(s,"archive")),w=new Date().toISOString().replace(/[:.]/g,"-"),I=x.source_def?.bindTo??"unknown";F.blob("exec-failures").write(`${w}-${I}.json`,JSON.stringify({error:E,args:x,ref:p,at:new Date().toISOString()},null,2));}catch{}return {dispatched:false,error:E}}},supportsDirectSourceOutput(p){return p.howToRun==="queue-storage"||p.howToRun==="http:post"||p.howToRun==="in-process-loop"},resolveBlob(p){let x=Be(p.value)?we().read(p.value):U(s).read(p.value);if(x===null)throw new Error(`resolveBlob: blob not found: ::${p.kind}::${p.value}`);return x},hashFn:Ue,genId:()=>Ie(`${Date.now()}-${Math.random()}`).slice(0,32),kvStorageForRef:p=>se(chunkSFVO2LB2_cjs.b(p).value),requestProcessAccumulated(){if(o?.suppressSpawn||d)return;let p=this,x=c??=chunkOEFTOO47_cjs.y(e,p),B=pe({id:"process-accumulated",queueStorage:p.processAccumulatedStore(),handleMessage:async()=>{let v=await x.processAccumulatedEvents({});if(v.status!=="success")throw new Error(v.error||`processAccumulatedEvents returned ${v.status}`)}});d=ee(B).catch(v=>{o?.onWarn?.(`[process-accumulated] in-process queue drain failed: ${v instanceof Error?v.message:String(v)}`);}).finally(()=>{d=null,p.processAccumulatedStore().peekActive().length>0&&p.requestProcessAccumulated?.();});},publishBoardChangeNotifications(p){if(!o?.notifyChannel||p.length===0)return;let x=p.map(B=>({id:X(),ts:new Date().toISOString(),boardRef:chunkSFVO2LB2_cjs.a(e),notification:B}));Le(o.notifyChannel,x,o.onWarn);},onWarn:o?.onWarn},h}function Jr(e,t,r){let{cliDir:n,opts:o}=Xt(t,r),s,u=()=>(s||(s=Ze(n)),s);return {...er(e,n,o),async invokeExecutor(g,i,c){if(g.howToRun==="queue-storage")throw new Error("queue-storage does not support inline executor request/response");if(g.howToRun==="http:post"||g.howToRun==="http:get"||g.howToRun==="in-process-loop"){let h=await D(g,{subcommand:i,...c?.input!==void 0?{input:c.input}:{},...g.extra?{extra:g.extra}:{}},{cwd:process.cwd(),timeoutMs:c?.timeout??3e4,label:`invokeExecutor:${i}`});if(h.result!=="success"){let k=typeof h.data?.error=="string"?h.data.error:h.error;throw new Error(k||`executor request failed: ${h.result}`)}return typeof h.data?.stdout=="string"?h.data.stdout:JSON.stringify(h.data??{})}let{command:d,baseArgs:f}=te(g,u()),m=g.extra?["--extra",Buffer.from(JSON.stringify(g.extra)).toString("base64")]:[],S=[...f,i,...m];return await new Promise((h,k)=>{let p=child_process.spawn(d,S,{cwd:process.cwd(),stdio:"pipe",windowsHide:true,shell:process.platform==="win32"&&/\.(cmd|bat)$/i.test(d)}),x=[],B=[],v=false,R=null,E=w=>{v||(v=true,R&&clearTimeout(R),k(w));},F=w=>{v||(v=true,R&&clearTimeout(R),h(w));};p.stdout.on("data",w=>{x.push(Buffer.from(w));}),p.stderr.on("data",w=>{B.push(Buffer.from(w));}),p.on("error",w=>{let I=w;I.stdout=Buffer.concat(x).toString("utf-8"),I.stderr=Buffer.concat(B).toString("utf-8"),E(I);}),p.on("close",w=>{let I=Buffer.concat(x).toString("utf-8"),J=Buffer.concat(B).toString("utf-8");if(w===0){F(I);return}let O=new Error(J.trim()||`executor exited with status ${w}`);O.stdout=I,O.stderr=J,E(O);}),c?.timeout&&c.timeout>0&&(R=setTimeout(()=>{p.kill();let w=new Error(`executor timed out after ${c.timeout}ms`);w.stdout=Buffer.concat(x).toString("utf-8"),w.stderr=Buffer.concat(B).toString("utf-8"),E(w);},c.timeout)),c?.input!==void 0?p.stdin.end(c.input):p.stdin.end();})},validateSchema(g){let i=chunkNMZ6XNLB_cjs.d(g);return {ok:i.errors.length===0,errors:i.errors}},absoluteBlob:we()}}function Dr(e,t={}){let r=t.chatsSubdir??"chats",n=t.kvSubdir??".kv",o=n?[n,"chat"]:["chat"],s=r&&!Ye(e,r)?b(e,r):e,u=se(b(e,...o));return chunkWOALA3V5_cjs.a(l=>{let i=`${String(l).replace(/[^a-zA-Z0-9_-]/g,"_")}.jsonl`,c=b(s,i);return ke(c)},u)}function Hr(e,t={}){let r=t.filesSubdir??"files",n=r&&!Ye(e,r)?b(e,r):e;return chunkWOALA3V5_cjs.c(U(n))}function Kr(e){try{let t=JSON.parse(Buffer.from(e,"base64url").toString());return typeof t.br=="string"?t.br:null}catch{return null}}Object.defineProperty(exports,"createArtifactsStore",{enumerable:true,get:function(){return chunkWOALA3V5_cjs.c}});Object.defineProperty(exports,"createCardFileMetadataStore",{enumerable:true,get:function(){return chunkWOALA3V5_cjs.e}});Object.defineProperty(exports,"createChatStorage",{enumerable:true,get:function(){return chunkWOALA3V5_cjs.a}});Object.defineProperty(exports,"createFileArtifactsStore",{enumerable:true,get:function(){return chunkWOALA3V5_cjs.d}});Object.defineProperty(exports,"createInMemoryChatStorage",{enumerable:true,get:function(){return chunkWOALA3V5_cjs.b}});Object.defineProperty(exports,"createQueueLaneRegistry",{enumerable:true,get:function(){return chunkWOALA3V5_cjs.f}});Object.defineProperty(exports,"BOARD_GRAPH_KEY",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.n}});Object.defineProperty(exports,"EMPTY_CONFIG",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.u}});Object.defineProperty(exports,"SNAPSHOT_SCHEMA_VERSION_V1",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.m}});Object.defineProperty(exports,"createBoardLiveCardsNonCorePublic",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.z}});Object.defineProperty(exports,"createBoardLiveCardsPublic",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.y}});Object.defineProperty(exports,"createCardStore",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.l}});Object.defineProperty(exports,"createHttpBoardCallbackTransport",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.e}});Object.defineProperty(exports,"createInProcessBoardCallbackTransport",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.f}});Object.defineProperty(exports,"createLocalNodeBoardCallbackTransport",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.g}});Object.defineProperty(exports,"executionRefFromScriptPath",{enumerable:true,get:function(){return chunkU2N6MCD5_cjs.a}});Object.defineProperty(exports,"parseExecutionRef",{enumerable:true,get:function(){return chunkU2N6MCD5_cjs.c}});Object.defineProperty(exports,"serializeExecutionRef",{enumerable:true,get:function(){return chunkU2N6MCD5_cjs.b}});Object.defineProperty(exports,"parseRef",{enumerable:true,get:function(){return chunkSFVO2LB2_cjs.b}});Object.defineProperty(exports,"serializeRef",{enumerable:true,get:function(){return chunkSFVO2LB2_cjs.a}});Object.defineProperty(exports,"createBoardLiveCardsMcp",{enumerable:true,get:function(){return chunkYEB5QHGE_cjs.a}});Object.defineProperty(exports,"createCardStorePublic",{enumerable:true,get:function(){return chunkYMEIPKLW_cjs.a}});Object.defineProperty(exports,"createArtifactsStorePublic",{enumerable:true,get:function(){return chunkP7ZCDICS_cjs.a}});exports.buildLocalBaseSpec=te;exports.createBoardWorkerQueueLane=fe;exports.createBoardWorkerStore=H;exports.createExecutionRefInvoker=Lt;exports.createFsBoardChatStorage=Dr;exports.createFsBoardFileArtifactsStore=Hr;exports.createFsBoardNonCorePlatformAdapter=Jr;exports.createFsBoardPlatformAdapter=er;exports.createFsQueueStorage=_;exports.createNodeSpawnInvocationAdapter=_r;exports.createQueueStorageLane=pe;exports.decodeBoardRefFromToken=Kr;exports.drainQueueLaneToIdle=ee;exports.evaluateArgsMassaging=me;exports.invokeExecutionRef=D;exports.invokeExecutionRefSync=ye;exports.invokeRefSync=qt;exports.registerInProcessExecutionHandler=Ft;exports.resolveWhatToRunValue=$;exports.resolveYamlFlowCliPath=Ne;exports.startQueueLaneRunner=Qe;exports.startQueueLaneRunners=At;exports.unregisterInProcessExecutionHandler=Mt;//# sourceMappingURL=board-live-cards-node.cjs.map
7
+ `,"utf-8");}catch{}function n(){if(!i__namespace.existsSync(r))return {};try{let u=i__namespace.readFileSync(r,"utf-8"),l=JSON.parse(u);return l&&typeof l=="object"&&!Array.isArray(l)?l:{}}catch{return {}}}function o(u){let l=`${r}.${process.pid}.${crypto.randomUUID()}.tmp`;try{i__namespace.writeFileSync(l,JSON.stringify(u,null,2),"utf-8"),C(l,r);}catch{}}function s(){if(!i__namespace.existsSync(t))return;let u=n(),l=typeof u["retention.maxAgeMs"]=="number"?u["retention.maxAgeMs"]:0,g=typeof u["retention.sweepIntervalMs"]=="number"?u["retention.sweepIntervalMs"]:0;if(l<=0||g<=0)return;let a=typeof u["retention.lastSweepAt"]=="number"?u["retention.lastSweepAt"]:0,c=Date.now();if(c-a<g)return;u["retention.lastSweepAt"]=c,o(u);let d=c,f=m=>{let S;try{S=i__namespace.readdirSync(m,{withFileTypes:!0});}catch{return}for(let h of S){if(Date.now()-d>zt)return;let w=y__namespace.join(m,h.name);if(h.isDirectory()){f(w);continue}if(h.isFile())try{let p=i__namespace.statSync(w);if(c-p.mtimeMs>l)try{i__namespace.unlinkSync(w);}catch{}}catch{}}};f(y__namespace.join(e,re)),f(y__namespace.join(e,ne));}return {stream(u){let l=Ke(u),g=y__namespace.join(e,re,`${l}.jsonl`),a=we(g);return {append(c){let d=a.append(c);try{s();}catch{}return d},readAll:()=>a.readAll(),readAfter:c=>a.readAfter(c),clear:()=>{a.clear&&a.clear();}}},blob(u){let l=Ke(u),g=y__namespace.join(e,ne,l);i__namespace.mkdirSync(g,{recursive:true});let a=U(g);return {read:c=>a.read(c),write:(c,d)=>{a.write(c,d);try{s();}catch{}},exists:c=>a.exists(c),remove:c=>a.remove(c),readBytes:a.readBytes?c=>a.readBytes(c):void 0,writeBytes:a.writeBytes?(c,d)=>{a.writeBytes(c,d);try{s();}catch{}}:void 0,listKeys:c=>a.listKeys(c),stat:a.stat?c=>a.stat(c):void 0}},listStreams(u){let l=y__namespace.join(e,re);try{return i__namespace.readdirSync(l,{withFileTypes:!0}).filter(g=>g.isFile()&&g.name.endsWith(".jsonl")).map(g=>g.name.slice(0,-6)).filter(g=>!u||g.startsWith(u)).sort()}catch{return []}},listBlobs(u){let l=y__namespace.join(e,ne);try{return i__namespace.readdirSync(l,{withFileTypes:!0}).filter(g=>g.isDirectory()).map(g=>g.name).filter(g=>!u||g.startsWith(u)).sort()}catch{return []}},config:{get(u){return n()[u]??null},set(u,l){let g=n();l==null?delete g[u]:g[u]=l,o(g);}}}}function se(e){function t(n){return y__namespace.join(e,...n.split("/"))+".json"}function r(n,o,s,u){if(i__namespace.existsSync(n))for(let l of i__namespace.readdirSync(n,{withFileTypes:true})){let g=o?`${o}/${l.name}`:l.name;if(l.isDirectory()){r(y__namespace.join(n,l.name),g,s,u);continue}if(!l.isFile()||!l.name.endsWith(".json"))continue;let a=g.replace(/\.json$/,"");(!s||a.startsWith(s))&&u.push(a);}}return {read(n){let o=t(n);if(!i__namespace.existsSync(o))return null;try{return JSON.parse(i__namespace.readFileSync(o,"utf-8"))}catch{return null}},write(n,o){let s=t(n),u=`${s}.${process.pid}.${crypto.randomUUID()}.tmp`;i__namespace.mkdirSync(y__namespace.dirname(s),{recursive:true}),i__namespace.writeFileSync(u,JSON.stringify(o,null,2),"utf-8"),C(u,s);},delete(n){let o=t(n);try{i__namespace.existsSync(o)&&i__namespace.unlinkSync(o);}catch{}},listKeys(n){let o=[];return r(e,"",n,o),o.sort()}}}function we(e){function t(){if(!i__namespace.existsSync(e))return [];let r=i__namespace.readFileSync(e,"utf-8").trim();return r?r.split(`
8
+ `).filter(Boolean).map(n=>JSON.parse(n)):[]}return {append(r){let n={id:crypto.randomUUID(),payload:r};return i__namespace.mkdirSync(y__namespace.dirname(e),{recursive:true}),i__namespace.appendFileSync(e,JSON.stringify(n)+`
9
+ `,"utf-8"),n},readAll(){return t()},readAfter(r){let n=t();if(!r)return {entries:n,newCursor:n.length>0?n[n.length-1].id:null};let o=n.findIndex(u=>u.id===r),s=o===-1?n:n.slice(o+1);return {entries:s,newCursor:s.length>0?s[s.length-1].id:r}},clear(){i__namespace.existsSync(e)&&i__namespace.truncateSync(e,0);}}}function xe(e){if(e==null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return `[${e.map(xe).join(",")}]`;let t=e;return `{${Object.keys(t).sort().map(n=>`${JSON.stringify(n)}:${xe(t[n])}`).join(",")}}`}function Ue(e){return crypto.createHash("sha256").update(xe(e)).digest("hex")}function Ve(e){let t=y__namespace.join(e,"board-journal.jsonl");return {readAllEntries(){if(!i__namespace.existsSync(t))return [];let r=i__namespace.readFileSync(t,"utf-8").trim();return r?r.split(`
10
+ `).filter(Boolean).map(n=>JSON.parse(n)):[]},appendEntry(r){i__namespace.appendFileSync(t,JSON.stringify(r)+`
11
+ `,"utf-8");},generateId(){return crypto.randomUUID()}}}function ze(e){return {tryAcquire(){try{if(!i__namespace.existsSync(e)){i__namespace.mkdirSync(y__namespace.dirname(e),{recursive:!0});try{i__namespace.writeFileSync(e,"{}",{flag:"wx"});}catch{}}return properLockfile.lockSync(e,{retries:0})}catch{return null}}}}function Lr(){return {async invoke(e,t){if(e.howToRun!=="local-node")return {dispatched:false,error:`createNodeSpawnInvocationAdapter: unsupported howToRun "${e.howToRun}"`};let r="";try{let s=e.whatToRun;r=$(s);}catch{r="";}if(!r)return {dispatched:false,error:"createNodeSpawnInvocationAdapter: could not resolve executable path from whatToRun"};let n={...t},o=Buffer.from(JSON.stringify(n)).toString("base64");try{return child_process.spawn(process.execPath,[r,"--boardId",String(t.boardId??""),"--cardId",String(t.cardId??""),"--extraEncJson",o],{stdio:"ignore",windowsHide:!0}).unref(),{dispatched:!0}}catch(s){return {dispatched:false,error:s instanceof Error?s.message:String(s)}}},async describe(e){if(e.howToRun!=="local-node")return null;let t="";try{let r=e.whatToRun;t=$(r);}catch{t="";}if(!t)return null;try{let r=child_process.spawnSync(process.execPath,[t,"describe"],{timeout:5e3,encoding:"utf-8",windowsHide:!0});return r.status!==0?null:JSON.parse(String(r.stdout).trim())}catch{return null}}}}var Yt=".board.lock";function Ye(e,t){if(!e||!t)return false;let r=String(e).replace(/[\\/]+$/,"").split(/[\\/]+/).filter(Boolean);return r.length>0&&r[r.length-1]===t}function Zt(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function Xt(e,t){return typeof e=="string"?{cliDir:e,opts:t}:{cliDir:void 0,opts:e}}function Ze(e){if(e)return e;let t=Ce((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('board-live-cards-node.cjs', document.baseURI).href))),r=[t,b(t,"..","cli","node"),b(t,"..","..","cli","node")];for(let n of r)try{return Pe(n),n}catch{}throw new Error(`createFsBoardPlatformAdapter: could not resolve a public CLI directory from module dir ${t}`)}function er(e,t,r){let{cliDir:n,opts:o}=Zt(t,r),s=e.value,u,l=null,g,a,c,d=null,f;function m(){return f||(f=Ze(n)),f}let S=o?.callbackTransport??chunkOEFTOO47_cjs.g(o?.notifyChannel),h;function w(){if(o?.suppressSpawn||l)return;let p=fe({id:"task-executor",workerStore:h.boardWorkerStore(),handleRequest:async(x,B)=>{let v=await D(B.ref,B.args,{cliDir:m(),cwd:process.cwd(),label:"fsBoardAdapter.boardWorker"});if(v.result!=="success"){let R=typeof v.data?.error=="string"?v.data.error:v.error;throw new Error(R||v.result)}}});l=ee(p).catch(x=>{o?.onWarn?.(`[board-worker] in-process queue drain failed: ${x instanceof Error?x.message:String(x)}`);}).finally(()=>{l=null,h.boardWorkerStore().peekActive().length>0&&w();});}return h={kvStorage:p=>se(b(s,`.${p}`)),blobStorage:p=>p?U(b(s,p)):U(s),scratchStorage:()=>G(b(s,".tmp")),scratchStorageForRef:p=>G(chunkSFVO2LB2_cjs.b(p).value),archiveFactory:()=>oe(b(s,"archive")),archiveFactoryForRef:p=>oe(chunkSFVO2LB2_cjs.b(p).value),journalAdapter:()=>Ve(s),boardWorkerStore:()=>(u||(u=H(N(b(s,".board-worker-queue")))),u),chatAgentStore:()=>(g||(g=H(N(b(s,".chat-agent-queue")))),g),processAccumulatedStore:()=>(a||(a=N(b(s,".process-accumulated-queue"))),a),lock:ze(b(s,Yt)),callbackTransport:S,async dispatchExecution(p,x){let B=!!x.output?.ref;if(p.howToRun==="queue-storage")try{let R=u??H(N(b(s,".board-worker-queue")));u||(u=R);let E=typeof p.extra?.boardId=="string"?p.extra.boardId:void 0;if(B)return R.enqueueRequest({boardId:E,ref:p,args:x}),{dispatched:!0};let M=x.source_def?.bindTo??X().slice(0,8),k=G(b(s,".tmp")),I=k.create(JSON.stringify(x,null,2),`exec-in-${M}`,".json"),J=k.getUniqueKey(`exec-out-${M}`,".json"),Q=k.getUniqueKey(`exec-err-${M}`,".txt"),ie=chunkSFVO2LB2_cjs.a(k.keyRef(I)),Y=chunkSFVO2LB2_cjs.a(k.keyRef(J)),ae=chunkSFVO2LB2_cjs.a(k.keyRef(Q));return R.enqueueRequest({boardId:E,ref:p,args:{subcommand:"run-source-fetch",inRef:ie,outRef:Y,errRef:ae}}),{dispatched:!0}}catch(R){return {dispatched:false,error:R instanceof Error?R.message:String(R)}}if(B&&(p.howToRun==="http:post"||p.howToRun==="in-process-loop"))try{if(p.howToRun==="http:post"){let M=$(p.whatToRun),k=await fetch(M,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...x,...p.extra?{extra:p.extra}:{}})});if(!k.ok){let I=await k.text().catch(()=>"");return {dispatched:!1,error:`HTTP ${k.status}: ${I}`}}return {dispatched:!0}}let R=await D(p,x,{cwd:process.cwd(),label:"dispatchExecution.directHostedWorker"});return R.result==="success"?{dispatched:!0}:{dispatched:!1,error:(typeof R.data?.error=="string"?R.data.error:R.error)||R.result}}catch(R){return {dispatched:false,error:R instanceof Error?R.message:String(R)}}let v=p.howToRun==="local-node"||p.howToRun==="local-process"||p.howToRun==="local-python"||p.howToRun==="built-in";if(o?.suppressSpawn&&v)return {dispatched:false};try{let R=x.source_def?.bindTo??X().slice(0,8),E=G(b(s,".tmp")),M=E.create(JSON.stringify(x,null,2),`exec-in-${R}`,".json"),k=E.getUniqueKey(`exec-out-${R}`,".json"),I=E.getUniqueKey(`exec-err-${R}`,".txt"),J=chunkSFVO2LB2_cjs.a(E.keyRef(M)),Q=chunkSFVO2LB2_cjs.a(E.keyRef(k)),ie=chunkSFVO2LB2_cjs.a(E.keyRef(I)),Y=u??H(N(b(s,".board-worker-queue")));u||(u=Y);let ae=typeof p.extra?.boardId=="string"?p.extra.boardId:void 0;return Y.enqueueRequest({boardId:ae,ref:p,args:{subcommand:"run-source-fetch",inRef:J,outRef:Q,errRef:ie}}),w(),{dispatched:!0}}catch(R){let E=R instanceof Error?R.message:String(R);try{let M=oe(b(s,"archive")),k=new Date().toISOString().replace(/[:.]/g,"-"),I=x.source_def?.bindTo??"unknown";M.blob("exec-failures").write(`${k}-${I}.json`,JSON.stringify({error:E,args:x,ref:p,at:new Date().toISOString()},null,2));}catch{}return {dispatched:false,error:E}}},supportsDirectSourceOutput(p){return p.howToRun==="queue-storage"||p.howToRun==="http:post"||p.howToRun==="in-process-loop"},resolveBlob(p){let x=Be(p.value)?ke().read(p.value):U(s).read(p.value);if(x===null)throw new Error(`resolveBlob: blob not found: ::${p.kind}::${p.value}`);return x},hashFn:Ue,genId:()=>Ie(`${Date.now()}-${Math.random()}`).slice(0,32),kvStorageForRef:p=>se(chunkSFVO2LB2_cjs.b(p).value),requestProcessAccumulated(){if(o?.suppressSpawn||d)return;let p=this,x=c??=chunkOEFTOO47_cjs.y(e,p),B=pe({id:"process-accumulated",queueStorage:p.processAccumulatedStore(),handleMessage:async()=>{let v=await x.processAccumulatedEvents({});if(v.status!=="success")throw new Error(v.error||`processAccumulatedEvents returned ${v.status}`)}});d=ee(B).catch(v=>{o?.onWarn?.(`[process-accumulated] in-process queue drain failed: ${v instanceof Error?v.message:String(v)}`);}).finally(()=>{d=null,p.processAccumulatedStore().peekActive().length>0&&p.requestProcessAccumulated?.();});},publishBoardChangeNotifications(p){if(!o?.notifyChannel||p.length===0)return;let x=p.map(B=>({id:X(),ts:new Date().toISOString(),boardRef:chunkSFVO2LB2_cjs.a(e),notification:B}));qe(o.notifyChannel,x,o.onWarn);},onWarn:o?.onWarn},h}function Qr(e,t,r){let{cliDir:n,opts:o}=Xt(t,r),s,u=()=>(s||(s=Ze(n)),s);return {...er(e,n,o),async invokeExecutor(g,a,c){if(g.howToRun==="queue-storage")throw new Error("queue-storage does not support inline executor request/response");if(g.howToRun==="http:post"||g.howToRun==="http:get"||g.howToRun==="in-process-loop"){let h=await D(g,{subcommand:a,...c?.input!==void 0?{input:c.input}:{},...g.extra?{extra:g.extra}:{}},{cwd:process.cwd(),timeoutMs:c?.timeout??3e4,label:`invokeExecutor:${a}`});if(h.result!=="success"){let w=typeof h.data?.error=="string"?h.data.error:h.error;throw new Error(w||`executor request failed: ${h.result}`)}return typeof h.data?.stdout=="string"?h.data.stdout:JSON.stringify(h.data??{})}let{command:d,baseArgs:f}=te(g,u()),m=g.extra?["--extra",Buffer.from(JSON.stringify(g.extra)).toString("base64")]:[],S=[...f,a,...m];return await new Promise((h,w)=>{let p=child_process.spawn(d,S,{cwd:process.cwd(),stdio:"pipe",windowsHide:true,shell:process.platform==="win32"&&/\.(cmd|bat)$/i.test(d)}),x=[],B=[],v=false,R=null,E=k=>{v||(v=true,R&&clearTimeout(R),w(k));},M=k=>{v||(v=true,R&&clearTimeout(R),h(k));};p.stdout.on("data",k=>{x.push(Buffer.from(k));}),p.stderr.on("data",k=>{B.push(Buffer.from(k));}),p.on("error",k=>{let I=k;I.stdout=Buffer.concat(x).toString("utf-8"),I.stderr=Buffer.concat(B).toString("utf-8"),E(I);}),p.on("close",k=>{let I=Buffer.concat(x).toString("utf-8"),J=Buffer.concat(B).toString("utf-8");if(k===0){M(I);return}let Q=new Error(J.trim()||`executor exited with status ${k}`);Q.stdout=I,Q.stderr=J,E(Q);}),c?.timeout&&c.timeout>0&&(R=setTimeout(()=>{p.kill();let k=new Error(`executor timed out after ${c.timeout}ms`);k.stdout=Buffer.concat(x).toString("utf-8"),k.stderr=Buffer.concat(B).toString("utf-8"),E(k);},c.timeout)),c?.input!==void 0?p.stdin.end(c.input):p.stdin.end();})},validateSchema(g){let a=chunkNMZ6XNLB_cjs.d(g);return {ok:a.errors.length===0,errors:a.errors}},absoluteBlob:ke()}}function Or(e,t={}){let r=t.chatsSubdir??"chats",n=t.kvSubdir??".kv",o=n?[n,"chat"]:["chat"],s=r&&!Ye(e,r)?b(e,r):e,u=se(b(e,...o));return chunkNJJ7WEDT_cjs.a(l=>{let a=`${String(l).replace(/[^a-zA-Z0-9_-]/g,"_")}.jsonl`,c=b(s,a);return we(c)},u)}function Wr(e,t={}){let r=t.filesSubdir??"files",n=r&&!Ye(e,r)?b(e,r):e;return chunkNJJ7WEDT_cjs.c(U(n))}function _r(e){try{let t=JSON.parse(Buffer.from(e,"base64url").toString());return typeof t.br=="string"?t.br:null}catch{return null}}Object.defineProperty(exports,"createArtifactsStore",{enumerable:true,get:function(){return chunkNJJ7WEDT_cjs.c}});Object.defineProperty(exports,"createCardFileMetadataStore",{enumerable:true,get:function(){return chunkNJJ7WEDT_cjs.e}});Object.defineProperty(exports,"createChatStorage",{enumerable:true,get:function(){return chunkNJJ7WEDT_cjs.a}});Object.defineProperty(exports,"createFileArtifactsStore",{enumerable:true,get:function(){return chunkNJJ7WEDT_cjs.d}});Object.defineProperty(exports,"createInMemoryChatStorage",{enumerable:true,get:function(){return chunkNJJ7WEDT_cjs.b}});Object.defineProperty(exports,"createQueueLaneRegistry",{enumerable:true,get:function(){return chunkGL2OHR2E_cjs.a}});Object.defineProperty(exports,"BOARD_GRAPH_KEY",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.n}});Object.defineProperty(exports,"EMPTY_CONFIG",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.u}});Object.defineProperty(exports,"SNAPSHOT_SCHEMA_VERSION_V1",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.m}});Object.defineProperty(exports,"createBoardLiveCardsNonCorePublic",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.z}});Object.defineProperty(exports,"createBoardLiveCardsPublic",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.y}});Object.defineProperty(exports,"createCardStore",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.l}});Object.defineProperty(exports,"createHttpBoardCallbackTransport",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.e}});Object.defineProperty(exports,"createInProcessBoardCallbackTransport",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.f}});Object.defineProperty(exports,"createLocalNodeBoardCallbackTransport",{enumerable:true,get:function(){return chunkOEFTOO47_cjs.g}});Object.defineProperty(exports,"executionRefFromScriptPath",{enumerable:true,get:function(){return chunkU2N6MCD5_cjs.a}});Object.defineProperty(exports,"parseExecutionRef",{enumerable:true,get:function(){return chunkU2N6MCD5_cjs.c}});Object.defineProperty(exports,"serializeExecutionRef",{enumerable:true,get:function(){return chunkU2N6MCD5_cjs.b}});Object.defineProperty(exports,"parseRef",{enumerable:true,get:function(){return chunkSFVO2LB2_cjs.b}});Object.defineProperty(exports,"serializeRef",{enumerable:true,get:function(){return chunkSFVO2LB2_cjs.a}});Object.defineProperty(exports,"createBoardLiveCardsMcp",{enumerable:true,get:function(){return chunkM6STQR5F_cjs.a}});Object.defineProperty(exports,"createCardStorePublic",{enumerable:true,get:function(){return chunkYMEIPKLW_cjs.a}});Object.defineProperty(exports,"createArtifactsStorePublic",{enumerable:true,get:function(){return chunkP7ZCDICS_cjs.a}});exports.buildLocalBaseSpec=te;exports.createBoardWorkerQueueLane=fe;exports.createBoardWorkerStore=H;exports.createExecutionRefInvoker=qt;exports.createFsBoardChatStorage=Or;exports.createFsBoardFileArtifactsStore=Wr;exports.createFsBoardNonCorePlatformAdapter=Qr;exports.createFsBoardPlatformAdapter=er;exports.createFsQueueStorage=N;exports.createNodeSpawnInvocationAdapter=Lr;exports.createQueueStorageLane=pe;exports.decodeBoardRefFromToken=_r;exports.drainQueueLaneToIdle=ee;exports.evaluateArgsMassaging=me;exports.invokeExecutionRef=D;exports.invokeExecutionRefSync=ye;exports.invokeRefSync=Lt;exports.registerInProcessExecutionHandler=Mt;exports.resolveWhatToRunValue=$;exports.resolveYamlFlowCliPath=_e;exports.startQueueLaneRunner=Oe;exports.startQueueLaneRunners=At;exports.unregisterInProcessExecutionHandler=Ft;//# sourceMappingURL=board-live-cards-node.cjs.map
12
12
  //# sourceMappingURL=board-live-cards-node.cjs.map
@@ -1,19 +1,23 @@
1
- import { a as ArtifactsStore } from './artifacts-store-lib-BR-Samty.cjs';
2
- export { c as createArtifactsStore, b as createCardFileMetadataStore, d as createFileArtifactsStore } from './artifacts-store-lib-BR-Samty.cjs';
3
- import { h as QueueLaneLease, i as QueueLaneDescriptor, Q as QueueLaneRegistry, I as InvocationAdapter } from './queue-lane-registry-BPKWWgd4.cjs';
4
- export { D as DescribeEnvelope, j as createQueueLaneRegistry } from './queue-lane-registry-BPKWWgd4.cjs';
1
+ import { a as ArtifactsStore } from './artifacts-store-lib-D9nMkVcE.cjs';
2
+ export { c as createArtifactsStore, b as createCardFileMetadataStore, d as createFileArtifactsStore } from './artifacts-store-lib-D9nMkVcE.cjs';
3
+ import { I as InvocationAdapter } from './types-BzQY45dH.cjs';
4
+ export { D as DescribeEnvelope } from './types-BzQY45dH.cjs';
5
5
  import { a as KindValueRef, g as QueueStorage } from './storage-interface-BFiD3kyB.cjs';
6
6
  export { p as parseRef, s as serializeRef } from './storage-interface-BFiD3kyB.cjs';
7
- import { l as BoardWorkerStore, B as BoardWorkerRequest, g as BoardCallbackTransport, e as BoardNonCorePlatformAdapter, f as BoardPlatformAdapter } from './board-live-cards-public-wkNmBIRC.cjs';
8
- export { m as BOARD_GRAPH_KEY, n as BoardLiveCardsNonCorePublic, d as BoardLiveCardsPublic, o as BoardWorkerDeadLetterRequest, p as BoardWorkerLeasedRequest, q as BoardWorkerQueuedRequest, a as CommandInput, C as CommandResult, E as EMPTY_CONFIG, L as LiveCard, r as SNAPSHOT_SCHEMA_VERSION_V1, s as createBoardLiveCardsNonCorePublic, t as createBoardLiveCardsPublic, u as createBoardWorkerStore, v as createCardStore, w as createHttpBoardCallbackTransport, x as createInProcessBoardCallbackTransport, y as createLocalNodeBoardCallbackTransport } from './board-live-cards-public-wkNmBIRC.cjs';
9
- import { c as ChatStorage } from './chat-storage-lib-BIUbE-fM.cjs';
10
- export { b as ChatConfig, C as ChatRecord, d as createChatStorage, e as createInMemoryChatStorage } from './chat-storage-lib-BIUbE-fM.cjs';
7
+ import { l as BoardWorkerStore, f as BoardWorkerRequest, h as BoardCallbackTransport, d as BoardNonCorePlatformAdapter, e as BoardPlatformAdapter } from './board-live-cards-public-DQzPe7A9.cjs';
8
+ export { m as BOARD_GRAPH_KEY, n as BoardLiveCardsNonCorePublic, c as BoardLiveCardsPublic, o as BoardWorkerDeadLetterRequest, p as BoardWorkerLeasedRequest, q as BoardWorkerQueuedRequest, C as CommandInput, a as CommandResult, E as EMPTY_CONFIG, L as LiveCard, r as SNAPSHOT_SCHEMA_VERSION_V1, s as createBoardLiveCardsNonCorePublic, t as createBoardLiveCardsPublic, u as createBoardWorkerStore, v as createCardStore, w as createHttpBoardCallbackTransport, x as createInProcessBoardCallbackTransport, y as createLocalNodeBoardCallbackTransport } from './board-live-cards-public-DQzPe7A9.cjs';
9
+ import { C as ChatStorage } from './chat-storage-lib-B9Q34Dyv.cjs';
10
+ export { c as ChatConfig, a as ChatRecord, d as createChatStorage, e as createInMemoryChatStorage } from './chat-storage-lib-B9Q34Dyv.cjs';
11
11
  export { BoardLiveCardsMcp, BoardLiveCardsMcpBoardStatusResult, BoardLiveCardsMcpDeps, BoardLiveCardsMcpDiscoverSourceKindsResult, BoardLiveCardsMcpFileDownloadDescriptor, BoardLiveCardsMcpInspectCardDefinitionAndRuntimeResult, BoardLiveCardsMcpInspectChatMessagesResult, BoardLiveCardsMcpManageUpsertCardResult, createBoardLiveCardsMcp } from './board-live-cards-mcp.cjs';
12
12
  import { ExecutionRef, ArgsMassaging } from './execution-refs.cjs';
13
13
  export { executionRefFromScriptPath, parseExecutionRef, serializeExecutionRef } from './execution-refs.cjs';
14
14
  export { createCardStorePublic } from './card-store-public.cjs';
15
15
  export { createArtifactsStorePublic } from './artifacts-store-public.cjs';
16
- import './board-live-cards-public-async-dMWNbWq6.cjs';
16
+ import { Q as QueueLaneLease, a as QueueLaneDescriptor, b as QueueLaneRegistry } from './queue-lane-registry-PaZuFpwp.cjs';
17
+ export { c as createQueueLaneRegistry } from './queue-lane-registry-PaZuFpwp.cjs';
18
+ import './board-platform-adapter-async-DOfEq_HC.cjs';
19
+ import './storage-async-interface-BRR4eBjx.cjs';
20
+ import './board-live-cards-public-async-CgMCYYft.cjs';
17
21
  import './types-BBhqYGhE.cjs';
18
22
  import './chat-store-public.cjs';
19
23
 
@@ -1,19 +1,23 @@
1
- import { a as ArtifactsStore } from './artifacts-store-lib-DT7XlWUL.js';
2
- export { c as createArtifactsStore, b as createCardFileMetadataStore, d as createFileArtifactsStore } from './artifacts-store-lib-DT7XlWUL.js';
3
- import { h as QueueLaneLease, i as QueueLaneDescriptor, Q as QueueLaneRegistry, I as InvocationAdapter } from './queue-lane-registry-Be6c0ftj.js';
4
- export { D as DescribeEnvelope, j as createQueueLaneRegistry } from './queue-lane-registry-Be6c0ftj.js';
1
+ import { a as ArtifactsStore } from './artifacts-store-lib-DSSMqVL2.js';
2
+ export { c as createArtifactsStore, b as createCardFileMetadataStore, d as createFileArtifactsStore } from './artifacts-store-lib-DSSMqVL2.js';
3
+ import { I as InvocationAdapter } from './types-CF2xUcZW.js';
4
+ export { D as DescribeEnvelope } from './types-CF2xUcZW.js';
5
5
  import { a as KindValueRef, g as QueueStorage } from './storage-interface-BFiD3kyB.js';
6
6
  export { p as parseRef, s as serializeRef } from './storage-interface-BFiD3kyB.js';
7
- import { l as BoardWorkerStore, B as BoardWorkerRequest, g as BoardCallbackTransport, e as BoardNonCorePlatformAdapter, f as BoardPlatformAdapter } from './board-live-cards-public-BMUIPOrc.js';
8
- export { m as BOARD_GRAPH_KEY, n as BoardLiveCardsNonCorePublic, d as BoardLiveCardsPublic, o as BoardWorkerDeadLetterRequest, p as BoardWorkerLeasedRequest, q as BoardWorkerQueuedRequest, a as CommandInput, C as CommandResult, E as EMPTY_CONFIG, L as LiveCard, r as SNAPSHOT_SCHEMA_VERSION_V1, s as createBoardLiveCardsNonCorePublic, t as createBoardLiveCardsPublic, u as createBoardWorkerStore, v as createCardStore, w as createHttpBoardCallbackTransport, x as createInProcessBoardCallbackTransport, y as createLocalNodeBoardCallbackTransport } from './board-live-cards-public-BMUIPOrc.js';
9
- import { c as ChatStorage } from './chat-storage-lib-BlG-sobS.js';
10
- export { b as ChatConfig, C as ChatRecord, d as createChatStorage, e as createInMemoryChatStorage } from './chat-storage-lib-BlG-sobS.js';
7
+ import { l as BoardWorkerStore, f as BoardWorkerRequest, h as BoardCallbackTransport, d as BoardNonCorePlatformAdapter, e as BoardPlatformAdapter } from './board-live-cards-public-D-DJek3X.js';
8
+ export { m as BOARD_GRAPH_KEY, n as BoardLiveCardsNonCorePublic, c as BoardLiveCardsPublic, o as BoardWorkerDeadLetterRequest, p as BoardWorkerLeasedRequest, q as BoardWorkerQueuedRequest, C as CommandInput, a as CommandResult, E as EMPTY_CONFIG, L as LiveCard, r as SNAPSHOT_SCHEMA_VERSION_V1, s as createBoardLiveCardsNonCorePublic, t as createBoardLiveCardsPublic, u as createBoardWorkerStore, v as createCardStore, w as createHttpBoardCallbackTransport, x as createInProcessBoardCallbackTransport, y as createLocalNodeBoardCallbackTransport } from './board-live-cards-public-D-DJek3X.js';
9
+ import { C as ChatStorage } from './chat-storage-lib-DB9iSai2.js';
10
+ export { c as ChatConfig, a as ChatRecord, d as createChatStorage, e as createInMemoryChatStorage } from './chat-storage-lib-DB9iSai2.js';
11
11
  export { BoardLiveCardsMcp, BoardLiveCardsMcpBoardStatusResult, BoardLiveCardsMcpDeps, BoardLiveCardsMcpDiscoverSourceKindsResult, BoardLiveCardsMcpFileDownloadDescriptor, BoardLiveCardsMcpInspectCardDefinitionAndRuntimeResult, BoardLiveCardsMcpInspectChatMessagesResult, BoardLiveCardsMcpManageUpsertCardResult, createBoardLiveCardsMcp } from './board-live-cards-mcp.js';
12
12
  import { ExecutionRef, ArgsMassaging } from './execution-refs.js';
13
13
  export { executionRefFromScriptPath, parseExecutionRef, serializeExecutionRef } from './execution-refs.js';
14
14
  export { createCardStorePublic } from './card-store-public.js';
15
15
  export { createArtifactsStorePublic } from './artifacts-store-public.js';
16
- import './board-live-cards-public-async-DKZqbJVU.js';
16
+ import { Q as QueueLaneLease, a as QueueLaneDescriptor, b as QueueLaneRegistry } from './queue-lane-registry-PaZuFpwp.js';
17
+ export { c as createQueueLaneRegistry } from './queue-lane-registry-PaZuFpwp.js';
18
+ import './board-platform-adapter-async-JZPCzZnH.js';
19
+ import './storage-async-interface-DhlOVPSp.js';
20
+ import './board-live-cards-public-async-3hUuHxDx.js';
17
21
  import './types-BBhqYGhE.js';
18
22
  import './chat-store-public.js';
19
23