@straiffi/archon 1.11.14 → 1.11.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/client/assets/{ActivityView-CXlLfbio.js → ActivityView-TwJeVDII.js} +1 -1
  2. package/dist/client/assets/{GitHubActionsDialog-COncogiu.js → GitHubActionsDialog-Umiz7hRS.js} +1 -1
  3. package/dist/client/assets/VerificationDialog-BVaLckVH.js +4 -0
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-BgpjZv9J.js → architectureDiagram-3BPJPVTR-DG6n6a9N.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM-DZOzPj8L.js → blockDiagram-GPEHLZMM-fpqlAUZA.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-CH8w_-4O.js → c4Diagram-AAUBKEIU-DD-BA8Fj.js} +1 -1
  7. package/dist/client/assets/channel-BvWs2-ry.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-BhCJUMWk.js → chunk-2J33WTMH-BcwQlxYR.js} +1 -1
  9. package/dist/client/assets/{chunk-3OPIFGDE-B4ljJWcN.js → chunk-3OPIFGDE-DCbOiRKI.js} +1 -1
  10. package/dist/client/assets/{chunk-5ZQYHXKU-BokkrzzD.js → chunk-5ZQYHXKU-BAgSocEO.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-V-Kd95sz.js → chunk-727SXJPM-0NBz7Bl7.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-D7ZyW65i.js → chunk-AQP2D5EJ-BgLpjpch.js} +1 -1
  13. package/dist/client/assets/{chunk-CSCIHK7Q-3cPiGWR4.js → chunk-CSCIHK7Q-CFV8R2WL.js} +1 -1
  14. package/dist/client/assets/{chunk-KSCS5N6A-fh-t3Kan.js → chunk-KSCS5N6A-B-5OABYB.js} +1 -1
  15. package/dist/client/assets/{chunk-L5ZTLDWV-Bz_XmsGr.js → chunk-L5ZTLDWV-BEakyLfX.js} +1 -1
  16. package/dist/client/assets/{chunk-LZXEDZCA-DUQIbmfo.js → chunk-LZXEDZCA-k1JqO5jl.js} +2 -2
  17. package/dist/client/assets/{chunk-ND2GUHAM-BeaXA2cA.js → chunk-ND2GUHAM-CAvkgbq4.js} +1 -1
  18. package/dist/client/assets/{chunk-NZK2D7GU-Cljr0eIp.js → chunk-NZK2D7GU-B1XxeNv6.js} +1 -1
  19. package/dist/client/assets/{chunk-O5CBEL6O-BSZxUONE.js → chunk-O5CBEL6O-xsxGQlBc.js} +1 -1
  20. package/dist/client/assets/{chunk-WU5MYG2G-CqeEBV6t.js → chunk-WU5MYG2G-D2RTcS5J.js} +1 -1
  21. package/dist/client/assets/classDiagram-4FO5ZUOK-CXujfiH2.js +1 -0
  22. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BpQoPe_W.js +1 -0
  23. package/dist/client/assets/{dagre-BM42HDAG-C684sP5O.js → dagre-BM42HDAG-DQRkT0rW.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-Bsuw7S1w.js → diagram-2AECGRRQ-DLxnmFG_.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-B7TKNAIK.js → diagram-5GNKFQAL-Cu1nMouP.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-RPOTY2uQ.js → diagram-KO2AKTUF-BCpHrNi4.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-Dpk6toIw.js → diagram-LMA3HP47-CIM0-geo.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-DVJDTxyc.js → diagram-OG6HWLK6-DV8jDGdy.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-BTCHMpI9.js → erDiagram-TEJ5UH35-C-5Pkrkl.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-DJHpUHaK.js → flowDiagram-I6XJVG4X-CDPh9OIS.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-B3lqQNjh.js → ganttDiagram-6RSMTGT7-jncsu8xZ.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-kSFZuvH6.js → gitGraphDiagram-PVQCEYII-DGWMJkfX.js} +1 -1
  33. package/dist/client/assets/index-C8n_tSJG.js +293 -0
  34. package/dist/client/assets/{infoDiagram-5YYISTIA-D7rhmUR9.js → infoDiagram-5YYISTIA-B4xDH_w0.js} +1 -1
  35. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CFrqWdH6.js → ishikawaDiagram-YF4QCWOH-DVdd9VXs.js} +1 -1
  36. package/dist/client/assets/{journeyDiagram-JHISSGLW-BPgPF00X.js → journeyDiagram-JHISSGLW-nOtumTZv.js} +1 -1
  37. package/dist/client/assets/{kanban-definition-UN3LZRKU-BJU3LTu3.js → kanban-definition-UN3LZRKU-DDOXGouj.js} +1 -1
  38. package/dist/client/assets/{line-DTRSChYM.js → line-Bv23U4ui.js} +1 -1
  39. package/dist/client/assets/{mermaid-parser.core-X8EDtr9G.js → mermaid-parser.core-G9FbMuHU.js} +1 -1
  40. package/dist/client/assets/{mermaid.core-CQDbIF5j.js → mermaid.core-B3CWAqqw.js} +3 -3
  41. package/dist/client/assets/{mindmap-definition-RKZ34NQL-Bcke6M7z.js → mindmap-definition-RKZ34NQL-DjSz56M7.js} +1 -1
  42. package/dist/client/assets/{pieDiagram-4H26LBE5-j8xeTgqq.js → pieDiagram-4H26LBE5-DSWgdOVl.js} +1 -1
  43. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-OlvBffG8.js → quadrantDiagram-W4KKPZXB-DEupU1aE.js} +1 -1
  44. package/dist/client/assets/{requirementDiagram-4Y6WPE33-DA6zNi15.js → requirementDiagram-4Y6WPE33-BhBfAL0L.js} +1 -1
  45. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BsS5qud8.js → sankeyDiagram-5OEKKPKP-CbjG9Vw2.js} +1 -1
  46. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BfZ_W9Jc.js → sequenceDiagram-3UESZ5HK-1Q4xZQSJ.js} +1 -1
  47. package/dist/client/assets/{stateDiagram-AJRCARHV-C7uuqC0M.js → stateDiagram-AJRCARHV-OtJd_YEY.js} +1 -1
  48. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Bkxwy8iL.js +1 -0
  49. package/dist/client/assets/{timeline-definition-PNZ67QCA-yuywaFQ6.js → timeline-definition-PNZ67QCA-CABkNCpN.js} +1 -1
  50. package/dist/client/assets/{vennDiagram-CIIHVFJN-Cxlyjlnx.js → vennDiagram-CIIHVFJN-BC2gbfhD.js} +1 -1
  51. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DcJ0jJo4.js → wardleyDiagram-YWT4CUSO-Bkh5qr4Q.js} +1 -1
  52. package/dist/client/assets/{xychartDiagram-2RQKCTM6-Cia16EBC.js → xychartDiagram-2RQKCTM6-BWDBD0AE.js} +1 -1
  53. package/dist/client/index.html +1 -1
  54. package/dist/server/index.js +2 -0
  55. package/dist/server/index.js.map +1 -1
  56. package/dist/server/lib/agent.js +43 -10
  57. package/dist/server/lib/agent.js.map +1 -1
  58. package/dist/server/lib/agentProvider.js.map +1 -1
  59. package/dist/server/lib/opencodeAgentProvider.js +11 -1
  60. package/dist/server/lib/opencodeAgentProvider.js.map +1 -1
  61. package/dist/server/lib/opencodeApprovalContext.js +38 -0
  62. package/dist/server/lib/opencodeApprovalContext.js.map +1 -0
  63. package/dist/server/lib/opencodeApprovalLifecycle.js +49 -0
  64. package/dist/server/lib/opencodeApprovalLifecycle.js.map +1 -0
  65. package/dist/server/lib/opencodeApprovalRoutes.js +51 -0
  66. package/dist/server/lib/opencodeApprovalRoutes.js.map +1 -0
  67. package/dist/server/lib/opencodeApprovalSchema.js +31 -0
  68. package/dist/server/lib/opencodeApprovalSchema.js.map +1 -0
  69. package/dist/server/lib/opencodeApprovalTransport.js +713 -0
  70. package/dist/server/lib/opencodeApprovalTransport.js.map +1 -0
  71. package/dist/server/lib/opencodeApprovalTypes.js +2 -0
  72. package/dist/server/lib/opencodeApprovalTypes.js.map +1 -0
  73. package/dist/server/lib/opencodeToolApprovals.js +371 -0
  74. package/dist/server/lib/opencodeToolApprovals.js.map +1 -0
  75. package/dist/server/lib/planModeQuestions.js +4 -0
  76. package/dist/server/lib/planModeQuestions.js.map +1 -1
  77. package/dist/server/lib/restrictedFilePrompt.js +11 -3
  78. package/dist/server/lib/restrictedFilePrompt.js.map +1 -1
  79. package/dist/server/lib/reviewAgentWatchdog.js +5 -5
  80. package/dist/server/lib/reviewAgentWatchdog.js.map +1 -1
  81. package/dist/server/lib/reviewPromptContext.js +5 -3
  82. package/dist/server/lib/reviewPromptContext.js.map +1 -1
  83. package/dist/server/workers/plan.js +47 -41
  84. package/dist/server/workers/plan.js.map +1 -1
  85. package/package.json +1 -1
  86. package/dist/client/assets/VerificationDialog-DcKjv3mg.js +0 -4
  87. package/dist/client/assets/channel-DOoXSYAr.js +0 -1
  88. package/dist/client/assets/classDiagram-4FO5ZUOK-DKWNm6Cx.js +0 -1
  89. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-JFUHs0Z7.js +0 -1
  90. package/dist/client/assets/index-CXBsxrT1.js +0 -293
  91. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-B2rL_9Nk.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencodeApprovalTransport.js","sourceRoot":"","sources":["../../../server/lib/opencodeApprovalTransport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=opencodeApprovalTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencodeApprovalTypes.js","sourceRoot":"","sources":["../../../server/lib/opencodeApprovalTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,371 @@
1
+ import { createHash, randomUUID } from 'node:crypto';
2
+ import db from '../db.js';
3
+ import { getExecutionRun, transitionExecutionRun } from './executionRuns.js';
4
+ import { initializeOpencodeApprovalSchema } from './opencodeApprovalSchema.js';
5
+ import { appendOpencodeApprovalLifecycleEvent } from './opencodeApprovalLifecycle.js';
6
+ import { createDeferredRealtimeBroadcaster } from './realtime.js';
7
+ const APPROVAL_EXPIRY_MS = 24 * 60 * 60 * 1_000;
8
+ const WAIT_CACHE_TTL_MS = APPROVAL_EXPIRY_MS;
9
+ const MAX_IDLE_WAIT_CONTEXTS = 2_048;
10
+ const liveRequests = new Map();
11
+ const waitTimings = new Map();
12
+ const contextKey = (context) => JSON.stringify([
13
+ context.projectId, context.parentKind, context.parentId, context.executionRunId ?? null,
14
+ ]);
15
+ const pruneWaitTimings = () => {
16
+ const now = performance.now();
17
+ const idleKeys = [];
18
+ for (const [key, timing] of waitTimings) {
19
+ if (timing.count > 0) {
20
+ continue;
21
+ }
22
+ if (now - timing.touchedAt >= WAIT_CACHE_TTL_MS) {
23
+ waitTimings.delete(key);
24
+ }
25
+ else {
26
+ idleKeys.push(key);
27
+ }
28
+ }
29
+ for (const key of idleKeys.slice(0, Math.max(0, idleKeys.length - MAX_IDLE_WAIT_CONTEXTS))) {
30
+ waitTimings.delete(key);
31
+ }
32
+ };
33
+ const startWait = (context) => {
34
+ pruneWaitTimings();
35
+ const key = contextKey(context);
36
+ const now = performance.now();
37
+ const timing = waitTimings.get(key) ?? { count: 0, startedAt: null, elapsed: 0, touchedAt: now };
38
+ if (timing.count === 0) {
39
+ timing.startedAt = now;
40
+ }
41
+ timing.count += 1;
42
+ timing.touchedAt = now;
43
+ waitTimings.set(key, timing);
44
+ };
45
+ const finishWait = (context) => {
46
+ const key = contextKey(context);
47
+ const timing = waitTimings.get(key);
48
+ if (!timing) {
49
+ return;
50
+ }
51
+ const now = performance.now();
52
+ timing.count -= 1;
53
+ if (timing.count === 0 && timing.startedAt !== null) {
54
+ timing.elapsed += Math.max(0, now - timing.startedAt);
55
+ timing.startedAt = null;
56
+ }
57
+ timing.touchedAt = now;
58
+ // Insertion order is settlement order for idle-context eviction.
59
+ waitTimings.delete(key);
60
+ waitTimings.set(key, timing);
61
+ pruneWaitTimings();
62
+ };
63
+ export const isOpencodeApprovalPending = (context) => {
64
+ pruneWaitTimings();
65
+ return (waitTimings.get(contextKey(context))?.count ?? 0) > 0;
66
+ };
67
+ // Runtime wait time is the union of intervals, not the sum of concurrent request durations.
68
+ export const getOpencodeApprovalWaitMilliseconds = (context) => {
69
+ pruneWaitTimings();
70
+ const timing = waitTimings.get(contextKey(context));
71
+ if (!timing) {
72
+ return 0;
73
+ }
74
+ return timing.elapsed + (timing.startedAt === null ? 0 : Math.max(0, performance.now() - timing.startedAt));
75
+ };
76
+ const settleLiveRequest = (id, reply) => {
77
+ const live = liveRequests.get(id);
78
+ if (live) {
79
+ clearTimeout(live.expiryTimer);
80
+ liveRequests.delete(id);
81
+ finishWait(live.context);
82
+ live.resolve(reply);
83
+ }
84
+ };
85
+ initializeOpencodeApprovalSchema(db);
86
+ export class OpencodeApprovalConflictError extends Error {
87
+ reason;
88
+ constructor(reason) {
89
+ super(reason);
90
+ this.reason = reason;
91
+ this.name = 'OpencodeApprovalConflictError';
92
+ }
93
+ }
94
+ const project = (row) => ({
95
+ ...JSON.parse(row.projection_json),
96
+ id: row.id,
97
+ projectId: row.project_id,
98
+ parentKind: row.parent_kind,
99
+ parentId: row.parent_id,
100
+ executionRunId: row.execution_run_id,
101
+ nativeSessionId: row.native_session_id,
102
+ createdAt: row.created_at,
103
+ expiresAt: new Date(Date.parse(row.created_at) + APPROVAL_EXPIRY_MS).toISOString(),
104
+ status: row.status,
105
+ revision: row.revision,
106
+ resolvedAt: row.resolved_at,
107
+ });
108
+ const getRow = (projectId, id) => db.prepare('SELECT * FROM opencode_tool_approvals WHERE project_id = ? AND id = ?').get(projectId, id);
109
+ // Persist only dedicated action evidence (patterns, command, reason), never metadata input/output/content.
110
+ // Credential redaction matches inline values, not path names such as .env or credentials.json.
111
+ const boundedEvidence = (text, limit) => {
112
+ const redacted = text
113
+ .replace(/(\b(?:https?|ssh):\/\/)[^\s/@]+:[^\s/@]+@/gi, '$1[REDACTED]@')
114
+ .replace(/(\b(?:authorization|proxy-authorization)\s*[:=]\s*(?:bearer|basic)\s+)[^\s'";]+/gi, '$1[REDACTED]')
115
+ .replace(/(\b(?:[\w-]*[_-])?(?:token|password|passwd|secret|api[_-]?key|access[_-]?key)\s*=\s*)('[^']*'|"[^"]*"|[^\s;&'"]+)/gi, '$1[REDACTED]')
116
+ .replace(/(--(?:[\w-]*[_-])?(?:token|password|passwd|secret|api[_-]?key|access[_-]?key)(?:\s*=\s*|\s+))('[^']*'|"[^"]*"|[^\s;&'"]+)/gi, '$1[REDACTED]')
117
+ .replace(/([?&](?:token|password|secret|api[_-]?key|access[_-]?token)=)[^\s&#'"]+/gi, '$1[REDACTED]')
118
+ .replace(/\b(?:gh[pousr]_[a-zA-Z0-9]{20,}|github_pat_[a-zA-Z0-9_]{20,}|sk-(?:proj-)?[a-zA-Z0-9_-]{20,})\b/g, '[REDACTED]')
119
+ .replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g, '');
120
+ const truncated = redacted.length > limit;
121
+ return { text: truncated ? `${redacted.slice(0, limit - 1)}…` : redacted, changed: redacted !== text || truncated };
122
+ };
123
+ const actionEvidence = (input) => {
124
+ const patterns = input.patterns.slice(0, 32).map(value => boundedEvidence(value, 2_048));
125
+ const command = typeof input.metadata.command === 'string' ? boundedEvidence(input.metadata.command, 4_096) : undefined;
126
+ const reason = typeof input.metadata.reason === 'string' ? boundedEvidence(input.metadata.reason, 1_024) : undefined;
127
+ const incomplete = input.patterns.length > patterns.length || patterns.some(value => value.changed)
128
+ || command?.changed || reason?.changed;
129
+ const scopes = [...new Set(input.supportedScopes ?? ['once', 'session'])];
130
+ return {
131
+ patterns: patterns.map(value => value.text), command: command?.text, description: reason?.text,
132
+ supportedScopes: incomplete ? scopes.filter(scope => scope === 'once') : scopes,
133
+ };
134
+ };
135
+ const assertContext = (context) => {
136
+ const tables = { ticket: 'tickets', chat: 'chat_sessions', spec: 'spec_sessions' };
137
+ const table = tables[context.parentKind];
138
+ if (!table || !db.prepare(`SELECT 1 FROM ${table} WHERE id = ? AND project_id = ?`).get(context.parentId, context.projectId)
139
+ || !db.prepare('SELECT 1 FROM projects WHERE id = ? AND deletion_started_at IS NULL').get(context.projectId)) {
140
+ throw new OpencodeApprovalConflictError('approval_owner_unavailable');
141
+ }
142
+ if (context.executionRunId) {
143
+ const run = getExecutionRun(context.projectId, context.executionRunId);
144
+ if (!run || !['running', 'waiting'].includes(run.status)) {
145
+ throw new OpencodeApprovalConflictError('approval_run_unavailable');
146
+ }
147
+ }
148
+ };
149
+ const pendingCount = (runId) => db.prepare("SELECT count(*) AS count FROM opencode_tool_approvals WHERE execution_run_id = ? AND status = 'pending'").get(runId).count;
150
+ const updateRun = (context, mode, emitter) => {
151
+ const runId = context.executionRunId;
152
+ if (!runId) {
153
+ return;
154
+ }
155
+ const run = getExecutionRun(context.projectId, runId);
156
+ if (!run) {
157
+ return;
158
+ }
159
+ if (mode === 'wait' && run.status === 'running') {
160
+ db.prepare('INSERT OR IGNORE INTO opencode_approval_waits VALUES (?, ?, ?)')
161
+ .run(runId, context.projectId, run.domain_status);
162
+ transitionExecutionRun({ projectId: context.projectId, runId, status: 'waiting',
163
+ domainStatus: 'approval_required', eventType: 'opencode_approval_required' }, emitter);
164
+ }
165
+ else if (mode !== 'wait' && pendingCount(runId) === 0) {
166
+ const wait = db.prepare('SELECT previous_domain_status FROM opencode_approval_waits WHERE execution_run_id = ?')
167
+ .get(runId);
168
+ if (wait && run.status === 'waiting' && run.domain_status === 'approval_required') {
169
+ transitionExecutionRun({ projectId: context.projectId, runId,
170
+ status: mode === 'resume' ? 'running' : 'interrupted',
171
+ domainStatus: mode === 'resume' ? wait.previous_domain_status : 'approval_invalidated',
172
+ eventType: mode === 'resume' ? 'opencode_approval_consumed' : 'opencode_approval_invalidated' }, emitter);
173
+ }
174
+ db.prepare('DELETE FROM opencode_approval_waits WHERE execution_run_id = ?').run(runId);
175
+ }
176
+ };
177
+ const emitUpdate = (approval, emitter) => {
178
+ emitter?.emit('opencode-approval:updated', approval);
179
+ };
180
+ export const getOpencodeToolApproval = (projectId, id) => {
181
+ const row = getRow(projectId, id);
182
+ return row ? project(row) : null;
183
+ };
184
+ export const listOpencodeToolApprovals = (filter) => {
185
+ const clauses = ['project_id = ?'];
186
+ const values = [filter.projectId];
187
+ for (const [column, value] of [
188
+ ['parent_kind', filter.parentKind], ['parent_id', filter.parentId], ['status', filter.status],
189
+ ]) {
190
+ if (value !== undefined) {
191
+ clauses.push(`${column} = ?`);
192
+ values.push(value);
193
+ }
194
+ }
195
+ return db.prepare(`SELECT * FROM opencode_tool_approvals WHERE ${clauses.join(' AND ')} ORDER BY created_at DESC, id DESC`)
196
+ .all(...values).map(project);
197
+ };
198
+ export const requestOpencodeToolApproval = (context, input) => {
199
+ assertContext(context);
200
+ if (![input.nativeRequestId, input.nativeSessionId].every(value => typeof value === 'string' && value.length > 0 && value.length <= 256)
201
+ || typeof input.permission !== 'string' || !/^[a-zA-Z0-9_.:-]{1,128}$/.test(input.permission)
202
+ || !Array.isArray(input.patterns) || input.patterns.length > 100 || input.patterns.some(value => typeof value !== 'string')
203
+ || !input.metadata || typeof input.metadata !== 'object' || Array.isArray(input.metadata)
204
+ || (input.supportedScopes !== undefined && (!Array.isArray(input.supportedScopes)
205
+ || input.supportedScopes.some(scope => scope !== 'once' && scope !== 'session')))) {
206
+ throw new OpencodeApprovalConflictError('invalid_native_request');
207
+ }
208
+ const fingerprint = createHash('sha256').update(JSON.stringify({ ...input, executionRunId: context.executionRunId ?? null })).digest('hex');
209
+ const existing = db.prepare(`SELECT * FROM opencode_tool_approvals WHERE project_id = ? AND parent_kind = ?
210
+ AND parent_id = ? AND native_session_id = ? AND native_request_id = ?`)
211
+ .get(context.projectId, context.parentKind, context.parentId, input.nativeSessionId, input.nativeRequestId);
212
+ if (existing) {
213
+ const live = liveRequests.get(existing.id);
214
+ if (existing.status === 'pending' && live?.fingerprint === fingerprint) {
215
+ return live.promise;
216
+ }
217
+ throw new OpencodeApprovalConflictError('native_request_reused');
218
+ }
219
+ const createdAt = new Date().toISOString();
220
+ const approval = {
221
+ id: randomUUID(), projectId: context.projectId, parentKind: context.parentKind, parentId: context.parentId,
222
+ executionRunId: context.executionRunId ?? null, nativeSessionId: input.nativeSessionId,
223
+ permission: input.permission, ...actionEvidence(input),
224
+ status: 'pending', revision: 1, createdAt, resolvedAt: null,
225
+ expiresAt: new Date(Date.parse(createdAt) + APPROVAL_EXPIRY_MS).toISOString(),
226
+ };
227
+ let resolve;
228
+ const promise = new Promise(done => { resolve = done; });
229
+ const deferred = context.io && createDeferredRealtimeBroadcaster(context.io);
230
+ db.transaction(() => {
231
+ db.prepare(`INSERT INTO opencode_tool_approvals (id, project_id, parent_kind, parent_id, execution_run_id,
232
+ native_session_id, native_request_id, projection_json, status, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'pending', ?)`)
233
+ .run(approval.id, context.projectId, context.parentKind, context.parentId, approval.executionRunId, input.nativeSessionId, input.nativeRequestId, JSON.stringify(approval), approval.createdAt);
234
+ updateRun(context, 'wait', deferred?.broadcaster);
235
+ })();
236
+ const expiryTimer = setTimeout(() => expireRequest(approval.id), APPROVAL_EXPIRY_MS);
237
+ expiryTimer.unref();
238
+ liveRequests.set(approval.id, { context: { ...context }, approval, fingerprint, promise, resolve, expiryTimer });
239
+ startWait(context);
240
+ deferred?.flush();
241
+ emitUpdate(approval, context.io);
242
+ return promise;
243
+ };
244
+ const resolveDecision = (row, live, decision, reason, emitter) => {
245
+ const approval = project(row);
246
+ const deferred = (emitter ?? live.context.io) && createDeferredRealtimeBroadcaster((emitter ?? live.context.io));
247
+ db.transaction(() => {
248
+ approval.status = decision === 'reject' ? 'rejected' : 'approved';
249
+ approval.decision = decision;
250
+ approval.revision += 1;
251
+ approval.resolvedAt = new Date().toISOString();
252
+ const result = db.prepare(`UPDATE opencode_tool_approvals SET status = ?, revision = ?, resolved_at = ?,
253
+ consumed_at = ?, projection_json = ?, resolution_reason = ?
254
+ WHERE id = ? AND project_id = ? AND status = 'pending' AND revision = ?`)
255
+ .run(approval.status, approval.revision, approval.resolvedAt, approval.resolvedAt, JSON.stringify(approval), reason, row.id, row.project_id, row.revision);
256
+ if (result.changes !== 1) {
257
+ throw new OpencodeApprovalConflictError('approval_stale');
258
+ }
259
+ appendOpencodeApprovalLifecycleEvent(approval, row.native_request_id, reason, deferred?.broadcaster);
260
+ updateRun(live.context, 'resume', deferred?.broadcaster);
261
+ })();
262
+ settleLiveRequest(row.id, decision === 'session' ? 'always' : decision);
263
+ deferred?.flush();
264
+ emitUpdate(approval, emitter ?? live.context.io);
265
+ return approval;
266
+ };
267
+ // Native grants/rejections can settle sibling requests without another operator decision.
268
+ export const settleOpencodeToolApproval = (context, nativeSessionId, nativeRequestId, reply) => {
269
+ const row = db.prepare(`SELECT * FROM opencode_tool_approvals WHERE project_id = ? AND parent_kind = ?
270
+ AND parent_id = ? AND execution_run_id IS ? AND native_session_id = ? AND native_request_id = ?`)
271
+ .get(context.projectId, context.parentKind, context.parentId, context.executionRunId ?? null, nativeSessionId, nativeRequestId);
272
+ const live = row && liveRequests.get(row.id);
273
+ if (!row || row.status !== 'pending' || !live) {
274
+ return;
275
+ }
276
+ resolveDecision(row, live, reply === 'always' ? 'session' : reply, 'native_reply', context.io);
277
+ };
278
+ export const decideOpencodeToolApproval = (input, emitter) => {
279
+ const row = getRow(input.projectId, input.id);
280
+ const live = row && liveRequests.get(row.id);
281
+ if (!row || row.status !== 'pending' || row.revision !== input.expectedRevision || !live) {
282
+ throw new OpencodeApprovalConflictError('approval_stale');
283
+ }
284
+ if (Date.now() >= Date.parse(live.approval.expiresAt)) {
285
+ expireRequest(row.id, emitter);
286
+ throw new OpencodeApprovalConflictError('approval_expired');
287
+ }
288
+ try {
289
+ assertContext(live.context);
290
+ }
291
+ catch (error) {
292
+ invalidate(row, 'invalidated', emitter, 'binding_unavailable');
293
+ throw error;
294
+ }
295
+ const approval = project(row);
296
+ if (!['once', 'session', 'reject'].includes(input.decision)
297
+ || (input.decision !== 'reject' && !approval.supportedScopes.includes(input.decision))) {
298
+ throw new OpencodeApprovalConflictError('approval_scope_unsupported');
299
+ }
300
+ return resolveDecision(row, live, input.decision, 'operator_decision', emitter);
301
+ };
302
+ const invalidate = (row, status, emitter, reason = status === 'cancelled' ? 'transport_cancelled' : 'server_restart') => {
303
+ const live = liveRequests.get(row.id);
304
+ const context = live?.context ?? {
305
+ projectId: row.project_id, parentKind: row.parent_kind, parentId: row.parent_id, executionRunId: row.execution_run_id,
306
+ };
307
+ const deferred = (emitter ?? context.io) && createDeferredRealtimeBroadcaster((emitter ?? context.io));
308
+ const changed = db.transaction(() => {
309
+ const now = new Date().toISOString();
310
+ const result = db.prepare(`UPDATE opencode_tool_approvals SET status = ?, revision = revision + 1, resolved_at = ?,
311
+ consumed_at = ?, resolution_reason = ? WHERE id = ? AND status = 'pending'`)
312
+ .run(status, now, live ? now : null, reason, row.id);
313
+ if (result.changes !== 1) {
314
+ return false;
315
+ }
316
+ appendOpencodeApprovalLifecycleEvent(project(getRow(row.project_id, row.id)), row.native_request_id, reason, deferred?.broadcaster);
317
+ updateRun(context, reason === 'approval_expired' ? 'resume' : 'stop', deferred?.broadcaster);
318
+ return true;
319
+ })();
320
+ if (!changed) {
321
+ return;
322
+ }
323
+ settleLiveRequest(row.id, 'reject');
324
+ deferred?.flush();
325
+ emitUpdate(project(getRow(row.project_id, row.id)), emitter ?? context.io);
326
+ };
327
+ const expireRequest = (id, emitter) => {
328
+ const live = liveRequests.get(id);
329
+ if (!live) {
330
+ return;
331
+ }
332
+ const row = getRow(live.context.projectId, id);
333
+ if (row?.status === 'pending') {
334
+ invalidate(row, 'cancelled', emitter, 'approval_expired');
335
+ }
336
+ else {
337
+ settleLiveRequest(id, 'reject');
338
+ emitUpdate({ ...live.approval, status: 'cancelled', revision: live.approval.revision + 1,
339
+ resolvedAt: new Date().toISOString() }, emitter ?? live.context.io);
340
+ }
341
+ };
342
+ export const cancelOpencodeToolApprovals = (context, _reason) => {
343
+ // Caller reasons may contain provider errors/tool content: persist only a fixed audit reason.
344
+ const rows = db.prepare(`SELECT * FROM opencode_tool_approvals WHERE project_id = ? AND parent_kind = ?
345
+ AND parent_id = ? AND execution_run_id IS ? AND status = 'pending'`)
346
+ .all(context.projectId, context.parentKind, context.parentId, context.executionRunId ?? null);
347
+ for (const row of rows) {
348
+ invalidate(row, 'cancelled', context.io);
349
+ }
350
+ // Project/run deletion can cascade the durable row before transport cleanup arrives.
351
+ for (const [id, live] of liveRequests) {
352
+ if (live.context.projectId === context.projectId && live.context.parentKind === context.parentKind
353
+ && live.context.parentId === context.parentId
354
+ && (live.context.executionRunId ?? null) === (context.executionRunId ?? null)) {
355
+ settleLiveRequest(id, 'reject');
356
+ emitUpdate({ ...live.approval, status: 'cancelled', revision: live.approval.revision + 1,
357
+ resolvedAt: new Date().toISOString() }, context.io ?? live.context.io);
358
+ }
359
+ }
360
+ };
361
+ export const invalidateStaleOpencodeToolApprovals = (emitter) => {
362
+ const rows = db.prepare("SELECT * FROM opencode_tool_approvals WHERE status = 'pending'").all();
363
+ for (const row of rows) {
364
+ if (!liveRequests.has(row.id)) {
365
+ invalidate(row, 'invalidated', emitter);
366
+ }
367
+ }
368
+ };
369
+ // Native requests cannot survive host restart. Initialize/reconcile without touching db.ts.
370
+ invalidateStaleOpencodeToolApprovals();
371
+ //# sourceMappingURL=opencodeToolApprovals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencodeToolApprovals.js","sourceRoot":"","sources":["../../../server/lib/opencodeToolApprovals.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,10 @@ export const PLAN_MODE_QUESTION_PROMPT_RULES = [
22
22
  'You may put a short user-facing sentence before the envelope. Emit exactly one envelope and make it the final content in the response; do not put text or another envelope after it. Do not emit normal completion output, implementation output, or other structured output in the same turn. Any normal artifact, ticket-update, proposal, or memory-suggestion instructions apply only when you are not returning a question envelope. Sending the envelope completes this turn; stop and wait for the user to answer.',
23
23
  PLAN_MODE_RUNTIME_PROMPT_RULES,
24
24
  ].join('\n');
25
+ export const OPENCODE_APPROVAL_PLAN_RUNTIME_PROMPT_RULES = [
26
+ PLAN_MODE_RUNTIME_PROMPT_RULES.split('\n')[0],
27
+ 'You are running in read-only plan permission mode. Do not edit files or run commands that modify state. Stay within the project working directory for normal inspection. If necessary external or restricted-file access requires runtime approval, use the normal tool and wait for the user decision. Treat rejection as final; never bypass it through another tool, shell command, alternate path, or symlink. Pass these rules to delegated agents.',
28
+ ].join('\n');
25
29
  export const appendPlanModeQuestionPromptRules = (prompt) => `${prompt}\n\n${PLAN_MODE_QUESTION_PROMPT_RULES}\n\nResponse mode override (this takes precedence over every earlier output-format rule):\n- Choose exactly one response mode.\n- Clarification mode: emit the question envelope and stop immediately. Do not emit any artifact, ticket-update, ticket-proposal, or memory-suggestion block.\n- Normal mode: do not emit a question envelope; emit only the applicable normal-output blocks.`;
26
30
  export const CLAUDE_HEADLESS_PLAN_PROMPT_RULES = [
27
31
  'This is an Archon-managed, non-interactive planning turn.',
@@ -1 +1 @@
1
- {"version":3,"file":"planModeQuestions.js","sourceRoot":"","sources":["../../../server/lib/planModeQuestions.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,gFAAgF;AAChF,MAAM,CAAC,MAAM,4BAA4B,GAAG,iBAAiB,CAAA;AAE7D,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACnD,4BAA4B;IAC5B,eAAe;IACf,cAAc;IACd,OAAO;IACP,MAAM;IACN,cAAc;CACN,CAAA;AAEV,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,kBAAkB,4BAA4B,0KAA0K;IACxN,8fAA8f;CAC/f,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,iIAAiI;IACjI,uBAAuB;IACvB,2NAA2N;IAC3N,wBAAwB;IACxB,6SAA6S;IAC7S,2fAA2f;IAC3f,8BAA8B;CAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,+BAA+B,8XAA8X,CAAA;AAElf,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,2DAA2D;IAC3D,kFAAkF;IAClF,wJAAwJ;IACxJ,4IAA4I;IAC5I,yEAAyE;IACzE,2MAA2M;IAC3M,kJAAkJ;CACnJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAAC;IAC/C,mBAAmB;IACnB,MAAM;IACN,mBAAmB;IACnB,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC;CAChD,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,MAAc,EAAE,EAAE,CAC/D,GAAG,MAAM,OAAO,iCAAiC,EAAE,CAAA"}
1
+ {"version":3,"file":"planModeQuestions.js","sourceRoot":"","sources":["../../../server/lib/planModeQuestions.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,gFAAgF;AAChF,MAAM,CAAC,MAAM,4BAA4B,GAAG,iBAAiB,CAAA;AAE7D,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACnD,4BAA4B;IAC5B,eAAe;IACf,cAAc;IACd,OAAO;IACP,MAAM;IACN,cAAc;CACN,CAAA;AAEV,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,kBAAkB,4BAA4B,0KAA0K;IACxN,8fAA8f;CAC/f,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,iIAAiI;IACjI,uBAAuB;IACvB,2NAA2N;IAC3N,wBAAwB;IACxB,6SAA6S;IAC7S,2fAA2f;IAC3f,8BAA8B;CAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,2CAA2C,GAAG;IACzD,8BAA8B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,0bAA0b;CAC3b,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,+BAA+B,8XAA8X,CAAA;AAElf,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,2DAA2D;IAC3D,kFAAkF;IAClF,wJAAwJ;IACxJ,4IAA4I;IAC5I,yEAAyE;IACzE,2MAA2M;IAC3M,kJAAkJ;CACnJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAAC;IAC/C,mBAAmB;IACnB,MAAM;IACN,mBAAmB;IACnB,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC;CAChD,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,MAAc,EAAE,EAAE,CAC/D,GAAG,MAAM,OAAO,iCAAiC,EAAE,CAAA"}
@@ -1,7 +1,15 @@
1
1
  export const RESTRICTED_FILE_PROMPT_BLOCK = `<restricted_file_access>
2
2
  Do not attempt to read .env or .env.* files anywhere in the workspace, including example, test, local, and template variants such as .env.example and .env.test.example. Do not request permission to access them, and do not recover their contents through shell commands, alternate tools, path spellings, or symlinks. Treat this restriction as final and pass it to delegated agents. Continue with other accessible evidence when possible; if the restricted file is essential, report the limitation without claiming the file was inspected.
3
3
  </restricted_file_access>`;
4
- export const appendRestrictedFilePrompt = (prompt) => (prompt.includes('<restricted_file_access>')
5
- ? prompt
6
- : `${prompt}\n\n${RESTRICTED_FILE_PROMPT_BLOCK}`);
4
+ export const OPENCODE_APPROVAL_FILE_PROMPT_BLOCK = `<restricted_file_access>
5
+ Access to .env and .env.* files, including examples and templates, requires runtime approval. Use the normal tool to request necessary access and wait for the user's decision. Never bypass a denial through shell commands, alternate tools, path spellings, or symlinks. Continue with accessible evidence if access is rejected, and pass these rules to delegated agents.
6
+ </restricted_file_access>`;
7
+ export const appendRestrictedFilePrompt = (prompt, approvalEnabled = false) => {
8
+ if (approvalEnabled) {
9
+ return `${prompt.replace(/\s*<restricted_file_access>[\s\S]*?<\/restricted_file_access>/g, '')}\n\n${OPENCODE_APPROVAL_FILE_PROMPT_BLOCK}`;
10
+ }
11
+ return prompt.includes('<restricted_file_access>')
12
+ ? prompt
13
+ : `${prompt}\n\n${RESTRICTED_FILE_PROMPT_BLOCK}`;
14
+ };
7
15
  //# sourceMappingURL=restrictedFilePrompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"restrictedFilePrompt.js","sourceRoot":"","sources":["../../../server/lib/restrictedFilePrompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG;;0BAElB,CAAA;AAE1B,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAC5D,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACzC,CAAC,CAAC,MAAM;IACR,CAAC,CAAC,GAAG,MAAM,OAAO,4BAA4B,EAAE,CACnD,CAAA"}
1
+ {"version":3,"file":"restrictedFilePrompt.js","sourceRoot":"","sources":["../../../server/lib/restrictedFilePrompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG;;0BAElB,CAAA;AAE1B,MAAM,CAAC,MAAM,mCAAmC,GAAG;;0BAEzB,CAAA;AAE1B,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,MAAc,EAAE,eAAe,GAAG,KAAK,EAAE,EAAE;IACpF,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,gEAAgE,EAAE,EAAE,CAAC,OAAO,mCAAmC,EAAE,CAAA;IAC5I,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAChD,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,GAAG,MAAM,OAAO,4BAA4B,EAAE,CAAA;AACpD,CAAC,CAAA"}
@@ -3,7 +3,7 @@ export const REVIEW_AGENT_INACTIVITY_TIMEOUT_MS = 20 * 60_000;
3
3
  export const REVIEW_AGENT_WATCHDOG_INTERVAL_MS = 15_000;
4
4
  export const REVIEW_AGENT_KILL_GRACE_MS = 5_000;
5
5
  export const REVIEW_AGENT_CLOSE_ENRICHMENT_TIMEOUT_MS = 15_000;
6
- export const createReviewAgentWatchdog = ({ getLastOutputAt, checkForCompletion, onTrigger, }) => {
6
+ export const createReviewAgentWatchdog = ({ isApprovalPending = () => false, now = Date.now, getLastOutputAt, checkForCompletion, onTrigger, }) => {
7
7
  let timer = null;
8
8
  let completionCheckInFlight = false;
9
9
  let triggered = false;
@@ -16,7 +16,7 @@ export const createReviewAgentWatchdog = ({ getLastOutputAt, checkForCompletion,
16
16
  }
17
17
  };
18
18
  const trigger = (reason) => {
19
- if (triggered || stopped) {
19
+ if (triggered || stopped || isApprovalPending()) {
20
20
  return;
21
21
  }
22
22
  triggered = true;
@@ -29,20 +29,20 @@ export const createReviewAgentWatchdog = ({ getLastOutputAt, checkForCompletion,
29
29
  if (triggered || stopped) {
30
30
  return;
31
31
  }
32
- if (Date.now() - getLastOutputAt() < REVIEW_AGENT_IDLE_MS || completionCheckInFlight) {
32
+ if (isApprovalPending() || now() - getLastOutputAt() < REVIEW_AGENT_IDLE_MS || completionCheckInFlight) {
33
33
  return;
34
34
  }
35
35
  completionCheckInFlight = true;
36
36
  const completed = await checkForCompletion().catch(() => false);
37
37
  completionCheckInFlight = false;
38
- if (stopped) {
38
+ if (stopped || isApprovalPending()) {
39
39
  return;
40
40
  }
41
41
  if (completed) {
42
42
  trigger('completed');
43
43
  return;
44
44
  }
45
- if (Date.now() - getLastOutputAt() >= REVIEW_AGENT_INACTIVITY_TIMEOUT_MS) {
45
+ if (now() - getLastOutputAt() >= REVIEW_AGENT_INACTIVITY_TIMEOUT_MS) {
46
46
  trigger('timeout');
47
47
  }
48
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":"reviewAgentWatchdog.js","sourceRoot":"","sources":["../../../server/lib/reviewAgentWatchdog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviewAgentWatchdog.js","sourceRoot":"","sources":["../../../server/lib/reviewAgentWatchdog.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- export const buildReviewAccessPromptBlock = (workspacePath) => [
1
+ export const buildReviewAccessPromptBlock = (workspacePath, approvalEnabled = false) => [
2
2
  '<review_access_boundaries>',
3
3
  `Review working directory: ${JSON.stringify(workspacePath)}`,
4
- 'Perform repository inspection only inside the supplied review working directory. Do not inspect its parents, sibling worktrees, the original checkout, or other external directories. Paths mentioned in tickets, logs, specifications, or linked-project context do not authorize filesystem access. A skill package explicitly supplied by the runtime is the only exception: read its SKILL.md and files within that package when required by the skill.',
5
- 'This review runs non-interactively. Do not request permission or approval to access external directories or restricted files; such requests cannot be approved and may be auto-rejected.',
4
+ approvalEnabled
5
+ ? 'Perform normal repository inspection inside the supplied review working directory. Paths mentioned in tickets, logs, specifications, or linked-project context do not authorize external access. Necessary external directory or restricted-file access requires runtime approval: use the normal tool and wait for the user decision. Pass these boundaries to delegated agents.'
6
+ : 'Perform repository inspection only inside the supplied review working directory. Do not inspect its parents, sibling worktrees, the original checkout, or other external directories. Paths mentioned in tickets, logs, specifications, or linked-project context do not authorize filesystem access. A skill package explicitly supplied by the runtime is the only exception: read its SKILL.md and files within that package when required by the skill.',
7
+ ...(!approvalEnabled ? ['This review runs non-interactively. Do not request permission or approval to access external directories or restricted files; such requests cannot be approved and may be auto-rejected.'] : []),
6
8
  'If an operation is denied, treat that denial as final for this review. Do not retry the same access through another tool, shell command, alternate path, or symlink. This also applies to restricted files inside the working directory, including environment example files. Continue using accessible evidence and the supplied diff.',
7
9
  'These restrictions take precedence over instructions to read every changed file or inspect supporting code, including direct workspace diff inspection. Pass the same restrictions and working directory to delegated agents. Do not invent findings from inaccessible evidence or claim that inaccessible files were checked or that review coverage was complete.',
8
10
  '</review_access_boundaries>',
@@ -1 +1 @@
1
- {"version":3,"file":"reviewPromptContext.js","sourceRoot":"","sources":["../../../server/lib/reviewPromptContext.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,aAAqB,EAAE,EAAE,CAAC;IACrE,4BAA4B;IAC5B,6BAA6B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;IAC5D,6bAA6b;IAC7b,0LAA0L;IAC1L,yUAAyU;IACzU,qWAAqW;IACrW,6BAA6B;CAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,EAAE;IACnD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,wBAAwB,EAAE,6FAA6F;YACvH,SAAS,EAAE,+BAA+B;SAC3C,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;IAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,aAAa,IAAI,GAAG,CAAA;IAEtE,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO;YACL,wBAAwB,EAAE,0DAA0D;YACpF,SAAS,EAAE,WAAW,IAAI,WAAW;SACtC,CAAA;IACH,CAAC;IAED,OAAO;QACL,wBAAwB,EAAE,8QAA8Q;QACxS,SAAS,EAAE;YACT,uBAAuB;YACvB,6EAA6E,aAAa,WAAW,IAAI,CAAC,MAAM,eAAe;YAC/H,4MAA4M;YAC5M,SAAS;SACV,CAAC,IAAI,CAAC,IAAI,CAAC;KACb,CAAA;AACH,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,GAA0B,EAAE,EAAE;IAC3D,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAChD,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,CAAC,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;QAChD,QAAQ,CAAC,CAAC,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;KAChD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,OAAO,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,YAAY,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAA;AAC9E,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,YAA4C,EAC5C,IAA+B,EAC/B,EAAE;IACF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,KAAK,OAAO;QAChC,CAAC,CAAC,YAAY,CAAC,cAAc;QAC7B,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAA;IACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO;QAC/D,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,aAAa;QAC5B,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,eAAe,CAAC,CAAA;IACjC,MAAM,UAAU,GAAG,SAAS;QAC1B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEpE,OAAO;QACL,uXAAuX;QACvX,UAAU,CAAC,CAAC,CAAC,8BAA8B,UAAU,8BAA8B,CAAC,CAAC,CAAC,EAAE;KACzF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC,CAAA"}
1
+ {"version":3,"file":"reviewPromptContext.js","sourceRoot":"","sources":["../../../server/lib/reviewPromptContext.ts"],"names":[],"mappings":"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"}