@miller-tech/uap 1.94.0 → 1.96.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 (88) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/benchmarks/benchmark.d.ts +4 -4
  3. package/dist/benchmarks/paired/types.d.ts +2 -2
  4. package/dist/bin/cli.js +18 -2
  5. package/dist/bin/cli.js.map +1 -1
  6. package/dist/cli/deliver.d.ts +5 -0
  7. package/dist/cli/deliver.d.ts.map +1 -1
  8. package/dist/cli/deliver.js +275 -14
  9. package/dist/cli/deliver.js.map +1 -1
  10. package/dist/cli/task.d.ts +1 -1
  11. package/dist/cli/task.d.ts.map +1 -1
  12. package/dist/cli/task.js +64 -0
  13. package/dist/cli/task.js.map +1 -1
  14. package/dist/coordination/reactor.d.ts.map +1 -1
  15. package/dist/coordination/reactor.js +14 -0
  16. package/dist/coordination/reactor.js.map +1 -1
  17. package/dist/delivery/applier.d.ts.map +1 -1
  18. package/dist/delivery/applier.js +3 -0
  19. package/dist/delivery/applier.js.map +1 -1
  20. package/dist/delivery/auto-mine.d.ts +30 -0
  21. package/dist/delivery/auto-mine.d.ts.map +1 -0
  22. package/dist/delivery/auto-mine.js +132 -0
  23. package/dist/delivery/auto-mine.js.map +1 -0
  24. package/dist/delivery/auto-optimizer.d.ts +6 -2
  25. package/dist/delivery/auto-optimizer.d.ts.map +1 -1
  26. package/dist/delivery/auto-optimizer.js +12 -5
  27. package/dist/delivery/auto-optimizer.js.map +1 -1
  28. package/dist/delivery/candidate-workspace.d.ts +32 -0
  29. package/dist/delivery/candidate-workspace.d.ts.map +1 -0
  30. package/dist/delivery/candidate-workspace.js +117 -0
  31. package/dist/delivery/candidate-workspace.js.map +1 -0
  32. package/dist/delivery/convergence-loop.d.ts +55 -0
  33. package/dist/delivery/convergence-loop.d.ts.map +1 -1
  34. package/dist/delivery/convergence-loop.js +105 -3
  35. package/dist/delivery/convergence-loop.js.map +1 -1
  36. package/dist/delivery/decompose.d.ts +45 -0
  37. package/dist/delivery/decompose.d.ts.map +1 -0
  38. package/dist/delivery/decompose.js +122 -0
  39. package/dist/delivery/decompose.js.map +1 -0
  40. package/dist/delivery/escalation.d.ts +2 -0
  41. package/dist/delivery/escalation.d.ts.map +1 -1
  42. package/dist/delivery/escalation.js +5 -0
  43. package/dist/delivery/escalation.js.map +1 -1
  44. package/dist/delivery/explorer.d.ts +9 -0
  45. package/dist/delivery/explorer.d.ts.map +1 -1
  46. package/dist/delivery/explorer.js +83 -23
  47. package/dist/delivery/explorer.js.map +1 -1
  48. package/dist/delivery/index.d.ts +6 -1
  49. package/dist/delivery/index.d.ts.map +1 -1
  50. package/dist/delivery/index.js +5 -0
  51. package/dist/delivery/index.js.map +1 -1
  52. package/dist/delivery/run-state.d.ts +44 -0
  53. package/dist/delivery/run-state.d.ts.map +1 -0
  54. package/dist/delivery/run-state.js +169 -0
  55. package/dist/delivery/run-state.js.map +1 -0
  56. package/dist/delivery/task-sync.d.ts +47 -0
  57. package/dist/delivery/task-sync.d.ts.map +1 -0
  58. package/dist/delivery/task-sync.js +148 -0
  59. package/dist/delivery/task-sync.js.map +1 -0
  60. package/dist/mcp-router/tools/deliver.d.ts +48 -0
  61. package/dist/mcp-router/tools/deliver.d.ts.map +1 -1
  62. package/dist/mcp-router/tools/deliver.js +64 -4
  63. package/dist/mcp-router/tools/deliver.js.map +1 -1
  64. package/dist/observability/halo-exporter.d.ts +6 -3
  65. package/dist/observability/halo-exporter.d.ts.map +1 -1
  66. package/dist/observability/halo-exporter.js +40 -6
  67. package/dist/observability/halo-exporter.js.map +1 -1
  68. package/dist/state/manifest.d.ts +34 -0
  69. package/dist/state/manifest.d.ts.map +1 -0
  70. package/dist/state/manifest.js +152 -0
  71. package/dist/state/manifest.js.map +1 -0
  72. package/dist/state/reactor-inject.d.ts +14 -0
  73. package/dist/state/reactor-inject.d.ts.map +1 -0
  74. package/dist/state/reactor-inject.js +25 -0
  75. package/dist/state/reactor-inject.js.map +1 -0
  76. package/dist/tasks/beads-sync.d.ts +38 -0
  77. package/dist/tasks/beads-sync.d.ts.map +1 -0
  78. package/dist/tasks/beads-sync.js +122 -0
  79. package/dist/tasks/beads-sync.js.map +1 -0
  80. package/dist/tasks/service.d.ts +7 -0
  81. package/dist/tasks/service.d.ts.map +1 -1
  82. package/dist/tasks/service.js +23 -0
  83. package/dist/tasks/service.js.map +1 -1
  84. package/package.json +1 -1
  85. package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
  86. package/src/policies/enforcers/delivery_enforcement.py +1 -1
  87. package/templates/hooks/deliver_autoroute.py +60 -10
  88. package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-sync.js","sourceRoot":"","sources":["../../src/delivery/task-sync.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,22 @@ export interface DeliverArgs {
38
38
  dryRun?: boolean;
39
39
  /** Hard wall-clock cap in seconds (default 1800) */
40
40
  timeoutSec?: number;
41
+ /** Judge spec behavioral completeness (LLM) after objective gates pass */
42
+ acceptance?: boolean;
43
+ /** Separate evaluator model preset (generator never grades its own work) */
44
+ evaluatorModel?: string;
45
+ /** Escalation ladder on stagnation (widen → critic → reseed → stronger model) */
46
+ escalate?: boolean;
47
+ /** Register/announce/heartbeat via the coordination layer */
48
+ coordinate?: boolean;
49
+ /** Loop past maxTurns to a ceiling until every gate passes (CLI default: on) */
50
+ untilDelivered?: boolean;
51
+ /** Hard turn ceiling for untilDelivered (1-50) */
52
+ ceiling?: number;
53
+ /** Resume an interrupted durable run: a run id or 'latest' */
54
+ resume?: string;
55
+ /** Decompose the mission into sequential phases (auto for long complex tasks) */
56
+ decompose?: boolean;
41
57
  }
42
58
  export declare const DELIVER_TOOL_DEFINITION: {
43
59
  name: string;
@@ -70,6 +86,38 @@ export declare const DELIVER_TOOL_DEFINITION: {
70
86
  type: string;
71
87
  description: string;
72
88
  };
89
+ acceptance: {
90
+ type: string;
91
+ description: string;
92
+ };
93
+ evaluatorModel: {
94
+ type: string;
95
+ description: string;
96
+ };
97
+ escalate: {
98
+ type: string;
99
+ description: string;
100
+ };
101
+ coordinate: {
102
+ type: string;
103
+ description: string;
104
+ };
105
+ untilDelivered: {
106
+ type: string;
107
+ description: string;
108
+ };
109
+ ceiling: {
110
+ type: string;
111
+ description: string;
112
+ };
113
+ resume: {
114
+ type: string;
115
+ description: string;
116
+ };
117
+ decompose: {
118
+ type: string;
119
+ description: string;
120
+ };
73
121
  };
74
122
  required: string[];
75
123
  };
@@ -1 +1 @@
1
- {"version":3,"file":"deliver.d.ts","sourceRoot":"","sources":["../../../src/mcp-router/tools/deliver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCnC,CAAC;AAwDF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAyBvD;AAsBD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,yFAAyF;IACzF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAsEvE;AAED,mEAAmE;AACnE,wBAAgB,yBAAyB,IAAI,MAAM,CAElD"}
1
+ {"version":3,"file":"deliver.d.ts","sourceRoot":"","sources":["../../../src/mcp-router/tools/deliver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAQH,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEnC,CAAC;AAwDF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAyBvD;AAsBD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,yFAAyF;IACzF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CA4FvE;AAED,mEAAmE;AACnE,wBAAgB,yBAAyB,IAAI,MAAM,CAElD"}
@@ -29,6 +29,7 @@ import { execFile } from 'child_process';
29
29
  import { fileURLToPath } from 'url';
30
30
  import { dirname, resolve, sep } from 'path';
31
31
  import { existsSync, realpathSync, statSync } from 'fs';
32
+ import { isValidRunId } from '../../delivery/run-state.js';
32
33
  export const DELIVER_TOOL_DEFINITION = {
33
34
  name: 'deliver',
34
35
  description: `Autonomously build-and-verify a non-trivial coding task using the convergence loop (uap deliver).
@@ -66,6 +67,38 @@ Best for: implement a feature, fix a bug across files, refactor with tests. Not
66
67
  type: 'number',
67
68
  description: 'Hard wall-clock cap in seconds (default 1800)',
68
69
  },
70
+ acceptance: {
71
+ type: 'boolean',
72
+ description: 'After objective gates pass, judge spec behavioral completeness (LLM) and iterate on unmet requirements (auto-on for moderate/complex tasks)',
73
+ },
74
+ evaluatorModel: {
75
+ type: 'string',
76
+ description: 'Model preset that AUTHORS + JUDGES acceptance, separate from the generator',
77
+ },
78
+ escalate: {
79
+ type: 'boolean',
80
+ description: 'Escalation ladder on stagnation: widen exploration → critic → reseed ideation → stronger model',
81
+ },
82
+ coordinate: {
83
+ type: 'boolean',
84
+ description: 'Register the run with the coordination layer (announce, heartbeat, overlap detection)',
85
+ },
86
+ untilDelivered: {
87
+ type: 'boolean',
88
+ description: 'Loop past maxTurns to a hard ceiling until every gate passes (default: on; false disables)',
89
+ },
90
+ ceiling: {
91
+ type: 'number',
92
+ description: 'Hard turn ceiling for untilDelivered, 1-50 (default 30)',
93
+ },
94
+ resume: {
95
+ type: 'string',
96
+ description: "Resume an interrupted durable run: a run id or 'latest'",
97
+ },
98
+ decompose: {
99
+ type: 'boolean',
100
+ description: 'Decompose the mission into sequential phases, each converged by its own loop (auto for long complex tasks; false disables)',
101
+ },
69
102
  },
70
103
  required: ['instruction'],
71
104
  },
@@ -191,9 +224,9 @@ function resolveCliEntry() {
191
224
  * aids, gates, test protection) is handled by deliver itself.
192
225
  */
193
226
  export function handleDeliver(args) {
194
- const { instruction, projectRoot, maxTurns, model, dryRun = false, timeoutSec } = args;
195
- if (!instruction || !instruction.trim()) {
196
- return Promise.resolve({ ok: false, dryRun, error: 'instruction is required' });
227
+ const { instruction, projectRoot, maxTurns, model, dryRun = false, timeoutSec, acceptance, evaluatorModel, escalate, coordinate, untilDelivered, ceiling, resume, decompose, } = args;
228
+ if ((!instruction || !instruction.trim()) && !resume) {
229
+ return Promise.resolve({ ok: false, dryRun, error: 'instruction is required (or pass resume)' });
197
230
  }
198
231
  if (maxTurns !== undefined && (!Number.isInteger(maxTurns) || maxTurns < 1 || maxTurns > MAX_TURNS_LIMIT)) {
199
232
  return Promise.resolve({ ok: false, dryRun, error: `maxTurns must be an integer 1-${MAX_TURNS_LIMIT}` });
@@ -204,6 +237,15 @@ export function handleDeliver(args) {
204
237
  if (model !== undefined && !/^[A-Za-z0-9._-]+$/.test(model)) {
205
238
  return Promise.resolve({ ok: false, dryRun, error: 'model must be a plain preset id' });
206
239
  }
240
+ if (evaluatorModel !== undefined && !/^[A-Za-z0-9._-]+$/.test(evaluatorModel)) {
241
+ return Promise.resolve({ ok: false, dryRun, error: 'evaluatorModel must be a plain preset id' });
242
+ }
243
+ if (ceiling !== undefined && (!Number.isInteger(ceiling) || ceiling < 1 || ceiling > 50)) {
244
+ return Promise.resolve({ ok: false, dryRun, error: 'ceiling must be an integer 1-50' });
245
+ }
246
+ if (resume !== undefined && resume !== 'latest' && !isValidRunId(resume)) {
247
+ return Promise.resolve({ ok: false, dryRun, error: 'resume must be a plain run id or latest' });
248
+ }
207
249
  const sandbox = resolveSandboxedRoot(projectRoot);
208
250
  if ('error' in sandbox) {
209
251
  return Promise.resolve({ ok: false, dryRun, error: sandbox.error });
@@ -224,7 +266,25 @@ export function handleDeliver(args) {
224
266
  cliArgs.push('--max-turns', String(maxTurns));
225
267
  if (model)
226
268
  cliArgs.push('--model', model);
227
- cliArgs.push('--', instruction);
269
+ if (acceptance)
270
+ cliArgs.push('--acceptance');
271
+ if (evaluatorModel)
272
+ cliArgs.push('--evaluator-model', evaluatorModel);
273
+ if (escalate)
274
+ cliArgs.push('--escalate');
275
+ if (coordinate)
276
+ cliArgs.push('--coordinate');
277
+ if (untilDelivered === false)
278
+ cliArgs.push('--no-until-delivered');
279
+ if (ceiling !== undefined)
280
+ cliArgs.push('--ceiling', String(ceiling));
281
+ if (resume)
282
+ cliArgs.push('--resume', resume);
283
+ if (decompose === true)
284
+ cliArgs.push('--decompose');
285
+ if (decompose === false)
286
+ cliArgs.push('--no-decompose');
287
+ cliArgs.push('--', instruction ?? '');
228
288
  const timeoutMs = Math.min(MAX_TIMEOUT_SEC, Math.max(1, timeoutSec ?? DEFAULT_TIMEOUT_SEC)) * 1000;
229
289
  return new Promise((resolvePromise) => {
230
290
  execFile(process.execPath, cliArgs, { cwd: root, timeout: timeoutMs, maxBuffer: MAX_OUTPUT_BYTES, env: buildChildEnv() }, (err, stdout) => {
@@ -1 +1 @@
1
- {"version":3,"file":"deliver.js","sourceRoot":"","sources":["../../../src/mcp-router/tools/deliver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deliver.js","sourceRoot":"","sources":["../../../src/mcp-router/tools/deliver.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,11 @@
5
5
  * shape that the HALO engine (https://github.com/context-labs/HALO) ingests
6
6
  * for systemic harness-failure analysis. One JSON object per line.
7
7
  *
8
- * Opt-in and zero-overhead when disabled: every emit path short-circuits on
9
- * `isHaloTracingEnabled()` before doing any work. Enable with:
8
+ * ON BY DEFAULT (near-zero overhead: one JSONL append per span) so every run
9
+ * feeds the self-improvement loop; every emit path still short-circuits on
10
+ * `isHaloTracingEnabled()`. Configure with:
10
11
  *
11
- * UAP_HALO_TRACE=1 # turn on
12
+ * UAP_HALO_TRACE=0 # opt out (default: on)
12
13
  * UAP_HALO_TRACE_PATH=/path/traces.jsonl # output file (default .uap/halo/traces.jsonl)
13
14
  * UAP_HALO_PROJECT_ID=uap # inference.project_id (default "uap")
14
15
  *
@@ -77,6 +78,8 @@ export declare function sessionTraceId(): string;
77
78
  export declare function _resetHaloSession(): void;
78
79
  /** Build the serialized span object without performing any I/O (pure). */
79
80
  export declare function buildHaloSpan(input: HaloSpanInput): HaloSpan;
81
+ /** Reset rotation counter. Test-only. */
82
+ export declare function _resetRotationCounter(): void;
80
83
  /** Append a span to the trace file. No-op when tracing is disabled. */
81
84
  export declare function recordHaloSpan(input: HaloSpanInput): void;
82
85
  /** Convenience: record a TOOL span. */
@@ -1 +1 @@
1
- {"version":3,"file":"halo-exporter.d.ts","sourceRoot":"","sources":["../../src/observability/halo-exporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"halo-exporter.d.ts","sourceRoot":"","sources":["../../src/observability/halo-exporter.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,11 @@
5
5
  * shape that the HALO engine (https://github.com/context-labs/HALO) ingests
6
6
  * for systemic harness-failure analysis. One JSON object per line.
7
7
  *
8
- * Opt-in and zero-overhead when disabled: every emit path short-circuits on
9
- * `isHaloTracingEnabled()` before doing any work. Enable with:
8
+ * ON BY DEFAULT (near-zero overhead: one JSONL append per span) so every run
9
+ * feeds the self-improvement loop; every emit path still short-circuits on
10
+ * `isHaloTracingEnabled()`. Configure with:
10
11
  *
11
- * UAP_HALO_TRACE=1 # turn on
12
+ * UAP_HALO_TRACE=0 # opt out (default: on)
12
13
  * UAP_HALO_TRACE_PATH=/path/traces.jsonl # output file (default .uap/halo/traces.jsonl)
13
14
  * UAP_HALO_PROJECT_ID=uap # inference.project_id (default "uap")
14
15
  *
@@ -16,7 +17,7 @@
16
17
  *
17
18
  * Failures here never throw into the caller — tracing must not break execution.
18
19
  */
19
- import { appendFileSync, mkdirSync } from 'fs';
20
+ import { appendFileSync, mkdirSync, renameSync, statSync } from 'fs';
20
21
  import { dirname, join } from 'path';
21
22
  import { randomBytes, createHash } from 'crypto';
22
23
  /** Schema version HALO expects in `inference.export.schema_version`. */
@@ -24,8 +25,11 @@ export const HALO_SCHEMA_VERSION = 1;
24
25
  const SERVICE_NAME_DEFAULT = 'uap';
25
26
  const SCOPE_NAME = 'uap-mcp-router';
26
27
  export function isHaloTracingEnabled() {
27
- const v = process.env.UAP_HALO_TRACE;
28
- return v === '1' || v === 'true';
28
+ // Default ON: HALO tracing is a near-free JSONL append and feeds the
29
+ // self-improvement loop (auto-mining + `uap harness analyze`). Opt out with
30
+ // UAP_HALO_TRACE=0/false/off.
31
+ const v = (process.env.UAP_HALO_TRACE ?? '').toLowerCase();
32
+ return !(v === '0' || v === 'false' || v === 'off');
29
33
  }
30
34
  export function haloTracePath() {
31
35
  return process.env.UAP_HALO_TRACE_PATH || join(process.cwd(), '.uap', 'halo', 'traces.jsonl');
@@ -91,6 +95,35 @@ export function buildHaloSpan(input) {
91
95
  return span;
92
96
  }
93
97
  let _warned = false;
98
+ /** Size-based rotation: with tracing on by default the file must not grow
99
+ * unboundedly. Checked every ROTATE_CHECK_EVERY appends (stat is not free);
100
+ * above the cap the file rotates to `<path>.1`, replacing the previous
101
+ * rotation — one generation of history is enough for auto-mining. */
102
+ const ROTATE_CHECK_EVERY = 100;
103
+ const DEFAULT_MAX_TRACE_BYTES = 10 * 1024 * 1024;
104
+ let _appendsSinceCheck = 0;
105
+ function maxTraceBytes() {
106
+ const v = Number(process.env.UAP_HALO_TRACE_MAX_BYTES);
107
+ return Number.isFinite(v) && v > 0 ? v : DEFAULT_MAX_TRACE_BYTES;
108
+ }
109
+ function maybeRotate(path) {
110
+ _appendsSinceCheck += 1;
111
+ if (_appendsSinceCheck < ROTATE_CHECK_EVERY)
112
+ return;
113
+ _appendsSinceCheck = 0;
114
+ try {
115
+ if (statSync(path).size > maxTraceBytes()) {
116
+ renameSync(path, `${path}.1`);
117
+ }
118
+ }
119
+ catch {
120
+ // missing file / racing writer — rotation is best-effort
121
+ }
122
+ }
123
+ /** Reset rotation counter. Test-only. */
124
+ export function _resetRotationCounter() {
125
+ _appendsSinceCheck = 0;
126
+ }
94
127
  /** Append a span to the trace file. No-op when tracing is disabled. */
95
128
  export function recordHaloSpan(input) {
96
129
  if (!isHaloTracingEnabled())
@@ -99,6 +132,7 @@ export function recordHaloSpan(input) {
99
132
  const span = buildHaloSpan(input);
100
133
  const path = haloTracePath();
101
134
  mkdirSync(dirname(path), { recursive: true });
135
+ maybeRotate(path);
102
136
  appendFileSync(path, JSON.stringify(span) + '\n');
103
137
  }
104
138
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"halo-exporter.js","sourceRoot":"","sources":["../../src/observability/halo-exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAKjD,wEAAwE;AACxE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAmCpC,MAAM,UAAU,oBAAoB;IAClC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACrC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,SAAS,CAAC,QAAiB;IAClC,OAAO,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,oBAAoB,CAAC;AAC7E,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,UAAU;IACxB,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,SAAS;IACvB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAU;IACjC,qEAAqE;IACrE,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED,0EAA0E;AAC1E,IAAI,eAAe,GAAkB,IAAI,CAAC;AAC1C,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,eAAe;QAAE,eAAe,GAAG,UAAU,EAAE,CAAC;IACrD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,iBAAiB;IAC/B,eAAe,GAAG,IAAI,CAAC;IACvB,OAAO,GAAG,KAAK,CAAC;AAClB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,KAAoB;IAChD,MAAM,IAAI,GAAa;QACrB,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,cAAc,EAAE;QAC3C,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE;QACpC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,oBAAoB;QAC1B,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;QACvC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;QACnC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,EAAE;QACnE,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,WAAW,IAAI,oBAAoB,EAAE,EAAE;QACvF,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,IAAI,OAAO,EAAE;QACnE,UAAU,EAAE;YACV,sBAAsB,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;YAClD,4BAA4B,EAAE,KAAK,CAAC,IAAI;YACxC,iCAAiC,EAAE,mBAAmB;YACtD,yBAAyB,EAAE,KAAK,CAAC,IAAI;YACrC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;SAC5B;KACF,CAAC;IACF,IAAI,KAAK,CAAC,YAAY;QAAE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC;IACjE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB,uEAAuE;AACvE,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO;IACpC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,+BAAgC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;AACH,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,WAAmB,EACnB,SAAiB,EACjB,EAAW,EACX,KAA+B;IAE/B,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO;IACpC,cAAc,CAAC;QACb,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ,QAAQ,EAAE;QACxB,WAAW;QACX,SAAS;QACT,EAAE;QACF,UAAU,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE;KACxD,CAAC,CAAC;AACL,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,SAAiB,EACjB,WAAmB,EACnB,SAAiB,EACjB,EAAW,EACX,aAA6B,EAC7B,KAA+B;IAE/B,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO;IACpC,cAAc,CAAC;QACb,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS,SAAS,EAAE;QAC1B,WAAW;QACX,SAAS;QACT,EAAE;QACF,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC;QACpC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,UAAU,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE;KAC1D,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"halo-exporter.js","sourceRoot":"","sources":["../../src/observability/halo-exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Implementation-State Manifest — a machine-generated snapshot of what this
3
+ * project IS and where its implementation actually stands, derived from
4
+ * ground truth (package.json, CHANGELOG, git branch, .factory registries)
5
+ * rather than hand-maintained docs that drift.
6
+ *
7
+ * Written to `.uap/state-manifest.json`; the reactor injects a one-line
8
+ * digest per session so every agent starts with real knowledge of the
9
+ * project's exact state. Regeneration is cheap (fs-only, no model calls) and
10
+ * fail-soft.
11
+ */
12
+ export interface StateManifest {
13
+ name: string;
14
+ version: string;
15
+ generatedAt: string;
16
+ branch?: string;
17
+ /** Latest CHANGELOG headings, newest first — the real "what shipped lately". */
18
+ recentChanges: string[];
19
+ /** Registry counts when the project has them (skills/droids/patterns). */
20
+ counts?: Record<string, number>;
21
+ }
22
+ export declare function manifestPath(projectRoot: string): string;
23
+ /**
24
+ * Build the manifest from project ground truth. Returns null when the
25
+ * directory has no package.json (nothing authoritative to report).
26
+ */
27
+ export declare function generateStateManifest(projectRoot: string): StateManifest | null;
28
+ /** Generate + persist the manifest atomically. Returns it, or null on failure. */
29
+ export declare function writeStateManifest(projectRoot: string): StateManifest | null;
30
+ /** Read the persisted manifest; regenerate when missing or stale. */
31
+ export declare function readOrRefreshManifest(projectRoot: string): StateManifest | null;
32
+ /** Compact single-block digest for prompt injection (≤ ~400 chars). */
33
+ export declare function manifestDigest(manifest: StateManifest): string;
34
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/state/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAMD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AA4BD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA6C/E;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAiB5E;AAED,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAW/E;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAe9D"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Implementation-State Manifest — a machine-generated snapshot of what this
3
+ * project IS and where its implementation actually stands, derived from
4
+ * ground truth (package.json, CHANGELOG, git branch, .factory registries)
5
+ * rather than hand-maintained docs that drift.
6
+ *
7
+ * Written to `.uap/state-manifest.json`; the reactor injects a one-line
8
+ * digest per session so every agent starts with real knowledge of the
9
+ * project's exact state. Regeneration is cheap (fs-only, no model calls) and
10
+ * fail-soft.
11
+ */
12
+ import { execFileSync } from 'child_process';
13
+ import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, writeFileSync } from 'fs';
14
+ import { join } from 'path';
15
+ const RECENT_CHANGES = 5;
16
+ /** Digest re-generation threshold: a manifest older than this is stale. */
17
+ const STALE_MS = 24 * 60 * 60 * 1000;
18
+ export function manifestPath(projectRoot) {
19
+ return join(projectRoot, '.uap', 'state-manifest.json');
20
+ }
21
+ function gitBranch(projectRoot) {
22
+ try {
23
+ const out = execFileSync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], {
24
+ cwd: projectRoot,
25
+ encoding: 'utf-8',
26
+ timeout: 3000,
27
+ stdio: ['ignore', 'pipe', 'ignore'],
28
+ // Never inherit a poisoned GIT_DIR from a hook environment.
29
+ env: { ...process.env, GIT_DIR: undefined, GIT_WORK_TREE: undefined, GIT_INDEX_FILE: undefined },
30
+ });
31
+ const branch = out.trim();
32
+ return branch || undefined;
33
+ }
34
+ catch {
35
+ return undefined;
36
+ }
37
+ }
38
+ function countEntries(dir) {
39
+ try {
40
+ if (!existsSync(dir))
41
+ return undefined;
42
+ return readdirSync(dir).filter((f) => !f.startsWith('.')).length;
43
+ }
44
+ catch {
45
+ return undefined;
46
+ }
47
+ }
48
+ /**
49
+ * Build the manifest from project ground truth. Returns null when the
50
+ * directory has no package.json (nothing authoritative to report).
51
+ */
52
+ export function generateStateManifest(projectRoot) {
53
+ let pkg;
54
+ try {
55
+ pkg = JSON.parse(readFileSync(join(projectRoot, 'package.json'), 'utf-8'));
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ const name = typeof pkg.name === 'string' ? pkg.name : 'unknown';
61
+ const version = typeof pkg.version === 'string' ? pkg.version : '0.0.0';
62
+ const recentChanges = [];
63
+ try {
64
+ const changelog = readFileSync(join(projectRoot, 'CHANGELOG.md'), 'utf-8');
65
+ for (const line of changelog.split('\n')) {
66
+ if (line.startsWith('## ')) {
67
+ recentChanges.push(line.slice(3).trim().slice(0, 160));
68
+ if (recentChanges.length >= RECENT_CHANGES)
69
+ break;
70
+ }
71
+ }
72
+ }
73
+ catch {
74
+ // no changelog — manifest still useful
75
+ }
76
+ const counts = {};
77
+ const skillCount = countEntries(join(projectRoot, '.factory', 'skills'));
78
+ const droidCount = countEntries(join(projectRoot, '.factory', 'droids'));
79
+ if (skillCount !== undefined)
80
+ counts.skills = skillCount;
81
+ if (droidCount !== undefined)
82
+ counts.droids = droidCount;
83
+ try {
84
+ const patterns = JSON.parse(readFileSync(join(projectRoot, '.factory', 'patterns', 'index.json'), 'utf-8'));
85
+ if (Array.isArray(patterns.patterns))
86
+ counts.patterns = patterns.patterns.length;
87
+ }
88
+ catch {
89
+ // optional registry
90
+ }
91
+ return {
92
+ name,
93
+ version,
94
+ generatedAt: new Date().toISOString(),
95
+ branch: gitBranch(projectRoot),
96
+ recentChanges,
97
+ ...(Object.keys(counts).length > 0 ? { counts } : {}),
98
+ };
99
+ }
100
+ /** Generate + persist the manifest atomically. Returns it, or null on failure. */
101
+ export function writeStateManifest(projectRoot) {
102
+ const manifest = generateStateManifest(projectRoot);
103
+ if (!manifest)
104
+ return null;
105
+ // Persist only where the project already carries UAP state — never scaffold
106
+ // .uap/ into an arbitrary repo as a session side effect. The in-memory
107
+ // manifest is still returned for injection either way.
108
+ if (!existsSync(join(projectRoot, '.uap')))
109
+ return manifest;
110
+ try {
111
+ const path = manifestPath(projectRoot);
112
+ mkdirSync(join(projectRoot, '.uap'), { recursive: true });
113
+ const tmp = `${path}.tmp`;
114
+ writeFileSync(tmp, JSON.stringify(manifest, null, 2), 'utf-8');
115
+ renameSync(tmp, path);
116
+ return manifest;
117
+ }
118
+ catch {
119
+ return manifest; // manifest is still usable in-memory even if persist failed
120
+ }
121
+ }
122
+ /** Read the persisted manifest; regenerate when missing or stale. */
123
+ export function readOrRefreshManifest(projectRoot) {
124
+ const path = manifestPath(projectRoot);
125
+ try {
126
+ if (existsSync(path) && Date.now() - statSync(path).mtimeMs < STALE_MS) {
127
+ const parsed = JSON.parse(readFileSync(path, 'utf-8'));
128
+ if (parsed && typeof parsed.version === 'string')
129
+ return parsed;
130
+ }
131
+ }
132
+ catch {
133
+ // fall through to regeneration
134
+ }
135
+ return writeStateManifest(projectRoot);
136
+ }
137
+ /** Compact single-block digest for prompt injection (≤ ~400 chars). */
138
+ export function manifestDigest(manifest) {
139
+ const lines = [
140
+ `${manifest.name} v${manifest.version}${manifest.branch ? ` (branch: ${manifest.branch})` : ''}`,
141
+ ];
142
+ if (manifest.recentChanges.length > 0) {
143
+ lines.push(`Recently shipped: ${manifest.recentChanges.slice(0, 3).join(' | ')}`.slice(0, 240));
144
+ }
145
+ if (manifest.counts) {
146
+ lines.push(Object.entries(manifest.counts)
147
+ .map(([k, v]) => `${v} ${k}`)
148
+ .join(', '));
149
+ }
150
+ return lines.join('\n');
151
+ }
152
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/state/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Reactor injection for the implementation-state manifest: give every agent
3
+ * session real knowledge of what the project is and its exact implementation
4
+ * state (version, branch, latest shipped changes) — machine-derived, so it
5
+ * cannot drift the way hand-written docs do.
6
+ *
7
+ * Deduped per session via the `state:manifest` surfaced key; fail-soft.
8
+ */
9
+ /**
10
+ * Return the project-state digest for injection, or null when the directory
11
+ * has no manifest-worthy ground truth (no package.json) or anything fails.
12
+ */
13
+ export declare function maybeStateInjection(cwd: string): string | null;
14
+ //# sourceMappingURL=reactor-inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor-inject.d.ts","sourceRoot":"","sources":["../../src/state/reactor-inject.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ9D"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Reactor injection for the implementation-state manifest: give every agent
3
+ * session real knowledge of what the project is and its exact implementation
4
+ * state (version, branch, latest shipped changes) — machine-derived, so it
5
+ * cannot drift the way hand-written docs do.
6
+ *
7
+ * Deduped per session via the `state:manifest` surfaced key; fail-soft.
8
+ */
9
+ import { readOrRefreshManifest, manifestDigest } from './manifest.js';
10
+ /**
11
+ * Return the project-state digest for injection, or null when the directory
12
+ * has no manifest-worthy ground truth (no package.json) or anything fails.
13
+ */
14
+ export function maybeStateInjection(cwd) {
15
+ try {
16
+ const manifest = readOrRefreshManifest(cwd);
17
+ if (!manifest)
18
+ return null;
19
+ return manifestDigest(manifest);
20
+ }
21
+ catch {
22
+ return null;
23
+ }
24
+ }
25
+ //# sourceMappingURL=reactor-inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor-inject.js","sourceRoot":"","sources":["../../src/state/reactor-inject.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}