@patze/code-cli 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/NOTICE.md +17 -0
  3. package/README.md +177 -0
  4. package/VERSION +1 -0
  5. package/bin/patze.mjs +7 -0
  6. package/dist/backend/auth.d.ts +13 -0
  7. package/dist/backend/auth.d.ts.map +1 -0
  8. package/dist/backend/auth.js +12 -0
  9. package/dist/backend/auth.js.map +1 -0
  10. package/dist/backend/client.d.ts +14 -0
  11. package/dist/backend/client.d.ts.map +1 -0
  12. package/dist/backend/client.js +51 -0
  13. package/dist/backend/client.js.map +1 -0
  14. package/dist/backend/preview-client.d.ts +33 -0
  15. package/dist/backend/preview-client.d.ts.map +1 -0
  16. package/dist/backend/preview-client.js +104 -0
  17. package/dist/backend/preview-client.js.map +1 -0
  18. package/dist/backend/preview-payload.d.ts +50 -0
  19. package/dist/backend/preview-payload.d.ts.map +1 -0
  20. package/dist/backend/preview-payload.js +92 -0
  21. package/dist/backend/preview-payload.js.map +1 -0
  22. package/dist/cli/argv.d.ts +10 -0
  23. package/dist/cli/argv.d.ts.map +1 -0
  24. package/dist/cli/argv.js +67 -0
  25. package/dist/cli/argv.js.map +1 -0
  26. package/dist/cli/commands/apply-format.d.ts +12 -0
  27. package/dist/cli/commands/apply-format.d.ts.map +1 -0
  28. package/dist/cli/commands/apply-format.js +50 -0
  29. package/dist/cli/commands/apply-format.js.map +1 -0
  30. package/dist/cli/commands/apply.d.ts +14 -0
  31. package/dist/cli/commands/apply.d.ts.map +1 -0
  32. package/dist/cli/commands/apply.js +256 -0
  33. package/dist/cli/commands/apply.js.map +1 -0
  34. package/dist/cli/commands/approve-format.d.ts +4 -0
  35. package/dist/cli/commands/approve-format.d.ts.map +1 -0
  36. package/dist/cli/commands/approve-format.js +40 -0
  37. package/dist/cli/commands/approve-format.js.map +1 -0
  38. package/dist/cli/commands/approve.d.ts +19 -0
  39. package/dist/cli/commands/approve.d.ts.map +1 -0
  40. package/dist/cli/commands/approve.js +91 -0
  41. package/dist/cli/commands/approve.js.map +1 -0
  42. package/dist/cli/commands/code.d.ts +4 -0
  43. package/dist/cli/commands/code.d.ts.map +1 -0
  44. package/dist/cli/commands/code.js +57 -0
  45. package/dist/cli/commands/code.js.map +1 -0
  46. package/dist/cli/commands/diff-format.d.ts +12 -0
  47. package/dist/cli/commands/diff-format.d.ts.map +1 -0
  48. package/dist/cli/commands/diff-format.js +151 -0
  49. package/dist/cli/commands/diff-format.js.map +1 -0
  50. package/dist/cli/commands/diff.d.ts +22 -0
  51. package/dist/cli/commands/diff.d.ts.map +1 -0
  52. package/dist/cli/commands/diff.js +101 -0
  53. package/dist/cli/commands/diff.js.map +1 -0
  54. package/dist/cli/commands/doctor.d.ts +6 -0
  55. package/dist/cli/commands/doctor.d.ts.map +1 -0
  56. package/dist/cli/commands/doctor.js +99 -0
  57. package/dist/cli/commands/doctor.js.map +1 -0
  58. package/dist/cli/commands/goal-format.d.ts +3 -0
  59. package/dist/cli/commands/goal-format.d.ts.map +1 -0
  60. package/dist/cli/commands/goal-format.js +32 -0
  61. package/dist/cli/commands/goal-format.js.map +1 -0
  62. package/dist/cli/commands/goal.d.ts +28 -0
  63. package/dist/cli/commands/goal.d.ts.map +1 -0
  64. package/dist/cli/commands/goal.js +80 -0
  65. package/dist/cli/commands/goal.js.map +1 -0
  66. package/dist/cli/commands/inspect-format.d.ts +6 -0
  67. package/dist/cli/commands/inspect-format.d.ts.map +1 -0
  68. package/dist/cli/commands/inspect-format.js +62 -0
  69. package/dist/cli/commands/inspect-format.js.map +1 -0
  70. package/dist/cli/commands/inspect.d.ts +7 -0
  71. package/dist/cli/commands/inspect.d.ts.map +1 -0
  72. package/dist/cli/commands/inspect.js +11 -0
  73. package/dist/cli/commands/inspect.js.map +1 -0
  74. package/dist/cli/commands/login.d.ts +4 -0
  75. package/dist/cli/commands/login.d.ts.map +1 -0
  76. package/dist/cli/commands/login.js +21 -0
  77. package/dist/cli/commands/login.js.map +1 -0
  78. package/dist/cli/commands/plan-format.d.ts +7 -0
  79. package/dist/cli/commands/plan-format.d.ts.map +1 -0
  80. package/dist/cli/commands/plan-format.js +48 -0
  81. package/dist/cli/commands/plan-format.js.map +1 -0
  82. package/dist/cli/commands/plan.d.ts +13 -0
  83. package/dist/cli/commands/plan.d.ts.map +1 -0
  84. package/dist/cli/commands/plan.js +64 -0
  85. package/dist/cli/commands/plan.js.map +1 -0
  86. package/dist/cli/commands/runs.d.ts +5 -0
  87. package/dist/cli/commands/runs.d.ts.map +1 -0
  88. package/dist/cli/commands/runs.js +25 -0
  89. package/dist/cli/commands/runs.js.map +1 -0
  90. package/dist/cli/commands/session-snapshot-format.d.ts +3 -0
  91. package/dist/cli/commands/session-snapshot-format.d.ts.map +1 -0
  92. package/dist/cli/commands/session-snapshot-format.js +5 -0
  93. package/dist/cli/commands/session-snapshot-format.js.map +1 -0
  94. package/dist/cli/commands/status-format.d.ts +11 -0
  95. package/dist/cli/commands/status-format.d.ts.map +1 -0
  96. package/dist/cli/commands/status-format.js +57 -0
  97. package/dist/cli/commands/status-format.js.map +1 -0
  98. package/dist/cli/commands/status.d.ts +4 -0
  99. package/dist/cli/commands/status.d.ts.map +1 -0
  100. package/dist/cli/commands/status.js +12 -0
  101. package/dist/cli/commands/status.js.map +1 -0
  102. package/dist/cli/commands/trust-loop-snapshot.d.ts +3 -0
  103. package/dist/cli/commands/trust-loop-snapshot.d.ts.map +1 -0
  104. package/dist/cli/commands/trust-loop-snapshot.js +125 -0
  105. package/dist/cli/commands/trust-loop-snapshot.js.map +1 -0
  106. package/dist/cli/commands/verify-drift-guard.d.ts +2 -0
  107. package/dist/cli/commands/verify-drift-guard.d.ts.map +1 -0
  108. package/dist/cli/commands/verify-drift-guard.js +11 -0
  109. package/dist/cli/commands/verify-drift-guard.js.map +1 -0
  110. package/dist/cli/commands/verify.d.ts +12 -0
  111. package/dist/cli/commands/verify.d.ts.map +1 -0
  112. package/dist/cli/commands/verify.js +62 -0
  113. package/dist/cli/commands/verify.js.map +1 -0
  114. package/dist/cli/help.d.ts +3 -0
  115. package/dist/cli/help.d.ts.map +1 -0
  116. package/dist/cli/help.js +36 -0
  117. package/dist/cli/help.js.map +1 -0
  118. package/dist/cli/interactive/agent-turn-format.d.ts +15 -0
  119. package/dist/cli/interactive/agent-turn-format.d.ts.map +1 -0
  120. package/dist/cli/interactive/agent-turn-format.js +70 -0
  121. package/dist/cli/interactive/agent-turn-format.js.map +1 -0
  122. package/dist/cli/interactive/agent-turn.d.ts +9 -0
  123. package/dist/cli/interactive/agent-turn.d.ts.map +1 -0
  124. package/dist/cli/interactive/agent-turn.js +103 -0
  125. package/dist/cli/interactive/agent-turn.js.map +1 -0
  126. package/dist/cli/interactive/header.d.ts +4 -0
  127. package/dist/cli/interactive/header.d.ts.map +1 -0
  128. package/dist/cli/interactive/header.js +28 -0
  129. package/dist/cli/interactive/header.js.map +1 -0
  130. package/dist/cli/interactive/permissions-command.d.ts +15 -0
  131. package/dist/cli/interactive/permissions-command.d.ts.map +1 -0
  132. package/dist/cli/interactive/permissions-command.js +88 -0
  133. package/dist/cli/interactive/permissions-command.js.map +1 -0
  134. package/dist/cli/interactive/permissions-format.d.ts +18 -0
  135. package/dist/cli/interactive/permissions-format.d.ts.map +1 -0
  136. package/dist/cli/interactive/permissions-format.js +142 -0
  137. package/dist/cli/interactive/permissions-format.js.map +1 -0
  138. package/dist/cli/interactive/permissions-keys.d.ts +5 -0
  139. package/dist/cli/interactive/permissions-keys.d.ts.map +1 -0
  140. package/dist/cli/interactive/permissions-keys.js +58 -0
  141. package/dist/cli/interactive/permissions-keys.js.map +1 -0
  142. package/dist/cli/interactive/session-state.d.ts +68 -0
  143. package/dist/cli/interactive/session-state.d.ts.map +1 -0
  144. package/dist/cli/interactive/session-state.js +2 -0
  145. package/dist/cli/interactive/session-state.js.map +1 -0
  146. package/dist/cli/interactive/session.d.ts +71 -0
  147. package/dist/cli/interactive/session.d.ts.map +1 -0
  148. package/dist/cli/interactive/session.js +244 -0
  149. package/dist/cli/interactive/session.js.map +1 -0
  150. package/dist/cli/interactive/shell.d.ts +13 -0
  151. package/dist/cli/interactive/shell.d.ts.map +1 -0
  152. package/dist/cli/interactive/shell.js +115 -0
  153. package/dist/cli/interactive/shell.js.map +1 -0
  154. package/dist/cli/interactive/slash-dispatch.d.ts +14 -0
  155. package/dist/cli/interactive/slash-dispatch.d.ts.map +1 -0
  156. package/dist/cli/interactive/slash-dispatch.js +276 -0
  157. package/dist/cli/interactive/slash-dispatch.js.map +1 -0
  158. package/dist/cli/interactive/slash-parse.d.ts +9 -0
  159. package/dist/cli/interactive/slash-parse.d.ts.map +1 -0
  160. package/dist/cli/interactive/slash-parse.js +78 -0
  161. package/dist/cli/interactive/slash-parse.js.map +1 -0
  162. package/dist/cli/interactive/slash-registry.d.ts +11 -0
  163. package/dist/cli/interactive/slash-registry.d.ts.map +1 -0
  164. package/dist/cli/interactive/slash-registry.js +26 -0
  165. package/dist/cli/interactive/slash-registry.js.map +1 -0
  166. package/dist/cli/interactive/slash-suggest.d.ts +4 -0
  167. package/dist/cli/interactive/slash-suggest.d.ts.map +1 -0
  168. package/dist/cli/interactive/slash-suggest.js +46 -0
  169. package/dist/cli/interactive/slash-suggest.js.map +1 -0
  170. package/dist/cli/interactive/tools-catalog.d.ts +8 -0
  171. package/dist/cli/interactive/tools-catalog.d.ts.map +1 -0
  172. package/dist/cli/interactive/tools-catalog.js +51 -0
  173. package/dist/cli/interactive/tools-catalog.js.map +1 -0
  174. package/dist/cli/main.d.ts +2 -0
  175. package/dist/cli/main.d.ts.map +1 -0
  176. package/dist/cli/main.js +69 -0
  177. package/dist/cli/main.js.map +1 -0
  178. package/dist/cli/ui/diff-view.d.ts +7 -0
  179. package/dist/cli/ui/diff-view.d.ts.map +1 -0
  180. package/dist/cli/ui/diff-view.js +18 -0
  181. package/dist/cli/ui/diff-view.js.map +1 -0
  182. package/dist/cli/ui/printer.d.ts +13 -0
  183. package/dist/cli/ui/printer.d.ts.map +1 -0
  184. package/dist/cli/ui/printer.js +24 -0
  185. package/dist/cli/ui/printer.js.map +1 -0
  186. package/dist/cli/ui/spinner.d.ts +5 -0
  187. package/dist/cli/ui/spinner.d.ts.map +1 -0
  188. package/dist/cli/ui/spinner.js +30 -0
  189. package/dist/cli/ui/spinner.js.map +1 -0
  190. package/dist/cli/ui/text-writer.d.ts +8 -0
  191. package/dist/cli/ui/text-writer.d.ts.map +1 -0
  192. package/dist/cli/ui/text-writer.js +17 -0
  193. package/dist/cli/ui/text-writer.js.map +1 -0
  194. package/dist/config/config.d.ts +30 -0
  195. package/dist/config/config.d.ts.map +1 -0
  196. package/dist/config/config.js +133 -0
  197. package/dist/config/config.js.map +1 -0
  198. package/dist/runtime/apply-verify.d.ts +28 -0
  199. package/dist/runtime/apply-verify.d.ts.map +1 -0
  200. package/dist/runtime/apply-verify.js +180 -0
  201. package/dist/runtime/apply-verify.js.map +1 -0
  202. package/dist/runtime/approvals.d.ts +10 -0
  203. package/dist/runtime/approvals.d.ts.map +1 -0
  204. package/dist/runtime/approvals.js +22 -0
  205. package/dist/runtime/approvals.js.map +1 -0
  206. package/dist/runtime/content-hash.d.ts +3 -0
  207. package/dist/runtime/content-hash.d.ts.map +1 -0
  208. package/dist/runtime/content-hash.js +8 -0
  209. package/dist/runtime/content-hash.js.map +1 -0
  210. package/dist/runtime/digest-mask.d.ts +2 -0
  211. package/dist/runtime/digest-mask.d.ts.map +1 -0
  212. package/dist/runtime/digest-mask.js +11 -0
  213. package/dist/runtime/digest-mask.js.map +1 -0
  214. package/dist/runtime/inspect.d.ts +20 -0
  215. package/dist/runtime/inspect.d.ts.map +1 -0
  216. package/dist/runtime/inspect.js +152 -0
  217. package/dist/runtime/inspect.js.map +1 -0
  218. package/dist/runtime/patch-apply.d.ts +32 -0
  219. package/dist/runtime/patch-apply.d.ts.map +1 -0
  220. package/dist/runtime/patch-apply.js +170 -0
  221. package/dist/runtime/patch-apply.js.map +1 -0
  222. package/dist/runtime/patch-path-guard.d.ts +17 -0
  223. package/dist/runtime/patch-path-guard.d.ts.map +1 -0
  224. package/dist/runtime/patch-path-guard.js +56 -0
  225. package/dist/runtime/patch-path-guard.js.map +1 -0
  226. package/dist/runtime/patch-proposal.d.ts +55 -0
  227. package/dist/runtime/patch-proposal.d.ts.map +1 -0
  228. package/dist/runtime/patch-proposal.js +118 -0
  229. package/dist/runtime/patch-proposal.js.map +1 -0
  230. package/dist/runtime/permissions.d.ts +18 -0
  231. package/dist/runtime/permissions.d.ts.map +1 -0
  232. package/dist/runtime/permissions.js +91 -0
  233. package/dist/runtime/permissions.js.map +1 -0
  234. package/dist/runtime/sandbox.d.ts +9 -0
  235. package/dist/runtime/sandbox.d.ts.map +1 -0
  236. package/dist/runtime/sandbox.js +17 -0
  237. package/dist/runtime/sandbox.js.map +1 -0
  238. package/dist/runtime/unified-diff.d.ts +19 -0
  239. package/dist/runtime/unified-diff.d.ts.map +1 -0
  240. package/dist/runtime/unified-diff.js +114 -0
  241. package/dist/runtime/unified-diff.js.map +1 -0
  242. package/dist/runtime/verifier.d.ts +6 -0
  243. package/dist/runtime/verifier.d.ts.map +1 -0
  244. package/dist/runtime/verifier.js +16 -0
  245. package/dist/runtime/verifier.js.map +1 -0
  246. package/dist/runtime/workspace.d.ts +10 -0
  247. package/dist/runtime/workspace.d.ts.map +1 -0
  248. package/dist/runtime/workspace.js +107 -0
  249. package/dist/runtime/workspace.js.map +1 -0
  250. package/dist/version.d.ts +3 -0
  251. package/dist/version.d.ts.map +1 -0
  252. package/dist/version.js +10 -0
  253. package/dist/version.js.map +1 -0
  254. package/docs/beta-feedback-template.md +75 -0
  255. package/docs/beta-feedback-triage.md +169 -0
  256. package/docs/beta-release-handoff.md +182 -0
  257. package/docs/beta-tester-checklist.md +62 -0
  258. package/docs/install-beta.md +77 -0
  259. package/docs/internal-beta.md +84 -0
  260. package/docs/known-limitations.md +62 -0
  261. package/docs/patze-cli-architecture.md +137 -0
  262. package/docs/patze-cli-codex-reference-study.md +43 -0
  263. package/docs/release-checklist.md +83 -0
  264. package/docs/safety-model.md +69 -0
  265. package/docs/smoke-command-guide.md +61 -0
  266. package/docs/trust-loop.md +90 -0
  267. package/docs/uninstall-reset.md +44 -0
  268. package/package.json +39 -0
@@ -0,0 +1,244 @@
1
+ import { DEFAULT_PERMISSION_MODE } from "../../runtime/permissions.js";
2
+ export class InteractiveSession {
3
+ cwd;
4
+ transcript = [];
5
+ currentGoal = null;
6
+ lastGoalObjective = null;
7
+ lastInspectSummary = null;
8
+ lastPreviewResult = null;
9
+ pendingAction = null;
10
+ diffReviewState = null;
11
+ approvalGate = null;
12
+ pendingApplyConfirmation = null;
13
+ lastApplyResult = null;
14
+ lastVerifyResult = null;
15
+ applyHistory = [];
16
+ verifyDriftBlocked = false;
17
+ verifyDriftGateKey = null;
18
+ consumedGateKeys = new Set();
19
+ permissionMode = DEFAULT_PERMISSION_MODE;
20
+ constructor(cwd) {
21
+ this.cwd = cwd;
22
+ }
23
+ append(entry) {
24
+ this.transcript.push(entry);
25
+ }
26
+ clear() {
27
+ this.transcript = [];
28
+ }
29
+ resetAgentState() {
30
+ this.currentGoal = null;
31
+ this.lastGoalObjective = null;
32
+ this.lastInspectSummary = null;
33
+ this.lastPreviewResult = null;
34
+ this.pendingAction = null;
35
+ this.diffReviewState = null;
36
+ this.approvalGate = null;
37
+ this.pendingApplyConfirmation = null;
38
+ this.lastApplyResult = null;
39
+ this.lastVerifyResult = null;
40
+ this.applyHistory = [];
41
+ this.verifyDriftBlocked = false;
42
+ this.verifyDriftGateKey = null;
43
+ this.consumedGateKeys.clear();
44
+ }
45
+ size() {
46
+ return this.transcript.length;
47
+ }
48
+ snapshot() {
49
+ return [...this.transcript];
50
+ }
51
+ setCurrentGoal(objective) {
52
+ const trimmed = objective.trim();
53
+ this.currentGoal = trimmed || null;
54
+ this.lastGoalObjective = trimmed || null;
55
+ }
56
+ getCurrentGoal() {
57
+ return this.currentGoal;
58
+ }
59
+ setLastGoalObjective(objective) {
60
+ this.lastGoalObjective = objective.trim() || null;
61
+ this.currentGoal = this.lastGoalObjective;
62
+ }
63
+ getLastGoalObjective() {
64
+ return this.lastGoalObjective ?? this.currentGoal;
65
+ }
66
+ setLastInspectSummary(summary) {
67
+ this.lastInspectSummary = summary;
68
+ }
69
+ getLastInspectSummary() {
70
+ return this.lastInspectSummary ? { ...this.lastInspectSummary, contextFiles: [...this.lastInspectSummary.contextFiles] } : null;
71
+ }
72
+ setLastPreviewResult(result) {
73
+ this.lastPreviewResult = result;
74
+ }
75
+ getLastPreviewResult() {
76
+ if (!this.lastPreviewResult) {
77
+ return null;
78
+ }
79
+ return {
80
+ ...this.lastPreviewResult,
81
+ localSteps: this.lastPreviewResult.localSteps ? [...this.lastPreviewResult.localSteps] : undefined,
82
+ server: this.lastPreviewResult.server
83
+ ? {
84
+ ...this.lastPreviewResult.server,
85
+ finding_codes: [...this.lastPreviewResult.server.finding_codes],
86
+ patch_proposal: this.lastPreviewResult.server.patch_proposal,
87
+ }
88
+ : undefined,
89
+ };
90
+ }
91
+ setPendingAction(action) {
92
+ this.pendingAction = action;
93
+ }
94
+ clearPendingAction() {
95
+ this.pendingAction = null;
96
+ }
97
+ getPendingAction() {
98
+ return this.pendingAction ? { ...this.pendingAction } : null;
99
+ }
100
+ hasPendingAction() {
101
+ return this.pendingAction !== null;
102
+ }
103
+ setDiffReviewState(state) {
104
+ this.diffReviewState = {
105
+ ...state,
106
+ filesChanged: [...state.filesChanged],
107
+ };
108
+ this.clearApprovalGate();
109
+ }
110
+ getDiffReviewState() {
111
+ if (!this.diffReviewState) {
112
+ return null;
113
+ }
114
+ return {
115
+ ...this.diffReviewState,
116
+ filesChanged: [...this.diffReviewState.filesChanged],
117
+ };
118
+ }
119
+ clearDiffReviewState() {
120
+ this.diffReviewState = null;
121
+ }
122
+ setApprovalGate(gate) {
123
+ this.approvalGate = {
124
+ ...gate,
125
+ filesChanged: [...gate.filesChanged],
126
+ };
127
+ }
128
+ getApprovalGate() {
129
+ if (!this.approvalGate) {
130
+ return null;
131
+ }
132
+ return {
133
+ ...this.approvalGate,
134
+ filesChanged: [...this.approvalGate.filesChanged],
135
+ };
136
+ }
137
+ clearApprovalGate() {
138
+ this.approvalGate = null;
139
+ }
140
+ clearReviewAndApprovalState() {
141
+ this.clearDiffReviewState();
142
+ this.clearApprovalGate();
143
+ this.clearPendingAction();
144
+ this.clearPendingApplyConfirmation();
145
+ }
146
+ setPendingApplyConfirmation(state) {
147
+ this.pendingApplyConfirmation = { ...state };
148
+ }
149
+ getPendingApplyConfirmation() {
150
+ return this.pendingApplyConfirmation ? { ...this.pendingApplyConfirmation } : null;
151
+ }
152
+ clearPendingApplyConfirmation() {
153
+ this.pendingApplyConfirmation = null;
154
+ }
155
+ hasPendingApplyConfirmation() {
156
+ return this.pendingApplyConfirmation !== null;
157
+ }
158
+ setLastApplyResult(result) {
159
+ this.lastApplyResult = {
160
+ ...result,
161
+ filesWritten: [...result.filesWritten],
162
+ files: result.files.map((file) => ({ ...file })),
163
+ };
164
+ this.appendApplyHistory(result);
165
+ }
166
+ appendApplyHistory(result) {
167
+ this.applyHistory.push({
168
+ ...result,
169
+ filesWritten: [...result.filesWritten],
170
+ files: result.files.map((file) => ({ ...file })),
171
+ });
172
+ if (this.applyHistory.length > 20) {
173
+ this.applyHistory.shift();
174
+ }
175
+ }
176
+ getApplyHistory() {
177
+ return this.applyHistory.map((entry) => ({
178
+ ...entry,
179
+ filesWritten: [...entry.filesWritten],
180
+ files: entry.files.map((file) => ({ ...file })),
181
+ }));
182
+ }
183
+ getLastApplyResult() {
184
+ if (!this.lastApplyResult) {
185
+ return null;
186
+ }
187
+ return {
188
+ ...this.lastApplyResult,
189
+ filesWritten: [...this.lastApplyResult.filesWritten],
190
+ files: this.lastApplyResult.files.map((file) => ({ ...file })),
191
+ };
192
+ }
193
+ setLastVerifyResult(result) {
194
+ this.lastVerifyResult = {
195
+ ...result,
196
+ filesChecked: [...result.filesChecked],
197
+ issues: [...result.issues],
198
+ };
199
+ }
200
+ getLastVerifyResult() {
201
+ if (!this.lastVerifyResult) {
202
+ return null;
203
+ }
204
+ return {
205
+ ...this.lastVerifyResult,
206
+ filesChecked: [...this.lastVerifyResult.filesChecked],
207
+ issues: [...this.lastVerifyResult.issues],
208
+ };
209
+ }
210
+ markVerifyDriftBlocked(artifactDigest, previewDigest) {
211
+ this.verifyDriftBlocked = true;
212
+ this.verifyDriftGateKey = this.buildGateKey(artifactDigest, previewDigest);
213
+ this.clearReviewAndApprovalState();
214
+ }
215
+ clearVerifyDriftBlocked() {
216
+ this.verifyDriftBlocked = false;
217
+ this.verifyDriftGateKey = null;
218
+ }
219
+ isVerifyDriftBlocked() {
220
+ return this.verifyDriftBlocked;
221
+ }
222
+ getVerifyDriftGateKey() {
223
+ return this.verifyDriftGateKey;
224
+ }
225
+ buildGateKey(artifactDigest, previewDigest) {
226
+ return `${artifactDigest}:${previewDigest}`;
227
+ }
228
+ markGateConsumed(artifactDigest, previewDigest) {
229
+ this.consumedGateKeys.add(this.buildGateKey(artifactDigest, previewDigest));
230
+ }
231
+ isGateConsumed(gateKey) {
232
+ return this.consumedGateKeys.has(gateKey);
233
+ }
234
+ isApprovalGateConsumed(gate) {
235
+ return this.isGateConsumed(this.buildGateKey(gate.artifactDigest, gate.previewDigest));
236
+ }
237
+ getPermissionMode() {
238
+ return this.permissionMode;
239
+ }
240
+ setPermissionMode(mode) {
241
+ this.permissionMode = mode;
242
+ }
243
+ }
244
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/cli/interactive/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { TextWriter } from "../ui/text-writer.js";
2
+ export type InteractiveShellOptions = {
3
+ cwd?: string;
4
+ input?: readonly string[];
5
+ writer?: TextWriter;
6
+ prompt?: string;
7
+ };
8
+ export type InteractiveShellResult = {
9
+ exitCode: number;
10
+ lines: string[];
11
+ };
12
+ export declare function runInteractiveShell(options?: InteractiveShellOptions): Promise<InteractiveShellResult>;
13
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/shell.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAWtD,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CAwHjC"}
@@ -0,0 +1,115 @@
1
+ import { createInterface } from "node:readline";
2
+ import { createBufferWriter, createStdoutWriter } from "../ui/text-writer.js";
3
+ import { INTERACTIVE_PROMPT, renderInteractiveHeader } from "./header.js";
4
+ import { InteractiveSession } from "./session.js";
5
+ import { parseSlashInput } from "./slash-parse.js";
6
+ import { dispatchAgentPrompt, dispatchSlashCommand, } from "./slash-dispatch.js";
7
+ import { runApplyConfirmationLine } from "../commands/apply.js";
8
+ export async function runInteractiveShell(options = {}) {
9
+ const cwd = options.cwd ?? process.cwd();
10
+ const buffer = createBufferWriter();
11
+ const sink = options.writer ?? createStdoutWriter();
12
+ const output = {
13
+ line(text = "") {
14
+ sink.line(text);
15
+ buffer.line(text);
16
+ },
17
+ };
18
+ const prompt = options.prompt ?? INTERACTIVE_PROMPT;
19
+ const session = new InteractiveSession(cwd);
20
+ for (const line of renderInteractiveHeader(cwd, session.getPermissionMode())) {
21
+ output.line(line);
22
+ }
23
+ output.line("");
24
+ let exitCode = 0;
25
+ const processLine = async (rawLine) => {
26
+ const line = rawLine.trim();
27
+ if (!line) {
28
+ return false;
29
+ }
30
+ const parsed = parseSlashInput(line);
31
+ if (!parsed) {
32
+ if (session.hasPendingApplyConfirmation()) {
33
+ const result = runApplyConfirmationLine(session, line);
34
+ session.append({ input: line, lines: result.lines });
35
+ for (const entry of result.lines) {
36
+ output.line(entry);
37
+ }
38
+ output.line("");
39
+ exitCode = result.exitCode;
40
+ return false;
41
+ }
42
+ const result = await dispatchAgentPrompt(session, line);
43
+ session.append({ input: line, lines: result.lines });
44
+ for (const entry of result.lines) {
45
+ output.line(entry);
46
+ }
47
+ output.line("");
48
+ exitCode = result.exitCode;
49
+ return result.exitShell;
50
+ }
51
+ const result = await dispatchSlashCommand(session, parsed, {
52
+ permissionsInteractive: Boolean(!options.input && process.stdin.isTTY && process.stdout.isTTY),
53
+ });
54
+ session.append({ input: line, lines: result.lines });
55
+ for (const entry of result.lines) {
56
+ output.line(entry);
57
+ }
58
+ output.line("");
59
+ exitCode = result.exitCode;
60
+ return result.exitShell;
61
+ };
62
+ if (options.input) {
63
+ output.line(`${prompt}(interactive)`);
64
+ for (const rawLine of options.input) {
65
+ output.line(`${prompt}${rawLine}`);
66
+ const shouldExit = await processLine(rawLine);
67
+ if (shouldExit) {
68
+ break;
69
+ }
70
+ }
71
+ return { exitCode, lines: buffer.lines };
72
+ }
73
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
74
+ const rl = createInterface({ input: process.stdin, crlfDelay: Infinity });
75
+ output.line(`${prompt}(piped)`);
76
+ try {
77
+ for await (const rawLine of rl) {
78
+ output.line(`${prompt}${rawLine}`);
79
+ const shouldExit = await processLine(rawLine);
80
+ if (shouldExit) {
81
+ break;
82
+ }
83
+ }
84
+ }
85
+ finally {
86
+ rl.close();
87
+ }
88
+ return { exitCode, lines: buffer.lines };
89
+ }
90
+ const rl = createInterface({
91
+ input: process.stdin,
92
+ output: process.stdout,
93
+ terminal: true,
94
+ prompt,
95
+ });
96
+ rl.prompt();
97
+ await new Promise((resolvePromise) => {
98
+ rl.on("line", (rawLine) => {
99
+ void (async () => {
100
+ const shouldExit = await processLine(rawLine);
101
+ if (shouldExit) {
102
+ rl.close();
103
+ resolvePromise();
104
+ return;
105
+ }
106
+ rl.prompt();
107
+ })();
108
+ });
109
+ rl.on("close", () => {
110
+ resolvePromise();
111
+ });
112
+ });
113
+ return { exitCode, lines: buffer.lines };
114
+ }
115
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/cli/interactive/shell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { InteractiveSession } from "./session.js";
2
+ import type { ParsedSlashInput } from "./slash-parse.js";
3
+ export type SlashDispatchContext = {
4
+ permissionsInteractive?: boolean;
5
+ permissionKeySequence?: readonly string[];
6
+ };
7
+ export type SlashDispatchResult = {
8
+ lines: string[];
9
+ exitShell: boolean;
10
+ exitCode: number;
11
+ };
12
+ export declare function dispatchSlashCommand(session: InteractiveSession, parsed: ParsedSlashInput, context?: SlashDispatchContext): Promise<SlashDispatchResult>;
13
+ export declare function dispatchAgentPrompt(session: InteractiveSession, text: string): Promise<SlashDispatchResult>;
14
+ //# sourceMappingURL=slash-dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slash-dispatch.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/slash-dispatch.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAaxD,MAAM,MAAM,oBAAoB,GAAG;IACjC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAuD9B;AA6OD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,mBAAmB,CAAC,CAO9B"}