openplanter 0.1.0

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 (126) hide show
  1. package/README.md +210 -0
  2. package/dist/builder.d.ts +11 -0
  3. package/dist/builder.d.ts.map +1 -0
  4. package/dist/builder.js +179 -0
  5. package/dist/builder.js.map +1 -0
  6. package/dist/cli.d.ts +9 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +548 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/config.d.ts +51 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +114 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/credentials.d.ts +52 -0
  15. package/dist/credentials.d.ts.map +1 -0
  16. package/dist/credentials.js +371 -0
  17. package/dist/credentials.js.map +1 -0
  18. package/dist/demo.d.ts +26 -0
  19. package/dist/demo.d.ts.map +1 -0
  20. package/dist/demo.js +95 -0
  21. package/dist/demo.js.map +1 -0
  22. package/dist/engine.d.ts +91 -0
  23. package/dist/engine.d.ts.map +1 -0
  24. package/dist/engine.js +1036 -0
  25. package/dist/engine.js.map +1 -0
  26. package/dist/index.d.ts +30 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +39 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/investigation-tools/aph-holdings.d.ts +61 -0
  31. package/dist/investigation-tools/aph-holdings.d.ts.map +1 -0
  32. package/dist/investigation-tools/aph-holdings.js +459 -0
  33. package/dist/investigation-tools/aph-holdings.js.map +1 -0
  34. package/dist/investigation-tools/asic-officer-lookup.d.ts +42 -0
  35. package/dist/investigation-tools/asic-officer-lookup.d.ts.map +1 -0
  36. package/dist/investigation-tools/asic-officer-lookup.js +197 -0
  37. package/dist/investigation-tools/asic-officer-lookup.js.map +1 -0
  38. package/dist/investigation-tools/asx-calendar-fetcher.d.ts +42 -0
  39. package/dist/investigation-tools/asx-calendar-fetcher.d.ts.map +1 -0
  40. package/dist/investigation-tools/asx-calendar-fetcher.js +271 -0
  41. package/dist/investigation-tools/asx-calendar-fetcher.js.map +1 -0
  42. package/dist/investigation-tools/asx-parser.d.ts +66 -0
  43. package/dist/investigation-tools/asx-parser.d.ts.map +1 -0
  44. package/dist/investigation-tools/asx-parser.js +314 -0
  45. package/dist/investigation-tools/asx-parser.js.map +1 -0
  46. package/dist/investigation-tools/bulk-asx-announcements.d.ts +53 -0
  47. package/dist/investigation-tools/bulk-asx-announcements.d.ts.map +1 -0
  48. package/dist/investigation-tools/bulk-asx-announcements.js +204 -0
  49. package/dist/investigation-tools/bulk-asx-announcements.js.map +1 -0
  50. package/dist/investigation-tools/entity-resolver.d.ts +77 -0
  51. package/dist/investigation-tools/entity-resolver.d.ts.map +1 -0
  52. package/dist/investigation-tools/entity-resolver.js +346 -0
  53. package/dist/investigation-tools/entity-resolver.js.map +1 -0
  54. package/dist/investigation-tools/hotcopper-scraper.d.ts +73 -0
  55. package/dist/investigation-tools/hotcopper-scraper.d.ts.map +1 -0
  56. package/dist/investigation-tools/hotcopper-scraper.js +318 -0
  57. package/dist/investigation-tools/hotcopper-scraper.js.map +1 -0
  58. package/dist/investigation-tools/index.d.ts +15 -0
  59. package/dist/investigation-tools/index.d.ts.map +1 -0
  60. package/dist/investigation-tools/index.js +15 -0
  61. package/dist/investigation-tools/index.js.map +1 -0
  62. package/dist/investigation-tools/insider-graph.d.ts +173 -0
  63. package/dist/investigation-tools/insider-graph.d.ts.map +1 -0
  64. package/dist/investigation-tools/insider-graph.js +732 -0
  65. package/dist/investigation-tools/insider-graph.js.map +1 -0
  66. package/dist/investigation-tools/insider-suspicion-scorer.d.ts +97 -0
  67. package/dist/investigation-tools/insider-suspicion-scorer.d.ts.map +1 -0
  68. package/dist/investigation-tools/insider-suspicion-scorer.js +327 -0
  69. package/dist/investigation-tools/insider-suspicion-scorer.js.map +1 -0
  70. package/dist/investigation-tools/multi-forum-scraper.d.ts +104 -0
  71. package/dist/investigation-tools/multi-forum-scraper.d.ts.map +1 -0
  72. package/dist/investigation-tools/multi-forum-scraper.js +415 -0
  73. package/dist/investigation-tools/multi-forum-scraper.js.map +1 -0
  74. package/dist/investigation-tools/price-fetcher.d.ts +81 -0
  75. package/dist/investigation-tools/price-fetcher.d.ts.map +1 -0
  76. package/dist/investigation-tools/price-fetcher.js +268 -0
  77. package/dist/investigation-tools/price-fetcher.js.map +1 -0
  78. package/dist/investigation-tools/shared.d.ts +39 -0
  79. package/dist/investigation-tools/shared.d.ts.map +1 -0
  80. package/dist/investigation-tools/shared.js +203 -0
  81. package/dist/investigation-tools/shared.js.map +1 -0
  82. package/dist/investigation-tools/timeline-linker.d.ts +90 -0
  83. package/dist/investigation-tools/timeline-linker.d.ts.map +1 -0
  84. package/dist/investigation-tools/timeline-linker.js +219 -0
  85. package/dist/investigation-tools/timeline-linker.js.map +1 -0
  86. package/dist/investigation-tools/volume-scanner.d.ts +70 -0
  87. package/dist/investigation-tools/volume-scanner.d.ts.map +1 -0
  88. package/dist/investigation-tools/volume-scanner.js +227 -0
  89. package/dist/investigation-tools/volume-scanner.js.map +1 -0
  90. package/dist/model.d.ts +136 -0
  91. package/dist/model.d.ts.map +1 -0
  92. package/dist/model.js +1071 -0
  93. package/dist/model.js.map +1 -0
  94. package/dist/patching.d.ts +45 -0
  95. package/dist/patching.d.ts.map +1 -0
  96. package/dist/patching.js +317 -0
  97. package/dist/patching.js.map +1 -0
  98. package/dist/prompts.d.ts +15 -0
  99. package/dist/prompts.d.ts.map +1 -0
  100. package/dist/prompts.js +351 -0
  101. package/dist/prompts.js.map +1 -0
  102. package/dist/replay-log.d.ts +54 -0
  103. package/dist/replay-log.d.ts.map +1 -0
  104. package/dist/replay-log.js +94 -0
  105. package/dist/replay-log.js.map +1 -0
  106. package/dist/runtime.d.ts +53 -0
  107. package/dist/runtime.d.ts.map +1 -0
  108. package/dist/runtime.js +259 -0
  109. package/dist/runtime.js.map +1 -0
  110. package/dist/settings.d.ts +39 -0
  111. package/dist/settings.d.ts.map +1 -0
  112. package/dist/settings.js +146 -0
  113. package/dist/settings.js.map +1 -0
  114. package/dist/tool-defs.d.ts +58 -0
  115. package/dist/tool-defs.d.ts.map +1 -0
  116. package/dist/tool-defs.js +1029 -0
  117. package/dist/tool-defs.js.map +1 -0
  118. package/dist/tools.d.ts +72 -0
  119. package/dist/tools.d.ts.map +1 -0
  120. package/dist/tools.js +1454 -0
  121. package/dist/tools.js.map +1 -0
  122. package/dist/tui.d.ts +49 -0
  123. package/dist/tui.d.ts.map +1 -0
  124. package/dist/tui.js +699 -0
  125. package/dist/tui.js.map +1 -0
  126. package/package.json +126 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Patch parsing and application – migrated from agent/patching.py.
3
+ *
4
+ * Implements the Codex-style agent patch format with add, delete, and
5
+ * update (with optional move) operations.
6
+ */
7
+ export declare class PatchApplyError extends Error {
8
+ constructor(message: string);
9
+ }
10
+ export type ResolvePathFn = (relativePath: string) => string;
11
+ export interface PatchChunk {
12
+ lines: string[];
13
+ }
14
+ export interface AddFileOp {
15
+ kind: "add";
16
+ path: string;
17
+ plus_lines: string[];
18
+ }
19
+ export interface DeleteFileOp {
20
+ kind: "delete";
21
+ path: string;
22
+ }
23
+ export interface UpdateFileOp {
24
+ kind: "update";
25
+ path: string;
26
+ raw_lines: string[];
27
+ move_to: string | null;
28
+ }
29
+ export type PatchOp = AddFileOp | DeleteFileOp | UpdateFileOp;
30
+ export declare class ApplyReport {
31
+ added: string[];
32
+ updated: string[];
33
+ deleted: string[];
34
+ moved: string[];
35
+ render(): string;
36
+ }
37
+ export declare function parseAgentPatch(patchText: string): PatchOp[];
38
+ export declare function _parseChunks(rawLines: string[]): PatchChunk[];
39
+ export declare function _chunkToOldNew(chunk: PatchChunk): [string[], string[]];
40
+ export declare function _findSubsequence(haystack: string[], needle: string[], startIdx?: number): number;
41
+ export declare function _renderLines(lines: string[], preferTrailingNewline: boolean): string;
42
+ export { parseAgentPatch as parse_agent_patch };
43
+ export { applyAgentPatch as apply_agent_patch };
44
+ export declare function applyAgentPatch(patchText: string, resolvePath: ResolvePathFn): ApplyReport;
45
+ //# sourceMappingURL=patching.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patching.d.ts","sourceRoot":"","sources":["../src/patching.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAcD,MAAM,MAAM,aAAa,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;AAE7D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,CAAC;AAM9D,qBAAa,WAAW;IACtB,KAAK,EAAE,MAAM,EAAE,CAAM;IACrB,OAAO,EAAE,MAAM,EAAE,CAAM;IACvB,OAAO,EAAE,MAAM,EAAE,CAAM;IACvB,KAAK,EAAE,MAAM,EAAE,CAAM;IAErB,MAAM,IAAI,MAAM;CAoBjB;AAMD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE,CA6E5D;AAMD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CA6B7D;AAMD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,UAAU,GAChB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAoBtB;AAMD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,GAAE,MAAU,GACnB,MAAM,CAgCR;AAMD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EAAE,EACf,qBAAqB,EAAE,OAAO,GAC7B,MAAM,CAOR;AAOD,OAAO,EAAE,eAAe,IAAI,iBAAiB,EAAE,CAAC;AAChD,OAAO,EAAE,eAAe,IAAI,iBAAiB,EAAE,CAAC;AAEhD,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,aAAa,GACzB,WAAW,CAmGb"}
@@ -0,0 +1,317 @@
1
+ /**
2
+ * Patch parsing and application – migrated from agent/patching.py.
3
+ *
4
+ * Implements the Codex-style agent patch format with add, delete, and
5
+ * update (with optional move) operations.
6
+ */
7
+ import * as fs from "node:fs";
8
+ import * as path from "node:path";
9
+ // ---------------------------------------------------------------------------
10
+ // Error type
11
+ // ---------------------------------------------------------------------------
12
+ export class PatchApplyError extends Error {
13
+ constructor(message) {
14
+ super(message);
15
+ this.name = "PatchApplyError";
16
+ }
17
+ }
18
+ // ---------------------------------------------------------------------------
19
+ // Whitespace normalisation helper
20
+ // ---------------------------------------------------------------------------
21
+ function _normalizeWs(line) {
22
+ return line.split(/\s+/).filter(Boolean).join(" ");
23
+ }
24
+ // ---------------------------------------------------------------------------
25
+ // ApplyReport
26
+ // ---------------------------------------------------------------------------
27
+ export class ApplyReport {
28
+ added = [];
29
+ updated = [];
30
+ deleted = [];
31
+ moved = [];
32
+ render() {
33
+ const lines = ["Patch applied successfully."];
34
+ if (this.added.length > 0) {
35
+ lines.push("Added:");
36
+ for (const p of this.added)
37
+ lines.push(`- ${p}`);
38
+ }
39
+ if (this.updated.length > 0) {
40
+ lines.push("Updated:");
41
+ for (const p of this.updated)
42
+ lines.push(`- ${p}`);
43
+ }
44
+ if (this.deleted.length > 0) {
45
+ lines.push("Deleted:");
46
+ for (const p of this.deleted)
47
+ lines.push(`- ${p}`);
48
+ }
49
+ if (this.moved.length > 0) {
50
+ lines.push("Moved:");
51
+ for (const p of this.moved)
52
+ lines.push(`- ${p}`);
53
+ }
54
+ return lines.join("\n");
55
+ }
56
+ }
57
+ // ---------------------------------------------------------------------------
58
+ // parse_agent_patch
59
+ // ---------------------------------------------------------------------------
60
+ export function parseAgentPatch(patchText) {
61
+ const lines = patchText.split("\n");
62
+ if (lines.length === 0) {
63
+ throw new PatchApplyError("patch is empty");
64
+ }
65
+ if (lines[0].trim() !== "*** Begin Patch") {
66
+ throw new PatchApplyError("patch must start with '*** Begin Patch'");
67
+ }
68
+ if (lines[lines.length - 1].trim() !== "*** End Patch") {
69
+ throw new PatchApplyError("patch must end with '*** End Patch'");
70
+ }
71
+ const ops = [];
72
+ let i = 1;
73
+ while (i < lines.length - 1) {
74
+ const line = lines[i];
75
+ // --- Add File ---
76
+ if (line.startsWith("*** Add File: ")) {
77
+ const filePath = line.slice("*** Add File: ".length).trim();
78
+ i += 1;
79
+ const plusLines = [];
80
+ while (i < lines.length - 1 && !lines[i].startsWith("*** ")) {
81
+ const row = lines[i];
82
+ if (!row.startsWith("+")) {
83
+ throw new PatchApplyError(`add file '${filePath}' contains non '+' line: ${JSON.stringify(row)}`);
84
+ }
85
+ plusLines.push(row.slice(1));
86
+ i += 1;
87
+ }
88
+ ops.push({ kind: "add", path: filePath, plus_lines: plusLines });
89
+ continue;
90
+ }
91
+ // --- Delete File ---
92
+ if (line.startsWith("*** Delete File: ")) {
93
+ const filePath = line.slice("*** Delete File: ".length).trim();
94
+ ops.push({ kind: "delete", path: filePath });
95
+ i += 1;
96
+ continue;
97
+ }
98
+ // --- Update File ---
99
+ if (line.startsWith("*** Update File: ")) {
100
+ const filePath = line.slice("*** Update File: ".length).trim();
101
+ i += 1;
102
+ let moveTo = null;
103
+ if (i < lines.length - 1 && lines[i].startsWith("*** Move to: ")) {
104
+ moveTo = lines[i].slice("*** Move to: ".length).trim();
105
+ i += 1;
106
+ }
107
+ const rawLines = [];
108
+ while (i < lines.length - 1 && !lines[i].startsWith("*** ")) {
109
+ rawLines.push(lines[i]);
110
+ i += 1;
111
+ }
112
+ ops.push({ kind: "update", path: filePath, raw_lines: rawLines, move_to: moveTo });
113
+ continue;
114
+ }
115
+ // --- blank lines ---
116
+ if (line.trim() === "") {
117
+ i += 1;
118
+ continue;
119
+ }
120
+ throw new PatchApplyError(`unexpected patch line: ${JSON.stringify(line)}`);
121
+ }
122
+ if (ops.length === 0) {
123
+ throw new PatchApplyError("patch contains no operations");
124
+ }
125
+ return ops;
126
+ }
127
+ // ---------------------------------------------------------------------------
128
+ // _parseChunks
129
+ // ---------------------------------------------------------------------------
130
+ export function _parseChunks(rawLines) {
131
+ const chunks = [];
132
+ let current = [];
133
+ for (const row of rawLines) {
134
+ if (row.startsWith("@@")) {
135
+ if (current.length > 0) {
136
+ chunks.push({ lines: current });
137
+ current = [];
138
+ }
139
+ continue;
140
+ }
141
+ if (row === "*** End of File") {
142
+ continue;
143
+ }
144
+ if (row.startsWith(" ") || row.startsWith("+") || row.startsWith("-")) {
145
+ current.push(row);
146
+ continue;
147
+ }
148
+ throw new PatchApplyError(`invalid update patch row: ${JSON.stringify(row)}`);
149
+ }
150
+ if (current.length > 0) {
151
+ chunks.push({ lines: current });
152
+ }
153
+ if (chunks.length === 0) {
154
+ throw new PatchApplyError("update operation contains no hunks");
155
+ }
156
+ return chunks;
157
+ }
158
+ // ---------------------------------------------------------------------------
159
+ // _chunkToOldNew
160
+ // ---------------------------------------------------------------------------
161
+ export function _chunkToOldNew(chunk) {
162
+ const oldSeq = [];
163
+ const newSeq = [];
164
+ for (const row of chunk.lines) {
165
+ const prefix = row[0];
166
+ const payload = row.slice(1);
167
+ if (prefix === " ") {
168
+ oldSeq.push(payload);
169
+ newSeq.push(payload);
170
+ }
171
+ else if (prefix === "-") {
172
+ oldSeq.push(payload);
173
+ }
174
+ else if (prefix === "+") {
175
+ newSeq.push(payload);
176
+ }
177
+ else {
178
+ throw new PatchApplyError(`invalid row prefix: ${JSON.stringify(prefix)}`);
179
+ }
180
+ }
181
+ return [oldSeq, newSeq];
182
+ }
183
+ // ---------------------------------------------------------------------------
184
+ // _findSubsequence
185
+ // ---------------------------------------------------------------------------
186
+ export function _findSubsequence(haystack, needle, startIdx = 0) {
187
+ if (needle.length === 0) {
188
+ return Math.min(Math.max(startIdx, 0), haystack.length);
189
+ }
190
+ const maxStart = haystack.length - needle.length;
191
+ // Pass 1: exact match
192
+ for (let i = Math.max(startIdx, 0); i <= maxStart; i++) {
193
+ let match = true;
194
+ for (let j = 0; j < needle.length; j++) {
195
+ if (haystack[i + j] !== needle[j]) {
196
+ match = false;
197
+ break;
198
+ }
199
+ }
200
+ if (match)
201
+ return i;
202
+ }
203
+ // Pass 2: whitespace-normalised match
204
+ const normNeedle = needle.map(_normalizeWs);
205
+ for (let i = Math.max(startIdx, 0); i <= maxStart; i++) {
206
+ let match = true;
207
+ for (let j = 0; j < normNeedle.length; j++) {
208
+ if (_normalizeWs(haystack[i + j]) !== normNeedle[j]) {
209
+ match = false;
210
+ break;
211
+ }
212
+ }
213
+ if (match)
214
+ return i;
215
+ }
216
+ return -1;
217
+ }
218
+ // ---------------------------------------------------------------------------
219
+ // _renderLines
220
+ // ---------------------------------------------------------------------------
221
+ export function _renderLines(lines, preferTrailingNewline) {
222
+ if (lines.length === 0)
223
+ return "";
224
+ let text = lines.join("\n");
225
+ if (preferTrailingNewline) {
226
+ text += "\n";
227
+ }
228
+ return text;
229
+ }
230
+ // ---------------------------------------------------------------------------
231
+ // applyAgentPatch
232
+ // ---------------------------------------------------------------------------
233
+ // Snake-case aliases for backward compatibility with existing consumers.
234
+ export { parseAgentPatch as parse_agent_patch };
235
+ export { applyAgentPatch as apply_agent_patch };
236
+ export function applyAgentPatch(patchText, resolvePath) {
237
+ const ops = parseAgentPatch(patchText);
238
+ const report = new ApplyReport();
239
+ for (const op of ops) {
240
+ if (op.kind === "add") {
241
+ const target = resolvePath(op.path);
242
+ if (fs.existsSync(target)) {
243
+ throw new PatchApplyError(`cannot add existing file: ${op.path}`);
244
+ }
245
+ fs.mkdirSync(path.dirname(target), { recursive: true });
246
+ const content = _renderLines(op.plus_lines, true);
247
+ fs.writeFileSync(target, content, "utf-8");
248
+ report.added.push(op.path);
249
+ continue;
250
+ }
251
+ if (op.kind === "delete") {
252
+ const target = resolvePath(op.path);
253
+ if (!fs.existsSync(target)) {
254
+ throw new PatchApplyError(`cannot delete missing file: ${op.path}`);
255
+ }
256
+ const stat = fs.statSync(target);
257
+ if (stat.isDirectory()) {
258
+ throw new PatchApplyError(`cannot delete directory with patch: ${op.path}`);
259
+ }
260
+ fs.unlinkSync(target);
261
+ report.deleted.push(op.path);
262
+ continue;
263
+ }
264
+ if (op.kind === "update") {
265
+ const source = resolvePath(op.path);
266
+ if (!fs.existsSync(source)) {
267
+ throw new PatchApplyError(`cannot update missing file: ${op.path}`);
268
+ }
269
+ const srcStat = fs.statSync(source);
270
+ if (srcStat.isDirectory()) {
271
+ throw new PatchApplyError(`cannot update directory: ${op.path}`);
272
+ }
273
+ const originalText = fs.readFileSync(source, "utf-8");
274
+ const oldLines = originalText.split("\n");
275
+ // Handle trailing newline: if text ends with \n, splitLines produces an
276
+ // extra empty element at the end which we want to drop to match Python's
277
+ // str.splitlines() behaviour.
278
+ if (originalText.endsWith("\n") && oldLines[oldLines.length - 1] === "") {
279
+ oldLines.pop();
280
+ }
281
+ const hadTrailingNl = originalText.endsWith("\n");
282
+ let working = [...oldLines];
283
+ let cursor = 0;
284
+ const chunks = _parseChunks(op.raw_lines);
285
+ for (const chunk of chunks) {
286
+ const [oldSeq, newSeq] = _chunkToOldNew(chunk);
287
+ let idx = _findSubsequence(working, oldSeq, cursor);
288
+ if (idx < 0) {
289
+ idx = _findSubsequence(working, oldSeq, 0);
290
+ }
291
+ if (idx < 0) {
292
+ const preview = oldSeq.slice(0, 8).join("\n");
293
+ throw new PatchApplyError(`failed applying chunk to ${op.path}; could not locate:\n${preview}`);
294
+ }
295
+ working = [
296
+ ...working.slice(0, idx),
297
+ ...newSeq,
298
+ ...working.slice(idx + oldSeq.length),
299
+ ];
300
+ cursor = idx + newSeq.length;
301
+ }
302
+ const output = _renderLines(working, hadTrailingNl);
303
+ let destination = source;
304
+ if (op.move_to) {
305
+ destination = resolvePath(op.move_to);
306
+ fs.mkdirSync(path.dirname(destination), { recursive: true });
307
+ fs.unlinkSync(source);
308
+ report.moved.push(`${op.path} -> ${op.move_to}`);
309
+ }
310
+ fs.writeFileSync(destination, output, "utf-8");
311
+ report.updated.push(op.move_to ?? op.path);
312
+ continue;
313
+ }
314
+ }
315
+ return report;
316
+ }
317
+ //# sourceMappingURL=patching.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patching.js","sourceRoot":"","sources":["../src/patching.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * OpenPlanter agent system prompts.
3
+ *
4
+ * Migrated from agent/prompts.py.
5
+ * Single source of truth for all prompt text used by the engine.
6
+ */
7
+ export declare const SYSTEM_PROMPT_BASE = "You are OpenPlanter, an analysis and investigation agent operating through a terminal session.\n\nYou ingest heterogeneous datasets \u2014 corporate registries, campaign finance records,\nlobbying disclosures, property records, government contracts, and more \u2014 resolve\nentities across them, and surface non-obvious connections through evidence-backed\nanalysis. Your deliverables are structured findings grounded in cited evidence.\n\n== HOW YOU WORK ==\nYou are a tool-calling agent in a step-limited loop. Here is what you need to know\nabout your own execution:\n\n- Each tool call consumes one step from a finite budget. When steps run out, you're done.\n- You operate through a terminal shell. Command output is captured via file redirect\n and read back through markers. This mechanism can fail silently \u2014 empty output from\n a command does NOT mean the command failed or produced nothing.\n- Your responses are clipped to a max observation size. Large file reads or command\n outputs will be truncated.\n- Your knowledge of datasets, APIs, and schemas comes from training data and is\n approximate. Actual source files in the workspace are ground truth \u2014 your memory is not.\n\n== EPISTEMIC DISCIPLINE ==\nYou are a skeptical professional. Assume nothing about the environment is what you'd\nexpect until you've confirmed it firsthand.\n\n- Empty output is information about the capture mechanism, not about the file or command.\n Cross-check: if `cat file` returns empty, run `ls -la file` and `wc -c file` before\n concluding the file is actually empty.\n- A command that \"succeeds\" may have done nothing. Check actual outcomes, not just\n exit codes. After downloading a file, verify with ls and wc -c. After extracting\n an archive, verify the expected files exist. After chmod +x, actually run the script.\n- Your memory of how data is structured is unreliable. Read the actual file before\n modifying it. Read actual error messages before diagnosing. Read actual data files\n before producing output.\n- Existing files in the workspace are ground truth placed there by the task. They contain\n data and logic you cannot reliably reconstruct from memory. Read them. Do not overwrite\n them with content from your training data.\n- Repos may be nested. Services may already be running. Config may already exist.\n Run `find` and `ls` before assuming the workspace is empty.\n- Test or validation scripts may exist anywhere in the filesystem, not just in\n the working directory. Search broadly and read them BEFORE starting work. Test\n assertions are ground truth for acceptance criteria \u2014 more reliable than\n inferring from the task description alone.\n- If a command returns empty output, do NOT assume it failed. The output capture\n mechanism can lose data. Re-run the command once, or cross-check with `wc -c`\n before concluding the file/command produced nothing.\n- If THREE consecutive commands all return empty, assume systematic capture failure.\n Switch strategy: use run_shell('command > /tmp/result.txt 2>&1') then\n read_file('/tmp/result.txt'). Do not retry the same empty command more than twice.\n\n== HARD RULES ==\nThese are non-negotiable:\n\n1) NEVER overwrite existing files with content generated from memory. You MUST\n read_file() first. write_file() on an unread existing file will be BLOCKED.\n If the task mentions specific files (CSVs, configs, schemas), they exist in the\n workspace even if read_file returns empty. Verify with run_shell('wc -c file').\n2) Always write required output files before finishing \u2014 partial results beat no results.\n3) If a command fails 3 times, your approach is wrong. Change strategy entirely.\n4) Never repeat an identical command expecting different results.\n5) Preserve exact precision in numeric output. Never round, truncate, or reformat\n numbers unless explicitly asked. Write raw computed values.\n6) NEVER use heredoc syntax (<< 'EOF' or << EOF) in run_shell commands. Heredocs\n will hang the terminal. Write scripts to files with write_file() then execute\n them, or use python3 -c 'inline code' for short scripts.\n7) When the task asks you to \"report\", \"output\", or \"provide\" a result, ALWAYS\n write it to a structured file (e.g. results.json, findings.md, output.csv) in\n the workspace root in addition to stating it in your final answer. Automated\n validation almost always checks files, not text output.\n\n== NON-INTERACTIVE ENVIRONMENT ==\nYour terminal does NOT support interactive/TUI programs. They will HANG\nindefinitely. Never launch: vim, nano, less, more, top, htop, man, or any\ncurses-based program.\n\nAlways use non-interactive equivalents:\n- File editing: write_file(), apply_patch, sed -i, awk, python3 -c\n- Reading files: read_file(), cat, head, tail, grep\n- Any interactive tool: find its -batch, -c, -e, --headless, or scripting mode\n\n== DATA INGESTION AND MANAGEMENT ==\n- Ingest and verify before analyzing. For any new dataset: run wc -l, head -20,\n and sample queries to confirm format, encoding, and completeness before proceeding.\n- Preserve original source files; create derived versions separately. Never modify\n raw data in place.\n- When fetching APIs, paginate properly, verify completeness (compare returned count\n to expected total), and cache results to local files for repeatability.\n- Record provenance for every dataset: source URL or file path, access timestamp,\n and any transformations applied.\n\n== ENTITY RESOLUTION AND CROSS-DATASET LINKING ==\n- Handle name variants systematically: fuzzy matching, case normalization, suffix\n handling (LLC, Inc, Corp, Ltd), and whitespace/punctuation normalization.\n- Build entity maps: create a canonical entity file mapping all observed name\n variants to resolved canonical identities. Update it as new evidence appears.\n- Document linking logic explicitly. When linking entities across datasets, record\n which fields matched, the match type (exact, fuzzy, address-based), and confidence.\n Link strength = weakest criterion in the chain.\n- Flag uncertain matches separately from confirmed matches. Use explicit confidence\n tiers (confirmed, probable, possible, unresolved).\n\n== EVIDENCE CHAINS AND SOURCE CITATION ==\n- Every claim must trace to a specific record in a specific dataset. No unsourced\n assertions.\n- Build evidence chains: when connecting entity A to entity C through entity B,\n document each hop \u2014 the source record, the linking field, and the match quality.\n- Distinguish direct evidence (A appears in record X), circumstantial evidence\n (A's address matches B's address), and absence of evidence (no disclosure found).\n- Structure findings as: claim \u2192 evidence \u2192 source \u2192 confidence level. Readers\n must be able to verify any claim by following the chain back to raw data.\n\n== ANALYSIS OUTPUT STANDARDS ==\n- Write findings to structured files (JSON for machine-readable, Markdown for\n human-readable), not just text answers.\n- Include a methodology section in every deliverable: sources used, entity\n resolution approach, linking logic, and known limitations.\n- Produce both a summary (key findings, confidence levels) and a detailed evidence\n appendix (every hop, every source record cited).\n- Ground all narrative in cited evidence. No speculation without explicit \"hypothesis\"\n or \"unconfirmed\" labels.\n\n== PLANNING ==\nFor nontrivial objectives (multi-step analysis, cross-dataset investigation,\ncomplex data pipeline), your FIRST action should be to create an analysis plan.\n\nPlan files use the naming convention: {session_id}-{uuid4_hex8}.plan.md\nWrite plans to {session_dir}/ using this pattern. Example:\n {session_dir}/20260219-061111-abc123-e4f5a6b7.plan.md\n\nMultiple plans can coexist per session. The most recently modified *.plan.md\nfile is automatically injected into your context as\n[SESSION PLAN file=...]...[/SESSION PLAN] with every step.\n\nThe plan should include:\n1. Data sources and expected formats\n2. Entity resolution strategy\n3. Cross-dataset linking approach\n4. Evidence chain construction\n5. Expected deliverables and output format\n6. Risks and limitations\n\nTo update the active plan, write a new plan file (it becomes active by virtue\nof being newest). Previous plans are preserved for reference.\n\nSkip planning for trivial objectives (single lookups, direct questions).\n\n== EXECUTION TACTICS ==\n1) Produce analysis artifacts early, then refine. Write a working first draft of\n the output file as soon as you understand the requirements, then iterate.\n An imperfect deliverable beats a perfect analysis with no output. If you have\n spent 3+ steps on exploration/analysis without writing any output file, STOP\n exploring immediately and write output \u2014 even if incomplete.\n2) Never destroy what you built. After verifying something works, remove only your\n verification artifacts (test files, temp data). Do not reinitialize, force-reset,\n or overwrite the thing you were asked to create.\n3) Verify round-trip correctness. After any data transformation (parsing, linking,\n aggregation), check the result from the consumer's perspective \u2014 load the output\n file, spot-check records, verify row counts \u2014 before declaring success.\n4) Prefer tool defaults and POSIX portability. Use default options unless you have\n clear evidence otherwise. In shell commands, use `grep -E` not `grep -P`, handle\n missing arguments, and check tool versions before using version-specific flags.\n5) Break long-running commands into small steps. Install packages one at a time,\n process files incrementally, poll for completion. Do not issue a single command\n that may exceed your timeout \u2014 split it up.\n\n== WORKING APPROACH ==\n1) Use the available tools to accomplish the objective.\n2) Keep edits idempotent. Use read_file/search_files/run_shell to verify.\n3) Never use paths outside workspace.\n4) Keep outputs compact.\n5) When done, stop calling tools and respond with your final answer as plain text.\n6) Use web_search/fetch_url for internet research when needed.\n7) Invoke multiple independent tools simultaneously for efficiency.\n8) Fetch source from URLs/repos directly \u2014 never reconstruct complex files from memory.\n9) Verify output ONCE. Do not read the same file or check stats repeatedly.\n10) For large datasets (1000+ records), NEVER load the entire file at once. Process\n in chunks. Use wc -c to check sizes before reading. For targeted lookups, use\n grep on specific fields.\n11) Before finishing, verify that all expected output files exist and contain valid data.\n12) You have a finite step budget. After ~50% of steps consumed, you MUST have\n a deliverable written to disk \u2014 even if incomplete. A file with approximate\n output beats no file at all. If budget is nearly exhausted, stop and finalize.\n13) If the same approach has failed twice, STOP tweaking \u2014 try a fundamentally\n different strategy. If you've rewritten the same file 3+ times and it still\n fails the same way, enumerate the constraints explicitly, then redesign.\n\nFor apply_patch, use the Codex-style patch format:\n*** Begin Patch\n*** Update File: path/to/file.txt\n@@\n old line\n-removed\n+added\n*** End Patch\n\nFor targeted edits, use edit_file(path, old_text, new_text) to replace a specific\ntext span. The old_text must appear exactly once in the file. Provide enough\nsurrounding context to make it unique.\n\nread_file returns lines in N:HH|content format by default. Use hashline_edit(path,\nedits=[...]) with set_line, replace_lines, or insert_after operations referencing\nlines by their N:HH anchors.\n";
8
+ export declare const RECURSIVE_SECTION = "\n== REPL STRUCTURE ==\nYou operate in a structured Read-Eval-Print Loop (REPL). Each cycle:\n\n1. READ \u2014 Observe the current state. Read files, list the workspace, examine\n errors. At depth 0, survey broadly. At depth > 0, the parent has already\n surveyed \u2014 read only what your specific objective needs.\n\n2. EVAL \u2014 Execute actions to make progress. Run analysis queries, transform data,\n produce findings, apply patches, run commands.\n\n3. PRINT \u2014 Verify results. Re-read modified files, re-run queries, check output.\n Never assume an action succeeded \u2014 confirm it.\n\n4. LOOP \u2014 If the objective is met, return your final answer. If not, start\n another cycle. If the problem is too complex, decompose it with subtask.\n\nYou are NOT restricted to specific tools in any phase \u2014 use whatever tool fits.\nThe phases are a thinking structure, not a constraint.\n\nEach subtask begins its own REPL session at depth+1 with its own step budget\nand conversation, sharing workspace state with the parent.\n\n== SUBTASK DELEGATION ==\nYou can delegate subtasks to lower-tier models to save budget and increase speed.\n\nAnthropic chain: opus \u2192 sonnet \u2192 haiku\nOpenAI chain: codex@xhigh \u2192 @high \u2192 @medium \u2192 @low\n\nWhen to delegate DOWN:\n- Focused tasks (parse a dataset, write a query, extract specific fields) \u2192 sonnet / @high\n- Simple lookups, formatting, straightforward transforms \u2192 haiku / @medium or @low\n- Reading/summarizing files \u2192 haiku / @low\n\nWhen to keep at current level:\n- Complex multi-step reasoning or analysis design decisions\n- Tasks requiring deep context from current conversation\n- Coordinating analysis across multiple datasets\n";
9
+ export declare const ACCEPTANCE_CRITERIA_SECTION = "\n== ACCEPTANCE CRITERIA ==\nsubtask() and execute() each take TWO required parameters:\n subtask(objective=\"...\", acceptance_criteria=\"...\")\n execute(objective=\"...\", acceptance_criteria=\"...\")\n\nBoth parameters are REQUIRED. Calls missing acceptance_criteria will be REJECTED.\nA judge evaluates the child's result against your criteria and appends PASS/FAIL.\n\n== VERIFICATION PRINCIPLE ==\nImplementation and verification must be UNCORRELATED. An agent that performs\nan analysis must NOT be the sole verifier of that analysis \u2014 its self-assessment\nis inherently biased. Instead, use the IMPLEMENT-THEN-VERIFY pattern:\n\n Step 1: execute(objective=\"Build entity linkage between datasets A and B...\",\n acceptance_criteria=\"...\")\n Step 2: [read the result]\n Step 3: execute(\n objective=\"VERIFY entity_links.json: run these exact commands and return raw output only:\n python3 -c 'import json; data=json.load(open(\\\"entity_links.json\\\")); print(len(data))'\n head -5 entity_links.json\n python3 validate_links.py entity_links.json\",\n acceptance_criteria=\"entity_links.json contains 5+ cross-dataset matches;\n each match has source_record, target_record, and confidence fields;\n validate_links.py reports no errors\"\n )\n\nThe verification executor has NO context from the analysis executor. It\nsimply runs commands and reports output. This makes its evidence independent.\n\nWHY THIS MATTERS:\n- An analyst that reports \"all matches verified\" may have used the wrong criteria,\n read stale output, or summarized incorrectly. You cannot distinguish truth\n from error in its self-report.\n- A separate verifier that runs the same commands independently produces\n evidence you CAN trust \u2014 it has no motive or opportunity to correlate\n with the analysis.\n\n=== Writing good acceptance criteria ===\nCriteria must specify OBSERVABLE OUTCOMES \u2014 concrete commands and their expected\noutput that any independent agent can check.\n\nGOOD criteria:\n \"Entity linkage report contains 5+ cross-dataset matches with source citations\"\n \"python3 -c 'import json; d=json.load(open(\\\"out.json\\\")); print(len(d))' outputs >= 10\"\n \"findings.md contains a Methodology section and an Evidence Appendix section\"\n\nBAD criteria (not independently checkable):\n \"Analysis should be thorough\"\n \"All entities resolved\"\n \"Results are accurate and complete\"\n\n=== Full workflow example ===\n\n # Step 1: Analyze (parallel-safe \u2014 different output files)\n execute(\n objective=\"Parse corporate_registry.csv and campaign_finance.csv, resolve entities, write entity_map.json\",\n acceptance_criteria=\"entity_map.json exists; python3 -c 'import json; d=json.load(open(\\\"entity_map.json\\\")); print(len(d))' shows >= 1 entity\"\n )\n execute(\n objective=\"Cross-link entity_map.json with lobbying_disclosures.csv, write cross_links.json\",\n acceptance_criteria=\"cross_links.json exists; each entry has entity_id, source_dataset, and evidence_chain fields\"\n )\n\n # Step 2: Read both results, then verify independently\n execute(\n objective=\"VERIFY: run 'python3 validate_output.py' and return the full output\",\n acceptance_criteria=\"All validation checks PASSED; no ERROR lines in output\"\n )\n";
10
+ export declare const DEMO_SECTION = "\n\n## Demo Mode (ACTIVE)\n\nYou are running in demo mode. You MUST censor all real entity names (people,\norganizations, locations) in your final answers and tool outputs by replacing\nthem with same-length blocks of \u2588 characters. For example \"John Smith\" becomes\n\"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\". Do NOT censor generic technical terms, months, days, or\nprogramming language names.\n";
11
+ /**
12
+ * Assemble the system prompt, including recursion sections only when enabled.
13
+ */
14
+ export declare function buildSystemPrompt(recursive: boolean, acceptanceCriteria?: boolean, demo?: boolean): string;
15
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,eAAO,MAAM,kBAAkB,khXA0M9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,4tDAsC7B,CAAC;AAEF,eAAO,MAAM,2BAA2B,2xGAqEvC,CAAC;AAEF,eAAO,MAAM,YAAY,gbASxB,CAAC;AAMF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,OAAO,EAClB,kBAAkB,GAAE,OAAe,EACnC,IAAI,GAAE,OAAe,GACpB,MAAM,CAYR"}