yaml-flow 8.6.2 → 8.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/asset-integrity.json +3 -3
- package/examples/board/demo-shell-with-server.html +2 -2
- package/examples/board/doc.html +2 -2
- package/examples/board/server/chat-flow/flow-steps.json +10 -5
- package/examples/board/test/server-http-test.js +93 -0
- package/examples/board-local/demo-shell-localstorage.html +3 -3
- package/lib/board-live-cards-mcp.cjs +1 -1
- package/lib/board-live-cards-mcp.d.cts +1 -0
- package/lib/board-live-cards-mcp.d.ts +1 -0
- package/lib/board-live-cards-mcp.js +1 -1
- package/lib/board-live-cards-node.cjs +2 -2
- package/lib/board-live-cards-node.js +1 -1
- package/lib/board-live-cards-server-runtime.cjs +1 -1
- package/lib/board-live-cards-server-runtime.js +1 -1
- package/lib/chunk-KXWT3CY6.cjs +8 -0
- package/lib/chunk-OJLA6NLU.js +8 -0
- package/lib/chunk-R5L5WUKN.js +2 -0
- package/lib/chunk-YEB5QHGE.cjs +2 -0
- package/lib/server-runtime/index.cjs +1 -1
- package/lib/server-runtime/index.js +1 -1
- package/package.json +1 -1
- package/lib/chunk-GJJMEAVN.cjs +0 -2
- package/lib/chunk-KQX6R4PV.cjs +0 -8
- package/lib/chunk-OSWJKJLB.js +0 -8
- package/lib/chunk-SCWHDI3I.js +0 -2
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-
|
|
2
|
+
"generatedAt": "2026-06-01T16:07:01.910Z",
|
|
3
3
|
"algorithm": "sha256",
|
|
4
4
|
"files": {
|
|
5
5
|
"browser/board-livecards-localstorage.js": {
|
|
6
|
-
"sha256": "sha256-
|
|
7
|
-
"bytes":
|
|
6
|
+
"sha256": "sha256-zz+4/87Be26ZK7Zt1BhnfdM7fOOdEdBualRUgpqvqY0=",
|
|
7
|
+
"bytes": 188564
|
|
8
8
|
},
|
|
9
9
|
"browser/live-cards.schema.json": {
|
|
10
10
|
"sha256": "sha256-F5nfqDzZ5L3p0lLTMxGt4YtMa2sVzdNPh8sbQ8OiXHE=",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
|
20
20
|
<script src="https://cdn.jsdelivr.net/npm/dompurify/dist/purify.min.js"></script>
|
|
21
21
|
<script src="https://cdn.jsdelivr.net/npm/leader-line/leader-line.min.js"></script>
|
|
22
|
-
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.
|
|
23
|
-
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.
|
|
22
|
+
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.4/browser/live-cards.js"></script>
|
|
23
|
+
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.4/browser/board-livecards-client.js"></script>
|
|
24
24
|
</head>
|
|
25
25
|
<body class="bg-light">
|
|
26
26
|
<div class="container-fluid py-3">
|
package/examples/board/doc.html
CHANGED
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
|
38
38
|
<script src="https://cdn.jsdelivr.net/npm/dompurify/dist/purify.min.js"></script>
|
|
39
39
|
<script src="https://cdn.jsdelivr.net/npm/leader-line/leader-line.min.js"></script>
|
|
40
|
-
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.
|
|
41
|
-
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.
|
|
40
|
+
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.4/browser/live-cards.js"></script>
|
|
41
|
+
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.4/browser/board-livecards-client.js"></script>
|
|
42
42
|
</head>
|
|
43
43
|
<body class="bg-light">
|
|
44
44
|
<div class="container-fluid py-3">
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"open_turn": {
|
|
41
41
|
"description": "Resolve the current user turn from flow-provided chat messages and parse any chat envelope options",
|
|
42
|
-
"produces_data": ["boardId", "cardId", "boardSetupRoot", "boardBaseRef", "boardRuntimeDir", "runtimeStatusDir", "cardsDir", "projectRoot", "chatFlowRoot", "chatMessages", "userText", "lastChatEntryId", "turnId", "probe", "chatHandlerMode", "chatCopilotTimeoutMs", "probeAttachmentFileIdx", "serverUrl"],
|
|
42
|
+
"produces_data": ["boardId", "cardId", "boardSetupRoot", "boardBaseRef", "boardRuntimeDir", "runtimeStatusDir", "cardsDir", "projectRoot", "chatFlowRoot", "chatMessages", "userText", "lastChatEntryId", "turnId", "probe", "chatHandlerMode", "chatCopilotTimeoutMs", "probeAttachmentFileIdx", "probeGenerateAttachment", "replyFiles", "serverUrl"],
|
|
43
43
|
"input_validations": [
|
|
44
44
|
"$type(cardId) = \"string\" and $length(cardId) > 0",
|
|
45
45
|
"$type(chatMessages) = \"array\"",
|
|
@@ -72,6 +72,10 @@
|
|
|
72
72
|
"data._legacyEnvelope = data._hasLegacyEnvelope ? $eval(data._rawMessageText) : null",
|
|
73
73
|
"data._legacyPrompt = ($type(data._legacyEnvelope.prompt) = \"string\" and $length($trim(data._legacyEnvelope.prompt)) > 0) ? data._legacyEnvelope.prompt : (($type(data._legacyEnvelope.text) = \"string\" and $length($trim(data._legacyEnvelope.text)) > 0) ? data._legacyEnvelope.text : (($type(data._legacyEnvelope.userText) = \"string\" and $length($trim(data._legacyEnvelope.userText)) > 0) ? data._legacyEnvelope.userText : (($type(data._legacyEnvelope.query) = \"string\" and $length($trim(data._legacyEnvelope.query)) > 0) ? data._legacyEnvelope.query : null)))",
|
|
74
74
|
"data.userText = data._isEchoProbe ? $trim($substring(data._rawMessageText, data._markerLen, $length(data._rawMessageText) - (data._markerLen * 2))) : (($type(data._legacyPrompt) = \"string\" and $length($trim(data._legacyPrompt)) > 0) ? $trim(data._legacyPrompt) : data._rawMessageText)",
|
|
75
|
+
"data._attachMarker = \"[attach]\"",
|
|
76
|
+
"data.probeGenerateAttachment = $lowercase($substring(data.userText, 0, $length(data._attachMarker))) = data._attachMarker",
|
|
77
|
+
"data.userText = data.probeGenerateAttachment ? $trim($substring(data.userText, $length(data._attachMarker))) : data.userText",
|
|
78
|
+
"data.replyFiles = []",
|
|
75
79
|
"data.probe = data._isEchoProbe ? true : (data._legacyEnvelope.probe = true or data._legacyEnvelope.probe = 1 or ($type(data._legacyEnvelope.probe) = \"string\" and $count($filter([\"1\", \"true\", \"yes\", \"on\"], function($value) { $value = $lowercase($trim(data._legacyEnvelope.probe)) })) > 0))",
|
|
76
80
|
"data.chatHandlerMode = data._isEchoProbe ? \"echo-probe\" : (($type(data._legacyEnvelope.chatHandlerMode) = \"string\" and $length($trim(data._legacyEnvelope.chatHandlerMode)) > 0) ? $lowercase($trim(data._legacyEnvelope.chatHandlerMode)) : (data.probe ? \"probe\" : \"copilot\"))",
|
|
77
81
|
"data.chatCopilotTimeoutMs = ($parsePositiveInt := function($value) { ($type($value) = \"number\" and $value > 0) ? $floor($value) : (($type($value) = \"string\" and $count($match($trim($value), /^[0-9]+$/)) > 0 and $number($trim($value)) > 0) ? $floor($number($trim($value))) : null) }; $legacyTimeout := $parsePositiveInt(data._legacyEnvelope.chatTimeoutMs); $legacyCopilotTimeout := $parsePositiveInt(data._legacyEnvelope.chatCopilotTimeoutMs); $fallbackTimeout := $parsePositiveInt(expects_data.chatCopilotTimeoutMs); $legacyTimeout ? $legacyTimeout : ($legacyCopilotTimeout ? $legacyCopilotTimeout : ($fallbackTimeout ? $fallbackTimeout : 300000)))",
|
|
@@ -208,8 +212,8 @@
|
|
|
208
212
|
},
|
|
209
213
|
"probe_assistant": {
|
|
210
214
|
"description": "Compute the deterministic echo assistant reply for echo-probe and test flows",
|
|
211
|
-
"expects_data": ["userText"],
|
|
212
|
-
"produces_data": ["replyText"],
|
|
215
|
+
"expects_data": ["userText", "probeGenerateAttachment"],
|
|
216
|
+
"produces_data": ["replyText", "replyFiles"],
|
|
213
217
|
"input_validations": [
|
|
214
218
|
"$type(userText) = \"string\""
|
|
215
219
|
],
|
|
@@ -217,6 +221,7 @@
|
|
|
217
221
|
"type": "compute-jsonata",
|
|
218
222
|
"expr": [
|
|
219
223
|
"data.replyText = \"Echo: \" & expects_data.userText",
|
|
224
|
+
"data.replyFiles = expects_data.probeGenerateAttachment ? [{ 'file_name': 'probe-generated.txt', 'content_type': 'text/plain', 'text': data.replyText }] : []",
|
|
220
225
|
"result = $contains($lowercase(expects_data.userText), \"simulate-failure\") ? \"failure\" : \"success\""
|
|
221
226
|
]
|
|
222
227
|
},
|
|
@@ -228,7 +233,7 @@
|
|
|
228
233
|
},
|
|
229
234
|
"write_reply": {
|
|
230
235
|
"description": "Append the assistant reply via MCP stage-ai-response-and-any-attachments",
|
|
231
|
-
"expects_data": ["serverUrl", "boardId", "cardId", "replyText", "turnId"],
|
|
236
|
+
"expects_data": ["serverUrl", "boardId", "cardId", "replyText", "replyFiles", "turnId"],
|
|
232
237
|
"produces_data": ["replyId"],
|
|
233
238
|
"input_validations": [
|
|
234
239
|
"$type(serverUrl) = \"string\" and $length(serverUrl) > 0",
|
|
@@ -246,7 +251,7 @@
|
|
|
246
251
|
"meta": "chat-handler",
|
|
247
252
|
"argsMassaging": {
|
|
248
253
|
"urlTemplate": "serverUrl & '/api/boards/' & boardId & '/mcp'",
|
|
249
|
-
"bodyTemplate": "{ 'tool': 'stage-ai-response-and-any-attachments', 'args': { 'card_id': cardId, 'text': replyText, 'turn_id': turnId } }"
|
|
254
|
+
"bodyTemplate": "{ 'tool': 'stage-ai-response-and-any-attachments', 'args': { 'card_id': cardId, 'text': replyText, 'turn_id': turnId, 'files': ($type(replyFiles) = 'array' ? replyFiles : []) } }"
|
|
250
255
|
},
|
|
251
256
|
"outputTransforms": {
|
|
252
257
|
"dataTemplate": "{ 'replyId': output.data.id }"
|
|
@@ -45,6 +45,7 @@ function isCopilotAvailable() {
|
|
|
45
45
|
|
|
46
46
|
const skipT3a = cliArgs.includes('--skip-t3a') || !isCopilotAvailable();
|
|
47
47
|
const skipT3b = cliArgs.includes('--skip-t3b');
|
|
48
|
+
const skipT3d = cliArgs.includes('--skip-t3d');
|
|
48
49
|
const RUN_ID = `run-${Date.now()}-${process.pid}-${Math.random().toString(36).slice(2, 8)}`;
|
|
49
50
|
|
|
50
51
|
const BOARD_ID = 'live';
|
|
@@ -952,6 +953,98 @@ try {
|
|
|
952
953
|
console.log('[T3b] ok: upload protocol and ordered probe lifecycle observed with attachment-derived assistant reply');
|
|
953
954
|
}
|
|
954
955
|
|
|
956
|
+
// ── T3d: probe-echo chat with one AI-generated attachment ──
|
|
957
|
+
if (skipT3d) {
|
|
958
|
+
console.log('\n=== T3d: skipped (--skip-t3d) ===');
|
|
959
|
+
} else {
|
|
960
|
+
console.log('\n=== T3d: probe-echo chat with AI-generated attachment ===');
|
|
961
|
+
|
|
962
|
+
// Ensure chat SSE subscription is active (T3 may have been skipped)
|
|
963
|
+
let t3dOwnedSseClient = false;
|
|
964
|
+
if (!chatSseClient) {
|
|
965
|
+
chatSseClientId = `chat-proto-t3d-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
966
|
+
chatSseClient = startSseClient(`${BASE}/sse?clientId=${encodeURIComponent(chatSseClientId)}`, (payload) => {
|
|
967
|
+
captureChatEvents(payload, CHAT_CARD_ID);
|
|
968
|
+
});
|
|
969
|
+
await new Promise((r) => setTimeout(r, 400));
|
|
970
|
+
const t3dSubRes = await httpJson('POST', `${BASE}/cards/${CHAT_CARD_ID}/chats/subscribe-sse`, { clientId: chatSseClientId });
|
|
971
|
+
assert(t3dSubRes.status === 200, `T3d chat subscribe returned ${t3dSubRes.status}`);
|
|
972
|
+
t3dOwnedSseClient = true;
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
const t2dBeforeChats = await httpGet(`${BASE}/cards/${CHAT_CARD_ID}/chats?all-turns=true`);
|
|
976
|
+
assert(t2dBeforeChats.status === 200, `T3d pre chats returned ${t2dBeforeChats.status}`);
|
|
977
|
+
const t2dBeforeMessages = Array.isArray(t2dBeforeChats.data?.messages) ? t2dBeforeChats.data.messages : [];
|
|
978
|
+
const t2dBeforeCount = t2dBeforeMessages.length;
|
|
979
|
+
|
|
980
|
+
const t2dBeforeCard = await httpGet(`${BASE}/cards/${CHAT_CARD_ID}`);
|
|
981
|
+
assert(t2dBeforeCard.status === 200, `T3d pre card returned ${t2dBeforeCard.status}`);
|
|
982
|
+
const t2dBeforeFiles = Array.isArray(t2dBeforeCard.data?.card_data?.files)
|
|
983
|
+
? t2dBeforeCard.data.card_data.files
|
|
984
|
+
: [];
|
|
985
|
+
|
|
986
|
+
const t3dTurnId = randomTurnId();
|
|
987
|
+
const t2dPrompt = `probe generated attachment validation ${Date.now()}`;
|
|
988
|
+
const t2dEventStart = NS.chatEvents.length;
|
|
989
|
+
const t2dSendRes = await httpJson('POST', `${BASE}/cards/${CHAT_CARD_ID}/actions`, {
|
|
990
|
+
actionType: 'chat-send',
|
|
991
|
+
payload: {
|
|
992
|
+
text: `${ECHO_PROBE_MARKER}[attach] ${t2dPrompt}${ECHO_PROBE_MARKER}`,
|
|
993
|
+
'turn-id': t3dTurnId,
|
|
994
|
+
},
|
|
995
|
+
});
|
|
996
|
+
assert(t2dSendRes.status === 200, `T3d chat-send returned ${t2dSendRes.status}`);
|
|
997
|
+
|
|
998
|
+
const t2dLifecycle = await waitForChatPredicate((events) => {
|
|
999
|
+
return matchOrderedProbeLifecycle(events.slice(t2dEventStart), {
|
|
1000
|
+
beforeCount: t2dBeforeCount,
|
|
1001
|
+
beforeProcessing: false,
|
|
1002
|
+
prompt: t2dPrompt,
|
|
1003
|
+
assistantText: `Echo: ${t2dPrompt}`,
|
|
1004
|
+
inProgressText: PROBE_IN_PROGRESS_TEXT,
|
|
1005
|
+
});
|
|
1006
|
+
}, 60_000, 'T3d ordered lifecycle');
|
|
1007
|
+
assert(!!t2dLifecycle, 'T3d ordered lifecycle not observed');
|
|
1008
|
+
|
|
1009
|
+
const t2dAfter = await httpGet(`${BASE}/cards/${CHAT_CARD_ID}/chats?all-turns=true`);
|
|
1010
|
+
assert(t2dAfter.status === 200, `T3d post chats returned ${t2dAfter.status}`);
|
|
1011
|
+
const t2dAfterMessages = Array.isArray(t2dAfter.data?.messages) ? t2dAfter.data.messages : [];
|
|
1012
|
+
const t2dNewMessages = t2dAfterMessages.slice(t2dBeforeCount);
|
|
1013
|
+
assert(t2dNewMessages.length >= 4, `T3d expected at least 4 chat messages after send, got ${t2dNewMessages.length}`);
|
|
1014
|
+
|
|
1015
|
+
const t2dUser = t2dNewMessages.find((m) => m?.role === 'user');
|
|
1016
|
+
const t2dInProgress = t2dNewMessages.find((m) => m?.role === 'system' && String(m?.text || '').trim().toLowerCase() === PROBE_IN_PROGRESS_TEXT);
|
|
1017
|
+
const t2dAiGenerated = t2dNewMessages.find((m) => m?.role === 'system' && /^AI generated:/i.test(String(m?.text || '')));
|
|
1018
|
+
const t2dAssistantMsg = t2dNewMessages.find((m) => m?.role === 'assistant');
|
|
1019
|
+
|
|
1020
|
+
assert(!!t2dUser && typeof t2dUser.id === 'string', 'T3d missing user chat message');
|
|
1021
|
+
assert(!!t2dInProgress && typeof t2dInProgress.id === 'string', 'T3d missing in-progress system chat message');
|
|
1022
|
+
assert(!!t2dAiGenerated && typeof t2dAiGenerated.id === 'string', 'T3d missing AI-generated attachment system chat message');
|
|
1023
|
+
assert(/#\d+\s*$/.test(String(t2dAiGenerated?.text || '')), 'T3d AI-generated system message should include merged file index');
|
|
1024
|
+
assert(String(t2dAiGenerated?.turn || '') === t3dTurnId, 'T3d AI-generated system turn id mismatch');
|
|
1025
|
+
assert(!!t2dAssistantMsg && typeof t2dAssistantMsg.id === 'string', 'T3d missing assistant chat message');
|
|
1026
|
+
assert(String(t2dAssistantMsg?.text || '').includes(`Echo: ${t2dPrompt}`), 'T3d assistant content mismatch');
|
|
1027
|
+
assert(String(t2dAssistantMsg?.turn || '') === t3dTurnId, 'T3d assistant turn id mismatch');
|
|
1028
|
+
|
|
1029
|
+
const t2dFileIndexMatch = /#(\d+)\s*$/.exec(String(t2dAiGenerated?.text || ''));
|
|
1030
|
+
assert(!!t2dFileIndexMatch, 'T3d AI-generated message missing file index');
|
|
1031
|
+
const t2dFileIndex = Number.parseInt(t2dFileIndexMatch[1], 10);
|
|
1032
|
+
assert(Number.isInteger(t2dFileIndex) && t2dFileIndex >= 0, 'T3d AI-generated message file index should be non-negative');
|
|
1033
|
+
|
|
1034
|
+
const t2dAfterCard = await httpGet(`${BASE}/cards/${CHAT_CARD_ID}`);
|
|
1035
|
+
assert(t2dAfterCard.status === 200, `T3d post card returned ${t2dAfterCard.status}`);
|
|
1036
|
+
const t2dAfterFiles = Array.isArray(t2dAfterCard.data?.card_data?.files)
|
|
1037
|
+
? t2dAfterCard.data.card_data.files
|
|
1038
|
+
: [];
|
|
1039
|
+
assert(t2dAfterFiles.length === t2dBeforeFiles.length + 1, `T3d expected exactly one new stored file, got ${t2dAfterFiles.length - t2dBeforeFiles.length}`);
|
|
1040
|
+
const t2dStoredFile = t2dAfterFiles[t2dFileIndex];
|
|
1041
|
+
assert(!!t2dStoredFile, `T3d stored file missing at merged index ${t2dFileIndex}`);
|
|
1042
|
+
assert(t2dStoredFile?.chat === true, 'T3d generated file should be marked as chat-origin');
|
|
1043
|
+
assert(String(t2dStoredFile?.stored_name || '').length > 0, 'T3d generated file stored_name missing');
|
|
1044
|
+
assert(!Object.prototype.hasOwnProperty.call(t2dStoredFile || {}, 'path'), 'T3d stored file metadata should not expose path');
|
|
1045
|
+
console.log('[T3d] ok: probe staged one AI-generated attachment and appended the final reply through the shared flow');
|
|
1046
|
+
}
|
|
1047
|
+
|
|
955
1048
|
if (skipT4) {
|
|
956
1049
|
console.log('\n=== T4: skipped (--skip-t4) ===');
|
|
957
1050
|
} else {
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
<title>Example Board Demo (LocalStorage Runtime)</title>
|
|
7
7
|
<link rel="icon" type="image/svg+xml" href="../../browser/favicon.svg" />
|
|
8
8
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
|
|
9
|
-
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.
|
|
9
|
+
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.4/browser/compute-jsonata.js"></script>
|
|
10
10
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
11
11
|
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
|
12
12
|
<script src="https://cdn.jsdelivr.net/npm/dompurify/dist/purify.min.js"></script>
|
|
13
13
|
<script src="https://cdn.jsdelivr.net/npm/leader-line/leader-line.min.js"></script>
|
|
14
|
-
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.
|
|
15
|
-
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.
|
|
14
|
+
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.4/browser/live-cards.js"></script>
|
|
15
|
+
<script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.6.4/browser/board-livecards-localstorage.js"></script>
|
|
16
16
|
</head>
|
|
17
17
|
<body class="bg-light">
|
|
18
18
|
<div class="container-fluid py-3">
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
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
|
|
2
2
|
//# sourceMappingURL=board-live-cards-mcp.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{a as createBoardLiveCardsMcp}from'./chunk-
|
|
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
|
|
2
2
|
//# sourceMappingURL=board-live-cards-mcp.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
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
|
|
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(`
|
|
2
2
|
`)+`
|
|
3
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
|
|
4
4
|
${new Date().toISOString()}
|
|
@@ -8,5 +8,5 @@ ${new Date().toISOString()}
|
|
|
8
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
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
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 chunkGJJMEAVN_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
|
|
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
|
|
12
12
|
//# sourceMappingURL=board-live-cards-node.cjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a as a$3,c}from'./chunk-MLVTJASJ.js';export{c as createArtifactsStore,e as createCardFileMetadataStore,a as createChatStorage,d as createFileArtifactsStore,b as createInMemoryChatStorage,f as createQueueLaneRegistry}from'./chunk-MLVTJASJ.js';import {a as a$1}from'./chunk-CIAJNUR4.js';import'./chunk-HEEDJEKM.js';import {g,y as y$1}from'./chunk-N6P2JW4W.js';export{n as BOARD_GRAPH_KEY,u as EMPTY_CONFIG,m as SNAPSHOT_SCHEMA_VERSION_V1,z as createBoardLiveCardsNonCorePublic,y as createBoardLiveCardsPublic,l as createCardStore,e as createHttpBoardCallbackTransport,f as createInProcessBoardCallbackTransport,g as createLocalNodeBoardCallbackTransport}from'./chunk-N6P2JW4W.js';export{a as executionRefFromScriptPath,c as parseExecutionRef,b as serializeExecutionRef}from'./chunk-XQRNDX4Q.js';import {a as a$2,b as b$1}from'./chunk-BQS3EIEK.js';export{b as parseRef,a as serializeRef}from'./chunk-BQS3EIEK.js';import'./chunk-VGT3TRQG.js';import'./chunk-WDPOGXTY.js';export{a as createBoardLiveCardsMcp}from'./chunk-
|
|
1
|
+
import {a as a$3,c}from'./chunk-MLVTJASJ.js';export{c as createArtifactsStore,e as createCardFileMetadataStore,a as createChatStorage,d as createFileArtifactsStore,b as createInMemoryChatStorage,f as createQueueLaneRegistry}from'./chunk-MLVTJASJ.js';import {a as a$1}from'./chunk-CIAJNUR4.js';import'./chunk-HEEDJEKM.js';import {g,y as y$1}from'./chunk-N6P2JW4W.js';export{n as BOARD_GRAPH_KEY,u as EMPTY_CONFIG,m as SNAPSHOT_SCHEMA_VERSION_V1,z as createBoardLiveCardsNonCorePublic,y as createBoardLiveCardsPublic,l as createCardStore,e as createHttpBoardCallbackTransport,f as createInProcessBoardCallbackTransport,g as createLocalNodeBoardCallbackTransport}from'./chunk-N6P2JW4W.js';export{a as executionRefFromScriptPath,c as parseExecutionRef,b as serializeExecutionRef}from'./chunk-XQRNDX4Q.js';import {a as a$2,b as b$1}from'./chunk-BQS3EIEK.js';export{b as parseRef,a as serializeRef}from'./chunk-BQS3EIEK.js';import'./chunk-VGT3TRQG.js';import'./chunk-WDPOGXTY.js';export{a as createBoardLiveCardsMcp}from'./chunk-R5L5WUKN.js';import'./chunk-JMDHDY6M.js';import {d}from'./chunk-VLBB3D6B.js';import'./chunk-MNEOJWPS.js';export{a as createCardStorePublic}from'./chunk-KBELAKIY.js';export{a as createArtifactsStorePublic}from'./chunk-X3LC4LII.js';import'./chunk-FW4363Y4.js';import {spawnSync,spawn,execFile,execFileSync}from'child_process';import*as a from'fs';import*as Ee from'os';import*as y from'path';import*as Te from'net';import {fileURLToPath}from'url';import {randomUUID,createHash}from'crypto';import {createRequire}from'module';import {lockSync}from'proper-lockfile';function b(...e){return y.join(...e)}function Be(e){return y.isAbsolute(e)}function X(){return randomUUID()}function Ie(e){return createHash("sha256").update(e).digest("hex")}function Ce(e){return y.dirname(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 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;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.join(e,"board-live-cards-cli.js");if(a.existsSync(n))return {cmd:process.execPath,args:[n,t,...r]};let o=y.join(e,"board-live-cards-cli.ts"),u=[y.join(e,"..","..","..","node_modules","tsx","dist","cli.mjs"),y.join(e,"..","..","node_modules","tsx","dist","cli.mjs"),y.join(e,"..","..","..","node_modules",".bin","tsx"),y.join(e,"..","..","node_modules",".bin","tsx")].find(g=>a.existsSync(g));return a.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.join(e,"board-live-cards-cli.mjs");if(a.existsSync(t))return t;let r=y.join(e,"..","..","..","dev","board-live-cards-cli.js");if(a.existsSync(r))return r;let n=y.join(e,"..","..","dev","board-live-cards-cli.js");if(a.existsSync(n))return n;let o=y.join(e,"board-live-cards-cli.js");if(a.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.join(Ee.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(`
|
|
2
2
|
`)+`
|
|
3
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.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=createRequire(import.meta.url);function Bt(e){return typeof e=="object"?e:b$1(e)}function Ne(e){let t=y.basename(String(e||"").trim());if(!t)throw new Error(`resolveYamlFlowCliPath: expected non-empty cli file name, got ${JSON.stringify(e)}`);let r=y.dirname(Tt.resolve("yaml-flow/package.json")),n=t.replace(/\.[^.]+$/,""),o=y.join(r,"cli","bundled",`${n}.mjs`);if(a.existsSync(o))return o;let s=y.join(r,"cli","node",t);if(a.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.join(t,"source-cli-task-executor.js");if(a.existsSync(n))return {command:process.execPath,args:[n]};let o=y.join(t,"source-cli-task-executor.ts"),s=y.join(t,"..","..","node_modules","tsx","dist","cli.mjs"),u=y.join(t,"..","..","node_modules",".bin","tsx"),l=a.existsSync(s)?s:u;return a.existsSync(o)&&a.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 a$1(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.renameSync(e,t);return}let r=[10,20,40,80,160];for(let n=0;n<=r.length;n++)try{a.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.join(e,...o.split("/"))}function r(o){return y.relative(e,o).replace(/\\/g,"/")}function n(o,s){if(a.existsSync(o))for(let u of a.readdirSync(o,{withFileTypes:true})){let l=y.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.existsSync(s))return null;try{return a.readFileSync(s,"utf-8")}catch{return null}},write(o,s){let u=t(o),l=`${u}.${process.pid}.${randomUUID()}.tmp`;a.mkdirSync(y.dirname(u),{recursive:true}),a.writeFileSync(l,s,"utf-8"),C(l,u);},exists(o){return a.existsSync(t(o))},remove(o){let s=t(o);try{a.existsSync(s)&&a.unlinkSync(s);}catch{}},readBytes(o){let s=t(o);if(!a.existsSync(s))return null;try{return new Uint8Array(a.readFileSync(s))}catch{return null}},writeBytes(o,s){let u=t(o),l=`${u}.${process.pid}.${randomUUID()}.tmp`;a.mkdirSync(y.dirname(u),{recursive:true}),a.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.existsSync(s))return null;try{let u=a.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.existsSync(e))return null;try{return a.readFileSync(e,"utf-8")}catch{return null}},write(e,t){let r=`${e}.${process.pid}.${randomUUID()}.tmp`;a.mkdirSync(y.dirname(e),{recursive:true}),a.writeFileSync(r,t,"utf-8"),C(r,e);},exists(e){return a.existsSync(e)},remove(e){try{a.existsSync(e)&&a.unlinkSync(e);}catch{}},readBytes(e){if(!a.existsSync(e))return null;try{return new Uint8Array(a.readFileSync(e))}catch{return null}},writeBytes(e,t){let r=`${e}.${process.pid}.${randomUUID()}.tmp`;a.mkdirSync(y.dirname(e),{recursive:true}),a.writeFileSync(r,Buffer.from(t)),C(r,e);},stat(e){if(!a.existsSync(e))return null;try{let t=a.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}.${randomUUID()}.tmp`;a.mkdirSync(y.dirname(e),{recursive:true}),a.writeFileSync(r,JSON.stringify(t,null,2),"utf-8"),C(r,e);}function N(e){if(!a.existsSync(e))return null;try{return JSON.parse(a.readFileSync(e,"utf-8"))}catch{return null}}function V(e){return a.existsSync(e)?a.readdirSync(e).filter(t=>t.endsWith(".json")).sort().map(t=>y.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.join(e,"active"),r=y.join(e,"leased"),n=y.join(e,"done"),o=y.join(e,"dead");for(let c of [t,r,n,o])a.mkdirSync(c,{recursive:true});function s(c){let d=String(c.enqueuedAt||new Date().toISOString()).replace(/[:.]/g,"-");return y.join(t,`${d}-${c.id}.json`)}function u(c){return y.join(r,`${c}.json`)}function l(c){return y.join(n,`${c}.json`)}function g(c){return y.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.unlinkSync(d);}catch{}}}return {enqueue(c){let d={id: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: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: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.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.mkdirSync(e,{recursive:true});let t=y.join(e,Se),r=y.join(e,Re),n=!a.existsSync(t);if(n)try{a.writeFileSync(t,`scratch-store
|
|
4
4
|
${new Date().toISOString()}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkKXWT3CY6_cjs=require('./chunk-KXWT3CY6.cjs');require('./chunk-WOALA3V5.cjs'),require('./chunk-H5HBXPOI.cjs'),require('./chunk-PBCDDO4V.cjs'),require('./chunk-OEFTOO47.cjs'),require('./chunk-U2N6MCD5.cjs'),require('./chunk-SFVO2LB2.cjs'),require('./chunk-G4XXRHL2.cjs'),require('./chunk-LODXIALE.cjs'),require('./chunk-YEB5QHGE.cjs'),require('./chunk-IXZG74EW.cjs'),require('./chunk-NMZ6XNLB.cjs'),require('./chunk-UJ7ZTV4J.cjs'),require('./chunk-YMEIPKLW.cjs'),require('./chunk-GYQXDNNI.cjs'),require('./chunk-GNFE24S7.cjs');Object.defineProperty(exports,"createHostedBoardQueueLaneRegistry",{enumerable:true,get:function(){return chunkKXWT3CY6_cjs.a}});Object.defineProperty(exports,"createMultiBoardServerRuntime",{enumerable:true,get:function(){return chunkKXWT3CY6_cjs.c}});Object.defineProperty(exports,"createSingleBoardServerRuntime",{enumerable:true,get:function(){return chunkKXWT3CY6_cjs.b}});//# sourceMappingURL=board-live-cards-server-runtime.cjs.map
|
|
2
2
|
//# sourceMappingURL=board-live-cards-server-runtime.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{a as createHostedBoardQueueLaneRegistry,c as createMultiBoardServerRuntime,b as createSingleBoardServerRuntime}from'./chunk-
|
|
1
|
+
export{a as createHostedBoardQueueLaneRegistry,c as createMultiBoardServerRuntime,b as createSingleBoardServerRuntime}from'./chunk-OJLA6NLU.js';import'./chunk-MLVTJASJ.js';import'./chunk-VMW4Z6EF.js';import'./chunk-HEEDJEKM.js';import'./chunk-N6P2JW4W.js';import'./chunk-XQRNDX4Q.js';import'./chunk-BQS3EIEK.js';import'./chunk-VGT3TRQG.js';import'./chunk-WDPOGXTY.js';import'./chunk-R5L5WUKN.js';import'./chunk-JMDHDY6M.js';import'./chunk-VLBB3D6B.js';import'./chunk-MNEOJWPS.js';import'./chunk-KBELAKIY.js';import'./chunk-76ON3V7R.js';import'./chunk-FW4363Y4.js';//# sourceMappingURL=board-live-cards-server-runtime.js.map
|
|
2
2
|
//# sourceMappingURL=board-live-cards-server-runtime.js.map
|