@crewx/sdk 0.9.0-rc.9 → 0.9.0-rc.91

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 (192) hide show
  1. package/README.md +1 -1
  2. package/dist/account/auth-client.d.ts +61 -0
  3. package/dist/account/auth-json-v2.d.ts +1 -0
  4. package/dist/account/auth-json.d.ts +30 -0
  5. package/dist/account/config.d.ts +8 -0
  6. package/dist/account/errors.d.ts +24 -0
  7. package/dist/account/index.d.ts +10 -0
  8. package/dist/account/index.js +1 -0
  9. package/dist/account/session-manager.d.ts +47 -0
  10. package/dist/activity-log/builder.d.ts +55 -6
  11. package/dist/config/canonicalize-agent-options.d.ts +17 -0
  12. package/dist/config/global-settings.d.ts +33 -0
  13. package/dist/config/migrate-grok-mode.d.ts +6 -0
  14. package/dist/config/model-compat.d.ts +31 -0
  15. package/dist/config/models.generated.d.ts +37 -0
  16. package/dist/config/models.remote.d.ts +1 -0
  17. package/dist/config/overdrive.d.ts +7 -0
  18. package/dist/config/pricing.d.ts +8 -5
  19. package/dist/config/pricing.generated.d.ts +4 -0
  20. package/dist/config/pricing.types.d.ts +4 -10
  21. package/dist/config/timeout.config.d.ts +3 -0
  22. package/dist/config/wi-boards.d.ts +19 -0
  23. package/dist/context-budget/continuity.d.ts +61 -0
  24. package/dist/context-budget/index.d.ts +140 -0
  25. package/dist/conversation/index.d.ts +1 -1
  26. package/dist/conversation/sqlite-provider.d.ts +5 -1
  27. package/dist/conversation/to-template-messages.d.ts +7 -0
  28. package/dist/conversation/types.d.ts +43 -0
  29. package/dist/desktop/command-runner.d.ts +4 -0
  30. package/dist/desktop/default-adapters.d.ts +4 -0
  31. package/dist/desktop/global-install.d.ts +19 -0
  32. package/dist/desktop/index.d.ts +2 -0
  33. package/dist/desktop/index.js +3 -0
  34. package/dist/desktop/install.d.ts +5 -0
  35. package/dist/desktop/lnk.d.ts +22 -0
  36. package/dist/desktop/manifest.d.ts +21 -0
  37. package/dist/desktop/types.d.ts +67 -0
  38. package/dist/desktop/version.d.ts +1 -0
  39. package/dist/desktop/windows-paths.d.ts +21 -0
  40. package/dist/desktop/wrapper.d.ts +18 -0
  41. package/dist/esm/account/index.js +1 -0
  42. package/dist/esm/desktop/index.js +3 -0
  43. package/dist/esm/index.js +354 -99
  44. package/dist/esm/plugins/index.js +213 -103
  45. package/dist/esm/publish/index.js +1 -0
  46. package/dist/esm/repository/index.js +200 -94
  47. package/dist/esm/testing/index.js +1 -1
  48. package/dist/events/types.d.ts +4 -0
  49. package/dist/facade/Crewx.d.ts +40 -2
  50. package/dist/highlight/thread-highlight-prompt.d.ts +2 -0
  51. package/dist/highlight/thread-highlighter.d.ts +326 -0
  52. package/dist/index.browser.d.ts +11 -1
  53. package/dist/index.browser.js +6 -2
  54. package/dist/index.d.ts +73 -11
  55. package/dist/index.js +354 -99
  56. package/dist/internal/console-decoder.d.ts +38 -0
  57. package/dist/internal/windows-spawn.d.ts +10 -0
  58. package/dist/layout/types.d.ts +17 -1
  59. package/dist/local-server/base-url.d.ts +18 -0
  60. package/dist/local-server/index.d.ts +8 -0
  61. package/dist/local-server/opencode.d.ts +8 -0
  62. package/dist/local-server/probe.d.ts +3 -0
  63. package/dist/local-server/runtime.d.ts +26 -0
  64. package/dist/local-server/types.d.ts +43 -0
  65. package/dist/migrations/0008_careful_black_bird.sql +17 -0
  66. package/dist/migrations/0009_hot_dark_phoenix.sql +1 -0
  67. package/dist/migrations/0010_analyze_stats.sql +6 -0
  68. package/dist/migrations/0011_far_black_tarantula.sql +1 -0
  69. package/dist/migrations/0012_blue_turbo.sql +23 -0
  70. package/dist/migrations/0013_hesitant_adam_destine.sql +15 -0
  71. package/dist/migrations/0014_organic_mongu.sql +73 -0
  72. package/dist/migrations/0015_panoramic_gorilla_man.sql +71 -0
  73. package/dist/migrations/0016_fuzzy_hemingway.sql +14 -0
  74. package/dist/migrations/0017_project_stage_sdk_migration.sql +29 -0
  75. package/dist/migrations/0018_bored_jackal.sql +33 -0
  76. package/dist/migrations/0019_backfill_task_thread_ids.sql +74 -0
  77. package/dist/migrations/0020_useful_iron_lad.sql +55 -0
  78. package/dist/migrations/0021_dashing_peter_quill.sql +51 -0
  79. package/dist/migrations/0022_wandering_bucky.sql +1 -0
  80. package/dist/migrations/0023_red_payback.sql +1 -0
  81. package/dist/migrations/meta/0008_snapshot.json +1327 -0
  82. package/dist/migrations/meta/0009_snapshot.json +1335 -0
  83. package/dist/migrations/meta/0010_snapshot.json +1335 -0
  84. package/dist/migrations/meta/0011_snapshot.json +1342 -0
  85. package/dist/migrations/meta/0012_snapshot.json +1494 -0
  86. package/dist/migrations/meta/0013_snapshot.json +1592 -0
  87. package/dist/migrations/meta/0014_snapshot.json +1975 -0
  88. package/dist/migrations/meta/0015_snapshot.json +2315 -0
  89. package/dist/migrations/meta/0016_snapshot.json +2419 -0
  90. package/dist/migrations/meta/0017_snapshot.json +2419 -0
  91. package/dist/migrations/meta/0018_snapshot.json +2570 -0
  92. package/dist/migrations/meta/0020_snapshot.json +2895 -0
  93. package/dist/migrations/meta/0021_snapshot.json +3031 -0
  94. package/dist/migrations/meta/0022_snapshot.json +3039 -0
  95. package/dist/migrations/meta/0023_snapshot.json +3047 -0
  96. package/dist/migrations/meta/_journal.json +112 -0
  97. package/dist/paths.d.ts +1 -0
  98. package/dist/plugin/types.d.ts +1 -0
  99. package/dist/plugins/index.js +213 -103
  100. package/dist/plugins/sqlite-tracing.d.ts +23 -0
  101. package/dist/provider/acp/connection.d.ts +6 -0
  102. package/dist/provider/acp/meta.d.ts +11 -0
  103. package/dist/provider/bridge.d.ts +6 -0
  104. package/dist/provider/classify-task-error.d.ts +2 -0
  105. package/dist/provider/cli/adapter.types.d.ts +8 -1
  106. package/dist/provider/cli/adapters/agent-call.util.d.ts +1 -1
  107. package/dist/provider/cli/adapters/cli-knob.util.d.ts +7 -0
  108. package/dist/provider/cli/adapters/grok.d.ts +2 -0
  109. package/dist/provider/cli/adapters/index.d.ts +1 -0
  110. package/dist/provider/cli/index.d.ts +1 -1
  111. package/dist/provider/cli/meta.d.ts +5 -0
  112. package/dist/provider/cli/protocol-envelope.d.ts +2 -0
  113. package/dist/provider/errors.d.ts +1 -0
  114. package/dist/provider/idle-watchdog.d.ts +19 -0
  115. package/dist/provider/models.d.ts +17 -12
  116. package/dist/provider/order.d.ts +1 -1
  117. package/dist/provider/parse-usage.d.ts +6 -0
  118. package/dist/provider/provider-selection.d.ts +8 -0
  119. package/dist/provider/redact-technical-message.d.ts +1 -0
  120. package/dist/provider/task-error.types.d.ts +16 -0
  121. package/dist/publish/constants.d.ts +6 -0
  122. package/dist/publish/index.d.ts +26 -0
  123. package/dist/publish/index.js +1 -0
  124. package/dist/publish/manifest.d.ts +17 -0
  125. package/dist/publish/marketplace-api.constants.d.ts +1 -0
  126. package/dist/publish/pack.d.ts +2 -0
  127. package/dist/publish/scan.d.ts +9 -0
  128. package/dist/publish/secrets.d.ts +6 -0
  129. package/dist/publish/upload.d.ts +18 -0
  130. package/dist/remote/execution-profile.d.ts +9 -0
  131. package/dist/remote/index.d.ts +1 -0
  132. package/dist/remote/types.d.ts +28 -0
  133. package/dist/repository/agent-suggestion.repository.d.ts +34 -0
  134. package/dist/repository/common-code.repository.d.ts +45 -0
  135. package/dist/repository/db.d.ts +8 -0
  136. package/dist/repository/index.d.ts +28 -4
  137. package/dist/repository/index.js +200 -94
  138. package/dist/repository/notification.repository.d.ts +58 -0
  139. package/dist/repository/project.repository.d.ts +90 -0
  140. package/dist/repository/request-log.repository.d.ts +1 -0
  141. package/dist/repository/task-log-migration.d.ts +74 -0
  142. package/dist/repository/task-log.repository.d.ts +44 -0
  143. package/dist/repository/task.repository.d.ts +120 -0
  144. package/dist/repository/thread-history.repository.d.ts +193 -0
  145. package/dist/repository/thread-title-common-code-migration.d.ts +13 -0
  146. package/dist/repository/thread-title.types.d.ts +29 -0
  147. package/dist/repository/thread.repository.d.ts +21 -2
  148. package/dist/repository/usage-report.repository.d.ts +27 -0
  149. package/dist/repository/workspace.repository.d.ts +3 -0
  150. package/dist/schema/agent-suggestions.d.ts +199 -0
  151. package/dist/schema/common-codes.d.ts +216 -0
  152. package/dist/schema/index.d.ts +9 -0
  153. package/dist/schema/notifications.d.ts +303 -0
  154. package/dist/schema/projects.d.ts +610 -0
  155. package/dist/schema/task-log-events.d.ts +119 -0
  156. package/dist/schema/tasks.d.ts +53 -0
  157. package/dist/schema/thread-history.d.ts +734 -0
  158. package/dist/schema/threads.d.ts +2 -0
  159. package/dist/schema/ui-action-receipts.d.ts +303 -0
  160. package/dist/schema/ui-instances.d.ts +267 -0
  161. package/dist/schema/usage-reports.d.ts +252 -0
  162. package/dist/schema/workspaces.d.ts +17 -0
  163. package/dist/task-log/anchor-child-tasks.d.ts +7 -0
  164. package/dist/task-log/delegation-trailer.d.ts +34 -0
  165. package/dist/testing/index.js +1 -1
  166. package/dist/types/index.d.ts +1536 -3
  167. package/dist/types/task-log.types.d.ts +2 -0
  168. package/dist/ui-card/index.d.ts +2 -0
  169. package/dist/ui-card/legacy-card-parser.d.ts +11 -0
  170. package/dist/ui-instance/definition.d.ts +6 -0
  171. package/dist/ui-instance/errors.d.ts +17 -0
  172. package/dist/ui-instance/index.d.ts +6 -0
  173. package/dist/ui-instance/json.d.ts +5 -0
  174. package/dist/ui-instance/runtime.d.ts +13 -0
  175. package/dist/ui-instance/store.d.ts +65 -0
  176. package/dist/ui-instance/types.d.ts +200 -0
  177. package/dist/ui-plugin/index.d.ts +3 -0
  178. package/dist/ui-plugin/manifest.d.ts +3 -0
  179. package/dist/ui-plugin/types.d.ts +76 -0
  180. package/dist/ui-plugin/validator.d.ts +9 -0
  181. package/dist/utils/crewx-executable.d.ts +54 -0
  182. package/dist/utils/crewx-home.d.ts +1 -0
  183. package/dist/utils/env-defaults.d.ts +2 -0
  184. package/dist/utils/id.d.ts +1 -1
  185. package/dist/utils/timestamp.d.ts +1 -0
  186. package/dist/wi/create.d.ts +48 -0
  187. package/dist/wi/select.d.ts +20 -0
  188. package/package.json +25 -2
  189. package/templates/agents/default.yaml +244 -120
  190. package/templates/documents/crewx-manual.md +138 -138
  191. package/templates/workflows/wi-default-flow.yaml +65 -0
  192. package/templates/workflows/wi-plan-flow.yaml +140 -0
@@ -0,0 +1 @@
1
+ import*as h from'path';import*as m from'fs';import*as H from'crypto';import*as j from'js-yaml';import*as q from'os';import*as C from'tar';import {gunzipSync,gzipSync}from'zlib';function X(e){let r=s=>s.replace(/[.+^${}()|[\]\\]/g,"\\$&"),n=e.split("/").map(s=>s==="**"?".*":s.split("*").map(r).join("[^/]*"));return new RegExp(`^${n.join("\\/")}$`)}function E(e,r){try{return X(r).test(e)}catch{return false}}function v(e,...r){let t=e.split("/");if(t.length<r.length)return false;let n=t.length-r.length;return r.every((s,i)=>E(t[n+i],s))}function Z(e,r){return e.split("/").some(t=>E(t,r))}var U=[{label:".env*",test:e=>E(e,".env*")},{label:".git/",test:(e,r,t)=>t&&e===".git"},{label:"memory/",test:(e,r,t)=>t&&e==="memory"},{label:"*.key",test:e=>E(e,"*.key")},{label:"*.pem",test:e=>E(e,"*.pem")},{label:"auth.json",test:e=>e==="auth.json"},{label:"node_modules/",test:(e,r,t)=>t&&e==="node_modules"},{label:"conversations/",test:(e,r,t)=>t&&e==="conversations"},{label:".crewx/threads/",test:(e,r,t)=>t&&v(r,".crewx","threads")},{label:".crewx/crewx.db",test:(e,r,t)=>!t&&v(r,".crewx","crewx.db")},{label:".crewx/*.log",test:(e,r,t)=>!t&&v(r,".crewx","*.log")},{label:".crewx/publish/",test:(e,r,t)=>t&&v(r,".crewx","publish")},{label:".crewx/",test:(e,r)=>Z(r,".crewx")}];function R(e,r,t){for(let n of U)if(n.test(e,r,t))return n.label;return null}function D(e){let r=[],t=[];function n(s,i,a){let p;try{p=m.readdirSync(s,{withFileTypes:!0});}catch{return}p.sort((o,c)=>o.name.localeCompare(c.name));for(let o of p){let c=i?`${i}/${o.name}`:o.name,l=h.join(s,o.name);if(o.isSymbolicLink()){let u;try{u=m.statSync(l);}catch{continue}if(u.isDirectory()){t.push({path:c,rule:a??"symlink-dir"});continue}let T=a??R(o.name,c,false);T?t.push({path:c,rule:T}):r.push(c);continue}if(o.isDirectory()){let u=a??R(o.name,c,true);n(l,c,u);continue}if(o.isFile()){let u=a??R(o.name,c,false);u?t.push({path:c,rule:u}):r.push(c);}}}return n(e,"",null),r.sort(),t.sort((s,i)=>s.path<i.path?-1:s.path>i.path?1:0),{included:r,excluded:t}}var J=[{rule:"token-prefix",regex:/\b(?:sk-|ghp_|xoxb-)[A-Za-z0-9_-]{10,}/},{rule:"private-key",regex:/-----BEGIN [A-Z ]*PRIVATE KEY-----/},{rule:"aws-access-key",regex:/\bAKIA[0-9A-Z]{16}\b/}];function G(e){return e.includes(0)}function z(e,r){let t=[];for(let n of r){let s=h.join(e,n),i;try{i=m.readFileSync(s);}catch{continue}if(G(i))continue;i.toString("utf8").split(/\r\n|\r|\n/).forEach((p,o)=>{for(let{rule:c,regex:l}of J)l.test(p)&&t.push({path:n,line:o+1,rule:c});});}return t}var I=/^[a-z0-9-]+$/,Y=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,Q=/^[A-Za-z_][A-Za-z0-9_]*$/;function ee(e){let r=h.join(e,"crewx.yaml");if(!m.existsSync(r))return {};let t;try{t=j.load(m.readFileSync(r,"utf8"));}catch{return {}}if(!t||typeof t!="object")return {};let n=t.metadata;if(!n||typeof n!="object")return {};let s=n;return {name:typeof s.name=="string"?s.name:void 0,version:typeof s.version=="string"?s.version:void 0,description:typeof s.description=="string"?s.description:void 0,requiredEnv:s.requiredEnv,crewxMinVersion:typeof s.crewxMinVersion=="string"?s.crewxMinVersion:void 0}}function te(e){return H.createHash("sha256").update(new Uint8Array(m.readFileSync(e))).digest("hex")}function N(e,r,t={}){let n=ee(e),s=n.name??h.basename(e);if(!I.test(s))throw new Error(`publish: invalid name "${s}" \u2014 must match ${I} (lowercase letters, numbers, hyphen only)`);let i=t.version??n.version;if(!i)throw new Error("publish: version is required \u2014 set crewx.yaml metadata.version or pass opts.version");if(!Y.test(i))throw new Error(`publish: invalid version "${i}" \u2014 must be semver (e.g. 1.0.0)`);let a=Array.isArray(n.requiredEnv)?n.requiredEnv:[],p=[];for(let l of a){if(typeof l!="string"||!Q.test(l))throw new Error(`publish: requiredEnv must contain names only (no values), got "${String(l)}"`);p.push(l);}let o=r.map(l=>({path:l,sha256:te(h.join(e,l))})).sort((l,u)=>l.path<u.path?-1:l.path>u.path?1:0),c={name:s,version:i,type:"template",description:n.description??"",files:o,requiredEnv:p};return n.crewxMinVersion&&(c.crewxMinVersion=n.crewxMinVersion),c}async function V(e,r){let t=h.join(e,".crewx","publish");m.mkdirSync(t,{recursive:true});let n=h.join(t,`${r.name}-${r.version}.tgz`),s=m.mkdtempSync(h.join(q.tmpdir(),"crewx-publish-"));try{m.writeFileSync(h.join(s,"manifest.json"),JSON.stringify(r,null,2));for(let i of r.files){let a=h.join(s,i.path);m.mkdirSync(h.dirname(a),{recursive:!0}),m.copyFileSync(h.join(e,i.path),a);}await C.create({gzip:!0,file:n,cwd:s,portable:!0,noMtime:!0},["manifest.json",...r.files.map(i=>i.path)]);}finally{m.rmSync(s,{recursive:true,force:true});}return n}var y="/api/v1";var se=201,ie=409,S=401;function ae(){return process.env.WI013_FAKE_UPLOAD==="1"}function oe(e){let r=gunzipSync(new Uint8Array(e)),t=gzipSync(new Uint8Array(r),{level:1});if(Buffer.compare(new Uint8Array(t),new Uint8Array(e))===0)throw new Error("publish: [E_MALFORMED] Re-gzipped upload bytes are identical to the original \u2014 tamper is a no-op");return t}function ce(e){return e.replace(/\/+$/,"")}async function x(e){try{return await e.json()}catch{return null}}function L(e,r,t){let n=e;if(!n||n.success!==true||n.data===void 0)throw new Error(`publish: [E_MALFORMED] ${r} response envelope is malformed (expected { success: true, data }) \u2014 HTTP ${t}`);return n.data}async function le(e){if(!e.baseUrl.trim())throw new Error("publish: [E_ENV_MISSING] Marketplace base URL is required");if(!e.accessToken.trim())throw new Error("publish: [E_AUTH_EXPIRED] A valid bearer token is required");let r=ce(e.baseUrl),t=e.accessPolicy??"private",n=e.manifest.name,s;try{s=await fetch(`${r}${y}/publisher/items`,{method:"POST",headers:{Authorization:`Bearer ${e.accessToken}`,"Content-Type":"application/json"},body:JSON.stringify({slug:n,displayName:n,description:e.manifest.description,type:"template",version:e.manifest.version,accessPolicy:t})});}catch{throw new Error("publish: [E_NETWORK] Submit request failed (network)")}let i;if(s.status===se)i="created";else if(s.status===ie)i="existing";else throw s.status===S?new Error("publish: [E_AUTH_EXPIRED] Authentication is expired or missing \u2014 please log in again (HTTP 401)"):(await x(s),new Error(`publish: [E_HTTP] Submit request failed \u2014 HTTP ${s.status}`));let a="not-needed",p=null;if(i==="existing"){let b;try{b=await fetch(`${r}${y}/publisher/items`,{method:"GET",headers:{Authorization:`Bearer ${e.accessToken}`}});}catch{throw new Error("publish: [E_NETWORK] Publisher items request failed (network)")}let W=await x(b);if(b.status!==200)throw new Error(`publish: [E_HTTP] Publisher items request failed \u2014 HTTP ${b.status}`);let $=L(W,"publisher items",b.status)?.items;if(!Array.isArray($))throw new Error(`publish: [E_MALFORMED] Publisher items response is malformed (expected data.items[]) \u2014 HTTP ${b.status}`);let _=$.find(f=>!f||typeof f!="object"?false:f.slug===n);if(!_||typeof _.version!="string")throw new Error(`publish: [E_MALFORMED] Publisher items response does not contain slug "${n}" \u2014 HTTP ${b.status}`);if(p=_.version,p!==e.manifest.version){let f;try{f=await fetch(`${r}${y}/publisher/items/${encodeURIComponent(n)}`,{method:"PUT",headers:{Authorization:`Bearer ${e.accessToken}`,"Content-Type":"application/json"},body:JSON.stringify({version:e.manifest.version})});}catch{throw new Error("publish: [E_NETWORK] Version update request failed (network)")}if(!f.ok)throw await x(f),f.status===S?new Error(`publish: [E_AUTH_EXPIRED] Authentication is expired or missing \u2014 please log in again (HTTP ${f.status})`):f.status===403?new Error(`publish: [E_FORBIDDEN] Version update is forbidden; only the item owner can update an existing item (HTTP ${f.status})`):new Error(`publish: [E_HTTP] Version update failed \u2014 HTTP ${f.status}`);a="applied";}}let o=m.readFileSync(e.tgzPath),c=ae()?oe(o):o,l=new FormData;l.set("archive",new Blob([new Uint8Array(c)],{type:"application/gzip"}),`${n}-${e.manifest.version}.tgz`);let u;try{u=await fetch(`${r}${y}/publisher/items/${encodeURIComponent(n)}/upload`,{method:"POST",headers:{Authorization:`Bearer ${e.accessToken}`},body:l});}catch{throw new Error("publish: [E_NETWORK] Upload request failed (network)")}if(u.status===S)throw new Error("publish: [E_AUTH_EXPIRED] Authentication is expired or missing \u2014 please log in again (HTTP 401)");if(!u.ok)throw await x(u),new Error(`publish: [E_HTTP] Upload request failed \u2014 HTTP ${u.status}`);let T=await x(u),M=L(T,"upload",u.status);return {slug:n,version:e.manifest.version,artifactChecksum:M.artifactChecksum,artifactSizeBytes:M.artifactSizeBytes,submitOutcome:i,versionUpdate:a,serverVersionBefore:p}}async function ue(e,r={}){let t=h.resolve(e),{included:n,excluded:s}=D(t),i=N(t,n,{version:r.version}),a=z(t,n);return {manifest:i,included:n,excluded:s,secretFindings:a}}async function ze(e,r={}){let t=await ue(e,r);if(t.secretFindings.length>0){let i=t.secretFindings.map(a=>`${a.path}:${a.line} (${a.rule})`).join(", ");throw new Error(`publish: aborted \u2014 secret findings must be resolved before packing: ${i}`)}let n=h.resolve(e),s=await V(n,t.manifest);return {manifest:t.manifest,tgzPath:s}}export{U as EXCLUDE_RULES,y as MARKETPLACE_API_PREFIX,ze as packTemplate,ue as planPublish,le as uploadToMarketplace};