@gobing-ai/spur 0.3.90 → 0.3.91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/config/pipeline-budgets.json +7 -0
  3. package/config/workflows/decision-routing-example.yaml +134 -0
  4. package/config/workflows/idea-pipeline.yaml +8 -0
  5. package/config/workflows/task-pipeline.yaml +2 -0
  6. package/config/workflows/wayfinder-resolution.yaml +2 -0
  7. package/config/workflows/wrapup-pipeline.yaml +2 -0
  8. package/package.json +9 -9
  9. package/plugins/sp/README.md +1 -0
  10. package/plugins/sp/agents/expert-spur.md +2 -2
  11. package/plugins/sp/lib/idea-handoff.generated.mjs +2 -2
  12. package/plugins/sp/plugin.json +1 -1
  13. package/plugins/sp/scripts/inline-pipeline-parity-check.ts +1 -0
  14. package/plugins/sp/scripts/surface-drift-inventory.ts +71 -6
  15. package/plugins/sp/scripts/validate-flag-contracts.ts +3 -3
  16. package/plugins/sp/skills/spur-cli/references/agent.md +11 -2
  17. package/plugins/sp/skills/spur-cli/references/self.md +5 -1
  18. package/plugins/sp/skills/spur-cli/references/workflows.md +3 -1
  19. package/plugins/sp/skills/spur-dev/references/cross-cutting.md +21 -2
  20. package/plugins/sp/skills/spur-dev/references/execution-workflow.md +13 -4
  21. package/plugins/sp/skills/spur-dev/references/glossary.md +9 -1
  22. package/plugins/sp/skills/spur-dev/references/inline-pipeline-driver.md +9 -1
  23. package/plugins/sp/skills/wayfinder/SKILL.md +1 -1
  24. package/spur.js +2737 -891
  25. package/web/_astro/{BoardApp.CDUcHlTJ.js → BoardApp.BEDWpzsr.js} +82 -82
  26. package/web/_astro/BoardApp.DQG2xfEz.js +1 -0
  27. package/web/_astro/{TaskDetail.DwTmbQp5.js → TaskDetail.CXGltuT_.js} +1 -1
  28. package/web/_astro/{arc.BzF71EFI.js → arc.C0rrflm_.js} +1 -1
  29. package/web/_astro/{architectureDiagram-3BPJPVTR.jvdDahWM.js → architectureDiagram-3BPJPVTR.DJ8DHkWE.js} +1 -1
  30. package/web/_astro/{blockDiagram-GPEHLZMM.zSg4AmFD.js → blockDiagram-GPEHLZMM.D8DHK3Jl.js} +1 -1
  31. package/web/_astro/{c4Diagram-AAUBKEIU.BkUIUQWH.js → c4Diagram-AAUBKEIU.BugQbX9u.js} +1 -1
  32. package/web/_astro/channel.SRrg1P-w.js +1 -0
  33. package/web/_astro/{chunk-2J33WTMH.DvfQ_f50.js → chunk-2J33WTMH.Mv26KlVn.js} +1 -1
  34. package/web/_astro/{chunk-4BX2VUAB.DuI4gQqX.js → chunk-4BX2VUAB.CD51JoT_.js} +1 -1
  35. package/web/_astro/{chunk-55IACEB6.D3BWBOpF.js → chunk-55IACEB6.D_PFaIEe.js} +1 -1
  36. package/web/_astro/{chunk-727SXJPM.3QSi0a9M.js → chunk-727SXJPM.DemMW1ao.js} +1 -1
  37. package/web/_astro/{chunk-AQP2D5EJ.xazCQrAF.js → chunk-AQP2D5EJ.Iu2V5-ex.js} +1 -1
  38. package/web/_astro/{chunk-FMBD7UC4.B2g6u4rA.js → chunk-FMBD7UC4.MsNgSP-E.js} +1 -1
  39. package/web/_astro/{chunk-ND2GUHAM.wWwWs99t.js → chunk-ND2GUHAM.DfbRaAlm.js} +1 -1
  40. package/web/_astro/{chunk-QZHKN3VN.BD5g3qa9.js → chunk-QZHKN3VN.BbJAQ4h-.js} +1 -1
  41. package/web/_astro/{classDiagram-4FO5ZUOK.C7CzCdsX.js → classDiagram-4FO5ZUOK.CPurtiC2.js} +1 -1
  42. package/web/_astro/{classDiagram-v2-Q7XG4LA2.C7CzCdsX.js → classDiagram-v2-Q7XG4LA2.CPurtiC2.js} +1 -1
  43. package/web/_astro/{cose-bilkent-S5V4N54A.Xyiau0gw.js → cose-bilkent-S5V4N54A.CKKdx1bM.js} +1 -1
  44. package/web/_astro/{cynefin-OW5HDTMX.BeC5MWas.js → cynefin-OW5HDTMX.CoKMTg-R.js} +1 -1
  45. package/web/_astro/{dagre-BM42HDAG.yZbMN9vc.js → dagre-BM42HDAG.D4h4_k56.js} +1 -1
  46. package/web/_astro/{diagram-2AECGRRQ.Cmo2zQM-.js → diagram-2AECGRRQ.DJ0h9zgw.js} +1 -1
  47. package/web/_astro/{diagram-5GNKFQAL.D033eSVi.js → diagram-5GNKFQAL.DvPk1jYd.js} +1 -1
  48. package/web/_astro/{diagram-KO2AKTUF.CR6k3Y3G.js → diagram-KO2AKTUF.BFoCkiCr.js} +1 -1
  49. package/web/_astro/{diagram-LMA3HP47.x7mwu8jz.js → diagram-LMA3HP47.exHn9OVx.js} +1 -1
  50. package/web/_astro/{diagram-OG6HWLK6.D8aTTvUr.js → diagram-OG6HWLK6.CeqO34nN.js} +1 -1
  51. package/web/_astro/{erDiagram-TEJ5UH35.BoBqcKXQ.js → erDiagram-TEJ5UH35.D_v7HqxR.js} +1 -1
  52. package/web/_astro/{flowDiagram-I6XJVG4X.D3mTQdrU.js → flowDiagram-I6XJVG4X.EUmrpbwh.js} +1 -1
  53. package/web/_astro/{ganttDiagram-6RSMTGT7.H-cqgIh-.js → ganttDiagram-6RSMTGT7.BOCF5lII.js} +1 -1
  54. package/web/_astro/{gitGraphDiagram-PVQCEYII.B6s9zbfC.js → gitGraphDiagram-PVQCEYII.Di7otYZD.js} +1 -1
  55. package/web/_astro/index.Bx6GY4RH.css +1 -0
  56. package/web/_astro/{infoDiagram-5YYISTIA.BzgCoV6P.js → infoDiagram-5YYISTIA.TcBkCAJk.js} +1 -1
  57. package/web/_astro/{ishikawaDiagram-YF4QCWOH.BZzVhy1-.js → ishikawaDiagram-YF4QCWOH.D-2y4M0c.js} +1 -1
  58. package/web/_astro/{journeyDiagram-JHISSGLW.BV3195Py.js → journeyDiagram-JHISSGLW.DPbJI_n2.js} +1 -1
  59. package/web/_astro/{kanban-definition-UN3LZRKU.BjRd2DWz.js → kanban-definition-UN3LZRKU.EFxhQ9Fj.js} +1 -1
  60. package/web/_astro/{linear.BILTgS5N.js → linear.DSAsQLzs.js} +1 -1
  61. package/web/_astro/{mermaid.core.DBy_WKeW.js → mermaid.core.kAZjgJHG.js} +4 -4
  62. package/web/_astro/{mindmap-definition-RKZ34NQL.BiEjaI4-.js → mindmap-definition-RKZ34NQL.CJY1N_7V.js} +1 -1
  63. package/web/_astro/{pieDiagram-4H26LBE5.i_8V5pIn.js → pieDiagram-4H26LBE5.567ZNoL2.js} +1 -1
  64. package/web/_astro/{quadrantDiagram-W4KKPZXB.BWaW3MHn.js → quadrantDiagram-W4KKPZXB.mqfz9-MY.js} +1 -1
  65. package/web/_astro/{requirementDiagram-4Y6WPE33.CzddBbtg.js → requirementDiagram-4Y6WPE33.Bv1Gv9In.js} +1 -1
  66. package/web/_astro/{sankeyDiagram-5OEKKPKP.X2ww0e-D.js → sankeyDiagram-5OEKKPKP.B6Gs4X4r.js} +1 -1
  67. package/web/_astro/{sequenceDiagram-3UESZ5HK.DSA4kTcc.js → sequenceDiagram-3UESZ5HK.BhYj4v-m.js} +1 -1
  68. package/web/_astro/{stateDiagram-AJRCARHV.D0DtFSpR.js → stateDiagram-AJRCARHV.BPbBnkpw.js} +1 -1
  69. package/web/_astro/{stateDiagram-v2-BHNVJYJU.BfQq0zQv.js → stateDiagram-v2-BHNVJYJU.C4squMNK.js} +1 -1
  70. package/web/_astro/{timeline-definition-PNZ67QCA.Dmlrgi1m.js → timeline-definition-PNZ67QCA.C_SwIHgl.js} +1 -1
  71. package/web/_astro/{vennDiagram-CIIHVFJN.D5mpl00Z.js → vennDiagram-CIIHVFJN.Bz4NZGpQ.js} +1 -1
  72. package/web/_astro/{wardleyDiagram-YWT4CUSO.Df4BdzO4.js → wardleyDiagram-YWT4CUSO.CozMVZ3i.js} +1 -1
  73. package/web/_astro/{xychartDiagram-2RQKCTM6.DiTRreKN.js → xychartDiagram-2RQKCTM6.BwMGBwjB.js} +1 -1
  74. package/web/index.html +2 -2
  75. package/web/_astro/BoardApp.CaCGU_uX.js +0 -1
  76. package/web/_astro/channel.SSVY0JPQ.js +0 -1
  77. package/web/_astro/index.CcU5weKX.css +0 -1
@@ -7,7 +7,7 @@
7
7
  "plugins": [
8
8
  {
9
9
  "name": "sp",
10
- "version": "0.3.90",
10
+ "version": "0.3.91",
11
11
  "source": "./plugins/sp"
12
12
  }
13
13
  ]
@@ -48,6 +48,13 @@
48
48
  "tokenCostUsd": null,
49
49
  "source": "Coverage entry (0826 R2): the live definition's model-query count (extractResolvedWorkflowFacts, 2026-09-11). No real-run measurement yet: wall-clock and cost are unenforced until measured, never 0.",
50
50
  "decision": null
51
+ },
52
+ "decision-routing-example": {
53
+ "modelQueries": 0,
54
+ "wallClockMs": null,
55
+ "tokenCostUsd": null,
56
+ "source": "Coverage entry (0911): authoring example (config/workflows/decision-routing-example.yaml) enumerating `decision:` modes. Measured 0 model queries — the producer is a shell action, so the example runs with no provider (live count via loadQueryCounts, 2026-09-20). Not a pipeline humans run; wall-clock and cost unenforced, never 0.",
57
+ "decision": null
51
58
  }
52
59
  }
53
60
  }
@@ -0,0 +1,134 @@
1
+ # DecisionMaker routing example (task 0911, D7). Demonstrates the three `decision:` modes
2
+ # on hitl.* actions; copy the pattern into your own workflow instead of running this file.
3
+ #
4
+ # never — the action always asks the human (DecisionMaker is bypassed even when
5
+ # `workflow.hitlDecisionMaker: true`). Used for gates that must stay human-only.
6
+ # evidence — the DecisionMaker answers from recorded action evidence of the listed producer
7
+ # states: it picks one of the offered choices when confidence >= 0.9, or defers
8
+ # (answer var is cleared, status var records `deferred`) when evidence is missing,
9
+ # stale, or inconclusive. Requires a non-paused state, a statusVar distinct from
10
+ # the answer var, and producer states that exist in this workflow.
11
+ # (omitted) — legacy 0910 semantics: DecisionMaker may confirm/select without evidence and
12
+ # without provenance. Kept for compatibility; prefer an explicit mode.
13
+ #
14
+ # The run is safe and local: one shell producer emits a fixed failure summary, the choose step
15
+ # reads it as evidence, and the operator gate has no side effects. No provider is required —
16
+ # without `workflow.hitlDecisionMaker: true` (or without a key) the evidence step defers and
17
+ # `never` behaves exactly like an unconfigured gate. See `spur self status` -> `decisionMaker`
18
+ # for offline readiness. Optional registered-summary evidence (`summaryArtifact`) is documented
19
+ # in docs/help/how_to_enable_jev_in_spur.md; this example deliberately creates no artifact.
20
+ "$schema": "@gobing-ai/spur/schemas/state-machine-workflow.schema.json"
21
+ kind: state-machine
22
+ name: decision-routing-example
23
+ version: "1"
24
+ initialState: assess
25
+ description: >
26
+ Worked example of DecisionMaker decision routing (0911 D7): a shell producer records a fixed
27
+ recovery summary as action evidence, a non-pausing hitl.select lets the DecisionMaker choose
28
+ retry or stop from that evidence (deferring with provenance when it is inconclusive), an
29
+ accepted retry runs exactly one attempt and then escalates, and the never-mode pause=true
30
+ hitl.confirm gate always waits for the operator with explicit yes/no/cancel branches.
31
+ Illustrative only — copy the patterns rather than running this file.
32
+ vars:
33
+ recoveryChoice: ""
34
+ decisionStatus: ""
35
+ # Default answer var the never-mode gate's yes/no/cancel branches read (matches the stock gates).
36
+ __hitlAnswer: ""
37
+ states:
38
+ - id: assess
39
+ description: >
40
+ Producer state: one shell action whose redacted output becomes the evidence the decide
41
+ state's DecisionMaker reads. One producer state carries one evidence-bearing action.
42
+ onEnter:
43
+ - kind: shell
44
+ options:
45
+ command: >-
46
+ printf 'Failure summary: verification failed twice on the flaky fixture; no data loss;
47
+ retry is safe, or stop and hand the decision to the operator.'
48
+ - id: decide
49
+ description: >
50
+ Evidence-mode select (non-paused): DecisionMaker picks a recovery step from the assess
51
+ state's recorded evidence. Low confidence, missing or stale evidence defers and writes the
52
+ status variable instead of answering, so no implicit approval is ever produced.
53
+ onEnter:
54
+ - kind: hitl.select
55
+ options:
56
+ prompt: "Choose the next safe recovery step using the recorded failure summary."
57
+ options: [retry, stop]
58
+ var: recoveryChoice
59
+ decision:
60
+ mode: evidence
61
+ statusVar: decisionStatus
62
+ evidenceNodes: [assess]
63
+ - id: retry
64
+ description: >
65
+ The single bounded retry an accepted `retry` choice buys: this state runs once and routes
66
+ to the operator gate, so an accepted answer can never loop back into the decision.
67
+ onEnter:
68
+ - kind: shell
69
+ options:
70
+ command: "printf 'retry attempt: re-running the failed verification step once'"
71
+ - id: humanGate
72
+ description: >
73
+ Never-mode confirm (paused): always waits for the operator, whichever branch reached it.
74
+ `spur workflow continue --answer yes|no|cancel` records the explicit operator answer.
75
+ pause: true
76
+ onEnter:
77
+ - kind: hitl.confirm
78
+ options:
79
+ prompt: "Publish the recovered result, stop, or cancel the run?"
80
+ decision:
81
+ mode: never
82
+ - id: published
83
+ description: Operator approved the recovered result; terminal marker state.
84
+ - id: stop
85
+ description: Recovery stopped deliberately — requested by the decision or rejected by the operator.
86
+ - id: cancelled
87
+ description: Operator cancelled the run at the gate; terminal marker state.
88
+ transitions:
89
+ # Accepted decision branches first: the state machine takes the first passing edge.
90
+ - from: assess
91
+ to: decide
92
+ guard: { kind: always }
93
+ - from: decide
94
+ to: retry
95
+ guard:
96
+ kind: shell
97
+ options:
98
+ command: 'test "$recoveryChoice" = "retry"'
99
+ - from: decide
100
+ to: stop
101
+ guard:
102
+ kind: shell
103
+ options:
104
+ command: 'test "$recoveryChoice" = "stop"'
105
+ # Declared defer edge: evidence mode wrote `deferred` and cleared the answer var.
106
+ - from: decide
107
+ to: humanGate
108
+ guard:
109
+ kind: shell
110
+ options:
111
+ command: 'test "$decisionStatus" = "deferred"'
112
+ - from: retry
113
+ to: humanGate
114
+ guard: { kind: always }
115
+ # Explicit yes / no / cancel branches on the default answer var, matching the stock gates.
116
+ - from: humanGate
117
+ to: published
118
+ guard:
119
+ kind: shell
120
+ options:
121
+ command: 'test "$__hitlAnswer" = "yes"'
122
+ - from: humanGate
123
+ to: stop
124
+ guard:
125
+ kind: shell
126
+ options:
127
+ command: 'test "$__hitlAnswer" = "no"'
128
+ - from: humanGate
129
+ to: cancelled
130
+ guard:
131
+ kind: shell
132
+ options:
133
+ command: 'test "$__hitlAnswer" = "cancel"'
134
+ terminalStates: [published, stop, cancelled]
@@ -145,6 +145,8 @@ states:
145
145
  - kind: hitl.confirm
146
146
  options:
147
147
  prompt: "Review the idea evaluation report (.spur/run/${vars.__runId}-idea-eval-report.md). Approve to create a feature, or reject to cancel? (Reject creates no feature.)"
148
+ decision:
149
+ mode: never
148
150
 
149
151
  - id: feature-create
150
152
  description: >
@@ -282,6 +284,8 @@ states:
282
284
  - kind: hitl.confirm
283
285
  options:
284
286
  prompt: "Feature check for ${vars.featureId}. Review the AC and confirm to proceed? Requirement coverage status: $(cat .spur/run/${vars.__runId}-idea-coverage.status 2>/dev/null || echo unknown) — reason: $(cat .spur/run/${vars.__runId}-idea-coverage.reason 2>/dev/null || echo n/a) (.spur/run/${vars.__runId}-idea-coverage.status[.reason]). (Failures route back to ac-generate for revision, capped at 3 retries.)"
287
+ decision:
288
+ mode: never
285
289
 
286
290
  - id: system-design
287
291
  description: >
@@ -358,6 +362,8 @@ states:
358
362
  - kind: hitl.confirm
359
363
  options:
360
364
  prompt: "Review the system design for feature ${vars.featureId}. Approve to proceed to decomposition? To reject, first record your feedback in .spur/run/${vars.__runId}-idea-design-review.md under the `## Operator feedback` heading, then answer no."
365
+ decision:
366
+ mode: never
361
367
 
362
368
  - id: decompose
363
369
  description: >
@@ -416,6 +422,8 @@ states:
416
422
  - kind: hitl.confirm
417
423
  options:
418
424
  prompt: "Batch-create for feature ${vars.featureId}. Review the task batch and confirm to proceed? (Failures route back to decompose for revision, capped at 3 retries.)"
425
+ decision:
426
+ mode: never
419
427
 
420
428
  - id: batch-create-run
421
429
  description: >
@@ -464,6 +464,8 @@ states:
464
464
  - kind: hitl.confirm
465
465
  options:
466
466
  prompt: "Approve task ${vars.wbs} to proceed to verification?"
467
+ decision:
468
+ mode: never
467
469
 
468
470
  - id: verify
469
471
  description: >
@@ -163,6 +163,8 @@ states:
163
163
  - kind: hitl.confirm
164
164
  options:
165
165
  prompt: "Approve research resolution for task ${vars.wbs}?"
166
+ decision:
167
+ mode: never
166
168
 
167
169
  - id: record
168
170
  description: >
@@ -308,6 +308,8 @@ states:
308
308
  - kind: hitl.confirm
309
309
  options:
310
310
  prompt: "Branch cleanup for the validated task list (.spur/run/${vars.__runId}-wrapup-tasks.json). This is IRREVERSIBLE (merge or delete). Confirm to proceed?"
311
+ decision:
312
+ mode: never
311
313
 
312
314
  - id: done
313
315
  description: >
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobing-ai/spur",
3
- "version": "0.3.90",
3
+ "version": "0.3.91",
4
4
  "description": "Spur CLI — local-first harness for mainstream coding agents: constraint checking, workflow orchestration, agent health, and history analytics. Bun-native; exposes the `spur` command.",
5
5
  "keywords": [
6
6
  "spur",
@@ -53,14 +53,14 @@
53
53
  },
54
54
  "devDependencies": {
55
55
  "@commander-js/extra-typings": "^14.0.0",
56
- "@gobing-ai/ts-db": "^0.5.0",
57
- "@gobing-ai/ts-ai-runner": "^0.5.0",
58
- "@gobing-ai/ts-dual-workflow-engine": "^0.5.0",
59
- "@gobing-ai/ts-infra": "^0.5.0",
60
- "@gobing-ai/ts-llm-jsonl-importer": "^0.5.0",
61
- "@gobing-ai/ts-rule-engine": "^0.5.0",
62
- "@gobing-ai/ts-runtime": "^0.5.0",
63
- "@gobing-ai/ts-utils": "^0.5.0",
56
+ "@gobing-ai/ts-db": "^0.5.2",
57
+ "@gobing-ai/ts-ai-runner": "^0.5.2",
58
+ "@gobing-ai/ts-dual-workflow-engine": "^0.5.2",
59
+ "@gobing-ai/ts-infra": "^0.5.2",
60
+ "@gobing-ai/ts-llm-jsonl-importer": "^0.5.2",
61
+ "@gobing-ai/ts-rule-engine": "^0.5.2",
62
+ "@gobing-ai/ts-runtime": "^0.5.2",
63
+ "@gobing-ai/ts-utils": "^0.5.2",
64
64
  "@types/bun": "1.3.14",
65
65
  "@types/figlet": "^1.7.0",
66
66
  "@types/node-notifier": "8.0.5",
@@ -629,6 +629,7 @@ pipeline owns one lifecycle phase:
629
629
  | `idea-pipeline.yaml` | Idea/planning → feature + tasks | `/sp:dev-idea`, `/sp:dev-plan` |
630
630
  | `wrapup-pipeline.yaml` | Post-execution wrap-up | `/sp:dev-wrap`, `/sp:dev-wrapall` |
631
631
  | `wayfinder-resolution.yaml` | Wayfinder ticket resolution loop | `spur workflow run` (free-form) |
632
+ | `decision-routing-example.yaml` | DecisionMaker routing example (never / evidence / omitted modes, defer → operator pause) | `spur workflow run` (authoring sample) |
632
633
 
633
634
  ### Lifecycle operations
634
635
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: expert-spur
3
- description: |
4
- Use PROACTIVELY for "create tasks for this feature", "update all task statuses", "audit task traceability", "create a feature with acceptance criteria", "harden the rule catalog", "author a batch of workflows", "compose a workflow", "tune a rule", "apply accepted doctor proposals", "evaluate spur artifact health", "reflect over history findings", or "expert-spur". Multi-step corpus work across `spur task`, `feature`, `rule`, `workflow`, and agent specs: batch creation, status sweeps, section campaigns, traceability audits, rule hardening, workflow authoring/refactoring, composition and tuning (sp:spur-composer), and evaluation/reflection proposal passes (sp:spur-doctor). For one deterministic operation, run the CLI directly. Recurring evolution loops and multi-agent coordination belong to sp:super-planner — never this agent.
3
+ description: |-
4
+ Use PROACTIVELY for "create tasks for this feature", "update all task statuses", "audit task traceability", or "expert-spur". Runs multi-step corpus campaigns across tasks, features, rules, workflows, and agent specs: creation, status/section updates, audits, and hardening. Uses sp:spur-composer for workflow composition, rule tuning, and accepted proposals; sp:spur-doctor for artifact evaluation and history reflection. Run single operations via CLI; recurring loops and multi-agent coordination belong to sp:super-planner.
5
5
 
6
6
  <example>
7
7
  Context: Batch task status update across a feature.
@@ -246,7 +246,7 @@ Instead, \`yield\` should either be called with a value, or not be called at all
246
246
  if (condition) { yield value; }`)};var Yj=F(()=>{f$()});import{Buffer as Md}from"node:buffer";import{StringDecoder as Ad}from"node:string_decoder";var p8=($,U,J)=>{if(J)return;if($)return{transform:Nd.bind(void 0,new TextEncoder)};let G=new Ad(U);return{transform:vd.bind(void 0,G),final:Td.bind(void 0,G)}},Nd=function*($,U){if(Md.isBuffer(U))yield E4(U);else if(typeof U==="string")yield $.encode(U);else yield U},vd=function*($,U){yield D$(U)?$.write(U):U},Td=function*($){let U=$.end();if(U!=="")yield U};var q_=F(()=>{f$()});import{callbackify as Hj}from"node:util";var I_,c8=async function*($,U,J){if(J===U.length){yield $;return}let{transform:G=kd}=U[J];for await(let X of G($))yield*c8(X,U,J+1)},Zj=async function*($){for(let[U,{final:J}]of Object.entries($))yield*Ed(J,Number(U),$)},Ed=async function*($,U,J){if($===void 0)return;for await(let G of $())yield*c8(G,J,U+1)},Wj,kd=function*($){yield $};var _j=F(()=>{I_=Hj(async($,U,J,G)=>{U.currentIterable=$(...J);try{for await(let X of U.currentIterable)G.push(X)}finally{delete U.currentIterable}}),Wj=Hj(async({currentIterable:$},U)=>{if($!==void 0){await(U?$.throw(U):$.return());return}if(U)throw U})});var B_=($,U,J,G)=>{try{for(let X of $(...U))J.push(X);G()}catch(X){G(X)}},Vj=($,U)=>[...U.flatMap((J)=>[...n6(J,$,0)]),...cU($)],n6=function*($,U,J){if(J===U.length){yield $;return}let{transform:G=xd}=U[J];for(let X of G($))yield*n6(X,U,J+1)},cU=function*($){for(let[U,{final:J}]of Object.entries($))yield*Cd(J,Number(U),$)},Cd=function*($,U,J){if($===void 0)return;for(let G of $())yield*n6(G,J,U+1)},xd=function*($){yield $};import{Transform as wd,getDefaultHighWaterMark as zj}from"node:stream";var P_=({value:$,value:{transform:U,final:J,writableObjectMode:G,readableObjectMode:X},optionName:Y},{encoding:H})=>{let Z={},W=Qj($,H,Y),_=l6(U),V=l6(J),z=_?I_.bind(void 0,c8,Z):B_.bind(void 0,n6),Q=_||V?I_.bind(void 0,Zj,Z):B_.bind(void 0,cU),K=_||V?Wj.bind(void 0,Z):void 0;return{stream:new wd({writableObjectMode:G,writableHighWaterMark:zj(G),readableObjectMode:X,readableHighWaterMark:zj(X),transform(I,P,j){z([I,W,0],this,j)},flush(I){Q([W],this,I)},destroy:K})}},d8=($,U,J,G)=>{let X=U.filter(({type:H})=>H==="generator"),Y=G?X.reverse():X;for(let{value:H,optionName:Z}of Y){let W=Qj(H,J,Z);$=Vj(W,$)}return $},Qj=({transform:$,final:U,binary:J,writableObjectMode:G,readableObjectMode:X,preserveNewlines:Y},H,Z)=>{let W={};return[{transform:Xj(G,Z)},p8(J,H,G),u8(J,Y,G,W),{transform:$,final:U},{transform:Jj(X,Z)},Uj({binary:J,preserveNewlines:Y,readableObjectMode:X,state:W})].filter(Boolean)};var l8=F(()=>{v$();m8();Yj();q_();_j()});var Dj=($,U)=>{for(let J of Sd($))gd($,J,U)},Sd=($)=>new Set(Object.entries($).filter(([,{direction:U}])=>U==="input").map(([U])=>Number(U))),gd=($,U,J)=>{let{stdioItems:G}=$[U],X=G.filter(({contents:Z})=>Z!==void 0);if(X.length===0)return;if(U!==0){let[{type:Z,optionName:W}]=X;throw TypeError(`Only the \`stdin\` option, not \`${W}\`, can be ${_6[Z]} with synchronous methods.`)}let H=X.map(({contents:Z})=>Z).map((Z)=>bd(Z,G));J.input=kU(H)},bd=($,U)=>{let J=d8($,U,"utf8",!0);return yd(J),kU(J)},yd=($)=>{let U=$.find((J)=>typeof J!=="string"&&!D$(J));if(U!==void 0)throw TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${U}.`)};var Kj=F(()=>{l8();f$();v$()});var n8=({stdioItems:$,encoding:U,verboseInfo:J,fdNumber:G})=>G!=="all"&&t1(J,G)&&!u$.has(U)&&hd(G)&&($.some(({type:X,value:Y})=>X==="native"&&fd.has(Y))||$.every(({type:X})=>n$.has(X))),hd=($)=>$===1||$===2,fd,Fj=async($,U,J,G)=>{for await(let X of $)if(!ud(U))Ij(X,J,G)},qj=($,U,J)=>{for(let G of $)Ij(G,U,J)},ud=($)=>$._readableState.pipes.length>0,Ij=($,U,J)=>{let G=dJ($);F4({type:"output",verboseMessage:G,fdNumber:U,verboseInfo:J})};var O_=F(()=>{p6();v$();a1();Y6();fd=new Set(["pipe","overlapped"])});import{writeFileSync as md,appendFileSync as pd}from"node:fs";var Bj=({fileDescriptors:$,syncResult:{output:U},options:J,isMaxBuffer:G,verboseInfo:X})=>{if(U===null)return{output:Array.from({length:3})};let Y={},H=new Set([]);return{output:U.map((W,_)=>cd({result:W,fileDescriptors:$,fdNumber:_,state:Y,outputFiles:H,isMaxBuffer:G,verboseInfo:X},J)),...Y}},cd=({result:$,fileDescriptors:U,fdNumber:J,state:G,outputFiles:X,isMaxBuffer:Y,verboseInfo:H},{buffer:Z,encoding:W,lines:_,stripFinalNewline:V,maxBuffer:z})=>{if($===null)return;let Q=YO($,Y,z),K=E4(Q),{stdioItems:q,objectMode:I}=U[J],P=dd([K],q,W,G),{serializedResult:j,finalResult:R=j}=ld({chunks:P,objectMode:I,encoding:W,lines:_,stripFinalNewline:V,fdNumber:J});nd({serializedResult:j,fdNumber:J,state:G,verboseInfo:H,encoding:W,stdioItems:q,objectMode:I});let v=Z[J]?R:void 0;try{if(G.error===void 0)id(j,q,X);return v}catch(M){return G.error=M,v}},dd=($,U,J,G)=>{try{return d8($,U,J,!1)}catch(X){return G.error=X,$}},ld=({chunks:$,objectMode:U,encoding:J,lines:G,stripFinalNewline:X,fdNumber:Y})=>{if(U)return{serializedResult:$};if(J==="buffer")return{serializedResult:kU($)};let H=aq($,J);if(G[Y])return{serializedResult:H,finalResult:F_(H,!X[Y],U)};return{serializedResult:H}},nd=({serializedResult:$,fdNumber:U,state:J,verboseInfo:G,encoding:X,stdioItems:Y,objectMode:H})=>{if(!n8({stdioItems:Y,encoding:X,verboseInfo:G,fdNumber:U}))return;let Z=F_($,!1,H);try{qj(Z,U,G)}catch(W){J.error??=W}},id=($,U,J)=>{for(let{path:G,append:X}of U.filter(({type:Y})=>y8.has(Y))){let Y=typeof G==="string"?G:G.toString();if(X||J.has(Y))pd(G,$);else J.add(Y),md(G,$)}};var Pj=F(()=>{O_();l8();m8();f$();v$();d6()});var Oj=([,$,U],J)=>{if(!J.all)return;if($===void 0)return U;if(U===void 0)return $;if(Array.isArray($))return Array.isArray(U)?[...$,...U]:[...$,g4(U,J,"all")];if(Array.isArray(U))return[g4($,J,"all"),...U];if(D$($)&&D$(U))return QW([$,U]);return`${$}${U}`};var jj=F(()=>{f$();pU()});import{once as j_}from"node:events";var Lj=async($,U)=>{let[J,G]=await rd($);return U.isForcefullyTerminated??=!1,[J,G]},rd=async($)=>{let[U,J]=await Promise.allSettled([j_($,"spawn"),j_($,"exit")]);if(U.status==="rejected")return[];return J.status==="rejected"?Rj($):J.value},Rj=async($)=>{try{return await j_($,"exit")}catch{return Rj($)}},Mj=async($)=>{let[U,J]=await $;if(!od(U,J)&&L_(U,J))throw new q4;return[U,J]},od=($,U)=>$===void 0&&U===void 0,L_=($,U)=>$!==0||U!==null;var R_=F(()=>{u6()});var Aj=({error:$,status:U,signal:J,output:G},{maxBuffer:X})=>{let Y=td($,U,J),H=Y?.code==="ETIMEDOUT",Z=GO(Y,G,X);return{resultError:Y,exitCode:U,signal:J,timedOut:H,isMaxBuffer:Z}},td=($,U,J)=>{if($!==void 0)return $;return L_(U,J)?new q4:void 0};var Nj=F(()=>{u6();d6();R_()});import{spawnSync as ad}from"node:child_process";var vj=($,U,J)=>{let{file:G,commandArguments:X,command:Y,escapedCommand:H,startTime:Z,verboseInfo:W,options:_,fileDescriptors:V}=sd($,U,J),z=Ul({file:G,commandArguments:X,options:_,command:Y,escapedCommand:H,verboseInfo:W,fileDescriptors:V,startTime:Z});return Z0(z,W,_)},sd=($,U,J)=>{let{command:G,escapedCommand:X,startTime:Y,verboseInfo:H}=iJ($,U,J),Z=ed(J),{file:W,commandArguments:_,options:V}=L8($,U,Z);$l(V);let z=tO(V,H);return{file:W,commandArguments:_,command:G,escapedCommand:X,startTime:Y,verboseInfo:H,options:V,fileDescriptors:z}},ed=($)=>$.node&&!$.ipc?{...$,ipc:!1}:$,$l=({ipc:$,ipcInput:U,detached:J,cancelSignal:G})=>{if(U)i8("ipcInput");if($)i8("ipc: true");if(J)i8("detached: true");if(G)i8("cancelSignal")},i8=($)=>{throw TypeError(`The "${$}" option cannot be used with synchronous methods.`)},Ul=({file:$,commandArguments:U,options:J,command:G,escapedCommand:X,verboseInfo:Y,fileDescriptors:H,startTime:Z})=>{let W=Xl({file:$,commandArguments:U,options:J,command:G,escapedCommand:X,fileDescriptors:H,startTime:Z});if(W.failed)return W;let{resultError:_,exitCode:V,signal:z,timedOut:Q,isMaxBuffer:K}=Aj(W,J),{output:q,error:I=_}=Bj({fileDescriptors:H,syncResult:W,options:J,isMaxBuffer:K,verboseInfo:Y}),P=q.map((R,v)=>g4(R,J,v)),j=g4(Oj(q,J),J,"all");return Gl({error:I,exitCode:V,signal:z,timedOut:Q,isMaxBuffer:K,stdio:P,all:j,options:J,command:G,escapedCommand:X,startTime:Z})},Xl=({file:$,commandArguments:U,options:J,command:G,escapedCommand:X,fileDescriptors:Y,startTime:H})=>{try{Dj(Y,J);let Z=Jl(J);return ad(...R8($,U,Z))}catch(Z){return H0({error:Z,command:G,escapedCommand:X,fileDescriptors:Y,options:J,startTime:H,isSync:!0})}},Jl=({encoding:$,maxBuffer:U,...J})=>({...J,encoding:"buffer",maxBuffer:x8(U)}),Gl=({error:$,exitCode:U,signal:J,timedOut:G,isMaxBuffer:X,stdio:Y,all:H,options:Z,command:W,escapedCommand:_,startTime:V})=>$===void 0?w8({command:W,escapedCommand:_,stdio:Y,all:H,ipcOutput:[],options:Z,startTime:V}):uU({error:$,command:W,escapedCommand:_,timedOut:G,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:X,isForcefullyTerminated:!1,exitCode:U,signal:J,stdio:Y,all:H,ipcOutput:[],options:Z,startTime:V,isSync:!0});var Tj=F(()=>{OW();oW();mU();S8();sO();pU();Kj();Pj();d6();jj();Nj()});import{once as M_,on as Yl}from"node:events";var Ej=({anyProcess:$,channel:U,isSubprocess:J,ipc:G},{reference:X=!0,filter:Y}={})=>{return $0({methodName:"getOneMessage",isSubprocess:J,ipc:G,isConnected:F8($)}),Hl({anyProcess:$,channel:U,isSubprocess:J,filter:Y,reference:X})},Hl=async({anyProcess:$,channel:U,isSubprocess:J,filter:G,reference:X})=>{W8(U,X);let Y=W6($,U,J),H=new AbortController;try{return await Promise.race([Zl(Y,G,H),Wl(Y,J,H),_l(Y,J,H)])}catch(Z){throw U0($),Z}finally{H.abort(),_8(U,X)}},Zl=async($,U,{signal:J})=>{if(U===void 0){let[G]=await M_($,"message",{signal:J});return G}for await(let[G]of Yl($,"message",{signal:J}))if(U(G))return G},Wl=async($,U,{signal:J})=>{await M_($,"disconnect",{signal:J}),pB(U)},_l=async($,U,{signal:J})=>{let[G]=await M_($,"strict:error",{signal:J});throw G8(G,U)};var kj=F(()=>{X0();gU()});import{once as xj,on as Vl}from"node:events";var wj=({anyProcess:$,channel:U,isSubprocess:J,ipc:G},{reference:X=!0}={})=>A_({anyProcess:$,channel:U,isSubprocess:J,ipc:G,shouldAwait:!J,reference:X}),A_=({anyProcess:$,channel:U,isSubprocess:J,ipc:G,shouldAwait:X,reference:Y})=>{$0({methodName:"getEachMessage",isSubprocess:J,ipc:G,isConnected:F8($)}),W8(U,Y);let H=W6($,U,J),Z=new AbortController,W={};return zl($,H,Z),Ql({ipcEmitter:H,isSubprocess:J,controller:Z,state:W}),Dl({anyProcess:$,channel:U,ipcEmitter:H,isSubprocess:J,shouldAwait:X,controller:Z,state:W,reference:Y})},zl=async($,U,J)=>{try{await xj(U,"disconnect",{signal:J.signal}),J.abort()}catch{}},Ql=async({ipcEmitter:$,isSubprocess:U,controller:J,state:G})=>{try{let[X]=await xj($,"strict:error",{signal:J.signal});G.error=G8(X,U),J.abort()}catch{}},Dl=async function*({anyProcess:$,channel:U,ipcEmitter:J,isSubprocess:G,shouldAwait:X,controller:Y,state:H,reference:Z}){try{for await(let[W]of Vl(J,"message",{signal:Y.signal}))Cj(H),yield W}catch{Cj(H)}finally{if(Y.abort(),_8(U,Z),!G)U0($);if(X)await $}},Cj=({error:$})=>{if($)throw $};var N_=F(()=>{X0();gU()});import Sj from"node:process";var gj=($,{ipc:U})=>{Object.assign($,yj($,!1,U))},bj=()=>{let $=Sj,U=!0,J=Sj.channel!==void 0;return{...yj($,!0,J),getCancelSignal:qP.bind(void 0,{anyProcess:$,channel:$.channel,isSubprocess:!0,ipc:J})}},yj=($,U,J)=>({sendMessage:P8.bind(void 0,{anyProcess:$,channel:$.channel,isSubprocess:U,ipc:J}),getOneMessage:Ej.bind(void 0,{anyProcess:$,channel:$.channel,isSubprocess:U,ipc:J}),getEachMessage:wj.bind(void 0,{anyProcess:$,channel:$.channel,isSubprocess:U,ipc:J})});var v_=F(()=>{O8();kj();N_();D8()});import{ChildProcess as Kl}from"node:child_process";import{PassThrough as Fl,Readable as ql,Writable as Il,Duplex as Bl}from"node:stream";var hj=({error:$,command:U,escapedCommand:J,fileDescriptors:G,options:X,startTime:Y,verboseInfo:H})=>{Q_(G);let Z=new Kl;Pl(Z,G),Object.assign(Z,{readable:Ol,writable:jl,duplex:Ll});let W=H0({error:$,command:U,escapedCommand:J,fileDescriptors:G,options:X,startTime:Y,isSync:!1}),_=Rl(W,H,X);return{subprocess:Z,promise:_}},Pl=($,U)=>{let J=dU(),G=dU(),X=dU(),Y=Array.from({length:U.length-3},dU),H=dU(),Z=[J,G,X,...Y];Object.assign($,{stdin:J,stdout:G,stderr:X,all:H,stdio:Z})},dU=()=>{let $=new Fl;return $.end(),$},Ol=()=>new ql({read(){}}),jl=()=>new Il({write(){}}),Ll=()=>new Bl({read(){},write(){}}),Rl=async($,U,J)=>Z0($,U,J);var fj=F(()=>{f8();mU();S8()});import{createReadStream as uj,createWriteStream as mj}from"node:fs";import{Buffer as Ml}from"node:buffer";import{Readable as lU,Writable as Al,Duplex as Nl}from"node:stream";var cj=($,U)=>h8(vl,$,U,!1),nU=({type:$,optionName:U})=>{throw TypeError(`The \`${U}\` option cannot be ${_6[$]}.`)},pj,vl;var dj=F(()=>{l8();f8();v$();pj={fileNumber:nU,generator:P_,asyncGenerator:P_,nodeStream:({value:$})=>({stream:$}),webTransform({value:{transform:$,writableObjectMode:U,readableObjectMode:J}}){let G=U||J;return{stream:Nl.fromWeb($,{objectMode:G})}},duplex:({value:{transform:$}})=>({stream:$}),native(){}},vl={input:{...pj,fileUrl:({value:$})=>({stream:uj($)}),filePath:({value:{file:$}})=>({stream:uj($)}),webStream:({value:$})=>({stream:lU.fromWeb($)}),iterable:({value:$})=>({stream:lU.from($)}),asyncIterable:({value:$})=>({stream:lU.from($)}),string:({value:$})=>({stream:lU.from($)}),uint8Array:({value:$})=>({stream:lU.from(Ml.from($))})},output:{...pj,fileUrl:({value:$})=>({stream:mj($)}),filePath:({value:{file:$,append:U}})=>({stream:mj($,U?{flags:"a"}:{})}),webStream:({value:$})=>({stream:Al.fromWeb($)}),iterable:nU,asyncIterable:nU,string:nU,uint8Array:nU}}});import{on as Tl,once as lj}from"node:events";import{PassThrough as El,getDefaultHighWaterMark as kl}from"node:stream";import{finished as rj}from"node:stream/promises";function i6($){if(!Array.isArray($))throw TypeError(`Expected an array, got \`${typeof $}\`.`);for(let X of $)T_(X);let U=$.some(({readableObjectMode:X})=>X),J=Cl($,U),G=new oj({objectMode:U,writableHighWaterMark:J,readableHighWaterMark:J});for(let X of $)G.add(X);return G}var Cl=($,U)=>{if($.length===0)return kl(U);let J=$.filter(({readableObjectMode:G})=>G===U).map(({readableHighWaterMark:G})=>G);return Math.max(...J)},oj,xl=async($,U,J)=>{r8($,nj);let G=new AbortController;try{await Promise.race([wl($,G),Sl($,U,J,G)])}finally{G.abort(),r8($,-nj)}},wl=async($,{signal:U})=>{try{await rj($,{signal:U,cleanup:!0})}catch(J){throw tj($,J),J}},Sl=async($,U,J,{signal:G})=>{for await(let[X]of Tl($,"unpipe",{signal:G}))if(U.has(X))X.emit(J)},T_=($)=>{if(typeof $?.pipe!=="function")throw TypeError(`Expected a readable stream, got: \`${typeof $}\`.`)},gl=async({passThroughStream:$,stream:U,streams:J,ended:G,aborted:X,onFinished:Y,unpipeEvent:H})=>{r8($,ij);let Z=new AbortController;try{await Promise.race([bl(Y,U,Z),yl({passThroughStream:$,stream:U,streams:J,ended:G,aborted:X,controller:Z}),hl({stream:U,streams:J,ended:G,aborted:X,unpipeEvent:H,controller:Z})])}finally{Z.abort(),r8($,-ij)}if(J.size>0&&J.size===G.size+X.size)if(G.size===0&&X.size>0)E_($);else fl($)},bl=async($,U,{signal:J})=>{try{if(await $,!J.aborted)E_(U)}catch(G){if(!J.aborted)tj(U,G)}},yl=async({passThroughStream:$,stream:U,streams:J,ended:G,aborted:X,controller:{signal:Y}})=>{try{if(await rj(U,{signal:Y,cleanup:!0,readable:!0,writable:!1}),J.has(U))G.add(U)}catch(H){if(Y.aborted||!J.has(U))return;if(aj(H))X.add(U);else sj($,H)}},hl=async({stream:$,streams:U,ended:J,aborted:G,unpipeEvent:X,controller:{signal:Y}})=>{if(await lj($,X,{signal:Y}),!$.readable)return lj(Y,"abort",{signal:Y});U.delete($),J.delete($),G.delete($)},fl=($)=>{if($.writable)$.end()},tj=($,U)=>{if(aj(U))E_($);else sj($,U)},aj=($)=>$?.code==="ERR_STREAM_PREMATURE_CLOSE",E_=($)=>{if($.readable||$.writable)$.destroy()},sj=($,U)=>{if(!$.destroyed)$.once("error",ul),$.destroy(U)},ul=()=>{},r8=($,U)=>{let J=$.getMaxListeners();if(J!==0&&J!==Number.POSITIVE_INFINITY)$.setMaxListeners(J+U)},nj=2,ij=1;var o8=F(()=>{oj=class oj extends El{#U=new Set([]);#X=new Set([]);#$=new Set([]);#J;#Y=Symbol("unpipe");#G=new WeakMap;add($){if(T_($),this.#U.has($))return;this.#U.add($),this.#J??=xl(this,this.#U,this.#Y);let U=gl({passThroughStream:this,stream:$,streams:this.#U,ended:this.#X,aborted:this.#$,onFinished:this.#J,unpipeEvent:this.#Y});this.#G.set($,U),$.pipe(this,{end:!1})}async remove($){if(T_($),!this.#U.has($))return!1;let U=this.#G.get($);if(U===void 0)return!1;return this.#G.delete($),$.unpipe(this),await U,!0}}});import{finished as ej}from"node:stream/promises";var _0=($,U)=>{$.pipe(U),ml($,U),pl($,U)},ml=async($,U)=>{if(X4($)||X4(U))return;try{await ej($,{cleanup:!0,readable:!0,writable:!1})}catch{}k_(U)},k_=($)=>{if($.writable)$.end()},pl=async($,U)=>{if(X4($)||X4(U))return;try{await ej(U,{cleanup:!0,readable:!1,writable:!0})}catch{}C_($)},C_=($)=>{if($.readable)$.destroy()};var t8=F(()=>{k4()});var $L=($,U,J)=>{let G=new Map;for(let[X,{stdioItems:Y,direction:H}]of Object.entries(U)){for(let{stream:Z}of Y.filter(({type:W})=>n$.has(W)))cl($,Z,H,X);for(let{stream:Z}of Y.filter(({type:W})=>!n$.has(W)))ll({subprocess:$,stream:Z,direction:H,fdNumber:X,pipeGroups:G,controller:J})}for(let[X,Y]of G.entries()){let H=Y.length===1?Y[0]:i6(Y);_0(H,X)}},cl=($,U,J,G)=>{if(J==="output")_0($.stdio[G],U);else _0(U,$.stdio[G]);let X=dl[G];if(X!==void 0)$[X]=U;$.stdio[G]=U},dl,ll=({subprocess:$,stream:U,direction:J,fdNumber:G,pipeGroups:X,controller:Y})=>{if(U===void 0)return;nl(U,Y);let[H,Z]=J==="output"?[U,$.stdio[G]]:[$.stdio[G],U],W=X.get(H)??[];X.set(H,[...W,Z])},nl=($,{signal:U})=>{if(X4($))m6($,il,U)},il=2;var UL=F(()=>{o8();k4();Z8();v$();t8();dl=["stdin","stdout","stderr"]});var r6;var XL=F(()=>{r6=[];r6.push("SIGHUP","SIGINT","SIGTERM");if(process.platform!=="win32")r6.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")r6.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});class JL{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(w_[x_])return w_[x_];rl(w_,x_,{value:this,writable:!1,enumerable:!1,configurable:!1})}on($,U){this.listeners[$].push(U)}removeListener($,U){let J=this.listeners[$],G=J.indexOf(U);if(G===-1)return;if(G===0&&J.length===1)J.length=0;else J.splice(G,1)}emit($,U,J){if(this.emitted[$])return!1;this.emitted[$]=!0;let G=!1;for(let X of this.listeners[$])G=X(U,J)===!0||G;if($==="exit")G=this.emit("afterExit",U,J)||G;return G}}class g_{}var a8=($)=>!!$&&typeof $==="object"&&typeof $.removeListener==="function"&&typeof $.emit==="function"&&typeof $.reallyExit==="function"&&typeof $.listeners==="function"&&typeof $.kill==="function"&&typeof $.pid==="number"&&typeof $.on==="function",x_,w_,rl,ol=($)=>{return{onExit(U,J){return $.onExit(U,J)},load(){return $.load()},unload(){return $.unload()}}},GL,YL,S_,HL,V7$,z7$;var ZL=F(()=>{XL();x_=Symbol.for("signal-exit emitter"),w_=globalThis,rl=Object.defineProperty.bind(Object);GL=class GL extends g_{onExit(){return()=>{}}load(){}unload(){}};YL=class YL extends g_{#U=S_.platform==="win32"?"SIGINT":"SIGHUP";#X=new JL;#$;#J;#Y;#G={};#H=!1;constructor($){super();this.#$=$,this.#G={};for(let U of r6)this.#G[U]=()=>{let J=this.#$.listeners(U),{count:G}=this.#X,X=$;if(typeof X.__signal_exit_emitter__==="object"&&typeof X.__signal_exit_emitter__.count==="number")G+=X.__signal_exit_emitter__.count;if(J.length===G){this.unload();let Y=this.#X.emit("exit",null,U),H=U==="SIGHUP"?this.#U:U;if(!Y)$.kill($.pid,H)}};this.#Y=$.reallyExit,this.#J=$.emit}onExit($,U){if(!a8(this.#$))return()=>{};if(this.#H===!1)this.load();let J=U?.alwaysLast?"afterExit":"exit";return this.#X.on(J,$),()=>{if(this.#X.removeListener(J,$),this.#X.listeners.exit.length===0&&this.#X.listeners.afterExit.length===0)this.unload()}}load(){if(this.#H)return;this.#H=!0,this.#X.count+=1;for(let $ of r6)try{let U=this.#G[$];if(U)this.#$.on($,U)}catch(U){}this.#$.emit=($,...U)=>{return this.#W($,...U)},this.#$.reallyExit=($)=>{return this.#Z($)}}unload(){if(!this.#H)return;this.#H=!1,r6.forEach(($)=>{let U=this.#G[$];if(!U)throw Error("Listener not defined for signal: "+$);try{this.#$.removeListener($,U)}catch(J){}}),this.#$.emit=this.#J,this.#$.reallyExit=this.#Y,this.#X.count-=1}#Z($){if(!a8(this.#$))return 0;return this.#$.exitCode=$||0,this.#X.emit("exit",this.#$.exitCode,null),this.#Y.call(this.#$,this.#$.exitCode)}#W($,...U){let J=this.#J;if($==="exit"&&a8(this.#$)){if(typeof U[0]==="number")this.#$.exitCode=U[0];let G=J.call(this.#$,$,...U);return this.#X.emit("exit",this.#$.exitCode,null),G}else return J.call(this.#$,$,...U)}};S_=globalThis.process,{onExit:HL,load:V7$,unload:z7$}=ol(a8(S_)?new YL(S_):new GL)});import{addAbortListener as tl}from"node:events";var WL=($,{cleanup:U,detached:J},{signal:G})=>{if(!U||J)return;let X=HL(()=>{$.kill()});tl(G,()=>{X()})};var _L=F(()=>{ZL()});var zL=({source:$,sourcePromise:U,boundOptions:J,createNested:G},...X)=>{let Y=lJ(),{destination:H,destinationStream:Z,destinationError:W,from:_,unpipeSignal:V}=al(J,G,X),{sourceStream:z,sourceError:Q}=el($,_),{options:K,fileDescriptors:q}=B4.get($);return{sourcePromise:U,sourceStream:z,sourceOptions:K,sourceError:Q,destination:H,destinationStream:Z,destinationError:W,unpipeSignal:V,fileDescriptors:q,startTime:Y}},al=($,U,J)=>{try{let{destination:G,pipeOptions:{from:X,to:Y,unpipeSignal:H}={}}=sl($,U,...J),Z=H8(G,Y);return{destination:G,destinationStream:Z,from:X,unpipeSignal:H}}catch(G){return{destinationError:G}}},sl=($,U,J,...G)=>{if(Array.isArray(J))return{destination:U(VL,$)(J,...G),pipeOptions:$};if(typeof J==="string"||J instanceof URL||_W(J)){if(Object.keys($).length>0)throw TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[X,Y,H]=SJ(J,...G);return{destination:U(VL)(X,Y,H),pipeOptions:H}}if(B4.has(J)){if(Object.keys($).length>0)throw TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:J,pipeOptions:G[0]}}throw TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${J}`)},VL=({options:$})=>({options:{...$,stdin:"pipe",piped:!0}}),el=($,U)=>{try{return{sourceStream:J0($,U)}}catch(J){return{sourceError:J}}};var QL=F(()=>{zW();nJ();Z6();r1()});var KL=({sourceStream:$,sourceError:U,destinationStream:J,destinationError:G,fileDescriptors:X,sourceOptions:Y,startTime:H})=>{let Z=$n({sourceStream:$,sourceError:U,destinationStream:J,destinationError:G});if(Z!==void 0)throw b_({error:Z,fileDescriptors:X,sourceOptions:Y,startTime:H})},$n=({sourceStream:$,sourceError:U,destinationStream:J,destinationError:G})=>{if(U!==void 0&&G!==void 0)return G;if(G!==void 0)return C_($),G;if(U!==void 0)return k_(J),U},b_=({error:$,fileDescriptors:U,sourceOptions:J,startTime:G})=>H0({error:$,command:DL,escapedCommand:DL,fileDescriptors:U,options:J,startTime:G,isSync:!1}),DL="source.pipe(destination)";var y_=F(()=>{mU();t8()});var FL=async($)=>{let[{status:U,reason:J,value:G=J},{status:X,reason:Y,value:H=Y}]=await $;if(!H.pipedFrom.includes(G))H.pipedFrom.push(G);if(X==="rejected")throw H;if(U==="rejected")throw G;return H};import{finished as Un}from"node:stream/promises";var qL=($,U,J)=>{let G=s8.has(U)?Jn($,U):Xn($,U);return m6($,Yn,J.signal),m6(U,Hn,J.signal),Gn(U),G},Xn=($,U)=>{let J=i6([$]);return _0(J,U),s8.set(U,J),J},Jn=($,U)=>{let J=s8.get(U);return J.add($),J},Gn=async($)=>{try{await Un($,{cleanup:!0,readable:!1,writable:!0})}catch{}s8.delete($)},s8,Yn=2,Hn=1;var IL=F(()=>{o8();Z8();t8();s8=new WeakMap});import{aborted as Zn}from"node:util";var BL=($,U)=>$===void 0?[]:[Wn($,U)],Wn=async($,{sourceStream:U,mergedStream:J,fileDescriptors:G,sourceOptions:X,startTime:Y})=>{await Zn($,U),await J.remove(U);let H=Error("Pipe canceled by `unpipeSignal` option.");throw b_({error:H,fileDescriptors:G,sourceOptions:X,startTime:Y})};var PL=F(()=>{y_()});var e8=($,...U)=>{if(Y$(U[0]))return e8.bind(void 0,{...$,boundOptions:{...$.boundOptions,...U[0]}});let{destination:J,...G}=zL($,...U),X=_n({...G,destination:J});return X.pipe=e8.bind(void 0,{...$,source:J,sourcePromise:X,boundOptions:{}}),X},_n=async({sourcePromise:$,sourceStream:U,sourceOptions:J,sourceError:G,destination:X,destinationStream:Y,destinationError:H,unpipeSignal:Z,fileDescriptors:W,startTime:_})=>{let V=Vn($,X);KL({sourceStream:U,sourceError:G,destinationStream:Y,destinationError:H,fileDescriptors:W,sourceOptions:J,startTime:_});let z=new AbortController;try{let Q=qL(U,Y,z);return await Promise.race([FL(V),...BL(Z,{sourceStream:U,mergedStream:Q,sourceOptions:J,fileDescriptors:W,startTime:_})])}finally{z.abort()}},Vn=($,U)=>Promise.allSettled([$,U]);var OL=F(()=>{QL();y_();IL();PL()});import{on as zn}from"node:events";import{getDefaultHighWaterMark as Qn}from"node:stream";var $7=({subprocessStdout:$,subprocess:U,binary:J,shouldEncode:G,encoding:X,preserveNewlines:Y})=>{let H=new AbortController;return Dn(U,H),LL({stream:$,controller:H,binary:J,shouldEncode:!$.readableObjectMode&&G,encoding:X,shouldSplit:!$.readableObjectMode,preserveNewlines:Y})},Dn=async($,U)=>{try{await $}catch{}finally{U.abort()}},h_=({stream:$,onStreamEnd:U,lines:J,encoding:G,stripFinalNewline:X,allMixed:Y})=>{let H=new AbortController;Kn(U,H,$);let Z=$.readableObjectMode&&!Y;return LL({stream:$,controller:H,binary:G==="buffer",shouldEncode:!Z,encoding:G,shouldSplit:!Z&&J,preserveNewlines:!X})},Kn=async($,U,J)=>{try{await $}catch{J.destroy()}finally{U.abort()}},LL=({stream:$,controller:U,binary:J,shouldEncode:G,encoding:X,shouldSplit:Y,preserveNewlines:H})=>{let Z=zn($,"data",{signal:U.signal,highWaterMark:jL,highWatermark:jL});return Fn({onStdoutChunk:Z,controller:U,binary:J,shouldEncode:G,encoding:X,shouldSplit:Y,preserveNewlines:H})},f_,jL,Fn=async function*({onStdoutChunk:$,controller:U,binary:J,shouldEncode:G,encoding:X,shouldSplit:Y,preserveNewlines:H}){let Z=qn({binary:J,shouldEncode:G,encoding:X,shouldSplit:Y,preserveNewlines:H});try{for await(let[W]of $)yield*n6(W,Z,0)}catch(W){if(!U.signal.aborted)throw W}finally{yield*cU(Z)}},qn=({binary:$,shouldEncode:U,encoding:J,shouldSplit:G,preserveNewlines:X})=>[p8($,J,!U),u8($,X,!G,{})].filter(Boolean);var U7=F(()=>{q_();m8();f_=Qn(!0),jL=f_});import{setImmediate as In}from"node:timers/promises";var RL=async({stream:$,onStreamEnd:U,fdNumber:J,encoding:G,buffer:X,maxBuffer:Y,lines:H,allMixed:Z,stripFinalNewline:W,verboseInfo:_,streamInfo:V})=>{let z=Bn({stream:$,onStreamEnd:U,fdNumber:J,encoding:G,allMixed:Z,verboseInfo:_,streamInfo:V});if(!X){await Promise.all([Pn($),z]);return}let Q=D_(W,J),K=h_({stream:$,onStreamEnd:U,lines:H,encoding:G,stripFinalNewline:Q,allMixed:Z}),[q]=await Promise.all([On({stream:$,iterable:K,fdNumber:J,encoding:G,maxBuffer:Y,lines:H}),z]);return q},Bn=async({stream:$,onStreamEnd:U,fdNumber:J,encoding:G,allMixed:X,verboseInfo:Y,streamInfo:{fileDescriptors:H}})=>{if(!n8({stdioItems:H[J]?.stdioItems,encoding:G,verboseInfo:Y,fdNumber:J}))return;let Z=h_({stream:$,onStreamEnd:U,lines:!0,encoding:G,stripFinalNewline:!0,allMixed:X});await Fj(Z,$,J,Y)},Pn=async($)=>{if(await In(),$.readableFlowing===null)$.resume()},On=async({stream:$,stream:{readableObjectMode:U},iterable:J,fdNumber:G,encoding:X,maxBuffer:Y,lines:H})=>{try{if(U||H)return await v8(J,{maxBuffer:Y});if(X==="buffer")return new Uint8Array(await T8(J,{maxBuffer:Y}));return await k8(J,{maxBuffer:Y})}catch(Z){return ML(UO({error:Z,stream:$,readableObjectMode:U,lines:H,encoding:X,fdNumber:G}))}},u_=async($)=>{try{return await $}catch(U){return ML(U)}},ML=({bufferedData:$})=>oq($)?new Uint8Array($):$;var m_=F(()=>{C8();f$();O_();U7();d6();pU()});import{finished as jn}from"node:stream/promises";var iU=async($,U,J,{isSameDirection:G,stopOnExit:X=!1}={})=>{let Y=Ln($,J),H=new AbortController;try{await Promise.race([...X?[J.exitPromise]:[],jn($,{cleanup:!0,signal:H.signal})])}catch(Z){if(!Y.stdinCleanedUp)An(Z,U,J,G)}finally{H.abort()}},Ln=($,{originalStreams:[U],subprocess:J})=>{let G={stdinCleanedUp:!1};if($===U)Rn($,J,G);return G},Rn=($,U,J)=>{let{_destroy:G}=$;$._destroy=(...X)=>{Mn(U,J),G.call($,...X)}},Mn=({exitCode:$,signalCode:U},J)=>{if($!==null||U!==null)J.stdinCleanedUp=!0},An=($,U,J,G)=>{if(!Nn($,U,J,G))throw $},Nn=($,U,J,G=!0)=>{if(J.propagating)return AL($)||X7($);return J.propagating=!0,p_(J,U)===G?AL($):X7($)},p_=({fileDescriptors:$},U)=>U!=="all"&&$[U].direction==="input",X7=($)=>$?.code==="ERR_STREAM_PREMATURE_CLOSE",AL=($)=>$?.code==="EPIPE";var J7=()=>{};var NL=({subprocess:$,encoding:U,buffer:J,maxBuffer:G,lines:X,stripFinalNewline:Y,verboseInfo:H,streamInfo:Z})=>$.stdio.map((W,_)=>c_({stream:W,fdNumber:_,encoding:U,buffer:J[_],maxBuffer:G[_],lines:X[_],allMixed:!1,stripFinalNewline:Y,verboseInfo:H,streamInfo:Z})),c_=async({stream:$,fdNumber:U,encoding:J,buffer:G,maxBuffer:X,lines:Y,allMixed:H,stripFinalNewline:Z,verboseInfo:W,streamInfo:_})=>{if(!$)return;let V=iU($,U,_);if(p_(_,U)){await V;return}let[z]=await Promise.all([RL({stream:$,onStreamEnd:V,fdNumber:U,encoding:J,buffer:G,maxBuffer:X,lines:Y,allMixed:H,stripFinalNewline:Z,verboseInfo:W,streamInfo:_}),V]);return z};var d_=F(()=>{m_();J7()});var vL=({stdout:$,stderr:U},{all:J})=>J&&($||U)?i6([$,U].filter(Boolean)):void 0,TL=({subprocess:$,encoding:U,buffer:J,maxBuffer:G,lines:X,stripFinalNewline:Y,verboseInfo:H,streamInfo:Z})=>c_({...vn($,J),fdNumber:"all",encoding:U,maxBuffer:G[1]+G[2],lines:X[1]||X[2],allMixed:Tn($),stripFinalNewline:Y,verboseInfo:H,streamInfo:Z}),vn=({stdout:$,stderr:U,all:J},[,G,X])=>{let Y=G||X;if(!Y)return{stream:J,buffer:Y};if(!G)return{stream:U,buffer:Y};if(!X)return{stream:$,buffer:Y};return{stream:J,buffer:Y}},Tn=({all:$,stdout:U,stderr:J})=>$&&U&&J&&U.readableObjectMode!==J.readableObjectMode;var l_=F(()=>{o8();d_()});var EL=($)=>t1($,"ipc"),kL=($,U)=>{let J=dJ($);F4({type:"ipc",verboseMessage:J,fdNumber:"ipc",verboseInfo:U})};var CL=F(()=>{a1();Y6()});var xL=async({subprocess:$,buffer:U,maxBuffer:J,ipc:G,ipcOutput:X,verboseInfo:Y})=>{if(!G)return X;let H=EL(Y),Z=C4(U,"ipc"),W=C4(J,"ipc");for await(let _ of A_({anyProcess:$,channel:$.channel,isSubprocess:!1,ipc:G,shouldAwait:!1,reference:!0})){if(Z)XO($,X,W),X.push(_);if(H)kL(_,Y)}return X},wL=async($,U)=>{return await Promise.allSettled([$]),U};var SL=F(()=>{d6();CL();x4();N_()});import{once as En}from"node:events";var gL=async({subprocess:$,options:{encoding:U,buffer:J,maxBuffer:G,lines:X,timeoutDuration:Y,cancelSignal:H,gracefulCancel:Z,forceKillAfterDelay:W,stripFinalNewline:_,ipc:V,ipcInput:z},context:Q,verboseInfo:K,fileDescriptors:q,originalStreams:I,onInternalError:P,controller:j})=>{let R=Lj($,Q),v={originalStreams:I,fileDescriptors:q,subprocess:$,exitPromise:R,propagating:!1},M=NL({subprocess:$,encoding:U,buffer:J,maxBuffer:G,lines:X,stripFinalNewline:_,verboseInfo:K,streamInfo:v}),E=TL({subprocess:$,encoding:U,buffer:J,maxBuffer:G,lines:X,stripFinalNewline:_,verboseInfo:K,streamInfo:v}),x=[],p=xL({subprocess:$,buffer:J,maxBuffer:G,ipc:V,ipcOutput:x,verboseInfo:K}),w=kn(I,$,v),r=Cn(q,v);try{return await Promise.race([Promise.all([{},Mj(R),Promise.all(M),E,p,NP($,z),...w,...r]),P,xn($,j),...jP($,Y,Q,j),...mB({subprocess:$,cancelSignal:H,gracefulCancel:Z,context:Q,controller:j}),...PP({subprocess:$,cancelSignal:H,gracefulCancel:Z,forceKillAfterDelay:W,context:Q,controller:j})])}catch(W$){return Q.terminationReason??="other",Promise.all([{error:W$},R,Promise.all(M.map((V$)=>u_(V$))),u_(E),wL(p,x),Promise.allSettled(w),Promise.allSettled(r)])}},kn=($,U,J)=>$.map((G,X)=>G===U.stdio[X]?void 0:iU(G,X,J)),Cn=($,U)=>$.flatMap(({stdioItems:J},G)=>J.filter(({value:X,stream:Y=X})=>G4(Y,{checkOpen:!1})&&!X4(Y)).map(({type:X,value:Y,stream:H=Y})=>iU(H,G,U,{isSameDirection:n$.has(X),stopOnExit:X==="native"}))),xn=async($,{signal:U})=>{let[J]=await En($,"error",{signal:U});throw J};var bL=F(()=>{dW();gW();cW();k4();v$();m_();SL();nW();l_();d_();R_();J7()});var yL=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),rU=($,U,J)=>{let G=$[J];if(!G.has(U))G.set(U,[]);let X=G.get(U),Y=I4();return X.push(Y),{resolve:Y.resolve.bind(Y),promises:X}},V0=async({resolve:$,promises:U},J)=>{$();let[G]=await Promise.race([Promise.allSettled([!0,J]),Promise.all([!1,...U])]);return!G};var G7=()=>{};import{finished as hL}from"node:stream/promises";var n_=async($)=>{if($===void 0)return;try{await i_($)}catch{}},fL=async($)=>{if($===void 0)return;try{await r_($)}catch{}},i_=async($)=>{await hL($,{cleanup:!0,readable:!1,writable:!0})},r_=async($)=>{await hL($,{cleanup:!0,readable:!0,writable:!1})},Y7=async($,U)=>{if(await $,U)throw U},H7=($,U,J)=>{if(J&&!X7(J))$.destroy(J);else if(U)$.destroy()};var o_=F(()=>{J7()});import{Readable as wn}from"node:stream";import{callbackify as Sn}from"node:util";var uL=({subprocess:$,concurrentStreams:U,encoding:J},{from:G,binary:X=!0,preserveNewlines:Y=!0}={})=>{let H=X||u$.has(J),{subprocessStdout:Z,waitReadableDestroy:W}=t_($,G,U),{readableEncoding:_,readableObjectMode:V,readableHighWaterMark:z}=a_(Z,H),{read:Q,onStdoutDataDone:K}=s_({subprocessStdout:Z,subprocess:$,binary:H,encoding:J,preserveNewlines:Y}),q=new wn({read:Q,destroy:Sn($V.bind(void 0,{subprocessStdout:Z,subprocess:$,waitReadableDestroy:W})),highWaterMark:z,objectMode:V,encoding:_});return e_({subprocessStdout:Z,onStdoutDataDone:K,readable:q,subprocess:$}),q},t_=($,U,J)=>{let G=J0($,U),X=rU(J,G,"readableDestroy");return{subprocessStdout:G,waitReadableDestroy:X}},a_=({readableEncoding:$,readableObjectMode:U,readableHighWaterMark:J},G)=>G?{readableEncoding:$,readableObjectMode:U,readableHighWaterMark:J}:{readableEncoding:$,readableObjectMode:!0,readableHighWaterMark:f_},s_=({subprocessStdout:$,subprocess:U,binary:J,encoding:G,preserveNewlines:X})=>{let Y=I4(),H=$7({subprocessStdout:$,subprocess:U,binary:J,shouldEncode:!J,encoding:G,preserveNewlines:X});return{read(){gn(this,H,Y)},onStdoutDataDone:Y}},gn=async($,U,J)=>{try{let{value:G,done:X}=await U.next();if(X)J.resolve();else $.push(G)}catch{}},e_=async({subprocessStdout:$,onStdoutDataDone:U,readable:J,subprocess:G,subprocessStdin:X})=>{try{if(await r_($),await G,await n_(X),await U,J.readable)J.push(null)}catch(Y){await n_(X),mL(J,Y)}},$V=async({subprocessStdout:$,subprocess:U,waitReadableDestroy:J},G)=>{if(await V0(J,U))mL($,G),await Y7(U,G)},mL=($,U)=>{H7($,$.readable,U)};var UV=F(()=>{p6();Z6();U7();G7();o_()});import{Writable as bn}from"node:stream";import{callbackify as pL}from"node:util";var cL=({subprocess:$,concurrentStreams:U},{to:J}={})=>{let{subprocessStdin:G,waitWritableFinal:X,waitWritableDestroy:Y}=XV($,J,U),H=new bn({...JV(G,$,X),destroy:pL(YV.bind(void 0,{subprocessStdin:G,subprocess:$,waitWritableFinal:X,waitWritableDestroy:Y})),highWaterMark:G.writableHighWaterMark,objectMode:G.writableObjectMode});return GV(G,H),H},XV=($,U,J)=>{let G=H8($,U),X=rU(J,G,"writableFinal"),Y=rU(J,G,"writableDestroy");return{subprocessStdin:G,waitWritableFinal:X,waitWritableDestroy:Y}},JV=($,U,J)=>({write:yn.bind(void 0,$),final:pL(hn.bind(void 0,$,U,J))}),yn=($,U,J,G)=>{if($.write(U,J))G();else $.once("drain",G)},hn=async($,U,J)=>{if(await V0(J,U)){if($.writable)$.end();await U}},GV=async($,U,J)=>{try{if(await i_($),U.writable)U.end()}catch(G){await fL(J),dL(U,G)}},YV=async({subprocessStdin:$,subprocess:U,waitWritableFinal:J,waitWritableDestroy:G},X)=>{if(await V0(J,U),await V0(G,U))dL($,X),await Y7(U,X)},dL=($,U)=>{H7($,$.writable,U)};var HV=F(()=>{Z6();G7();o_()});import{Duplex as fn}from"node:stream";import{callbackify as un}from"node:util";var lL=({subprocess:$,concurrentStreams:U,encoding:J},{from:G,to:X,binary:Y=!0,preserveNewlines:H=!0}={})=>{let Z=Y||u$.has(J),{subprocessStdout:W,waitReadableDestroy:_}=t_($,G,U),{subprocessStdin:V,waitWritableFinal:z,waitWritableDestroy:Q}=XV($,X,U),{readableEncoding:K,readableObjectMode:q,readableHighWaterMark:I}=a_(W,Z),{read:P,onStdoutDataDone:j}=s_({subprocessStdout:W,subprocess:$,binary:Z,encoding:J,preserveNewlines:H}),R=new fn({read:P,...JV(V,$,z),destroy:un(mn.bind(void 0,{subprocessStdout:W,subprocessStdin:V,subprocess:$,waitReadableDestroy:_,waitWritableFinal:z,waitWritableDestroy:Q})),readableHighWaterMark:I,writableHighWaterMark:V.writableHighWaterMark,readableObjectMode:q,writableObjectMode:V.writableObjectMode,encoding:K});return e_({subprocessStdout:W,onStdoutDataDone:j,readable:R,subprocess:$,subprocessStdin:V}),GV(V,R,W),R},mn=async({subprocessStdout:$,subprocessStdin:U,subprocess:J,waitReadableDestroy:G,waitWritableFinal:X,waitWritableDestroy:Y},H)=>{await Promise.all([$V({subprocessStdout:$,subprocess:J,waitReadableDestroy:G},H),YV({subprocessStdin:U,subprocess:J,waitWritableFinal:X,waitWritableDestroy:Y},H)])};var nL=F(()=>{p6();UV();HV()});var ZV=($,U,{from:J,binary:G=!1,preserveNewlines:X=!1}={})=>{let Y=G||u$.has(U),H=J0($,J),Z=$7({subprocessStdout:H,subprocess:$,binary:Y,shouldEncode:!0,encoding:U,preserveNewlines:X});return pn(Z,H,$)},pn=async function*($,U,J){try{yield*$}finally{if(U.readable)U.destroy();await J}};var iL=F(()=>{p6();Z6();U7()});var rL=($,{encoding:U})=>{let J=yL();$.readable=uL.bind(void 0,{subprocess:$,concurrentStreams:J,encoding:U}),$.writable=cL.bind(void 0,{subprocess:$,concurrentStreams:J}),$.duplex=lL.bind(void 0,{subprocess:$,concurrentStreams:J,encoding:U}),$.iterable=ZV.bind(void 0,$,U),$[Symbol.asyncIterator]=ZV.bind(void 0,$,U,{})};var oL=F(()=>{G7();UV();HV();nL();iL()});var tL=($,U)=>{for(let[J,G]of dn){let X=G.value.bind(U);Reflect.defineProperty($,J,{...G,value:X})}},cn,dn;var aL=F(()=>{cn=(async()=>{})().constructor.prototype,dn=["then","catch","finally"].map(($)=>[$,Reflect.getOwnPropertyDescriptor(cn,$)])});import{setMaxListeners as ln}from"node:events";import{spawn as nn}from"node:child_process";var sL=($,U,J,G)=>{let{file:X,commandArguments:Y,command:H,escapedCommand:Z,startTime:W,verboseInfo:_,options:V,fileDescriptors:z}=rn($,U,J),{subprocess:Q,promise:K}=tn({file:X,commandArguments:Y,options:V,startTime:W,verboseInfo:_,command:H,escapedCommand:Z,fileDescriptors:z});return Q.pipe=e8.bind(void 0,{source:Q,sourcePromise:K,boundOptions:{},createNested:G}),tL(Q,K),B4.set(Q,{options:V,fileDescriptors:z}),Q},rn=($,U,J)=>{let{command:G,escapedCommand:X,startTime:Y,verboseInfo:H}=iJ($,U,J),{file:Z,commandArguments:W,options:_}=L8($,U,J),V=on(_),z=cj(V,H);return{file:Z,commandArguments:W,command:G,escapedCommand:X,startTime:Y,verboseInfo:H,options:V,fileDescriptors:z}},on=({timeout:$,signal:U,...J})=>{if(U!==void 0)throw TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...J,timeoutDuration:$}},tn=({file:$,commandArguments:U,options:J,startTime:G,verboseInfo:X,command:Y,escapedCommand:H,fileDescriptors:Z})=>{let W;try{W=nn(...R8($,U,J))}catch(q){return hj({error:q,command:Y,escapedCommand:H,fileDescriptors:Z,options:J,startTime:G,verboseInfo:X})}let _=new AbortController;ln(Number.POSITIVE_INFINITY,_.signal);let V=[...W.stdio];$L(W,Z,_),WL(W,J,_);let z={},Q=I4();W.kill=fB.bind(void 0,{kill:W.kill.bind(W),options:J,onInternalError:Q,context:z,controller:_}),W.all=vL(W,J),rL(W,J),gj(W,J);let K=an({subprocess:W,options:J,startTime:G,verboseInfo:X,fileDescriptors:Z,originalStreams:V,command:Y,escapedCommand:H,context:z,onInternalError:Q,controller:_});return{subprocess:W,promise:K}},an=async({subprocess:$,options:U,startTime:J,verboseInfo:G,fileDescriptors:X,originalStreams:Y,command:H,escapedCommand:Z,context:W,onInternalError:_,controller:V})=>{let[z,[Q,K],q,I,P]=await gL({subprocess:$,options:U,context:W,verboseInfo:G,fileDescriptors:X,originalStreams:Y,onInternalError:_,controller:V});V.abort(),_.resolve();let j=q.map((M,E)=>g4(M,U,E)),R=g4(I,U,"all"),v=sn({errorInfo:z,exitCode:Q,signal:K,stdio:j,all:R,ipcOutput:P,context:W,options:U,command:H,escapedCommand:Z,startTime:J});return Z0(v,G,U)},sn=({errorInfo:$,exitCode:U,signal:J,stdio:G,all:X,ipcOutput:Y,context:H,options:Z,command:W,escapedCommand:_,startTime:V})=>("error"in $)?uU({error:$.error,command:W,escapedCommand:_,timedOut:H.terminationReason==="timeout",isCanceled:H.terminationReason==="cancel"||H.terminationReason==="gracefulCancel",isGracefullyCanceled:H.terminationReason==="gracefulCancel",isMaxBuffer:$.error instanceof w4,isForcefullyTerminated:H.isForcefullyTerminated,exitCode:U,signal:J,stdio:G,all:X,ipcOutput:Y,options:Z,startTime:V,isSync:!1}):w8({command:W,escapedCommand:_,stdio:G,all:X,ipcOutput:Y,options:Z,startTime:V});var eL=F(()=>{C8();OW();oW();Z6();v_();mU();S8();fj();dj();pU();UL();X8();_L();OL();l_();bL();oL();aL()});var Z7=($,U)=>{let J=Object.fromEntries(Object.entries(U).map(([G,X])=>[G,en(G,$[G],X)]));return{...$,...J}},en=($,U,J)=>{if($i.has($)&&Y$(U)&&Y$(J))return{...U,...J};return J},$i;var $R=F(()=>{x4();$i=new Set(["env",...qW])});var V6=($,U,J,G)=>{let X=(H,Z,W)=>V6(H,Z,J,W),Y=(...H)=>Ui({mapArguments:$,deepOptions:J,boundOptions:U,setBoundExeca:G,createNested:X},...H);if(G!==void 0)G(Y,X,U);return Y},Ui=({mapArguments:$,deepOptions:U={},boundOptions:J={},setBoundExeca:G,createNested:X},Y,...H)=>{if(Y$(Y))return X($,Z7(J,Y),G);let{file:Z,commandArguments:W,options:_,isSync:V}=Xi({mapArguments:$,firstArgument:Y,nextArguments:H,deepOptions:U,boundOptions:J});return V?vj(Z,W,_):sL(Z,W,_,X)},Xi=({mapArguments:$,firstArgument:U,nextArguments:J,deepOptions:G,boundOptions:X})=>{let Y=UI(U)?XI(U,J):[U,...J],[H,Z,W]=SJ(...Y),_=Z7(Z7(G,X),W),{file:V=H,commandArguments:z=Z,options:Q=_,isSync:K=!1}=$({file:H,commandArguments:Z,options:_});return{file:V,commandArguments:z,options:Q,isSync:K}};var UR=F(()=>{zW();JI();Tj();eL();$R()});var XR=({file:$,commandArguments:U})=>GR($,U),JR=({file:$,commandArguments:U})=>({...GR($,U),isSync:!0}),GR=($,U)=>{if(U.length>0)throw TypeError(`The command and its arguments must be passed as a single string: ${$} ${U}.`);let[J,...G]=Ji($);return{file:J,commandArguments:G}},Ji=($)=>{if(typeof $!=="string")throw TypeError(`The command must be a string: ${String($)}.`);let U=$.trim();if(U==="")return[];let J=[];for(let G of U.split(Gi)){let X=J.at(-1);if(X&&X.endsWith("\\"))J[J.length-1]=`${X.slice(0,-1)} ${G}`;else J.push(G)}return J},Gi;var YR=F(()=>{Gi=/ +/g});var HR=($,U,J)=>{$.sync=U(Yi,J),$.s=$.sync},ZR=({options:$})=>WR($),Yi=({options:$})=>({...WR($),isSync:!0}),WR=($)=>({options:{...Hi($),...$}}),Hi=({input:$,inputFile:U,stdio:J})=>$===void 0&&U===void 0&&J===void 0?{stdin:"inherit"}:{},_R;var VR=F(()=>{_R={preferLocal:!0}});var zR,$3$,U3$,X3$,J3$,G3$,Y3$,H3$,Z3$,W3$;var QR=F(()=>{UR();YR();lW();VR();v_();zR=V6(()=>({})),$3$=V6(()=>({isSync:!0})),U3$=V6(XR),X3$=V6(JR),J3$=V6(RP),G3$=V6(ZR,{},_R,HR),{sendMessage:Y3$,getOneMessage:H3$,getEachMessage:Z3$,getCancelSignal:W3$}=bj()});import{isatty as Zi}from"node:tty";function WV($,U){if($==="error")return"error";if($==="timeout"||$==="cancelled")return"warning";if(U!==null&&U!==0)return"warning";return"info"}function Wi($,U){if(U==="replace")return $;let J={};for(let[G,X]of Object.entries(dq()))if(X!==void 0)J[G]=X;return{...J,...$}}class _7{config;constructor($={}){this.config=$}async run($){return this.trace("process.run",()=>this.runUntraced($))}async runUntraced($){let U=$.args??[],J=Di($.timeout,this.config.defaultTimeout),G=Ki($.killGraceMs),X=process.platform!=="win32"&&(typeof J==="number"||$.signal!==void 0),Y=_i({cwd:$.cwd??this.config.paths?.cwd,env:$.env,timeout:typeof J==="number"?J:void 0,maxOutput:$.maxOutput??this.config.defaultMaxOutput,rejectOnError:$.rejectOnError??!1,outputPolicy:this.config.output,forceBuffered:$.forceBuffered??!1,signal:$.signal,groupOwned:X}),H=Date.now(),Z=new Date(H).toISOString(),W=this.beginRegistry($.command,U,{label:$.label,source:$.source??"one-shot",teamId:$.teamId,agentId:$.agentId,startedAt:Z});this.emitProcessEvent("process.started",{command:$.command,args:U,exitCode:null,durationMs:0,reason:"exit",timestamp:Z,severity:"info",...$.label!==void 0?{label:$.label}:{}});let _;try{let V=zR($.command,U,Y);if(X&&V.pid!==void 0)_=qi({pid:V.pid,deadlineMs:typeof J==="number"?J:void 0,signal:$.signal,graceMs:G});if(V.pid!==void 0){if(this.config.registry?.update(W,{pid:V.pid}),$.onSpawn!==void 0)try{$.onSpawn(V.pid)}catch{}}let z=()=>_?.stop();qR(V.stdout,"stdout",$.onOutput),qR(V.stderr,"stderr",$.onOutput);let Q=await V.finally(z),K=_!==void 0?await _.finish():void 0,q={command:$.command,args:U,exitCode:Q.exitCode??null,stdout:oU(Q.stdout),stderr:oU(Q.stderr),...Q.signalDescription!==void 0?{signal:Q.signalDescription}:{},durationMs:Q.durationMs,outcome:K??(Q.signalDescription!==void 0?"signal":"exit")};return this.completeRegistry(W,q.exitCode),this.emitExitedFromResult($,q,Q),q}catch(V){let z=V,Q=_!==void 0?await _.finish():void 0,K={command:$.command,args:U,exitCode:z.exitCode??null,stdout:oU(z.stdout),stderr:oU(z.stderr),...z.signalDescription!==void 0?{signal:z.signalDescription}:z.signal!==void 0?{signal:z.signal}:{},durationMs:z.durationMs??Date.now()-H,outcome:Q??Ii(z)};if(this.completeRegistry(W,K.exitCode),this.emitExitedFromResult($,K,V,V),$.rejectOnError)throw V;return K}}runStreaming($){let U=$.args??[];this.config.tracer?.traceAsync("process.runStreaming",async()=>{return}).catch(()=>{return});let J=Date.now(),G=new Date(J).toISOString(),X=this.beginRegistry($.command,U,{label:$.label,source:$.source??"other",teamId:$.teamId,agentId:$.agentId,startedAt:G});try{this.emitProcessEvent("process.started",{command:$.command,args:U,exitCode:null,durationMs:0,reason:"exit",timestamp:G,severity:"info",...$.label!==void 0?{label:$.label}:{}});let Y=Bun.spawn({cmd:[$.command,...U],stdin:"pipe",stdout:"pipe",stderr:"pipe",...$.cwd!==void 0?{cwd:$.cwd}:{},...$.env!==void 0?{env:Wi($.env,$.envMode)}:{}}),H=new OR(Y);if(H.pid!==null)this.config.registry?.update(X,{pid:H.pid});return new PR(H,this.config.events,{command:$.command,args:U,startedAt:J,registry:this.config.registry,registryId:X,...$.label!==void 0?{label:$.label}:{}})}catch(Y){throw this.completeRegistry(X,null),this.emitProcessEvent("process.exited",{command:$.command,args:U,exitCode:null,durationMs:0,reason:"error",timestamp:new Date().toISOString(),severity:WV("error",null),...$.label!==void 0?{label:$.label}:{},error:BR(Y)}),Y}}async trace($,U){if(this.config.tracer===void 0)return await U();return await this.config.tracer.traceAsync($,async()=>await U())}beginRegistry($,U,J){let G=this.config.registry;if(!G)return"";return G.begin({command:$,args:U,source:J.source,startedAt:J.startedAt,...J.label!==void 0?{label:J.label}:{},...J.teamId!==void 0?{teamId:J.teamId}:{},...J.agentId!==void 0?{agentId:J.agentId}:{}})}completeRegistry($,U,J){if(!$||!this.config.registry)return;this.config.registry.complete($,{exitCode:U,...J!==void 0?{pid:J}:{}})}emitExitedFromResult($,U,J,G){let X=U.outcome??(Bi(J)?"timeout":U.signal!==void 0?"signal":G?"error":"exit");this.emitProcessEvent("process.exited",{command:U.command,args:U.args,exitCode:U.exitCode,...U.signal!==void 0?{signal:U.signal}:{},durationMs:U.durationMs,reason:X,timestamp:new Date().toISOString(),severity:WV(X,U.exitCode),...$.label!==void 0?{label:$.label}:{},...G!==void 0?{error:BR(G)}:{}})}emitProcessEvent($,U){this.config.events?.emit($,U)}}class PR{inner;killedWith;exited;constructor($,U,J){this.inner=$,this.exited=$.exited.then((G)=>{if(J.registry&&J.registryId)J.registry.complete(J.registryId,{exitCode:G,...$.pid!==null?{pid:$.pid}:{}});return U?.emit("process.exited",{command:J.command,args:J.args,exitCode:G,...this.killedWith!==void 0?{signal:String(this.killedWith)}:{},durationMs:Date.now()-J.startedAt,reason:this.killedWith!==void 0?"signal":"exit",timestamp:new Date().toISOString(),severity:WV(this.killedWith!==void 0?"signal":"exit",G),...J.label!==void 0?{label:J.label}:{}}),G})}get pid(){return this.inner.pid}get stdout(){return this.inner.stdout}get stderr(){return this.inner.stderr}writeStdin($){this.inner.writeStdin($)}endStdin(){this.inner.endStdin()}kill($){this.killedWith=$,this.inner.kill($)}}class OR{subprocess;writer;constructor($){this.subprocess=$,this.writer=$.stdin}get pid(){return this.subprocess.pid??null}get stdout(){return IR(this.subprocess.stdout)?this.subprocess.stdout:null}get stderr(){return IR(this.subprocess.stderr)?this.subprocess.stderr:null}get exited(){return this.subprocess.exited}writeStdin($){this.writer.write($),this.writer.flush?.()}endStdin(){this.writer.end?.()}kill($){this.subprocess.kill($)}}function _i($){let U=$.forceBuffered?"buffered":$.outputPolicy?.mode??"buffered",J=U==="stream"&&($.outputPolicy?.mode==="stream"?$.outputPolicy.isTTY??process.stdout.isTTY??Zi(1):!1);return{reject:$.rejectOnError,stdin:"ignore",stripFinalNewline:!0,...U==="pipe"?{stdout:"pipe",stderr:"pipe"}:J?{stdout:["inherit","pipe"],stderr:["inherit","pipe"]}:{all:!0},...$.cwd!==void 0?{cwd:$.cwd}:{},...$.env!==void 0?{env:$.env}:{},...$.timeout!==void 0&&!$.groupOwned?{timeout:$.timeout}:{},...$.maxOutput!==void 0?{maxBuffer:$.maxOutput}:{},...$.groupOwned?{detached:!0}:{},...$.signal!==void 0&&!$.groupOwned?{cancelSignal:$.signal}:{}}}function Di($,U){if($===null)return null;let J=$===void 0?U:$;if(J===void 0||J===null)return J;if(!Number.isInteger(J)||J<=0||J>W7)throw TypeError(`Process timeout must be a positive integer within the native timer range (1-${W7} ms), got ${String(J)}`);return J}function Ki($){if($===void 0)return Vi;if(!Number.isInteger($)||$<0||$>W7)throw TypeError(`Process killGraceMs must be a non-negative integer within the native timer range (0-${W7} ms), got ${String($)}`);return $}function Fi($){try{return process.kill(-$,0),!0}catch(U){return U.code==="EPERM"}}function DR($,U){try{return process.kill(-$,U),!0}catch{return!1}}async function KR($,U){let J=Date.now()+U;while(Fi($)){if(Date.now()>=J)return!1;await new Promise((G)=>setTimeout(G,zi))}return!0}async function FR($,U){if(!DR($,"SIGTERM"))return!1;if(await KR($,U))return!0;return DR($,"SIGKILL"),await KR($,Qi),!0}function qi($){let{pid:U,graceMs:J}=$,G,X,Y,H=(W)=>{if(G!==void 0)return;G=W,X=FR(U,J)};if($.deadlineMs!==void 0)Y=setTimeout(()=>H("timeout"),$.deadlineMs);let Z=()=>H("cancelled");if($.signal!==void 0)if($.signal.aborted)Z();else $.signal.addEventListener("abort",Z,{once:!0});return{finish:async()=>{if(G===void 0){await FR(U,J);return}return await X?G:void 0},stop:()=>{if(Y!==void 0)clearTimeout(Y);$.signal?.removeEventListener("abort",Z)}}}function Ii($){if($.timedOut===!0)return"timeout";if($.isCanceled===!0)return"cancelled";if($.isTerminated===!0||$.signalDescription!==void 0||$.signal!==void 0)return"signal";return"error"}function qR($,U,J){if(!$||!J)return;$.on("data",(G)=>{try{J({stream:U,chunk:oU(G),timestamp:new Date().toISOString()})}catch{}})}function oU($){if(typeof $==="string")return $;if($ instanceof Uint8Array)return new TextDecoder().decode($);if(Array.isArray($))return $.map(String).join("");return""}function IR($){return $ instanceof ReadableStream}function Bi($){return typeof $==="object"&&$!==null&&"timedOut"in $&&$.timedOut===!0}function BR($){return $ instanceof Error?$.message:String($)}var W7=2147483647,Vi=5000,zi=25,Qi=2000;var jR=F(()=>{QR();HW()});var LR=()=>{};var F3$;var RR=F(()=>{F3$=globalThis.process?.platform==="win32"?"\\":"/"});var MR=F(()=>{EU()});var AR=()=>{};var NR=F(()=>{iq();jR();HW();LR();RR();MR();AR()});function u($,U){if(!$||typeof $!=="object")return!1;if($ instanceof U)return!0;if(!Object.prototype.hasOwnProperty.call(U,T))throw Error(`Class "${U.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let J=Object.getPrototypeOf($).constructor;if(J)while(J){if(T in J&&J[T]===U[T])return!0;J=Object.getPrototypeOf(J)}return!1}var T;var t=F(()=>{T=Symbol.for("drizzle:entityKind")});var P$;var F6=F(()=>{t();P$=class P${constructor($,U){this.table=$,this.config=U,this.name=U.name,this.keyAsName=U.keyAsName,this.notNull=U.notNull,this.default=U.default,this.defaultFn=U.defaultFn,this.onUpdateFn=U.onUpdateFn,this.hasDefault=U.hasDefault,this.primary=U.primaryKey,this.isUnique=U.isUnique,this.uniqueName=U.uniqueName,this.uniqueType=U.uniqueType,this.dataType=U.dataType,this.columnType=U.columnType,this.generated=U.generated,this.generatedIdentity=U.generatedIdentity}static[T]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue($){return $}mapToDriverValue($){return $}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}});var RV;var MV=F(()=>{t();RV=class RV{static[T]="ColumnBuilder";config;constructor($,U,J){this.config={name:$,keyAsName:$==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:U,columnType:J,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default($){return this.config.default=$,this.config.hasDefault=!0,this}$defaultFn($){return this.config.defaultFn=$,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn($){return this.config.onUpdateFn=$,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName($){if(this.config.name!=="")return;this.config.name=$}}});var Y4;var sU=F(()=>{Y4=Symbol.for("drizzle:Name")});function KM($,...U){return $(...U)}var FM=()=>{};function qM($,U){return`${$[Y4]}_${U.join("_")}_unique`}var IM=F(()=>{sU()});var eU,Mr;var BM=F(()=>{F6();t();IM();eU=class eU extends P${constructor($,U){if(!U.uniqueName)U.uniqueName=qM($,[U.name]);super($,U);this.table=$}static[T]="PgColumn"};Mr=class Mr extends eU{static[T]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op($){return this.indexConfig.opClass=$,this}}});function OM($){return!!$&&typeof $==="function"&&PM in $&&$[PM]===!0}var Ar,PM,Nr;var jM=F(()=>{t();BM();Ar=class Ar extends eU{static[T]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor($,U){super($,U);this.enum=U.enum}getSQLType(){return this.enum.enumName}};PM=Symbol.for("drizzle:isPgEnum");Nr=class Nr extends eU{static[T]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor($,U){super($,U);this.enum=U.enum}getSQLType(){return this.enum.enumName}}});var T$;var q6=F(()=>{t();T$=class T${static[T]="Subquery";constructor($,U,J,G=!1,X=[]){this._={brand:"Subquery",sql:$,selectedFields:U,alias:J,isWith:G,usedTables:X}}}});var LM="0.44.7";var RM=()=>{};var AV,NV,MM;var AM=F(()=>{FM();RM();MM={startActiveSpan($,U){if(!AV)return U();if(!NV)NV=AV.trace.getTracer("drizzle-orm",LM);return KM((J,G)=>G.startActiveSpan($,(X)=>{try{return U(X)}catch(Y){throw X.setStatus({code:J.SpanStatusCode.ERROR,message:Y instanceof Error?Y.message:"Unknown error"}),Y}finally{X.end()}}),AV,NV)}}});var H$;var I6=F(()=>{H$=Symbol.for("drizzle:ViewBaseConfig")});function kV($){return typeof $==="object"&&$!==null&&EM in $}var vV,NM,vM,TV,EV,$2,TM,EM,d;var y4=F(()=>{t();sU();vV=Symbol.for("drizzle:Schema"),NM=Symbol.for("drizzle:Columns"),vM=Symbol.for("drizzle:ExtraConfigColumns"),TV=Symbol.for("drizzle:OriginalName"),EV=Symbol.for("drizzle:BaseName"),$2=Symbol.for("drizzle:IsAlias"),TM=Symbol.for("drizzle:ExtraConfigBuilder"),EM=Symbol.for("drizzle:IsDrizzleTable");d=class d{static[T]="Table";static Symbol={Name:Y4,Schema:vV,OriginalName:TV,Columns:NM,ExtraConfigColumns:vM,BaseName:EV,IsAlias:$2,ExtraConfigBuilder:TM};[Y4];[TV];[vV];[NM];[vM];[EV];[$2]=!1;[EM]=!0;[TM]=void 0;constructor($,U,J){this[Y4]=this[TV]=$,this[vV]=U,this[EV]=J}}});function vr($){return $!==null&&$!==void 0&&typeof $.getSQL==="function"}function Tr($){let U={sql:"",params:[]};for(let J of $)if(U.sql+=J.sql,U.params.push(...J.params),J.typings?.length){if(!U.typings)U.typings=[];U.typings.push(...J.typings)}return U}function q7($,...U){let J=[];if(U.length>0||$.length>0&&$[0]!=="")J.push(new t$($[0]));for(let[G,X]of U.entries())J.push(X,new t$($[G+1]));return new i(J)}function wM($){return typeof $==="object"&&$!==null&&xM in $}var t$,i,F7,kM,CM,D_$,B7,I7,xM,j4;var B6=F(()=>{t();jM();q6();AM();I6();F6();y4();t$=class t${static[T]="StringChunk";value;constructor($){this.value=Array.isArray($)?$:[$]}getSQL(){return new i([this])}};i=class i{constructor($){this.queryChunks=$;for(let U of $)if(u(U,d)){let J=U[d.Symbol.Schema];this.usedTables.push(J===void 0?U[d.Symbol.Name]:J+"."+U[d.Symbol.Name])}}static[T]="SQL";decoder=kM;shouldInlineParams=!1;usedTables=[];append($){return this.queryChunks.push(...$.queryChunks),this}toQuery($){return MM.startActiveSpan("drizzle.buildSQL",(U)=>{let J=this.buildQueryFromSourceParams(this.queryChunks,$);return U?.setAttributes({"drizzle.query.text":J.sql,"drizzle.query.params":JSON.stringify(J.params)}),J})}buildQueryFromSourceParams($,U){let J=Object.assign({},U,{inlineParams:U.inlineParams||this.shouldInlineParams,paramStartIndex:U.paramStartIndex||{value:0}}),{casing:G,escapeName:X,escapeParam:Y,prepareTyping:H,inlineParams:Z,paramStartIndex:W}=J;return Tr($.map((_)=>{if(u(_,t$))return{sql:_.value.join(""),params:[]};if(u(_,F7))return{sql:X(_.value),params:[]};if(_===void 0)return{sql:"",params:[]};if(Array.isArray(_)){let V=[new t$("(")];for(let[z,Q]of _.entries())if(V.push(Q),z<_.length-1)V.push(new t$(", "));return V.push(new t$(")")),this.buildQueryFromSourceParams(V,J)}if(u(_,i))return this.buildQueryFromSourceParams(_.queryChunks,{...J,inlineParams:Z||_.shouldInlineParams});if(u(_,d)){let V=_[d.Symbol.Schema],z=_[d.Symbol.Name];return{sql:V===void 0||_[$2]?X(z):X(V)+"."+X(z),params:[]}}if(u(_,P$)){let V=G.getColumnCasing(_);if(U.invokeSource==="indexes")return{sql:X(V),params:[]};let z=_.table[d.Symbol.Schema];return{sql:_.table[$2]||z===void 0?X(_.table[d.Symbol.Name])+"."+X(V):X(z)+"."+X(_.table[d.Symbol.Name])+"."+X(V),params:[]}}if(u(_,j4)){let V=_[H$].schema,z=_[H$].name;return{sql:V===void 0||_[H$].isAlias?X(z):X(V)+"."+X(z),params:[]}}if(u(_,B7)){if(u(_.value,I7))return{sql:Y(W.value++,_),params:[_],typings:["none"]};let V=_.value===null?null:_.encoder.mapToDriverValue(_.value);if(u(V,i))return this.buildQueryFromSourceParams([V],J);if(Z)return{sql:this.mapInlineParam(V,J),params:[]};let z=["none"];if(H)z=[H(_.encoder)];return{sql:Y(W.value++,V),params:[V],typings:z}}if(u(_,I7))return{sql:Y(W.value++,_),params:[_],typings:["none"]};if(u(_,i.Aliased)&&_.fieldAlias!==void 0)return{sql:X(_.fieldAlias),params:[]};if(u(_,T$)){if(_._.isWith)return{sql:X(_._.alias),params:[]};return this.buildQueryFromSourceParams([new t$("("),_._.sql,new t$(") "),new F7(_._.alias)],J)}if(OM(_)){if(_.schema)return{sql:X(_.schema)+"."+X(_.enumName),params:[]};return{sql:X(_.enumName),params:[]}}if(vr(_)){if(_.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([_.getSQL()],J);return this.buildQueryFromSourceParams([new t$("("),_.getSQL(),new t$(")")],J)}if(Z)return{sql:this.mapInlineParam(_,J),params:[]};return{sql:Y(W.value++,_),params:[_],typings:["none"]}}))}mapInlineParam($,{escapeString:U}){if($===null)return"null";if(typeof $==="number"||typeof $==="boolean")return $.toString();if(typeof $==="string")return U($);if(typeof $==="object"){let J=$.toString();if(J==="[object Object]")return U(JSON.stringify($));return U(J)}throw Error("Unexpected param value: "+$)}getSQL(){return this}as($){if($===void 0)return this;return new i.Aliased(this,$)}mapWith($){return this.decoder=typeof $==="function"?{mapFromDriverValue:$}:$,this}inlineParams(){return this.shouldInlineParams=!0,this}if($){return $?this:void 0}};F7=class F7{constructor($){this.value=$}static[T]="Name";brand;getSQL(){return new i([this])}};kM={mapFromDriverValue:($)=>$},CM={mapToDriverValue:($)=>$},D_$={...kM,...CM};B7=class B7{constructor($,U=CM){this.value=$,this.encoder=U}static[T]="Param";brand;getSQL(){return new i([this])}};(($)=>{function U(){return new i([])}$.empty=U;function J(W){return new i(W)}$.fromList=J;function G(W){return new i([new t$(W)])}$.raw=G;function X(W,_){let V=[];for(let[z,Q]of W.entries()){if(z>0&&_!==void 0)V.push(_);V.push(Q)}return new i(V)}$.join=X;function Y(W){return new F7(W)}$.identifier=Y;function H(W){return new I7(W)}$.placeholder=H;function Z(W,_){return new B7(W,_)}$.param=Z})(q7||(q7={}));(($)=>{class U{constructor(J,G){this.sql=J,this.fieldAlias=G}static[T]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new U(this.sql,this.fieldAlias)}}$.Aliased=U})(i||(i={}));I7=class I7{constructor($){this.name=$}static[T]="Placeholder";getSQL(){return new i([this])}};xM=Symbol.for("drizzle:IsDrizzleView");j4=class j4{static[T]="View";[H$];[xM]=!0;constructor({name:$,schema:U,selectedFields:J,query:G}){this[H$]={name:$,originalName:$,schema:U,selectedFields:J,query:G,isExisting:!G,isAlias:!1}}getSQL(){return new i([this])}};P$.prototype.getSQL=function(){return new i([this])};d.prototype.getSQL=function(){return new i([this])};T$.prototype.getSQL=function(){return new i([this])}});var U2,CV;var xV=F(()=>{F6();t();y4();I6();U2=class U2{constructor($){this.table=$}static[T]="ColumnAliasProxyHandler";get($,U){if(U==="table")return this.table;return $[U]}};CV=class CV{constructor($,U){this.alias=$,this.replaceOriginalName=U}static[T]="TableAliasProxyHandler";get($,U){if(U===d.Symbol.IsAlias)return!0;if(U===d.Symbol.Name)return this.alias;if(this.replaceOriginalName&&U===d.Symbol.OriginalName)return this.alias;if(U===H$)return{...$[H$],name:this.alias,isAlias:!0};if(U===d.Symbol.Columns){let G=$[d.Symbol.Columns];if(!G)return G;let X={};return Object.keys(G).map((Y)=>{X[Y]=new Proxy(G[Y],new U2(new Proxy($,this)))}),X}let J=$[U];if(u(J,P$))return new Proxy(J,new U2(new Proxy($,this)));return J}}});var SM=()=>{};var gM=()=>{};var X2;var P7=F(()=>{t();X2=class X2{static[T]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch($){return this.then(void 0,$)}finally($){return this.then((U)=>{return $?.(),U},(U)=>{throw $?.(),U})}then($,U){return this.execute().then($,U)}}});function z0($,U){return Object.entries($).reduce((J,[G,X])=>{if(typeof G!=="string")return J;let Y=U?[...U,G]:[G];if(u(X,P$)||u(X,i)||u(X,i.Aliased))J.push({path:Y,field:X});else if(u(X,d))J.push(...z0(X[d.Symbol.Columns],Y));else J.push(...z0(X,Y));return J},[])}function wV($,U){let J=Object.keys($),G=Object.keys(U);if(J.length!==G.length)return!1;for(let[X,Y]of J.entries())if(Y!==G[X])return!1;return!0}function bM($,U){for(let J of U)for(let G of Object.getOwnPropertyNames(J.prototype)){if(G==="constructor")continue;Object.defineProperty($.prototype,G,Object.getOwnPropertyDescriptor(J.prototype,G)||Object.create(null))}}function SV($){return $[d.Symbol.Columns]}function yM($){return $[H$].selectedFields}function J2($){return u($,T$)?$._.alias:u($,j4)?$[H$].name:u($,i)?void 0:$[d.Symbol.IsAlias]?$[d.Symbol.Name]:$[d.Symbol.BaseName]}function L4($,U){return{name:typeof $==="string"&&$.length>0?$:"",config:typeof $==="object"?$:U}}var gV;var h4=F(()=>{F6();t();B6();q6();y4();I6();gV=typeof TextDecoder>"u"?null:new TextDecoder});var hM=()=>{};var fM=()=>{};var uM=F(()=>{hM();fM()});var mM=()=>{};var pM=()=>{};var cM=()=>{};var dM=F(()=>{pM();cM()});var lM=F(()=>{uM();dM();B6()});var nM=F(()=>{xV();MV();F6();t();SM();gM();P7();mM();lM();q6();y4();h4();I6()});var iM=()=>{};var bV,rM;var yV=F(()=>{t();bV=class bV{constructor($,U){this.name=$,this.value=U}static[T]="SQLiteCheckBuilder";brand;build($){return new rM($,this)}};rM=class rM{constructor($,U){this.table=$,this.name=U.name,this.value=U.value}static[T]="SQLiteCheck";name;value}});var G2,oM;var O7=F(()=>{t();sU();G2=class G2{static[T]="SQLiteForeignKeyBuilder";reference;_onUpdate;_onDelete;constructor($,U){if(this.reference=()=>{let{name:J,columns:G,foreignColumns:X}=$();return{name:J,columns:G,foreignTable:X[0].table,foreignColumns:X}},U)this._onUpdate=U.onUpdate,this._onDelete=U.onDelete}onUpdate($){return this._onUpdate=$,this}onDelete($){return this._onDelete=$,this}build($){return new oM($,this)}};oM=class oM{constructor($,U){this.table=$,this.reference=U.reference,this.onUpdate=U._onUpdate,this.onDelete=U._onDelete}static[T]="SQLiteForeignKey";reference;onUpdate;onDelete;getName(){let{name:$,columns:U,foreignColumns:J}=this.reference(),G=U.map((H)=>H.name),X=J.map((H)=>H.name),Y=[this.table[Y4],...G,J[0].table[Y4],...X];return $??`${Y.join("_")}_fk`}}});function hV($,U){return`${$[Y4]}_${U.join("_")}_unique`}var fV,tM;var j7=F(()=>{t();sU();fV=class fV{constructor($,U){this.name=U,this.columns=$}static[T]="SQLiteUniqueConstraintBuilder";columns;build($){return new tM($,this.columns,this.name)}};tM=class tM{constructor($,U,J){this.table=$,this.columns=U,this.name=J??hV(this.table,this.columns.map((G)=>G.name))}static[T]="SQLiteUniqueConstraint";columns;name;getName(){return this.name}}});var q$,I$;var P6=F(()=>{MV();F6();t();O7();j7();q$=class q$ extends RV{static[T]="SQLiteColumnBuilder";foreignKeyConfigs=[];references($,U={}){return this.foreignKeyConfigs.push({ref:$,actions:U}),this}unique($){return this.config.isUnique=!0,this.config.uniqueName=$,this}generatedAlwaysAs($,U){return this.config.generated={as:$,type:"always",mode:U?.mode??"virtual"},this}buildForeignKeys($,U){return this.foreignKeyConfigs.map(({ref:J,actions:G})=>{return((X,Y)=>{let H=new G2(()=>{let Z=X();return{columns:[$],foreignColumns:[Z]}});if(Y.onUpdate)H.onUpdate(Y.onUpdate);if(Y.onDelete)H.onDelete(Y.onDelete);return H.build(U)})(J,G)})}};I$=class I$ extends P${constructor($,U){if(!U.uniqueName)U.uniqueName=hV($,[U.name]);super($,U);this.table=$}static[T]="SQLiteColumn"}});function JA($,U){let{name:J,config:G}=L4($,U);if(G?.mode==="json")return new eM(J);if(G?.mode==="bigint")return new aM(J);return new UA(J)}var aM,sM,eM,$A,UA,XA;var uV=F(()=>{t();h4();P6();aM=class aM extends q${static[T]="SQLiteBigIntBuilder";constructor($){super($,"bigint","SQLiteBigInt")}build($){return new sM($,this.config)}};sM=class sM extends I${static[T]="SQLiteBigInt";getSQLType(){return"blob"}mapFromDriverValue($){if(typeof Buffer<"u"&&Buffer.from){let U=Buffer.isBuffer($)?$:$ instanceof ArrayBuffer?Buffer.from($):$.buffer?Buffer.from($.buffer,$.byteOffset,$.byteLength):Buffer.from($);return BigInt(U.toString("utf8"))}return BigInt(gV.decode($))}mapToDriverValue($){return Buffer.from($.toString())}};eM=class eM extends q${static[T]="SQLiteBlobJsonBuilder";constructor($){super($,"json","SQLiteBlobJson")}build($){return new $A($,this.config)}};$A=class $A extends I${static[T]="SQLiteBlobJson";getSQLType(){return"blob"}mapFromDriverValue($){if(typeof Buffer<"u"&&Buffer.from){let U=Buffer.isBuffer($)?$:$ instanceof ArrayBuffer?Buffer.from($):$.buffer?Buffer.from($.buffer,$.byteOffset,$.byteLength):Buffer.from($);return JSON.parse(U.toString("utf8"))}return JSON.parse(gV.decode($))}mapToDriverValue($){return Buffer.from(JSON.stringify($))}};UA=class UA extends q${static[T]="SQLiteBlobBufferBuilder";constructor($){super($,"buffer","SQLiteBlobBuffer")}build($){return new XA($,this.config)}};XA=class XA extends I${static[T]="SQLiteBlobBuffer";mapFromDriverValue($){if(Buffer.isBuffer($))return $;return Buffer.from($)}getSQLType(){return"blob"}}});function HA($){return(U,J)=>{let{name:G,config:X}=L4(U,J);return new GA(G,X,$)}}var GA,YA;var mV=F(()=>{t();h4();P6();GA=class GA extends q${static[T]="SQLiteCustomColumnBuilder";constructor($,U,J){super($,"custom","SQLiteCustomColumn");this.config.fieldConfig=U,this.config.customTypeParams=J}build($){return new YA($,this.config)}};YA=class YA extends I${static[T]="SQLiteCustomColumn";sqlName;mapTo;mapFrom;constructor($,U){super($,U);this.sqlName=U.customTypeParams.dataType(U.fieldConfig),this.mapTo=U.customTypeParams.toDriver,this.mapFrom=U.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue($){return typeof this.mapFrom==="function"?this.mapFrom($):$}mapToDriverValue($){return typeof this.mapTo==="function"?this.mapTo($):$}}});function w$($,U){let{name:J,config:G}=L4($,U);if(G?.mode==="timestamp"||G?.mode==="timestamp_ms")return new _A(J,G.mode);if(G?.mode==="boolean")return new zA(J,G.mode);return new ZA(J)}var L7,R7,ZA,WA,_A,VA,zA,QA;var pV=F(()=>{t();B6();h4();P6();L7=class L7 extends q${static[T]="SQLiteBaseIntegerBuilder";constructor($,U,J){super($,U,J);this.config.autoIncrement=!1}primaryKey($){if($?.autoIncrement)this.config.autoIncrement=!0;return this.config.hasDefault=!0,super.primaryKey()}};R7=class R7 extends I${static[T]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};ZA=class ZA extends L7{static[T]="SQLiteIntegerBuilder";constructor($){super($,"number","SQLiteInteger")}build($){return new WA($,this.config)}};WA=class WA extends R7{static[T]="SQLiteInteger"};_A=class _A extends L7{static[T]="SQLiteTimestampBuilder";constructor($,U){super($,"date","SQLiteTimestamp");this.config.mode=U}defaultNow(){return this.default(q7`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build($){return new VA($,this.config)}};VA=class VA extends R7{static[T]="SQLiteTimestamp";mode=this.config.mode;mapFromDriverValue($){if(this.config.mode==="timestamp")return new Date($*1000);return new Date($)}mapToDriverValue($){let U=$.getTime();if(this.config.mode==="timestamp")return Math.floor(U/1000);return U}};zA=class zA extends L7{static[T]="SQLiteBooleanBuilder";constructor($,U){super($,"boolean","SQLiteBoolean");this.config.mode=U}build($){return new QA($,this.config)}};QA=class QA extends R7{static[T]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue($){return Number($)===1}mapToDriverValue($){return $?1:0}}});function PA($,U){let{name:J,config:G}=L4($,U),X=G?.mode;return X==="number"?new FA(J):X==="bigint"?new IA(J):new DA(J)}var DA,KA,FA,qA,IA,BA;var cV=F(()=>{t();h4();P6();DA=class DA extends q${static[T]="SQLiteNumericBuilder";constructor($){super($,"string","SQLiteNumeric")}build($){return new KA($,this.config)}};KA=class KA extends I${static[T]="SQLiteNumeric";mapFromDriverValue($){if(typeof $==="string")return $;return String($)}getSQLType(){return"numeric"}};FA=class FA extends q${static[T]="SQLiteNumericNumberBuilder";constructor($){super($,"number","SQLiteNumericNumber")}build($){return new qA($,this.config)}};qA=class qA extends I${static[T]="SQLiteNumericNumber";mapFromDriverValue($){if(typeof $==="number")return $;return Number($)}mapToDriverValue=String;getSQLType(){return"numeric"}};IA=class IA extends q${static[T]="SQLiteNumericBigIntBuilder";constructor($){super($,"bigint","SQLiteNumericBigInt")}build($){return new BA($,this.config)}};BA=class BA extends I${static[T]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}});function LA($){return new OA($??"")}var OA,jA;var dV=F(()=>{t();P6();OA=class OA extends q${static[T]="SQLiteRealBuilder";constructor($){super($,"number","SQLiteReal")}build($){return new jA($,this.config)}};jA=class jA extends I${static[T]="SQLiteReal";getSQLType(){return"real"}}});function f($,U={}){let{name:J,config:G}=L4($,U);if(G.mode==="json")return new AA(J);return new RA(J,G)}var RA,MA,AA,NA;var lV=F(()=>{t();h4();P6();RA=class RA extends q${static[T]="SQLiteTextBuilder";constructor($,U){super($,"string","SQLiteText");this.config.enumValues=U.enum,this.config.length=U.length}build($){return new MA($,this.config)}};MA=class MA extends I${static[T]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor($,U){super($,U)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}};AA=class AA extends q${static[T]="SQLiteTextJsonBuilder";constructor($){super($,"json","SQLiteTextJson")}build($){return new NA($,this.config)}};NA=class NA extends I${static[T]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue($){return JSON.parse($)}mapToDriverValue($){return JSON.stringify($)}}});var vA=F(()=>{uV();P6();mV();pV();cV();dV();lV()});var S$;var nV=F(()=>{xV();F6();t();B6();q6();I6();S$=class S${static[T]="SelectionProxyHandler";config;constructor($){this.config={...$}}get($,U){if(U==="_")return{...$._,selectedFields:new Proxy($._.selectedFields,this)};if(U===H$)return{...$[H$],selectedFields:new Proxy($[H$].selectedFields,this)};if(typeof U==="symbol")return $[U];let G=(u($,T$)?$._.selectedFields:u($,j4)?$[H$].selectedFields:$)[U];if(u(G,i.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!G.isSelectionField)return G.sql;let X=G.clone();return X.isSelectionField=!0,X}if(u(G,i)){if(this.config.sqlBehavior==="sql")return G;throw Error(`You tried to reference "${U}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(u(G,P$)){if(this.config.alias)return new Proxy(G,new U2(new Proxy(G.table,new CV(this.config.alias,this.config.replaceOriginalName??!1))));return G}if(typeof G!=="object"||G===null)return G;return new Proxy(G,new S$(this.config))}}});function TA(){return{blob:JA,customType:HA,integer:w$,numeric:PA,real:LA,text:f}}var EA=F(()=>{uV();mV();pV();cV();dV();lV()});function Er($,U,J,G,X=$){let Y=new g$($,G,X),H=typeof U==="function"?U(TA()):U,Z=Object.fromEntries(Object.entries(H).map(([_,V])=>{let z=V;z.setName(_);let Q=z.build(Y);return Y[iV].push(...z.buildForeignKeys(Q,Y)),[_,Q]})),W=Object.assign(Y,Z);if(W[d.Symbol.Columns]=Z,W[d.Symbol.ExtraConfigColumns]=Z,J)W[g$.Symbol.ExtraConfigBuilder]=J;return W}var iV,g$,kA=($,U,J)=>{return Er($,U,J)};var Y2=F(()=>{t();y4();EA();iV=Symbol.for("drizzle:SQLiteInlineForeignKeys");g$=class g$ extends d{static[T]="SQLiteTable";static Symbol=Object.assign({},d.Symbol,{InlineForeignKeys:iV});[d.Symbol.Columns];[iV]=[];[d.Symbol.ExtraConfigBuilder]=void 0}});var rV,CA;var oV=F(()=>{t();rV=class rV{static[T]="SQLiteIndexBuilder";config;constructor($,U,J){this.config={name:$,columns:U,unique:J,where:void 0}}where($){return this.config.where=$,this}build($){return new CA(this.config,$)}};CA=class CA{static[T]="SQLiteIndex";config;constructor($,U){this.config={...$,table:U}}}});var tV,xA;var aV=F(()=>{t();Y2();tV=class tV{static[T]="SQLitePrimaryKeyBuilder";columns;name;constructor($,U){this.columns=$,this.name=U}build($){return new xA($,this.columns,this.name)}};xA=class xA{constructor($,U,J){this.table=$,this.columns=U,this.name=J}static[T]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[g$.Symbol.Name]}_${this.columns.map(($)=>$.name).join("_")}_pk`}}});function wA($){let U=Object.values($[g$.Symbol.Columns]),J=[],G=[],X=[],Y=[],H=Object.values($[g$.Symbol.InlineForeignKeys]),Z=$[d.Symbol.Name],W=$[g$.Symbol.ExtraConfigBuilder];if(W!==void 0){let _=W($[g$.Symbol.Columns]),V=Array.isArray(_)?_.flat(1):Object.values(_);for(let z of Object.values(V))if(u(z,rV))J.push(z.build($));else if(u(z,bV))G.push(z.build($));else if(u(z,fV))Y.push(z.build($));else if(u(z,tV))X.push(z.build($));else if(u(z,G2))H.push(z.build($))}return{columns:U,indexes:J,foreignKeys:H,checks:G,primaryKeys:X,uniqueConstraints:Y,name:Z}}function U1($){if(u($,g$))return[`${$[d.Symbol.BaseName]}`];if(u($,T$))return $._.usedTables??[];if(u($,i))return $.usedTables??[];return[]}var M7=F(()=>{t();B6();q6();y4();yV();O7();oV();aV();Y2();j7()});var SA=()=>{};var sV;var gA=F(()=>{t();B6();sV=class sV extends j4{static[T]="SQLiteViewBase"}});var bA=()=>{};var eV;var yA=F(()=>{t();eV=class eV{static[T]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}});function A7($,U){return(J,G,...X)=>{let Y=[G,...X].map((H)=>({type:$,isAll:U,rightSelect:H}));for(let H of Y)if(!wV(J.getSelectedFields(),H.rightSelect.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return J.addSetOperators(Y)}}var hA,fA,kr=()=>({union:Cr,unionAll:xr,intersect:wr,except:Sr}),Cr,xr,wr,Sr;var uA=F(()=>{t();yA();P7();nV();B6();q6();y4();h4();I6();M7();hA=class hA extends eV{static[T]="SQLiteSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:$,fields:U,isPartialSelect:J,session:G,dialect:X,withList:Y,distinct:H}){super();this.config={withList:Y,table:$,fields:{...U},distinct:H,setOperators:[]},this.isPartialSelect=J,this.session=G,this.dialect=X,this._={selectedFields:U,config:this.config},this.tableName=J2($),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let Z of U1($))this.usedTables.add(Z)}getUsedTables(){return[...this.usedTables]}createJoin($){return(U,J)=>{let G=this.tableName,X=J2(U);for(let Y of U1(U))this.usedTables.add(Y);if(typeof X==="string"&&this.config.joins?.some((Y)=>Y.alias===X))throw Error(`Alias "${X}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof G==="string")this.config.fields={[G]:this.config.fields};if(typeof X==="string"&&!u(U,i)){let Y=u(U,T$)?U._.selectedFields:u(U,j4)?U[H$].selectedFields:U[d.Symbol.Columns];this.config.fields[X]=Y}}if(typeof J==="function")J=J(new Proxy(this.config.fields,new S$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:J,table:U,joinType:$,alias:X}),typeof X==="string")switch($){case"left":{this.joinsNotNullableMap[X]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([Y])=>[Y,!1])),this.joinsNotNullableMap[X]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[X]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([Y])=>[Y,!1])),this.joinsNotNullableMap[X]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");crossJoin=this.createJoin("cross");createSetOperator($,U){return(J)=>{let G=typeof J==="function"?J(kr()):J;if(!wV(this.getSelectedFields(),G.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:$,isAll:U,rightSelect:G}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);except=this.createSetOperator("except",!1);addSetOperators($){return this.config.setOperators.push(...$),this}where($){if(typeof $==="function")$=$(new Proxy(this.config.fields,new S$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=$,this}having($){if(typeof $==="function")$=$(new Proxy(this.config.fields,new S$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=$,this}groupBy(...$){if(typeof $[0]==="function"){let U=$[0](new Proxy(this.config.fields,new S$({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(U)?U:[U]}else this.config.groupBy=$;return this}orderBy(...$){if(typeof $[0]==="function"){let U=$[0](new Proxy(this.config.fields,new S$({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),J=Array.isArray(U)?U:[U];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=J;else this.config.orderBy=J}else{let U=$;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=U;else this.config.orderBy=U}return this}limit($){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=$;else this.config.limit=$;return this}offset($){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=$;else this.config.offset=$;return this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:$,...U}=this.dialect.sqlToQuery(this.getSQL());return U}as($){let U=[];if(U.push(...U1(this.config.table)),this.config.joins)for(let J of this.config.joins)U.push(...U1(J.table));return new Proxy(new T$(this.getSQL(),this.config.fields,$,!1,[...new Set(U)]),new S$({alias:$,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new S$({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}};fA=class fA extends hA{static[T]="SQLiteSelect";_prepare($=!0){if(!this.session)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let U=z0(this.config.fields),J=this.session[$?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),U,"all",!0,void 0,{type:"select",tables:[...this.usedTables]},this.cacheConfig);return J.joinsNotNullableMap=this.joinsNotNullableMap,J}$withCache($){return this.cacheConfig=$===void 0?{config:{},enable:!0,autoInvalidate:!0}:$===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...$},this}prepare(){return this._prepare(!1)}run=($)=>{return this._prepare().run($)};all=($)=>{return this._prepare().all($)};get=($)=>{return this._prepare().get($)};values=($)=>{return this._prepare().values($)};async execute(){return this.all()}};bM(fA,[X2]);Cr=A7("union",!1),xr=A7("union",!0),wr=A7("intersect",!1),Sr=A7("except",!1)});var mA=()=>{};var pA=()=>{};var gr;var cA=F(()=>{t();P7();nV();Y2();q6();y4();h4();I6();M7();gA();gr=class gr extends X2{constructor($,U,J,G,X){super();this.session=J,this.dialect=G,this.config={set:U,table:$,withList:X,joins:[]}}static[T]="SQLiteUpdate";config;from($){return this.config.from=$,this}createJoin($){return(U,J)=>{let G=J2(U);if(typeof G==="string"&&this.config.joins.some((X)=>X.alias===G))throw Error(`Alias "${G}" is already used in this query`);if(typeof J==="function"){let X=this.config.from?u(U,g$)?U[d.Symbol.Columns]:u(U,T$)?U._.selectedFields:u(U,sV)?U[H$].selectedFields:void 0:void 0;J=J(new Proxy(this.config.table[d.Symbol.Columns],new S$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),X&&new Proxy(X,new S$({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}return this.config.joins.push({on:J,table:U,joinType:$,alias:G}),this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where($){return this.config.where=$,this}orderBy(...$){if(typeof $[0]==="function"){let U=$[0](new Proxy(this.config.table[d.Symbol.Columns],new S$({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),J=Array.isArray(U)?U:[U];this.config.orderBy=J}else{let U=$;this.config.orderBy=U}return this}limit($){return this.config.limit=$,this}returning($=this.config.table[g$.Symbol.Columns]){return this.config.returning=z0($),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:$,...U}=this.dialect.sqlToQuery(this.getSQL());return U}_prepare($=!0){return this.session[$?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables:U1(this.config.table)})}prepare(){return this._prepare(!1)}run=($)=>{return this._prepare().run($)};all=($)=>{return this._prepare().all($)};get=($)=>{return this._prepare().get($)};values=($)=>{return this._prepare().values($)};async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}});var dA=F(()=>{SA();pA();mA();uA();cA()});var lA=()=>{};var nA=()=>{};var iA=()=>{};var H2=F(()=>{iM();yV();vA();lA();bA();O7();oV();aV();dA();nA();Y2();j7();M7();iA()});function $z(){return Date.now()}function rA(){return{createdAt:w$("created_at").notNull().$defaultFn($z).default(0),updatedAt:w$("updated_at").notNull().$defaultFn($z).default(0)}}function br(){return{...rA(),inUsed:w$("in_used").notNull().default(1)}}function yr(){return{createdAt:w$("created_at").notNull().$defaultFn($z).default(0)}}var a$,uQ$,mQ$;var oA=F(()=>{H2();a$=rA();uQ$=br();mQ$=yr()});function tA($){if(typeof $!=="object"||$===null||!("queryChunks"in $))return;let U=$.queryChunks;if(!U)return;return U.map((J)=>{if("value"in J&&typeof J.value==="string")return J.value;if("input"in J&&J.input!==void 0)return String(J.input);return String(J.value??"?")}).join("")}function aA($){return String($[Symbol.for("drizzle:Name")])}function X1($){return`"${$.replace(/"/g,'""')}"`}function hr($){if($==null)return $===null?"NULL":void 0;if(typeof $==="number")return String($);if(typeof $==="string")return`'${$.replace(/'/g,"''")}'`;if(typeof $==="boolean")return $?"1":"0";return tA($)??String($)}function sA($){let U=wA($),J=[],G=[],X=new Set;for(let Z of U.uniqueConstraints)if(Z.columns.length>1)for(let W of Z.columns)X.add(W.name);let Y=new Set;for(let Z of U.primaryKeys)if(Z.columns.length>1)for(let W of Z.columns)Y.add(W.name);for(let Z of U.columns){let W=[X1(Z.name),Z.getSQLType()];if(Z.primary&&!Y.has(Z.name))W.push("PRIMARY KEY");if(Z.notNull)W.push("NOT NULL");if(Z.hasDefault&&Z.default!==void 0){let _=hr(Z.default);if(_!==void 0)W.push(`DEFAULT ${_}`)}if(Z.isUnique&&!X.has(Z.name))W.push("UNIQUE");J.push(W.join(" "))}for(let Z of U.primaryKeys)if(Z.columns.length>1){let W=Z.columns.map((_)=>X1(_.name)).join(", ");G.push(`PRIMARY KEY (${W})`)}for(let Z of U.uniqueConstraints)if(Z.columns.length>1){let W=Z.columns.map((_)=>X1(_.name)).join(", ");G.push(`UNIQUE (${W})`)}for(let Z of U.foreignKeys){let W=Z.reference(),_=W.columns.map((K)=>X1(K.name)).join(", "),V=W.foreignColumns.map((K)=>X1(K.name)).join(", "),z=aA(W.foreignTable),Q=`FOREIGN KEY (${_}) REFERENCES ${X1(z)} (${V})`;if(Z.onDelete)Q+=` ON DELETE ${Z.onDelete}`;if(Z.onUpdate)Q+=` ON UPDATE ${Z.onUpdate}`;G.push(Q)}let H=[...J,...G];return`CREATE TABLE IF NOT EXISTS ${X1(U.name)} (
247
247
  ${H.join(`,
248
248
  `)}
249
- )`}var eA=F(()=>{H2()});var $N=F(()=>{JU();JU()});var UN=F(()=>{$N()});function Z$($,U){return U.includes($.columnType)}function XN($){return"enumValues"in $&&Array.isArray($.enumValues)&&$.enumValues.length>0}function JN($,U){let J=U?.zodInstance??D,G=U?.coerce??{},X;if(XN($))X=$.enumValues.length?J.enum($.enumValues):J.string();if(!X){if(Z$($,["PgGeometry","PgPointTuple"]))X=J.tuple([J.number(),J.number()]);else if(Z$($,["PgGeometryObject","PgPointObject"]))X=J.object({x:J.number(),y:J.number()});else if(Z$($,["PgHalfVector","PgVector"]))X=J.array(J.number()),X=$.dimensions?X.length($.dimensions):X;else if(Z$($,["PgLine"]))X=J.tuple([J.number(),J.number(),J.number()]);else if(Z$($,["PgLineABC"]))X=J.object({a:J.number(),b:J.number(),c:J.number()});else if(Z$($,["PgArray"]))X=J.array(JN($.baseColumn,U)),X=$.size?X.length($.size):X;else if($.dataType==="array")X=J.array(J.any());else if($.dataType==="number")X=cr($,J,G);else if($.dataType==="bigint")X=dr($,J,G);else if($.dataType==="boolean")X=G===!0||G.boolean?J.coerce.boolean():J.boolean();else if($.dataType==="date")X=G===!0||G.date?J.coerce.date():J.date();else if($.dataType==="string")X=lr($,J,G);else if($.dataType==="json")X=mr;else if($.dataType==="custom")X=J.any();else if($.dataType==="buffer")X=pr}if(!X)X=J.any();return X}function cr($,U,J){let G=$.getSQLType().includes("unsigned"),X,Y,H=!1;if(Z$($,["MySqlTinyInt","SingleStoreTinyInt"]))X=G?0:X$.INT8_MIN,Y=G?X$.INT8_UNSIGNED_MAX:X$.INT8_MAX,H=!0;else if(Z$($,["PgSmallInt","PgSmallSerial","MySqlSmallInt","SingleStoreSmallInt"]))X=G?0:X$.INT16_MIN,Y=G?X$.INT16_UNSIGNED_MAX:X$.INT16_MAX,H=!0;else if(Z$($,["PgReal","MySqlFloat","MySqlMediumInt","SingleStoreMediumInt","SingleStoreFloat"]))X=G?0:X$.INT24_MIN,Y=G?X$.INT24_UNSIGNED_MAX:X$.INT24_MAX,H=Z$($,["MySqlMediumInt","SingleStoreMediumInt"]);else if(Z$($,["PgInteger","PgSerial","MySqlInt","SingleStoreInt"]))X=G?0:X$.INT32_MIN,Y=G?X$.INT32_UNSIGNED_MAX:X$.INT32_MAX,H=!0;else if(Z$($,["PgDoublePrecision","MySqlReal","MySqlDouble","SingleStoreReal","SingleStoreDouble","SQLiteReal"]))X=G?0:X$.INT48_MIN,Y=G?X$.INT48_UNSIGNED_MAX:X$.INT48_MAX;else if(Z$($,["PgBigInt53","PgBigSerial53","MySqlBigInt53","MySqlSerial","SingleStoreBigInt53","SingleStoreSerial","SQLiteInteger"]))G=G||Z$($,["MySqlSerial","SingleStoreSerial"]),X=G?0:Number.MIN_SAFE_INTEGER,Y=Number.MAX_SAFE_INTEGER,H=!0;else if(Z$($,["MySqlYear","SingleStoreYear"]))X=1901,Y=2155,H=!0;else X=Number.MIN_SAFE_INTEGER,Y=Number.MAX_SAFE_INTEGER;let Z=J===!0||J?.number?H?U.coerce.number():U.coerce.number().int():H?U.int():U.number();return Z=Z.gte(X).lte(Y),Z}function dr($,U,J){let G=$.getSQLType().includes("unsigned"),X=G?0n:X$.INT64_MIN,Y=G?X$.INT64_UNSIGNED_MAX:X$.INT64_MAX;return(J===!0||J?.bigint?U.coerce.bigint():U.bigint()).gte(X).lte(Y)}function lr($,U,J){if(Z$($,["PgUUID"]))return U.uuid();let G,X,Y=!1;if(Z$($,["PgVarchar","SQLiteText"]))G=$.length;else if(Z$($,["MySqlVarChar","SingleStoreVarChar"]))G=$.length??X$.INT16_UNSIGNED_MAX;else if(Z$($,["MySqlText","SingleStoreText"]))if($.textType==="longtext")G=X$.INT32_UNSIGNED_MAX;else if($.textType==="mediumtext")G=X$.INT24_UNSIGNED_MAX;else if($.textType==="text")G=X$.INT16_UNSIGNED_MAX;else G=X$.INT8_UNSIGNED_MAX;if(Z$($,["PgChar","MySqlChar","SingleStoreChar"]))G=$.length,Y=!0;if(Z$($,["PgBinaryVector"]))X=/^[01]+$/,G=$.dimensions;let H=J===!0||J?.string?U.coerce.string():U.string();return H=X?H.regex(X):H,G&&Y?H.length(G):G?H.max(G):H}function Uz($){return kV($)?SV($):yM($)}function Xz($,U,J,G){let X={};for(let[Y,H]of Object.entries($)){if(!u(H,P$)&&!u(H,i)&&!u(H,i.Aliased)&&typeof H==="object"){let z=kV(H)||wM(H)?Uz(H):H;X[Y]=Xz(z,U[Y]??{},J,G);continue}let Z=U[Y];if(Z!==void 0&&typeof Z!=="function"){X[Y]=Z;continue}let W=u(H,P$)?H:void 0,_=W?JN(W,G):D.any(),V=typeof Z==="function"?Z(_):_;if(J.never(W))continue;else X[Y]=V;if(W){if(J.nullable(W))X[Y]=X[Y].nullable();if(J.optional(W))X[Y]=X[Y].optional()}}return D.object(X)}function nr($,U){return(U?.zodInstance??D).enum($.enumValues)}var X$,fr,ur,mr,pr,ir,rr,GN=($,U)=>{if(fr($))return nr($);let J=Uz($);return Xz(J,U??{},ir)},YN=($,U)=>{let J=Uz($);return Xz(J,U??{},rr)};var HN=F(()=>{UN();nM();X$={INT8_MIN:-128,INT8_MAX:127,INT8_UNSIGNED_MAX:255,INT16_MIN:-32768,INT16_MAX:32767,INT16_UNSIGNED_MAX:65535,INT24_MIN:-8388608,INT24_MAX:8388607,INT24_UNSIGNED_MAX:16777215,INT32_MIN:-2147483648,INT32_MAX:2147483647,INT32_UNSIGNED_MAX:4294967295,INT48_MIN:-140737488355328,INT48_MAX:140737488355327,INT48_UNSIGNED_MAX:281474976710655,INT64_MIN:-9223372036854775808n,INT64_MAX:9223372036854775807n,INT64_UNSIGNED_MAX:18446744073709551615n};fr=XN,ur=D.union([D.string(),D.number(),D.boolean(),D.null()]),mr=D.union([ur,D.record(D.string(),D.any()),D.array(D.any())]),pr=D.custom(($)=>$ instanceof Buffer);ir={never:()=>!1,optional:()=>!1,nullable:($)=>!$.notNull},rr={never:($)=>$?.generated?.type==="always"||$?.generatedIdentity?.type==="always",optional:($)=>!$.notNull||$.notNull&&$.hasDefault,nullable:($)=>!$.notNull}});function j$($,U){let J=kA($,U),G,X,Y;return{table:J,get insertSchema(){if(G===void 0)G=YN(J);return G},get selectSchema(){if(X===void 0)X=GN(J);return X},get createTableSql(){if(Y===void 0)Y=sA(J);return Y}}}var ZN=F(()=>{H2();HN();eA()});var O6=F(()=>{H2();ZN();oA()});e$();var uE=/^\d{4}-\d{2}-\d{2}[Tt]\d{2}:\d{2}:\d{2}(\.\d+)?([Zz]|[+-]\d{2}:\d{2})$/;function TK($){return uE.test($)&&Number.isFinite(Date.parse($))}var EK=["L1.markdown-parse","L1.schema-validation","L2.missing-required-section","L2.forbidden-section","L2.disallowed-section","L2.heading-level","L2.section-order","L3.requirements-format","L3.requirements-checkbox","L3.requirements-empty","L3.ac-empty","L3.ac-requirement-coverage","L3.solution-file-line","L3.review-priority-table","L3.required-section-placeholder","L3.plan-format","L3.unchecked-checklist","L3.ac-checklist-text","L3.ac-bdd-error","L3.ac-bdd-warning","L3.ac-bdd-invalid","L3.scope-delineation","L3.one-active-goal","L3.children-limit","L3.review-testing-contradiction","L4.design-placeholder","L4.feature-not-found","L4.feature-terminal","L4.missing-feature-id","L4.parent-not-found","L4.dependency-not-found","L4.rollup-subtasks-open","L4.rollup-parent-open","L4.rollup-missing-roster","L4.rollup-roster-not-declared-dependency","L4.readiness-blocked","L4.prose-prerequisite-unlisted","L4.prerequisite-cycle","L4.prerequisite-not-done","L4.gate-language","L4.linked-task-parse-failed","L4.orphan-scenarios","L4.uncovered-task-scenario","L4.uncovered-feature-scenario","L4.verdict-rows-match-no-scenario","L4.verifying-incomplete-tasks","L4.dogfood-missing","L4.stale-line-anchor","L4.anchor-subject-mismatch","L4.malformed-verdict-artifact","L4.scenario-unverified","L4.testing-verdict-stub","L4.evidence-not-recoverable"];function kK($){return EK.includes($)}e$();var mE=D.object({name:D.string().min(1),path:D.string().min(1),port:D.number().int().nonnegative().default(0)}),oe=D.object({schema_version:D.literal(1).default(1),projects:D.array(mE).default([])});e$();var pE=D.enum(["git","dev","sys","harness"]),cE=D.object({name:D.string().min(1),description:D.string().min(1),category:pE.default("dev"),argumentHint:D.string().optional(),tags:D.array(D.string()).default([]),role:D.string().optional(),source:D.string().optional()}),se=D.object({version:D.number().int().default(1),updatedAt:D.string().optional(),commands:D.array(cE).default([])});var dE=["debug","info","warn","error"],lE="docs/tasks",nE="docs/features",CK=".spur/spur.db";var iE=D.object({baseCounter:D.number().int().nonnegative().default(0),label:D.string().optional()});function xK($){return D.preprocess((U)=>U==null?void 0:U,D.string().default($))}var rE=D.object({folders:D.record(D.string(),iE).default({}),active:xK(lE),severity:D.record(D.string(),D.enum(["error","warning","off"])).optional()}).superRefine(($,U)=>{if($.severity){for(let J of Object.keys($.severity))if(!kK(J))U.addIssue({code:D.ZodIssueCode.custom,path:["severity",J],message:`Unknown finding code "${J}" in severity overrides map`})}}),oE=D.object({dir:xK(nE)}),wK=["cheap","standard","capable-1","capable-2","capable-3"];function tE($){return $==="capable"?"capable-1":$}var aE=D.preprocess(($)=>{if($===void 0||$===null)return;return typeof $==="string"?tE($):$},D.enum(wK).optional()),GU=["scribe","coder","reviewer","planner"];var SK=["fsRead","fsWrite","networkEgress","processSpawn","externalMutationApproval"],sE=["resumeById","sessionDir","persistentStdin","structuredOutput"],eE=[...SK,...sE],$k=["enforced","available","unavailable","unknown"],Uk=["native-known","operator-configured","unattested"],Xk=D.object({state:D.enum($k),provenance:D.enum(Uk)}),Jk=D.object({version:D.literal(1),axes:D.partialRecord(D.enum(SK),Xk)}),Gk=["available","enforced"],G$$=D.partialRecord(D.enum(eE),D.enum(Gk)),Yk=D.enum(["operator","quota","probe"]),Hk=D.object({owner:Yk,since:D.string().refine(TK,{message:"since must be an RFC 3339 timestamp"}),reason:D.string().min(1)}),Zk=D.object({name:D.string().min(1),agent:D.string().min(1),model:D.string().min(1).optional(),tier:aE.optional(),executionCapabilities:Jk.optional(),disabled:D.union([D.boolean(),Hk]).default(!1)});var Wk=D.object({tier:D.enum(wK).optional(),stages:D.array(D.string().min(1)).min(1).optional()});var _k=D.object({id:D.string().min(1).optional(),role:D.enum(GU,{error:($)=>Error(`Unknown role "${$.input}" — expected one of: ${GU.join(", ")}`)}).optional(),executor:D.string().min(1).optional(),purpose:D.string().optional(),enabled:D.boolean().optional()}),Vk=["rest","gtd"],zk=_k.superRefine(($,U)=>{if($.role===void 0&&$.executor===void 0)U.addIssue({code:D.ZodIssueCode.custom,message:"must declare a role or an executor — at least one is required"})}),Qk=D.object({enabled:D.boolean().default(!1),strategy:D.enum(Vk).default("rest"),orchestrator:D.string().min(1).optional(),members:D.array(zk).default([])});var Dk=D.object({"max-bytes":D.number().int().positive().optional(),"max-lines":D.number().int().positive().optional()}),Kk=D.object({default:D.string().optional(),executors:D.array(Zk).optional(),roles:D.record(D.string(),Wk).optional(),output:Dk.optional(),sessionAffinity:D.boolean().optional(),fleet:Qk.optional()}).superRefine(($,U)=>{for(let X of Object.keys($.roles??{}))if(!GU.includes(X))U.addIssue({code:D.ZodIssueCode.custom,path:["roles",X],message:`Unknown role "${X}" — expected one of: ${GU.join(", ")}`});let J=$.executors,G=new Set;if(J!==void 0){let X=new Set;for(let[Y,H]of J.entries()){if(X.has(H.name))U.addIssue({code:D.ZodIssueCode.custom,message:`Duplicate executor name: ${H.name}`,path:["executors",Y,"name"]});if(H.name==="inline"||H.name==="auto")U.addIssue({code:D.ZodIssueCode.custom,message:`Executor name "${H.name}" is reserved (the --agent selector value '${H.name}' has fixed semantics); rename executor at index ${Y}.`,path:["executors",Y,"name"]});if(GU.includes(H.name))U.addIssue({code:D.ZodIssueCode.custom,message:`Executor name "${H.name}" collides with the role selector namespace ("${H.name}"); rename executor at index ${Y}.`,path:["executors",Y,"name"]});X.add(H.name),G.add(H.name)}}}),Fk=D.object({paths:D.array(D.string()).optional()}),qk=D.object({paths:D.array(D.string()).optional()}),Ik=D.object({logRetentionDays:D.number().int().positive().default(30)}),Bk=D.object({enabled:D.boolean().optional()}),Pk=D.object({on_completion:D.boolean().default(!1),debounce_ms:D.number().int().min(1000).default(600000)}),Ok=D.object({refresh:Pk.optional()}),jk=D.looseObject({type:D.string().min(1)}),Lk=D.object({tagVersionSeparator:D.string().min(1).default("-v"),aggregatePackage:D.string().min(1).optional(),publishWorkflow:D.string().min(1).default("publish.yml"),releaseCommitType:D.string().min(1).default("chore"),releaseCommitScope:D.string().min(1).default("release"),ghRunListLimit:D.number().int().positive().default(5),versionCarriers:D.array(jk).default([])}),Rk=D.object({"bump-ver":Lk.optional()});var Mk=D.object({options:D.record(D.string(),D.unknown()).optional()}),Y$$=D.object({version:D.string().optional(),name:D.string().optional(),bootstrap:Mk.optional(),agent:Kk.optional(),rules:Fk.optional(),workflows:qk.optional(),workflow:Ik.optional(),redaction:Bk.optional(),history:Ok.optional(),builder:Rk.optional(),tasks:rE.optional(),features:oE.optional()});var H$$=D.object({database:D.object({url:D.string().default(CK)}).default({url:CK}),server:D.object({port:D.coerce.number().int().positive().default(3000),host:D.string().default("localhost"),openBrowser:D.boolean().default(!0),webDistPath:D.string().nullable().default(null)}).default({port:3000,host:"localhost",openBrowser:!0,webDistPath:null}),telemetry:D.object({enabled:D.boolean().default(!1),endpoint:D.string().optional()}).default({enabled:!1}),logging:D.object({level:D.enum(dE).default("info")}).default({level:"info"})});f7();NR();import{resolve as D0}from"node:path";import{createHash as jt}from"node:crypto";var vR={byTool:"ranked",bySession:"ranked",topStepsByTokens:"ranked",topStepsByDuration:"ranked",topSteps:"ranked",bottlenecks:"ranked",coverage:"set",daily:"set",loops:"set",warnings:"set",pairings:"set",ladderSnapshot:"set",stepSupport:"set",phases:"set",tools:"set",skills:"set",sources:"set",models:"set"},Pi=new Set(Object.entries(vR).filter(([,$])=>$==="ranked").map(([$])=>$));var o6=`CASE
249
+ )`}var eA=F(()=>{H2()});var $N=F(()=>{JU();JU()});var UN=F(()=>{$N()});function Z$($,U){return U.includes($.columnType)}function XN($){return"enumValues"in $&&Array.isArray($.enumValues)&&$.enumValues.length>0}function JN($,U){let J=U?.zodInstance??D,G=U?.coerce??{},X;if(XN($))X=$.enumValues.length?J.enum($.enumValues):J.string();if(!X){if(Z$($,["PgGeometry","PgPointTuple"]))X=J.tuple([J.number(),J.number()]);else if(Z$($,["PgGeometryObject","PgPointObject"]))X=J.object({x:J.number(),y:J.number()});else if(Z$($,["PgHalfVector","PgVector"]))X=J.array(J.number()),X=$.dimensions?X.length($.dimensions):X;else if(Z$($,["PgLine"]))X=J.tuple([J.number(),J.number(),J.number()]);else if(Z$($,["PgLineABC"]))X=J.object({a:J.number(),b:J.number(),c:J.number()});else if(Z$($,["PgArray"]))X=J.array(JN($.baseColumn,U)),X=$.size?X.length($.size):X;else if($.dataType==="array")X=J.array(J.any());else if($.dataType==="number")X=cr($,J,G);else if($.dataType==="bigint")X=dr($,J,G);else if($.dataType==="boolean")X=G===!0||G.boolean?J.coerce.boolean():J.boolean();else if($.dataType==="date")X=G===!0||G.date?J.coerce.date():J.date();else if($.dataType==="string")X=lr($,J,G);else if($.dataType==="json")X=mr;else if($.dataType==="custom")X=J.any();else if($.dataType==="buffer")X=pr}if(!X)X=J.any();return X}function cr($,U,J){let G=$.getSQLType().includes("unsigned"),X,Y,H=!1;if(Z$($,["MySqlTinyInt","SingleStoreTinyInt"]))X=G?0:X$.INT8_MIN,Y=G?X$.INT8_UNSIGNED_MAX:X$.INT8_MAX,H=!0;else if(Z$($,["PgSmallInt","PgSmallSerial","MySqlSmallInt","SingleStoreSmallInt"]))X=G?0:X$.INT16_MIN,Y=G?X$.INT16_UNSIGNED_MAX:X$.INT16_MAX,H=!0;else if(Z$($,["PgReal","MySqlFloat","MySqlMediumInt","SingleStoreMediumInt","SingleStoreFloat"]))X=G?0:X$.INT24_MIN,Y=G?X$.INT24_UNSIGNED_MAX:X$.INT24_MAX,H=Z$($,["MySqlMediumInt","SingleStoreMediumInt"]);else if(Z$($,["PgInteger","PgSerial","MySqlInt","SingleStoreInt"]))X=G?0:X$.INT32_MIN,Y=G?X$.INT32_UNSIGNED_MAX:X$.INT32_MAX,H=!0;else if(Z$($,["PgDoublePrecision","MySqlReal","MySqlDouble","SingleStoreReal","SingleStoreDouble","SQLiteReal"]))X=G?0:X$.INT48_MIN,Y=G?X$.INT48_UNSIGNED_MAX:X$.INT48_MAX;else if(Z$($,["PgBigInt53","PgBigSerial53","MySqlBigInt53","MySqlSerial","SingleStoreBigInt53","SingleStoreSerial","SQLiteInteger"]))G=G||Z$($,["MySqlSerial","SingleStoreSerial"]),X=G?0:Number.MIN_SAFE_INTEGER,Y=Number.MAX_SAFE_INTEGER,H=!0;else if(Z$($,["MySqlYear","SingleStoreYear"]))X=1901,Y=2155,H=!0;else X=Number.MIN_SAFE_INTEGER,Y=Number.MAX_SAFE_INTEGER;let Z=J===!0||J?.number?H?U.coerce.number():U.coerce.number().int():H?U.int():U.number();return Z=Z.gte(X).lte(Y),Z}function dr($,U,J){let G=$.getSQLType().includes("unsigned"),X=G?0n:X$.INT64_MIN,Y=G?X$.INT64_UNSIGNED_MAX:X$.INT64_MAX;return(J===!0||J?.bigint?U.coerce.bigint():U.bigint()).gte(X).lte(Y)}function lr($,U,J){if(Z$($,["PgUUID"]))return U.uuid();let G,X,Y=!1;if(Z$($,["PgVarchar","SQLiteText"]))G=$.length;else if(Z$($,["MySqlVarChar","SingleStoreVarChar"]))G=$.length??X$.INT16_UNSIGNED_MAX;else if(Z$($,["MySqlText","SingleStoreText"]))if($.textType==="longtext")G=X$.INT32_UNSIGNED_MAX;else if($.textType==="mediumtext")G=X$.INT24_UNSIGNED_MAX;else if($.textType==="text")G=X$.INT16_UNSIGNED_MAX;else G=X$.INT8_UNSIGNED_MAX;if(Z$($,["PgChar","MySqlChar","SingleStoreChar"]))G=$.length,Y=!0;if(Z$($,["PgBinaryVector"]))X=/^[01]+$/,G=$.dimensions;let H=J===!0||J?.string?U.coerce.string():U.string();return H=X?H.regex(X):H,G&&Y?H.length(G):G?H.max(G):H}function Uz($){return kV($)?SV($):yM($)}function Xz($,U,J,G){let X={};for(let[Y,H]of Object.entries($)){if(!u(H,P$)&&!u(H,i)&&!u(H,i.Aliased)&&typeof H==="object"){let z=kV(H)||wM(H)?Uz(H):H;X[Y]=Xz(z,U[Y]??{},J,G);continue}let Z=U[Y];if(Z!==void 0&&typeof Z!=="function"){X[Y]=Z;continue}let W=u(H,P$)?H:void 0,_=W?JN(W,G):D.any(),V=typeof Z==="function"?Z(_):_;if(J.never(W))continue;else X[Y]=V;if(W){if(J.nullable(W))X[Y]=X[Y].nullable();if(J.optional(W))X[Y]=X[Y].optional()}}return D.object(X)}function nr($,U){return(U?.zodInstance??D).enum($.enumValues)}var X$,fr,ur,mr,pr,ir,rr,GN=($,U)=>{if(fr($))return nr($);let J=Uz($);return Xz(J,U??{},ir)},YN=($,U)=>{let J=Uz($);return Xz(J,U??{},rr)};var HN=F(()=>{UN();nM();X$={INT8_MIN:-128,INT8_MAX:127,INT8_UNSIGNED_MAX:255,INT16_MIN:-32768,INT16_MAX:32767,INT16_UNSIGNED_MAX:65535,INT24_MIN:-8388608,INT24_MAX:8388607,INT24_UNSIGNED_MAX:16777215,INT32_MIN:-2147483648,INT32_MAX:2147483647,INT32_UNSIGNED_MAX:4294967295,INT48_MIN:-140737488355328,INT48_MAX:140737488355327,INT48_UNSIGNED_MAX:281474976710655,INT64_MIN:-9223372036854775808n,INT64_MAX:9223372036854775807n,INT64_UNSIGNED_MAX:18446744073709551615n};fr=XN,ur=D.union([D.string(),D.number(),D.boolean(),D.null()]),mr=D.union([ur,D.record(D.string(),D.any()),D.array(D.any())]),pr=D.custom(($)=>$ instanceof Buffer);ir={never:()=>!1,optional:()=>!1,nullable:($)=>!$.notNull},rr={never:($)=>$?.generated?.type==="always"||$?.generatedIdentity?.type==="always",optional:($)=>!$.notNull||$.notNull&&$.hasDefault,nullable:($)=>!$.notNull}});function j$($,U){let J=kA($,U),G,X,Y;return{table:J,get insertSchema(){if(G===void 0)G=YN(J);return G},get selectSchema(){if(X===void 0)X=GN(J);return X},get createTableSql(){if(Y===void 0)Y=sA(J);return Y}}}var ZN=F(()=>{H2();HN();eA()});var O6=F(()=>{H2();ZN();oA()});e$();var uE=/^\d{4}-\d{2}-\d{2}[Tt]\d{2}:\d{2}:\d{2}(\.\d+)?([Zz]|[+-]\d{2}:\d{2})$/;function TK($){return uE.test($)&&Number.isFinite(Date.parse($))}var EK=["L1.markdown-parse","L1.schema-validation","L2.missing-required-section","L2.forbidden-section","L2.disallowed-section","L2.heading-level","L2.section-order","L3.requirements-format","L3.requirements-checkbox","L3.requirements-empty","L3.ac-empty","L3.ac-requirement-coverage","L3.solution-file-line","L3.review-priority-table","L3.required-section-placeholder","L3.plan-format","L3.unchecked-checklist","L3.ac-checklist-text","L3.ac-bdd-error","L3.ac-bdd-warning","L3.ac-bdd-invalid","L3.scope-delineation","L3.one-active-goal","L3.children-limit","L3.review-testing-contradiction","L4.design-placeholder","L4.feature-not-found","L4.feature-terminal","L4.missing-feature-id","L4.parent-not-found","L4.dependency-not-found","L4.rollup-subtasks-open","L4.rollup-parent-open","L4.rollup-missing-roster","L4.rollup-roster-not-declared-dependency","L4.readiness-blocked","L4.prose-prerequisite-unlisted","L4.prerequisite-cycle","L4.prerequisite-not-done","L4.gate-language","L4.linked-task-parse-failed","L4.orphan-scenarios","L4.uncovered-task-scenario","L4.uncovered-feature-scenario","L4.verdict-rows-match-no-scenario","L4.verifying-incomplete-tasks","L4.dogfood-missing","L4.stale-line-anchor","L4.anchor-subject-mismatch","L4.malformed-verdict-artifact","L4.scenario-unverified","L4.testing-verdict-stub","L4.evidence-not-recoverable"];function kK($){return EK.includes($)}e$();var mE=D.object({name:D.string().min(1),path:D.string().min(1),port:D.number().int().nonnegative().default(0)}),oe=D.object({schema_version:D.literal(1).default(1),projects:D.array(mE).default([])});e$();var pE=D.enum(["git","dev","sys","harness"]),cE=D.object({name:D.string().min(1),description:D.string().min(1),category:pE.default("dev"),argumentHint:D.string().optional(),tags:D.array(D.string()).default([]),role:D.string().optional(),source:D.string().optional()}),se=D.object({version:D.number().int().default(1),updatedAt:D.string().optional(),commands:D.array(cE).default([])});var dE=["debug","info","warn","error"],lE="docs/tasks",nE="docs/features",CK=".spur/spur.db";var iE=D.object({baseCounter:D.number().int().nonnegative().default(0),label:D.string().optional()});function xK($){return D.preprocess((U)=>U==null?void 0:U,D.string().default($))}var rE=D.object({folders:D.record(D.string(),iE).default({}),active:xK(lE),severity:D.record(D.string(),D.enum(["error","warning","off"])).optional()}).superRefine(($,U)=>{if($.severity){for(let J of Object.keys($.severity))if(!kK(J))U.addIssue({code:D.ZodIssueCode.custom,path:["severity",J],message:`Unknown finding code "${J}" in severity overrides map`})}}),oE=D.object({dir:xK(nE)}),wK=["cheap","standard","capable-1","capable-2","capable-3"];function tE($){return $==="capable"?"capable-1":$}var aE=D.preprocess(($)=>{if($===void 0||$===null)return;return typeof $==="string"?tE($):$},D.enum(wK).optional()),GU=["scribe","coder","reviewer","planner"];var SK=["fsRead","fsWrite","networkEgress","processSpawn","externalMutationApproval"],sE=["resumeById","sessionDir","persistentStdin","structuredOutput"],eE=[...SK,...sE],$k=["enforced","available","unavailable","unknown"],Uk=["native-known","operator-configured","unattested"],Xk=D.object({state:D.enum($k),provenance:D.enum(Uk)}),Jk=D.object({version:D.literal(1),axes:D.partialRecord(D.enum(SK),Xk)}),Gk=["available","enforced"],G$$=D.partialRecord(D.enum(eE),D.enum(Gk)),Yk=D.enum(["operator","quota","probe"]),Hk=D.object({owner:Yk,since:D.string().refine(TK,{message:"since must be an RFC 3339 timestamp"}),reason:D.string().min(1)}),Zk=D.object({name:D.string().min(1),agent:D.string().min(1),model:D.string().min(1).optional(),tier:aE.optional(),executionCapabilities:Jk.optional(),disabled:D.union([D.boolean(),Hk]).default(!1)});var Wk=D.object({tier:D.enum(wK).optional(),stages:D.array(D.string().min(1)).min(1).optional()});var _k=D.object({id:D.string().min(1).optional(),role:D.enum(GU,{error:($)=>Error(`Unknown role "${$.input}" — expected one of: ${GU.join(", ")}`)}).optional(),executor:D.string().min(1).optional(),purpose:D.string().optional(),enabled:D.boolean().optional()}),Vk=["rest","gtd"],zk=_k.superRefine(($,U)=>{if($.role===void 0&&$.executor===void 0)U.addIssue({code:D.ZodIssueCode.custom,message:"must declare a role or an executor — at least one is required"})}),Qk=D.object({enabled:D.boolean().default(!1),strategy:D.enum(Vk).default("rest"),orchestrator:D.string().min(1).optional(),members:D.array(zk).default([])});var Dk=D.object({"max-bytes":D.number().int().positive().optional(),"max-lines":D.number().int().positive().optional()}),Kk=D.object({default:D.string().optional(),executors:D.array(Zk).optional(),roles:D.record(D.string(),Wk).optional(),output:Dk.optional(),sessionAffinity:D.boolean().optional(),fleet:Qk.optional()}).superRefine(($,U)=>{for(let X of Object.keys($.roles??{}))if(!GU.includes(X))U.addIssue({code:D.ZodIssueCode.custom,path:["roles",X],message:`Unknown role "${X}" — expected one of: ${GU.join(", ")}`});let J=$.executors,G=new Set;if(J!==void 0){let X=new Set;for(let[Y,H]of J.entries()){if(X.has(H.name))U.addIssue({code:D.ZodIssueCode.custom,message:`Duplicate executor name: ${H.name}`,path:["executors",Y,"name"]});if(H.name==="inline"||H.name==="auto")U.addIssue({code:D.ZodIssueCode.custom,message:`Executor name "${H.name}" is reserved (the --agent selector value '${H.name}' has fixed semantics); rename executor at index ${Y}.`,path:["executors",Y,"name"]});if(GU.includes(H.name))U.addIssue({code:D.ZodIssueCode.custom,message:`Executor name "${H.name}" collides with the role selector namespace ("${H.name}"); rename executor at index ${Y}.`,path:["executors",Y,"name"]});X.add(H.name),G.add(H.name)}}}),Fk=D.object({paths:D.array(D.string()).optional()}),qk=D.object({paths:D.array(D.string()).optional()}),Ik=D.object({hitlDecisionMaker:D.boolean().optional(),logRetentionDays:D.number().int().positive().default(30)}),Bk=D.object({enabled:D.boolean().optional()}),Pk=D.object({on_completion:D.boolean().default(!1),debounce_ms:D.number().int().min(1000).default(600000)}),Ok=D.object({refresh:Pk.optional()}),jk=D.looseObject({type:D.string().min(1)}),Lk=D.object({tagVersionSeparator:D.string().min(1).default("-v"),aggregatePackage:D.string().min(1).optional(),publishWorkflow:D.string().min(1).default("publish.yml"),releaseCommitType:D.string().min(1).default("chore"),releaseCommitScope:D.string().min(1).default("release"),ghRunListLimit:D.number().int().positive().default(5),versionCarriers:D.array(jk).default([])}),Rk=D.object({"bump-ver":Lk.optional()});var Mk=D.object({options:D.record(D.string(),D.unknown()).optional()}),Y$$=D.object({version:D.string().optional(),name:D.string().optional(),bootstrap:Mk.optional(),agent:Kk.optional(),rules:Fk.optional(),workflows:qk.optional(),workflow:Ik.optional(),redaction:Bk.optional(),history:Ok.optional(),builder:Rk.optional(),tasks:rE.optional(),features:oE.optional()});var H$$=D.object({database:D.object({url:D.string().default(CK)}).default({url:CK}),server:D.object({port:D.coerce.number().int().positive().default(3000),host:D.string().default("localhost"),openBrowser:D.boolean().default(!0),webDistPath:D.string().nullable().default(null)}).default({port:3000,host:"localhost",openBrowser:!0,webDistPath:null}),telemetry:D.object({enabled:D.boolean().default(!1),endpoint:D.string().optional()}).default({enabled:!1}),logging:D.object({level:D.enum(dE).default("info")}).default({level:"info"})});f7();NR();import{resolve as D0}from"node:path";import{createHash as jt}from"node:crypto";var vR={byTool:"ranked",bySession:"ranked",topStepsByTokens:"ranked",topStepsByDuration:"ranked",topSteps:"ranked",bottlenecks:"ranked",coverage:"set",daily:"set",loops:"set",warnings:"set",pairings:"set",ladderSnapshot:"set",stepSupport:"set",phases:"set",tools:"set",skills:"set",sources:"set",models:"set"},Pi=new Set(Object.entries(vR).filter(([,$])=>$==="ranked").map(([$])=>$));var o6=`CASE
250
250
  WHEN tc.effective_tool_name IS NOT NULL AND tc.effective_tool_name != '' AND tc.effective_tool_name != 'unknown'
251
251
  THEN tc.effective_tool_name
252
252
  ELSE CASE
@@ -322,7 +322,7 @@ END`;var Ri="messages, tool_calls, skill_calls, fresh_input_tokens, cache_read_t
322
322
  ''
323
323
  )
324
324
  ELSE ''
325
- END`;var HG$=[...V7,...z7,"history_daily_stats","history_board_source_daily"];var zV="0.5.0",QV=`
325
+ END`;var HG$=[...V7,...z7,"history_daily_stats","history_board_source_daily"];var zV="0.5.2",QV=`
326
326
  CREATE TABLE IF NOT EXISTS history_import_checkpoint (
327
327
  source TEXT NOT NULL,
328
328
  source_file TEXT NOT NULL,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sp",
3
- "version": "0.3.90",
3
+ "version": "0.3.91",
4
4
  "description": "Spur — a local-first harness engineering toolkit that wraps mainstream coding agents with constraint checking, workflow orchestration, and history analytics.",
5
5
  "extensions": {
6
6
  "pi": ["./hooks/pi/guard-extension.ts"]
@@ -44,6 +44,7 @@ const DOCUMENTED = {
44
44
  'doctor.probe',
45
45
  'file.read.into-var',
46
46
  'hitl.confirm',
47
+ 'hitl.select',
47
48
  'agent.run',
48
49
  'proof.fingerprint',
49
50
  'run.artifact',