@uwmd/core 1.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 (214) hide show
  1. package/README.md +79 -0
  2. package/dist/agents/bancroft.d.ts +32 -0
  3. package/dist/agents/bancroft.d.ts.map +1 -0
  4. package/dist/agents/bancroft.js +292 -0
  5. package/dist/agents/bancroft.js.map +1 -0
  6. package/dist/agents/schemas.d.ts +13 -0
  7. package/dist/agents/schemas.d.ts.map +1 -0
  8. package/dist/agents/schemas.js +74 -0
  9. package/dist/agents/schemas.js.map +1 -0
  10. package/dist/bindings.d.ts +85 -0
  11. package/dist/bindings.d.ts.map +1 -0
  12. package/dist/bindings.js +293 -0
  13. package/dist/bindings.js.map +1 -0
  14. package/dist/browser.d.ts +66 -0
  15. package/dist/browser.d.ts.map +1 -0
  16. package/dist/browser.js +53 -0
  17. package/dist/browser.js.map +1 -0
  18. package/dist/calc/builtins.d.ts +4 -0
  19. package/dist/calc/builtins.d.ts.map +1 -0
  20. package/dist/calc/builtins.js +329 -0
  21. package/dist/calc/builtins.js.map +1 -0
  22. package/dist/calc/dependencies.d.ts +34 -0
  23. package/dist/calc/dependencies.d.ts.map +1 -0
  24. package/dist/calc/dependencies.js +101 -0
  25. package/dist/calc/dependencies.js.map +1 -0
  26. package/dist/calc/errors.d.ts +8 -0
  27. package/dist/calc/errors.d.ts.map +1 -0
  28. package/dist/calc/errors.js +18 -0
  29. package/dist/calc/errors.js.map +1 -0
  30. package/dist/calc/evaluator.d.ts +5 -0
  31. package/dist/calc/evaluator.d.ts.map +1 -0
  32. package/dist/calc/evaluator.js +184 -0
  33. package/dist/calc/evaluator.js.map +1 -0
  34. package/dist/calc/index.d.ts +14 -0
  35. package/dist/calc/index.d.ts.map +1 -0
  36. package/dist/calc/index.js +56 -0
  37. package/dist/calc/index.js.map +1 -0
  38. package/dist/calc/parser.d.ts +32 -0
  39. package/dist/calc/parser.d.ts.map +1 -0
  40. package/dist/calc/parser.js +361 -0
  41. package/dist/calc/parser.js.map +1 -0
  42. package/dist/cascade.d.ts +85 -0
  43. package/dist/cascade.d.ts.map +1 -0
  44. package/dist/cascade.js +172 -0
  45. package/dist/cascade.js.map +1 -0
  46. package/dist/cli.d.ts +3 -0
  47. package/dist/cli.d.ts.map +1 -0
  48. package/dist/cli.js +843 -0
  49. package/dist/cli.js.map +1 -0
  50. package/dist/codec.d.ts +25 -0
  51. package/dist/codec.d.ts.map +1 -0
  52. package/dist/codec.js +62 -0
  53. package/dist/codec.js.map +1 -0
  54. package/dist/codecs.d.ts +6 -0
  55. package/dist/codecs.d.ts.map +1 -0
  56. package/dist/codecs.js +12 -0
  57. package/dist/codecs.js.map +1 -0
  58. package/dist/compactor.d.ts +11 -0
  59. package/dist/compactor.d.ts.map +1 -0
  60. package/dist/compactor.js +84 -0
  61. package/dist/compactor.js.map +1 -0
  62. package/dist/context-profiles.d.ts +30 -0
  63. package/dist/context-profiles.d.ts.map +1 -0
  64. package/dist/context-profiles.js +225 -0
  65. package/dist/context-profiles.js.map +1 -0
  66. package/dist/context.d.ts +55 -0
  67. package/dist/context.d.ts.map +1 -0
  68. package/dist/context.js +288 -0
  69. package/dist/context.js.map +1 -0
  70. package/dist/dcf.d.ts +9 -0
  71. package/dist/dcf.d.ts.map +1 -0
  72. package/dist/dcf.js +75 -0
  73. package/dist/dcf.js.map +1 -0
  74. package/dist/debt.d.ts +11 -0
  75. package/dist/debt.d.ts.map +1 -0
  76. package/dist/debt.js +85 -0
  77. package/dist/debt.js.map +1 -0
  78. package/dist/defaults.d.ts +104 -0
  79. package/dist/defaults.d.ts.map +1 -0
  80. package/dist/defaults.js +622 -0
  81. package/dist/defaults.js.map +1 -0
  82. package/dist/derived.d.ts +17 -0
  83. package/dist/derived.d.ts.map +1 -0
  84. package/dist/derived.js +29 -0
  85. package/dist/derived.js.map +1 -0
  86. package/dist/editor.d.ts +76 -0
  87. package/dist/editor.d.ts.map +1 -0
  88. package/dist/editor.js +502 -0
  89. package/dist/editor.js.map +1 -0
  90. package/dist/envelope.d.ts +51 -0
  91. package/dist/envelope.d.ts.map +1 -0
  92. package/dist/envelope.js +213 -0
  93. package/dist/envelope.js.map +1 -0
  94. package/dist/format.d.ts +60 -0
  95. package/dist/format.d.ts.map +1 -0
  96. package/dist/format.js +115 -0
  97. package/dist/format.js.map +1 -0
  98. package/dist/gaps.d.ts +62 -0
  99. package/dist/gaps.d.ts.map +1 -0
  100. package/dist/gaps.js +272 -0
  101. package/dist/gaps.js.map +1 -0
  102. package/dist/index.d.ts +75 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +47 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/init.d.ts +15 -0
  107. package/dist/init.d.ts.map +1 -0
  108. package/dist/init.js +169 -0
  109. package/dist/init.js.map +1 -0
  110. package/dist/integrity-canonical.d.ts +17 -0
  111. package/dist/integrity-canonical.d.ts.map +1 -0
  112. package/dist/integrity-canonical.js +124 -0
  113. package/dist/integrity-canonical.js.map +1 -0
  114. package/dist/integrity.d.ts +54 -0
  115. package/dist/integrity.d.ts.map +1 -0
  116. package/dist/integrity.js +244 -0
  117. package/dist/integrity.js.map +1 -0
  118. package/dist/modules.d.ts +24 -0
  119. package/dist/modules.d.ts.map +1 -0
  120. package/dist/modules.js +322 -0
  121. package/dist/modules.js.map +1 -0
  122. package/dist/negotiation.d.ts +19 -0
  123. package/dist/negotiation.d.ts.map +1 -0
  124. package/dist/negotiation.js +70 -0
  125. package/dist/negotiation.js.map +1 -0
  126. package/dist/opstatement.d.ts +9 -0
  127. package/dist/opstatement.d.ts.map +1 -0
  128. package/dist/opstatement.js +80 -0
  129. package/dist/opstatement.js.map +1 -0
  130. package/dist/packs/excel-emit.d.ts +21 -0
  131. package/dist/packs/excel-emit.d.ts.map +1 -0
  132. package/dist/packs/excel-emit.js +135 -0
  133. package/dist/packs/excel-emit.js.map +1 -0
  134. package/dist/packs/index.d.ts +13 -0
  135. package/dist/packs/index.d.ts.map +1 -0
  136. package/dist/packs/index.js +37 -0
  137. package/dist/packs/index.js.map +1 -0
  138. package/dist/packs/industrial.d.ts +3 -0
  139. package/dist/packs/industrial.d.ts.map +1 -0
  140. package/dist/packs/industrial.js +115 -0
  141. package/dist/packs/industrial.js.map +1 -0
  142. package/dist/packs/multifamily.d.ts +3 -0
  143. package/dist/packs/multifamily.d.ts.map +1 -0
  144. package/dist/packs/multifamily.js +82 -0
  145. package/dist/packs/multifamily.js.map +1 -0
  146. package/dist/packs/office.d.ts +3 -0
  147. package/dist/packs/office.d.ts.map +1 -0
  148. package/dist/packs/office.js +108 -0
  149. package/dist/packs/office.js.map +1 -0
  150. package/dist/packs/retail.d.ts +3 -0
  151. package/dist/packs/retail.d.ts.map +1 -0
  152. package/dist/packs/retail.js +115 -0
  153. package/dist/packs/retail.js.map +1 -0
  154. package/dist/packs/self-storage.d.ts +3 -0
  155. package/dist/packs/self-storage.d.ts.map +1 -0
  156. package/dist/packs/self-storage.js +105 -0
  157. package/dist/packs/self-storage.js.map +1 -0
  158. package/dist/parser.d.ts +15 -0
  159. package/dist/parser.d.ts.map +1 -0
  160. package/dist/parser.js +430 -0
  161. package/dist/parser.js.map +1 -0
  162. package/dist/protocol.d.ts +389 -0
  163. package/dist/protocol.d.ts.map +1 -0
  164. package/dist/protocol.js +714 -0
  165. package/dist/protocol.js.map +1 -0
  166. package/dist/refinement.d.ts +63 -0
  167. package/dist/refinement.d.ts.map +1 -0
  168. package/dist/refinement.js +242 -0
  169. package/dist/refinement.js.map +1 -0
  170. package/dist/renderer.d.ts +22 -0
  171. package/dist/renderer.d.ts.map +1 -0
  172. package/dist/renderer.js +478 -0
  173. package/dist/renderer.js.map +1 -0
  174. package/dist/rentroll.d.ts +21 -0
  175. package/dist/rentroll.d.ts.map +1 -0
  176. package/dist/rentroll.js +256 -0
  177. package/dist/rentroll.js.map +1 -0
  178. package/dist/report.d.ts +29 -0
  179. package/dist/report.d.ts.map +1 -0
  180. package/dist/report.js +924 -0
  181. package/dist/report.js.map +1 -0
  182. package/dist/runner.d.ts +43 -0
  183. package/dist/runner.d.ts.map +1 -0
  184. package/dist/runner.js +288 -0
  185. package/dist/runner.js.map +1 -0
  186. package/dist/sourcesuses.d.ts +14 -0
  187. package/dist/sourcesuses.d.ts.map +1 -0
  188. package/dist/sourcesuses.js +63 -0
  189. package/dist/sourcesuses.js.map +1 -0
  190. package/dist/types.d.ts +248 -0
  191. package/dist/types.d.ts.map +1 -0
  192. package/dist/types.js +15 -0
  193. package/dist/types.js.map +1 -0
  194. package/dist/uwcsv.d.ts +23 -0
  195. package/dist/uwcsv.d.ts.map +1 -0
  196. package/dist/uwcsv.js +877 -0
  197. package/dist/uwcsv.js.map +1 -0
  198. package/dist/uwjson.d.ts +19 -0
  199. package/dist/uwjson.d.ts.map +1 -0
  200. package/dist/uwjson.js +61 -0
  201. package/dist/uwjson.js.map +1 -0
  202. package/dist/uwxml.d.ts +18 -0
  203. package/dist/uwxml.d.ts.map +1 -0
  204. package/dist/uwxml.js +297 -0
  205. package/dist/uwxml.js.map +1 -0
  206. package/dist/validator.d.ts +35 -0
  207. package/dist/validator.d.ts.map +1 -0
  208. package/dist/validator.js +553 -0
  209. package/dist/validator.js.map +1 -0
  210. package/dist/valuation.d.ts +9 -0
  211. package/dist/valuation.d.ts.map +1 -0
  212. package/dist/valuation.js +34 -0
  213. package/dist/valuation.js.map +1 -0
  214. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { ParsedUWFile, UWMeta, PipelineStatus } from './types.js';
2
+ export interface AgentOutput {
3
+ sectionId: string;
4
+ content: Record<string, unknown>;
5
+ variant?: string;
6
+ }
7
+ export interface RunOptions {
8
+ agentId?: string;
9
+ agentVersion?: string;
10
+ actor?: string;
11
+ durationMs?: number;
12
+ inputHash?: string;
13
+ inputSections?: string[];
14
+ flagsRaised?: string[];
15
+ flagsCleared?: string[];
16
+ notes?: string;
17
+ updatePipelineState?: Partial<Record<string, PipelineStatus>>;
18
+ updateQuickMetrics?: Partial<Record<string, number | null>>;
19
+ }
20
+ export interface RunResult {
21
+ content: string;
22
+ newBlock: {
23
+ sectionId: string;
24
+ version: number;
25
+ annotation: string;
26
+ };
27
+ supersededPriorBlock: boolean;
28
+ logEntryId: string;
29
+ }
30
+ export declare function writeAgentBlock(fileContent: string, parsed: ParsedUWFile, output: AgentOutput, opts?: RunOptions): RunResult;
31
+ export declare function writeErrorEntry(fileContent: string, parsed: ParsedUWFile, agentId: string, sectionId: string, errorCode: string, errorMessage: string, opts?: Omit<RunOptions, 'updatePipelineState' | 'updateQuickMetrics'>): string;
32
+ export declare function buildMeta(sectionId: string, version: number, opts: {
33
+ source: string;
34
+ agentId?: string;
35
+ agentVersion?: string;
36
+ actor?: string;
37
+ confidence?: 'high' | 'medium' | 'low';
38
+ humanReviewRequired?: boolean;
39
+ flags?: string[];
40
+ inputHash?: string;
41
+ notes?: string;
42
+ }): UWMeta;
43
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAS/F,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAC9D,kBAAkB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,oBAAoB,EAAE,OAAO,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE,UAAe,GACpB,SAAS,CAsFX;AAyMD,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,IAAI,CAAC,UAAU,EAAE,qBAAqB,GAAG,oBAAoB,CAAM,GACxE,MAAM,CAwBR;AAID,wBAAgB,SAAS,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,MAAM,CAgBR"}
package/dist/runner.js ADDED
@@ -0,0 +1,288 @@
1
+ // .uw.md runner — the write path for agent and engine outputs
2
+ //
3
+ // Responsibilities:
4
+ // 1. Mark an existing section block as superseded (fence annotation + _meta)
5
+ // 2. Append a new versioned block with correct annotation
6
+ // 3. Append a pipeline_log entry
7
+ // 4. Update frontmatter quick_metrics and pipeline_state
8
+ //
9
+ // All operations are string-based (no re-serialization of the whole file).
10
+ // The runner uses exact line numbers from the parser to do targeted surgery.
11
+ // Output is always a valid .uw.md string that parseUWFile can round-trip.
12
+ //
13
+ // Spec: UW_FORMAT_SPEC_v1.md §2.7 (update semantics), §6.3 (uwmd run)
14
+ import { getSection, getSectionVariant, parseUWFile } from './parser.js';
15
+ // Lightweight re-parse used only to get fresh line numbers after block insertion.
16
+ // parseUWFile is the same function — alias for clarity.
17
+ const parseUWFileForLog = parseUWFile;
18
+ // ─── Main entry point ─────────────────────────────────────────────────────────
19
+ export function writeAgentBlock(fileContent, parsed, output, opts = {}) {
20
+ const { sectionId, variant } = output;
21
+ const now = new Date().toISOString();
22
+ const agentId = opts.agentId ?? 'user';
23
+ const _actor = opts.actor ?? 'system';
24
+ // Determine the existing block (if any) for this section/variant
25
+ let existingBlock = null;
26
+ if (variant) {
27
+ existingBlock = getSectionVariant(parsed, sectionId, variant);
28
+ }
29
+ else {
30
+ existingBlock = getSection(parsed, sectionId);
31
+ }
32
+ const newVersion = (existingBlock?.meta?.version ?? 0) + 1;
33
+ // ── Step 1: Mark existing block as superseded ─────────────────────────────
34
+ let lines = fileContent.split('\n');
35
+ let supersededPriorBlock = false;
36
+ if (existingBlock && !existingBlock.meta?.superseded) {
37
+ lines = markBlockSuperseded(lines, existingBlock);
38
+ supersededPriorBlock = true;
39
+ }
40
+ // ── Step 2: Build the new block's annotation and JSON ─────────────────────
41
+ const variantPart = variant ? ` variant=${variant}` : '';
42
+ const annotation = `\`\`\`json uw:section=${sectionId}${variantPart} source=${agentId} ts=${now} v=${newVersion} confidence=${output.content['_meta']?.confidence ?? 'medium'}`;
43
+ const blockJson = JSON.stringify(output.content, null, 2);
44
+ const newBlockText = `${annotation}\n${blockJson}\n\`\`\``;
45
+ // ── Step 3: Insert before pipeline_log (or before the last section) ───────
46
+ const insertAt = findInsertionPoint(lines, parsed);
47
+ lines.splice(insertAt, 0, '', newBlockText, '');
48
+ // ── Step 4: Append pipeline_log entry ─────────────────────────────────────
49
+ // Re-parse after block insertion so pipeline_log line numbers are current.
50
+ // The splice in step 3 shifted all subsequent line positions; stale numbers
51
+ // would cause appendPipelineLogEntry to overwrite the wrong lines.
52
+ const afterInsert = lines.join('\n');
53
+ const reparsedForLog = parseUWFileForLog(afterInsert);
54
+ const logEntryId = `log_${Date.now()}_${Math.random().toString(36).slice(2, 6)}`;
55
+ lines = appendPipelineLogEntry(afterInsert.split('\n'), reparsedForLog, {
56
+ entry_id: logEntryId,
57
+ timestamp: now,
58
+ event_type: 'agent_run',
59
+ agent_or_actor: agentId,
60
+ section_affected: sectionId,
61
+ status: 'success',
62
+ input_sections: opts.inputSections ?? [],
63
+ output_sections: [sectionId],
64
+ flags_raised: opts.flagsRaised ?? [],
65
+ flags_cleared: opts.flagsCleared ?? [],
66
+ duration_ms: opts.durationMs ?? null,
67
+ input_hash: opts.inputHash ?? null,
68
+ output_hash: null,
69
+ error_code: null,
70
+ error_message: null,
71
+ notes: opts.notes ?? null,
72
+ });
73
+ // ── Step 5: Update frontmatter fields ─────────────────────────────────────
74
+ let result = lines.join('\n');
75
+ result = updateFrontmatterField(result, 'last_modified', `"${now}"`);
76
+ if (opts.updatePipelineState) {
77
+ for (const [stage, status] of Object.entries(opts.updatePipelineState)) {
78
+ result = updateNestedFrontmatterField(result, 'pipeline_state', stage, `"${status}"`);
79
+ }
80
+ }
81
+ if (opts.updateQuickMetrics) {
82
+ for (const [metric, value] of Object.entries(opts.updateQuickMetrics)) {
83
+ if (value !== undefined) {
84
+ result = updateNestedFrontmatterField(result, 'quick_metrics', metric, value === null ? 'null' : String(value));
85
+ }
86
+ }
87
+ }
88
+ return {
89
+ content: result,
90
+ newBlock: { sectionId, version: newVersion, annotation },
91
+ supersededPriorBlock,
92
+ logEntryId,
93
+ };
94
+ }
95
+ // ─── Mark existing block as superseded ───────────────────────────────────────
96
+ // Two targeted string surgeries:
97
+ // 1. Fence annotation: add `superseded=true` to the opening ``` line
98
+ // 2. _meta JSON body: replace `"superseded": false` → `"superseded": true`
99
+ function markBlockSuperseded(lines, block) {
100
+ const result = [...lines];
101
+ // 1. Fence annotation (lineStart is 1-indexed → array index = lineStart - 1)
102
+ const fenceIdx = block.lineStart - 1;
103
+ if (fenceIdx >= 0 && fenceIdx < result.length) {
104
+ const fenceLine = result[fenceIdx];
105
+ if (fenceLine && !fenceLine.includes('superseded=true')) {
106
+ // Insert superseded=true after the section annotation
107
+ result[fenceIdx] = fenceLine.replace(/^(```json\s+uw:section=\S+)/, '$1 superseded=true');
108
+ }
109
+ }
110
+ // 2. _meta.superseded inside the JSON body
111
+ for (let i = block.lineStart; i < block.lineEnd - 1; i++) {
112
+ const line = result[i];
113
+ if (line?.includes('"superseded": false')) {
114
+ result[i] = line.replace('"superseded": false', '"superseded": true');
115
+ break;
116
+ }
117
+ }
118
+ return result;
119
+ }
120
+ // ─── Find insertion point ─────────────────────────────────────────────────────
121
+ // Insert new section blocks just before the pipeline_log section.
122
+ // Falls back to end of file if no pipeline_log exists.
123
+ function findInsertionPoint(lines, parsed) {
124
+ // pipeline_log blocks are at the end; find the first pipeline_log fence line
125
+ if (parsed.pipeline_log.length > 0) {
126
+ const firstLogBlock = parsed.pipeline_log[0];
127
+ // lineStart is 1-indexed; we want the line BEFORE the opening fence
128
+ // Back up past any preceding blank lines and section header
129
+ let idx = firstLogBlock.lineStart - 2; // -1 for 0-index, -1 to be before the fence
130
+ while (idx > 0 && lines[idx]?.trim() === '')
131
+ idx--;
132
+ // Back up past section header (## Pipeline Log)
133
+ if (lines[idx]?.trim().startsWith('##'))
134
+ idx--;
135
+ // Back up past any blank lines before the header
136
+ while (idx > 0 && lines[idx - 1]?.trim() === '')
137
+ idx--;
138
+ return idx + 1;
139
+ }
140
+ // No pipeline_log — insert at end
141
+ return lines.length;
142
+ }
143
+ // ─── Append pipeline_log entry ────────────────────────────────────────────────
144
+ // Finds the existing pipeline_log block and adds the new entry to its entries[].
145
+ // If no pipeline_log block exists, appends a new one.
146
+ function appendPipelineLogEntry(lines, parsed, entry) {
147
+ if (parsed.pipeline_log.length === 0) {
148
+ // No pipeline_log yet — append a new one at the end
149
+ const now = entry['timestamp'] ?? new Date().toISOString();
150
+ const newLogBlock = buildNewPipelineLogBlock(entry, now);
151
+ return [...lines, '', newLogBlock, ''];
152
+ }
153
+ // Find the most recent pipeline_log block
154
+ const lastLogBlock = parsed.pipeline_log[parsed.pipeline_log.length - 1];
155
+ const blockLines = lines.slice(lastLogBlock.lineStart - 1, lastLogBlock.lineEnd);
156
+ const _joinedBlock = blockLines.join('\n');
157
+ // Parse current entries array from the JSON
158
+ let blockContent;
159
+ try {
160
+ blockContent = JSON.parse(lastLogBlock.rawJson);
161
+ }
162
+ catch {
163
+ // Fallback: append a new pipeline_log block
164
+ const now = entry['timestamp'] ?? new Date().toISOString();
165
+ return [...lines, '', buildNewPipelineLogBlock(entry, now), ''];
166
+ }
167
+ const entries = blockContent['entries'] ?? [];
168
+ entries.push(entry);
169
+ blockContent['entries'] = entries;
170
+ // Update _meta version and timestamp
171
+ const meta = blockContent['_meta'];
172
+ if (meta) {
173
+ meta['version'] = (meta['version'] ?? 1) + 1;
174
+ meta['timestamp'] = entry['timestamp'];
175
+ }
176
+ // Rebuild the block JSON
177
+ const updatedJson = JSON.stringify(blockContent, null, 2);
178
+ const newAnnotation = buildUpdatedAnnotation(lines[lastLogBlock.lineStart - 1] ?? '', (meta?.['version'] ?? 1), entry['timestamp'] ?? new Date().toISOString());
179
+ const result = [...lines];
180
+ // Replace the block's content (lineStart through lineEnd, exclusive of fences)
181
+ result.splice(lastLogBlock.lineStart - 1, lastLogBlock.lineEnd - lastLogBlock.lineStart + 1, newAnnotation, updatedJson, '```');
182
+ return result;
183
+ }
184
+ function buildNewPipelineLogBlock(entry, now) {
185
+ const content = {
186
+ _meta: {
187
+ section: 'pipeline_log',
188
+ version: 1,
189
+ superseded: false,
190
+ source: 'engine:uwmd',
191
+ agent_id: null,
192
+ agent_version: '1.0.0',
193
+ actor: 'system',
194
+ timestamp: now,
195
+ confidence: 'high',
196
+ human_review_required: false,
197
+ flags: [],
198
+ input_hash: null,
199
+ notes: null,
200
+ },
201
+ entries: [entry],
202
+ };
203
+ return `\`\`\`json uw:section=pipeline_log source=engine:uwmd ts=${now} v=1 confidence=high\n${JSON.stringify(content, null, 2)}\n\`\`\``;
204
+ }
205
+ function buildUpdatedAnnotation(existing, version, ts) {
206
+ // Update v= and ts= in existing annotation
207
+ return existing
208
+ .replace(/\bv=\d+/, `v=${version}`)
209
+ .replace(/\bts=\S+/, `ts=${ts}`);
210
+ }
211
+ // ─── Frontmatter field updaters ───────────────────────────────────────────────
212
+ // Targeted string surgery on the frontmatter YAML block.
213
+ function updateFrontmatterField(content, key, newValue) {
214
+ // Match "key: anything" in frontmatter (between --- delimiters)
215
+ const fmEnd = content.indexOf('\n---', 4);
216
+ if (fmEnd === -1)
217
+ return content;
218
+ const fm = content.slice(0, fmEnd);
219
+ const rest = content.slice(fmEnd);
220
+ const pattern = new RegExp(`^(${escapeRegex(key)}:\\s*)(.+)$`, 'm');
221
+ if (pattern.test(fm)) {
222
+ return fm.replace(pattern, `$1${newValue}`) + rest;
223
+ }
224
+ return content;
225
+ }
226
+ function updateNestedFrontmatterField(content, parentKey, childKey, newValue) {
227
+ const fmEnd = content.indexOf('\n---', 4);
228
+ if (fmEnd === -1)
229
+ return content;
230
+ const fm = content.slice(0, fmEnd);
231
+ const rest = content.slice(fmEnd);
232
+ // Match " childKey: anything" that appears after "parentKey:" in the frontmatter
233
+ const parentIdx = fm.indexOf(`\n${parentKey}:`);
234
+ if (parentIdx === -1)
235
+ return content;
236
+ const pattern = new RegExp(`(\\n${escapeRegex(parentKey)}:[^\\n]*(?:\\n [^\\n]+)*\\n ${escapeRegex(childKey)}:\\s*)([^\\n]+)`);
237
+ if (pattern.test(fm)) {
238
+ return fm.replace(pattern, `$1${newValue}`) + rest;
239
+ }
240
+ return content;
241
+ }
242
+ function escapeRegex(str) {
243
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
244
+ }
245
+ // ─── Error block writer ───────────────────────────────────────────────────────
246
+ // Writes a failed agent run to the pipeline_log without modifying the section.
247
+ export function writeErrorEntry(fileContent, parsed, agentId, sectionId, errorCode, errorMessage, opts = {}) {
248
+ const now = new Date().toISOString();
249
+ const logEntryId = `log_${Date.now()}_err`;
250
+ const lines = appendPipelineLogEntry(fileContent.split('\n'), parsed, {
251
+ entry_id: logEntryId,
252
+ timestamp: now,
253
+ event_type: 'agent_run',
254
+ agent_or_actor: agentId,
255
+ section_affected: sectionId,
256
+ status: 'failed',
257
+ input_sections: opts.inputSections ?? [],
258
+ output_sections: [],
259
+ flags_raised: opts.flagsRaised ?? [],
260
+ flags_cleared: [],
261
+ duration_ms: opts.durationMs ?? null,
262
+ input_hash: null,
263
+ output_hash: null,
264
+ error_code: errorCode,
265
+ error_message: errorMessage,
266
+ notes: opts.notes ?? null,
267
+ });
268
+ return updateFrontmatterField(lines.join('\n'), 'last_modified', `"${now}"`);
269
+ }
270
+ // ─── Quick helper: build a _meta object for a new block ──────────────────────
271
+ export function buildMeta(sectionId, version, opts) {
272
+ return {
273
+ section: sectionId,
274
+ version,
275
+ superseded: false,
276
+ source: opts.source,
277
+ agent_id: opts.agentId ?? null,
278
+ agent_version: opts.agentVersion ?? null,
279
+ actor: opts.actor ?? 'system',
280
+ timestamp: new Date().toISOString(),
281
+ confidence: opts.confidence ?? 'medium',
282
+ human_review_required: opts.humanReviewRequired ?? false,
283
+ flags: opts.flags ?? [],
284
+ input_hash: opts.inputHash ? `sha256:${opts.inputHash}` : null,
285
+ notes: opts.notes ?? null,
286
+ };
287
+ }
288
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type DerivedField } from './derived.js';
2
+ type Row = Record<string, unknown>;
3
+ export interface SourcesUsesDerivation {
4
+ fields: DerivedField[];
5
+ sourcesTotal: number;
6
+ usesTotal: number;
7
+ /** sourcesTotal − usesTotal, rounded. Zero (±$1) when the stack balances. */
8
+ gap: number;
9
+ balanced: boolean;
10
+ }
11
+ /** Foot a sources_uses content block. Pure: never mutates `content`. */
12
+ export declare function deriveSourcesUses(content: Row): SourcesUsesDerivation;
13
+ export {};
14
+ //# sourceMappingURL=sourcesuses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourcesuses.d.ts","sourceRoot":"","sources":["../src/sourcesuses.ts"],"names":[],"mappings":"AAeA,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAEvE,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAKnC,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAcD,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,GAAG,GAAG,qBAAqB,CAkCrE"}
@@ -0,0 +1,63 @@
1
+ // Deterministic sources-&-uses footing — the individual source and use line
2
+ // items are the inputs; the sources total, uses total, nested closing-costs
3
+ // total, and the top-level project-cost mirrors foot from them. One source of
4
+ // truth so the editor, CLI, and Excel converter never disagree (invariant #4);
5
+ // plain arithmetic over line items, not AI math (invariant #1).
6
+ //
7
+ // A capital stack must balance: total sources == total uses. deriveSourcesUses
8
+ // reports `balanced` and the gap so the editor can surface an imbalance (e.g. a
9
+ // missing equity plug) without silently writing a value.
10
+ //
11
+ // Field-name tolerance: deals use both a flat top-level mirror (`total_sources`/
12
+ // `total_uses`, office worked example) and a single `total_project_cost`
13
+ // (multifamily worked example), plus per-bucket `sources.total` / `uses.total`.
14
+ // Whichever total keys already exist in the block are written back.
15
+ import { collector, numOrNull } from './derived.js';
16
+ const num = numOrNull;
17
+ const isObj = (v) => v !== null && typeof v === 'object' && !Array.isArray(v);
18
+ /** Sum the "line items" of a bucket: every numeric leaf plus the footed sum of
19
+ * any nested object (e.g. uses.closing_costs), always skipping `total` keys. */
20
+ function sumLines(obj) {
21
+ let total = 0;
22
+ for (const [k, v] of Object.entries(obj)) {
23
+ if (k === 'total')
24
+ continue;
25
+ if (isObj(v))
26
+ total += sumLines(v);
27
+ else
28
+ total += num(v) ?? 0;
29
+ }
30
+ return total;
31
+ }
32
+ /** Foot a sources_uses content block. Pure: never mutates `content`. */
33
+ export function deriveSourcesUses(content) {
34
+ const c = collector();
35
+ const sources = isObj(content['sources']) ? content['sources'] : {};
36
+ const uses = isObj(content['uses']) ? content['uses'] : {};
37
+ // Nested closing-costs sub-rollup (only when it is an itemized object).
38
+ const closing = uses['closing_costs'];
39
+ if (isObj(closing)) {
40
+ c.add('uses.closing_costs.total', 'Closing Costs (total)', 'currency', sumLines(closing));
41
+ }
42
+ const sourcesTotal = sumLines(sources);
43
+ const usesTotal = sumLines(uses);
44
+ if (Object.keys(sources).length > 0) {
45
+ c.add('sources.total', 'Total Sources', 'currency', sourcesTotal);
46
+ }
47
+ if (Object.keys(uses).length > 0) {
48
+ c.add('uses.total', 'Total Uses', 'currency', usesTotal);
49
+ }
50
+ // Top-level mirrors — write back only the keys the block already carries.
51
+ if ('total_sources' in content) {
52
+ c.add('total_sources', 'Total Sources', 'currency', sourcesTotal);
53
+ }
54
+ if ('total_uses' in content) {
55
+ c.add('total_uses', 'Total Uses', 'currency', usesTotal);
56
+ }
57
+ if ('total_project_cost' in content) {
58
+ c.add('total_project_cost', 'Total Project Cost', 'currency', usesTotal);
59
+ }
60
+ const gap = Math.round(sourcesTotal - usesTotal);
61
+ return { fields: c.fields, sourcesTotal, usesTotal, gap, balanced: Math.abs(gap) <= 1 };
62
+ }
63
+ //# sourceMappingURL=sourcesuses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourcesuses.js","sourceRoot":"","sources":["../src/sourcesuses.ts"],"names":[],"mappings":"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"}