yaml-flow 8.2.0 → 8.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/asset-integrity.json +3 -3
- package/browser/board-livecards-client.js +1 -1
- package/browser/board-livecards-localstorage.js +4 -6
- package/cli/{board-live-cards-lib-tjYsPt5U.d.ts → board-live-cards-lib-Iq_XAC09.d.ts} +1 -1
- package/cli/browser-api/board-live-cards-browser-adapter.d.ts +4 -3
- package/cli/browser-api/board-live-cards-browser-adapter.js +2 -2
- package/cli/browser-api/card-store-browser-api.d.ts +1 -1
- package/cli/node/artifacts-store-cli.js +8 -8
- package/cli/node/board-live-cards-cli.js +8 -8
- package/cli/node/fs-board-adapter.d.ts +6 -33
- package/cli/node/fs-board-adapter.js +10 -8
- package/cli/node/step-machine-cli.js +2 -2
- package/cli/{types-CSiGbY__.d.ts → types--rXGWbSR.d.ts} +76 -4
- package/examples/board/.board-ws/cards/store/_index.json +17 -0
- package/examples/board/.board-ws/cards/store/card-market-prices.json +80 -0
- package/examples/board/.board-ws/cards/store/card-portfolio-value.json +90 -0
- package/examples/board/.board-ws/cards/store/card-portfolio.json +78 -0
- package/examples/board/cards/cardT-market-prices.json +6 -4
- package/examples/board/cards/cardT-portfolio-value.json +10 -38
- package/examples/board/cards/cardT-portfolio.json +9 -4
- package/examples/board/demo-shell-with-server.html +3 -3
- package/examples/board/server/board-server.js +593 -0
- package/examples/board/server/board-worker/source-def-flows/mock-handler/mock-db.js +13 -0
- package/examples/board/server/board-worker/source-def-flows/sqlite-handler/.retain/compliance.db +0 -0
- package/examples/board/server/board-worker/source-def-flows/sqlite-handler/.retain/optimus.db +0 -0
- package/examples/board/server/board-worker/source-def-flows/sqlite-handler/query.cjs +51 -0
- package/examples/board/server/board-worker/source-def-flows/sqlite-handler/seed-cpm.cjs +197 -0
- package/examples/board/server/board-worker/source-def-flows/sqlite-handler/seed-cpmV2.cjs +128 -0
- package/examples/board/server/board-worker/source-def-flows/sqlite-handler/seed-optimus.cjs +352 -0
- package/examples/board/server/board-worker/source-def-flows/sqlite-handler/sqlite-config.json +3 -0
- package/examples/board/server/board-worker/source-def-flows/sqlite-handler/sqlite-handler.js +84 -0
- package/examples/board/{source-def-flows/url.flow.json → server/board-worker/source-def-flows/sqlite.flow.json} +7 -7
- package/examples/board/{source-def-handlers → server/board-worker/source-def-flows/url-handler}/http-source-handler.js +29 -21
- package/examples/board/server/board-worker/source-def-flows/url.flow.json +73 -0
- package/examples/board/{source_def_flows.json → server/board-worker/source_def_flows.json} +61 -115
- package/examples/board/server/board-worker/task-executor.js +475 -0
- package/examples/board/server/chat-flow/chat-clear-processing.js +41 -0
- package/examples/board/server/chat-flow/chat-open-turn.js +144 -0
- package/examples/board/server/chat-flow/chat-write-assistant.js +44 -0
- package/examples/board/server/chat-flow/copilot-chat/assistant.js +253 -0
- package/examples/board/server/chat-flow/echo-probe/assistant.js +28 -0
- package/examples/board/server/chat-flow/flow-steps.json +167 -0
- package/examples/board/server-config.json +22 -0
- package/examples/board/test/server-http-test.js +707 -0
- package/examples/board/test/{portfolio-tracker-sse-worker.js → sse-worker.js} +9 -8
- package/examples/board-local/demo-shell-localstorage.html +3 -3
- package/lib/{artifacts-store-lib-public-DfU9t5-S.d.cts → artifacts-store-lib-public-C5UL5tyG.d.cts} +3 -31
- package/lib/{artifacts-store-lib-public-BPW_C15z.d.ts → artifacts-store-lib-public-GD4H-fFp.d.ts} +3 -31
- package/lib/artifacts-store-public.d.cts +3 -3
- package/lib/artifacts-store-public.d.ts +3 -3
- package/lib/board-live-cards-node.cjs +10 -8
- package/lib/board-live-cards-node.d.cts +9 -8
- package/lib/board-live-cards-node.d.ts +9 -8
- package/lib/board-live-cards-node.js +10 -8
- package/lib/{board-live-cards-public-W2zK59m0.d.cts → board-live-cards-public-BLXbcBNk.d.cts} +1 -1
- package/lib/{board-live-cards-public-B8b_0k_j.d.ts → board-live-cards-public-BZaNb2mi.d.ts} +1 -1
- package/lib/board-live-cards-public.d.cts +2 -2
- package/lib/board-live-cards-public.d.ts +2 -2
- package/lib/board-live-cards-server-runtime.cjs +4 -6
- package/lib/board-live-cards-server-runtime.d.cts +3 -3
- package/lib/board-live-cards-server-runtime.d.ts +3 -3
- package/lib/board-live-cards-server-runtime.js +4 -6
- package/lib/board-livegraph-runtime/index.cjs +2 -2
- package/lib/board-livegraph-runtime/index.js +2 -2
- package/lib/card-store-public.d.cts +2 -2
- package/lib/card-store-public.d.ts +2 -2
- package/lib/execution-refs.cjs +1 -1
- package/lib/execution-refs.js +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.cts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/server-runtime/index.cjs +4 -6
- package/lib/server-runtime/index.d.cts +4 -4
- package/lib/server-runtime/index.d.ts +4 -4
- package/lib/server-runtime/index.js +4 -6
- package/lib/step-machine-public/index.d.cts +1 -1
- package/lib/step-machine-public/index.d.ts +1 -1
- package/lib/{storage-interface-BhAON-gW.d.cts → storage-interface-B6ecOulj.d.cts} +25 -3
- package/lib/{storage-interface-BhAON-gW.d.ts → storage-interface-B6ecOulj.d.ts} +25 -3
- package/lib/stores/index.d.cts +1 -1
- package/lib/stores/index.d.ts +1 -1
- package/lib/stores/kv.d.cts +1 -1
- package/lib/stores/kv.d.ts +1 -1
- package/lib/{types-seTI8zta.d.cts → types-Bztd1KoK.d.cts} +55 -3
- package/lib/{types-Bm7IFD7r.d.ts → types-D-xVWPdY.d.ts} +55 -3
- package/package.json +1 -1
- package/examples/board/demo-chat-copilot.flow.json +0 -38
- package/examples/board/demo-chat-copilot.js +0 -185
- package/examples/board/demo-chat-echo.flow.json +0 -38
- package/examples/board/demo-chat-echo.js +0 -92
- package/examples/board/demo-server-config.copilot-chat.json +0 -10
- package/examples/board/demo-server-config.json +0 -10
- package/examples/board/demo-server.js +0 -629
- package/examples/board/demo-task-executor.js +0 -721
- package/examples/board/gandalf-cards/card-source-kinds.json +0 -36
- package/examples/board/gandalf-cards/cards/_index.json +0 -7
- package/examples/board/gandalf-cards/cards/card-source-kinds.json +0 -64
- package/examples/board/scripts/copilot_wrapper.bat +0 -157
- package/examples/board/scripts/copilot_wrapper_helper.ps1 +0 -190
- package/examples/board/scripts/workiq_wrapper.mjs +0 -66
- package/examples/board/source-def-flows/copilot.flow.json +0 -33
- package/examples/board/source-def-flows/url-list.flow.json +0 -33
- package/examples/board/source-def-flows/workiq.flow.json +0 -34
- package/examples/board/source-def-handlers/copilot-source-handler.js +0 -141
- package/examples/board/test/demo-http-test.js +0 -362
- /package/examples/board/{source-def-flows → server/board-worker/source-def-flows}/mock.flow.json +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
2
|
-
export{
|
|
1
|
+
var p="b64:";function T(t){let r=new TextEncoder().encode(t),i=globalThis.Buffer,o;if(i)o=i.from(r).toString("base64");else if(typeof btoa=="function"){let n="";for(let a of r)n+=String.fromCharCode(a);o=btoa(n);}else throw new Error("No base64 encoder available in this runtime");return o.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function B(t){let r=t.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-t.length%4)%4),i=globalThis.Buffer;if(i)return i.from(r,"base64").toString("utf8");if(typeof atob=="function"){let o=atob(r),n=new Uint8Array(o.length);for(let a=0;a<o.length;a+=1)n[a]=o.charCodeAt(a);return new TextDecoder().decode(n)}throw new Error("No base64 decoder available in this runtime")}function g(t){return `${p}${T(JSON.stringify(t))}`}function d(t){if(!t.startsWith(p))throw new Error(`Invalid ref format (expected ${p}<base64url(json)>): ${t}`);let r;try{r=JSON.parse(B(t.slice(p.length)));}catch{throw new Error(`Invalid ref format (malformed base64url/json): ${t}`)}if(!r||typeof r!="object")throw new Error(`Invalid ref format (expected object payload): ${t}`);let i=r;if(typeof i.kind!="string"||typeof i.value!="string")throw new Error(`Invalid ref format (payload must contain string kind/value): ${t}`);return {kind:i.kind,value:i.value}}function S(t){return String(t).replace(/[^a-zA-Z0-9_-]/g,"_")}function k(t){let r=t.payload??{};return {id:t.id,role:typeof r.role=="string"?r.role:"system",text:typeof r.text=="string"?r.text:"",files:Array.isArray(r.files)?r.files:[],updated_at:typeof r.updated_at=="string"?r.updated_at:""}}function v(t,r){let i=n=>`chats/${S(n)}/processing`,o=n=>`chats/${S(n)}/config`;return {append(n,a,e,l=[]){return t(n).append({role:a,text:e,files:l,updated_at:new Date().toISOString()}).id},readAll(n){return t(n).readAll().map(k)},readAfter(n,a){let e=t(n).readAfter(a);return {records:e.entries.map(k),cursor:e.newCursor}},clear(n){t(n).clear?.();},setProcessing(n,a){a?r.write(i(n),true):r.delete(i(n));},isProcessing(n){return r.read(i(n))===true},getConfig(n){return r.read(o(n))??{}},setConfig(n,a){let e=r.read(o(n))??{};r.write(o(n),{...e,...a});}}}function w(t){if(t==null||typeof t!="object")return JSON.stringify(t);if(Array.isArray(t))return `[${t.map(w).join(",")}]`;let r=t;return `{${Object.keys(r).sort().map(o=>`${JSON.stringify(o)}:${w(r[o])}`).join(",")}}`}function y(t,r){let i=r>>>0;for(let o=0;o<t.length;o++)i^=t.charCodeAt(o),i=Math.imul(i,16777619)>>>0;return i}function x(t){let r=w(t),i=y(r,2166136261),o=y(r,3735928559),n=y(r,19088743),a=y(r,4277009102);return [i,o,n,a].map(e=>e.toString(16).padStart(8,"0")).join("")}function m(t){function r(a){return `${t}:blob:${a}`}let i=new TextEncoder;function o(a){if(typeof btoa=="function"){let e="";for(let l=0;l<a.length;l++)e+=String.fromCharCode(a[l]);return btoa(e)}return ""}function n(a){if(typeof atob=="function"){let e=atob(a),l=new Uint8Array(e.length);for(let s=0;s<e.length;s++)l[s]=e.charCodeAt(s);return l}return new Uint8Array}return {read(a){return globalThis.localStorage.getItem(r(a))},write(a,e){globalThis.localStorage.setItem(r(a),e);},exists(a){return globalThis.localStorage.getItem(r(a))!==null},remove(a){globalThis.localStorage.removeItem(r(a));},readBytes(a){let e=globalThis.localStorage.getItem(r(a));if(e===null)return null;try{let l=JSON.parse(e);if(l&&l.__kind==="bytes-b64"&&typeof l.data=="string")return n(l.data)}catch{}return i.encode(e)},writeBytes(a,e){let l=JSON.stringify({__kind:"bytes-b64",data:o(e)});globalThis.localStorage.setItem(r(a),l);},listKeys(a){let e=r(a??""),l=[];for(let s=0;s<globalThis.localStorage.length;s++){let c=globalThis.localStorage.key(s);c&&c.startsWith(e)&&l.push(c.slice(r("").length));}return l.sort()},stat(a){let e=globalThis.localStorage.getItem(r(a));if(e===null)return null;let l=i.encode(e).byteLength;try{let s=JSON.parse(e);s&&s.__kind==="bytes-b64"&&typeof s.data=="string"&&(l=n(s.data).byteLength);}catch{}return {key:a,size:l}}}}function h(t){function r(i){return `${t}:kv:${i}`}return {read(i){let o=globalThis.localStorage.getItem(r(i));if(o===null)return null;try{return JSON.parse(o)}catch{return null}},write(i,o){globalThis.localStorage.setItem(r(i),JSON.stringify(o));},delete(i){globalThis.localStorage.removeItem(r(i));},listKeys(i){let o=r(i??""),n=[];for(let a=0;a<globalThis.localStorage.length;a++){let e=globalThis.localStorage.key(a);e!==null&&e.startsWith(o)&&n.push(e.slice(r("").length));}return n}}}function C(t){function r(){let o=globalThis.localStorage.getItem(t);if(!o)return [];try{return JSON.parse(o)}catch{return []}}function i(o){globalThis.localStorage.setItem(t,JSON.stringify(o));}return {readAllEntries(){return r()},appendEntry(o){let n=r();n.push(o),i(n);},generateId(){return globalThis.crypto.randomUUID()}}}function $(){let t=false;return {tryAcquire(){return t?null:(t=true,()=>{t=false;})}}}function E(t){return String(t).replace(/[^a-zA-Z0-9_-]/g,"_")}function j(t){function r(){let o=globalThis.localStorage.getItem(t);if(!o)return [];try{return JSON.parse(o)}catch{return []}}function i(o){globalThis.localStorage.setItem(t,JSON.stringify(o));}return {append(o){let n={id:globalThis.crypto.randomUUID(),payload:o},a=r();return a.push(n),i(a),n},readAll(){return r()},readAfter(o){let n=r();if(!o)return {entries:n,newCursor:n.length>0?n[n.length-1].id:null};let a=n.findIndex(l=>l.id===o),e=a===-1?n:n.slice(a+1);return {entries:e,newCursor:e.length>0?e[e.length-1].id:o}},clear(){globalThis.localStorage.removeItem(t);}}}function L(t){return v(r=>j(`${t}:chat:journal:${E(r)}`),h(`${t}:chat`))}var R=new Map;function A(t){let r=R.get(t);if(!r){let i=new Set;r={publish(o){for(let n of i)n(o);},subscribe(o){return i.add(o),()=>{i.delete(o);}}},R.set(t,r);}return r}function M(){return {async subscribe(t,r){return t.kind!=="in-memory-bus"?(console.warn(`[in-memory-transport] unsupported kind: ${t.kind}`),()=>{}):A(t.value).subscribe(o=>{let n=o;if(n&&n.kind==="notification-batch"&&Array.isArray(n.notifications)){for(let a of n.notifications)r(a);return}r(o);})}}}function V(t,r){let i=r?.callbackBaseUrl?{meta:"board-live-cards",howToRun:"http:post",whatToRun:r.callbackBaseUrl}:{meta:"board-live-cards",howToRun:"in-browser",whatToRun:g({kind:"in-browser",value:t})},o=new Map,n=new Map,a=$();return {kvStorage:e=>h(`${t}:${e}`),blobStorage:e=>m(e?`${t}:${e}`:t),journalAdapter:()=>C(`${t}:journal`),lock:a,selfRef:i,async dispatchExecution(e,l){if(e.howToRun==="http:post")try{let s=e.whatToRun,c=typeof s=="object"?s.value:d(s).value,u=await fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});return u.ok?{dispatched:!0}:{dispatched:!1,error:`HTTP ${u.status}: ${u.statusText}`}}catch(s){return {dispatched:false,error:s instanceof Error?s.message:String(s)}}if(e.howToRun==="http:get")try{let s=e.whatToRun,c=typeof s=="object"?s.value:d(s).value,u=new URLSearchParams(Object.entries(l).filter(([,f])=>f!=null).map(([f,I])=>[f,String(I)])),J=`${c}?${u.toString()}`,b=await fetch(J);return b.ok?{dispatched:!0}:{dispatched:!1,error:`HTTP ${b.status}: ${b.statusText}`}}catch(s){return {dispatched:false,error:s instanceof Error?s.message:String(s)}}if(e.howToRun==="in-browser"){let s=e.whatToRun,c=typeof s=="object"?s.value:d(s).value,u=o.get(c);return u?u(e,l):{dispatched:false,error:`No in-browser handler registered for: ${c}`}}return {dispatched:false,error:`Browser adapter: unsupported dispatch kind (got: ${e.howToRun})`}},resolveBlob(e){if(e.kind==="in-memory"){let c=n.get(e.value);if(c==null)throw new Error(`resolveBlob: in-memory blob not found: ${g(e)}`);return c}let s=m(t).read(e.value);if(s===null)throw new Error(`resolveBlob: blob not found: ${g(e)}`);return s},hashFn:x,genId:()=>globalThis.crypto.randomUUID().replace(/-/g,""),kvStorageForRef:e=>h(d(e).value),publishBoardChangeNotifications(e){if(!r?.notifyChannel||e.length===0)return;A(r.notifyChannel).publish({kind:"notification-batch",notifications:e});},onWarn:r?.onWarn,registerHandler(e,l){o.set(e,l);},writeMemoryBlob(e,l){return n.set(e,l),g({kind:"in-memory",value:e})}}}
|
|
2
|
+
export{V as createBrowserBoardPlatformAdapter,M as createInMemoryNotificationTransport,L as createLocalStorageChatStorage,A as getInMemoryNotificationBus};//# sourceMappingURL=board-live-cards-browser-adapter.js.map
|
|
3
3
|
//# sourceMappingURL=board-live-cards-browser-adapter.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import*as c from'fs';import*as
|
|
2
|
-
Usage: ${
|
|
3
|
-
`);async function
|
|
4
|
-
`);return}if(s==="get"){let
|
|
5
|
-
`);return}if(s==="head"){let
|
|
6
|
-
`);return}if(s==="list"){let
|
|
7
|
-
`);return}if(s==="del"||s==="delete"||s==="rm"){let
|
|
1
|
+
import*as c from'fs';import*as d from'path';import {randomUUID}from'crypto';import'proper-lockfile';import*as j from'os';import'net';import'url';import'child_process';var S="b64:";function $(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(S))throw new Error(`Invalid ref format (expected ${S}<base64url(json)>): ${n}`);let s;try{s=JSON.parse($(n.slice(S.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 v(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 A(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"),v(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)),v(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 E(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 w(...n){return d.resolve(...n)}d.join(j.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 B=["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(B);return}let i=y(r,"--store-ref",`artifacts-store ${s} --store-ref <b64-ref>`),e=k(i).value,t=E(F(A(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 p=t.put({params:{key:a,...o?{contentType:o}:{}},body:l});if(p.status!=="success")throw new Error(p.error||"put failed");process.stdout.write(JSON.stringify(p.data,null,2)+`
|
|
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 p=u.data.text??"";f?c.writeFileSync(f,p,"utf-8"):process.stdout.write(p);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
|
+
`);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
|
+
`);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)+`
|
|
7
|
+
`);return}if(s==="del"||s==="delete"||s==="rm"){let a=y(r,"--key","artifacts-store del --store-ref <ref> --key <key>"),o=t.del({params:{key:a}});if(o.status!=="success")throw new Error(o.error||"del failed");process.stdout.write(JSON.stringify(o.data,null,2)+`
|
|
8
8
|
`);return}throw new Error(`Unknown command "${s}"
|
|
9
9
|
|
|
10
|
-
${
|
|
10
|
+
${B}`)}var O=process.argv[1]&&w(process.argv[1])===w(new URL(import.meta.url).pathname.replace(/^\/([A-Z]:)/,"$1"));O&&L(process.argv.slice(2)).catch(n=>{let s=n instanceof Error?n.message:String(n);console.error(s),process.exit(1);});export{L as cli};//# sourceMappingURL=artifacts-store-cli.js.map
|
|
11
11
|
//# sourceMappingURL=artifacts-store-cli.js.map
|