@nifrajs/coding-agent 3.2.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 (211) hide show
  1. package/EXTENSIONS.md +25 -0
  2. package/PERFORMANCE.md +19 -0
  3. package/README.md +69 -0
  4. package/REGISTRY.md +15 -0
  5. package/SECURITY.md +32 -0
  6. package/dist/approvals.d.ts +70 -0
  7. package/dist/approvals.d.ts.map +1 -0
  8. package/dist/approvals.js +174 -0
  9. package/dist/approvals.js.map +1 -0
  10. package/dist/capabilities.d.ts +20 -0
  11. package/dist/capabilities.d.ts.map +1 -0
  12. package/dist/capabilities.js +49 -0
  13. package/dist/capabilities.js.map +1 -0
  14. package/dist/cli.d.ts +24 -0
  15. package/dist/cli.d.ts.map +1 -0
  16. package/dist/cli.js +380 -0
  17. package/dist/cli.js.map +1 -0
  18. package/dist/context.d.ts +17 -0
  19. package/dist/context.d.ts.map +1 -0
  20. package/dist/context.js +66 -0
  21. package/dist/context.js.map +1 -0
  22. package/dist/deployment-adapters.d.ts +40 -0
  23. package/dist/deployment-adapters.d.ts.map +1 -0
  24. package/dist/deployment-adapters.js +147 -0
  25. package/dist/deployment-adapters.js.map +1 -0
  26. package/dist/diff.d.ts +17 -0
  27. package/dist/diff.d.ts.map +1 -0
  28. package/dist/diff.js +61 -0
  29. package/dist/diff.js.map +1 -0
  30. package/dist/errors.d.ts +9 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +35 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/extensions.d.ts +104 -0
  35. package/dist/extensions.d.ts.map +1 -0
  36. package/dist/extensions.js +284 -0
  37. package/dist/extensions.js.map +1 -0
  38. package/dist/handoffs.d.ts +97 -0
  39. package/dist/handoffs.d.ts.map +1 -0
  40. package/dist/handoffs.js +199 -0
  41. package/dist/handoffs.js.map +1 -0
  42. package/dist/healing.d.ts +56 -0
  43. package/dist/healing.d.ts.map +1 -0
  44. package/dist/healing.js +54 -0
  45. package/dist/healing.js.map +1 -0
  46. package/dist/host.d.ts +61 -0
  47. package/dist/host.d.ts.map +1 -0
  48. package/dist/host.js +369 -0
  49. package/dist/host.js.map +1 -0
  50. package/dist/index.d.ts +26 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +26 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/isolated-worker.d.ts +2 -0
  55. package/dist/isolated-worker.d.ts.map +1 -0
  56. package/dist/isolated-worker.js +155 -0
  57. package/dist/isolated-worker.js.map +1 -0
  58. package/dist/isolated.d.ts +52 -0
  59. package/dist/isolated.d.ts.map +1 -0
  60. package/dist/isolated.js +293 -0
  61. package/dist/isolated.js.map +1 -0
  62. package/dist/native.d.ts +92 -0
  63. package/dist/native.d.ts.map +1 -0
  64. package/dist/native.js +339 -0
  65. package/dist/native.js.map +1 -0
  66. package/dist/orchestration/artifact-port.d.ts +30 -0
  67. package/dist/orchestration/artifact-port.d.ts.map +1 -0
  68. package/dist/orchestration/artifact-port.js +59 -0
  69. package/dist/orchestration/artifact-port.js.map +1 -0
  70. package/dist/orchestration/catalog.d.ts +71 -0
  71. package/dist/orchestration/catalog.d.ts.map +1 -0
  72. package/dist/orchestration/catalog.js +46 -0
  73. package/dist/orchestration/catalog.js.map +1 -0
  74. package/dist/orchestration/compile.d.ts +59 -0
  75. package/dist/orchestration/compile.d.ts.map +1 -0
  76. package/dist/orchestration/compile.js +268 -0
  77. package/dist/orchestration/compile.js.map +1 -0
  78. package/dist/orchestration/dispatch.d.ts +115 -0
  79. package/dist/orchestration/dispatch.d.ts.map +1 -0
  80. package/dist/orchestration/dispatch.js +220 -0
  81. package/dist/orchestration/dispatch.js.map +1 -0
  82. package/dist/orchestration/durable-jobs.d.ts +35 -0
  83. package/dist/orchestration/durable-jobs.d.ts.map +1 -0
  84. package/dist/orchestration/durable-jobs.js +273 -0
  85. package/dist/orchestration/durable-jobs.js.map +1 -0
  86. package/dist/orchestration/effect-key.d.ts +23 -0
  87. package/dist/orchestration/effect-key.d.ts.map +1 -0
  88. package/dist/orchestration/effect-key.js +24 -0
  89. package/dist/orchestration/effect-key.js.map +1 -0
  90. package/dist/orchestration/evidence-store.d.ts +75 -0
  91. package/dist/orchestration/evidence-store.d.ts.map +1 -0
  92. package/dist/orchestration/evidence-store.js +183 -0
  93. package/dist/orchestration/evidence-store.js.map +1 -0
  94. package/dist/orchestration/hash.d.ts +12 -0
  95. package/dist/orchestration/hash.d.ts.map +1 -0
  96. package/dist/orchestration/hash.js +43 -0
  97. package/dist/orchestration/hash.js.map +1 -0
  98. package/dist/orchestration/host.d.ts +121 -0
  99. package/dist/orchestration/host.d.ts.map +1 -0
  100. package/dist/orchestration/host.js +334 -0
  101. package/dist/orchestration/host.js.map +1 -0
  102. package/dist/orchestration/index.d.ts +20 -0
  103. package/dist/orchestration/index.d.ts.map +1 -0
  104. package/dist/orchestration/index.js +19 -0
  105. package/dist/orchestration/index.js.map +1 -0
  106. package/dist/orchestration/policy.d.ts +63 -0
  107. package/dist/orchestration/policy.d.ts.map +1 -0
  108. package/dist/orchestration/policy.js +80 -0
  109. package/dist/orchestration/policy.js.map +1 -0
  110. package/dist/orchestration/recovery.d.ts +87 -0
  111. package/dist/orchestration/recovery.d.ts.map +1 -0
  112. package/dist/orchestration/recovery.js +197 -0
  113. package/dist/orchestration/recovery.js.map +1 -0
  114. package/dist/orchestration/tracer.d.ts +31 -0
  115. package/dist/orchestration/tracer.d.ts.map +1 -0
  116. package/dist/orchestration/tracer.js +141 -0
  117. package/dist/orchestration/tracer.js.map +1 -0
  118. package/dist/plans.d.ts +35 -0
  119. package/dist/plans.d.ts.map +1 -0
  120. package/dist/plans.js +63 -0
  121. package/dist/plans.js.map +1 -0
  122. package/dist/presets.d.ts +10 -0
  123. package/dist/presets.d.ts.map +1 -0
  124. package/dist/presets.js +70 -0
  125. package/dist/presets.js.map +1 -0
  126. package/dist/process.d.ts +6 -0
  127. package/dist/process.d.ts.map +1 -0
  128. package/dist/process.js +42 -0
  129. package/dist/process.js.map +1 -0
  130. package/dist/registry.d.ts +37 -0
  131. package/dist/registry.d.ts.map +1 -0
  132. package/dist/registry.js +51 -0
  133. package/dist/registry.js.map +1 -0
  134. package/dist/replay.d.ts +24 -0
  135. package/dist/replay.d.ts.map +1 -0
  136. package/dist/replay.js +154 -0
  137. package/dist/replay.js.map +1 -0
  138. package/dist/rpc.d.ts +51 -0
  139. package/dist/rpc.d.ts.map +1 -0
  140. package/dist/rpc.js +412 -0
  141. package/dist/rpc.js.map +1 -0
  142. package/dist/session-migration.d.ts +59 -0
  143. package/dist/session-migration.d.ts.map +1 -0
  144. package/dist/session-migration.js +315 -0
  145. package/dist/session-migration.js.map +1 -0
  146. package/dist/sessions.d.ts +74 -0
  147. package/dist/sessions.d.ts.map +1 -0
  148. package/dist/sessions.js +222 -0
  149. package/dist/sessions.js.map +1 -0
  150. package/dist/subagents.d.ts +51 -0
  151. package/dist/subagents.d.ts.map +1 -0
  152. package/dist/subagents.js +141 -0
  153. package/dist/subagents.js.map +1 -0
  154. package/dist/tools.d.ts +13 -0
  155. package/dist/tools.d.ts.map +1 -0
  156. package/dist/tools.js +37 -0
  157. package/dist/tools.js.map +1 -0
  158. package/dist/ui.d.ts +42 -0
  159. package/dist/ui.d.ts.map +1 -0
  160. package/dist/ui.js +93 -0
  161. package/dist/ui.js.map +1 -0
  162. package/dist/verification.d.ts +34 -0
  163. package/dist/verification.d.ts.map +1 -0
  164. package/dist/verification.js +91 -0
  165. package/dist/verification.js.map +1 -0
  166. package/dist/workflows.d.ts +98 -0
  167. package/dist/workflows.d.ts.map +1 -0
  168. package/dist/workflows.js +174 -0
  169. package/dist/workflows.js.map +1 -0
  170. package/package.json +84 -0
  171. package/src/approvals.ts +249 -0
  172. package/src/capabilities.ts +74 -0
  173. package/src/cli.ts +405 -0
  174. package/src/context.ts +81 -0
  175. package/src/deployment-adapters.ts +181 -0
  176. package/src/diff.ts +80 -0
  177. package/src/errors.ts +46 -0
  178. package/src/extensions.ts +402 -0
  179. package/src/handoffs.ts +299 -0
  180. package/src/healing.ts +93 -0
  181. package/src/host.ts +465 -0
  182. package/src/index.ts +165 -0
  183. package/src/isolated-worker.ts +177 -0
  184. package/src/isolated.ts +344 -0
  185. package/src/native.ts +478 -0
  186. package/src/orchestration/artifact-port.ts +75 -0
  187. package/src/orchestration/catalog.ts +102 -0
  188. package/src/orchestration/compile.ts +373 -0
  189. package/src/orchestration/dispatch.ts +383 -0
  190. package/src/orchestration/durable-jobs.ts +374 -0
  191. package/src/orchestration/effect-key.ts +35 -0
  192. package/src/orchestration/evidence-store.ts +233 -0
  193. package/src/orchestration/hash.ts +43 -0
  194. package/src/orchestration/host.ts +445 -0
  195. package/src/orchestration/index.ts +131 -0
  196. package/src/orchestration/policy.ts +116 -0
  197. package/src/orchestration/recovery.ts +271 -0
  198. package/src/orchestration/tracer.ts +177 -0
  199. package/src/plans.ts +105 -0
  200. package/src/presets.ts +90 -0
  201. package/src/process.ts +47 -0
  202. package/src/registry.ts +80 -0
  203. package/src/replay.ts +190 -0
  204. package/src/rpc.ts +598 -0
  205. package/src/session-migration.ts +401 -0
  206. package/src/sessions.ts +303 -0
  207. package/src/subagents.ts +210 -0
  208. package/src/tools.ts +52 -0
  209. package/src/ui.ts +137 -0
  210. package/src/verification.ts +133 -0
  211. package/src/workflows.ts +279 -0
package/dist/cli.js ADDED
@@ -0,0 +1,380 @@
1
+ #!/usr/bin/env bun
2
+ import { join, resolve } from "node:path";
3
+ import { createInterface } from "node:readline";
4
+ import { CodingAgentHost, CodingAgentRpcServer, discoverExtensions, ExtensionHost, FileSessionStore, migrateLegacySession, NIFRA_AGENT_INSTRUCTIONS, PiBackend, ReplayBackend, readReplayEvents, runNifraContext, validateExtensionModule, } from "./index.js";
5
+ import { runNifraVerification } from "./verification.js";
6
+ const HELP = `nifra-agent - local coding agent host
7
+
8
+ Usage:
9
+ nifra-agent [--backend pi|replay] [--cwd <dir>] [--once <prompt>]
10
+ [--json] [--no-session] [--session-dir <dir>] [--session-id <id>]
11
+ [--verify-after-turn check,assure] [--max-repair-attempts <n>]
12
+ [--pi <command>] [--replay <file>]
13
+ nifra-agent --migrate-session <id> --migrate-from <dir> --migrate-to <dir> [--json]
14
+ nifra-agent --rpc [--cwd <dir>] [--host 127.0.0.1] [--port 0] [--expose-error-stacks]
15
+
16
+ Commands in interactive mode:
17
+ /reload reload Pi or Nifra extensions
18
+ /compact compact the bounded prompt window
19
+ /checkpoint persist a recoverable session checkpoint
20
+ /fork [ID] fork the current session history
21
+ /history [N] show bounded persisted session history
22
+ /check run nifra check --json
23
+ /assure run nifra assure --json
24
+ /context inspect the current Nifra project context
25
+ /approvals list pending approvals
26
+ /approve ID approve a pending action
27
+ /deny ID deny a pending action
28
+ /quit close the session
29
+ `;
30
+ export function parseArgs(args) {
31
+ let backend = "pi";
32
+ let cwd = process.cwd();
33
+ let once;
34
+ let json = false;
35
+ let noSession = false;
36
+ let piCommand = "pi";
37
+ let replayFile;
38
+ let sessionDir;
39
+ let rpc = false;
40
+ let host = "127.0.0.1";
41
+ let port = 0;
42
+ let authToken;
43
+ let exposeErrorStacks = false;
44
+ let sessionId;
45
+ let migrateSession;
46
+ let migrationSource;
47
+ let migrationTarget;
48
+ let verifyAfterTurn = [];
49
+ let maxRepairAttempts = 2;
50
+ for (let index = 0; index < args.length; index++) {
51
+ const arg = args[index];
52
+ if (arg === "--backend")
53
+ backend = args[++index] ?? backend;
54
+ else if (arg === "--cwd")
55
+ cwd = resolve(args[++index] ?? cwd);
56
+ else if (arg === "--once" || arg === "--message")
57
+ once = args[++index];
58
+ else if (arg === "--json")
59
+ json = true;
60
+ else if (arg === "--no-session")
61
+ noSession = true;
62
+ else if (arg === "--session-dir")
63
+ sessionDir = resolve(args[++index] ?? "");
64
+ else if (arg === "--session-id")
65
+ sessionId = args[++index];
66
+ else if (arg === "--migrate-session")
67
+ migrateSession = args[++index];
68
+ else if (arg === "--migrate-from")
69
+ migrationSource = resolve(args[++index] ?? "");
70
+ else if (arg === "--migrate-to")
71
+ migrationTarget = resolve(args[++index] ?? "");
72
+ else if (arg === "--pi")
73
+ piCommand = args[++index] ?? piCommand;
74
+ else if (arg === "--replay")
75
+ replayFile = resolve(args[++index] ?? "");
76
+ else if (arg === "--rpc")
77
+ rpc = true;
78
+ else if (arg === "--host")
79
+ host = args[++index] ?? host;
80
+ else if (arg === "--port") {
81
+ port = Number(args[++index] ?? "0");
82
+ if (!Number.isSafeInteger(port) || port < 0 || port > 65_535)
83
+ throw new Error("--port must be an integer between 0 and 65535");
84
+ }
85
+ else if (arg === "--token")
86
+ authToken = args[++index];
87
+ else if (arg === "--expose-error-stacks")
88
+ exposeErrorStacks = true;
89
+ else if (arg === "--verify-after-turn")
90
+ verifyAfterTurn = parseVerificationNames(args[++index] ?? "");
91
+ else if (arg === "--max-repair-attempts") {
92
+ maxRepairAttempts = Number(args[++index] ?? "");
93
+ if (!Number.isSafeInteger(maxRepairAttempts) ||
94
+ maxRepairAttempts < 0 ||
95
+ maxRepairAttempts > 8)
96
+ throw new Error("--max-repair-attempts must be an integer between 0 and 8");
97
+ }
98
+ else if (arg === "--help" || arg === "-h") {
99
+ console.log(HELP);
100
+ process.exit(0);
101
+ }
102
+ else
103
+ throw new Error(`unknown argument: ${arg}`);
104
+ }
105
+ if (backend !== "pi" && backend !== "replay")
106
+ throw new Error(`unsupported backend: ${backend}`);
107
+ if (backend === "replay" && replayFile === undefined)
108
+ throw new Error("--backend replay requires --replay <file>");
109
+ if (migrateSession === undefined &&
110
+ (migrationSource !== undefined || migrationTarget !== undefined))
111
+ throw new Error("--migrate-from and --migrate-to require --migrate-session");
112
+ if (migrateSession !== undefined &&
113
+ (migrationSource === undefined || migrationTarget === undefined))
114
+ throw new Error("--migrate-session requires --migrate-from and --migrate-to");
115
+ return {
116
+ backend,
117
+ cwd,
118
+ ...(once === undefined ? {} : { once }),
119
+ json,
120
+ noSession,
121
+ piCommand,
122
+ ...(replayFile === undefined ? {} : { replayFile }),
123
+ ...(sessionDir === undefined ? {} : { sessionDir }),
124
+ rpc,
125
+ host,
126
+ port,
127
+ ...(authToken === undefined ? {} : { authToken }),
128
+ exposeErrorStacks,
129
+ ...(sessionId === undefined ? {} : { sessionId }),
130
+ ...(migrateSession === undefined ? {} : { migrateSession }),
131
+ ...(migrationSource === undefined ? {} : { migrationSource }),
132
+ ...(migrationTarget === undefined ? {} : { migrationTarget }),
133
+ verifyAfterTurn,
134
+ maxRepairAttempts,
135
+ };
136
+ }
137
+ function parseVerificationNames(value) {
138
+ const names = value
139
+ .split(",")
140
+ .map((name) => name.trim())
141
+ .filter(Boolean);
142
+ if (names.length === 0 ||
143
+ names.some((name) => name !== "check" && name !== "assure" && name !== "test"))
144
+ throw new Error("--verify-after-turn must contain only check, assure, or test");
145
+ return Object.freeze([...new Set(names)]);
146
+ }
147
+ function printEvent(event, json) {
148
+ if (json) {
149
+ console.log(JSON.stringify(event));
150
+ return;
151
+ }
152
+ if (event.type === "assistant.delta")
153
+ process.stdout.write(String(event.text ?? ""));
154
+ else if (event.type === "assistant.message")
155
+ process.stdout.write(`\n${String(event.text ?? "")}\n`);
156
+ else if (event.type === "tool.started")
157
+ console.error(`\n[tool] ${String(event.name ?? "unknown")}`);
158
+ else if (event.type === "tool.completed")
159
+ console.error(`[tool ${event.ok === true ? "ok" : "failed"}]`);
160
+ else if (event.type === "memory.compacted")
161
+ console.error(`[memory] compacted ${String(event.before)} -> ${String(event.after)}`);
162
+ else if (event.type === "extension.reloaded")
163
+ console.error(`[reload] ${String(event.revision)}`);
164
+ else if (event.type === "session.failed")
165
+ console.error(`[agent] ${JSON.stringify(event.error)}`);
166
+ }
167
+ async function main() {
168
+ const options = parseArgs(Bun.argv.slice(2));
169
+ if (options.migrateSession !== undefined) {
170
+ const report = await migrateLegacySession({
171
+ sessionId: options.migrateSession,
172
+ sourceRoot: options.migrationSource,
173
+ targetRoot: options.migrationTarget,
174
+ });
175
+ if (options.json)
176
+ console.log(JSON.stringify({ type: "session.migrated", report }));
177
+ else
178
+ console.log(`[session] migrated ${report.records} evidence records (${report.firstSeq ?? "empty"}..${report.lastSeq ?? "empty"}) digest ${report.digest}`);
179
+ return;
180
+ }
181
+ const backend = options.backend === "replay"
182
+ ? new ReplayBackend({ events: await readReplayEvents(options.replayFile) })
183
+ : new PiBackend({
184
+ command: options.piCommand,
185
+ noSession: options.noSession,
186
+ appendSystemPrompt: NIFRA_AGENT_INSTRUCTIONS,
187
+ enableNifraTools: true,
188
+ ...(options.sessionDir === undefined ? {} : { sessionDir: options.sessionDir }),
189
+ });
190
+ const extensionRoots = await discoverExtensions(options.cwd);
191
+ const extensions = new ExtensionHost({
192
+ cwd: options.cwd,
193
+ roots: extensionRoots,
194
+ validate: validateExtensionModule,
195
+ });
196
+ if (options.rpc) {
197
+ const rpc = new CodingAgentRpcServer({
198
+ backend,
199
+ cwd: options.cwd,
200
+ hostname: options.host,
201
+ port: options.port,
202
+ ...(options.authToken === undefined ? {} : { authToken: options.authToken }),
203
+ exposeErrorStacks: options.exposeErrorStacks,
204
+ ...(options.sessionDir === undefined
205
+ ? {}
206
+ : { sessionStore: new FileSessionStore({ root: join(options.sessionDir, "events") }) }),
207
+ extensions,
208
+ maxRepairAttempts: options.maxRepairAttempts,
209
+ verifyAfterTurn: options.verifyAfterTurn,
210
+ });
211
+ const handle = await rpc.start();
212
+ const ready = { type: "rpc.ready", url: handle.url, token: handle.token, protocol: 1 };
213
+ if (options.json)
214
+ console.log(JSON.stringify(ready));
215
+ else
216
+ console.error(`nifra-agent RPC listening at ${handle.url} (token: ${handle.token})`);
217
+ const stopRpc = async (code) => {
218
+ await rpc.stop();
219
+ process.exit(code);
220
+ };
221
+ process.once("SIGINT", () => void stopRpc(130));
222
+ process.once("SIGTERM", () => void stopRpc(143));
223
+ await new Promise(() => { });
224
+ return;
225
+ }
226
+ const hostOptions = options.sessionDir === undefined
227
+ ? {
228
+ backend,
229
+ extensions,
230
+ maxRepairAttempts: options.maxRepairAttempts,
231
+ verifyAfterTurn: options.verifyAfterTurn,
232
+ }
233
+ : {
234
+ backend,
235
+ sessionStore: new FileSessionStore({ root: join(options.sessionDir, "events") }),
236
+ extensions,
237
+ maxRepairAttempts: options.maxRepairAttempts,
238
+ verifyAfterTurn: options.verifyAfterTurn,
239
+ };
240
+ const host = new CodingAgentHost(hostOptions);
241
+ await host.start({
242
+ cwd: options.cwd,
243
+ backend: options.backend,
244
+ ...(options.sessionId === undefined ? {} : { sessionId: options.sessionId }),
245
+ });
246
+ const stop = async () => {
247
+ await host.stop("process exit");
248
+ };
249
+ process.once("SIGINT", () => void stop().finally(() => process.exit(130)));
250
+ process.once("SIGTERM", () => void stop().finally(() => process.exit(143)));
251
+ const send = async (message) => {
252
+ for await (const event of host.prompt(message))
253
+ printEvent(event, options.json);
254
+ };
255
+ if (options.once !== undefined) {
256
+ await send(options.once);
257
+ await stop();
258
+ return;
259
+ }
260
+ if (!options.json) {
261
+ console.log("nifra-agent connected to Pi. Type a prompt, /reload, /check, or /quit.");
262
+ }
263
+ const readline = createInterface({
264
+ input: process.stdin,
265
+ output: options.json ? undefined : process.stdout,
266
+ });
267
+ try {
268
+ for await (const line of readline) {
269
+ const message = line.trim();
270
+ if (message.length === 0)
271
+ continue;
272
+ if (message === "/quit" || message === "/exit")
273
+ break;
274
+ if (message === "/reload") {
275
+ const result = await host.reload();
276
+ if (options.json)
277
+ console.log(JSON.stringify({ type: "extension.reloaded", ...result }));
278
+ else
279
+ console.error(`[reload] ${result.rolledBack ? "rolled back" : result.revision}`);
280
+ continue;
281
+ }
282
+ if (message === "/compact") {
283
+ const result = await host.compact("manual");
284
+ if (options.json)
285
+ console.log(JSON.stringify({ type: "memory.compacted", ...result }));
286
+ else
287
+ console.error(`[memory] compacted ${result.before} -> ${result.after}`);
288
+ continue;
289
+ }
290
+ if (message === "/checkpoint") {
291
+ await host.checkpoint();
292
+ if (options.json)
293
+ console.log(JSON.stringify({ type: "session.checkpoint", ok: true }));
294
+ else
295
+ console.error("[session] checkpoint saved");
296
+ continue;
297
+ }
298
+ const forkCommand = /^\/fork(?:\s+([^\s]+))?$/.exec(message);
299
+ if (forkCommand !== null) {
300
+ const result = await host.fork(forkCommand[1]);
301
+ if (options.json)
302
+ console.log(JSON.stringify({ type: "session.forked", ...result }));
303
+ else
304
+ console.log(`[session] forked ${result.sessionId}`);
305
+ continue;
306
+ }
307
+ const historyCommand = /^\/history(?:\s+(\d+))?$/.exec(message);
308
+ if (historyCommand !== null) {
309
+ const result = await host.history(historyCommand[1] === undefined ? 20 : Number(historyCommand[1]));
310
+ if (options.json)
311
+ console.log(JSON.stringify({ type: "session.history", entries: result }));
312
+ else
313
+ for (const entry of result)
314
+ console.log(`${entry.seq} · ${entry.type}`);
315
+ continue;
316
+ }
317
+ if (message === "/check") {
318
+ const result = await runNifraVerification("check", { cwd: options.cwd });
319
+ if (options.json)
320
+ console.log(JSON.stringify({ type: "verification.completed", ...result }));
321
+ else
322
+ console.error(`[check] ${result.ok ? "passed" : "failed"}${result.status === null ? "" : ` (exit ${result.status})`}`);
323
+ continue;
324
+ }
325
+ if (message === "/assure") {
326
+ const result = await runNifraVerification("assure", { cwd: options.cwd });
327
+ if (options.json)
328
+ console.log(JSON.stringify({ type: "verification.completed", ...result }));
329
+ else
330
+ console.error(`[assure] ${result.ok ? "passed" : "failed"}${result.status === null ? "" : ` (exit ${result.status})`}`);
331
+ continue;
332
+ }
333
+ if (message === "/context") {
334
+ const result = await runNifraContext({ cwd: options.cwd });
335
+ if (options.json)
336
+ console.log(JSON.stringify({ type: "context.completed", ...result }));
337
+ else
338
+ console.log(result.output ?? JSON.stringify(result.report ?? result));
339
+ continue;
340
+ }
341
+ if (message === "/approvals") {
342
+ const result = host.pendingApprovals;
343
+ if (options.json)
344
+ console.log(JSON.stringify({ type: "approval.list", pending: result }));
345
+ else if (result.length === 0)
346
+ console.log("No pending approvals");
347
+ else
348
+ for (const approval of result)
349
+ console.log(`${approval.id} · ${approval.capability} · ${approval.action}`);
350
+ continue;
351
+ }
352
+ const approvalCommand = /^(\/approve|\/deny)\s+([^\s]+)$/.exec(message);
353
+ if (approvalCommand !== null) {
354
+ const result = await host.resolveApproval(approvalCommand[2], approvalCommand[1] === "/approve", "CLI decision");
355
+ if (options.json)
356
+ console.log(JSON.stringify({
357
+ type: "approval.resolved",
358
+ ...(result ?? { error: "approval not found" }),
359
+ }));
360
+ else
361
+ console.log(result === undefined
362
+ ? "Approval not found"
363
+ : `${result.approved ? "Approved" : "Denied"} ${result.approvalId}`);
364
+ continue;
365
+ }
366
+ await send(message);
367
+ }
368
+ }
369
+ finally {
370
+ readline.close();
371
+ await stop();
372
+ }
373
+ }
374
+ if (import.meta.main) {
375
+ main().catch((error) => {
376
+ console.error(error instanceof Error ? error.message : String(error));
377
+ process.exitCode = 1;
378
+ });
379
+ }
380
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface NifraContextOptions {
2
+ readonly cwd: string;
3
+ readonly command?: string;
4
+ readonly timeoutMs?: number;
5
+ readonly maxOutputBytes?: number;
6
+ readonly env?: Readonly<Record<string, string | undefined>>;
7
+ }
8
+ export interface NifraContextResult {
9
+ readonly ok: boolean;
10
+ readonly status: number | null;
11
+ readonly output?: string;
12
+ readonly report?: unknown;
13
+ readonly error?: string;
14
+ }
15
+ /** Project discovery kept outside the framework runtime; it is only spawned when an agent asks for it. */
16
+ export declare function runNifraContext(options: NifraContextOptions): Promise<NifraContextResult>;
17
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;CAC5D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,0GAA0G;AAC1G,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0C/F"}
@@ -0,0 +1,66 @@
1
+ import { readBoundedText } from "./process.js";
2
+ /** Project discovery kept outside the framework runtime; it is only spawned when an agent asks for it. */
3
+ export async function runNifraContext(options) {
4
+ const proc = Bun.spawn([options.command ?? "nifra", "context"], {
5
+ cwd: options.cwd,
6
+ stdin: "ignore",
7
+ stdout: "pipe",
8
+ stderr: "pipe",
9
+ env: safeEnv(options.env),
10
+ });
11
+ const timeoutMs = options.timeoutMs ?? 30_000;
12
+ let timedOut = false;
13
+ const timer = setTimeout(() => {
14
+ timedOut = true;
15
+ proc.kill();
16
+ }, timeoutMs);
17
+ try {
18
+ const [stdout, stderr, status] = await Promise.all([
19
+ readBoundedText(proc.stdout, options.maxOutputBytes ?? 1_048_576),
20
+ readBoundedText(proc.stderr, options.maxOutputBytes ?? 1_048_576),
21
+ proc.exited,
22
+ ]);
23
+ let report;
24
+ try {
25
+ report = JSON.parse(stdout.text);
26
+ }
27
+ catch {
28
+ report = undefined;
29
+ }
30
+ return {
31
+ ok: !timedOut && status === 0,
32
+ status,
33
+ ...(stdout.text || stderr.text ? { output: stdout.text || stderr.text } : {}),
34
+ ...(report === undefined ? {} : { report }),
35
+ ...(timedOut ? { error: `nifra context timed out after ${timeoutMs}ms` } : {}),
36
+ };
37
+ }
38
+ catch (error) {
39
+ return {
40
+ ok: false,
41
+ status: null,
42
+ error: error instanceof Error ? error.message : String(error),
43
+ };
44
+ }
45
+ finally {
46
+ clearTimeout(timer);
47
+ }
48
+ }
49
+ function safeEnv(overrides) {
50
+ const result = {};
51
+ for (const name of new Set([
52
+ "PATH",
53
+ "HOME",
54
+ "LANG",
55
+ "LC_ALL",
56
+ "TERM",
57
+ "CI",
58
+ ...Object.keys(overrides ?? {}),
59
+ ])) {
60
+ const value = overrides?.[name] ?? process.env[name];
61
+ if (value !== undefined)
62
+ result[name] = value;
63
+ }
64
+ return result;
65
+ }
66
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Truthful public deployment reference profiles.
3
+ *
4
+ * These adapters are deterministic lifecycle fixtures. They do not start a process, connect to a
5
+ * network, distribute secrets, or isolate hostile code. A real deployment implementation belongs
6
+ * behind the public `AgentDeploymentAdapter` contract and must provide its own security proof.
7
+ */
8
+ import { type AgentDeploymentAdapter, type DeploymentCancelRequest, type DeploymentCancelResult, type DeploymentCapabilityReport, type DeploymentDisposeRequest, type DeploymentDisposeResult, type DeploymentInspection, type DeploymentInspectRequest, type DeploymentPrepareRequest, type DeploymentPrepareResult, type DeploymentStartRequest, type DeploymentStartResult } from "@nifrajs/agent";
9
+ declare abstract class DeterministicDeploymentAdapter implements AgentDeploymentAdapter {
10
+ readonly id: string;
11
+ private readonly report;
12
+ private readonly states;
13
+ protected constructor(report: DeploymentCapabilityReport);
14
+ capabilityReport(): DeploymentCapabilityReport;
15
+ prepare(request: DeploymentPrepareRequest): DeploymentPrepareResult;
16
+ start(request: DeploymentStartRequest): DeploymentStartResult;
17
+ inspect(request: DeploymentInspectRequest): DeploymentInspection;
18
+ cancel(request: DeploymentCancelRequest): DeploymentCancelResult;
19
+ dispose(request: DeploymentDisposeRequest): DeploymentDisposeResult;
20
+ private assertActive;
21
+ }
22
+ export declare class LocalProcessDeploymentAdapter extends DeterministicDeploymentAdapter {
23
+ constructor();
24
+ }
25
+ export declare class CiDeploymentAdapter extends DeterministicDeploymentAdapter {
26
+ constructor();
27
+ }
28
+ export declare class ReplayDeploymentAdapter extends DeterministicDeploymentAdapter {
29
+ constructor();
30
+ }
31
+ export declare function createLocalProcessDeploymentAdapter(): LocalProcessDeploymentAdapter;
32
+ export declare function createCiDeploymentAdapter(): CiDeploymentAdapter;
33
+ export declare function createReplayDeploymentAdapter(): ReplayDeploymentAdapter;
34
+ export declare const DEPLOYMENT_REFERENCE_PROFILES: Readonly<{
35
+ localProcess: DeploymentCapabilityReport;
36
+ ci: DeploymentCapabilityReport;
37
+ replay: DeploymentCapabilityReport;
38
+ }>;
39
+ export {};
40
+ //# sourceMappingURL=deployment-adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-adapters.d.ts","sourceRoot":"","sources":["../src/deployment-adapters.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAE5B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAE3B,MAAM,gBAAgB,CAAA;AAoDvB,uBAAe,8BAA+B,YAAW,sBAAsB;IAC7E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D,SAAS,aAAa,MAAM,EAAE,0BAA0B;IAKxD,gBAAgB,IAAI,0BAA0B;IAI9C,OAAO,CAAC,OAAO,EAAE,wBAAwB,GAAG,uBAAuB;IAYnE,KAAK,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB;IAe7D,OAAO,CAAC,OAAO,EAAE,wBAAwB,GAAG,oBAAoB;IAWhE,MAAM,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB;IAQhE,OAAO,CAAC,OAAO,EAAE,wBAAwB,GAAG,uBAAuB;IAMnE,OAAO,CAAC,YAAY;CAGrB;AAED,qBAAa,6BAA8B,SAAQ,8BAA8B;;CAIhF;AAED,qBAAa,mBAAoB,SAAQ,8BAA8B;;CAItE;AAED,qBAAa,uBAAwB,SAAQ,8BAA8B;;CAI1E;AAED,wBAAgB,mCAAmC,IAAI,6BAA6B,CAEnF;AAED,wBAAgB,yBAAyB,IAAI,mBAAmB,CAE/D;AAED,wBAAgB,6BAA6B,IAAI,uBAAuB,CAEvE;AAED,eAAO,MAAM,6BAA6B;;;;EAIxC,CAAA"}