noskills 4.5.1 → 4.5.2

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 (91) hide show
  1. package/chunks/{ajan-bridge-T5M4DPDT.js → ajan-bridge-BNPC757J.js} +1 -1
  2. package/chunks/{anthropic-TS7EMQML.js → anthropic-ZKOMTKX2.js} +1 -1
  3. package/chunks/{approve-HEW3VFYH.js → approve-3TKOHYHH.js} +1 -1
  4. package/chunks/{ask-AXHTCVD6.js → ask-UB26SBWQ.js} +1 -1
  5. package/chunks/{block-VN76CXZW.js → block-Q4WAIX7X.js} +1 -1
  6. package/chunks/{cancel-7WRAST62.js → cancel-DY76ADX4.js} +1 -1
  7. package/chunks/{chunk-4PF2MT7S.js → chunk-34RPTI4K.js} +7 -7
  8. package/chunks/chunk-3JTDWOAJ.js +2 -0
  9. package/chunks/{chunk-GQTHILPL.js → chunk-5FX4EBFY.js} +1 -1
  10. package/chunks/chunk-5OTECUN7.js +1 -0
  11. package/chunks/{chunk-6YSS6PEL.js → chunk-7PBHRFOZ.js} +1 -1
  12. package/chunks/{chunk-7GC46XEU.js → chunk-AB3N327V.js} +1 -1
  13. package/chunks/{chunk-KMLNG3EC.js → chunk-BYPCI5VU.js} +1 -1
  14. package/chunks/{chunk-QKWJ72HI.js → chunk-CKIZYL4O.js} +1 -1
  15. package/chunks/{chunk-S4MUTKHT.js → chunk-DYCGJ4RY.js} +1 -1
  16. package/chunks/{chunk-UE56BMAW.js → chunk-EVJYA7S3.js} +1 -1
  17. package/chunks/{chunk-LN4NDYT6.js → chunk-FYFUEK4U.js} +1 -1
  18. package/chunks/chunk-GNMOE7H3.js +48 -0
  19. package/chunks/chunk-HB62UGZI.js +2 -0
  20. package/chunks/{chunk-EIMBEXUJ.js → chunk-IM73MYMS.js} +1 -1
  21. package/chunks/{chunk-KM64FL2X.js → chunk-J25XTDQQ.js} +1 -1
  22. package/chunks/{chunk-JL3MAFYQ.js → chunk-LGQEWL5X.js} +1 -1
  23. package/chunks/{chunk-5DZHAHXW.js → chunk-LKZZ4JN5.js} +1 -1
  24. package/chunks/{chunk-DBKXMYLF.js → chunk-NPWXEWRN.js} +1 -1
  25. package/chunks/{chunk-PKEQKXZW.js → chunk-ONJVI5AZ.js} +1 -1
  26. package/chunks/{chunk-EIGFDYGQ.js → chunk-OP4XAIGW.js} +1 -1
  27. package/chunks/{chunk-W4TQLLUK.js → chunk-T6NZVA6P.js} +1 -1
  28. package/chunks/{chunk-5PBNUBBY.js → chunk-TCSIXKUD.js} +1 -1
  29. package/chunks/{chunk-KRKOWSYW.js → chunk-WDKWHGJU.js} +5 -7
  30. package/chunks/{chunk-PRQ5CRIG.js → chunk-XDPATEP5.js} +1 -1
  31. package/chunks/{chunk-CML74SNT.js → chunk-Y45DQJSS.js} +1 -1
  32. package/chunks/{chunk-RAQY37P6.js → chunk-YUTDPPXX.js} +1 -1
  33. package/chunks/claude-code-OQJIUKZP.js +1 -0
  34. package/chunks/{concern-QSENGU6C.js → concern-UIGVWDFS.js} +1 -1
  35. package/chunks/{config-S3UXTJN2.js → config-72Z4PIJN.js} +1 -1
  36. package/chunks/{decision-ledger-GY2W6VWL.js → decision-ledger-5IPPTRT7.js} +1 -1
  37. package/chunks/{delegate-WKXIER7E.js → delegate-OV6NY434.js} +1 -1
  38. package/chunks/{diagrams-A7W2EBYV.js → diagrams-OX4FBDGP.js} +1 -1
  39. package/chunks/{done-WR3UFYJT.js → done-V54GSSTY.js} +1 -1
  40. package/chunks/{followup-5EGZEF5Q.js → followup-NL7EPIGF.js} +1 -1
  41. package/chunks/{free-KJQHRYZA.js → free-KD344KRL.js} +1 -1
  42. package/chunks/{gemini-IWP24T63.js → gemini-23EOEXSF.js} +1 -1
  43. package/chunks/{init-437SU6XH.js → init-WDRNFT57.js} +1 -1
  44. package/chunks/{invoke-hook-LMCWNF65.js → invoke-hook-I3NTD36Q.js} +1 -1
  45. package/chunks/kiro-TPAAIMY6.js +1 -0
  46. package/chunks/{learn-ZTYKBZER.js → learn-WBWNJEB2.js} +1 -1
  47. package/chunks/{ledger-FOOPJ2UO.js → ledger-QYK252DV.js} +1 -1
  48. package/chunks/{list-HNGIOVBK.js → list-WO6RS7JX.js} +1 -1
  49. package/chunks/{manager-2MOLEJ4Q.js → manager-ZSPRC5R4.js} +1 -1
  50. package/chunks/{mod-AJIRKRAH.js → mod-B6LBGYON.js} +1 -1
  51. package/chunks/{mod-6EZYRKWV.js → mod-MMHDQRNF.js} +1 -1
  52. package/chunks/{mod-7X5TKHKC.js → mod-RBGAMGZA.js} +1 -1
  53. package/chunks/{mod-TGOMO3CJ.js → mod-SV4VELMH.js} +1 -1
  54. package/chunks/{next-Y6FOPM4Z.js → next-QXCLZ7P3.js} +1 -1
  55. package/chunks/node-2XIHQ2M4.js +1 -0
  56. package/chunks/node-BXYZKSJY.js +15 -0
  57. package/chunks/node-DMUOWFGA.js +69 -0
  58. package/chunks/ollama-MXRDGQDF.js +1 -0
  59. package/chunks/openai-LE47IWMQ.js +30 -0
  60. package/chunks/{openai-YES2XJDU.js → openai-MSJF4B6H.js} +1 -1
  61. package/chunks/opencode-ZDHKR2P6.js +1 -0
  62. package/chunks/{pack-KUT53Z24.js → pack-NS64WU6M.js} +1 -1
  63. package/chunks/{plan-export-PG2BVRQZ.js → plan-export-HECAF7D4.js} +1 -1
  64. package/chunks/{purge-JGNJNEET.js → purge-PSQNN42H.js} +1 -1
  65. package/chunks/{reopen-RPDXN3CF.js → reopen-L37M5XUI.js} +1 -1
  66. package/chunks/{reset-RBCQO2RF.js → reset-OOTZXW6Q.js} +1 -1
  67. package/chunks/{review-VMS5MYOV.js → review-QLD6WSOB.js} +1 -1
  68. package/chunks/{rule-IB4VKSBC.js → rule-OOANQBHB.js} +1 -1
  69. package/chunks/{run-62PWXVII.js → run-YHCIRY7Z.js} +1 -1
  70. package/chunks/{sdk-FR7Z4YSC.js → sdk-OQIHH3OY.js} +1 -1
  71. package/chunks/{session-Q43KMFL2.js → session-OWWDH7KA.js} +1 -1
  72. package/chunks/{spec-4RKLPOEM.js → spec-O7F525UN.js} +1 -1
  73. package/chunks/{status-OGLFEFF7.js → status-SZZXY7V3.js} +1 -1
  74. package/chunks/{sync-H35O5DN5.js → sync-3RYRGTEA.js} +1 -1
  75. package/chunks/{validate-JX7UTAK5.js → validate-UZD6JBSG.js} +1 -1
  76. package/chunks/{vertexai-WF5CKMYI.js → vertexai-CVCRCO24.js} +1 -1
  77. package/chunks/{watch-SOZDHLSC.js → watch-5DNM646U.js} +1 -1
  78. package/chunks/{web-3VGRM3W4.js → web-662LNB3K.js} +1 -1
  79. package/chunks/{wontfix-RBOGLLWJ.js → wontfix-UDCTLHNB.js} +1 -1
  80. package/noskills.js +1 -1
  81. package/package.json +1 -1
  82. package/chunks/chunk-3ZJ3UGQL.js +0 -48
  83. package/chunks/chunk-575Y3OEG.js +0 -1
  84. package/chunks/chunk-IGDFEGCH.js +0 -2
  85. package/chunks/claude-code-DIWRQKZA.js +0 -1
  86. package/chunks/kiro-THWCXS5L.js +0 -1
  87. package/chunks/node-AZK2C657.js +0 -12
  88. package/chunks/node-GQQ42DT2.js +0 -68
  89. package/chunks/ollama-2KAMCXVL.js +0 -1
  90. package/chunks/openai-HHE35TAX.js +0 -31
  91. package/chunks/opencode-S4M7WJTO.js +0 -1
@@ -1 +1 @@
1
- import{f as r}from"./chunk-IGDFEGCH.js";import{i}from"./chunk-Y5E7ZCCX.js";var o=async e=>{try{return await r`which ${e}`.noThrow().code()===0}catch{return!1}},s=async()=>{try{return(await fetch("http://localhost:11434/api/version",{signal:AbortSignal.timeout(1e3)})).ok}catch{return!1}},a=e=>i.env.has(e),c=async()=>{let[e,t,l,n]=await Promise.all([o("claude"),s(),o("opencode"),o("kiro")]);return[{name:"claude-code",alias:"cc",type:"CLI",available:e,detail:e?"claude binary found":"claude not on PATH"},{name:"ollama",alias:"ol",type:"HTTP",available:t,detail:t?"localhost:11434 reachable":"localhost:11434 not reachable"},{name:"opencode",alias:"oc",type:"CLI",available:l,detail:l?"opencode binary found":"opencode not on PATH"},{name:"kiro",alias:"kr",type:"CLI",available:n,detail:n?"kiro binary found":"kiro not on PATH"},{name:"anthropic",alias:"ant",type:"API",available:a("ANTHROPIC_API_KEY")||a("ANTHROPIC_AUTH_TOKEN"),detail:a("ANTHROPIC_API_KEY")?"ANTHROPIC_API_KEY set":a("ANTHROPIC_AUTH_TOKEN")?"ANTHROPIC_AUTH_TOKEN set":"ANTHROPIC_API_KEY not set"},{name:"openai",alias:"oai",type:"API",available:a("OPENAI_API_KEY"),detail:a("OPENAI_API_KEY")?"OPENAI_API_KEY set":"OPENAI_API_KEY not set"},{name:"gemini",alias:"gem",type:"API",available:a("GEMINI_API_KEY")||a("GOOGLE_API_KEY"),detail:a("GEMINI_API_KEY")||a("GOOGLE_API_KEY")?"API key set":"GEMINI_API_KEY not set"},{name:"vertexai",alias:"vtx",type:"API",available:a("GOOGLE_CLOUD_PROJECT"),detail:a("GOOGLE_CLOUD_PROJECT")?"GOOGLE_CLOUD_PROJECT set":"GOOGLE_CLOUD_PROJECT not set"}]},_=async()=>(await c()).filter(t=>t.available).map(t=>t.name);export{c as a,_ as b};
1
+ import{f as r}from"./chunk-HB62UGZI.js";import{i}from"./chunk-Y5E7ZCCX.js";var o=async e=>{try{return await r`which ${e}`.noThrow().code()===0}catch{return!1}},s=async()=>{try{return(await fetch("http://localhost:11434/api/version",{signal:AbortSignal.timeout(1e3)})).ok}catch{return!1}},a=e=>i.env.has(e),c=async()=>{let[e,t,l,n]=await Promise.all([o("claude"),s(),o("opencode"),o("kiro")]);return[{name:"claude-code",alias:"cc",type:"CLI",available:e,detail:e?"claude binary found":"claude not on PATH"},{name:"ollama",alias:"ol",type:"HTTP",available:t,detail:t?"localhost:11434 reachable":"localhost:11434 not reachable"},{name:"opencode",alias:"oc",type:"CLI",available:l,detail:l?"opencode binary found":"opencode not on PATH"},{name:"kiro",alias:"kr",type:"CLI",available:n,detail:n?"kiro binary found":"kiro not on PATH"},{name:"anthropic",alias:"ant",type:"API",available:a("ANTHROPIC_API_KEY")||a("ANTHROPIC_AUTH_TOKEN"),detail:a("ANTHROPIC_API_KEY")?"ANTHROPIC_API_KEY set":a("ANTHROPIC_AUTH_TOKEN")?"ANTHROPIC_AUTH_TOKEN set":"ANTHROPIC_API_KEY not set"},{name:"openai",alias:"oai",type:"API",available:a("OPENAI_API_KEY"),detail:a("OPENAI_API_KEY")?"OPENAI_API_KEY set":"OPENAI_API_KEY not set"},{name:"gemini",alias:"gem",type:"API",available:a("GEMINI_API_KEY")||a("GOOGLE_API_KEY"),detail:a("GEMINI_API_KEY")||a("GOOGLE_API_KEY")?"API key set":"GEMINI_API_KEY not set"},{name:"vertexai",alias:"vtx",type:"API",available:a("GOOGLE_CLOUD_PROJECT"),detail:a("GOOGLE_CLOUD_PROJECT")?"GOOGLE_CLOUD_PROJECT set":"GOOGLE_CLOUD_PROJECT not set"}]},_=async()=>(await c()).filter(t=>t.available).map(t=>t.name);export{c as a,_ as b};
@@ -1 +1 @@
1
- import{a as t}from"./chunk-CH6A3LES.js";var r=o=>{let e=o;return typeof e.submitBatch=="function"&&typeof e.getBatchJob=="function"&&typeof e.listBatchJobs=="function"&&typeof e.downloadBatchResults=="function"&&typeof e.cancelBatchJob=="function"};var a=new t({description:"AI provider interface \u2014 ask questions, generate content",modules:{ask:{description:"Send a prompt to an AI provider",load:()=>import("./ask-AXHTCVD6.js")},list:{description:"List available AI providers",load:()=>import("./list-HNGIOVBK.js")}}});export{r as a,a as b};
1
+ import{a as t}from"./chunk-CH6A3LES.js";var r=o=>{let e=o;return typeof e.submitBatch=="function"&&typeof e.getBatchJob=="function"&&typeof e.listBatchJobs=="function"&&typeof e.downloadBatchResults=="function"&&typeof e.cancelBatchJob=="function"};var a=new t({description:"AI provider interface \u2014 ask questions, generate content",modules:{ask:{description:"Send a prompt to an AI provider",load:()=>import("./ask-UB26SBWQ.js")},list:{description:"List available AI providers",load:()=>import("./list-WO6RS7JX.js")}}});export{r as a,a as b};
@@ -1 +1 @@
1
- import{a as S,b as p,c as v,d as w,e as g,f as m,g as f}from"./chunk-CML74SNT.js";import{a as l}from"./chunk-JYVB6UAV.js";import{a as h,b as k}from"./chunk-OAWYVETM.js";var y=class{capabilities=["text_generation","streaming"];provider="opencode";modelId;binary;config;constructor(e,r){this.binary=e,this.config=r,this.modelId=r.model}async generateText(e,r){let o=T(this.config,e,"json"),i=f(e.messages,e.system),s=p(this.binary,o,{signal:r,stdinData:i}),c=g(s.stderr),t=await w(s.stdout,this.modelId),u=await s.waitForExit(),a=await c,d=m("opencode",u.code,a);return d!==null?k(d):h(t)}async*streamText(e,r){let o=T(this.config,e,"stream-json"),i=f(e.messages,e.system),s=p(this.binary,o,{signal:r,stdinData:i}),c=g(s.stderr);try{for await(let d of v(s.stdout)){let x=E(d);x!==null&&(yield x)}let t=await s.waitForExit(),u=await c,a=m("opencode",t.code,u);a!==null&&(yield{kind:"error",error:a})}catch(t){t instanceof l?yield{kind:"error",error:t}:yield{kind:"error",error:new l(t instanceof Error?t.message:String(t),{provider:"opencode",cause:t instanceof Error?t:void 0})}}}close(){return Promise.resolve()}getRawClient(){return null}},_={provider:"opencode",async createModel(n){let e=await S("opencode",n);return new y(e,n)}},T=(n,e,r)=>{let o=["--output-format",r];o.push("--model",n.model),e.maxTokens!==void 0&&o.push("--max-tokens",String(e.maxTokens));let i=n.properties?.args;return i!==void 0&&o.push(...i),o},E=n=>{if(n===null||typeof n!="object")return null;let e=n;if(e.type==="content_block_delta"||e.type==="assistant"){let r=e.delta?.text??e.message?.content?.[0]?.text;return r!==void 0?{kind:"content_delta",textDelta:r}:null}return e.type==="result"||e.done===!0?{kind:"message_done",stopReason:"end_turn",usage:{inputTokens:e.usage?.input_tokens??0,outputTokens:e.usage?.output_tokens??0,totalTokens:(e.usage?.input_tokens??0)+(e.usage?.output_tokens??0)}}:e.type==="error"?{kind:"error",error:new l(e.error?.message??"Unknown OpenCode error",{provider:"opencode"})}:e.content!==void 0&&typeof e.content=="string"?{kind:"content_delta",textDelta:e.content}:null};export{y as a,_ as b};
1
+ import{a as S,b as p,c as v,d as w,e as g,f as m,g as f}from"./chunk-Y45DQJSS.js";import{a as l}from"./chunk-JYVB6UAV.js";import{a as h,b as k}from"./chunk-OAWYVETM.js";var y=class{capabilities=["text_generation","streaming"];provider="opencode";modelId;binary;config;constructor(e,r){this.binary=e,this.config=r,this.modelId=r.model}async generateText(e,r){let o=T(this.config,e,"json"),i=f(e.messages,e.system),s=p(this.binary,o,{signal:r,stdinData:i}),c=g(s.stderr),t=await w(s.stdout,this.modelId),u=await s.waitForExit(),a=await c,d=m("opencode",u.code,a);return d!==null?k(d):h(t)}async*streamText(e,r){let o=T(this.config,e,"stream-json"),i=f(e.messages,e.system),s=p(this.binary,o,{signal:r,stdinData:i}),c=g(s.stderr);try{for await(let d of v(s.stdout)){let x=E(d);x!==null&&(yield x)}let t=await s.waitForExit(),u=await c,a=m("opencode",t.code,u);a!==null&&(yield{kind:"error",error:a})}catch(t){t instanceof l?yield{kind:"error",error:t}:yield{kind:"error",error:new l(t instanceof Error?t.message:String(t),{provider:"opencode",cause:t instanceof Error?t:void 0})}}}close(){return Promise.resolve()}getRawClient(){return null}},_={provider:"opencode",async createModel(n){let e=await S("opencode",n);return new y(e,n)}},T=(n,e,r)=>{let o=["--output-format",r];o.push("--model",n.model),e.maxTokens!==void 0&&o.push("--max-tokens",String(e.maxTokens));let i=n.properties?.args;return i!==void 0&&o.push(...i),o},E=n=>{if(n===null||typeof n!="object")return null;let e=n;if(e.type==="content_block_delta"||e.type==="assistant"){let r=e.delta?.text??e.message?.content?.[0]?.text;return r!==void 0?{kind:"content_delta",textDelta:r}:null}return e.type==="result"||e.done===!0?{kind:"message_done",stopReason:"end_turn",usage:{inputTokens:e.usage?.input_tokens??0,outputTokens:e.usage?.output_tokens??0,totalTokens:(e.usage?.input_tokens??0)+(e.usage?.output_tokens??0)}}:e.type==="error"?{kind:"error",error:new l(e.error?.message??"Unknown OpenCode error",{provider:"opencode"})}:e.content!==void 0&&typeof e.content=="string"?{kind:"content_delta",textDelta:e.content}:null};export{y as a,_ as b};
@@ -1,4 +1,4 @@
1
- import{a as b}from"./chunk-IFE5SYGK.js";import{f as y}from"./chunk-KRKOWSYW.js";import{i as n}from"./chunk-Y5E7ZCCX.js";var S="<!-- noskills:start -->",g="<!-- noskills:end -->",Y=(e,t,s="npx eser noskills")=>{let o=[S,"## noskills orchestrator","","State-driven orchestration. Do NOT read `.eser/` files directly \u2014 noskills provides everything via JSON.","","### Protocol","",` ${s} spec <name> next # get instruction`,` ${s} spec <name> next --answer="response" # submit and advance`,` ${s} spec new "description" # create spec (name auto-generated)`,"","Every spec command MUST include `spec <name>`. Use `"+s+" spec list` for available specs.","","### Core rules","","- Call noskills ONCE per interaction. One question, one answer, one submit.","- Call `next` at: conversation start, before file edits, after completing work, at decisions.","- Never batch-submit. Never answer discovery questions yourself.","- Never skip steps or infer decisions. Ask first. Explicit > Clever.","- NEVER suggest bypassing or skipping noskills. Discovery is not overhead.","- NEVER ask permission to run the next noskills command. After spec new \u2192 run next. After approve \u2192 run next. Each step has one next step. Just run it.","- Execute noskills commands IMMEDIATELY \u2014 the output has all context needed.","- Display `roadmap` before content. Display `gate` prominently.","","### Interactive choices","","- Use AskUserQuestion for `interactiveOptions`. Use `commandMap` to resolve selections.","- On recurring patterns or corrections: ask 'Permanent rule?' \u2192 `"+s+' rule add "description"`.'];if((t?.allowGit??!1)||o.push("","### Git","","Read-only: log, diff, status, show, blame. No write commands (commit, push, checkout, etc.)."),o.push("","### Spec Creation","","When the user wants a spec:",'1. Ask "What do you want to build?" \u2014 nothing else.',"2. Take their full answer as the description.",`3. Run: ${s} spec new "their answer"`,"Do NOT suggest names. Do NOT analyze before creating. Just ask, take the answer, create.","","### Concern Management","",'When user says "add concerns" or "manage concerns":',`- Run \`${s} concern list\` immediately. Do NOT analyze which concerns are appropriate.`,"- Present list via AskUserQuestion with multiSelect:true, max 4 options per question.",`- Add all selected concerns in ONE command: ${s} concern add open-source well-engineered long-lived`,"","### Discovery","","Listen first: after spec creation, ask user to share context before mode selection.","Modes: full (default), validate, technical-depth, ship-fast, explore.","Pre-scan codebase before questions. Challenge premises. Propose alternatives.","With --from-plan: extract answers, present for user confirmation.","","### Mode Management","","noskills manages Claude Code plan mode transitions automatically.","Follow the `modeDirective` field in each `noskills next` output.","","| Phase | Mode |","|-------|------|","| IDLE | plan mode optional \u2014 no active spec |","| DISCOVERY, DISCOVERY_REFINEMENT, SPEC_PROPOSAL | **plan mode** \u2014 read-only, no file edits |","| EXECUTING | **normal mode** \u2014 full write access for sub-agents |","| BLOCKED | **plan mode** \u2014 analyze the blocker, do not edit |","| COMPLETED | plan mode optional |","","Non-Claude-Code platforms: `modeDirective` is advisory. Hooks enforce file restrictions mechanically.","","### Execution","","- Re-read files before and after editing. Files >500 LOC: read in chunks.","- Run type-check + lint after every edit. Never mark AC passed if type-check fails.","- If search returns few results, re-run narrower \u2014 assume truncation.","- Clean dead code before structural refactors on files >300 LOC.","- Complete the spec \u2014 no mid-execution pauses or checkpoints.","- `meta` block has resume context for session start or after compaction."),e.length>0){o.push("","### Active Rules","");for(let i of e)o.push(`- ${i}`)}return o.push(g),o.join(`
1
+ import{a as b}from"./chunk-IFE5SYGK.js";import{f as y}from"./chunk-WDKWHGJU.js";import{i as n}from"./chunk-Y5E7ZCCX.js";var S="<!-- noskills:start -->",g="<!-- noskills:end -->",Y=(e,t,s="npx eser noskills")=>{let o=[S,"## noskills orchestrator","","State-driven orchestration. Do NOT read `.eser/` files directly \u2014 noskills provides everything via JSON.","","### Protocol","",` ${s} spec <name> next # get instruction`,` ${s} spec <name> next --answer="response" # submit and advance`,` ${s} spec new "description" # create spec (name auto-generated)`,"","Every spec command MUST include `spec <name>`. Use `"+s+" spec list` for available specs.","","### Core rules","","- Call noskills ONCE per interaction. One question, one answer, one submit.","- Call `next` at: conversation start, before file edits, after completing work, at decisions.","- Never batch-submit. Never answer discovery questions yourself.","- Never skip steps or infer decisions. Ask first. Explicit > Clever.","- NEVER suggest bypassing or skipping noskills. Discovery is not overhead.","- NEVER ask permission to run the next noskills command. After spec new \u2192 run next. After approve \u2192 run next. Each step has one next step. Just run it.","- Execute noskills commands IMMEDIATELY \u2014 the output has all context needed.","- Display `roadmap` before content. Display `gate` prominently.","","### Interactive choices","","- Use AskUserQuestion for `interactiveOptions`. Use `commandMap` to resolve selections.","- On recurring patterns or corrections: ask 'Permanent rule?' \u2192 `"+s+' rule add "description"`.'];if((t?.allowGit??!1)||o.push("","### Git","","Read-only: log, diff, status, show, blame. No write commands (commit, push, checkout, etc.)."),o.push("","### Spec Creation","","When the user wants a spec:",'1. Ask "What do you want to build?" \u2014 nothing else.',"2. Take their full answer as the description.",`3. Run: ${s} spec new "their answer"`,"Do NOT suggest names. Do NOT analyze before creating. Just ask, take the answer, create.","","### Concern Management","",'When user says "add concerns" or "manage concerns":',`- Run \`${s} concern list\` immediately. Do NOT analyze which concerns are appropriate.`,"- Present list via AskUserQuestion with multiSelect:true, max 4 options per question.",`- Add all selected concerns in ONE command: ${s} concern add open-source well-engineered long-lived`,"","### Discovery","","Listen first: after spec creation, ask user to share context before mode selection.","Modes: full (default), validate, technical-depth, ship-fast, explore.","Pre-scan codebase before questions. Challenge premises. Propose alternatives.","With --from-plan: extract answers, present for user confirmation.","","### Mode Management","","noskills manages Claude Code plan mode transitions automatically.","Follow the `modeDirective` field in each `noskills next` output.","","| Phase | Mode |","|-------|------|","| IDLE | plan mode optional \u2014 no active spec |","| DISCOVERY, DISCOVERY_REFINEMENT, SPEC_PROPOSAL | **plan mode** \u2014 read-only, no file edits |","| EXECUTING | **normal mode** \u2014 full write access for sub-agents |","| BLOCKED | **plan mode** \u2014 analyze the blocker, do not edit |","| COMPLETED | plan mode optional |","","Non-Claude-Code platforms: `modeDirective` is advisory. Hooks enforce file restrictions mechanically.","","### Execution","","- Re-read files before and after editing. Files >500 LOC: read in chunks.","- Run type-check + lint after every edit. Never mark AC passed if type-check fails.","- If search returns few results, re-run narrower \u2014 assume truncation.","- Clean dead code before structural refactors on files >300 LOC.","- Complete the spec \u2014 no mid-execution pauses or checkpoints.","- `meta` block has resume context for session start or after compaction."),e.length>0){o.push("","### Active Rules","");for(let i of e)o.push(`- ${i}`)}return o.push(g),o.join(`
2
2
  `)},x=async(e,t,s,o="npx eser noskills")=>{let i=`${e}/CLAUDE.md`,r=Y(t,s,o),a;try{a=await n.fs.readTextFile(i);let l=a.indexOf(S),c=a.indexOf(g);l!==-1&&c!==-1?a=a.slice(0,l)+r+a.slice(c+g.length):a=a.trimEnd()+`
3
3
 
4
4
  `+r+`
@@ -1,4 +1,4 @@
1
- import{f as a}from"./chunk-KRKOWSYW.js";import{i as r}from"./chunk-Y5E7ZCCX.js";var m=a.eventsDir,u=a.eventsFile,w=async(c,s)=>{let i=`${c}/${a.eventsDir}`,e=`${c}/${a.eventsFile}`;await r.fs.mkdir(i,{recursive:!0});let n=JSON.stringify(s)+`
1
+ import{f as a}from"./chunk-WDKWHGJU.js";import{i as r}from"./chunk-Y5E7ZCCX.js";var m=a.eventsDir,u=a.eventsFile,w=async(c,s)=>{let i=`${c}/${a.eventsDir}`,e=`${c}/${a.eventsFile}`;await r.fs.mkdir(i,{recursive:!0});let n=JSON.stringify(s)+`
2
2
  `,t="";try{t=await r.fs.readTextFile(e)}catch{}await r.fs.writeTextFile(e,t+n)},x=async(c,s)=>{let i=`${c}/${a.eventsFile}`,e;try{e=await r.fs.readTextFile(i)}catch{return[]}let n=e.trim().split(`
3
3
  `).filter(t=>t.length>0).map(t=>{try{return JSON.parse(t)}catch{return null}}).filter(t=>t!==null);return s?.since!==void 0&&(n=n.filter(t=>t.ts>s.since)),n.reverse(),s?.limit!==void 0&&s.limit>0&&(n=n.slice(0,s.limit)),n},E=(c,s)=>{let i=`${c}/${a.eventsFile}`,e=0,n=!1;(async()=>{try{e=(await r.fs.stat(i)).size}catch{e=0}})();let t=setInterval(async()=>{if(!n)try{let o=await r.fs.stat(i);if(o.size<=e)return;let d=await r.fs.readTextFile(i),p=new TextEncoder().encode(d);if(p.length>e){let v=d.slice(new TextDecoder().decode(p.slice(0,e)).length).trim().split(`
4
4
  `).filter(l=>l.length>0);for(let l of v)try{let f=JSON.parse(l);s(f)}catch{}}e=o.size}catch{}},500);return()=>{n=!0,clearInterval(t)}};export{w as a,x as b,E as c};
@@ -1,4 +1,4 @@
1
- import{e as C}from"./chunk-KRKOWSYW.js";import{i as y}from"./chunk-Y5E7ZCCX.js";import{e as A}from"./chunk-HISXAZ4Y.js";var g=A(C(),1);var $=[{id:"summary",title:"Summary",placeholder:"_Synthesize the spec in 2-3 sentences: what changes, why it matters, for whom._",position:"base:0"},{id:"problem-statement",title:"Problem Statement",placeholder:"_Describe the current pain: what is broken, missing, or inefficient? For whom? What happens today when they try?_",position:"base:1"},{id:"ambition",title:"Ambition",placeholder:"_What does success look like? Paint the 12-month ideal state \u2014 not just this feature, but the trajectory it starts._",position:"base:2"},{id:"reversibility",title:"Reversibility",placeholder:"_If this ships and is wrong, how do we undo it? Rollback steps, feature flags, migration reversibility, blast radius._",position:"base:3"},{id:"user-impact",title:"User Impact",placeholder:"_Who benefits and how? What changes for them \u2014 before/after their day, their workflow, their frustration?_",position:"base:4"},{id:"verification-strategy",title:"Verification Strategy",placeholder:"_How will we know it worked? Automated tests, manual smoke tests, metrics to watch, acceptance checklist._",position:"base:5"},{id:"scope-boundary",title:"Scope Boundary",placeholder:"_What is explicitly OUT of scope? Name specific features, use cases, or edge cases this spec does NOT address._",position:"base:6"},{id:"premises",title:"Premises",placeholder:"_List every assumption this spec makes. If an assumption turns out wrong, what breaks?_",position:"base:7"},{id:"tasks",title:"Tasks",placeholder:"_Break implementation into concrete tasks. Each task: what it does, how to verify it is done, any ordering constraints._",position:"base:8"},{id:"acceptance-criteria",title:"Acceptance Criteria",placeholder:"_Binary, testable criteria. Each item: the system does X when Y. No fuzzy language._",position:"base:9"}],D=(e,t,s)=>typeof t=="string"?{id:`${e}-${t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}`,title:t,placeholder:`_${t}: to be addressed during discovery._`,condition:null,position:`after:tasks:${s}`}:t,M=e=>{let t=$.map(i=>({...i,condition:null})),s=new Set(t.map(i=>i.id)),n=new Map;for(let i of e)for(let a=0;a<i.specSections.length;a++){let d=i.specSections[a],l=D(i.id,d,a),u={...l,concernSource:i.id},p=l.position.match(/^after:([^:]+)/),r=p!==null?p[1]:void 0,c=r!==void 0&&s.has(r)?r:"acceptance-criteria",h=n.get(c)??[];n.set(c,[...h,u])}let o=[];for(let i of t){o.push(i);let a=n.get(i.id)??[];o.push(...a)}return o},w={involvesWebUI:e=>e.involvesWebUI,involvesCLI:e=>e.involvesCLI,involvesPublicAPI:e=>e.involvesPublicAPI,involvesMigration:e=>e.involvesMigration,involvesDataHandling:e=>e.involvesDataHandling},j=(e,t,s)=>{let n=new Map(t.map(o=>[o.id,o]));return e.map(o=>{let i=n.get(o.sectionId);if(i===void 0||i.condition===null||o.status==="filled"||o.status==="na")return o;let a=w[i.condition];if(a===void 0)return o;let d=s!==null&&a(s);return d&&o.status==="conditional-hidden"?{...o,status:"placeholder"}:!d&&o.status==="placeholder"?{...o,status:"conditional-hidden"}:o})},W=(e,t)=>{if(t===null)return"unknown";let s=[["involvesWebUI","UI work"],["involvesCLI","CLI interaction"],["involvesPublicAPI","public API changes"],["involvesMigration","migration or deprecation"],["involvesDataHandling","data handling"]],n=[];for(let[o,i]of s){if(o==="source"||o==="inferredFrom")continue;let a=e!==null?!!e[o]:!1,d=!!t[o];!a&&d&&n.push(i)}return n.length>0?n.join(", "):"project classification update"},U=(e,t)=>{let s=new Set(e.filter(a=>a.status!=="conditional-hidden").map(a=>a.sectionId)),n=new Set(t.filter(a=>a.status!=="conditional-hidden").map(a=>a.sectionId)),o=[...n].filter(a=>!s.has(a)),i=[...s].filter(a=>!n.has(a));return o.length===0&&i.length===0?null:{revealed:o,hidden:i}},O={filled:"\u2713",placeholder:"\u25CB",na:"\u2014","conditional-hidden":"\u2298"},I="<!-- TOC:START -->",v="<!-- TOC:END -->",x=e=>{let t=[I,"## Sections"];for(let s of e){let n=O[s.status];s.status==="na"&&s.naReason!==void 0?t.push(`- ${n} ${s.sectionTitle} _(N/A: ${s.naReason})_`):s.status==="conditional-hidden"?t.push(`- ${n} ${s.sectionTitle} _(hidden \u2014 condition not met)_`):t.push(`- ${n} ${s.sectionTitle}`)}return t.push(v),t.join(`
1
+ import{e as C}from"./chunk-WDKWHGJU.js";import{i as y}from"./chunk-Y5E7ZCCX.js";import{e as A}from"./chunk-HISXAZ4Y.js";var g=A(C(),1);var $=[{id:"summary",title:"Summary",placeholder:"_Synthesize the spec in 2-3 sentences: what changes, why it matters, for whom._",position:"base:0"},{id:"problem-statement",title:"Problem Statement",placeholder:"_Describe the current pain: what is broken, missing, or inefficient? For whom? What happens today when they try?_",position:"base:1"},{id:"ambition",title:"Ambition",placeholder:"_What does success look like? Paint the 12-month ideal state \u2014 not just this feature, but the trajectory it starts._",position:"base:2"},{id:"reversibility",title:"Reversibility",placeholder:"_If this ships and is wrong, how do we undo it? Rollback steps, feature flags, migration reversibility, blast radius._",position:"base:3"},{id:"user-impact",title:"User Impact",placeholder:"_Who benefits and how? What changes for them \u2014 before/after their day, their workflow, their frustration?_",position:"base:4"},{id:"verification-strategy",title:"Verification Strategy",placeholder:"_How will we know it worked? Automated tests, manual smoke tests, metrics to watch, acceptance checklist._",position:"base:5"},{id:"scope-boundary",title:"Scope Boundary",placeholder:"_What is explicitly OUT of scope? Name specific features, use cases, or edge cases this spec does NOT address._",position:"base:6"},{id:"premises",title:"Premises",placeholder:"_List every assumption this spec makes. If an assumption turns out wrong, what breaks?_",position:"base:7"},{id:"tasks",title:"Tasks",placeholder:"_Break implementation into concrete tasks. Each task: what it does, how to verify it is done, any ordering constraints._",position:"base:8"},{id:"acceptance-criteria",title:"Acceptance Criteria",placeholder:"_Binary, testable criteria. Each item: the system does X when Y. No fuzzy language._",position:"base:9"}],D=(e,t,s)=>typeof t=="string"?{id:`${e}-${t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}`,title:t,placeholder:`_${t}: to be addressed during discovery._`,condition:null,position:`after:tasks:${s}`}:t,M=e=>{let t=$.map(i=>({...i,condition:null})),s=new Set(t.map(i=>i.id)),n=new Map;for(let i of e)for(let a=0;a<i.specSections.length;a++){let d=i.specSections[a],l=D(i.id,d,a),u={...l,concernSource:i.id},p=l.position.match(/^after:([^:]+)/),r=p!==null?p[1]:void 0,c=r!==void 0&&s.has(r)?r:"acceptance-criteria",h=n.get(c)??[];n.set(c,[...h,u])}let o=[];for(let i of t){o.push(i);let a=n.get(i.id)??[];o.push(...a)}return o},w={involvesWebUI:e=>e.involvesWebUI,involvesCLI:e=>e.involvesCLI,involvesPublicAPI:e=>e.involvesPublicAPI,involvesMigration:e=>e.involvesMigration,involvesDataHandling:e=>e.involvesDataHandling},j=(e,t,s)=>{let n=new Map(t.map(o=>[o.id,o]));return e.map(o=>{let i=n.get(o.sectionId);if(i===void 0||i.condition===null||o.status==="filled"||o.status==="na")return o;let a=w[i.condition];if(a===void 0)return o;let d=s!==null&&a(s);return d&&o.status==="conditional-hidden"?{...o,status:"placeholder"}:!d&&o.status==="placeholder"?{...o,status:"conditional-hidden"}:o})},W=(e,t)=>{if(t===null)return"unknown";let s=[["involvesWebUI","UI work"],["involvesCLI","CLI interaction"],["involvesPublicAPI","public API changes"],["involvesMigration","migration or deprecation"],["involvesDataHandling","data handling"]],n=[];for(let[o,i]of s){if(o==="source"||o==="inferredFrom")continue;let a=e!==null?!!e[o]:!1,d=!!t[o];!a&&d&&n.push(i)}return n.length>0?n.join(", "):"project classification update"},U=(e,t)=>{let s=new Set(e.filter(a=>a.status!=="conditional-hidden").map(a=>a.sectionId)),n=new Set(t.filter(a=>a.status!=="conditional-hidden").map(a=>a.sectionId)),o=[...n].filter(a=>!s.has(a)),i=[...s].filter(a=>!n.has(a));return o.length===0&&i.length===0?null:{revealed:o,hidden:i}},O={filled:"\u2713",placeholder:"\u25CB",na:"\u2014","conditional-hidden":"\u2298"},I="<!-- TOC:START -->",v="<!-- TOC:END -->",x=e=>{let t=[I,"## Sections"];for(let s of e){let n=O[s.status];s.status==="na"&&s.naReason!==void 0?t.push(`- ${n} ${s.sectionTitle} _(N/A: ${s.naReason})_`):s.status==="conditional-hidden"?t.push(`- ${n} ${s.sectionTitle} _(hidden \u2014 condition not met)_`):t.push(`- ${n} ${s.sectionTitle}`)}return t.push(v),t.join(`
2
2
  `)},f="---",E=e=>{let t=e.split(`
3
3
  `);if(t[0]!==f)return{metadata:{created:{date:"",user:""},lastModified:{date:"",user:""},contributors:[],approvals:[],pendingDecisions:[]},body:e};let s=t.indexOf(f,1);if(s===-1)throw new Error("spec.md frontmatter is malformed: found opening --- but no closing ---. Inspect the file manually and restore a valid YAML frontmatter block.");let n=t.slice(1,s).join(`
4
4
  `),o=g.parse(n),i=t.slice(s+1).join(`
@@ -1 +1 @@
1
- import{c as k,d as T,e as x,f as R}from"./chunk-PSX63TYP.js";import{a as y,k as h}from"./chunk-JYVB6UAV.js";import{a as m,b as p}from"./chunk-OAWYVETM.js";var l=class{capabilities=["text_generation","streaming","tool_calling","vision","audio","structured_output","reasoning"];provider="vertexai";modelId;client;config;constructor(e,t){this.client=e,this.config=t,this.modelId=t.model}async generateText(e,t){let r=v(this.config,e);try{let o=await this.client.models.generateContent({model:this.config.model,...r,config:{...r.config,httpOptions:t!==void 0?{signal:t}:void 0}});return m(x(o,this.modelId))}catch(o){return p(C(o))}}async*streamText(e,t){let r=v(this.config,e);try{let o=await this.client.models.generateContentStream({model:this.config.model,...r,config:{...r.config,httpOptions:t!==void 0?{signal:t}:void 0}}),s=0,a=0;for await(let c of o){let g=c?.candidates??[];if(g.length>0){let u=g[0],S=u?.content?.parts??[];for(let i of S)i.text!==void 0&&(yield{kind:"content_delta",textDelta:i.text}),i.functionCall!==void 0&&(yield{kind:"tool_call_delta",toolCall:{id:i.functionCall.name,name:i.functionCall.name,arguments:i.functionCall.args??{}}});let d=u?.finishReason;if(d!=null){let i=c?.usageMetadata;s=i?.promptTokenCount??s,a=i?.candidatesTokenCount??a;let f="end_turn";d==="MAX_TOKENS"&&(f="max_tokens"),yield{kind:"message_done",stopReason:f,usage:{inputTokens:s,outputTokens:a,totalTokens:s+a}}}}}}catch(o){yield{kind:"error",error:C(o)}}}async close(){}getRawClient(){return this.client}},_={provider:"vertexai",async createModel(n){let{GoogleGenAI:e}=await import("./node-GQQ42DT2.js"),t={vertexai:!0,project:n.projectId,location:n.location??"us-central1"};n.apiKey!==void 0&&(t.apiKey=n.apiKey);let r=new e(t);return new l(r,n)}},v=(n,e)=>{let{contents:t,systemInstruction:r}=k(e.messages),o={maxOutputTokens:e.maxTokens??n.maxTokens};e.temperature!==void 0&&(o.temperature=e.temperature),e.topP!==void 0&&(o.topP=e.topP),e.stopWords!==void 0&&(o.stopSequences=e.stopWords),e.responseFormat!==void 0&&e.responseFormat.type==="json_schema"&&(o.responseMimeType="application/json",o.responseSchema=e.responseFormat.jsonSchema),e.thinkingBudget!==void 0&&(o.thinkingConfig={thinkingBudget:e.thinkingBudget});let s={contents:t,config:o},a=e.system??r;return a!=null&&(s.systemInstruction=a),e.tools!==void 0&&(s.tools=T(e.tools)),e.safetySettings!==void 0&&(s.safetySettings=e.safetySettings),s},C=n=>{if(n instanceof y)return n;let e=n instanceof Error?n:new Error(String(n)),t=R(n);return h("vertexai",t,e)};export{l as a,_ as b};
1
+ import{c as k,d as T,e as x,f as R}from"./chunk-PSX63TYP.js";import{a as y,k as h}from"./chunk-JYVB6UAV.js";import{a as m,b as p}from"./chunk-OAWYVETM.js";var l=class{capabilities=["text_generation","streaming","tool_calling","vision","audio","structured_output","reasoning"];provider="vertexai";modelId;client;config;constructor(e,t){this.client=e,this.config=t,this.modelId=t.model}async generateText(e,t){let r=v(this.config,e);try{let o=await this.client.models.generateContent({model:this.config.model,...r,config:{...r.config,httpOptions:t!==void 0?{signal:t}:void 0}});return m(x(o,this.modelId))}catch(o){return p(C(o))}}async*streamText(e,t){let r=v(this.config,e);try{let o=await this.client.models.generateContentStream({model:this.config.model,...r,config:{...r.config,httpOptions:t!==void 0?{signal:t}:void 0}}),s=0,a=0;for await(let c of o){let g=c?.candidates??[];if(g.length>0){let u=g[0],S=u?.content?.parts??[];for(let i of S)i.text!==void 0&&(yield{kind:"content_delta",textDelta:i.text}),i.functionCall!==void 0&&(yield{kind:"tool_call_delta",toolCall:{id:i.functionCall.name,name:i.functionCall.name,arguments:i.functionCall.args??{}}});let d=u?.finishReason;if(d!=null){let i=c?.usageMetadata;s=i?.promptTokenCount??s,a=i?.candidatesTokenCount??a;let f="end_turn";d==="MAX_TOKENS"&&(f="max_tokens"),yield{kind:"message_done",stopReason:f,usage:{inputTokens:s,outputTokens:a,totalTokens:s+a}}}}}}catch(o){yield{kind:"error",error:C(o)}}}async close(){}getRawClient(){return this.client}},_={provider:"vertexai",async createModel(n){let{GoogleGenAI:e}=await import("./node-DMUOWFGA.js"),t={vertexai:!0,project:n.projectId,location:n.location??"us-central1"};n.apiKey!==void 0&&(t.apiKey=n.apiKey);let r=new e(t);return new l(r,n)}},v=(n,e)=>{let{contents:t,systemInstruction:r}=k(e.messages),o={maxOutputTokens:e.maxTokens??n.maxTokens};e.temperature!==void 0&&(o.temperature=e.temperature),e.topP!==void 0&&(o.topP=e.topP),e.stopWords!==void 0&&(o.stopSequences=e.stopWords),e.responseFormat!==void 0&&e.responseFormat.type==="json_schema"&&(o.responseMimeType="application/json",o.responseSchema=e.responseFormat.jsonSchema),e.thinkingBudget!==void 0&&(o.thinkingConfig={thinkingBudget:e.thinkingBudget});let s={contents:t,config:o},a=e.system??r;return a!=null&&(s.systemInstruction=a),e.tools!==void 0&&(s.tools=T(e.tools)),e.safetySettings!==void 0&&(s.safetySettings=e.safetySettings),s},C=n=>{if(n instanceof y)return n;let e=n instanceof Error?n:new Error(String(n)),t=R(n);return h("vertexai",t,e)};export{l as a,_ as b};
@@ -1,4 +1,4 @@
1
- import{f as a}from"./chunk-KRKOWSYW.js";import{i as n}from"./chunk-Y5E7ZCCX.js";var m=t=>{if(t?.driver!=="acp")return!1;let e=t.driverPid;return typeof e!="number"?!1:n.process.isAlive(e)},f=async t=>{let e=`${t}/${a.progressesDir}/files-changed.jsonl`;try{let s=(await n.fs.readTextFile(e)).trim().split(`
1
+ import{f as a}from"./chunk-WDKWHGJU.js";import{i as n}from"./chunk-Y5E7ZCCX.js";var m=t=>{if(t?.driver!=="acp")return!1;let e=t.driverPid;return typeof e!="number"?!1:n.process.isAlive(e)},f=async t=>{let e=`${t}/${a.progressesDir}/files-changed.jsonl`;try{let s=(await n.fs.readTextFile(e)).trim().split(`
2
2
  `).filter(Boolean).map(r=>{try{return JSON.parse(r).file}catch{return null}}).filter(r=>r!==null);return[...new Set(s)]}catch{return[]}},p=async t=>{try{let{execSync:e}=await import("node:child_process"),i=e("git diff --name-only",{cwd:t,encoding:"utf-8",timeout:5e3}),r=e("git diff --stat",{cwd:t,encoding:"utf-8",timeout:5e3}).trim().split(`
3
3
  `);return{files:i.trim().split(`
4
4
  `).filter(Boolean),stat:r[r.length-1]??""}}catch{return{files:[],stat:""}}},y=async t=>{let e;try{let u=await n.fs.readTextFile(`${t}/${a.stateFile}`);e=JSON.parse(u)}catch{return null}let i=e.execution??{},[s,r]=await Promise.all([f(t),p(t)]),c=[...new Set([...s,...r.files])],o=(i.iteration??0)+1,l=r.stat.trim(),d=`${t}/${a.progressesDir}/iterations`;try{await n.fs.mkdir(d,{recursive:!0}),await n.fs.writeTextFile(`${d}/iteration-${o}.json`,JSON.stringify({iteration:o,files:c,gitStat:l,timestamp:new Date().toISOString()},null,2)+`
@@ -1,3 +1,3 @@
1
- import{c as V}from"./chunk-CML74SNT.js";import{a as A}from"./chunk-JYVB6UAV.js";import{a as L,b as x}from"./chunk-575Y3OEG.js";import{a as W,b as N,f as b}from"./chunk-OAWYVETM.js";var m=class extends Error{statusCode;request;response;body;retryAfter;constructor(e,t){super(e,{cause:t?.cause}),this.name="HttpClientError",this.statusCode=t?.statusCode??null,this.request=t?.request??null,this.response=t?.response??null,this.body=t?.body,this.retryAfter=t?.retryAfter??null}},E=class extends m{code="RESPONSE_ERROR";constructor(e,t){super(e,t),this.name="HttpResponseError"}},v=class extends m{code="TIMEOUT";constructor(e,t){super(e,t),this.name="HttpTimeoutError"}},k=class extends m{code="ABORT_ERROR";constructor(e,t){super(e,t),this.name="HttpAbortError"}},_=class extends m{code="RATE_LIMITED";constructor(e,t){super(e,t),this.name="HttpRateLimitError"}},q=class extends m{code="NETWORK_ERROR";constructor(e,t){super(e,t),this.name="HttpNetworkError"}},te=s=>s===429?_:s>=500&&s<=599||s===408?E:null,U=(s,e)=>{if(s instanceof m)return s;if(s.name==="TimeoutError")return new v(s.message,{cause:s,...e!==void 0&&{statusCode:e.status,response:e}});if(s.name==="AbortError")return new k(s.message,{cause:s});if(e!==void 0){let t=te(e.status),r={statusCode:e.status,response:e,cause:s};return t!==null?new t(s.message,r):new E(s.message,r)}return s.message.includes("Failed to fetch")||s.message.includes("fetch failed")||s.message.includes("ECONNREFUSED")||s.message.includes("ENOTFOUND")?new q(s.message,{cause:s}):new m(s.message,{cause:s})};var X=async(s,e)=>{let t=s;for(let r of e)t=await r.intercept(t);return t},z=async(s,e)=>{let t=s;for(let r of e)t=await r.intercept(t);return t};var O=class extends Error{status;statusText;headers;body;retries;constructor(e){super(e.error),this.name="GoHttpError",this.status=e.status??0,this.statusText=e.statusText??"",this.headers=e.headers??{},this.body=e.body??"",this.retries=e.retries??0}},K=async(s={})=>{await L();let e=x();if(e===null)throw new Error("native library not available for createGoHttpClient");let t=e.symbols.EserAjanHttpCreate(JSON.stringify(s)),r=JSON.parse(t);if(r.error)throw new Error(r.error);let n=r.handle;return{request(o){let a=x();if(a===null)return Promise.reject(new Error("native library unavailable"));let u=a.symbols.EserAjanHttpRequest(JSON.stringify({handle:n,...o})),l=JSON.parse(u);return l.error?Promise.reject(new O({...l,error:l.error})):Promise.resolve(l)},requestStream(o){let a=x();if(a===null)return Promise.reject(new Error("native library unavailable"));let u=a.symbols.EserAjanHttpRequestStream(JSON.stringify({handle:n,...o})),l=JSON.parse(u);if(l.error||!l.handle)return Promise.reject(new O({error:l.error??"failed to open HTTP stream",status:l.status,statusText:l.statusText,headers:l.headers,body:l.body}));let i=l.handle,f=l.status??200,p=l.statusText??"",c=l.headers??{},S=new ReadableStream({pull(y){let M=x();if(M===null){y.error(new Error("native library unavailable"));return}let j=M.symbols.EserAjanHttpStreamRead(i),T=JSON.parse(j);if(T.error){y.error(new Error(T.error));return}if(T.done){y.close();return}if(T.chunk){let g=atob(T.chunk),d=new Uint8Array(g.length);for(let H=0;H<g.length;H++)d[H]=g.charCodeAt(H);y.enqueue(d)}},cancel(){let y=x();y!==null&&y.symbols.EserAjanHttpStreamClose(i)}});return Promise.resolve({body:S,status:f,statusText:p,headers:c})},close(){let o=x();o!==null&&o.symbols.EserAjanHttpClose(JSON.stringify({handle:n}))}}};var ie=3e4,G={maxAttempts:3,initialDelay:1e3,maxDelay:3e4,factor:2,jitter:!0,retryableStatuses:[408,429,500,502,503,504],respectRetryAfter:!0},ae=s=>new Promise(e=>setTimeout(e,s)),I=(s,e)=>{if(e.startsWith("http://")||e.startsWith("https://"))return e;if(s!==void 0&&s!==""){let t=s.replace(/\/$/,""),r=e.startsWith("/")?e:`/${e}`;return`${t}${r}`}return e};var D=s=>{if(s===null)return null;let e=Number(s);if(!Number.isNaN(e)&&e>=0)return Math.round(e*1e3);let t=new Date(s);return Number.isNaN(t.getTime())?null:Math.max(0,t.getTime()-Date.now())},F=s=>{let e=s.get("X-RateLimit-Remaining")??s.get("x-rate-limit-remaining"),t=s.get("X-RateLimit-Limit")??s.get("x-rate-limit-limit"),r=s.get("X-RateLimit-Reset")??s.get("x-rate-limit-reset"),n=s.get("Retry-After");if(e===null&&t===null&&r===null&&n===null)return;let o=D(n);return{...e!==null&&{remaining:Number(e)},...t!==null&&{limit:Number(t)},...r!==null&&{resetAt:Number(r)},...o!==null&&{retryAfterSeconds:o/1e3}}},Y=(s,e)=>{let t=e.initialDelay*Math.pow(e.factor,s);return t=Math.min(t,e.maxDelay),e.jitter&&(t=t*(.5+Math.random()*.5)),Math.round(t)},ue=(s,e)=>s===!1||e===!1?!1:s===void 0&&e===void 0?G:{...G,...s??{},...e??{}},le=async s=>{try{return await s.clone().json()}catch{return await s.clone().text().catch(()=>{})}},pe=s=>{if(typeof s=="object"&&s!==null){let e=s,t=e.error??e.message??e.detail??e.title;if(t!==void 0)return String(t)}return null},J=class s{config;#e=null;#t=null;constructor(e){this.config=e??{}}withDefaults(e){return new s({...this.config,...e,headers:{...this.config.headers??{},...e.headers??{}}})}async request(e,t,r){return await this.#r(),this.#e!==null?this.#n(e,t,r):this._execute(e,t,r)}get(e,t){return this._execute("GET",e,t)}post(e,t){return this._execute("POST",e,t)}put(e,t){return this._execute("PUT",e,t)}patch(e,t){return this._execute("PATCH",e,t)}delete(e,t){return this._execute("DELETE",e,t)}async requestStream(e,t,r){return await this.#r(),this.#e!==null?this.#o(e,t,r):this._executeStream(e,t,r)}postStream(e,t){return this.requestStream("POST",e,t)}requestResult(e,t,r){return b(this._execute(e,t,r),C)}getResult(e,t){return b(this._execute("GET",e,t),C)}postResult(e,t){return b(this._execute("POST",e,t),C)}putResult(e,t){return b(this._execute("PUT",e,t),C)}patchResult(e,t){return b(this._execute("PATCH",e,t),C)}deleteResult(e,t){return b(this._execute("DELETE",e,t),C)}requestStreamResult(e,t,r){return b(this._executeStream(e,t,r),C)}postStreamResult(e,t){return b(this._executeStream("POST",e,t),C)}async _executeFetch(e,t,r,n){let o=this.config.fetchFn??fetch,a=this.config._delayFn??ae,u=I(this.config.baseUrl,t),l=new URL(u);if(r?.params!==void 0)for(let[g,d]of Object.entries(r.params))l.searchParams.set(g,d);let i={...this.config.headers??{},...r?.headers??{}},f,p=r?.body;p!==void 0&&(typeof p=="string"||p instanceof ArrayBuffer||ArrayBuffer.isView(p)||p instanceof Blob||p instanceof FormData||p instanceof URLSearchParams||p instanceof ReadableStream?f=p:typeof p=="object"&&p!==null&&(f=JSON.stringify(p),i["Content-Type"]===void 0&&(i["Content-Type"]="application/json")));let c=ue(this.config.retry,r?.retry),S=r?.timeout??this.config.timeout??ie,y=c===!1?1:c.maxAttempts??G.maxAttempts,M=this.config.interceptors?.request??[],j=0,T;for(let g=0;g<y;g++){g>0&&j++;let d,H;try{let R=r?.signal,w=AbortSignal.timeout(S),h=R!==void 0?AbortSignal.any([w,R]):w,P=new Request(l.toString(),{method:e,headers:i,body:f,signal:h});H=await X(P,M),d=await o(H)}catch(R){let w=R instanceof Error?R:new Error(String(R)),h=U(w);if(h instanceof v||h instanceof k)throw h;if(T=h,g<y-1){let P=Y(g,c===!1?G:c);await a(P)}continue}let $=F(d.headers);if(!d.ok){let R=await le(d),w=pe(R)??`HTTP ${d.status}`,h=$!==void 0?D(d.headers.get("Retry-After")):null,P=d.status===429?new _(w,{statusCode:d.status,response:d,body:R,...h!==null&&{retryAfter:h/1e3}}):new E(w,{statusCode:d.status,response:d,body:R});if((c!==!1?c.retryableStatuses:[]).includes(d.status)&&g<y-1){if(T=P,d.status===429&&c!==!1&&c.respectRetryAfter&&h!==null){await a(h);continue}let ee=Y(g,c===!1?G:c);await a(ee);continue}throw P}return await n(d,H,j,$)}throw T??new m(`Request failed after ${y} attempt(s)`)}_execute(e,t,r){let n=this.config.interceptors?.response??[];return this._executeFetch(e,t,r,async(o,a,u,l)=>{let i;if(o.status===204||o.status===304||o.headers.get("Content-Length")==="0")i=void 0;else if((o.headers.get("Content-Type")??"").includes("application/json"))i=await o.json();else{let c=await o.text();try{i=JSON.parse(c)}catch{i=c}}let f={data:i,status:o.status,statusText:o.statusText,headers:o.headers,request:a,raw:o,retries:u,...l!==void 0&&{rateLimit:l}};return f=await z(f,n),f})}_executeStream(e,t,r){return this._executeFetch(e,t,r,(n,o,a,u)=>n.body===null?Promise.reject(new q("Response body is null \u2014 server sent no body for a streaming request")):Promise.resolve({body:n.body,status:n.status,statusText:n.statusText,headers:n.headers,request:o,raw:n,retries:a,...u!==void 0&&{rateLimit:u}}))}#s(e){if(e instanceof O){if(e.status>0){let r=e.body;try{r=JSON.parse(e.body)}catch{}let n=D(e.headers["Retry-After"]??e.headers["retry-after"]??null),o={statusCode:e.status,body:r,...n!==null&&{retryAfter:n/1e3}};return e.status===429?new _(`HTTP ${e.status}`,o):new E(`HTTP ${e.status}`,o)}return new q(e.message,{cause:e})}let t=e instanceof Error?e:new Error(String(e));return U(t)}#r(){return this.config.fetchFn!==void 0?Promise.resolve():this.#t!==null?this.#t:(this.#t=K({baseUrl:this.config.baseUrl,timeout:this.config.timeout,headers:this.config.headers}).then(e=>{this.#e=e},()=>{}),this.#t)}async#n(e,t,r){let n=I(this.config.baseUrl,t),o={...this.config.headers??{},...r?.headers??{}},a=r?.body,u;a!==void 0&&(typeof a=="string"?u=a:typeof a=="object"&&a!==null&&!(a instanceof ReadableStream)&&(u=JSON.stringify(a),o["Content-Type"]===void 0&&(o["Content-Type"]="application/json")));let l={method:e,url:n,headers:o,...u!==void 0&&{body:u},...r?.timeout!==void 0&&{timeout:r.timeout}},i;try{i=await this.#e.request(l)}catch(y){throw this.#s(y)}let f=i.headers["content-type"]??i.headers["Content-Type"]??"",p;if(f.includes("application/json"))p=JSON.parse(i.body);else try{p=JSON.parse(i.body)}catch{p=i.body}let c=new Response(i.body,{status:i.status,statusText:i.statusText,headers:i.headers}),S=F(c.headers);return{data:p,status:i.status,statusText:i.statusText,headers:c.headers,request:new Request(n,{method:e,headers:o}),raw:c,retries:i.retries,...S!==void 0&&{rateLimit:S}}}async#o(e,t,r){let n=I(this.config.baseUrl,t),o={...this.config.headers??{},...r?.headers??{}},a=r?.body,u;a!==void 0&&(typeof a=="string"?u=a:typeof a=="object"&&a!==null&&!(a instanceof ReadableStream)&&(u=JSON.stringify(a),o["Content-Type"]===void 0&&(o["Content-Type"]="application/json")));let l={method:e,url:n,headers:o,...u!==void 0&&{body:u},...r?.timeout!==void 0&&{timeout:r.timeout}},i;try{i=await this.#e.requestStream(l)}catch(c){throw this.#s(c)}let f=new Headers(i.headers),p=F(f);return{body:i.body,status:i.status,statusText:i.statusText,headers:f,request:new Request(n,{method:e,headers:o}),raw:new Response(i.body,{status:i.status,statusText:i.statusText,headers:i.headers}),retries:0,...p!==void 0&&{rateLimit:p}}}close(){this.#e?.close(),this.#e=null,this.#t=null}},Q=s=>new J(s),C=s=>{if(s instanceof m)return s;let e=s instanceof Error?s:new Error(String(s));return new m(e.message,{cause:e})};var de="http://localhost:11434",B=class{capabilities=["text_generation","streaming","vision"];provider="ollama";modelId;_baseUrl;_client;config;constructor(e,t){this._baseUrl=e,this._client=Q({baseUrl:e,retry:!1}),this.config=t,this.modelId=t.model}async generateText(e,t){let r=Z(this.config,e,!1);try{let n=await this._client.post("/api/chat",{body:r,signal:t});return W(fe(n.data,this.modelId))}catch(n){if(n instanceof A)return N(n);let o=n instanceof m?n.statusCode??void 0:void 0;return N(new A(n instanceof Error?n.message:String(n),{provider:"ollama",statusCode:o,cause:n instanceof Error?n:void 0}))}}async*streamText(e,t){let r=Z(this.config,e,!0);try{let n=await this._client.postStream("/api/chat",{body:r,signal:t});for await(let o of V(n.body)){let a=ye(o);a!==null&&(yield a)}}catch(n){if(n instanceof A)yield{kind:"error",error:n};else{let o=n instanceof m?n.statusCode??void 0:void 0;yield{kind:"error",error:new A(n instanceof Error?n.message:String(n),{provider:"ollama",statusCode:o,cause:n instanceof Error?n:void 0})}}}}close(){return Promise.resolve()}getRawClient(){return null}},_e={provider:"ollama",createModel(s){let e=s.properties?.baseUrl??de;return Promise.resolve(new B(e,s))}},Z=(s,e,t)=>{let r=me(e.messages,e.system),n={model:s.model,messages:r,stream:t},o={};return e.temperature!==void 0&&(o.temperature=e.temperature),e.maxTokens!==void 0&&(o.num_predict=e.maxTokens),e.topP!==void 0&&(o.top_p=e.topP),e.stopWords!==void 0&&(o.stop=e.stopWords),Object.keys(o).length>0&&(n.options=o),e.responseFormat!==void 0&&(e.responseFormat.type==="json_schema"?n.format=e.responseFormat.jsonSchema:e.responseFormat.type==="json_object"&&(n.format="json")),n},me=(s,e)=>{let t=[];e!==void 0&&t.push({role:"system",content:e});for(let r of s){if(r.role==="system"){let u=[];for(let l of r.content)l.kind==="text"&&u.push(l.text);t.push({role:"system",content:u.join(`
1
+ import{c as V}from"./chunk-Y45DQJSS.js";import{a as A}from"./chunk-JYVB6UAV.js";import{a as L,b as x}from"./chunk-3JTDWOAJ.js";import{a as W,b as N,f as b}from"./chunk-OAWYVETM.js";var m=class extends Error{statusCode;request;response;body;retryAfter;constructor(e,t){super(e,{cause:t?.cause}),this.name="HttpClientError",this.statusCode=t?.statusCode??null,this.request=t?.request??null,this.response=t?.response??null,this.body=t?.body,this.retryAfter=t?.retryAfter??null}},E=class extends m{code="RESPONSE_ERROR";constructor(e,t){super(e,t),this.name="HttpResponseError"}},v=class extends m{code="TIMEOUT";constructor(e,t){super(e,t),this.name="HttpTimeoutError"}},k=class extends m{code="ABORT_ERROR";constructor(e,t){super(e,t),this.name="HttpAbortError"}},_=class extends m{code="RATE_LIMITED";constructor(e,t){super(e,t),this.name="HttpRateLimitError"}},q=class extends m{code="NETWORK_ERROR";constructor(e,t){super(e,t),this.name="HttpNetworkError"}},te=s=>s===429?_:s>=500&&s<=599||s===408?E:null,U=(s,e)=>{if(s instanceof m)return s;if(s.name==="TimeoutError")return new v(s.message,{cause:s,...e!==void 0&&{statusCode:e.status,response:e}});if(s.name==="AbortError")return new k(s.message,{cause:s});if(e!==void 0){let t=te(e.status),r={statusCode:e.status,response:e,cause:s};return t!==null?new t(s.message,r):new E(s.message,r)}return s.message.includes("Failed to fetch")||s.message.includes("fetch failed")||s.message.includes("ECONNREFUSED")||s.message.includes("ENOTFOUND")?new q(s.message,{cause:s}):new m(s.message,{cause:s})};var X=async(s,e)=>{let t=s;for(let r of e)t=await r.intercept(t);return t},z=async(s,e)=>{let t=s;for(let r of e)t=await r.intercept(t);return t};var O=class extends Error{status;statusText;headers;body;retries;constructor(e){super(e.error),this.name="GoHttpError",this.status=e.status??0,this.statusText=e.statusText??"",this.headers=e.headers??{},this.body=e.body??"",this.retries=e.retries??0}},K=async(s={})=>{await L();let e=x();if(e===null)throw new Error("native library not available for createGoHttpClient");let t=e.symbols.EserAjanHttpCreate(JSON.stringify(s)),r=JSON.parse(t);if(r.error)throw new Error(r.error);let n=r.handle;return{request(o){let a=x();if(a===null)return Promise.reject(new Error("native library unavailable"));let u=a.symbols.EserAjanHttpRequest(JSON.stringify({handle:n,...o})),l=JSON.parse(u);return l.error?Promise.reject(new O({...l,error:l.error})):Promise.resolve(l)},requestStream(o){let a=x();if(a===null)return Promise.reject(new Error("native library unavailable"));let u=a.symbols.EserAjanHttpRequestStream(JSON.stringify({handle:n,...o})),l=JSON.parse(u);if(l.error||!l.handle)return Promise.reject(new O({error:l.error??"failed to open HTTP stream",status:l.status,statusText:l.statusText,headers:l.headers,body:l.body}));let i=l.handle,f=l.status??200,p=l.statusText??"",c=l.headers??{},S=new ReadableStream({pull(y){let M=x();if(M===null){y.error(new Error("native library unavailable"));return}let j=M.symbols.EserAjanHttpStreamRead(i),T=JSON.parse(j);if(T.error){y.error(new Error(T.error));return}if(T.done){y.close();return}if(T.chunk){let g=atob(T.chunk),d=new Uint8Array(g.length);for(let H=0;H<g.length;H++)d[H]=g.charCodeAt(H);y.enqueue(d)}},cancel(){let y=x();y!==null&&y.symbols.EserAjanHttpStreamClose(i)}});return Promise.resolve({body:S,status:f,statusText:p,headers:c})},close(){let o=x();o!==null&&o.symbols.EserAjanHttpClose(JSON.stringify({handle:n}))}}};var ie=3e4,G={maxAttempts:3,initialDelay:1e3,maxDelay:3e4,factor:2,jitter:!0,retryableStatuses:[408,429,500,502,503,504],respectRetryAfter:!0},ae=s=>new Promise(e=>setTimeout(e,s)),I=(s,e)=>{if(e.startsWith("http://")||e.startsWith("https://"))return e;if(s!==void 0&&s!==""){let t=s.replace(/\/$/,""),r=e.startsWith("/")?e:`/${e}`;return`${t}${r}`}return e};var D=s=>{if(s===null)return null;let e=Number(s);if(!Number.isNaN(e)&&e>=0)return Math.round(e*1e3);let t=new Date(s);return Number.isNaN(t.getTime())?null:Math.max(0,t.getTime()-Date.now())},F=s=>{let e=s.get("X-RateLimit-Remaining")??s.get("x-rate-limit-remaining"),t=s.get("X-RateLimit-Limit")??s.get("x-rate-limit-limit"),r=s.get("X-RateLimit-Reset")??s.get("x-rate-limit-reset"),n=s.get("Retry-After");if(e===null&&t===null&&r===null&&n===null)return;let o=D(n);return{...e!==null&&{remaining:Number(e)},...t!==null&&{limit:Number(t)},...r!==null&&{resetAt:Number(r)},...o!==null&&{retryAfterSeconds:o/1e3}}},Y=(s,e)=>{let t=e.initialDelay*Math.pow(e.factor,s);return t=Math.min(t,e.maxDelay),e.jitter&&(t=t*(.5+Math.random()*.5)),Math.round(t)},ue=(s,e)=>s===!1||e===!1?!1:s===void 0&&e===void 0?G:{...G,...s??{},...e??{}},le=async s=>{try{return await s.clone().json()}catch{return await s.clone().text().catch(()=>{})}},pe=s=>{if(typeof s=="object"&&s!==null){let e=s,t=e.error??e.message??e.detail??e.title;if(t!==void 0)return String(t)}return null},J=class s{config;#e=null;#t=null;constructor(e){this.config=e??{}}withDefaults(e){return new s({...this.config,...e,headers:{...this.config.headers??{},...e.headers??{}}})}async request(e,t,r){return await this.#r(),this.#e!==null?this.#n(e,t,r):this._execute(e,t,r)}get(e,t){return this._execute("GET",e,t)}post(e,t){return this._execute("POST",e,t)}put(e,t){return this._execute("PUT",e,t)}patch(e,t){return this._execute("PATCH",e,t)}delete(e,t){return this._execute("DELETE",e,t)}async requestStream(e,t,r){return await this.#r(),this.#e!==null?this.#o(e,t,r):this._executeStream(e,t,r)}postStream(e,t){return this.requestStream("POST",e,t)}requestResult(e,t,r){return b(this._execute(e,t,r),C)}getResult(e,t){return b(this._execute("GET",e,t),C)}postResult(e,t){return b(this._execute("POST",e,t),C)}putResult(e,t){return b(this._execute("PUT",e,t),C)}patchResult(e,t){return b(this._execute("PATCH",e,t),C)}deleteResult(e,t){return b(this._execute("DELETE",e,t),C)}requestStreamResult(e,t,r){return b(this._executeStream(e,t,r),C)}postStreamResult(e,t){return b(this._executeStream("POST",e,t),C)}async _executeFetch(e,t,r,n){let o=this.config.fetchFn??fetch,a=this.config._delayFn??ae,u=I(this.config.baseUrl,t),l=new URL(u);if(r?.params!==void 0)for(let[g,d]of Object.entries(r.params))l.searchParams.set(g,d);let i={...this.config.headers??{},...r?.headers??{}},f,p=r?.body;p!==void 0&&(typeof p=="string"||p instanceof ArrayBuffer||ArrayBuffer.isView(p)||p instanceof Blob||p instanceof FormData||p instanceof URLSearchParams||p instanceof ReadableStream?f=p:typeof p=="object"&&p!==null&&(f=JSON.stringify(p),i["Content-Type"]===void 0&&(i["Content-Type"]="application/json")));let c=ue(this.config.retry,r?.retry),S=r?.timeout??this.config.timeout??ie,y=c===!1?1:c.maxAttempts??G.maxAttempts,M=this.config.interceptors?.request??[],j=0,T;for(let g=0;g<y;g++){g>0&&j++;let d,H;try{let R=r?.signal,w=AbortSignal.timeout(S),h=R!==void 0?AbortSignal.any([w,R]):w,P=new Request(l.toString(),{method:e,headers:i,body:f,signal:h});H=await X(P,M),d=await o(H)}catch(R){let w=R instanceof Error?R:new Error(String(R)),h=U(w);if(h instanceof v||h instanceof k)throw h;if(T=h,g<y-1){let P=Y(g,c===!1?G:c);await a(P)}continue}let $=F(d.headers);if(!d.ok){let R=await le(d),w=pe(R)??`HTTP ${d.status}`,h=$!==void 0?D(d.headers.get("Retry-After")):null,P=d.status===429?new _(w,{statusCode:d.status,response:d,body:R,...h!==null&&{retryAfter:h/1e3}}):new E(w,{statusCode:d.status,response:d,body:R});if((c!==!1?c.retryableStatuses:[]).includes(d.status)&&g<y-1){if(T=P,d.status===429&&c!==!1&&c.respectRetryAfter&&h!==null){await a(h);continue}let ee=Y(g,c===!1?G:c);await a(ee);continue}throw P}return await n(d,H,j,$)}throw T??new m(`Request failed after ${y} attempt(s)`)}_execute(e,t,r){let n=this.config.interceptors?.response??[];return this._executeFetch(e,t,r,async(o,a,u,l)=>{let i;if(o.status===204||o.status===304||o.headers.get("Content-Length")==="0")i=void 0;else if((o.headers.get("Content-Type")??"").includes("application/json"))i=await o.json();else{let c=await o.text();try{i=JSON.parse(c)}catch{i=c}}let f={data:i,status:o.status,statusText:o.statusText,headers:o.headers,request:a,raw:o,retries:u,...l!==void 0&&{rateLimit:l}};return f=await z(f,n),f})}_executeStream(e,t,r){return this._executeFetch(e,t,r,(n,o,a,u)=>n.body===null?Promise.reject(new q("Response body is null \u2014 server sent no body for a streaming request")):Promise.resolve({body:n.body,status:n.status,statusText:n.statusText,headers:n.headers,request:o,raw:n,retries:a,...u!==void 0&&{rateLimit:u}}))}#s(e){if(e instanceof O){if(e.status>0){let r=e.body;try{r=JSON.parse(e.body)}catch{}let n=D(e.headers["Retry-After"]??e.headers["retry-after"]??null),o={statusCode:e.status,body:r,...n!==null&&{retryAfter:n/1e3}};return e.status===429?new _(`HTTP ${e.status}`,o):new E(`HTTP ${e.status}`,o)}return new q(e.message,{cause:e})}let t=e instanceof Error?e:new Error(String(e));return U(t)}#r(){return this.config.fetchFn!==void 0?Promise.resolve():this.#t!==null?this.#t:(this.#t=K({baseUrl:this.config.baseUrl,timeout:this.config.timeout,headers:this.config.headers}).then(e=>{this.#e=e},()=>{}),this.#t)}async#n(e,t,r){let n=I(this.config.baseUrl,t),o={...this.config.headers??{},...r?.headers??{}},a=r?.body,u;a!==void 0&&(typeof a=="string"?u=a:typeof a=="object"&&a!==null&&!(a instanceof ReadableStream)&&(u=JSON.stringify(a),o["Content-Type"]===void 0&&(o["Content-Type"]="application/json")));let l={method:e,url:n,headers:o,...u!==void 0&&{body:u},...r?.timeout!==void 0&&{timeout:r.timeout}},i;try{i=await this.#e.request(l)}catch(y){throw this.#s(y)}let f=i.headers["content-type"]??i.headers["Content-Type"]??"",p;if(f.includes("application/json"))p=JSON.parse(i.body);else try{p=JSON.parse(i.body)}catch{p=i.body}let c=new Response(i.body,{status:i.status,statusText:i.statusText,headers:i.headers}),S=F(c.headers);return{data:p,status:i.status,statusText:i.statusText,headers:c.headers,request:new Request(n,{method:e,headers:o}),raw:c,retries:i.retries,...S!==void 0&&{rateLimit:S}}}async#o(e,t,r){let n=I(this.config.baseUrl,t),o={...this.config.headers??{},...r?.headers??{}},a=r?.body,u;a!==void 0&&(typeof a=="string"?u=a:typeof a=="object"&&a!==null&&!(a instanceof ReadableStream)&&(u=JSON.stringify(a),o["Content-Type"]===void 0&&(o["Content-Type"]="application/json")));let l={method:e,url:n,headers:o,...u!==void 0&&{body:u},...r?.timeout!==void 0&&{timeout:r.timeout}},i;try{i=await this.#e.requestStream(l)}catch(c){throw this.#s(c)}let f=new Headers(i.headers),p=F(f);return{body:i.body,status:i.status,statusText:i.statusText,headers:f,request:new Request(n,{method:e,headers:o}),raw:new Response(i.body,{status:i.status,statusText:i.statusText,headers:i.headers}),retries:0,...p!==void 0&&{rateLimit:p}}}close(){this.#e?.close(),this.#e=null,this.#t=null}},Q=s=>new J(s),C=s=>{if(s instanceof m)return s;let e=s instanceof Error?s:new Error(String(s));return new m(e.message,{cause:e})};var de="http://localhost:11434",B=class{capabilities=["text_generation","streaming","vision"];provider="ollama";modelId;_baseUrl;_client;config;constructor(e,t){this._baseUrl=e,this._client=Q({baseUrl:e,retry:!1}),this.config=t,this.modelId=t.model}async generateText(e,t){let r=Z(this.config,e,!1);try{let n=await this._client.post("/api/chat",{body:r,signal:t});return W(fe(n.data,this.modelId))}catch(n){if(n instanceof A)return N(n);let o=n instanceof m?n.statusCode??void 0:void 0;return N(new A(n instanceof Error?n.message:String(n),{provider:"ollama",statusCode:o,cause:n instanceof Error?n:void 0}))}}async*streamText(e,t){let r=Z(this.config,e,!0);try{let n=await this._client.postStream("/api/chat",{body:r,signal:t});for await(let o of V(n.body)){let a=ye(o);a!==null&&(yield a)}}catch(n){if(n instanceof A)yield{kind:"error",error:n};else{let o=n instanceof m?n.statusCode??void 0:void 0;yield{kind:"error",error:new A(n instanceof Error?n.message:String(n),{provider:"ollama",statusCode:o,cause:n instanceof Error?n:void 0})}}}}close(){return Promise.resolve()}getRawClient(){return null}},_e={provider:"ollama",createModel(s){let e=s.properties?.baseUrl??de;return Promise.resolve(new B(e,s))}},Z=(s,e,t)=>{let r=me(e.messages,e.system),n={model:s.model,messages:r,stream:t},o={};return e.temperature!==void 0&&(o.temperature=e.temperature),e.maxTokens!==void 0&&(o.num_predict=e.maxTokens),e.topP!==void 0&&(o.top_p=e.topP),e.stopWords!==void 0&&(o.stop=e.stopWords),Object.keys(o).length>0&&(n.options=o),e.responseFormat!==void 0&&(e.responseFormat.type==="json_schema"?n.format=e.responseFormat.jsonSchema:e.responseFormat.type==="json_object"&&(n.format="json")),n},me=(s,e)=>{let t=[];e!==void 0&&t.push({role:"system",content:e});for(let r of s){if(r.role==="system"){let u=[];for(let l of r.content)l.kind==="text"&&u.push(l.text);t.push({role:"system",content:u.join(`
2
2
  `)});continue}let n=[],o=[];for(let u of r.content)u.kind==="text"?n.push(u.text):u.kind==="image"&&u.image.url!==void 0&&o.push(u.image.url);let a={role:r.role==="tool"?"user":r.role,content:n.join(`
3
3
  `)};o.length>0&&(a.images=o),t.push(a)}return t},fe=(s,e)=>{let t=[];return s.message?.content!==void 0&&t.push({kind:"text",text:s.message.content}),{content:t,stopReason:s.done_reason==="length"?"max_tokens":"end_turn",usage:{inputTokens:s.prompt_eval_count??0,outputTokens:s.eval_count??0,totalTokens:(s.prompt_eval_count??0)+(s.eval_count??0)},modelId:e,rawResponse:s}},ye=s=>{if(s===null||typeof s!="object")return null;let e=s;return e.done===!0?{kind:"message_done",stopReason:e.done_reason==="length"?"max_tokens":"end_turn",usage:{inputTokens:e.prompt_eval_count??0,outputTokens:e.eval_count??0,totalTokens:(e.prompt_eval_count??0)+(e.eval_count??0)}}:e.message?.content!==void 0&&e.message.content.length>0?{kind:"content_delta",textDelta:e.message.content}:e.response!==void 0&&e.response.length>0?{kind:"content_delta",textDelta:e.response}:null};export{B as a,_e as b};
@@ -1,5 +1,5 @@
1
1
  import{i as E}from"./chunk-Y5E7ZCCX.js";import{b as Jn}from"./chunk-FE4MKOI4.js";import{a as nt,c as m,e as Jo}from"./chunk-HISXAZ4Y.js";var q=m($=>{"use strict";var ls=Symbol.for("yaml.alias"),Wn=Symbol.for("yaml.document"),rt=Symbol.for("yaml.map"),Gn=Symbol.for("yaml.pair"),cs=Symbol.for("yaml.scalar"),ot=Symbol.for("yaml.seq"),U=Symbol.for("yaml.node.type"),Go=s=>!!s&&typeof s=="object"&&s[U]===ls,Qo=s=>!!s&&typeof s=="object"&&s[U]===Wn,Ho=s=>!!s&&typeof s=="object"&&s[U]===rt,Xo=s=>!!s&&typeof s=="object"&&s[U]===Gn,Qn=s=>!!s&&typeof s=="object"&&s[U]===cs,zo=s=>!!s&&typeof s=="object"&&s[U]===ot;function Hn(s){if(s&&typeof s=="object")switch(s[U]){case rt:case ot:return!0}return!1}function Zo(s){if(s&&typeof s=="object")switch(s[U]){case ls:case rt:case cs:case ot:return!0}return!1}var ea=s=>(Qn(s)||Hn(s))&&!!s.anchor;$.ALIAS=ls;$.DOC=Wn;$.MAP=rt;$.NODE_TYPE=U;$.PAIR=Gn;$.SCALAR=cs;$.SEQ=ot;$.hasAnchor=ea;$.isAlias=Go;$.isCollection=Hn;$.isDocument=Qo;$.isMap=Ho;$.isNode=Zo;$.isPair=Xo;$.isScalar=Qn;$.isSeq=zo});var Ee=m(us=>{"use strict";var I=q(),D=Symbol("break visit"),Xn=Symbol("skip children"),j=Symbol("remove node");function at(s,e){let t=zn(e);I.isDocument(s)?pe(null,s.contents,t,Object.freeze([s]))===j&&(s.contents=null):pe(null,s,t,Object.freeze([]))}at.BREAK=D;at.SKIP=Xn;at.REMOVE=j;function pe(s,e,t,n){let i=Zn(s,e,t,n);if(I.isNode(i)||I.isPair(i))return ei(s,n,i),pe(s,i,t,n);if(typeof i!="symbol"){if(I.isCollection(e)){n=Object.freeze(n.concat(e));for(let r=0;r<e.items.length;++r){let o=pe(r,e.items[r],t,n);if(typeof o=="number")r=o-1;else{if(o===D)return D;o===j&&(e.items.splice(r,1),r-=1)}}}else if(I.isPair(e)){n=Object.freeze(n.concat(e));let r=pe("key",e.key,t,n);if(r===D)return D;r===j&&(e.key=null);let o=pe("value",e.value,t,n);if(o===D)return D;o===j&&(e.value=null)}}return i}async function lt(s,e){let t=zn(e);I.isDocument(s)?await ye(null,s.contents,t,Object.freeze([s]))===j&&(s.contents=null):await ye(null,s,t,Object.freeze([]))}lt.BREAK=D;lt.SKIP=Xn;lt.REMOVE=j;async function ye(s,e,t,n){let i=await Zn(s,e,t,n);if(I.isNode(i)||I.isPair(i))return ei(s,n,i),ye(s,i,t,n);if(typeof i!="symbol"){if(I.isCollection(e)){n=Object.freeze(n.concat(e));for(let r=0;r<e.items.length;++r){let o=await ye(r,e.items[r],t,n);if(typeof o=="number")r=o-1;else{if(o===D)return D;o===j&&(e.items.splice(r,1),r-=1)}}}else if(I.isPair(e)){n=Object.freeze(n.concat(e));let r=await ye("key",e.key,t,n);if(r===D)return D;r===j&&(e.key=null);let o=await ye("value",e.value,t,n);if(o===D)return D;o===j&&(e.value=null)}}return i}function zn(s){return typeof s=="object"&&(s.Collection||s.Node||s.Value)?Object.assign({Alias:s.Node,Map:s.Node,Scalar:s.Node,Seq:s.Node},s.Value&&{Map:s.Value,Scalar:s.Value,Seq:s.Value},s.Collection&&{Map:s.Collection,Seq:s.Collection},s):s}function Zn(s,e,t,n){if(typeof t=="function")return t(s,e,n);if(I.isMap(e))return t.Map?.(s,e,n);if(I.isSeq(e))return t.Seq?.(s,e,n);if(I.isPair(e))return t.Pair?.(s,e,n);if(I.isScalar(e))return t.Scalar?.(s,e,n);if(I.isAlias(e))return t.Alias?.(s,e,n)}function ei(s,e,t){let n=e[e.length-1];if(I.isCollection(n))n.items[s]=t;else if(I.isPair(n))s==="key"?n.key=t:n.value=t;else if(I.isDocument(n))n.contents=t;else{let i=I.isAlias(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${i} parent`)}}us.visit=at;us.visitAsync=lt});var fs=m(si=>{"use strict";var ti=q(),ta=Ee(),sa={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},na=s=>s.replace(/[!,[\]{}]/g,e=>sa[e]),qe=class s{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},s.defaultYaml,e),this.tags=Object.assign({},s.defaultTags,t)}clone(){let e=new s(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new s(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:s.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},s.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:s.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},s.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),i=n.shift();switch(i){case"%TAG":{if(n.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[r,o]=n;return this.tags[r]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[r]=n;if(r==="1.1"||r==="1.2")return this.yaml.version=r,!0;{let o=/^\d+\.\d+$/.test(r);return t(6,`Unsupported YAML version ${r}`,o),!1}}default:return t(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,n,i]=e.match(/^(.*!)([^!]*)$/s);i||t(`The ${e} tag has no suffix`);let r=this.tags[n];if(r)try{return r+decodeURIComponent(i)}catch(o){return t(String(o)),null}return n==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+na(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),i;if(e&&n.length>0&&ti.isNode(e.contents)){let r={};ta.visit(e.contents,(o,a)=>{ti.isNode(a)&&a.tag&&(r[a.tag]=!0)}),i=Object.keys(r)}else i=[];for(let[r,o]of n)r==="!!"&&o==="tag:yaml.org,2002:"||(!e||i.some(a=>a.startsWith(o)))&&t.push(`%TAG ${r} ${o}`);return t.join(`
2
- `)}};qe.defaultYaml={explicit:!1,version:"1.2"};qe.defaultTags={"!!":"tag:yaml.org,2002:"};si.Directives=qe});var ct=m(Oe=>{"use strict";var ni=q(),ia=Ee();function ra(s){if(/[\x00-\x19\s,[\]{}]/.test(s)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(s)}`;throw new Error(t)}return!0}function ii(s){let e=new Set;return ia.visit(s,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function ri(s,e){for(let t=1;;++t){let n=`${s}${t}`;if(!e.has(n))return n}}function oa(s,e){let t=[],n=new Map,i=null;return{onAnchor:r=>{t.push(r),i??(i=ii(s));let o=ri(e,i);return i.add(o),o},setAnchors:()=>{for(let r of t){let o=n.get(r);if(typeof o=="object"&&o.anchor&&(ni.isScalar(o.node)||ni.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=r,a}}},sourceObjects:n}}Oe.anchorIsValid=ra;Oe.anchorNames=ii;Oe.createNodeAnchors=oa;Oe.findNewAnchor=ri});var ds=m(oi=>{"use strict";function Ce(s,e,t,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let i=0,r=n.length;i<r;++i){let o=n[i],a=Ce(s,n,String(i),o);a===void 0?delete n[i]:a!==o&&(n[i]=a)}else if(n instanceof Map)for(let i of Array.from(n.keys())){let r=n.get(i),o=Ce(s,n,i,r);o===void 0?n.delete(i):o!==r&&n.set(i,o)}else if(n instanceof Set)for(let i of Array.from(n)){let r=Ce(s,n,i,i);r===void 0?n.delete(i):r!==i&&(n.delete(i),n.add(r))}else for(let[i,r]of Object.entries(n)){let o=Ce(s,n,i,r);o===void 0?delete n[i]:o!==r&&(n[i]=o)}return s.call(e,t,n)}oi.applyReviver=Ce});var W=m(li=>{"use strict";var aa=q();function ai(s,e,t){if(Array.isArray(s))return s.map((n,i)=>ai(n,String(i),t));if(s&&typeof s.toJSON=="function"){if(!t||!aa.hasAnchor(s))return s.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(s,n),t.onCreate=r=>{n.res=r,delete t.onCreate};let i=s.toJSON(e,t);return t.onCreate&&t.onCreate(i),i}return typeof s=="bigint"&&!t?.keep?Number(s):s}li.toJS=ai});var ut=m(ui=>{"use strict";var la=ds(),ci=q(),ca=W(),hs=class{constructor(e){Object.defineProperty(this,ci.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:i,reviver:r}={}){if(!ci.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},a=ca.toJS(this,"",o);if(typeof i=="function")for(let{count:l,res:c}of o.anchors.values())i(c,l);return typeof r=="function"?la.applyReviver(r,{"":a},"",a):a}};ui.NodeBase=hs});var Te=m(fi=>{"use strict";var ua=ct(),fa=Ee(),me=q(),da=ut(),ha=W(),ps=class extends da.NodeBase{constructor(e){super(me.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){if(t?.maxAliasCount===0)throw new ReferenceError("Alias resolution is disabled");let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],fa.visit(e,{Node:(r,o)=>{(me.isAlias(o)||me.hasAnchor(o))&&n.push(o)}}),t&&(t.aliasResolveCache=n));let i;for(let r of n){if(r===this)break;r.anchor===this.source&&(i=r)}return i}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:i,maxAliasCount:r}=t,o=this.resolve(i,t);if(!o){let l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=n.get(o);if(a||(ha.toJS(o,null,t),a=n.get(o)),a?.res===void 0){let l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(r>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=ft(i,o,n)),a.count*a.aliasCount>r)){let l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(e,t,n){let i=`*${this.source}`;if(e){if(ua.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let r=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(r)}if(e.implicitKey)return`${i} `}return i}};function ft(s,e,t){if(me.isAlias(e)){let n=e.resolve(s),i=t&&n&&t.get(n);return i?i.count*i.aliasCount:0}else if(me.isCollection(e)){let n=0;for(let i of e.items){let r=ft(s,i,t);r>n&&(n=r)}return n}else if(me.isPair(e)){let n=ft(s,e.key,t),i=ft(s,e.value,t);return Math.max(n,i)}return 1}fi.Alias=ps});var T=m(ys=>{"use strict";var pa=q(),ya=ut(),ma=W(),ga=s=>!s||typeof s!="function"&&typeof s!="object",G=class extends ya.NodeBase{constructor(e){super(pa.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:ma.toJS(this.value,e,t)}toString(){return String(this.value)}};G.BLOCK_FOLDED="BLOCK_FOLDED";G.BLOCK_LITERAL="BLOCK_LITERAL";G.PLAIN="PLAIN";G.QUOTE_DOUBLE="QUOTE_DOUBLE";G.QUOTE_SINGLE="QUOTE_SINGLE";ys.Scalar=G;ys.isScalarValue=ga});var Le=m(hi=>{"use strict";var Sa=Te(),ie=q(),di=T(),ba="tag:yaml.org,2002:";function wa(s,e,t){if(e){let n=t.filter(r=>r.tag===e),i=n.find(r=>!r.format)??n[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return t.find(n=>n.identify?.(s)&&!n.format)}function va(s,e,t){if(ie.isDocument(s)&&(s=s.contents),ie.isNode(s))return s;if(ie.isPair(s)){let u=t.schema[ie.MAP].createNode?.(t.schema,null,t);return u.items.push(s),u}(s instanceof String||s instanceof Number||s instanceof Boolean||typeof BigInt<"u"&&s instanceof BigInt)&&(s=s.valueOf());let{aliasDuplicateObjects:n,onAnchor:i,onTagObj:r,schema:o,sourceObjects:a}=t,l;if(n&&s&&typeof s=="object"){if(l=a.get(s),l)return l.anchor??(l.anchor=i(s)),new Sa.Alias(l.anchor);l={anchor:null,node:null},a.set(s,l)}e?.startsWith("!!")&&(e=ba+e.slice(2));let c=wa(s,e,o.tags);if(!c){if(s&&typeof s.toJSON=="function"&&(s=s.toJSON()),!s||typeof s!="object"){let u=new di.Scalar(s);return l&&(l.node=u),u}c=s instanceof Map?o[ie.MAP]:Symbol.iterator in Object(s)?o[ie.SEQ]:o[ie.MAP]}r&&(r(c),delete t.onTagObj);let h=c?.createNode?c.createNode(t.schema,s,t):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(t.schema,s,t):new di.Scalar(s);return e?h.tag=e:c.default||(h.tag=c.tag),l&&(l.node=h),h}hi.createNode=va});var ht=m(dt=>{"use strict";var ka=Le(),K=q(),Aa=ut();function ms(s,e,t){let n=t;for(let i=e.length-1;i>=0;--i){let r=e[i];if(typeof r=="number"&&Number.isInteger(r)&&r>=0){let o=[];o[r]=n,n=o}else n=new Map([[r,n]])}return ka.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:s,sourceObjects:new Map})}var pi=s=>s==null||typeof s=="object"&&!!s[Symbol.iterator]().next().done,gs=class extends Aa.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(n=>K.isNode(n)||K.isPair(n)?n.clone(e):n),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(pi(e))this.add(t);else{let[n,...i]=e,r=this.get(n,!0);if(K.isCollection(r))r.addIn(i,t);else if(r===void 0&&this.schema)this.set(n,ms(this.schema,i,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${i}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let i=this.get(t,!0);if(K.isCollection(i))return i.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...i]=e,r=this.get(n,!0);return i.length===0?!t&&K.isScalar(r)?r.value:r:K.isCollection(r)?r.getIn(i,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!K.isPair(t))return!1;let n=t.value;return n==null||e&&K.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let i=this.get(t,!0);return K.isCollection(i)?i.hasIn(n):!1}setIn(e,t){let[n,...i]=e;if(i.length===0)this.set(n,t);else{let r=this.get(n,!0);if(K.isCollection(r))r.setIn(i,t);else if(r===void 0&&this.schema)this.set(n,ms(this.schema,i,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${i}`)}}};dt.Collection=gs;dt.collectionFromPath=ms;dt.isEmptyPath=pi});var Pe=m(pt=>{"use strict";var Na=s=>s.replace(/^(?!$)(?: $)?/gm,"#");function Ss(s,e){return/^\n+$/.test(s)?s.substring(1):e?s.replace(/^(?! *$)/gm,e):s}var Ea=(s,e,t)=>s.endsWith(`
2
+ `)}};qe.defaultYaml={explicit:!1,version:"1.2"};qe.defaultTags={"!!":"tag:yaml.org,2002:"};si.Directives=qe});var ct=m(Oe=>{"use strict";var ni=q(),ia=Ee();function ra(s){if(/[\x00-\x19\s,[\]{}]/.test(s)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(s)}`;throw new Error(t)}return!0}function ii(s){let e=new Set;return ia.visit(s,{Value(t,n){n.anchor&&e.add(n.anchor)}}),e}function ri(s,e){for(let t=1;;++t){let n=`${s}${t}`;if(!e.has(n))return n}}function oa(s,e){let t=[],n=new Map,i=null;return{onAnchor:r=>{t.push(r),i??(i=ii(s));let o=ri(e,i);return i.add(o),o},setAnchors:()=>{for(let r of t){let o=n.get(r);if(typeof o=="object"&&o.anchor&&(ni.isScalar(o.node)||ni.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=r,a}}},sourceObjects:n}}Oe.anchorIsValid=ra;Oe.anchorNames=ii;Oe.createNodeAnchors=oa;Oe.findNewAnchor=ri});var ds=m(oi=>{"use strict";function Ce(s,e,t,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let i=0,r=n.length;i<r;++i){let o=n[i],a=Ce(s,n,String(i),o);a===void 0?delete n[i]:a!==o&&(n[i]=a)}else if(n instanceof Map)for(let i of Array.from(n.keys())){let r=n.get(i),o=Ce(s,n,i,r);o===void 0?n.delete(i):o!==r&&n.set(i,o)}else if(n instanceof Set)for(let i of Array.from(n)){let r=Ce(s,n,i,i);r===void 0?n.delete(i):r!==i&&(n.delete(i),n.add(r))}else for(let[i,r]of Object.entries(n)){let o=Ce(s,n,i,r);o===void 0?delete n[i]:o!==r&&(n[i]=o)}return s.call(e,t,n)}oi.applyReviver=Ce});var W=m(li=>{"use strict";var aa=q();function ai(s,e,t){if(Array.isArray(s))return s.map((n,i)=>ai(n,String(i),t));if(s&&typeof s.toJSON=="function"){if(!t||!aa.hasAnchor(s))return s.toJSON(e,t);let n={aliasCount:0,count:1,res:void 0};t.anchors.set(s,n),t.onCreate=r=>{n.res=r,delete t.onCreate};let i=s.toJSON(e,t);return t.onCreate&&t.onCreate(i),i}return typeof s=="bigint"&&!t?.keep?Number(s):s}li.toJS=ai});var ut=m(ui=>{"use strict";var la=ds(),ci=q(),ca=W(),hs=class{constructor(e){Object.defineProperty(this,ci.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:i,reviver:r}={}){if(!ci.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},a=ca.toJS(this,"",o);if(typeof i=="function")for(let{count:l,res:c}of o.anchors.values())i(c,l);return typeof r=="function"?la.applyReviver(r,{"":a},"",a):a}};ui.NodeBase=hs});var Te=m(fi=>{"use strict";var ua=ct(),fa=Ee(),me=q(),da=ut(),ha=W(),ps=class extends da.NodeBase{constructor(e){super(me.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){if(t?.maxAliasCount===0)throw new ReferenceError("Alias resolution is disabled");let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],fa.visit(e,{Node:(r,o)=>{(me.isAlias(o)||me.hasAnchor(o))&&n.push(o)}}),t&&(t.aliasResolveCache=n));let i;for(let r of n){if(r===this)break;r.anchor===this.source&&(i=r)}if(i&&t){let{anchors:r,doc:o,maxAliasCount:a}=t,l=r.get(i);if(l||(ha.toJS(i,null,t),l=r.get(i)),l?.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(a>=0&&(l.count+=1,l.aliasCount===0&&(l.aliasCount=ft(o,i,r)),l.count*l.aliasCount>a)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}}return i}toJSON(e,t){if(!t)return{source:this.source};let n=this.resolve(t.doc,t);if(!n){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(i)}return t.anchors.get(n).res}toString(e,t,n){let i=`*${this.source}`;if(e){if(ua.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let r=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(r)}if(e.implicitKey)return`${i} `}return i}};function ft(s,e,t){if(me.isAlias(e)){let n=e.resolve(s),i=t&&n&&t.get(n);return i?i.count*i.aliasCount:0}else if(me.isCollection(e)){let n=0;for(let i of e.items){let r=ft(s,i,t);r>n&&(n=r)}return n}else if(me.isPair(e)){let n=ft(s,e.key,t),i=ft(s,e.value,t);return Math.max(n,i)}return 1}fi.Alias=ps});var T=m(ys=>{"use strict";var pa=q(),ya=ut(),ma=W(),ga=s=>!s||typeof s!="function"&&typeof s!="object",G=class extends ya.NodeBase{constructor(e){super(pa.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:ma.toJS(this.value,e,t)}toString(){return String(this.value)}};G.BLOCK_FOLDED="BLOCK_FOLDED";G.BLOCK_LITERAL="BLOCK_LITERAL";G.PLAIN="PLAIN";G.QUOTE_DOUBLE="QUOTE_DOUBLE";G.QUOTE_SINGLE="QUOTE_SINGLE";ys.Scalar=G;ys.isScalarValue=ga});var Le=m(hi=>{"use strict";var Sa=Te(),ie=q(),di=T(),ba="tag:yaml.org,2002:";function wa(s,e,t){if(e){let n=t.filter(r=>r.tag===e),i=n.find(r=>!r.format)??n[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return t.find(n=>n.identify?.(s)&&!n.format)}function va(s,e,t){if(ie.isDocument(s)&&(s=s.contents),ie.isNode(s))return s;if(ie.isPair(s)){let u=t.schema[ie.MAP].createNode?.(t.schema,null,t);return u.items.push(s),u}(s instanceof String||s instanceof Number||s instanceof Boolean||typeof BigInt<"u"&&s instanceof BigInt)&&(s=s.valueOf());let{aliasDuplicateObjects:n,onAnchor:i,onTagObj:r,schema:o,sourceObjects:a}=t,l;if(n&&s&&typeof s=="object"){if(l=a.get(s),l)return l.anchor??(l.anchor=i(s)),new Sa.Alias(l.anchor);l={anchor:null,node:null},a.set(s,l)}e?.startsWith("!!")&&(e=ba+e.slice(2));let c=wa(s,e,o.tags);if(!c){if(s&&typeof s.toJSON=="function"&&(s=s.toJSON()),!s||typeof s!="object"){let u=new di.Scalar(s);return l&&(l.node=u),u}c=s instanceof Map?o[ie.MAP]:Symbol.iterator in Object(s)?o[ie.SEQ]:o[ie.MAP]}r&&(r(c),delete t.onTagObj);let h=c?.createNode?c.createNode(t.schema,s,t):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(t.schema,s,t):new di.Scalar(s);return e?h.tag=e:c.default||(h.tag=c.tag),l&&(l.node=h),h}hi.createNode=va});var ht=m(dt=>{"use strict";var ka=Le(),K=q(),Aa=ut();function ms(s,e,t){let n=t;for(let i=e.length-1;i>=0;--i){let r=e[i];if(typeof r=="number"&&Number.isInteger(r)&&r>=0){let o=[];o[r]=n,n=o}else n=new Map([[r,n]])}return ka.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:s,sourceObjects:new Map})}var pi=s=>s==null||typeof s=="object"&&!!s[Symbol.iterator]().next().done,gs=class extends Aa.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(n=>K.isNode(n)||K.isPair(n)?n.clone(e):n),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(pi(e))this.add(t);else{let[n,...i]=e,r=this.get(n,!0);if(K.isCollection(r))r.addIn(i,t);else if(r===void 0&&this.schema)this.set(n,ms(this.schema,i,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${i}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let i=this.get(t,!0);if(K.isCollection(i))return i.deleteIn(n);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...i]=e,r=this.get(n,!0);return i.length===0?!t&&K.isScalar(r)?r.value:r:K.isCollection(r)?r.getIn(i,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!K.isPair(t))return!1;let n=t.value;return n==null||e&&K.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let i=this.get(t,!0);return K.isCollection(i)?i.hasIn(n):!1}setIn(e,t){let[n,...i]=e;if(i.length===0)this.set(n,t);else{let r=this.get(n,!0);if(K.isCollection(r))r.setIn(i,t);else if(r===void 0&&this.schema)this.set(n,ms(this.schema,i,t));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${i}`)}}};dt.Collection=gs;dt.collectionFromPath=ms;dt.isEmptyPath=pi});var Pe=m(pt=>{"use strict";var Na=s=>s.replace(/^(?!$)(?: $)?/gm,"#");function Ss(s,e){return/^\n+$/.test(s)?s.substring(1):e?s.replace(/^(?! *$)/gm,e):s}var Ea=(s,e,t)=>s.endsWith(`
3
3
  `)?Ss(t,e):t.includes(`
4
4
  `)?`
5
5
  `+Ss(t,e):(s.endsWith(" ")?"":" ")+t;pt.indentComment=Ss;pt.lineComment=Ea;pt.stringifyComment=Na});var mi=m(Ie=>{"use strict";var qa="flow",bs="block",yt="quoted";function Oa(s,e,t="flow",{indentAtStart:n,lineWidth:i=80,minContentWidth:r=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return s;i<r&&(r=0);let l=Math.max(1+r,1+i-e.length);if(s.length<=l)return s;let c=[],h={},u=i-e.length;typeof n=="number"&&(n>i-Math.max(2,r)?c.push(0):u=i-n);let f,y,g=!1,d=-1,p=-1,b=-1;t===bs&&(d=yi(s,d,e.length),d!==-1&&(u=d+l));for(let v;v=s[d+=1];){if(t===yt&&v==="\\"){switch(p=d,s[d+1]){case"x":d+=3;break;case"u":d+=5;break;case"U":d+=9;break;default:d+=1}b=d}if(v===`
@@ -81,11 +81,9 @@ ${c}
81
81
  `+o[d][0].slice(l);u[u.length-1]!==`
82
82
  `&&(u+=`
83
83
  `);break;default:u+=`
84
- `}let g=n+i.length+e.source.length;return{value:u,type:r,comment:i.comment,range:[n,g,g]}}function ru({offset:s,props:e},t,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:i}=e[0],r=i[0],o=0,a="",l=-1;for(let f=1;f<i.length;++f){let y=i[f];if(!a&&(y==="-"||y==="+"))a=y;else{let g=Number(y);!o&&g?o=g:l===-1&&(l=s+f)}}l!==-1&&n(l,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${i}`);let c=!1,h="",u=i.length;for(let f=1;f<e.length;++f){let y=e[f];switch(y.type){case"space":c=!0;case"newline":u+=y.source.length;break;case"comment":t&&!c&&n(y,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=y.source.length,h=y.source.substring(1);break;case"error":n(y,"UNEXPECTED_TOKEN",y.message),u+=y.source.length;break;default:{let g=`Unexpected token in block scalar header: ${y.type}`;n(y,"UNEXPECTED_TOKEN",g);let d=y.source;d&&typeof d=="string"&&(u+=d.length)}}}return{mode:r,indent:o,chomp:a,comment:h,length:u}}function ou(s){let e=s.split(/\n( *)/),t=e[0],n=t.match(/^( *)/),r=[n?.[1]?[n[1],t.slice(n[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)r.push([e[o],e[o+1]]);return r}Qr.resolveBlockScalar=iu});var An=m(Xr=>{"use strict";var kn=T(),au=Ae();function lu(s,e,t){let{offset:n,type:i,source:r,end:o}=s,a,l,c=(f,y,g)=>t(n+f,y,g);switch(i){case"scalar":a=kn.Scalar.PLAIN,l=cu(r,c);break;case"single-quoted-scalar":a=kn.Scalar.QUOTE_SINGLE,l=uu(r,c);break;case"double-quoted-scalar":a=kn.Scalar.QUOTE_DOUBLE,l=fu(r,c);break;default:return t(s,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[n,n+r.length,n+r.length]}}let h=n+r.length,u=au.resolveEnd(o,h,e,t);return{value:l,type:a,comment:u.comment,range:[n,h,u.offset]}}function cu(s,e){let t="";switch(s[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${s[0]}`;break}case"@":case"`":{t=`reserved character ${s[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),Hr(s)}function uu(s,e){return(s[s.length-1]!=="'"||s.length===1)&&e(s.length,"MISSING_CHAR","Missing closing 'quote"),Hr(s.slice(1,-1)).replace(/''/g,"'")}function Hr(s){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
85
- `,"sy"),t=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
86
- `,"sy")}catch{e=/(.*?)[ \t]*\r?\n/sy,t=/[ \t]*(.*?)[ \t]*\r?\n/sy}let n=e.exec(s);if(!n)return s;let i=n[1],r=" ",o=e.lastIndex;for(t.lastIndex=o;n=t.exec(s);)n[1]===""?r===`
87
- `?i+=r:r=`
88
- `:(i+=r+n[1],r=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,n=a.exec(s),i+r+(n?.[1]??"")}function fu(s,e){let t="";for(let n=1;n<s.length-1;++n){let i=s[n];if(!(i==="\r"&&s[n+1]===`
84
+ `}let g=n+i.length+e.source.length;return{value:u,type:r,comment:i.comment,range:[n,g,g]}}function ru({offset:s,props:e},t,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:i}=e[0],r=i[0],o=0,a="",l=-1;for(let f=1;f<i.length;++f){let y=i[f];if(!a&&(y==="-"||y==="+"))a=y;else{let g=Number(y);!o&&g?o=g:l===-1&&(l=s+f)}}l!==-1&&n(l,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${i}`);let c=!1,h="",u=i.length;for(let f=1;f<e.length;++f){let y=e[f];switch(y.type){case"space":c=!0;case"newline":u+=y.source.length;break;case"comment":t&&!c&&n(y,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),u+=y.source.length,h=y.source.substring(1);break;case"error":n(y,"UNEXPECTED_TOKEN",y.message),u+=y.source.length;break;default:{let g=`Unexpected token in block scalar header: ${y.type}`;n(y,"UNEXPECTED_TOKEN",g);let d=y.source;d&&typeof d=="string"&&(u+=d.length)}}}return{mode:r,indent:o,chomp:a,comment:h,length:u}}function ou(s){let e=s.split(/\n( *)/),t=e[0],n=t.match(/^( *)/),r=[n?.[1]?[n[1],t.slice(n[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)r.push([e[o],e[o+1]]);return r}Qr.resolveBlockScalar=iu});var An=m(Xr=>{"use strict";var kn=T(),au=Ae();function lu(s,e,t){let{offset:n,type:i,source:r,end:o}=s,a,l,c=(f,y,g)=>t(n+f,y,g);switch(i){case"scalar":a=kn.Scalar.PLAIN,l=cu(r,c);break;case"single-quoted-scalar":a=kn.Scalar.QUOTE_SINGLE,l=uu(r,c);break;case"double-quoted-scalar":a=kn.Scalar.QUOTE_DOUBLE,l=fu(r,c);break;default:return t(s,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[n,n+r.length,n+r.length]}}let h=n+r.length,u=au.resolveEnd(o,h,e,t);return{value:l,type:a,comment:u.comment,range:[n,h,u.offset]}}function cu(s,e){let t="";switch(s[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${s[0]}`;break}case"@":case"`":{t=`reserved character ${s[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),Hr(s)}function uu(s,e){return(s[s.length-1]!=="'"||s.length===1)&&e(s.length,"MISSING_CHAR","Missing closing 'quote"),Hr(s.slice(1,-1)).replace(/''/g,"'")}function Hr(s){let e=/(.*?)\r?\n/sy,t=e.exec(s);if(!t)return s;let n,i;try{n=new RegExp("(?<![ ])[ ]+$"),i=new RegExp("^[ ]+|(?<![ ])[ ]+$","g")}catch{n=/[ \t]+$/,i=/^[ \t]+|[ \t]+$/g}let r=t[1].replace(n,""),o=" ",a=e.lastIndex;for(;t=e.exec(s);){let c=t[1].replace(i,"");c===""?o===`
85
+ `?r+=o:o=`
86
+ `:(r+=o+c,o=" "),a=e.lastIndex}let l=/[ \t]*(.*)/sy;return l.lastIndex=a,t=l.exec(s),r+o+(t?.[1]??"")}function fu(s,e){let t="";for(let n=1;n<s.length-1;++n){let i=s[n];if(!(i==="\r"&&s[n+1]===`
89
87
  `))if(i===`
90
88
  `){let{fold:r,offset:o}=du(s,n);t+=r,n=o}else if(i==="\\"){let r=s[++n],o=hu[r];if(o)t+=o;else if(r===`
91
89
  `)for(r=s[n+1];r===" "||r===" ";)r=s[++n+1];else if(r==="\r"&&s[n+1]===`
@@ -138,7 +136,7 @@ ${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.pus
138
136
  `)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
139
137
  `,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=es(e),n=Ne(t);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=es(e),n=Ne(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};To.Parser=jn});var Do=m(et=>{"use strict";var Lo=On(),sf=Ve(),Ze=Ge(),nf=Ns(),rf=q(),of=Bn(),Po=Kn();function Io(s){let e=s.prettyErrors!==!1;return{lineCounter:s.lineCounter||e&&new of.LineCounter||null,prettyErrors:e}}function af(s,e={}){let{lineCounter:t,prettyErrors:n}=Io(e),i=new Po.Parser(t?.addNewLine),r=new Lo.Composer(e),o=Array.from(r.compose(i.parse(s)));if(n&&t)for(let a of o)a.errors.forEach(Ze.prettifyError(s,t)),a.warnings.forEach(Ze.prettifyError(s,t));return o.length>0?o:Object.assign([],{empty:!0},r.streamInfo())}function $o(s,e={}){let{lineCounter:t,prettyErrors:n}=Io(e),i=new Po.Parser(t?.addNewLine),r=new Lo.Composer(e),o=null;for(let a of r.compose(i.parse(s),!0,s.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Ze.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&t&&(o.errors.forEach(Ze.prettifyError(s,t)),o.warnings.forEach(Ze.prettifyError(s,t))),o}function lf(s,e,t){let n;typeof e=="function"?n=e:t===void 0&&e&&typeof e=="object"&&(t=e);let i=$o(s,t);if(!i)return null;if(i.warnings.forEach(r=>nf.warn(i.options.logLevel,r)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:n},t))}function cf(s,e,t){let n=null;if(typeof e=="function"||Array.isArray(e)?n=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let i=Math.round(t);t=i<1?void 0:i>8?{indent:8}:{indent:i}}if(s===void 0){let{keepUndefined:i}=t??e??{};if(!i)return}return rf.isDocument(s)&&!n?s.toString(t):new sf.Document(s,n,t).toString(t)}et.parse=lf;et.parseAllDocuments=af;et.parseDocument=$o;et.stringify=cf});var _o=m(O=>{"use strict";var uf=On(),ff=Ve(),df=an(),xn=Ge(),hf=Te(),se=q(),pf=X(),yf=T(),mf=Z(),gf=ee(),Sf=zt(),bf=Fn(),wf=Bn(),vf=Kn(),ss=Do(),Mo=Ee();O.Composer=uf.Composer;O.Document=ff.Document;O.Schema=df.Schema;O.YAMLError=xn.YAMLError;O.YAMLParseError=xn.YAMLParseError;O.YAMLWarning=xn.YAMLWarning;O.Alias=hf.Alias;O.isAlias=se.isAlias;O.isCollection=se.isCollection;O.isDocument=se.isDocument;O.isMap=se.isMap;O.isNode=se.isNode;O.isPair=se.isPair;O.isScalar=se.isScalar;O.isSeq=se.isSeq;O.Pair=pf.Pair;O.Scalar=yf.Scalar;O.YAMLMap=mf.YAMLMap;O.YAMLSeq=gf.YAMLSeq;O.CST=Sf;O.Lexer=bf.Lexer;O.LineCounter=wf.LineCounter;O.Parser=vf.Parser;O.parse=ss.parse;O.parseAllDocuments=ss.parseAllDocuments;O.parseDocument=ss.parseDocument;O.stringify=ss.stringify;O.visit=Mo.visit;O.visitAsync=Mo.visitAsync});var Df={created:{date:"",user:""},lastModified:{date:"",user:""},contributors:[],approvals:[],pendingDecisions:[]},it=()=>({version:"0.1.0",phase:"IDLE",spec:null,specDescription:null,branch:null,discovery:{answers:[],completed:!1,currentQuestion:0,audience:"human",approved:!1,planPath:null},specState:{path:null,status:"none",metadata:{created:{date:"",user:""},lastModified:{date:"",user:""},contributors:[],approvals:[],pendingDecisions:[]},placeholders:[]},execution:{iteration:0,lastProgress:null,modifiedFiles:[],lastVerification:null,awaitingStatusReport:!1,debt:null,completedTasks:[],debtCounter:0,naItems:[]},decisions:[],lastCalledAt:null,classification:null,completionReason:null,completedAt:null,completionNote:null,reopenedFrom:null,revisitHistory:[]}),Mf=(s,e,t,n)=>({concerns:s,tools:e,providers:t,project:n,maxIterationsBeforeRestart:15,verifyCommand:null,allowGit:!1,command:"npx eser@latest noskills"}),_f=s=>"user"in s&&"timestamp"in s?s:{questionId:s.questionId,answer:s.answer,user:"Unknown User",email:"",timestamp:"",type:"original"};var fe=Jo(_o(),1);var Bo=s=>{if(s instanceof Jn)return!0;if(s===null||typeof s!="object")return!1;let e=s;return e.name==="NotFound"||e.code==="ENOENT"},Fo=new Set,rs=(s,e)=>{if(Fo.has(s))return;Fo.add(s);let t=e instanceof Error?e.message:String(e);try{console.error(`noskills: WARNING \u2014 ${s} exists but could not be read (${t}). Treating it as empty; the previous contents are still on disk and have NOT been overwritten yet.`)}catch{}},ne=async(s,e)=>{let t=s.lastIndexOf("/"),i=`${t===-1?".":s.slice(0,t)}/.${s.slice(t+1)}.${crypto.randomUUID()}.tmp`;try{await E.fs.writeTextFile(i,e),await E.fs.rename(i,s)}catch(r){try{await E.fs.remove(i)}catch{}throw r}},_=".eser",ue=`${_}/.state`,x=`${ue}/progresses`,Yn=`${x}/state.json`,kf=`${x}/ask-token.json`,os=`${_}/manifest.yml`,tt=`${_}/concerns`,jo=`${_}/rules`,is=`${_}/specs`,Ko=`${_}/workflows`,st=`${x}/specs`,Af=`${x}/active.json`,V=`${ue}/sessions`,as=`${ue}/events`,Nf=`${as}/events.jsonl`,ns=`${x}/ledger`,de={eserDir:_,stateDir:ue,progressesDir:x,stateFile:Yn,askTokenFile:kf,manifestFile:os,concernsDir:tt,rulesDir:jo,specsDir:is,workflowsDir:Ko,specStatesDir:st,activeFile:Af,specDir:s=>`${is}/${s}`,specFile:s=>`${is}/${s}/spec.md`,specStateFile:s=>`${st}/${s}.json`,concernFile:s=>`${tt}/${s}.json`,sessionsDir:V,sessionFile:s=>`${V}/${s}.json`,eventsDir:as,eventsFile:Nf,ledgerDir:ns,ledgerRunDir:s=>`${ns}/${s}`,ledgerFile:s=>`${ns}/${s}/ledger.jsonl`,ledgerSummaryFile:s=>`${ns}/${s}/summary.json`,eserGitignore:`${_}/.gitignore`},Ro=async s=>{await Yo(s);let e=`${s}/${Yn}`;try{let t=await E.fs.readTextFile(e),n=JSON.parse(t);return xo(n)}catch(t){return Bo(t)||rs(e,t),it()}},xo=s=>{let e=s.discovery;if(e==null)return s;let t=e.userContext,n;if(typeof t=="string"?n=t.length>0?[t]:[]:Array.isArray(t)?n=t:n=void 0,t===n)return s;let i={...e};return n===void 0?delete i.userContext:i.userContext=n,{...s,discovery:i}},sh=async(s,e)=>{if(e==null)return Ro(s);let t=`${s}/${de.specDir(e)}`;try{await E.fs.stat(t)}catch{throw new Error(`Spec '${e}' not found. Run \`noskills spec list\` to see available specs.`)}let n=await Uo(s,e);if(n.spec===e)return n;let i=await Ro(s);return i.spec===e?i:{...n,spec:e}};var Ef=s=>{if(s===void 0)return null;for(let e of s)if(e.startsWith("--spec="))return e.slice(7);return null},nh=s=>{let e=Ef(s);return e===null||e.length===0?{ok:!1,error:"Error: spec name is required. Use `noskills spec <name> <command>` format."}:{ok:!0,spec:e}},qf=async(s,e)=>{let t=`${s}/${x}`,n=`${s}/${Yn}`;await E.fs.mkdir(t,{recursive:!0}),await ne(n,JSON.stringify(e,null,2)+`
140
138
  `)};var Uo=async(s,e)=>{let t=`${s}/${de.specStateFile(e)}`;try{let n=await E.fs.readTextFile(t),i=JSON.parse(n);return xo(i)}catch(n){return Bo(n)||rs(t,n),it()}},Of=async(s,e,t)=>{let n=`${s}/${st}`,i=`${s}/${de.specStateFile(e)}`,r;try{r=await Uo(s,e)}catch{r=it()}await E.fs.mkdir(n,{recursive:!0}),await ne(i,JSON.stringify(t,null,2)+`
141
- `);try{await(await import("./decision-ledger-GY2W6VWL.js")).captureTransition(s,r,t)}catch{}},ih=async s=>{let e=`${s}/${st}`,t=[];try{for await(let n of E.fs.readDir(e)){if(!n.isFile||!n.name.endsWith(".json"))continue;let i=`${e}/${n.name}`;try{let r=await E.fs.readTextFile(i);t.push({name:n.name.replace(/\.json$/,""),state:JSON.parse(r)})}catch(r){rs(i,r)}}}catch{}return t},rh=async s=>{let e=`${s}/${os}`;try{let t=await E.fs.readTextFile(e),n=fe.parse(t);return n?.noskills===void 0?null:n.noskills}catch{return null}},oh=async(s,e)=>{let t=`${s}/${os}`,n;try{let r=await E.fs.readTextFile(t);n=fe.parseDocument(r)}catch{n=new fe.Document({})}let i=n.createNode(e);i.commentBefore=" noskills orchestrator \u2014 inline comments in this section won't be preserved on next write",n.set("noskills",i),await ne(t,n.toString())},ah=async(s,e)=>{let t=`${s}/${de.concernFile(e)}`;try{let n=await E.fs.readTextFile(t);return JSON.parse(n)}catch{return null}},lh=async(s,e)=>{let t=`${s}/${tt}`,n=`${s}/${de.concernFile(e.id)}`;await E.fs.mkdir(t,{recursive:!0}),await ne(n,JSON.stringify(e,null,2)+`
139
+ `);try{await(await import("./decision-ledger-5IPPTRT7.js")).captureTransition(s,r,t)}catch{}},ih=async s=>{let e=`${s}/${st}`,t=[];try{for await(let n of E.fs.readDir(e)){if(!n.isFile||!n.name.endsWith(".json"))continue;let i=`${e}/${n.name}`;try{let r=await E.fs.readTextFile(i);t.push({name:n.name.replace(/\.json$/,""),state:JSON.parse(r)})}catch(r){rs(i,r)}}}catch{}return t},rh=async s=>{let e=`${s}/${os}`;try{let t=await E.fs.readTextFile(e),n=fe.parse(t);return n?.noskills===void 0?null:n.noskills}catch{return null}},oh=async(s,e)=>{let t=`${s}/${os}`,n;try{let r=await E.fs.readTextFile(t);n=fe.parseDocument(r)}catch{n=new fe.Document({})}let i=n.createNode(e);i.commentBefore=" noskills orchestrator \u2014 inline comments in this section won't be preserved on next write",n.set("noskills",i),await ne(t,n.toString())},ah=async(s,e)=>{let t=`${s}/${de.concernFile(e)}`;try{let n=await E.fs.readTextFile(t);return JSON.parse(n)}catch{return null}},lh=async(s,e)=>{let t=`${s}/${tt}`,n=`${s}/${de.concernFile(e.id)}`;await E.fs.mkdir(t,{recursive:!0}),await ne(n,JSON.stringify(e,null,2)+`
142
140
  `)},ch=async s=>{let e=`${s}/${tt}`,t=[];try{for await(let n of E.fs.readDir(e)){if(!n.isFile||!n.name.endsWith(".json"))continue;let i=`${e}/${n.name}`;try{let r=await E.fs.readTextFile(i);t.push(JSON.parse(r))}catch(r){rs(i,r)}}}catch{}return t},Yo=async s=>{let e=`${s}/${ue}/state.json`,t=`${s}/${_}/.sessions`,n=`${s}/${_}/.events`,i=await Cf(e),r=await Un(t),o=await Un(n);if(!i&&!r&&!o)return!1;if(i){let u=`${s}/${x}`;if(await Un(u))throw new Error(`noskills: partial migration detected \u2014 both ${e} (file) and ${u} (dir) exist. Resolve manually before continuing.`)}let a=`${s}/${ue}`,l=`${a}/.progresses-tmp`,c=`${s}/${x}`;if(i){await E.fs.mkdir(l,{recursive:!0});for await(let u of E.fs.readDir(a))u.name===".progresses-tmp"||u.name==="progresses"||u.name==="sessions"||u.name==="events"||await E.fs.rename(`${a}/${u.name}`,`${l}/${u.name}`);await E.fs.rename(l,c)}r&&(await E.fs.mkdir(a,{recursive:!0}),await E.fs.rename(t,`${s}/${V}`)),o&&(await E.fs.mkdir(a,{recursive:!0}),await E.fs.rename(n,`${s}/${as}`));let h=`${s}/${de.eserGitignore}`;try{let u=await E.fs.readTextFile(h);(u.includes(".sessions/")||u.includes(".events/"))&&await ne(h,`# eser toolchain runtime state \u2014 not tracked by git
143
141
  .state/
144
142
  `)}catch{}return console.error("noskills: migrated .eser/ runtime layout to .eser/.state/{progresses,sessions,events}/"),!0},Cf=async s=>{try{return(await E.fs.stat(s)).isFile===!0}catch{return!1}},Un=async s=>{try{return(await E.fs.stat(s)).isDirectory===!0}catch{return!1}},uh=async s=>{await Yo(s);let e=[_,ue,x,st,V,as,tt,jo,is,Ko];for(let n of e)await E.fs.mkdir(`${s}/${n}`,{recursive:!0});let t=`${s}/${de.eserGitignore}`;try{await E.fs.stat(t)}catch{await ne(t,`# eser toolchain runtime state \u2014 not tracked by git
@@ -1 +1 @@
1
- import{a as S,l as w}from"./chunk-JYVB6UAV.js";import{a as A,b as R}from"./chunk-OAWYVETM.js";var u=e=>JSON.parse(e),x=e=>{let r="";for(let o=0;o<e.length;o+=32768)r+=String.fromCharCode(...e.subarray(o,o+32768));return btoa(r)},g=e=>{switch(e){case"end_turn":return"end_turn";case"max_tokens":return"max_tokens";case"tool_use":return"tool_use";default:return"stop"}},h=e=>({inputTokens:e?.inputTokens??0,outputTokens:e?.outputTokens??0,totalTokens:e?.totalTokens??0,thinkingTokens:e?.thinkingTokens}),_=e=>{if(e===void 0)return[];let t=[];for(let r of e){if(r.type==="text"&&r.text!==void 0){t.push({kind:"text",text:r.text});continue}if(r.type==="tool_call"&&r.id!==void 0&&r.name!==void 0){t.push({kind:"tool_call",toolCall:{id:r.id,name:r.name,arguments:r.arguments??{}}});continue}r.type==="tool_result"&&r.id!==void 0&&t.push({kind:"tool_result",toolResult:{toolCallId:r.id,content:r.text??"",isError:!1}})}return t},f=e=>({id:e.id,status:e.status,createdAt:new Date(e.createdAt),completedAt:e.completedAt!==void 0?new Date(e.completedAt):void 0,totalCount:e.totalCount,doneCount:e.doneCount,failedCount:e.failedCount,storage:e.storage,error:e.error}),I=e=>{switch(e.kind){case"text":return{type:"text",text:e.text};case"image":return{type:"image",image:{url:e.image.url,mimeType:e.image.mimeType,detail:e.image.detail,data:e.image.data===void 0?void 0:x(e.image.data)}};case"audio":return{type:"audio",audio:{url:e.audio.url,mimeType:e.audio.mimeType,data:e.audio.data===void 0?void 0:x(e.audio.data)}};case"file":return{type:"file",file:{uri:e.file.uri,mimeType:e.file.mimeType}};case"tool_call":return{type:"tool_call",toolCall:{id:e.toolCall.id,name:e.toolCall.name,arguments:e.toolCall.arguments}};case"tool_result":return{type:"tool_result",toolResult:{toolCallId:e.toolResult.toolCallId,content:e.toolResult.content,isError:e.toolResult.isError}};default:return{type:e.kind}}},y=(e,t)=>{let r=crypto.randomUUID();if(t===void 0)return{requestId:r,release:()=>{}};let o=()=>{try{e.symbols.EserAjanAiCancelRequest(JSON.stringify({requestId:r}))}catch{}};return t.aborted?(o(),{requestId:r,release:()=>{}}):(t.addEventListener("abort",o,{once:!0}),{requestId:r,release:()=>t.removeEventListener("abort",o)})},c=(e,t,r)=>w(e,t.error??r,t.errorKind,t.errorStatus),p=e=>new S("request aborted",{provider:e}),b=(e,t)=>{let r=e.messages.map(o=>({role:o.role,content:o.content.map(I)}));return JSON.stringify({requestId:t,messages:r,system:e.system??"",maxTokens:e.maxTokens??0,toolChoice:e.toolChoice??"",tools:e.tools,temperature:e.temperature,topP:e.topP,stopWords:e.stopWords,responseFormat:e.responseFormat,thinkingBudget:e.thinkingBudget,safetySettings:e.safetySettings,extensions:e.extensions})},B=class{capabilities;provider;modelId;#e;#t;constructor(t,r,o,n,s){this.#e=t,this.#t=r,this.provider=o,this.modelId=n,this.capabilities=s}async generateText(t,r){let{requestId:o,release:n}=y(this.#e,r);try{let s=b(t,o),i=await this.#e.symbols.EserAjanAiGenerateText(this.#t,s),a=u(i);return a.error!==void 0?R(r?.aborted===!0?p(this.provider):c(this.provider,a,"generation failed")):A({content:_(a.content),stopReason:g(a.stopReason),usage:h(a.usage),modelId:a.modelId??this.modelId})}finally{n()}}async*streamText(t,r){let{requestId:o,release:n}=y(this.#e,r),s=b(t,o),i=await this.#e.symbols.EserAjanAiStreamText(this.#t,s),a=u(i);if(a.error!==void 0||a.handle===void 0){n(),yield{kind:"error",error:r?.aborted===!0?p(this.provider):c(this.provider,a,"stream start failed")};return}let d=a.handle;try{for(;;){if(r?.aborted===!0){yield{kind:"error",error:p(this.provider)};return}let m=await this.#e.symbols.EserAjanAiStreamRead(d);if(m==="null"||m==="")break;let l=u(m);switch(l.type){case"content_delta":yield{kind:"content_delta",textDelta:l.textDelta??""};break;case"tool_call_delta":yield{kind:"tool_call_delta",textDelta:l.textDelta,toolCall:l.toolCallId===void 0?void 0:{id:l.toolCallId,name:l.toolCallName??"",arguments:l.argumentsDelta??{}}};break;case"message_done":yield{kind:"message_done",stopReason:g(l.stopReason),usage:h(l.usage)};return;case"error":yield{kind:"error",error:c(this.provider,l,"stream error")};return}}}finally{this.#e.symbols.EserAjanAiFreeStream(d),n()}}async submitBatch(t,r){let{requestId:o,release:n}=y(this.#e,r);try{let s=t.items.map(d=>({customId:d.customId,options:JSON.parse(b(d.options))})),i=await this.#e.symbols.EserAjanAiBatchCreate(JSON.stringify({requestId:o,modelHandle:this.#t,items:s})),a=u(i);if(a.error!==void 0||a.job===void 0)throw r?.aborted===!0?p(this.provider):c(this.provider,a,"batch create failed");return f(a.job)}finally{n()}}async getBatchJob(t,r){let{requestId:o,release:n}=y(this.#e,r);try{let s=await this.#e.symbols.EserAjanAiBatchGet(JSON.stringify({requestId:o,modelHandle:this.#t,jobId:t})),i=u(s);if(i.error!==void 0||i.job===void 0)throw r?.aborted===!0?p(this.provider):c(this.provider,i,"batch get failed");return f(i.job)}finally{n()}}async listBatchJobs(t,r){let{requestId:o,release:n}=y(this.#e,r);try{let s=await this.#e.symbols.EserAjanAiBatchList(JSON.stringify({requestId:o,modelHandle:this.#t,limit:t?.limit,after:t?.after})),i=u(s);if(i.error!==void 0)throw r?.aborted===!0?p(this.provider):c(this.provider,i,"batch call failed");return(i.jobs??[]).map(f)}finally{n()}}async downloadBatchResults(t,r){let{requestId:o,release:n}=y(this.#e,r),s={id:t.id,status:t.status,createdAt:t.createdAt.toISOString(),completedAt:t.completedAt?.toISOString(),totalCount:t.totalCount,doneCount:t.doneCount,failedCount:t.failedCount,storage:t.storage,error:t.error};try{let i=await this.#e.symbols.EserAjanAiBatchDownload(JSON.stringify({requestId:o,modelHandle:this.#t,job:s})),a=u(i);if(a.error!==void 0)throw r?.aborted===!0?p(this.provider):c(this.provider,a,"batch call failed");return(a.results??[]).map(d=>({customId:d.customId,result:d.result!==void 0?{content:_(d.result.content),stopReason:g(d.result.stopReason),usage:h(d.result.usage),modelId:d.result.modelId??this.modelId}:void 0,error:d.error}))}finally{n()}}async cancelBatchJob(t,r){let{requestId:o,release:n}=y(this.#e,r);try{let s=await this.#e.symbols.EserAjanAiBatchCancel(JSON.stringify({requestId:o,modelHandle:this.#t,jobId:t})),i=u(s);if(i.error!==void 0)throw r?.aborted===!0?p(this.provider):c(this.provider,i,"batch call failed")}finally{n()}}close(){return this.#e.symbols.EserAjanAiCloseModel(this.#t),Promise.resolve()}[Symbol.asyncDispose](){return this.close()}[Symbol.dispose](){this.#e.symbols.EserAjanAiCloseModel(this.#t)}getRawClient(){return null}},v=class{provider;#e;#t;constructor(t,r,o){this.#e=t,this.provider=r,this.#t=o}createModel(t){let r=JSON.stringify({provider:t.provider,apiKey:t.apiKey??"",model:t.model,baseUrl:t.baseUrl??"",projectId:t.projectId??"",location:t.location??"",maxTokens:t.maxTokens,temperature:t.temperature,requestTimeoutMs:t.requestTimeoutMs,properties:t.properties??{}}),o=this.#e.symbols.EserAjanAiCreateModel(r),n=u(o);return n.error!==void 0||n.handle===void 0?Promise.reject(c(t.provider,n,"failed to create model")):Promise.resolve(new B(this.#e,n.handle,t.provider,t.model,this.#t))}},E=[{provider:"anthropic",capabilities:["text_generation","streaming","tool_calling","vision","batch_processing","structured_output","reasoning"]},{provider:"openai",capabilities:["text_generation","streaming","tool_calling","vision","batch_processing","structured_output","reasoning"]},{provider:"gemini",capabilities:["text_generation","streaming","tool_calling","vision"]},{provider:"vertexai",capabilities:["text_generation","streaming","tool_calling","vision","batch_processing"]},{provider:"ollama",capabilities:["text_generation","streaming","vision"]},{provider:"claude-code",capabilities:["text_generation","streaming","tool_calling"]},{provider:"opencode",capabilities:["text_generation","streaming"]},{provider:"kiro",capabilities:["text_generation","streaming"]}],T=e=>E.map(({provider:t,capabilities:r})=>new v(e,t,r)),C=null,F=async()=>{try{let t=await(await import("./mod-AJIRKRAH.js")).loadEserAjan({wasm:!1});return t.symbols.EserAjanInit(),C=null,T(t)}catch(e){return C=e instanceof Error?e:new Error(String(e)),[]}},P=()=>C;export{B as a,v as b,T as c,F as d,P as e};
1
+ import{a as S,l as w}from"./chunk-JYVB6UAV.js";import{a as A,b as R}from"./chunk-OAWYVETM.js";var u=e=>JSON.parse(e),x=e=>{let r="";for(let o=0;o<e.length;o+=32768)r+=String.fromCharCode(...e.subarray(o,o+32768));return btoa(r)},g=e=>{switch(e){case"end_turn":return"end_turn";case"max_tokens":return"max_tokens";case"tool_use":return"tool_use";default:return"stop"}},h=e=>({inputTokens:e?.inputTokens??0,outputTokens:e?.outputTokens??0,totalTokens:e?.totalTokens??0,thinkingTokens:e?.thinkingTokens}),_=e=>{if(e===void 0)return[];let t=[];for(let r of e){if(r.type==="text"&&r.text!==void 0){t.push({kind:"text",text:r.text});continue}if(r.type==="tool_call"&&r.id!==void 0&&r.name!==void 0){t.push({kind:"tool_call",toolCall:{id:r.id,name:r.name,arguments:r.arguments??{}}});continue}r.type==="tool_result"&&r.id!==void 0&&t.push({kind:"tool_result",toolResult:{toolCallId:r.id,content:r.text??"",isError:!1}})}return t},f=e=>({id:e.id,status:e.status,createdAt:new Date(e.createdAt),completedAt:e.completedAt!==void 0?new Date(e.completedAt):void 0,totalCount:e.totalCount,doneCount:e.doneCount,failedCount:e.failedCount,storage:e.storage,error:e.error}),I=e=>{switch(e.kind){case"text":return{type:"text",text:e.text};case"image":return{type:"image",image:{url:e.image.url,mimeType:e.image.mimeType,detail:e.image.detail,data:e.image.data===void 0?void 0:x(e.image.data)}};case"audio":return{type:"audio",audio:{url:e.audio.url,mimeType:e.audio.mimeType,data:e.audio.data===void 0?void 0:x(e.audio.data)}};case"file":return{type:"file",file:{uri:e.file.uri,mimeType:e.file.mimeType}};case"tool_call":return{type:"tool_call",toolCall:{id:e.toolCall.id,name:e.toolCall.name,arguments:e.toolCall.arguments}};case"tool_result":return{type:"tool_result",toolResult:{toolCallId:e.toolResult.toolCallId,content:e.toolResult.content,isError:e.toolResult.isError}};default:return{type:e.kind}}},y=(e,t)=>{let r=crypto.randomUUID();if(t===void 0)return{requestId:r,release:()=>{}};let o=()=>{try{e.symbols.EserAjanAiCancelRequest(JSON.stringify({requestId:r}))}catch{}};return t.aborted?(o(),{requestId:r,release:()=>{}}):(t.addEventListener("abort",o,{once:!0}),{requestId:r,release:()=>t.removeEventListener("abort",o)})},c=(e,t,r)=>w(e,t.error??r,t.errorKind,t.errorStatus),p=e=>new S("request aborted",{provider:e}),b=(e,t)=>{let r=e.messages.map(o=>({role:o.role,content:o.content.map(I)}));return JSON.stringify({requestId:t,messages:r,system:e.system??"",maxTokens:e.maxTokens??0,toolChoice:e.toolChoice??"",tools:e.tools,temperature:e.temperature,topP:e.topP,stopWords:e.stopWords,responseFormat:e.responseFormat,thinkingBudget:e.thinkingBudget,safetySettings:e.safetySettings,extensions:e.extensions})},B=class{capabilities;provider;modelId;#e;#t;constructor(t,r,o,n,s){this.#e=t,this.#t=r,this.provider=o,this.modelId=n,this.capabilities=s}async generateText(t,r){let{requestId:o,release:n}=y(this.#e,r);try{let s=b(t,o),i=await this.#e.symbols.EserAjanAiGenerateText(this.#t,s),a=u(i);return a.error!==void 0?R(r?.aborted===!0?p(this.provider):c(this.provider,a,"generation failed")):A({content:_(a.content),stopReason:g(a.stopReason),usage:h(a.usage),modelId:a.modelId??this.modelId})}finally{n()}}async*streamText(t,r){let{requestId:o,release:n}=y(this.#e,r),s=b(t,o),i=await this.#e.symbols.EserAjanAiStreamText(this.#t,s),a=u(i);if(a.error!==void 0||a.handle===void 0){n(),yield{kind:"error",error:r?.aborted===!0?p(this.provider):c(this.provider,a,"stream start failed")};return}let d=a.handle;try{for(;;){if(r?.aborted===!0){yield{kind:"error",error:p(this.provider)};return}let m=await this.#e.symbols.EserAjanAiStreamRead(d);if(m==="null"||m==="")break;let l=u(m);switch(l.type){case"content_delta":yield{kind:"content_delta",textDelta:l.textDelta??""};break;case"tool_call_delta":yield{kind:"tool_call_delta",textDelta:l.textDelta,toolCall:l.toolCallId===void 0?void 0:{id:l.toolCallId,name:l.toolCallName??"",arguments:l.argumentsDelta??{}}};break;case"message_done":yield{kind:"message_done",stopReason:g(l.stopReason),usage:h(l.usage)};return;case"error":yield{kind:"error",error:c(this.provider,l,"stream error")};return}}}finally{this.#e.symbols.EserAjanAiFreeStream(d),n()}}async submitBatch(t,r){let{requestId:o,release:n}=y(this.#e,r);try{let s=t.items.map(d=>({customId:d.customId,options:JSON.parse(b(d.options))})),i=await this.#e.symbols.EserAjanAiBatchCreate(JSON.stringify({requestId:o,modelHandle:this.#t,items:s})),a=u(i);if(a.error!==void 0||a.job===void 0)throw r?.aborted===!0?p(this.provider):c(this.provider,a,"batch create failed");return f(a.job)}finally{n()}}async getBatchJob(t,r){let{requestId:o,release:n}=y(this.#e,r);try{let s=await this.#e.symbols.EserAjanAiBatchGet(JSON.stringify({requestId:o,modelHandle:this.#t,jobId:t})),i=u(s);if(i.error!==void 0||i.job===void 0)throw r?.aborted===!0?p(this.provider):c(this.provider,i,"batch get failed");return f(i.job)}finally{n()}}async listBatchJobs(t,r){let{requestId:o,release:n}=y(this.#e,r);try{let s=await this.#e.symbols.EserAjanAiBatchList(JSON.stringify({requestId:o,modelHandle:this.#t,limit:t?.limit,after:t?.after})),i=u(s);if(i.error!==void 0)throw r?.aborted===!0?p(this.provider):c(this.provider,i,"batch call failed");return(i.jobs??[]).map(f)}finally{n()}}async downloadBatchResults(t,r){let{requestId:o,release:n}=y(this.#e,r),s={id:t.id,status:t.status,createdAt:t.createdAt.toISOString(),completedAt:t.completedAt?.toISOString(),totalCount:t.totalCount,doneCount:t.doneCount,failedCount:t.failedCount,storage:t.storage,error:t.error};try{let i=await this.#e.symbols.EserAjanAiBatchDownload(JSON.stringify({requestId:o,modelHandle:this.#t,job:s})),a=u(i);if(a.error!==void 0)throw r?.aborted===!0?p(this.provider):c(this.provider,a,"batch call failed");return(a.results??[]).map(d=>({customId:d.customId,result:d.result!==void 0?{content:_(d.result.content),stopReason:g(d.result.stopReason),usage:h(d.result.usage),modelId:d.result.modelId??this.modelId}:void 0,error:d.error}))}finally{n()}}async cancelBatchJob(t,r){let{requestId:o,release:n}=y(this.#e,r);try{let s=await this.#e.symbols.EserAjanAiBatchCancel(JSON.stringify({requestId:o,modelHandle:this.#t,jobId:t})),i=u(s);if(i.error!==void 0)throw r?.aborted===!0?p(this.provider):c(this.provider,i,"batch call failed")}finally{n()}}close(){return this.#e.symbols.EserAjanAiCloseModel(this.#t),Promise.resolve()}[Symbol.asyncDispose](){return this.close()}[Symbol.dispose](){this.#e.symbols.EserAjanAiCloseModel(this.#t)}getRawClient(){return null}},v=class{provider;#e;#t;constructor(t,r,o){this.#e=t,this.provider=r,this.#t=o}createModel(t){let r=JSON.stringify({provider:t.provider,apiKey:t.apiKey??"",model:t.model,baseUrl:t.baseUrl??"",projectId:t.projectId??"",location:t.location??"",maxTokens:t.maxTokens,temperature:t.temperature,requestTimeoutMs:t.requestTimeoutMs,properties:t.properties??{}}),o=this.#e.symbols.EserAjanAiCreateModel(r),n=u(o);return n.error!==void 0||n.handle===void 0?Promise.reject(c(t.provider,n,"failed to create model")):Promise.resolve(new B(this.#e,n.handle,t.provider,t.model,this.#t))}},E=[{provider:"anthropic",capabilities:["text_generation","streaming","tool_calling","vision","batch_processing","structured_output","reasoning"]},{provider:"openai",capabilities:["text_generation","streaming","tool_calling","vision","batch_processing","structured_output","reasoning"]},{provider:"gemini",capabilities:["text_generation","streaming","tool_calling","vision"]},{provider:"vertexai",capabilities:["text_generation","streaming","tool_calling","vision","batch_processing"]},{provider:"ollama",capabilities:["text_generation","streaming","vision"]},{provider:"claude-code",capabilities:["text_generation","streaming","tool_calling"]},{provider:"opencode",capabilities:["text_generation","streaming"]},{provider:"kiro",capabilities:["text_generation","streaming"]}],T=e=>E.map(({provider:t,capabilities:r})=>new v(e,t,r)),C=null,F=async()=>{try{let t=await(await import("./mod-B6LBGYON.js")).loadEserAjan({wasm:!1});return t.symbols.EserAjanInit(),C=null,T(t)}catch(e){return C=e instanceof Error?e:new Error(String(e)),[]}},P=()=>C;export{B as a,v as b,T as c,F as d,P as e};
@@ -1,3 +1,3 @@
1
- import{a as d}from"./chunk-JYVB6UAV.js";import{d as c,f as u}from"./chunk-IGDFEGCH.js";var y=async(n,t)=>{let e=t.properties?.binPath;if(e!==void 0)return e;try{let r=await u`which ${n}`.noThrow().text();if(r.length>0)return r}catch{}throw new d(`Binary "${n}" not found. Set properties.binPath in config or ensure it is on PATH.`,{provider:n})},f=(n,t,e)=>{let r=e?.stdinData!==void 0,s=new c(n,[...t],{stdin:r?"piped":"null",stdout:"piped",stderr:"piped",cwd:e?.cwd,env:e?.env}).child();if(r&&s.stdin!==null){let i=new TextEncoder,a=s.stdin.getWriter();a.write(i.encode(e.stdinData)).then(()=>{a.close()}).catch(()=>{})}if(e?.signal!==void 0){let i=e.signal;i.aborted?s.kill("SIGTERM"):i.addEventListener("abort",()=>{s.kill("SIGTERM")},{once:!0})}return{stdout:s.stdout,stderr:s.stderr,waitForExit:async()=>{let i=await s.status;return{code:i.code,success:i.success}},kill:i=>{s.kill(i??"SIGTERM")}}},l=new TextDecoder;async function*m(n){let t=n.getReader(),e="";try{let r=await t.read();for(;r.done!==!0;){e+=l.decode(r.value,{stream:!0});let s=e.split(`
1
+ import{a as d}from"./chunk-JYVB6UAV.js";import{d as c,f as u}from"./chunk-HB62UGZI.js";var y=async(n,t)=>{let e=t.properties?.binPath;if(e!==void 0)return e;try{let r=await u`which ${n}`.noThrow().text();if(r.length>0)return r}catch{}throw new d(`Binary "${n}" not found. Set properties.binPath in config or ensure it is on PATH.`,{provider:n})},f=(n,t,e)=>{let r=e?.stdinData!==void 0,s=new c(n,[...t],{stdin:r?"piped":"null",stdout:"piped",stderr:"piped",cwd:e?.cwd,env:e?.env}).child();if(r&&s.stdin!==null){let i=new TextEncoder,a=s.stdin.getWriter();a.write(i.encode(e.stdinData)).then(()=>{a.close()}).catch(()=>{})}if(e?.signal!==void 0){let i=e.signal;i.aborted?s.kill("SIGTERM"):i.addEventListener("abort",()=>{s.kill("SIGTERM")},{once:!0})}return{stdout:s.stdout,stderr:s.stderr,waitForExit:async()=>{let i=await s.status;return{code:i.code,success:i.success}},kill:i=>{s.kill(i??"SIGTERM")}}},l=new TextDecoder;async function*m(n){let t=n.getReader(),e="";try{let r=await t.read();for(;r.done!==!0;){e+=l.decode(r.value,{stream:!0});let s=e.split(`
2
2
  `);e=s.pop()??"";for(let i of s){let a=i.trim();if(a.length!==0)try{yield JSON.parse(a)}catch{}}r=await t.read()}let o=e.trim();if(o.length>0)try{yield JSON.parse(o)}catch{}}finally{t.releaseLock()}}var w=async(n,t)=>{let e=n.getReader(),r=[],o=await e.read();for(;o.done!==!0;)r.push(l.decode(o.value,{stream:!0})),o=await e.read();return e.releaseLock(),{content:[{kind:"text",text:r.join("").trim()}],stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0},modelId:t}},h=async n=>{let t=n.getReader(),e=[],r=await t.read();for(;r.done!==!0;)e.push(l.decode(r.value,{stream:!0})),r=await t.read();return t.releaseLock(),e.join("").trim()},x=(n,t,e)=>{if(t===0)return null;let r=e.length>0?`${n} exited with code ${t}: ${e}`:`${n} exited with code ${t}`;return t===1?new d(r,{provider:n}):t===126||t===127?new d(`${n} binary not found or not executable (exit code ${t})`,{provider:n}):new d(r,{provider:n})},b=(n,t)=>{let e=[];t!==void 0&&(e.push(t),e.push(""));for(let r of n)for(let o of r.content)o.kind==="text"&&e.push(o.text);return e.join(`
3
3
  `)};export{y as a,f as b,m as c,w as d,h as e,x as f,b as g};
@@ -1 +1 @@
1
- import{a as T,b as p,c as _,e as f,f as c,g as m}from"./chunk-CML74SNT.js";import{a as u}from"./chunk-JYVB6UAV.js";import{a as h,b as w}from"./chunk-OAWYVETM.js";var y=class{capabilities=["text_generation","streaming","tool_calling"];provider="claude-code";modelId;binary;config;constructor(e,t){this.binary=e,this.config=t,this.modelId=t.model}async generateText(e,t){let r=S(this.config,e,"json"),o=m(e.messages,e.system),s=p(this.binary,r,{signal:t,stdinData:o,cwd:this.config.properties?.cwd}),i=f(s.stderr),a=s.stdout.getReader(),l=[],d=new TextDecoder,g=await a.read();for(;g.done!==!0;)l.push(d.decode(g.value,{stream:!0})),g=await a.read();a.releaseLock();let v=await s.waitForExit(),b=await i,k=c("claude-code",v.code,b);if(k!==null)return w(k);let E=l.join("");return h(A(E,this.modelId))}async*streamText(e,t){let r=this.config.properties?.streamFormat??"text",o=S(this.config,e,r),s=m(e.messages,e.system),i=p(this.binary,o,{signal:t,stdinData:s,cwd:this.config.properties?.cwd}),a=f(i.stderr);try{r==="stream-json"?yield*this.#t(i,a):yield*this.#e(i,a)}catch(l){l instanceof u?yield{kind:"error",error:l}:yield{kind:"error",error:new u(l instanceof Error?l.message:String(l),{provider:"claude-code",cause:l instanceof Error?l:void 0})}}}async*#e(e,t){let r=new TextDecoder,o=e.stdout.getReader(),s=await o.read();for(;s.done!==!0;){let d=r.decode(s.value,{stream:!0});d.length>0&&(yield{kind:"content_delta",textDelta:d}),s=await o.read()}o.releaseLock();let i=await e.waitForExit(),a=await t,l=c("claude-code",i.code,a);l!==null?yield{kind:"error",error:l}:yield{kind:"message_done",stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0}}}async*#t(e,t){for await(let i of _(e.stdout)){let a=C(i);a!==null&&(yield a)}let r=await e.waitForExit(),o=await t,s=c("claude-code",r.code,o);s!==null&&(yield{kind:"error",error:s})}close(){return Promise.resolve()}getRawClient(){return null}},G={provider:"claude-code",async createModel(n){let e=await T("claude",n);return new y(e,n)}},S=(n,e,t)=>{let r=[];t!=="text"&&r.push("--output-format",t),t==="stream-json"&&r.push("--verbose"),n.model!==""&&r.push("--model",n.model);let o=n.properties?.maxTurns;o!==void 0&&r.push("--max-turns",String(o));let s=n.properties?.allowedTools;if(s!==void 0)for(let a of s)r.push("--allowedTools",a);let i=n.properties?.args;return i!==void 0&&r.push(...i),r},A=(n,e)=>{let t=n.trim(),r=s=>({content:[{kind:"text",text:s}],stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0},modelId:e});try{let s=JSON.parse(t);return Array.isArray(s)?R(s,e):x(s,e)}catch{}let o=[];for(let s of t.split(/\r?\n/)){let i=s.trim();if(i.length!==0)try{o.push(JSON.parse(i))}catch{}}return o.length>0?R(o,e):t.startsWith("{")||t.startsWith("[")?r(""):r(t)},R=(n,e)=>{let t=o=>o!==null&&typeof o=="object",r=n.find(o=>t(o)&&o.type==="result"&&o.result!==void 0);if(r!==void 0)return x(r,e);for(let o=n.length-1;o>=0;o--){let s=n[o];if(t(s)&&s.type==="assistant"&&t(s.message))return x(s,e)}return{content:[{kind:"text",text:""}],stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0},modelId:e}},x=(n,e)=>{let t=[];if(n.result!==void 0)t.push({kind:"text",text:String(n.result)});else if(n.message?.content!==void 0)for(let r of n.message.content)r.type==="text"?t.push({kind:"text",text:r.text}):r.type==="tool_use"&&t.push({kind:"tool_call",toolCall:{id:r.id??r.name,name:r.name,arguments:r.input??{}}});else typeof n=="string"&&t.push({kind:"text",text:n});return t.length===0&&t.push({kind:"text",text:""}),{content:t,stopReason:n.stop_reason==="tool_use"?"tool_use":"end_turn",usage:{inputTokens:n.usage?.input_tokens??0,outputTokens:n.usage?.output_tokens??0,totalTokens:(n.usage?.input_tokens??0)+(n.usage?.output_tokens??0)},modelId:e,rawResponse:n}},C=n=>{if(n===null||typeof n!="object")return null;let e=n;if(e.type==="assistant"){if(e.message?.content!==void 0){for(let t of e.message.content)if(t.type==="text")return{kind:"content_delta",textDelta:t.text}}return null}return e.type==="content_block_delta"?e.delta?.type==="text_delta"?{kind:"content_delta",textDelta:e.delta.text}:null:e.type==="result"?{kind:"message_done",stopReason:e.subtype==="tool_use"?"tool_use":"end_turn",usage:{inputTokens:e.usage?.input_tokens??0,outputTokens:e.usage?.output_tokens??0,totalTokens:(e.usage?.input_tokens??0)+(e.usage?.output_tokens??0)}}:e.type==="error"?{kind:"error",error:new u(e.error?.message??"Unknown Claude Code error",{provider:"claude-code"})}:e.content!==void 0&&typeof e.content=="string"?{kind:"content_delta",textDelta:e.content}:null};export{y as a,G as b,A as c};
1
+ import{a as T,b as p,c as _,e as f,f as c,g as m}from"./chunk-Y45DQJSS.js";import{a as u}from"./chunk-JYVB6UAV.js";import{a as h,b as w}from"./chunk-OAWYVETM.js";var y=class{capabilities=["text_generation","streaming","tool_calling"];provider="claude-code";modelId;binary;config;constructor(e,t){this.binary=e,this.config=t,this.modelId=t.model}async generateText(e,t){let r=S(this.config,e,"json"),o=m(e.messages,e.system),s=p(this.binary,r,{signal:t,stdinData:o,cwd:this.config.properties?.cwd}),i=f(s.stderr),a=s.stdout.getReader(),l=[],d=new TextDecoder,g=await a.read();for(;g.done!==!0;)l.push(d.decode(g.value,{stream:!0})),g=await a.read();a.releaseLock();let v=await s.waitForExit(),b=await i,k=c("claude-code",v.code,b);if(k!==null)return w(k);let E=l.join("");return h(A(E,this.modelId))}async*streamText(e,t){let r=this.config.properties?.streamFormat??"text",o=S(this.config,e,r),s=m(e.messages,e.system),i=p(this.binary,o,{signal:t,stdinData:s,cwd:this.config.properties?.cwd}),a=f(i.stderr);try{r==="stream-json"?yield*this.#t(i,a):yield*this.#e(i,a)}catch(l){l instanceof u?yield{kind:"error",error:l}:yield{kind:"error",error:new u(l instanceof Error?l.message:String(l),{provider:"claude-code",cause:l instanceof Error?l:void 0})}}}async*#e(e,t){let r=new TextDecoder,o=e.stdout.getReader(),s=await o.read();for(;s.done!==!0;){let d=r.decode(s.value,{stream:!0});d.length>0&&(yield{kind:"content_delta",textDelta:d}),s=await o.read()}o.releaseLock();let i=await e.waitForExit(),a=await t,l=c("claude-code",i.code,a);l!==null?yield{kind:"error",error:l}:yield{kind:"message_done",stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0}}}async*#t(e,t){for await(let i of _(e.stdout)){let a=C(i);a!==null&&(yield a)}let r=await e.waitForExit(),o=await t,s=c("claude-code",r.code,o);s!==null&&(yield{kind:"error",error:s})}close(){return Promise.resolve()}getRawClient(){return null}},G={provider:"claude-code",async createModel(n){let e=await T("claude",n);return new y(e,n)}},S=(n,e,t)=>{let r=[];t!=="text"&&r.push("--output-format",t),t==="stream-json"&&r.push("--verbose"),n.model!==""&&r.push("--model",n.model);let o=n.properties?.maxTurns;o!==void 0&&r.push("--max-turns",String(o));let s=n.properties?.allowedTools;if(s!==void 0)for(let a of s)r.push("--allowedTools",a);let i=n.properties?.args;return i!==void 0&&r.push(...i),r},A=(n,e)=>{let t=n.trim(),r=s=>({content:[{kind:"text",text:s}],stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0},modelId:e});try{let s=JSON.parse(t);return Array.isArray(s)?R(s,e):x(s,e)}catch{}let o=[];for(let s of t.split(/\r?\n/)){let i=s.trim();if(i.length!==0)try{o.push(JSON.parse(i))}catch{}}return o.length>0?R(o,e):t.startsWith("{")||t.startsWith("[")?r(""):r(t)},R=(n,e)=>{let t=o=>o!==null&&typeof o=="object",r=n.find(o=>t(o)&&o.type==="result"&&o.result!==void 0);if(r!==void 0)return x(r,e);for(let o=n.length-1;o>=0;o--){let s=n[o];if(t(s)&&s.type==="assistant"&&t(s.message))return x(s,e)}return{content:[{kind:"text",text:""}],stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0},modelId:e}},x=(n,e)=>{let t=[];if(n.result!==void 0)t.push({kind:"text",text:String(n.result)});else if(n.message?.content!==void 0)for(let r of n.message.content)r.type==="text"?t.push({kind:"text",text:r.text}):r.type==="tool_use"&&t.push({kind:"tool_call",toolCall:{id:r.id??r.name,name:r.name,arguments:r.input??{}}});else typeof n=="string"&&t.push({kind:"text",text:n});return t.length===0&&t.push({kind:"text",text:""}),{content:t,stopReason:n.stop_reason==="tool_use"?"tool_use":"end_turn",usage:{inputTokens:n.usage?.input_tokens??0,outputTokens:n.usage?.output_tokens??0,totalTokens:(n.usage?.input_tokens??0)+(n.usage?.output_tokens??0)},modelId:e,rawResponse:n}},C=n=>{if(n===null||typeof n!="object")return null;let e=n;if(e.type==="assistant"){if(e.message?.content!==void 0){for(let t of e.message.content)if(t.type==="text")return{kind:"content_delta",textDelta:t.text}}return null}return e.type==="content_block_delta"?e.delta?.type==="text_delta"?{kind:"content_delta",textDelta:e.delta.text}:null:e.type==="result"?{kind:"message_done",stopReason:e.subtype==="tool_use"?"tool_use":"end_turn",usage:{inputTokens:e.usage?.input_tokens??0,outputTokens:e.usage?.output_tokens??0,totalTokens:(e.usage?.input_tokens??0)+(e.usage?.output_tokens??0)}}:e.type==="error"?{kind:"error",error:new u(e.error?.message??"Unknown Claude Code error",{provider:"claude-code"})}:e.content!==void 0&&typeof e.content=="string"?{kind:"content_delta",textDelta:e.content}:null};export{y as a,G as b,A as c};
@@ -0,0 +1 @@
1
+ import{a,b,c}from"./chunk-YUTDPPXX.js";import"./chunk-Y45DQJSS.js";import"./chunk-JYVB6UAV.js";import"./chunk-HB62UGZI.js";import"./chunk-ENP4P2YH.js";import"./chunk-3JTDWOAJ.js";import"./chunk-34RPTI4K.js";import"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";export{a as ClaudeCodeModel,b as claudeCodeFactory,c as parseJsonResult};
@@ -1 +1 @@
1
- import{d as z}from"./chunk-7PPUGTKL.js";import{b as I,c as P}from"./chunk-IFE5SYGK.js";import{c as p,d,f as m,g as k,h as R,o as g,q as v,r as h}from"./chunk-VXU6XZ66.js";import{b as $,g as x}from"./chunk-O4KKKYCH.js";import{E as b,o as y,p as A,q as M,r as D}from"./chunk-KRKOWSYW.js";import{a as f,b as w}from"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var J=async t=>{let e=t?.[0];if(e==="add")return await U(t?.slice(1));if(e==="remove")return await E(t?.slice(1));if(e==="list")return await F(t?.slice(1));let n=I(),r=g({renderer:h.ansi(),sink:v.stdout()});return r.writeln(`Usage: ${n} concern <add <id> | remove <id> | list>`),await r.close(),f(void 0)},U=async t=>{let e=g({renderer:h.ansi(),sink:v.stdout()}),{root:n}=await b(),r=(t??[]).filter(o=>!o.startsWith("-")),a=await y(n);if(r.length===0)return e.writeln(m("Please provide concern ID(s): "),p(P("concern add open-source beautiful-product"))),await e.close(),w({exitCode:1});if(a===null)return e.writeln(m("noskills not initialized.")),await e.close(),w({exitCode:1});let c=await $(),i=[];for(let o of r){let l=await M(n,o);if(l===null&&(l=c.find(s=>s.id===o)??null,l!==null&&await D(n,l)),l===null){e.writeln(m(`Unknown concern: ${o}`)),e.writeln(d(` Available: ${c.map(s=>s.id).join(", ")}`));continue}if(a.concerns.includes(o)||i.includes(o)){e.writeln(d(`Concern "${o}" is already active.`));continue}i.push(o)}if(i.length>0){let o={...a,concerns:[...a.concerns,...i]};await A(n,o),e.writeln(k("\u2714"),` Activated concerns: ${i.join(", ")}`)}return await e.close(),f(void 0)},E=async t=>{let e=g({renderer:h.ansi(),sink:v.stdout()}),{root:n}=await b(),r=t?.[0],a=await y(n);if(r===void 0||r.length===0)return e.writeln(m("Please provide a concern ID: "),p(P("concern remove move-fast"))),await e.close(),w({exitCode:1});if(a===null)return e.writeln(m("noskills not initialized.")),await e.close(),w({exitCode:1});if(!a.concerns.includes(r))return e.writeln(d(`Concern "${r}" is not active.`)),await e.close(),f(void 0);let c={...a,concerns:a.concerns.filter(i=>i!==r)};return await A(n,c),e.writeln(k("\u2714")," Deactivated concern: ",p(r)),await e.close(),f(void 0)},T=t=>t.length===0?t:t[0].toUpperCase()+t.slice(1),F=async t=>{let e=t?.includes("--json")??!1,n=g({renderer:h.ansi(),sink:v.stdout()}),{root:r}=await b(),a=await y(r),c=await $(),i=a?.concerns??[],o=c.filter(s=>i.includes(s.id));if(e)return await n.close(),await z({concerns:c.map(s=>({id:s.id,description:s.description,category:s.category??"general",isActive:i.includes(s.id)})),active:i},"json"),f(void 0);let l=new Map;for(let s of c){let u=s.category??"general";l.has(u)||l.set(u,[]),l.get(u).push(s)}if(n.writeln(p("Concerns"),d(` (${c.length} available, ${i.length} active)`)),n.writeln(""),c.length===0)n.writeln(d(" No concerns defined."));else for(let[s,u]of l){n.writeln(p(T(s)+":"));for(let C of u){let j=i.includes(C.id);n.writeln(" ",j?k("\u25CF"):d("\u25CB")," ",j?p(C.id.padEnd(24)):d(C.id.padEnd(24)),d(C.description))}n.writeln("")}try{let s=x(o);if(s.length>0){n.writeln(R("\u26A0 Tensions detected:"));for(let u of s)n.writeln(d(` ${u.between[0]} \u2194 ${u.between[1]}: ${u.issue}`));n.writeln("")}}catch{}return await n.close(),f(void 0)};export{J as main};
1
+ import{c as p,d,f as m,g as k,h as R,o as g,q as v,r as h}from"./chunk-VXU6XZ66.js";import{d as z}from"./chunk-7PPUGTKL.js";import{b as I,c as P}from"./chunk-IFE5SYGK.js";import{b as $,g as x}from"./chunk-O4KKKYCH.js";import{E as b,o as y,p as A,q as M,r as D}from"./chunk-WDKWHGJU.js";import{a as f,b as w}from"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var J=async t=>{let e=t?.[0];if(e==="add")return await U(t?.slice(1));if(e==="remove")return await E(t?.slice(1));if(e==="list")return await F(t?.slice(1));let n=I(),r=g({renderer:h.ansi(),sink:v.stdout()});return r.writeln(`Usage: ${n} concern <add <id> | remove <id> | list>`),await r.close(),f(void 0)},U=async t=>{let e=g({renderer:h.ansi(),sink:v.stdout()}),{root:n}=await b(),r=(t??[]).filter(o=>!o.startsWith("-")),a=await y(n);if(r.length===0)return e.writeln(m("Please provide concern ID(s): "),p(P("concern add open-source beautiful-product"))),await e.close(),w({exitCode:1});if(a===null)return e.writeln(m("noskills not initialized.")),await e.close(),w({exitCode:1});let c=await $(),i=[];for(let o of r){let l=await M(n,o);if(l===null&&(l=c.find(s=>s.id===o)??null,l!==null&&await D(n,l)),l===null){e.writeln(m(`Unknown concern: ${o}`)),e.writeln(d(` Available: ${c.map(s=>s.id).join(", ")}`));continue}if(a.concerns.includes(o)||i.includes(o)){e.writeln(d(`Concern "${o}" is already active.`));continue}i.push(o)}if(i.length>0){let o={...a,concerns:[...a.concerns,...i]};await A(n,o),e.writeln(k("\u2714"),` Activated concerns: ${i.join(", ")}`)}return await e.close(),f(void 0)},E=async t=>{let e=g({renderer:h.ansi(),sink:v.stdout()}),{root:n}=await b(),r=t?.[0],a=await y(n);if(r===void 0||r.length===0)return e.writeln(m("Please provide a concern ID: "),p(P("concern remove move-fast"))),await e.close(),w({exitCode:1});if(a===null)return e.writeln(m("noskills not initialized.")),await e.close(),w({exitCode:1});if(!a.concerns.includes(r))return e.writeln(d(`Concern "${r}" is not active.`)),await e.close(),f(void 0);let c={...a,concerns:a.concerns.filter(i=>i!==r)};return await A(n,c),e.writeln(k("\u2714")," Deactivated concern: ",p(r)),await e.close(),f(void 0)},T=t=>t.length===0?t:t[0].toUpperCase()+t.slice(1),F=async t=>{let e=t?.includes("--json")??!1,n=g({renderer:h.ansi(),sink:v.stdout()}),{root:r}=await b(),a=await y(r),c=await $(),i=a?.concerns??[],o=c.filter(s=>i.includes(s.id));if(e)return await n.close(),await z({concerns:c.map(s=>({id:s.id,description:s.description,category:s.category??"general",isActive:i.includes(s.id)})),active:i},"json"),f(void 0);let l=new Map;for(let s of c){let u=s.category??"general";l.has(u)||l.set(u,[]),l.get(u).push(s)}if(n.writeln(p("Concerns"),d(` (${c.length} available, ${i.length} active)`)),n.writeln(""),c.length===0)n.writeln(d(" No concerns defined."));else for(let[s,u]of l){n.writeln(p(T(s)+":"));for(let C of u){let j=i.includes(C.id);n.writeln(" ",j?k("\u25CF"):d("\u25CB")," ",j?p(C.id.padEnd(24)):d(C.id.padEnd(24)),d(C.description))}n.writeln("")}try{let s=x(o);if(s.length>0){n.writeln(R("\u26A0 Tensions detected:"));for(let u of s)n.writeln(d(` ${u.between[0]} \u2194 ${u.between[1]}: ${u.issue}`));n.writeln("")}}catch{}return await n.close(),f(void 0)};export{J as main};
@@ -1 +1 @@
1
- import{a as p,b as h,c as k,d as C,e as P,f as w}from"./chunk-5RLCKUIF.js";import{b as m}from"./chunk-IFE5SYGK.js";import{c as d,d as n,f,g,o as l,q as o,r as u}from"./chunk-VXU6XZ66.js";import{a,b as c}from"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var G=async s=>{let e=s?.[0];if(e==="set-user")return await v(s?.slice(1));if(e==="get-user")return await x();if(e==="clear-user")return await A();let r=m(),i=l({renderer:u.ansi(),sink:o.stdout()});return i.writeln(`Usage: ${r} config <set-user | get-user | clear-user>`),await i.close(),a(void 0)},v=async s=>{let e=l({renderer:u.ansi(),sink:o.stdout()}),r=null,i=null,y=!1;for(let t of s??[])t.startsWith("--name=")?r=t.slice(7):t.startsWith("--email=")?i=t.slice(8):t==="--from-git"&&(y=!0);if(y){let t=await P();if(t===null)return e.writeln(f("Could not read git user config.")),await e.close(),c({exitCode:1});r=t.name,i=t.email}if(r===null||r.length===0)return e.writeln(f("Please provide a name: "),d(`${m()} config set-user --name="Your Name" --email="you@example.com"`)),await e.close(),c({exitCode:1});let U={name:r,email:i??""};return await k(U),e.writeln(g("User set: "),d(w(U))),e.writeln(n(` Stored in: ${p()}`)),await e.close(),a(void 0)},x=async()=>{let s=l({renderer:u.ansi(),sink:o.stdout()}),e=await h();return e===null?(s.writeln(n("No user configured.")),s.writeln(n(`Set one with: ${m()} config set-user --name="Your Name"`))):(s.writeln(d("User: "),w(e)),s.writeln(n(` File: ${p()}`))),await s.close(),a(void 0)},A=async()=>{let s=l({renderer:u.ansi(),sink:o.stdout()});return await C()?s.writeln(g("User identity cleared.")):s.writeln(n("No user configured.")),await s.close(),a(void 0)};export{G as main};
1
+ import{c as d,d as n,f,g,o as l,q as o,r as u}from"./chunk-VXU6XZ66.js";import{a as p,b as h,c as k,d as C,e as P,f as w}from"./chunk-5RLCKUIF.js";import{b as m}from"./chunk-IFE5SYGK.js";import{a,b as c}from"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var G=async s=>{let e=s?.[0];if(e==="set-user")return await v(s?.slice(1));if(e==="get-user")return await x();if(e==="clear-user")return await A();let r=m(),i=l({renderer:u.ansi(),sink:o.stdout()});return i.writeln(`Usage: ${r} config <set-user | get-user | clear-user>`),await i.close(),a(void 0)},v=async s=>{let e=l({renderer:u.ansi(),sink:o.stdout()}),r=null,i=null,y=!1;for(let t of s??[])t.startsWith("--name=")?r=t.slice(7):t.startsWith("--email=")?i=t.slice(8):t==="--from-git"&&(y=!0);if(y){let t=await P();if(t===null)return e.writeln(f("Could not read git user config.")),await e.close(),c({exitCode:1});r=t.name,i=t.email}if(r===null||r.length===0)return e.writeln(f("Please provide a name: "),d(`${m()} config set-user --name="Your Name" --email="you@example.com"`)),await e.close(),c({exitCode:1});let U={name:r,email:i??""};return await k(U),e.writeln(g("User set: "),d(w(U))),e.writeln(n(` Stored in: ${p()}`)),await e.close(),a(void 0)},x=async()=>{let s=l({renderer:u.ansi(),sink:o.stdout()}),e=await h();return e===null?(s.writeln(n("No user configured.")),s.writeln(n(`Set one with: ${m()} config set-user --name="Your Name"`))):(s.writeln(d("User: "),w(e)),s.writeln(n(` File: ${p()}`))),await s.close(),a(void 0)},A=async()=>{let s=l({renderer:u.ansi(),sink:o.stdout()});return await C()?s.writeln(g("User identity cleared.")):s.writeln(n("No user configured.")),await s.close(),a(void 0)};export{G as main};
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g}from"./chunk-GQTHILPL.js";import"./chunk-VJRCTYGL.js";import"./chunk-PKEQKXZW.js";import"./chunk-O4KKKYCH.js";import"./chunk-KRKOWSYW.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";export{g as captureTransition,c as computeSummary,b as countOpenQuestions,a as diffDecisions,e as readLedger,f as readSummary,d as toMeasurementDraft};
1
+ import{a,b,c,d,e,f,g}from"./chunk-5FX4EBFY.js";import"./chunk-VJRCTYGL.js";import"./chunk-O4KKKYCH.js";import"./chunk-ONJVI5AZ.js";import"./chunk-WDKWHGJU.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";export{g as captureTransition,c as computeSummary,b as countOpenQuestions,a as diffDecisions,e as readLedger,f as readSummary,d as toMeasurementDraft};
@@ -1 +1 @@
1
- import{a as k}from"./chunk-DBKXMYLF.js";import{h as C}from"./chunk-5RLCKUIF.js";import{H as v}from"./chunk-UE56BMAW.js";import"./chunk-XDRX4ZBJ.js";import"./chunk-IFE5SYGK.js";import{f as n,g as u,o as f,q as w,r as h}from"./chunk-VXU6XZ66.js";import"./chunk-VJRCTYGL.js";import"./chunk-PKEQKXZW.js";import"./chunk-O4KKKYCH.js";import{E as S,h as g,j as y,m as E}from"./chunk-KRKOWSYW.js";import{a as d,b as a}from"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var $=async p=>{let e=f({renderer:h.ansi(),sink:w.stdout()}),{root:i}=await S(),s=y(p);if(!s.ok)return e.writeln(n(s.error)),await e.close(),a({exitCode:1});let m=(p??[]).filter(r=>!r.startsWith("--")),o=m[0],l=m.slice(1).join(" ");if(!o||!l)return e.writeln(n("Usage: noskills spec <name> delegate <questionId> <userName>")),await e.close(),a({exitCode:1});let t;try{t=await g(i,s.spec)}catch(r){let R=r instanceof Error?r.message:String(r);return e.writeln(n(R)),await e.close(),a({exitCode:1})}if(t.phase!=="DISCOVERY"&&t.phase!=="DISCOVERY_REFINEMENT")return e.writeln(n(`Cannot delegate in phase: ${t.phase}. Only during discovery.`)),await e.close(),a({exitCode:1});let c=await C(i),I=v(t,o,l,c.name);return await E(i,s.spec,I),await k(i,{ts:new Date().toISOString(),type:"delegation-created",spec:s.spec,user:c.name,question:o,from:c.name,to:l}),e.writeln(u("\u2714"),` Delegated "${o}" to ${l}`),await e.close(),d(void 0)};export{$ as main};
1
+ import{a as k}from"./chunk-NPWXEWRN.js";import{f as n,g as u,o as f,q as w,r as h}from"./chunk-VXU6XZ66.js";import{h as C}from"./chunk-5RLCKUIF.js";import{H as v}from"./chunk-EVJYA7S3.js";import"./chunk-XDRX4ZBJ.js";import"./chunk-IFE5SYGK.js";import"./chunk-VJRCTYGL.js";import"./chunk-O4KKKYCH.js";import"./chunk-ONJVI5AZ.js";import{E as S,h as g,j as y,m as E}from"./chunk-WDKWHGJU.js";import{a as d,b as a}from"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var $=async p=>{let e=f({renderer:h.ansi(),sink:w.stdout()}),{root:i}=await S(),s=y(p);if(!s.ok)return e.writeln(n(s.error)),await e.close(),a({exitCode:1});let m=(p??[]).filter(r=>!r.startsWith("--")),o=m[0],l=m.slice(1).join(" ");if(!o||!l)return e.writeln(n("Usage: noskills spec <name> delegate <questionId> <userName>")),await e.close(),a({exitCode:1});let t;try{t=await g(i,s.spec)}catch(r){let R=r instanceof Error?r.message:String(r);return e.writeln(n(R)),await e.close(),a({exitCode:1})}if(t.phase!=="DISCOVERY"&&t.phase!=="DISCOVERY_REFINEMENT")return e.writeln(n(`Cannot delegate in phase: ${t.phase}. Only during discovery.`)),await e.close(),a({exitCode:1});let c=await C(i),I=v(t,o,l,c.name);return await E(i,s.spec,I),await k(i,{ts:new Date().toISOString(),type:"delegation-created",spec:s.spec,user:c.name,question:o,from:c.name,to:l}),e.writeln(u("\u2714"),` Delegated "${o}" to ${l}`),await e.close(),d(void 0)};export{$ as main};
@@ -1 +1 @@
1
- import{a as k,b as v,c as F,d as R,e as b}from"./chunk-Q4TI7EYT.js";import{c as u,d as r,f as d,g as f,h as g,o as p,q as w,r as $}from"./chunk-VXU6XZ66.js";import{E as h,g as y}from"./chunk-KRKOWSYW.js";import{a,b as m}from"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var U=async c=>{let e=p({renderer:$.ansi(),sink:w.stdout()}),{root:n}=await h(),l=c?.[0];if(l==="scan"){let i=await k(n);await F(n,i),e.writeln(f("\u2714"),` Found ${i.length} diagram(s):`);for(let s of i)e.writeln(` ${s.file}:${s.line} `,r(`[${s.type}]`),r(` refs: ${s.referencedFiles.length}`));return await e.close(),a(void 0)}if(l==="list"||l===void 0){let i=await v(n);if(i.length===0)return e.writeln(r("No diagrams registered. Run: noskills diagrams scan")),await e.close(),a(void 0);e.writeln(u(`${i.length} diagram(s):`));for(let s of i)e.writeln(` ${s.file}:${s.line} `,r(`[${s.type}]`),` refs: ${s.referencedFiles.join(", ")||"none"}`),e.writeln(r(` verified: ${s.lastVerified.slice(0,10)}`));return await e.close(),a(void 0)}if(l==="check"){let s=(await y(n)).execution.modifiedFiles,o=await b(n,s);if(o.length===0)e.writeln(f("\u2714")," No stale diagrams.");else{e.writeln(g(`\u26A0 ${o.length} potentially stale diagram(s):`));for(let t of o)e.writeln(` ${t.file}:${t.line} `,r(`[${t.type}]`)),e.writeln(r(` ${t.reason}`))}return await e.close(),a(void 0)}if(l==="verify"){let i=c?.[1];if(!i)return e.writeln(d("Usage: noskills diagrams verify <file>")),await e.close(),m({exitCode:1});let s;for(let t of c??[])t.startsWith("--line=")&&(s=parseInt(t.slice(7),10));return await R(n,i,s)?e.writeln(f("\u2714"),` Verified: ${i}`):e.writeln(d(`Diagram not found in registry: ${i}`)),await e.close(),a(void 0)}return e.writeln(d("Unknown subcommand. Use: scan, list, check, verify")),await e.close(),m({exitCode:1})};export{U as main};
1
+ import{a as k,b as v,c as F,d as R,e as b}from"./chunk-Q4TI7EYT.js";import{c as u,d as r,f as d,g as f,h as g,o as p,q as w,r as $}from"./chunk-VXU6XZ66.js";import{E as h,g as y}from"./chunk-WDKWHGJU.js";import{a,b as m}from"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var U=async c=>{let e=p({renderer:$.ansi(),sink:w.stdout()}),{root:n}=await h(),l=c?.[0];if(l==="scan"){let i=await k(n);await F(n,i),e.writeln(f("\u2714"),` Found ${i.length} diagram(s):`);for(let s of i)e.writeln(` ${s.file}:${s.line} `,r(`[${s.type}]`),r(` refs: ${s.referencedFiles.length}`));return await e.close(),a(void 0)}if(l==="list"||l===void 0){let i=await v(n);if(i.length===0)return e.writeln(r("No diagrams registered. Run: noskills diagrams scan")),await e.close(),a(void 0);e.writeln(u(`${i.length} diagram(s):`));for(let s of i)e.writeln(` ${s.file}:${s.line} `,r(`[${s.type}]`),` refs: ${s.referencedFiles.join(", ")||"none"}`),e.writeln(r(` verified: ${s.lastVerified.slice(0,10)}`));return await e.close(),a(void 0)}if(l==="check"){let s=(await y(n)).execution.modifiedFiles,o=await b(n,s);if(o.length===0)e.writeln(f("\u2714")," No stale diagrams.");else{e.writeln(g(`\u26A0 ${o.length} potentially stale diagram(s):`));for(let t of o)e.writeln(` ${t.file}:${t.line} `,r(`[${t.type}]`)),e.writeln(r(` ${t.reason}`))}return await e.close(),a(void 0)}if(l==="verify"){let i=c?.[1];if(!i)return e.writeln(d("Usage: noskills diagrams verify <file>")),await e.close(),m({exitCode:1});let s;for(let t of c??[])t.startsWith("--line=")&&(s=parseInt(t.slice(7),10));return await R(n,i,s)?e.writeln(f("\u2714"),` Verified: ${i}`):e.writeln(d(`Diagram not found in registry: ${i}`)),await e.close(),a(void 0)}return e.writeln(d("Unknown subcommand. Use: scan, list, check, verify")),await e.close(),m({exitCode:1})};export{U as main};
@@ -1 +1 @@
1
- import{a as I}from"./chunk-DBKXMYLF.js";import{a as P,d as O}from"./chunk-LN4NDYT6.js";import{h as D}from"./chunk-5RLCKUIF.js";import{K as U,q as v,y as T}from"./chunk-UE56BMAW.js";import"./chunk-XDRX4ZBJ.js";import{c as m}from"./chunk-IFE5SYGK.js";import{c as l,d as a,f as o,g as f,h,o as g,q as S,r as E}from"./chunk-VXU6XZ66.js";import"./chunk-VJRCTYGL.js";import"./chunk-PKEQKXZW.js";import"./chunk-O4KKKYCH.js";import{E as k,f as C,h as x,j as y,k as $,m as b}from"./chunk-KRKOWSYW.js";import{a as u,b as n}from"./chunk-OAWYVETM.js";import{i as w}from"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var B=async R=>{let e=g({renderer:E.ansi(),sink:S.stdout()}),{root:i}=await k(),p=y(R);if(!p.ok)return e.writeln(o(p.error)),await e.close(),n({exitCode:1});let t;try{t=await x(i,p.spec)}catch(s){let c=s instanceof Error?s.message:String(s);return e.writeln(o(c)),await e.close(),n({exitCode:1})}if(t.phase!=="EXECUTING")return e.writeln(o(`Cannot complete in phase: ${t.phase}`)),e.writeln(a("Only EXECUTING phase can transition to COMPLETED.")),await e.close(),n({exitCode:1});if(t.execution.awaitingStatusReport)return e.writeln(o("Cannot complete: status report is pending.")),e.writeln(a(`Submit a status report first: ${m(`next --answer='{"completed":[...],"remaining":[...]}'`)}`)),await e.close(),n({exitCode:1});if(t.execution.debt!==null&&t.execution.debt.items.length>0){e.writeln(h(`Warning: ${t.execution.debt.items.length} unresolved debt item(s).`));for(let s of t.execution.debt.items)e.writeln(a(` - ${s.id}: ${s.text}`));e.writeln("")}if(t.spec!==null){let s=`${i}/${C.specDir(t.spec)}`;try{await w.fs.stat(s)}catch{return e.writeln(o(`Active spec '${t.spec}' directory not found.`)),e.writeln(a("Run `noskills reset` to return to idle.")),await e.close(),n({exitCode:1})}}let d=await D(i),r=v(t,"done");r=T(r,"EXECUTING","COMPLETED",d),r.spec!==null&&await b(i,r.spec,r);let G=U(r);if(await $(i,G),r.spec!==null&&(await P(i,r.spec,"completed"),await O(i,r.spec,"completed")),await I(i,{ts:new Date().toISOString(),type:"phase-change",spec:t.spec??"unknown",user:d.name,from:"EXECUTING",to:"COMPLETED"}),e.writeln(f("\u2714")," Spec completed!"),e.writeln(""),e.writeln(" Spec: ",l(t.spec??"unknown")),e.writeln(` Iterations: ${t.execution.iteration}`),e.writeln(` Decisions: ${t.decisions.length}`),t.decisions.length>0){let s=t.decisions.filter(c=>c.promoted);s.length>0&&e.writeln(a(` Promoted to rules: ${s.length}`))}return e.writeln(""),e.writeln("Start a new spec with: ",l(`${m('spec new "..."')}`)),await e.close(),u(void 0)};export{B as main};
1
+ import{a as I}from"./chunk-NPWXEWRN.js";import{c as l,d as a,f as o,g as f,h,o as g,q as S,r as E}from"./chunk-VXU6XZ66.js";import{a as P,d as O}from"./chunk-FYFUEK4U.js";import{h as D}from"./chunk-5RLCKUIF.js";import{K as U,q as v,y as T}from"./chunk-EVJYA7S3.js";import"./chunk-XDRX4ZBJ.js";import{c as m}from"./chunk-IFE5SYGK.js";import"./chunk-VJRCTYGL.js";import"./chunk-O4KKKYCH.js";import"./chunk-ONJVI5AZ.js";import{E as k,f as C,h as x,j as y,k as $,m as b}from"./chunk-WDKWHGJU.js";import{a as u,b as n}from"./chunk-OAWYVETM.js";import{i as w}from"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var B=async R=>{let e=g({renderer:E.ansi(),sink:S.stdout()}),{root:i}=await k(),p=y(R);if(!p.ok)return e.writeln(o(p.error)),await e.close(),n({exitCode:1});let t;try{t=await x(i,p.spec)}catch(s){let c=s instanceof Error?s.message:String(s);return e.writeln(o(c)),await e.close(),n({exitCode:1})}if(t.phase!=="EXECUTING")return e.writeln(o(`Cannot complete in phase: ${t.phase}`)),e.writeln(a("Only EXECUTING phase can transition to COMPLETED.")),await e.close(),n({exitCode:1});if(t.execution.awaitingStatusReport)return e.writeln(o("Cannot complete: status report is pending.")),e.writeln(a(`Submit a status report first: ${m(`next --answer='{"completed":[...],"remaining":[...]}'`)}`)),await e.close(),n({exitCode:1});if(t.execution.debt!==null&&t.execution.debt.items.length>0){e.writeln(h(`Warning: ${t.execution.debt.items.length} unresolved debt item(s).`));for(let s of t.execution.debt.items)e.writeln(a(` - ${s.id}: ${s.text}`));e.writeln("")}if(t.spec!==null){let s=`${i}/${C.specDir(t.spec)}`;try{await w.fs.stat(s)}catch{return e.writeln(o(`Active spec '${t.spec}' directory not found.`)),e.writeln(a("Run `noskills reset` to return to idle.")),await e.close(),n({exitCode:1})}}let d=await D(i),r=v(t,"done");r=T(r,"EXECUTING","COMPLETED",d),r.spec!==null&&await b(i,r.spec,r);let G=U(r);if(await $(i,G),r.spec!==null&&(await P(i,r.spec,"completed"),await O(i,r.spec,"completed")),await I(i,{ts:new Date().toISOString(),type:"phase-change",spec:t.spec??"unknown",user:d.name,from:"EXECUTING",to:"COMPLETED"}),e.writeln(f("\u2714")," Spec completed!"),e.writeln(""),e.writeln(" Spec: ",l(t.spec??"unknown")),e.writeln(` Iterations: ${t.execution.iteration}`),e.writeln(` Decisions: ${t.decisions.length}`),t.decisions.length>0){let s=t.decisions.filter(c=>c.promoted);s.length>0&&e.writeln(a(` Promoted to rules: ${s.length}`))}return e.writeln(""),e.writeln("Start a new spec with: ",l(`${m('spec new "..."')}`)),await e.close(),u(void 0)};export{B as main};
@@ -1 +1 @@
1
- import{h as v}from"./chunk-5RLCKUIF.js";import{D as y,E as I,F as E,G as R}from"./chunk-UE56BMAW.js";import"./chunk-XDRX4ZBJ.js";import"./chunk-IFE5SYGK.js";import{d,f as o,g as p,o as S,q as x,r as F}from"./chunk-VXU6XZ66.js";import"./chunk-VJRCTYGL.js";import"./chunk-PKEQKXZW.js";import"./chunk-O4KKKYCH.js";import{E as q,h as C,j as U,m as c}from"./chunk-KRKOWSYW.js";import{a as l,b as i}from"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var W=async w=>{let e=S({renderer:F.ansi(),sink:x.stdout()}),{root:a}=await q(),n=U(w);if(!n.ok)return e.writeln(o(n.error)),await e.close(),i({exitCode:1});let f=(w??[]).filter(s=>!s.startsWith("--")),t=f[0],m=f.slice(1).join(" "),u=null,h=!1;for(let s of w??[])s.startsWith("--answer=")&&(u=s.slice(9)),s==="--skip"&&(h=!0);if(!t)return e.writeln(o('Usage: noskills spec <name> followup <questionId> "question text"')),e.writeln(d(' Or: noskills spec <name> followup <followUpId> --answer="text"')),e.writeln(d(" Or: noskills spec <name> followup <followUpId> --skip")),await e.close(),i({exitCode:1});let r;try{r=await C(a,n.spec)}catch(s){let A=s instanceof Error?s.message:String(s);return e.writeln(o(A)),await e.close(),i({exitCode:1})}if(u!==null){let s=I(r,t,u);return await c(a,n.spec,s),e.writeln(p("\u2714"),` Answered follow-up: ${t}`),await e.close(),l(void 0)}if(h){let s=E(r,t);return await c(a,n.spec,s),e.writeln(p("\u2714"),` Skipped follow-up: ${t}`),await e.close(),l(void 0)}if(m.length===0)return e.writeln(o("Follow-up question text is required.")),await e.close(),i({exitCode:1});if(r.phase!=="DISCOVERY"&&r.phase!=="DISCOVERY_REFINEMENT")return e.writeln(o(`Cannot add follow-ups in phase: ${r.phase}`)),await e.close(),i({exitCode:1});let O=await v(a),g=y(r,t,m,O.name);await c(a,n.spec,g);let k=R(g,t),$=k[k.length-1];return e.writeln(p("\u2714"),` Follow-up added: ${$?.id??t}`),await e.close(),l(void 0)};export{W as main};
1
+ import{d,f as o,g as p,o as S,q as x,r as F}from"./chunk-VXU6XZ66.js";import{h as v}from"./chunk-5RLCKUIF.js";import{D as y,E as I,F as E,G as R}from"./chunk-EVJYA7S3.js";import"./chunk-XDRX4ZBJ.js";import"./chunk-IFE5SYGK.js";import"./chunk-VJRCTYGL.js";import"./chunk-O4KKKYCH.js";import"./chunk-ONJVI5AZ.js";import{E as q,h as C,j as U,m as c}from"./chunk-WDKWHGJU.js";import{a as l,b as i}from"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var W=async w=>{let e=S({renderer:F.ansi(),sink:x.stdout()}),{root:a}=await q(),n=U(w);if(!n.ok)return e.writeln(o(n.error)),await e.close(),i({exitCode:1});let f=(w??[]).filter(s=>!s.startsWith("--")),t=f[0],m=f.slice(1).join(" "),u=null,h=!1;for(let s of w??[])s.startsWith("--answer=")&&(u=s.slice(9)),s==="--skip"&&(h=!0);if(!t)return e.writeln(o('Usage: noskills spec <name> followup <questionId> "question text"')),e.writeln(d(' Or: noskills spec <name> followup <followUpId> --answer="text"')),e.writeln(d(" Or: noskills spec <name> followup <followUpId> --skip")),await e.close(),i({exitCode:1});let r;try{r=await C(a,n.spec)}catch(s){let A=s instanceof Error?s.message:String(s);return e.writeln(o(A)),await e.close(),i({exitCode:1})}if(u!==null){let s=I(r,t,u);return await c(a,n.spec,s),e.writeln(p("\u2714"),` Answered follow-up: ${t}`),await e.close(),l(void 0)}if(h){let s=E(r,t);return await c(a,n.spec,s),e.writeln(p("\u2714"),` Skipped follow-up: ${t}`),await e.close(),l(void 0)}if(m.length===0)return e.writeln(o("Follow-up question text is required.")),await e.close(),i({exitCode:1});if(r.phase!=="DISCOVERY"&&r.phase!=="DISCOVERY_REFINEMENT")return e.writeln(o(`Cannot add follow-ups in phase: ${r.phase}`)),await e.close(),i({exitCode:1});let O=await v(a),g=y(r,t,m,O.name);await c(a,n.spec,g);let k=R(g,t),$=k[k.length-1];return e.writeln(p("\u2714"),` Follow-up added: ${$?.id??t}`),await e.close(),l(void 0)};export{W as main};
@@ -1 +1 @@
1
- import{c as a}from"./chunk-IFE5SYGK.js";import{c as e,d as t,o,q as n,r as i}from"./chunk-VXU6XZ66.js";import{a as r}from"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var u=async m=>{let s=o({renderer:i.ansi(),sink:n.stdout()});return s.writeln(t("noskills starts in idle mode with no enforcement. To work on a spec, run:")),s.writeln(e(` ${a('spec new "description"')}`)),await s.close(),r(void 0)};export{u as main};
1
+ import{c as e,d as t,o,q as n,r as i}from"./chunk-VXU6XZ66.js";import{c as a}from"./chunk-IFE5SYGK.js";import{a as r}from"./chunk-OAWYVETM.js";import"./chunk-Y5E7ZCCX.js";import"./chunk-LJEWPIEI.js";import"./chunk-FE4MKOI4.js";import"./chunk-HISXAZ4Y.js";var u=async m=>{let s=o({renderer:i.ansi(),sink:n.stdout()});return s.writeln(t("noskills starts in idle mode with no enforcement. To work on a spec, run:")),s.writeln(e(` ${a('spec new "description"')}`)),await s.close(),r(void 0)};export{u as main};
@@ -1 +1 @@
1
- import{a,b}from"./chunk-KMLNG3EC.js";import"./chunk-PSX63TYP.js";import"./chunk-EJYSOUEA.js";import"./chunk-JYVB6UAV.js";import"./chunk-OAWYVETM.js";import"./chunk-HISXAZ4Y.js";export{a as GeminiModel,b as geminiFactory};
1
+ import{a,b}from"./chunk-BYPCI5VU.js";import"./chunk-PSX63TYP.js";import"./chunk-EJYSOUEA.js";import"./chunk-JYVB6UAV.js";import"./chunk-OAWYVETM.js";import"./chunk-HISXAZ4Y.js";export{a as GeminiModel,b as geminiFactory};