yaml-flow 8.4.3 → 8.4.5

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 (50) hide show
  1. package/browser/asset-integrity.json +3 -3
  2. package/browser/board-livecards-localstorage.js +5 -5
  3. package/cli/{board-live-cards-lib-tjYsPt5U.d.ts → board-live-cards-lib-COi4bSpk.d.ts} +1 -0
  4. package/cli/browser-api/board-live-cards-browser-adapter.d.ts +2 -2
  5. package/cli/browser-api/card-store-browser-api.d.ts +1 -1
  6. package/cli/browser-api/card-store-browser-api.js +1 -1
  7. package/cli/node/artifacts-store-cli.js +2 -2
  8. package/cli/node/batch-runner-cli.js +1 -1
  9. package/cli/node/board-live-cards-cli.js +10 -10
  10. package/cli/node/card-store-cli.js +2 -2
  11. package/cli/node/chat-store-cli.d.ts +9 -9
  12. package/cli/node/chat-store-cli.js +7 -7
  13. package/cli/node/execution-adapter.js +2 -2
  14. package/cli/node/fs-board-adapter.d.ts +4 -4
  15. package/cli/node/fs-board-adapter.js +10 -10
  16. package/cli/node/step-machine-cli.js +3 -3
  17. package/cli/{types-Dc2VRMUw.d.ts → types-BkJvnXVD.d.ts} +1 -1
  18. package/examples/board/demo-shell-with-server.html +2 -2
  19. package/examples/board/doc.html +2 -2
  20. package/examples/board/server/chat-flow/flow-steps.json +8 -4
  21. package/examples/board-local/demo-shell-localstorage.html +3 -3
  22. package/lib/artifacts-store-public.d.cts +1 -1
  23. package/lib/artifacts-store-public.d.ts +1 -1
  24. package/lib/board-live-cards-node.cjs +10 -10
  25. package/lib/board-live-cards-node.d.cts +4 -4
  26. package/lib/board-live-cards-node.d.ts +4 -4
  27. package/lib/board-live-cards-node.js +10 -10
  28. package/lib/{board-live-cards-public-BM6jCEIa.d.cts → board-live-cards-public-CU8VVw3v.d.cts} +1 -0
  29. package/lib/{board-live-cards-public-Bz07XKRK.d.ts → board-live-cards-public-Crjm8KWn.d.ts} +1 -0
  30. package/lib/board-live-cards-public.cjs +2 -2
  31. package/lib/board-live-cards-public.d.cts +1 -1
  32. package/lib/board-live-cards-public.d.ts +1 -1
  33. package/lib/board-live-cards-public.js +2 -2
  34. package/lib/board-live-cards-server-runtime.cjs +3 -3
  35. package/lib/board-live-cards-server-runtime.d.cts +2 -2
  36. package/lib/board-live-cards-server-runtime.d.ts +2 -2
  37. package/lib/board-live-cards-server-runtime.js +3 -3
  38. package/lib/card-store-public.d.cts +1 -1
  39. package/lib/card-store-public.d.ts +1 -1
  40. package/lib/chat-store-public.d.cts +2 -2
  41. package/lib/chat-store-public.d.ts +2 -2
  42. package/lib/server-runtime/index.cjs +3 -3
  43. package/lib/server-runtime/index.d.cts +3 -3
  44. package/lib/server-runtime/index.d.ts +3 -3
  45. package/lib/server-runtime/index.js +3 -3
  46. package/lib/step-machine-public/index.cjs +3 -3
  47. package/lib/step-machine-public/index.js +3 -3
  48. package/lib/{types-Cn0b8G-i.d.ts → types-BC8ZnA6i.d.ts} +1 -1
  49. package/lib/{types-Dszjwfud.d.cts → types-DX8wXuZ0.d.cts} +1 -1
  50. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import {createRequire}from'module';import'ajv-formats';var R=createRequire(import.meta.url);R("./jsonata-sync.cjs");var x=createRequire(import.meta.url);x("./jsonata-sync.cjs");function y(n,o){function e(){return n.readIndex()??{}}function r(t,s,i){let a=String(s||"").split(".").filter(Boolean);if(a.length===0)return i&&typeof i=="object"&&!Array.isArray(i)?i:{value:i};let u={...t},c=u;for(let d=0;d<a.length-1;d++){let l=a[d],g=c[l],m=g&&typeof g=="object"&&!Array.isArray(g)?{...g}:{};c[l]=m,c=m;}return c[a[a.length-1]]=i,u}return {readCard(t){let s=e()[t];return !s||!n.cardExists(s.key)?null:n.readCard(s.key)},readCardKey(t){return e()[t]?.key??null},readAllCards(){let t=[];for(let[s,i]of Object.entries(e())){if(!n.cardExists(i.key))continue;let a=n.readCard(i.key);a?t.push(a):o?.(`[card-store] could not read card "${s}" at key "${i.key}"`);}return t},readChecksumIndex(){let t={};for(let[s,i]of Object.entries(e()))t[s]=i.checksum;return t},changedSince(t){let s=e(),i=[];for(let[a,u]of Object.entries(s))t[a]!==u.checksum&&i.push(a);for(let a of Object.keys(t))s[a]||i.push(a);return i},validateUpsert(t,s){let i=e(),a=i[t],u=Object.entries(i).find(([,c])=>c.key===s);return a&&a.key!==s?{ok:false,error:`Card id "${t}" is already mapped to key "${a.key}", cannot remap to "${s}"`}:u&&u[0]!==t?{ok:false,error:`Key "${s}" is already mapped to card id "${u[0]}", cannot remap to "${t}"`}:{ok:true}},writeCard(t,s,i){let a=e(),u=i??a[t]?.key??n.defaultCardKey(t),c=n.writeCard(u,s);a[t]={key:u,checksum:c,updatedAt:new Date().toISOString()},n.writeIndex(a);},patchCard(t,s,i){let a=e(),u=a[t];if(!u||!n.cardExists(u.key))throw new Error(`card "${t}" not found`);let c=n.readCard(u.key);if(!c||typeof c!="object"||Array.isArray(c))throw new Error(`card "${t}" is not patchable`);let d=r(c,s,i),l=n.writeCard(u.key,d);a[t]={key:u.key,checksum:l,updatedAt:new Date().toISOString()},n.writeIndex(a);},removeCard(t){let s=e();s[t]&&(delete s[t],n.writeIndex(s));},readIndex(){return e()}}}function p(n){if(n==null||typeof n!="object")return JSON.stringify(n);if(Array.isArray(n))return `[${n.map(p).join(",")}]`;let o=n;return `{${Object.keys(o).sort().map(r=>`${JSON.stringify(r)}:${p(o[r])}`).join(",")}}`}function f(n,o){let e=o>>>0;for(let r=0;r<n.length;r++)e^=n.charCodeAt(r),e=Math.imul(e,16777619)>>>0;return e}function _(n){let o=p(n),e=f(o,2166136261),r=f(o,3735928559),t=f(o,19088743),s=f(o,4277009102);return [e,r,t,s].map(i=>i.toString(16).padStart(8,"0")).join("")}function T(n){function o(e){return `${n}:kv:${e}`}return {read(e){let r=globalThis.localStorage.getItem(o(e));if(r===null)return null;try{return JSON.parse(r)}catch{return null}},write(e,r){globalThis.localStorage.setItem(o(e),JSON.stringify(r));},delete(e){globalThis.localStorage.removeItem(o(e));},listKeys(e){let r=o(e??""),t=[];for(let s=0;s<globalThis.localStorage.length;s++){let i=globalThis.localStorage.key(s);i!==null&&i.startsWith(r)&&t.push(i.slice(o("").length));}return t}}}function h(n,o){let e={...n};for(let[r,t]of Object.entries(o))t!==null&&typeof t=="object"&&!Array.isArray(t)&&e[r]!==null&&typeof e[r]=="object"&&!Array.isArray(e[r])?e[r]=h(e[r],t):e[r]=t;return e}function S(n,o,e){if(o.length===0)return n;let[r,...t]=o;if(t.length===0)return {...n,[r]:e};let s=n[r]!==null&&typeof n[r]=="object"&&!Array.isArray(n[r])?n[r]:{};return {...n,[r]:S(s,t,e)}}function A(n){let o=T(n);return {read:e=>o.read(e),get(e,r){let t=o.read(e);if(t===null)return null;let s=t;for(let i of r.split(".").filter(Boolean)){if(s===null||typeof s!="object"||Array.isArray(s))return null;s=s[i]??null;}return s??null},write:(e,r)=>o.write(e,r),delete:e=>o.delete(e),listKeys:e=>o.listKeys(e),shallowMerge(e,r){let t=o.read(e)??{};o.write(e,{...t,...r});},deepMerge(e,r){let t=o.read(e)??{};o.write(e,h(t,r));},patch(e,r,t){let s=o.read(e)??{},i=r.split(".").filter(Boolean);o.write(e,S(s,i,t));}}}function k(n){let o=A(n);return {readIndex(){return o.read("_index")},writeIndex(e){o.write("_index",e);},readCard(e){return o.read(e)},writeCard(e,r){return o.write(e,r),_(r)},cardExists(e){return o.read(e)!==null},defaultCardKey(e){return e}}}function ke(n){let o=k(n),e=y(o);return {getCard(r){return e.readCard(r)},getAllCards(){return e.readAllCards()},upsertCard(r){let t=o.defaultCardKey(r.id);e.writeCard(r.id,r,t);},removeCard(r){e.removeCard(r);}}}export{ke as createBrowserCardStoreApi};//# sourceMappingURL=card-store-browser-api.js.map
1
+ import {createRequire}from'module';import'ajv-formats';var R=createRequire(import.meta.url);R("./jsonata-sync.cjs");var x=createRequire(import.meta.url);x("./jsonata-sync.cjs");function y(n,o){function e(){return n.readIndex()??{}}function r(t,s,i){let a=String(s||"").split(".").filter(Boolean);if(a.length===0)return i&&typeof i=="object"&&!Array.isArray(i)?i:{value:i};let u={...t},c=u;for(let d=0;d<a.length-1;d++){let l=a[d],g=c[l],m=g&&typeof g=="object"&&!Array.isArray(g)?{...g}:{};c[l]=m,c=m;}return c[a[a.length-1]]=i,u}return {readCard(t){let s=e()[t];return !s||!n.cardExists(s.key)?null:n.readCard(s.key)},readCardKey(t){return e()[t]?.key??null},readAllCards(){let t=[];for(let[s,i]of Object.entries(e())){if(!n.cardExists(i.key))continue;let a=n.readCard(i.key);a?t.push(a):o?.(`[card-store] could not read card "${s}" at key "${i.key}"`);}return t},readChecksumIndex(){let t={};for(let[s,i]of Object.entries(e()))t[s]=i.checksum;return t},changedSince(t){let s=e(),i=[];for(let[a,u]of Object.entries(s))t[a]!==u.checksum&&i.push(a);for(let a of Object.keys(t))s[a]||i.push(a);return i},validateUpsert(t,s){let i=e(),a=i[t],u=Object.entries(i).find(([,c])=>c.key===s);return a&&a.key!==s?{ok:false,error:`Card id "${t}" is already mapped to key "${a.key}", cannot remap to "${s}"`}:u&&u[0]!==t?{ok:false,error:`Key "${s}" is already mapped to card id "${u[0]}", cannot remap to "${t}"`}:{ok:true}},writeCard(t,s,i){let a=e(),u=i??a[t]?.key??n.defaultCardKey(t),c=n.writeCard(u,s);a[t]={key:u,checksum:c,updatedAt:new Date().toISOString()},n.writeIndex(a);},patchCard(t,s,i){let a=e(),u=a[t];if(!u||!n.cardExists(u.key))throw new Error(`card "${t}" not found`);let c=n.readCard(u.key);if(!c||typeof c!="object"||Array.isArray(c))throw new Error(`card "${t}" is not patchable`);let d=r(c,s,i),l=n.writeCard(u.key,d);a[t]={key:u.key,checksum:l,updatedAt:new Date().toISOString()},n.writeIndex(a);},removeCard(t){let s=e(),i=s[t];i&&(n.removeCard(i.key),delete s[t],n.writeIndex(s));},readIndex(){return e()}}}function p(n){if(n==null||typeof n!="object")return JSON.stringify(n);if(Array.isArray(n))return `[${n.map(p).join(",")}]`;let o=n;return `{${Object.keys(o).sort().map(r=>`${JSON.stringify(r)}:${p(o[r])}`).join(",")}}`}function f(n,o){let e=o>>>0;for(let r=0;r<n.length;r++)e^=n.charCodeAt(r),e=Math.imul(e,16777619)>>>0;return e}function _(n){let o=p(n),e=f(o,2166136261),r=f(o,3735928559),t=f(o,19088743),s=f(o,4277009102);return [e,r,t,s].map(i=>i.toString(16).padStart(8,"0")).join("")}function T(n){function o(e){return `${n}:kv:${e}`}return {read(e){let r=globalThis.localStorage.getItem(o(e));if(r===null)return null;try{return JSON.parse(r)}catch{return null}},write(e,r){globalThis.localStorage.setItem(o(e),JSON.stringify(r));},delete(e){globalThis.localStorage.removeItem(o(e));},listKeys(e){let r=o(e??""),t=[];for(let s=0;s<globalThis.localStorage.length;s++){let i=globalThis.localStorage.key(s);i!==null&&i.startsWith(r)&&t.push(i.slice(o("").length));}return t}}}function h(n,o){let e={...n};for(let[r,t]of Object.entries(o))t!==null&&typeof t=="object"&&!Array.isArray(t)&&e[r]!==null&&typeof e[r]=="object"&&!Array.isArray(e[r])?e[r]=h(e[r],t):e[r]=t;return e}function S(n,o,e){if(o.length===0)return n;let[r,...t]=o;if(t.length===0)return {...n,[r]:e};let s=n[r]!==null&&typeof n[r]=="object"&&!Array.isArray(n[r])?n[r]:{};return {...n,[r]:S(s,t,e)}}function A(n){let o=T(n);return {read:e=>o.read(e),get(e,r){let t=o.read(e);if(t===null)return null;let s=t;for(let i of r.split(".").filter(Boolean)){if(s===null||typeof s!="object"||Array.isArray(s))return null;s=s[i]??null;}return s??null},write:(e,r)=>o.write(e,r),delete:e=>o.delete(e),listKeys:e=>o.listKeys(e),shallowMerge(e,r){let t=o.read(e)??{};o.write(e,{...t,...r});},deepMerge(e,r){let t=o.read(e)??{};o.write(e,h(t,r));},patch(e,r,t){let s=o.read(e)??{},i=r.split(".").filter(Boolean);o.write(e,S(s,i,t));}}}function k(n){let o=A(n);return {readIndex(){return o.read("_index")},writeIndex(e){o.write("_index",e);},readCard(e){return o.read(e)},writeCard(e,r){return o.write(e,r),_(r)},removeCard(e){o.delete(e);},cardExists(e){return o.read(e)!==null},defaultCardKey(e){return e}}}function ke(n){let o=k(n),e=y(o);return {getCard(r){return e.readCard(r)},getAllCards(){return e.readAllCards()},upsertCard(r){let t=o.defaultCardKey(r.id);e.writeCard(r.id,r,t);},removeCard(r){e.removeCard(r);}}}export{ke as createBrowserCardStoreApi};//# sourceMappingURL=card-store-browser-api.js.map
2
2
  //# sourceMappingURL=card-store-browser-api.js.map
@@ -1,6 +1,6 @@
1
1
  import*as c from'fs';import*as d from'path';import {randomUUID}from'crypto';import'proper-lockfile';import*as E from'os';import'net';import'url';import'child_process';var w="b64:";function B(n){let s=n.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-n.length%4)%4),r=globalThis.Buffer;if(r)return r.from(s,"base64").toString("utf8");if(typeof atob=="function"){let i=atob(s),e=new Uint8Array(i.length);for(let t=0;t<i.length;t+=1)e[t]=i.charCodeAt(t);return new TextDecoder().decode(e)}throw new Error("No base64 decoder available in this runtime")}function k(n){if(!n.startsWith(w))throw new Error(`Invalid ref format (expected ${w}<base64url(json)>): ${n}`);let s;try{s=JSON.parse(B(n.slice(w.length)));}catch{throw new Error(`Invalid ref format (malformed base64url/json): ${n}`)}if(!s||typeof s!="object")throw new Error(`Invalid ref format (expected object payload): ${n}`);let r=s;if(typeof r.kind!="string"||typeof r.value!="string")throw new Error(`Invalid ref format (payload must contain string kind/value): ${n}`);return {kind:r.kind,value:r.value}}function A(n,s){if(process.platform!=="win32"){c.renameSync(n,s);return}let r=[10,20,40,80,160];for(let i=0;i<=r.length;i++)try{c.renameSync(n,s);return}catch(e){let t=e.code;if((t==="EPERM"||t==="EBUSY")&&i<r.length){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,r[i]);continue}throw e}}function v(n){function s(e){return d.join(n,...e.split("/"))}function r(e){return d.relative(n,e).replace(/\\/g,"/")}function i(e,t){if(c.existsSync(e))for(let a of c.readdirSync(e,{withFileTypes:true})){let o=d.join(e,a.name);if(a.isDirectory()){i(o,t);continue}a.isFile()&&t.push(r(o));}}return {read(e){let t=s(e);if(!c.existsSync(t))return null;try{return c.readFileSync(t,"utf-8")}catch{return null}},write(e,t){let a=s(e),o=`${a}.${process.pid}.${randomUUID()}.tmp`;c.mkdirSync(d.dirname(a),{recursive:true}),c.writeFileSync(o,t,"utf-8"),A(o,a);},exists(e){return c.existsSync(s(e))},remove(e){let t=s(e);try{c.existsSync(t)&&c.unlinkSync(t);}catch{}},readBytes(e){let t=s(e);if(!c.existsSync(t))return null;try{return new Uint8Array(c.readFileSync(t))}catch{return null}},writeBytes(e,t){let a=s(e),o=`${a}.${process.pid}.${randomUUID()}.tmp`;c.mkdirSync(d.dirname(a),{recursive:true}),c.writeFileSync(o,Buffer.from(t)),A(o,a);},listKeys(e){let t=[];i(n,t);let a=t.sort();return e?a.filter(o=>o.startsWith(e)):a},stat(e){let t=s(e);if(!c.existsSync(t))return null;try{let a=c.statSync(t);return {key:e,size:Number(a.size||0),updatedAt:new Date(a.mtimeMs).toISOString()}}catch{return null}}}}function C(){return new Date().toISOString()}function R(n){return new TextEncoder().encode(n).byteLength}function $(n){return n?{key:n.key,size:n.size,updatedAt:n.updatedAt,contentType:n.contentType}:null}function F(n){function s(r){let i=n.stat?$(n.stat(r)):null;if(i)return i;if(!n.exists(r))return null;let e=n.read(r);return e===null?{key:r}:{key:r,size:R(e)}}return {exists(r){return n.exists(r)},putText(r,i,e="text/plain; charset=utf-8"){n.write(r,i);let t=s(r)??{key:r};return t.contentType=e,t.updatedAt=t.updatedAt??C(),t.size=t.size??R(i),t},putBytes(r,i,e="application/octet-stream"){if(n.writeBytes)n.writeBytes(r,i);else {let a=JSON.stringify({__kind:"bytes-array",data:[...i]});n.write(r,a);}let t=s(r)??{key:r};return t.contentType=e,t.updatedAt=t.updatedAt??C(),t.size=t.size??i.byteLength,t},getText(r){let i=n.read(r);if(i===null){if(!n.readBytes)return null;let e=n.readBytes(r);return e===null?null:Buffer.from(e).toString("utf-8")}try{let e=JSON.parse(i);if(e&&e.__kind==="bytes-array"&&Array.isArray(e.data))return new TextDecoder("utf-8").decode(new Uint8Array(e.data))}catch{}return i},getBytes(r){if(n.readBytes){let e=n.readBytes(r);if(e!==null)return e}let i=n.read(r);if(i===null)return null;try{let e=JSON.parse(i);if(e&&e.__kind==="bytes-array"&&Array.isArray(e.data))return new Uint8Array(e.data)}catch{}return new TextEncoder().encode(i)},head:s,list(r=""){return n.listKeys(r).map(i=>s(i)??{key:i}).sort((i,e)=>i.key.localeCompare(e.key))},remove(r){n.remove(r);}}}function _(n){function s(e){return {status:"success",data:e}}function r(e){return {status:"fail",error:e}}function i(e){return {status:"error",error:e instanceof Error?e.message:String(e)}}return {list(e){try{let t=e.params?.prefix??"";return s({artifacts:n.list(t)})}catch(t){return i(t)}},head(e){try{let t=e.params?.key;return t?s({artifact:n.head(t)}):r("head requires params.key")}catch(t){return i(t)}},put(e){try{let t=e.params?.key,a=e.params?.contentType;if(!t)return r("put requires params.key");let o=e.body;if(typeof o=="string")return s({artifact:n.putText(t,o,a)});if(o&&typeof o=="object"&&typeof o.text=="string")return s({artifact:n.putText(t,o.text,a)});if(o&&typeof o=="object"&&Array.isArray(o.bytes)){let f=o.bytes,u=new Uint8Array(f.map(l=>Math.max(0,Math.min(255,Number(l)||0))));return s({artifact:n.putBytes(t,u,a)})}return r("put requires body as string, {text}, or {bytes:number[]}")}catch(t){return i(t)}},get(e){try{let t=e.params?.key,a=e.params?.as??"base64";if(!t)return r("get requires params.key");let o=n.head(t);if(!o)return r(`artifact "${t}" not found`);if(a==="text"){let u=n.getText(t);return u===null?r(`artifact "${t}" not found`):s({key:t,contentType:o.contentType,size:o.size,text:u})}let f=n.getBytes(t);return f===null?r(`artifact "${t}" not found`):s({key:t,contentType:o.contentType,size:o.size,bytes:[...f]})}catch(t){return i(t)}},del(e){try{let t=e.params?.key;return t?(n.remove(t),s({ok:!0})):r("del requires params.key")}catch(t){return i(t)}}}}function x(...n){return d.resolve(...n)}d.join(E.tmpdir(),".board-live-cards-git-bash-cache.json");function y(n,s,r){let i=n.indexOf(s),e=i!==-1?n[i+1]:void 0;if(!e)throw new Error(`Missing ${s}
2
- Usage: ${r}`);return e}function m(n,s){let r=n.indexOf(s);return r!==-1?n[r+1]:void 0}async function T(){let n=[];for await(let s of process.stdin)n.push(Buffer.isBuffer(s)?s:Buffer.from(s));return new Uint8Array(Buffer.concat(n))}var j=["artifacts-store \u2014 generic artifact CRUD on a blob-backed store",""," artifacts-store put --store-ref <ref> --key <key> [--file <path> | --text <text>] [--content-type <mime>]"," artifacts-store get --store-ref <ref> --key <key> [--out <path>] [--as text|bytes]"," artifacts-store head --store-ref <ref> --key <key>"," artifacts-store list --store-ref <ref> [--prefix <prefix>]"," artifacts-store del --store-ref <ref> --key <key>"].join(`
3
- `);async function L(n){let s=n[0],r=n.slice(1);if(!s||s==="help"||s==="--help"||s==="-h"){console.error(j);return}let i=y(r,"--store-ref",`artifacts-store ${s} --store-ref <b64-ref>`),e=k(i).value,t=_(F(v(e)));if(s==="put"){let a=y(r,"--key","artifacts-store put --store-ref <ref> --key <key>"),o=m(r,"--content-type"),f=m(r,"--file"),u=m(r,"--text"),l;if(f)l={bytes:[...new Uint8Array(c.readFileSync(f))]};else if(typeof u=="string")l={text:u};else if(!process.stdin.isTTY)l={bytes:[...await T()]};else throw new Error("put requires --file, --text, or stdin bytes");let g=t.put({params:{key:a,...o?{contentType:o}:{}},body:l});if(g.status!=="success")throw new Error(g.error||"put failed");process.stdout.write(JSON.stringify(g.data,null,2)+`
2
+ Usage: ${r}`);return e}function m(n,s){let r=n.indexOf(s);return r!==-1?n[r+1]:void 0}async function M(){let n=[];for await(let s of process.stdin)n.push(Buffer.isBuffer(s)?s:Buffer.from(s));return new Uint8Array(Buffer.concat(n))}var j=["artifacts-store \u2014 generic artifact CRUD on a blob-backed store",""," artifacts-store put --store-ref <ref> --key <key> [--file <path> | --text <text>] [--content-type <mime>]"," artifacts-store get --store-ref <ref> --key <key> [--out <path>] [--as text|bytes]"," artifacts-store head --store-ref <ref> --key <key>"," artifacts-store list --store-ref <ref> [--prefix <prefix>]"," artifacts-store del --store-ref <ref> --key <key>"].join(`
3
+ `);async function L(n){let s=n[0],r=n.slice(1);if(!s||s==="help"||s==="--help"||s==="-h"){console.error(j);return}let i=y(r,"--store-ref",`artifacts-store ${s} --store-ref <b64-ref>`),e=k(i).value,t=_(F(v(e)));if(s==="put"){let a=y(r,"--key","artifacts-store put --store-ref <ref> --key <key>"),o=m(r,"--content-type"),f=m(r,"--file"),u=m(r,"--text"),l;if(f)l={bytes:[...new Uint8Array(c.readFileSync(f))]};else if(typeof u=="string")l={text:u};else if(!process.stdin.isTTY)l={bytes:[...await M()]};else throw new Error("put requires --file, --text, or stdin bytes");let g=t.put({params:{key:a,...o?{contentType:o}:{}},body:l});if(g.status!=="success")throw new Error(g.error||"put failed");process.stdout.write(JSON.stringify(g.data,null,2)+`
4
4
  `);return}if(s==="get"){let a=y(r,"--key","artifacts-store get --store-ref <ref> --key <key>"),o=(m(r,"--as")||"bytes").toLowerCase(),f=m(r,"--out"),u=t.get({params:{key:a,as:o}});if(u.status!=="success")throw new Error(u.error||"get failed");if(o==="text"){let g=u.data.text??"";f?c.writeFileSync(f,g,"utf-8"):process.stdout.write(g);return}let l=new Uint8Array(u.data.bytes??[]);f?c.writeFileSync(f,Buffer.from(l)):process.stdout.write(JSON.stringify({...u.data,bytes:void 0,byteLength:l.byteLength},null,2)+`
5
5
  `);return}if(s==="head"){let a=y(r,"--key","artifacts-store head --store-ref <ref> --key <key>"),o=t.head({params:{key:a}});if(o.status!=="success")throw new Error(o.error||"head failed");process.stdout.write(JSON.stringify(o.data,null,2)+`
6
6
  `);return}if(s==="list"){let a=m(r,"--prefix")||"",o=t.list({params:a?{prefix:a}:{}});if(o.status!=="success")throw new Error(o.error||"list failed");process.stdout.write(JSON.stringify(o.data,null,2)+`
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import*as f from'fs';import*as i from'path';import {fileURLToPath}from'url';import*as y from'os';import'net';import'child_process';import'crypto';function m(...e){return i.resolve(...e)}i.join(y.tmpdir(),".board-live-cards-git-bash-cache.json");var p=i.dirname(fileURLToPath(import.meta.url)),E=i.join(p,"..","..","lib","index.js"),A=i.join(p,"..","..","lib","step-machine-public","index.js"),P=i.join(p,"..","..","lib","batch","index.js"),R=i.join(p,"execution-adapter.js"),{loadStepFlow:$,createStepMachine:C,MemoryStore:B}=await import(g(E).href),{buildStepHandlersForFlow:O}=await import(g(A).href),{batch:J}=await import(g(P).href),{invokeRefSync:M}=await import(g(R).href);function g(e){let n=i.resolve(e).replace(/\\/g,"/");return new URL(`file:///${n.startsWith("/")?n.slice(1):n}`)}async function F(e){let n=I(e);(n.help||e.length===0)&&(T(),process.exit(e.length===0?1:0));let{flowArg:a,itemsArg:r,concurrency:t}=n;if(!a)throw new Error("[batch-runner-cli] Flow path is required.");if(!r)throw new Error("[batch-runner-cli] --items <json-file-or-inline> is required.");let s=w(a),c=i.dirname(s),x=L(r),h=await $(s),l=await J(x,{concurrency:t,processor:async(o,_)=>{let v=O(h,{invoke:(b,S)=>M(U(b),S,{cliDir:c,cwd:c})});return C(h,v,{store:new B}).run(o)},onProgress:o=>{process.stderr.write(`\r[batch] ${o.completed+o.failed}/${o.total} (${o.percent}%) \u2014 ${o.active} active`);}});process.stderr.write("\r"+" ".repeat(80)+"\r"),console.log(JSON.stringify({completed:l.completed,failed:l.failed,total:l.total,durationMs:l.durationMs,items:l.items.map(o=>({index:o.index,status:o.status,durationMs:o.durationMs,...o.status==="completed"?{intent:o.result?.intent,data:o.result?.data}:{error:o.error?.message}}))},null,2)),l.failed>0&&process.exit(1);}function I(e){let n={},a=[],r=false;for(let t=0;t<e.length;t++){let s=e[t];if(s==="-h"||s==="--help"){r=true;continue}if(s==="--items"){let c=e[t+1];if(!c||c.startsWith("--"))throw new Error("[batch-runner-cli] Missing value for --items.");n["--items"]=c,t++;continue}if(s==="--concurrency"){let c=e[t+1];if(!c||c.startsWith("--"))throw new Error("[batch-runner-cli] Missing value for --concurrency.");n["--concurrency"]=c,t++;continue}if(s.startsWith("--"))throw new Error(`[batch-runner-cli] Unknown flag: ${s}`);a.push(s);}return {help:r,flowArg:a[0],itemsArg:n["--items"],concurrency:n["--concurrency"]?parseInt(n["--concurrency"],10):5}}function w(e){return i.isAbsolute(e)?e:i.resolve(process.cwd(),e)}function L(e){let n=w(e),a;f.existsSync(n)?a=f.readFileSync(n,"utf-8"):a=e;let r;try{r=JSON.parse(a);}catch(t){let s=t instanceof Error?t.message:String(t);throw new Error(`[batch-runner-cli] Failed to parse items JSON: ${s}`)}if(!Array.isArray(r))throw new Error("[batch-runner-cli] Items must be a JSON array of objects.");for(let t=0;t<r.length;t++)if(!r[t]||typeof r[t]!="object"||Array.isArray(r[t]))throw new Error(`[batch-runner-cli] Item at index ${t} is not a JSON object.`);return r}function U(e){if(!e||typeof e!="object"||typeof e.whatToRun!="string"||!e.whatToRun.startsWith("b64:"))return e;try{let n=e.whatToRun.slice(4),a=n+"=".repeat((4-n.length%4)%4),r=Buffer.from(a.replace(/-/g,"+").replace(/_/g,"/"),"base64").toString("utf8"),t=JSON.parse(r);return !t||typeof t!="object"||typeof t.value!="string"?e:{...e,whatToRun:t}}catch{return e}}function T(){console.error("Usage: batch-runner-cli <step-flow.yaml> --items <items.json> [--concurrency <n>]"),console.error(""),console.error("Run a step-machine flow for each item in a JSON array, with concurrency control."),console.error(""),console.error("Options:"),console.error(" --items <path|json> JSON file or inline JSON array of input objects"),console.error(" --concurrency <n> Max concurrent flows (default: 5)"),console.error(" -h, --help Show this help"),console.error(""),console.error("Example:"),console.error(" batch-runner-cli flow.yaml --items items.json --concurrency 3"),console.error(` batch-runner-cli flow.yaml --items '[{"a":1,"b":2},{"a":3,"b":4}]'`);}var N=process.argv[1]&&m(process.argv[1])===m(new URL(import.meta.url).pathname.replace(/^\/([A-Z]:)/,"$1"));N&&F(process.argv.slice(2)).catch(e=>{let n=e instanceof Error?e.stack??e.message:String(e);console.error(n),process.exit(1);});
2
+ import*as f from'fs';import*as i from'path';import {fileURLToPath}from'url';import*as y from'os';import'net';import'child_process';import'crypto';function m(...e){return i.resolve(...e)}i.join(y.tmpdir(),".board-live-cards-git-bash-cache.json");var p=i.dirname(fileURLToPath(import.meta.url)),E=i.join(p,"..","..","lib","index.js"),A=i.join(p,"..","..","lib","step-machine-public","index.js"),P=i.join(p,"..","..","lib","batch","index.js"),R=i.join(p,"execution-adapter.js"),{loadStepFlow:C,createStepMachine:$,MemoryStore:B}=await import(g(E).href),{buildStepHandlersForFlow:O}=await import(g(A).href),{batch:J}=await import(g(P).href),{invokeRefSync:M}=await import(g(R).href);function g(e){let n=i.resolve(e).replace(/\\/g,"/");return new URL(`file:///${n.startsWith("/")?n.slice(1):n}`)}async function F(e){let n=I(e);(n.help||e.length===0)&&(T(),process.exit(e.length===0?1:0));let{flowArg:a,itemsArg:r,concurrency:t}=n;if(!a)throw new Error("[batch-runner-cli] Flow path is required.");if(!r)throw new Error("[batch-runner-cli] --items <json-file-or-inline> is required.");let s=w(a),c=i.dirname(s),x=L(r),h=await C(s),l=await J(x,{concurrency:t,processor:async(o,_)=>{let b=O(h,{invoke:(v,S)=>M(U(v),S,{cliDir:c,cwd:c})});return $(h,b,{store:new B}).run(o)},onProgress:o=>{process.stderr.write(`\r[batch] ${o.completed+o.failed}/${o.total} (${o.percent}%) \u2014 ${o.active} active`);}});process.stderr.write("\r"+" ".repeat(80)+"\r"),console.log(JSON.stringify({completed:l.completed,failed:l.failed,total:l.total,durationMs:l.durationMs,items:l.items.map(o=>({index:o.index,status:o.status,durationMs:o.durationMs,...o.status==="completed"?{intent:o.result?.intent,data:o.result?.data}:{error:o.error?.message}}))},null,2)),l.failed>0&&process.exit(1);}function I(e){let n={},a=[],r=false;for(let t=0;t<e.length;t++){let s=e[t];if(s==="-h"||s==="--help"){r=true;continue}if(s==="--items"){let c=e[t+1];if(!c||c.startsWith("--"))throw new Error("[batch-runner-cli] Missing value for --items.");n["--items"]=c,t++;continue}if(s==="--concurrency"){let c=e[t+1];if(!c||c.startsWith("--"))throw new Error("[batch-runner-cli] Missing value for --concurrency.");n["--concurrency"]=c,t++;continue}if(s.startsWith("--"))throw new Error(`[batch-runner-cli] Unknown flag: ${s}`);a.push(s);}return {help:r,flowArg:a[0],itemsArg:n["--items"],concurrency:n["--concurrency"]?parseInt(n["--concurrency"],10):5}}function w(e){return i.isAbsolute(e)?e:i.resolve(process.cwd(),e)}function L(e){let n=w(e),a;f.existsSync(n)?a=f.readFileSync(n,"utf-8"):a=e;let r;try{r=JSON.parse(a);}catch(t){let s=t instanceof Error?t.message:String(t);throw new Error(`[batch-runner-cli] Failed to parse items JSON: ${s}`)}if(!Array.isArray(r))throw new Error("[batch-runner-cli] Items must be a JSON array of objects.");for(let t=0;t<r.length;t++)if(!r[t]||typeof r[t]!="object"||Array.isArray(r[t]))throw new Error(`[batch-runner-cli] Item at index ${t} is not a JSON object.`);return r}function U(e){if(!e||typeof e!="object"||typeof e.whatToRun!="string"||!e.whatToRun.startsWith("b64:"))return e;try{let n=e.whatToRun.slice(4),a=n+"=".repeat((4-n.length%4)%4),r=Buffer.from(a.replace(/-/g,"+").replace(/_/g,"/"),"base64").toString("utf8"),t=JSON.parse(r);return !t||typeof t!="object"||typeof t.value!="string"?e:{...e,whatToRun:t}}catch{return e}}function T(){console.error("Usage: batch-runner-cli <step-flow.yaml> --items <items.json> [--concurrency <n>]"),console.error(""),console.error("Run a step-machine flow for each item in a JSON array, with concurrency control."),console.error(""),console.error("Options:"),console.error(" --items <path|json> JSON file or inline JSON array of input objects"),console.error(" --concurrency <n> Max concurrent flows (default: 5)"),console.error(" -h, --help Show this help"),console.error(""),console.error("Example:"),console.error(" batch-runner-cli flow.yaml --items items.json --concurrency 3"),console.error(` batch-runner-cli flow.yaml --items '[{"a":1,"b":2},{"a":3,"b":4}]'`);}var N=process.argv[1]&&m(process.argv[1])===m(new URL(import.meta.url).pathname.replace(/^\/([A-Z]:)/,"$1"));N&&F(process.argv.slice(2)).catch(e=>{let n=e instanceof Error?e.stack??e.message:String(e);console.error(n),process.exit(1);});
3
3
  export{F as cli};//# sourceMappingURL=batch-runner-cli.js.map
4
4
  //# sourceMappingURL=batch-runner-cli.js.map