workspai 0.78.0 → 0.79.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +117 -236
  2. package/contracts/create-planner-capabilities.v1.json +1 -1
  3. package/dist/analyze-SKOIUD6F.js +1 -0
  4. package/dist/autopilot-release-E7ADQH2B.js +1 -0
  5. package/dist/{chunk-5FVREPQC.js → chunk-2ZVE7VE2.js} +1 -1
  6. package/dist/{chunk-4KAYWMNE.js → chunk-3O344BX3.js} +1 -1
  7. package/dist/{chunk-HMWZWT7B.js → chunk-5MRDPZU7.js} +1 -1
  8. package/dist/{chunk-RJESUJQF.js → chunk-5NS322HT.js} +28 -28
  9. package/dist/{chunk-B6FJ6RG6.js → chunk-6CZQXEZ7.js} +1 -1
  10. package/dist/{chunk-75WJOYWT.js → chunk-CAGOLU4Q.js} +1 -1
  11. package/dist/{chunk-2CUT4GLE.js → chunk-DYSFGHV5.js} +1 -1
  12. package/dist/{chunk-4AAXIWYY.js → chunk-ETTZXKAS.js} +1 -1
  13. package/dist/{chunk-FLAGHVSH.js → chunk-FJMUBFXO.js} +1 -1
  14. package/dist/{chunk-RHF2IZOW.js → chunk-GIP7YFWR.js} +1 -1
  15. package/dist/{chunk-YWC5MKIL.js → chunk-IF2OWXNY.js} +1 -1
  16. package/dist/{chunk-UVIBPWOG.js → chunk-L3O2QXKH.js} +2 -2
  17. package/dist/{chunk-ONUFNCRN.js → chunk-LQYMYRGI.js} +1 -1
  18. package/dist/{chunk-YHQK4S3H.js → chunk-MJYWGRCY.js} +1 -1
  19. package/dist/{chunk-MN5S462C.js → chunk-MNZAJ6PP.js} +1 -1
  20. package/dist/{chunk-VRZAN3WS.js → chunk-NZQKHGPE.js} +1 -1
  21. package/dist/{chunk-QDM6TWFK.js → chunk-O4TZKLEC.js} +1 -1
  22. package/dist/{chunk-5OKNWBAN.js → chunk-R7R5FX4B.js} +1 -1
  23. package/dist/{chunk-HB3ZYG2Z.js → chunk-RRZQPFFR.js} +69 -60
  24. package/dist/{chunk-VEMGICT4.js → chunk-SKHRUHXO.js} +1 -1
  25. package/dist/{chunk-AMGIXK6Z.js → chunk-TQW2SZHH.js} +1 -1
  26. package/dist/{chunk-TJRVWVAZ.js → chunk-U5WP4HDH.js} +1 -1
  27. package/dist/{chunk-QMNJTI65.js → chunk-VT4WPXTO.js} +1 -1
  28. package/dist/chunk-WJKQTX4V.js +2 -0
  29. package/dist/{chunk-MD4CHXV3.js → chunk-WU5M6UP7.js} +1 -1
  30. package/dist/{chunk-IQJL3LBM.js → chunk-ZONAHZBG.js} +1 -1
  31. package/dist/{chunk-ZQ36CTLF.js → chunk-ZXYTWF2R.js} +1 -1
  32. package/dist/{create-WB5YQ7C6.js → create-2ETTECFU.js} +1 -1
  33. package/dist/{doctor-HOSHQ7II.js → doctor-3F7OUVYQ.js} +1 -1
  34. package/dist/{goal-interactive-selection-6YJOK4WC.js → goal-interactive-selection-EMHAM5TM.js} +1 -1
  35. package/dist/{goal-lifecycle-UEJMTUFV.js → goal-lifecycle-PR5O7T6B.js} +1 -1
  36. package/dist/{goal-pack-YGZMG3RQ.js → goal-pack-TEK2PHAV.js} +1 -1
  37. package/dist/index.js +159 -159
  38. package/dist/{pipeline-Z4JOJ4PX.js → pipeline-E6YY65GU.js} +1 -1
  39. package/dist/{project-agent-entry-ZMDQWJ6I.js → project-agent-entry-MXAHZSQR.js} +1 -1
  40. package/dist/{project-intelligence-lens-FSWQKY3E.js → project-intelligence-lens-IUM66OV2.js} +1 -1
  41. package/dist/{proof-carrying-change-M2RNYQ7E.js → proof-carrying-change-XA5HRGSB.js} +1 -1
  42. package/dist/{verified-goal-UAUCEDZZ.js → verified-goal-V5OVULY7.js} +1 -1
  43. package/dist/{workspace-J5QYWAE3.js → workspace-XVPKQG5W.js} +1 -1
  44. package/dist/{workspace-agent-sync-GLG36KQZ.js → workspace-agent-sync-46L7ZOQQ.js} +1 -1
  45. package/dist/{workspace-context-BZV4ZFKZ.js → workspace-context-VVZARI5K.js} +1 -1
  46. package/dist/{workspace-contract-XDNIB5JX.js → workspace-contract-N2BJCAJ7.js} +1 -1
  47. package/dist/{workspace-explain-V3XDMONQ.js → workspace-explain-5WKK6ENK.js} +1 -1
  48. package/dist/{workspace-foundation-EDTKW2RB.js → workspace-foundation-PZNZWUJ4.js} +1 -1
  49. package/dist/{workspace-graph-stream-UPASFCAF.js → workspace-graph-stream-26ME2JJS.js} +1 -1
  50. package/dist/{workspace-intelligence-24MZRG2S.js → workspace-intelligence-ZTET7JHS.js} +1 -1
  51. package/dist/{workspace-intelligence-runner-HISKHQLG.js → workspace-intelligence-runner-NZFRFCPN.js} +1 -1
  52. package/dist/{workspace-knowledge-graph-5EECTGXQ.js → workspace-knowledge-graph-4RSZTEFJ.js} +1 -1
  53. package/dist/workspace-knowledge-graph-snapshot-UTJHALST.js +1 -0
  54. package/dist/{workspace-mcp-serve-S3TWO4RI.js → workspace-mcp-serve-TIYCW364.js} +1 -1
  55. package/dist/{workspace-model-J757KSDE.js → workspace-model-LBICKRVI.js} +1 -1
  56. package/dist/{workspace-onboarding-3TLME4HP.js → workspace-onboarding-WUO6KCLF.js} +1 -1
  57. package/dist/{workspace-registry-summary-ZC5CFZXP.js → workspace-registry-summary-3PXZENLC.js} +1 -1
  58. package/dist/{workspace-repair-engine-C26C7OIB.js → workspace-repair-engine-V4Z7TJGS.js} +1 -1
  59. package/dist/workspace-run-T65CCZIN.js +1 -0
  60. package/dist/{workspace-verify-KFBWQ37C.js → workspace-verify-UQWAFGNQ.js} +1 -1
  61. package/dist/{workspace-watch-LNP5JPD4.js → workspace-watch-BKIZQ2SM.js} +1 -1
  62. package/docs/README.md +48 -116
  63. package/docs/agent-framework-adapters.md +32 -26
  64. package/docs/ci-workflows.md +8 -2
  65. package/docs/commands-reference.md +13 -12
  66. package/docs/create-planner-capabilities.md +1 -1
  67. package/docs/creating-workspaces-and-projects.md +29 -22
  68. package/docs/model-gateways.md +23 -23
  69. package/package.json +2 -2
  70. package/dist/analyze-X76YV667.js +0 -1
  71. package/dist/autopilot-release-6OV2FLRS.js +0 -1
  72. package/dist/chunk-3PGXGAHC.js +0 -2
  73. package/dist/workspace-knowledge-graph-snapshot-T6ZJGWLC.js +0 -1
  74. package/dist/workspace-run-2KBTMGG7.js +0 -1
  75. /package/dist/{chunk-QLHRGWUW.js → chunk-GOOY7I36.js} +0 -0
@@ -1,2 +0,0 @@
1
- import {b as b$1}from'./chunk-B6FJ6RG6.js';import {N,M,k as k$1,q as q$1,G,I,O as O$1}from'./chunk-HB3ZYG2Z.js';import {c}from'./chunk-7HV4U2OV.js';import {e,f as f$1}from'./chunk-EFHSRPW7.js';import {b}from'./chunk-UJXE4UAX.js';import {m,l}from'./chunk-VQZ5PI5J.js';import {promises}from'fs';import c$1 from'path';import L,{homedir}from'os';import {pathToFileURL}from'url';import p from'process';import ie from'fs-extra';var y={schemaVersion:"workspai.model-gateway-qualification.v1",workspaiReleaseAuthority:"source-ready",attach:"unsupported",adapters:[{adapterId:"openrouter-typescript",status:"source-ready",platforms:[]},{adapterId:"openrouter-python",status:"source-ready",platforms:[]}]};var R=["ubuntu-latest","macos-latest","windows-latest"];function B(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Model gateway qualification document must be an object.");let t=e;if(!Array.isArray(t.adapters)||t.adapters.length===0)throw new Error("Model gateway qualification document contains no adapters.");let r=new Set;for(let a of t.adapters){if(!a||typeof a.adapterId!="string")throw new Error("Model gateway qualification adapter is missing adapterId.");if(r.has(a.adapterId))throw new Error(`Duplicate model gateway qualification adapter: ${a.adapterId}`);r.add(a.adapterId);let n=N(a.adapterId);if(!n)throw new Error(`Qualification adapter ${a.adapterId} is not in the version baseline.`);if(a.status!=="source-ready"&&a.status!=="qualified")throw new Error(`Invalid qualification status for ${a.adapterId}.`);if(!Array.isArray(a.platforms))throw new Error(`Qualification platforms missing for ${a.adapterId}.`);if(a.status==="source-ready"){if(a.platforms.length!==0)throw new Error(`Source-ready adapter ${a.adapterId} must not record platform qualification.`);continue}let s=new Set;for(let o of a.platforms){if(!o||!R.includes(o.os)||o.result!=="pass"||o.skippedRequiredStage!==false||o.sdkVersion!==n.sdkVersion)throw new Error(`Qualified adapter ${a.adapterId} is missing a valid platform record bound to ${n.sdkVersion}.`);if(s.has(o.os))throw new Error(`Duplicate platform ${o.os} for ${a.adapterId}.`);s.add(o.os);}for(let o of R)if(!s.has(o))throw new Error(`Qualified adapter ${a.adapterId} is missing ${o} evidence.`)}for(let a of M)if(!r.has(a.adapterId))throw new Error(`Baseline adapter ${a.adapterId} has no qualification record.`);let i=t.adapters.every(a=>a.status==="qualified");if(i)throw new Error("All adapters are qualified; release authority must match.")}B(y);var f=y,W=Object.freeze({schemaVersion:f.schemaVersion,workspaiReleaseAuthority:f.workspaiReleaseAuthority,attach:f.attach,adapters:Object.freeze(f.adapters.map(e=>Object.freeze({...e,platforms:Object.freeze(e.platforms.map(t=>Object.freeze(t)))})))}),z=W.workspaiReleaseAuthority;function K(e){return `${e} \xB7 ${z}`}var w=["backend","frontend","desktop","agent","gateway","extension","gaming"],J=[{id:"backend",label:"Backend",hint:"APIs and services"},{id:"frontend",label:"Frontend",hint:"Web applications"},{id:"desktop",label:"Desktop",hint:"Native desktop applications"},{id:"agent",label:"AI Agent",hint:"Governed agent runtimes"},{id:"gateway",label:"AI Gateway",hint:"Unified model access and routing"},{id:"extension",label:"Extension",hint:"Editor and platform extensions"},{id:"gaming",label:"Gaming",hint:"Game runtimes and tooling"}];function X(e){let r=e.label.indexOf(" \u2014 ");return r>=0?e.label.slice(r+3).trim():e.label.trim()}function Z(e){return w.includes(e.category)?e.category:null}function T(e){let t=c().flatMap(o=>{let l=Z(o);return l?[{value:o.id,label:`${D(l)} \xB7 ${X(o)}`,hint:`${o.runtime} \xB7 tested baseline`,name:o.label,category:l}]:[]}),r=k$1().map(o=>({value:o.kitId,label:`Frontend \xB7 ${o.displayName}`,hint:"official \xB7 latest stable",name:`${o.displayName} \u2014 ${o.framework}`,category:"frontend"})),i=q$1().map(o=>({value:o.kitId,label:`${D(o.category)} \xB7 ${o.displayName}`,hint:`${o.runtimeCandidates.join(" + ")} \xB7 official latest stable`,name:`${o.displayName} \u2014 ${o.category}`,category:o.category})),a=G().map(o=>({value:o.id,label:`AI Agent \xB7 ${o.label}`,hint:`${o.runtime} \xB7 ${I(o)?"release-admitted baseline":`${o.stability} \xB7 awaiting release admission`}`,name:o.label,category:"agent"})),n=O$1().map(o=>({value:o.id,label:`AI Gateway \xB7 ${o.label}`,hint:K(o.runtime),name:o.label,category:"gateway"})),s=[...t,...r,...i,...a,...n].filter(o=>!e||o.category===e).sort((o,l)=>{let Q=w.indexOf(o.category),V=w.indexOf(l.category);return Q-V||(o.label??"").localeCompare(l.label??"")});return O(s),s}function Ae(){let e=new Set(T().map(t=>t.category));return J.filter(t=>e.has(t.id)).map(t=>({value:t.id,label:t.label,hint:t.hint}))}function D(e){return e.charAt(0).toUpperCase()+e.slice(1)}function O(e){let t=new Set,r=new Set;for(let i of e){let a=i.label??i.name??String(i.value),n=String(i.value);if(t.has(a))throw new Error(`Duplicate kit picker label: ${a}`);if(r.has(n))throw new Error(`Duplicate kit picker value: ${n}`);t.add(a),r.add(n);}}var te=".workspairc.json",oe=".rapidkitrc.json",re=["workspai.config.js","workspai.config.mjs","workspai.config.cjs","rapidkit.config.js","rapidkit.config.mjs","rapidkit.config.cjs"],ae=["workspai.config.json","rapidkit.config.json"];function F(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT"}function k(e,t){let r=t instanceof Error?t.message:String(t),i=e.endsWith(".js")&&/module is not defined in ES module scope/i.test(r)?' CommonJS syntax in a .js config is not valid when the project package uses "type": "module"; rename the file to .cjs or use export default.':"";return `Failed to load Workspai config at ${e}.${i} Cause: ${r}`}async function et(){for(let e$1 of [c$1.join(L.homedir(),te),c$1.join(L.homedir(),oe)])try{let t=await promises.readFile(e$1,"utf-8"),r=JSON.parse(t);return e.debug(`Loaded config from ${e$1}`),r}catch{}return e.debug("No user config found, using defaults"),{}}async function tt(e$1=process.cwd(),t={}){let r=e$1,i=c$1.parse(r).root;for(;r!==i;){for(let a of ae){let n=c$1.join(r,a);try{let s=await promises.readFile(n,"utf-8"),o=JSON.parse(s);if(!o||typeof o!="object"||Array.isArray(o))throw new Error("configuration root must be a JSON object");return e.debug(`Loaded data-only Workspai config from ${a}`),o}catch(s){if(F(s))continue;throw new Error(k(n,s))}}for(let a of re){let n=c$1.join(r,a);try{await promises.access(n);}catch(s){if(F(s))continue;throw new Error(k(n,s))}if(e.debug(`Found config file: ${n}`),!t.trustExecutableConfig)throw new Error(`Refusing to execute Workspai config at ${n} without explicit trust. Use a data-only workspai.config.json file, pass --trust-config, or set WORKSPAI_TRUST_CONFIG=1.`);try{let o=await import(pathToFileURL(n).href),l=o.default||o;return e.debug(`Loaded Workspai config from ${a}`),l}catch(s){throw new Error(k(n,s))}}r=c$1.dirname(r);}return e.debug("No Workspai config file found, using defaults"),{}}function ot(e,t,r){return {author:r.author||t.workspace?.defaultAuthor||e.author,pythonVersion:r.pythonVersion||t.workspace?.pythonVersion||e.pythonVersion,defaultInstallMethod:r.defaultInstallMethod||t.workspace?.installMethod||e.defaultInstallMethod,defaultKit:r.defaultKit||t.projects?.defaultKit||e.defaultKit,skipGit:r.skipGit??t.projects?.skipGit??e.skipGit,license:r.license||e.license,testRapidKitPath:r.testRapidKitPath||e.testRapidKitPath}}function rt(e){return f$1("DEV_PATH")||e.testRapidKitPath||void 0}var C=class extends Error{constructor(r,i){super(["Workspai workspaces cannot be nested.",`Target: ${r}`,`Containing workspace: ${i}`,"Choose Managed home or pass --output <path> with a location outside the current workspace."].join(`
2
- `));this.targetPath=r;this.containingWorkspacePath=i;this.name="NestedWorkspaceCreationError";}targetPath;containingWorkspacePath;code="WORKSPACE_NESTING_NOT_SUPPORTED"};async function ne(e){try{return !!await ie.stat(e)}catch{return false}}function se(e,t){let r=e.indexOf(t);if(r>=0&&r+1<e.length)return e[r+1];let i=e.find(a=>a.startsWith(`${t}=`));if(i)return i.slice(t.length+1)}function ce(e){return e.includes("--here")}async function U(e){let t=c$1.resolve(e);for(;;){let r=[c$1.join(t,".workspai-workspace"),c$1.join(t,".rapidkit-workspace"),c$1.join(t,".workspai","workspace.json"),c$1.join(t,".rapidkit","workspace.json")];if((await Promise.all(r.map(ne))).some(Boolean))return t;let i=c$1.dirname(t);if(i===t)return;t=i;}}async function ft(e){let t=c$1.resolve(e),r=await U(c$1.dirname(t));if(r)throw new C(t,r)}async function le(e,t=homedir()){let i=[{value:"managed",label:"Managed home",hint:l(t)}];return await U(e)||i.push({value:"here",label:"Current directory",hint:e}),i}function q(e,t=p.cwd()){if(ce(e))return c$1.resolve(t);let r=se(e,"--output");if(r)return c$1.resolve(r)}function gt(e,t=p.cwd()){let r=c$1.resolve(e),i=c$1.resolve(t),a=c$1.relative(i,r);return a.length>0&&!a.startsWith("..")&&!c$1.isAbsolute(a)?`cd ${a}`:`cd ${r}`}function mt(e,t={}){let r=t.argv??[],i=t.outputParent??q(r,p.cwd());return m(e.trim(),{homeDir:t.homeDir,outputDir:i})}function ht(e,t,r={}){return e?c$1.resolve(e)===c$1.resolve(t)?true:r.outputParent===void 0:false}async function yt(e,t={}){let r=t.cwd??p.cwd(),i=t.homeDir??homedir(),a=q(e,r);if(a!==void 0)return a;let n=t.hasYes??(e.includes("--yes")||e.includes("-y"));if(!(t.interactive??(!n&&!!p.stdin.isTTY&&!b())))return;let o=await le(r,i);if(o.length===1)return;let{location:l}=await b$1([{type:"rawlist",name:"location",message:"Where should the workspace be created?",choices:o,default:0}]);if(l==="here")return c$1.resolve(r)}export{T as a,Ae as b,et as c,tt as d,ot as e,rt as f,ft as g,gt as h,mt as i,ht as j,yt as k};
@@ -1 +0,0 @@
1
- export{a as readWorkspaceKnowledgeGraphSnapshot}from'./chunk-4AAXIWYY.js';
@@ -1 +0,0 @@
1
- export{a as resolveWorkspaceRunStageTimeoutMs,b as runWorkspaceStage}from'./chunk-QLHRGWUW.js';export{a as WORKSPACE_RUN_LAST_REPORT_FILENAME}from'./chunk-P5LI5DL3.js';
File without changes