privateer-agent 0.15.4 → 0.15.6

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 (229) hide show
  1. package/README.md +11 -0
  2. package/bin/boot-bundle.d.mts +2 -0
  3. package/bin/boot-bundle.mjs +44 -0
  4. package/bin/fresh-supervisor.d.mts +5 -1
  5. package/bin/fresh-supervisor.mjs +47 -10
  6. package/bin/privateer-launch.mjs +27 -3
  7. package/bin/privateer-subagent.mjs +5 -2
  8. package/bin/privateer-verify.mjs +12 -0
  9. package/bin/session-recovery.d.mts +53 -0
  10. package/bin/session-recovery.mjs +240 -0
  11. package/bin/session-seal-preload.mjs +17 -0
  12. package/bin/session-seal.d.mts +25 -0
  13. package/bin/session-seal.mjs +242 -0
  14. package/dist-boot/boot.mjs +3 -0
  15. package/dist-boot/c-27JKSMWL.mjs +1460 -0
  16. package/dist-boot/c-2BMRFV24.mjs +269 -0
  17. package/dist-boot/c-2CTF6JA3.mjs +166 -0
  18. package/dist-boot/c-2G3BBHRJ.mjs +84 -0
  19. package/dist-boot/c-2IDLKXX6.mjs +250 -0
  20. package/dist-boot/c-2NJD5VYM.mjs +8 -0
  21. package/dist-boot/c-2S5EEQPW.mjs +1602 -0
  22. package/dist-boot/c-2WRDCUVI.mjs +25 -0
  23. package/dist-boot/c-2YN3M256.mjs +14 -0
  24. package/dist-boot/c-37GM3GMU.mjs +187 -0
  25. package/dist-boot/c-3STKRSVO.mjs +2480 -0
  26. package/dist-boot/c-3TPV6TQQ.mjs +2320 -0
  27. package/dist-boot/c-3UVHLQDJ.mjs +225 -0
  28. package/dist-boot/c-42PUUZYC.mjs +697 -0
  29. package/dist-boot/c-4D5UMWVW.mjs +683 -0
  30. package/dist-boot/c-4ETZRMTA.mjs +46 -0
  31. package/dist-boot/c-4QT25BD5.mjs +1482 -0
  32. package/dist-boot/c-4WVR32AP.mjs +2579 -0
  33. package/dist-boot/c-5EMM567G.mjs +152 -0
  34. package/dist-boot/c-5FA4CV63.mjs +145 -0
  35. package/dist-boot/c-5GV3X3RB.mjs +14 -0
  36. package/dist-boot/c-5JCEPRIY.mjs +52 -0
  37. package/dist-boot/c-5NDKIIWT.mjs +16 -0
  38. package/dist-boot/c-5QL3AR26.mjs +4665 -0
  39. package/dist-boot/c-5XY6MFKN.mjs +5142 -0
  40. package/dist-boot/c-65UZIZC7.mjs +2897 -0
  41. package/dist-boot/c-6FUXKHOK.mjs +1969 -0
  42. package/dist-boot/c-6JHWQE4V.mjs +18242 -0
  43. package/dist-boot/c-6LOBR4I6.mjs +5280 -0
  44. package/dist-boot/c-6QHOZXKQ.mjs +14394 -0
  45. package/dist-boot/c-6ZO2SADQ.mjs +178 -0
  46. package/dist-boot/c-6ZORVVZP.mjs +1449 -0
  47. package/dist-boot/c-76QH4UCP.mjs +2441 -0
  48. package/dist-boot/c-77GO5L5Y.mjs +20982 -0
  49. package/dist-boot/c-7M23XFTN.mjs +5052 -0
  50. package/dist-boot/c-7TC367E2.mjs +32 -0
  51. package/dist-boot/c-7UOG7POX.mjs +1524 -0
  52. package/dist-boot/c-7VHP3FLN.mjs +376 -0
  53. package/dist-boot/c-A73JHZP2.mjs +13207 -0
  54. package/dist-boot/c-ABXULAFL.mjs +71 -0
  55. package/dist-boot/c-ANDD2AQO.mjs +74 -0
  56. package/dist-boot/c-AOY77AZL.mjs +1430 -0
  57. package/dist-boot/c-AXEPZ22I.mjs +108 -0
  58. package/dist-boot/c-B2Y7VNHU.mjs +427 -0
  59. package/dist-boot/c-B7VJUH73.mjs +77 -0
  60. package/dist-boot/c-BFW6CDVL.mjs +24 -0
  61. package/dist-boot/c-BHNIF2AR.mjs +188 -0
  62. package/dist-boot/c-BKF2O6BL.mjs +23 -0
  63. package/dist-boot/c-BOZXFTZN.mjs +8 -0
  64. package/dist-boot/c-BRNYJWZL.mjs +28 -0
  65. package/dist-boot/c-C3N4Z2HO.mjs +93 -0
  66. package/dist-boot/c-C4IV7ZFG.mjs +717 -0
  67. package/dist-boot/c-C5NK6UYV.mjs +793 -0
  68. package/dist-boot/c-C67644MB.mjs +1659 -0
  69. package/dist-boot/c-C6S2YB53.mjs +620 -0
  70. package/dist-boot/c-CDBEJSBF.mjs +37 -0
  71. package/dist-boot/c-CG47HBKU.mjs +435 -0
  72. package/dist-boot/c-CKCTWCT5.mjs +51 -0
  73. package/dist-boot/c-CN77DCGF.mjs +60 -0
  74. package/dist-boot/c-CRBXNKFO.mjs +1795 -0
  75. package/dist-boot/c-CRIHASQ6.mjs +973 -0
  76. package/dist-boot/c-CU4NGAUO.mjs +3786 -0
  77. package/dist-boot/c-CWRFLGQU.mjs +1883 -0
  78. package/dist-boot/c-CYQB2USO.mjs +32 -0
  79. package/dist-boot/c-DEE67DJO.mjs +379 -0
  80. package/dist-boot/c-DIFDBYOP.mjs +1258 -0
  81. package/dist-boot/c-DOSGVXDZ.mjs +34879 -0
  82. package/dist-boot/c-DR7XQI32.mjs +381 -0
  83. package/dist-boot/c-DTGPSB46.mjs +14666 -0
  84. package/dist-boot/c-DTHDNA4P.mjs +320 -0
  85. package/dist-boot/c-E4Z3Y5B5.mjs +3864 -0
  86. package/dist-boot/c-E66Z2TI7.mjs +203 -0
  87. package/dist-boot/c-EBU6RLRV.mjs +1527 -0
  88. package/dist-boot/c-EBZZNGSF.mjs +432 -0
  89. package/dist-boot/c-EC3LJ2KF.mjs +1032 -0
  90. package/dist-boot/c-EQBKXWNX.mjs +15829 -0
  91. package/dist-boot/c-EUEPIW4S.mjs +574 -0
  92. package/dist-boot/c-EX4YVWAT.mjs +378 -0
  93. package/dist-boot/c-EYZGSAJU.mjs +98 -0
  94. package/dist-boot/c-F75VRKY4.mjs +172 -0
  95. package/dist-boot/c-FH4NXKHV.mjs +177 -0
  96. package/dist-boot/c-FHNUCTEM.mjs +140 -0
  97. package/dist-boot/c-FJ5T42DS.mjs +5349 -0
  98. package/dist-boot/c-FPCNRL7G.mjs +1728 -0
  99. package/dist-boot/c-G4DLN7Q4.mjs +8 -0
  100. package/dist-boot/c-G56GYQFZ.mjs +2507 -0
  101. package/dist-boot/c-GLIOERDQ.mjs +1200 -0
  102. package/dist-boot/c-GMJ5HUBM.mjs +14 -0
  103. package/dist-boot/c-H3HSGMAQ.mjs +461 -0
  104. package/dist-boot/c-HIKTO6P7.mjs +275 -0
  105. package/dist-boot/c-I2MCJ34O.mjs +464 -0
  106. package/dist-boot/c-I3C6LBW4.mjs +765 -0
  107. package/dist-boot/c-I54OKQHW.mjs +387 -0
  108. package/dist-boot/c-IFSP3R4D.mjs +80 -0
  109. package/dist-boot/c-IZK77VB7.mjs +171 -0
  110. package/dist-boot/c-J3Y25UGE.mjs +54 -0
  111. package/dist-boot/c-J5IESS7W.mjs +27750 -0
  112. package/dist-boot/c-JJWZBY7L.mjs +254 -0
  113. package/dist-boot/c-JKTFXTGF.mjs +463 -0
  114. package/dist-boot/c-JN57AXQ4.mjs +77 -0
  115. package/dist-boot/c-KFIO6LUW.mjs +1096 -0
  116. package/dist-boot/c-KIEMEFWW.mjs +478 -0
  117. package/dist-boot/c-KIVXWBYD.mjs +28 -0
  118. package/dist-boot/c-KP6CRIP4.mjs +580 -0
  119. package/dist-boot/c-L26VOJX4.mjs +11558 -0
  120. package/dist-boot/c-L5GHWG5G.mjs +5988 -0
  121. package/dist-boot/c-M7NSQAKK.mjs +353 -0
  122. package/dist-boot/c-MCEWOPBW.mjs +56 -0
  123. package/dist-boot/c-MGPIEG7I.mjs +20 -0
  124. package/dist-boot/c-NREXJV3M.mjs +393 -0
  125. package/dist-boot/c-O5PP6CTX.mjs +162 -0
  126. package/dist-boot/c-OBQDHSXM.mjs +1774 -0
  127. package/dist-boot/c-OLQHHDD4.mjs +21 -0
  128. package/dist-boot/c-OXW4JQQH.mjs +319 -0
  129. package/dist-boot/c-P3D7ZUWN.mjs +1288 -0
  130. package/dist-boot/c-P4PQZVV5.mjs +948 -0
  131. package/dist-boot/c-P63T3XL2.mjs +26373 -0
  132. package/dist-boot/c-P6N5DQGZ.mjs +194 -0
  133. package/dist-boot/c-P7MLKQFC.mjs +58 -0
  134. package/dist-boot/c-PB3PZJL5.mjs +1276 -0
  135. package/dist-boot/c-PTN4S6G2.mjs +1259 -0
  136. package/dist-boot/c-PYCE5J7U.mjs +1083 -0
  137. package/dist-boot/c-Q4HYCRLB.mjs +19410 -0
  138. package/dist-boot/c-QUXMETGG.mjs +68 -0
  139. package/dist-boot/c-RDMJZCOX.mjs +356 -0
  140. package/dist-boot/c-ROGJK76M.mjs +17 -0
  141. package/dist-boot/c-RQJJ26T4.mjs +708 -0
  142. package/dist-boot/c-RSKCUPJF.mjs +7559 -0
  143. package/dist-boot/c-RVJU4O6P.mjs +37 -0
  144. package/dist-boot/c-S2RVHR3M.mjs +165 -0
  145. package/dist-boot/c-SKMK3PEE.mjs +91120 -0
  146. package/dist-boot/c-TI7SM4EG.mjs +20 -0
  147. package/dist-boot/c-TILJ6GXD.mjs +1235 -0
  148. package/dist-boot/c-TT6BCUJD.mjs +114 -0
  149. package/dist-boot/c-U4ITOXAN.mjs +2107 -0
  150. package/dist-boot/c-UGERXVO2.mjs +7120 -0
  151. package/dist-boot/c-UPBH5AXY.mjs +1363 -0
  152. package/dist-boot/c-US2PUNZL.mjs +597 -0
  153. package/dist-boot/c-UU4WZPPE.mjs +20 -0
  154. package/dist-boot/c-UWVIYPQS.mjs +39 -0
  155. package/dist-boot/c-V4RHQBPQ.mjs +17683 -0
  156. package/dist-boot/c-V5MRVK47.mjs +351 -0
  157. package/dist-boot/c-V6CL266R.mjs +1755 -0
  158. package/dist-boot/c-VJTMFKYE.mjs +14975 -0
  159. package/dist-boot/c-VJTRUKIB.mjs +773 -0
  160. package/dist-boot/c-W4IFSHPW.mjs +43 -0
  161. package/dist-boot/c-WETGB2CF.mjs +113 -0
  162. package/dist-boot/c-WO3QSZUU.mjs +1337 -0
  163. package/dist-boot/c-WQLH73TY.mjs +242 -0
  164. package/dist-boot/c-XL735JW5.mjs +500 -0
  165. package/dist-boot/c-Y7HADL5B.mjs +1107 -0
  166. package/dist-boot/c-YGQHSVSK.mjs +41 -0
  167. package/dist-boot/c-YMP2AMEB.mjs +10350 -0
  168. package/dist-boot/c-YRDO2WEF.mjs +12012 -0
  169. package/dist-boot/c-YUSTRATJ.mjs +8 -0
  170. package/dist-boot/c-Z2262R22.mjs +2697 -0
  171. package/dist-boot/c-Z4ALQMJC.mjs +709 -0
  172. package/dist-boot/c-Z5ZUQVUY.mjs +62 -0
  173. package/dist-boot/c-ZDZUKXF7.mjs +874 -0
  174. package/dist-boot/c-ZJYLGIC3.mjs +32 -0
  175. package/dist-boot/c-ZNA5CDMI.mjs +77 -0
  176. package/dist-boot/c-ZSO6DI3M.mjs +204 -0
  177. package/dist-boot/c-ZWUVHKMK.mjs +100 -0
  178. package/dist-boot/c-ZY4MESEW.mjs +832 -0
  179. package/dist-boot/c-ZZ5REI4L.mjs +329 -0
  180. package/dist-boot/cli.mjs +51 -0
  181. package/dist-boot/ext-anthropic-attribution.mjs +207 -0
  182. package/dist-boot/ext-pi-background-tasks.mjs +7234 -0
  183. package/dist-boot/ext-pi-subagents.mjs +37 -0
  184. package/dist-boot/ext-privateer-account.mjs +4426 -0
  185. package/dist-boot/ext-privateer-brand.mjs +5274 -0
  186. package/dist-boot/ext-privateer-codemode.mjs +37 -0
  187. package/dist-boot/ext-privateer-computer.mjs +626 -0
  188. package/dist-boot/ext-privateer-connect.mjs +1862 -0
  189. package/dist-boot/ext-privateer-context.mjs +323 -0
  190. package/dist-boot/ext-privateer-desktop.mjs +92 -0
  191. package/dist-boot/ext-privateer-final-audit.mjs +48 -0
  192. package/dist-boot/ext-privateer-fresh.mjs +81 -0
  193. package/dist-boot/ext-privateer-gate.mjs +5959 -0
  194. package/dist-boot/ext-privateer-hints.mjs +236 -0
  195. package/dist-boot/ext-privateer-media.mjs +2626 -0
  196. package/dist-boot/ext-privateer-models.mjs +3397 -0
  197. package/dist-boot/ext-privateer-posture.mjs +3006 -0
  198. package/dist-boot/ext-privateer-privacy.mjs +4578 -0
  199. package/dist-boot/ext-privateer-recovery.mjs +287 -0
  200. package/dist-boot/ext-privateer-speak.mjs +4754 -0
  201. package/dist-boot/ext-privateer-terminals.mjs +725 -0
  202. package/dist-boot/ext-privateer-tools.mjs +528 -0
  203. package/dist-boot/ext-privateer-truncation.mjs +74 -0
  204. package/dist-boot/ext-privateer-update.mjs +210 -0
  205. package/dist-boot/ext-privateer-vision.mjs +148 -0
  206. package/dist-boot/ext-privateer-web.mjs +543 -0
  207. package/dist-boot/ext-rpiv-ask-user-question.mjs +710 -0
  208. package/dist-boot/manifest.json +9 -0
  209. package/extensions/privateer-brand.ts +3 -1
  210. package/extensions/privateer-context.ts +4 -2
  211. package/extensions/privateer-final-audit.ts +17 -0
  212. package/extensions/privateer-gate.ts +55 -9
  213. package/extensions/privateer-recovery.ts +175 -0
  214. package/extensions/privateer-web.ts +4 -4
  215. package/package.json +3 -1
  216. package/patches/@earendil-works+pi-coding-agent+1.3.0.patch +199 -2
  217. package/patches/pi-background-tasks+2.6.10.patch +91 -7
  218. package/src/cli/chat.ts +7 -1
  219. package/src/config/moatManifest.json +2 -0
  220. package/src/config/whatsNew.json +4 -4
  221. package/src/context.ts +33 -5
  222. package/src/engine/finalAudit.ts +38 -0
  223. package/src/engine/stallWatchdog.ts +8 -1
  224. package/src/providers/account.ts +34 -3
  225. package/src/remote/attentionPush.ts +40 -0
  226. package/src/remote/liveTaskSession.ts +7 -1
  227. package/src/remote/relayClient.ts +38 -4
  228. package/src/remote/remoteBridge.ts +17 -0
  229. package/src/remote/transcriptSnapshot.ts +104 -0
@@ -0,0 +1,194 @@
1
+ import{createRequire as __pvCR}from"node:module";import{fileURLToPath as __pvF}from"node:url";import{dirname as __pvD}from"node:path";const require=__pvCR(import.meta.url);const __pvUrl=(r)=>new URL(r,import.meta.url).href;const __pvFile=(r)=>__pvF(new URL(r,import.meta.url));
2
+ import {
3
+ Build,
4
+ Clean,
5
+ Convert,
6
+ Create,
7
+ Decode,
8
+ Default,
9
+ Encode,
10
+ Errors,
11
+ HasCodec,
12
+ ParseError,
13
+ Parser
14
+ } from "./c-6LOBR4I6.mjs";
15
+ import {
16
+ arguments_exports,
17
+ settings_exports
18
+ } from "./c-L5GHWG5G.mjs";
19
+ import {
20
+ __export,
21
+ __name
22
+ } from "./c-CN77DCGF.mjs";
23
+
24
+ // node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/compile/index.mjs
25
+ var compile_exports = {};
26
+ __export(compile_exports, {
27
+ Code: () => Code,
28
+ Compile: () => Compile,
29
+ Validator: () => Validator,
30
+ default: () => compile_default
31
+ });
32
+
33
+ // node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/compile/code.mjs
34
+ function TsIgnore() {
35
+ return `// @ts-ignore`;
36
+ }
37
+ __name(TsIgnore, "TsIgnore");
38
+ function Separator() {
39
+ return ``;
40
+ }
41
+ __name(Separator, "Separator");
42
+ function ImportSection(build) {
43
+ const context = build.UseUnevaluated() ? [`import { CheckContext } from "typebox/schema"`] : [];
44
+ const hashing = `import { Hashing } from "typebox/system"`;
45
+ const format = `import { Format } from "typebox/format"`;
46
+ const guard = `import { Guard } from "typebox/guard"`;
47
+ return [...context, hashing, format, guard];
48
+ }
49
+ __name(ImportSection, "ImportSection");
50
+ function ExternalSection(build) {
51
+ const { identifier } = build.External();
52
+ return [
53
+ Separator(),
54
+ TsIgnore(),
55
+ `let ${identifier} = []`,
56
+ Separator(),
57
+ TsIgnore(),
58
+ `export function SetExternal(external) { ${identifier} = external.variables }`
59
+ ];
60
+ }
61
+ __name(ExternalSection, "ExternalSection");
62
+ function FunctionSection(build) {
63
+ return build.Functions().map((func) => [Separator(), TsIgnore(), `${func};`].join("\n"));
64
+ }
65
+ __name(FunctionSection, "FunctionSection");
66
+ function ExportSection(build) {
67
+ const body = build.UseUnevaluated() ? `const context = new CheckContext({}, {}); return ${build.Entry()}` : `return ${build.Entry()}`;
68
+ return [
69
+ Separator(),
70
+ TsIgnore(),
71
+ `export function Check(value) { ${body} }`
72
+ ];
73
+ }
74
+ __name(ExportSection, "ExportSection");
75
+ function Code(...args) {
76
+ const [context, type] = arguments_exports.Match(args, {
77
+ 2: (context2, type2) => [context2, type2],
78
+ 1: (type2) => [{}, type2]
79
+ });
80
+ const build = Build(context, type);
81
+ const code = [...ImportSection(build), ...ExternalSection(build), ...FunctionSection(build), ...ExportSection(build)].join("\n");
82
+ return { External: build.External(), Code: code };
83
+ }
84
+ __name(Code, "Code");
85
+
86
+ // node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/compile/validator.mjs
87
+ var Validator = class {
88
+ static {
89
+ __name(this, "Validator");
90
+ }
91
+ /** Constructs a Validator. */
92
+ constructor(context, type) {
93
+ this.hasCodec = HasCodec(context, type);
94
+ this.buildResult = Build(context, type);
95
+ this.evaluateResult = this.buildResult.Evaluate();
96
+ }
97
+ // ----------------------------------------------------------------
98
+ // IsAccelerated
99
+ // ----------------------------------------------------------------
100
+ /** Returns true if this Validator is using JIT acceleration. */
101
+ IsAccelerated() {
102
+ return this.evaluateResult.IsAccelerated();
103
+ }
104
+ // ----------------------------------------------------------------
105
+ // Context & Type
106
+ // ----------------------------------------------------------------
107
+ /** Returns the Context for this validator. */
108
+ Context() {
109
+ return this.buildResult.Context();
110
+ }
111
+ /** Returns the underlying Type used to construct this Validator. */
112
+ Type() {
113
+ return this.buildResult.Schema();
114
+ }
115
+ // ----------------------------------------------------------------
116
+ // Code
117
+ // ----------------------------------------------------------------
118
+ /** Returns the generated code for this validator. */
119
+ Code() {
120
+ return this.evaluateResult.Code();
121
+ }
122
+ // ----------------------------------------------------------------
123
+ // Standard Validator
124
+ // ----------------------------------------------------------------
125
+ /** Performs a type-guard check on the provided value. */
126
+ Check(value) {
127
+ return this.evaluateResult.Check(value);
128
+ }
129
+ /** Validates a value and returns it. Will throw if invalid. */
130
+ Parse(value) {
131
+ const checked = this.Check(value);
132
+ if (checked)
133
+ return value;
134
+ if (settings_exports.Get().correctiveParse)
135
+ return Parser(this.Context(), this.Type(), value);
136
+ throw new ParseError(value, this.Errors(value));
137
+ }
138
+ /** Returns an array of validation errors for the given value. */
139
+ Errors(value) {
140
+ if (this.IsAccelerated() && this.Check(value))
141
+ return [];
142
+ return Errors(this.Context(), this.Type(), value);
143
+ }
144
+ // ----------------------------------------------------------------
145
+ // Value.* Operations
146
+ // ----------------------------------------------------------------
147
+ /** Cleans a value using the Validator type. */
148
+ Clean(value) {
149
+ return Clean(this.Context(), this.Type(), value);
150
+ }
151
+ /** Converts a value using the Validator type. */
152
+ Convert(value) {
153
+ return Convert(this.Context(), this.Type(), value);
154
+ }
155
+ /** Creates a value using the Validator type. */
156
+ Create() {
157
+ return Create(this.Context(), this.Type());
158
+ }
159
+ /** Creates defaults using the Validator type. */
160
+ Default(value) {
161
+ return Default(this.Context(), this.Type(), value);
162
+ }
163
+ /** Decodes a value */
164
+ Decode(value) {
165
+ const result = this.hasCodec ? Decode(this.Context(), this.Type(), value) : this.Parse(value);
166
+ return result;
167
+ }
168
+ /** Encodes a value */
169
+ Encode(value) {
170
+ const result = this.hasCodec ? Encode(this.Context(), this.Type(), value) : this.Parse(value);
171
+ return result;
172
+ }
173
+ };
174
+
175
+ // node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/compile/compile.mjs
176
+ function Compile(...args) {
177
+ const [context, type] = arguments_exports.Match(args, {
178
+ 2: (context2, type2) => [context2, type2],
179
+ 1: (type2) => [{}, type2]
180
+ });
181
+ return new Validator(context, type);
182
+ }
183
+ __name(Compile, "Compile");
184
+
185
+ // node_modules/@earendil-works/pi-coding-agent/node_modules/typebox/build/compile/index.mjs
186
+ var compile_default = Compile;
187
+
188
+ export {
189
+ Code,
190
+ Validator,
191
+ Compile,
192
+ compile_default,
193
+ compile_exports
194
+ };
@@ -0,0 +1,58 @@
1
+ import{createRequire as __pvCR}from"node:module";import{fileURLToPath as __pvF}from"node:url";import{dirname as __pvD}from"node:path";const require=__pvCR(import.meta.url);const __pvUrl=(r)=>new URL(r,import.meta.url).href;const __pvFile=(r)=>__pvF(new URL(r,import.meta.url));
2
+ import {
3
+ __name
4
+ } from "./c-CN77DCGF.mjs";
5
+
6
+ // node_modules/@juicesharp/rpiv-ask-user-question/state/external-editor.ts?ext=rpiv-ask-user-question
7
+ import { spawn } from "node:child_process";
8
+ import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
9
+ import { tmpdir } from "node:os";
10
+ import { join } from "node:path";
11
+ function runEditor(command, file) {
12
+ const [editor, ...args] = command.split(" ");
13
+ if (!editor) return Promise.reject(new Error("External editor command is empty"));
14
+ return new Promise((resolve, reject) => {
15
+ const child = spawn(editor, [...args, file], {
16
+ stdio: "inherit",
17
+ shell: process.platform === "win32"
18
+ });
19
+ child.once("error", reject);
20
+ child.once("close", (code, signal) => {
21
+ if (code === 0) {
22
+ resolve();
23
+ return;
24
+ }
25
+ const reason = signal ? `signal ${signal}` : `exit code ${code ?? "unknown"}`;
26
+ reject(new Error(`External editor exited with ${reason}`));
27
+ });
28
+ });
29
+ }
30
+ __name(runEditor, "runEditor");
31
+ async function editWithExternalEditor(tui, command, value) {
32
+ const tempDir = mkdtempSync(join(tmpdir(), "rpiv-ask-user-question-"));
33
+ const tempFile = join(tempDir, "answer.md");
34
+ let tuiStopped = false;
35
+ try {
36
+ writeFileSync(tempFile, value, "utf8");
37
+ tui.stop();
38
+ tuiStopped = true;
39
+ process.stdout.write(`Launching external editor: ${command}
40
+ Pi will resume when the editor exits.
41
+ `);
42
+ await runEditor(command, tempFile);
43
+ return readFileSync(tempFile, "utf8").replace(/\r?\n$/, "");
44
+ } finally {
45
+ try {
46
+ rmSync(tempDir, { recursive: true, force: true });
47
+ } catch {
48
+ }
49
+ if (tuiStopped) {
50
+ tui.start();
51
+ tui.requestRender(true);
52
+ }
53
+ }
54
+ }
55
+ __name(editWithExternalEditor, "editWithExternalEditor");
56
+ export {
57
+ editWithExternalEditor
58
+ };