youmd 0.10.2 → 0.12.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 (205) hide show
  1. package/dist/commands/brain.d.ts.map +1 -1
  2. package/dist/commands/brain.js +91 -28
  3. package/dist/commands/brain.js.map +1 -1
  4. package/dist/commands/chat.d.ts.map +1 -1
  5. package/dist/commands/chat.js +6 -1
  6. package/dist/commands/chat.js.map +1 -1
  7. package/dist/commands/conversations.d.ts +5 -0
  8. package/dist/commands/conversations.d.ts.map +1 -0
  9. package/dist/commands/conversations.js +116 -0
  10. package/dist/commands/conversations.js.map +1 -0
  11. package/dist/commands/doctor.d.ts +1 -0
  12. package/dist/commands/doctor.d.ts.map +1 -1
  13. package/dist/commands/doctor.js +16 -1
  14. package/dist/commands/doctor.js.map +1 -1
  15. package/dist/commands/founder.d.ts +13 -0
  16. package/dist/commands/founder.d.ts.map +1 -0
  17. package/dist/commands/founder.js +189 -0
  18. package/dist/commands/founder.js.map +1 -0
  19. package/dist/commands/handoff.d.ts +5 -0
  20. package/dist/commands/handoff.d.ts.map +1 -0
  21. package/dist/commands/handoff.js +432 -0
  22. package/dist/commands/handoff.js.map +1 -0
  23. package/dist/commands/orchestrate.d.ts +15 -0
  24. package/dist/commands/orchestrate.d.ts.map +1 -1
  25. package/dist/commands/orchestrate.js +294 -0
  26. package/dist/commands/orchestrate.js.map +1 -1
  27. package/dist/commands/project.d.ts.map +1 -1
  28. package/dist/commands/project.js +8 -1
  29. package/dist/commands/project.js.map +1 -1
  30. package/dist/commands/reconcile.d.ts +15 -0
  31. package/dist/commands/reconcile.d.ts.map +1 -0
  32. package/dist/commands/reconcile.js +260 -0
  33. package/dist/commands/reconcile.js.map +1 -0
  34. package/dist/commands/session.d.ts +28 -0
  35. package/dist/commands/session.d.ts.map +1 -0
  36. package/dist/commands/session.js +895 -0
  37. package/dist/commands/session.js.map +1 -0
  38. package/dist/commands/stack.d.ts +2 -0
  39. package/dist/commands/stack.d.ts.map +1 -1
  40. package/dist/commands/stack.js +26 -0
  41. package/dist/commands/stack.js.map +1 -1
  42. package/dist/commands/sync.d.ts.map +1 -1
  43. package/dist/commands/sync.js +11 -0
  44. package/dist/commands/sync.js.map +1 -1
  45. package/dist/commands/tasks.d.ts +57 -0
  46. package/dist/commands/tasks.d.ts.map +1 -1
  47. package/dist/commands/tasks.js +236 -31
  48. package/dist/commands/tasks.js.map +1 -1
  49. package/dist/generated/capability-registry.d.ts +311 -71
  50. package/dist/generated/capability-registry.d.ts.map +1 -1
  51. package/dist/generated/capability-registry.js +346 -71
  52. package/dist/generated/capability-registry.js.map +1 -1
  53. package/dist/index.js +113 -2
  54. package/dist/index.js.map +1 -1
  55. package/dist/lib/api.d.ts +362 -1
  56. package/dist/lib/api.d.ts.map +1 -1
  57. package/dist/lib/api.js +171 -0
  58. package/dist/lib/api.js.map +1 -1
  59. package/dist/lib/brain/adapters.d.ts +20 -1
  60. package/dist/lib/brain/adapters.d.ts.map +1 -1
  61. package/dist/lib/brain/adapters.js +113 -2
  62. package/dist/lib/brain/adapters.js.map +1 -1
  63. package/dist/lib/brain/approval-key-trust.d.ts +29 -0
  64. package/dist/lib/brain/approval-key-trust.d.ts.map +1 -0
  65. package/dist/lib/brain/approval-key-trust.js +139 -0
  66. package/dist/lib/brain/approval-key-trust.js.map +1 -0
  67. package/dist/lib/brain/cache.d.ts +2 -2
  68. package/dist/lib/brain/cache.d.ts.map +1 -1
  69. package/dist/lib/brain/cache.js +4 -4
  70. package/dist/lib/brain/cache.js.map +1 -1
  71. package/dist/lib/brain/content.d.ts +56 -0
  72. package/dist/lib/brain/content.d.ts.map +1 -0
  73. package/dist/lib/brain/content.js +362 -0
  74. package/dist/lib/brain/content.js.map +1 -0
  75. package/dist/lib/brain/descriptor-validator.d.ts +11 -0
  76. package/dist/lib/brain/descriptor-validator.d.ts.map +1 -0
  77. package/dist/lib/brain/descriptor-validator.js +185 -0
  78. package/dist/lib/brain/descriptor-validator.js.map +1 -0
  79. package/dist/lib/brain/discovery.d.ts.map +1 -1
  80. package/dist/lib/brain/discovery.js +103 -60
  81. package/dist/lib/brain/discovery.js.map +1 -1
  82. package/dist/lib/brain/index.d.ts +2 -0
  83. package/dist/lib/brain/index.d.ts.map +1 -1
  84. package/dist/lib/brain/index.js +8 -2
  85. package/dist/lib/brain/index.js.map +1 -1
  86. package/dist/lib/brain/proposal.d.ts +53 -5
  87. package/dist/lib/brain/proposal.d.ts.map +1 -1
  88. package/dist/lib/brain/proposal.js +341 -64
  89. package/dist/lib/brain/proposal.js.map +1 -1
  90. package/dist/lib/brain/safe-file.d.ts +25 -1
  91. package/dist/lib/brain/safe-file.d.ts.map +1 -1
  92. package/dist/lib/brain/safe-file.js +250 -30
  93. package/dist/lib/brain/safe-file.js.map +1 -1
  94. package/dist/lib/brain/safe-open.d.ts +2 -0
  95. package/dist/lib/brain/safe-open.d.ts.map +1 -0
  96. package/dist/lib/brain/safe-open.js +77 -0
  97. package/dist/lib/brain/safe-open.js.map +1 -0
  98. package/dist/lib/brain/safety.d.ts.map +1 -1
  99. package/dist/lib/brain/safety.js +5 -0
  100. package/dist/lib/brain/safety.js.map +1 -1
  101. package/dist/lib/brain/staged-apply.d.ts +2 -1
  102. package/dist/lib/brain/staged-apply.d.ts.map +1 -1
  103. package/dist/lib/brain/staged-apply.js +6 -3
  104. package/dist/lib/brain/staged-apply.js.map +1 -1
  105. package/dist/lib/brain/store.d.ts +3 -0
  106. package/dist/lib/brain/store.d.ts.map +1 -1
  107. package/dist/lib/brain/store.js +68 -0
  108. package/dist/lib/brain/store.js.map +1 -1
  109. package/dist/lib/brain/sync.d.ts +87 -0
  110. package/dist/lib/brain/sync.d.ts.map +1 -0
  111. package/dist/lib/brain/sync.js +238 -0
  112. package/dist/lib/brain/sync.js.map +1 -0
  113. package/dist/lib/brain/types.d.ts +23 -0
  114. package/dist/lib/brain/types.d.ts.map +1 -1
  115. package/dist/lib/config.d.ts +7 -0
  116. package/dist/lib/config.d.ts.map +1 -1
  117. package/dist/lib/config.js +3 -0
  118. package/dist/lib/config.js.map +1 -1
  119. package/dist/lib/daemon.js +1 -1
  120. package/dist/lib/daemon.js.map +1 -1
  121. package/dist/lib/goalRegistryFile.d.ts +169 -0
  122. package/dist/lib/goalRegistryFile.d.ts.map +1 -0
  123. package/dist/lib/goalRegistryFile.js +518 -0
  124. package/dist/lib/goalRegistryFile.js.map +1 -0
  125. package/dist/lib/goalsFile.d.ts +101 -0
  126. package/dist/lib/goalsFile.d.ts.map +1 -0
  127. package/dist/lib/goalsFile.js +413 -0
  128. package/dist/lib/goalsFile.js.map +1 -0
  129. package/dist/lib/handoff.d.ts +170 -0
  130. package/dist/lib/handoff.d.ts.map +1 -0
  131. package/dist/lib/handoff.js +316 -0
  132. package/dist/lib/handoff.js.map +1 -0
  133. package/dist/lib/machine-identity.d.ts +2 -0
  134. package/dist/lib/machine-identity.d.ts.map +1 -1
  135. package/dist/lib/machine-identity.js +13 -6
  136. package/dist/lib/machine-identity.js.map +1 -1
  137. package/dist/lib/onboarding.d.ts +4 -1
  138. package/dist/lib/onboarding.d.ts.map +1 -1
  139. package/dist/lib/onboarding.js +11 -3
  140. package/dist/lib/onboarding.js.map +1 -1
  141. package/dist/lib/orchestrator/loop.d.ts +7 -0
  142. package/dist/lib/orchestrator/loop.d.ts.map +1 -1
  143. package/dist/lib/orchestrator/loop.js +53 -0
  144. package/dist/lib/orchestrator/loop.js.map +1 -1
  145. package/dist/lib/orchestrator/run-journal.d.ts +178 -0
  146. package/dist/lib/orchestrator/run-journal.d.ts.map +1 -0
  147. package/dist/lib/orchestrator/run-journal.js +912 -0
  148. package/dist/lib/orchestrator/run-journal.js.map +1 -0
  149. package/dist/lib/orchestrator/supervisor.d.ts +11 -0
  150. package/dist/lib/orchestrator/supervisor.d.ts.map +1 -1
  151. package/dist/lib/orchestrator/supervisor.js +304 -116
  152. package/dist/lib/orchestrator/supervisor.js.map +1 -1
  153. package/dist/lib/orchestrator/tools.d.ts +2 -0
  154. package/dist/lib/orchestrator/tools.d.ts.map +1 -1
  155. package/dist/lib/orchestrator/tools.js +214 -1
  156. package/dist/lib/orchestrator/tools.js.map +1 -1
  157. package/dist/lib/redact.d.ts.map +1 -1
  158. package/dist/lib/redact.js +31 -6
  159. package/dist/lib/redact.js.map +1 -1
  160. package/dist/lib/remote-agent-event.d.ts +19 -0
  161. package/dist/lib/remote-agent-event.d.ts.map +1 -0
  162. package/dist/lib/remote-agent-event.js +85 -0
  163. package/dist/lib/remote-agent-event.js.map +1 -0
  164. package/dist/lib/remote-command.d.ts.map +1 -1
  165. package/dist/lib/remote-command.js +19 -0
  166. package/dist/lib/remote-command.js.map +1 -1
  167. package/dist/lib/remote-executor.d.ts +7 -1
  168. package/dist/lib/remote-executor.d.ts.map +1 -1
  169. package/dist/lib/remote-executor.js +391 -0
  170. package/dist/lib/remote-executor.js.map +1 -1
  171. package/dist/lib/sessionCheckpoint.d.ts +104 -0
  172. package/dist/lib/sessionCheckpoint.d.ts.map +1 -0
  173. package/dist/lib/sessionCheckpoint.js +191 -0
  174. package/dist/lib/sessionCheckpoint.js.map +1 -0
  175. package/dist/lib/sessionHandoff.d.ts +47 -0
  176. package/dist/lib/sessionHandoff.d.ts.map +1 -0
  177. package/dist/lib/sessionHandoff.js +305 -0
  178. package/dist/lib/sessionHandoff.js.map +1 -0
  179. package/dist/lib/stream.d.ts +3 -1
  180. package/dist/lib/stream.d.ts.map +1 -1
  181. package/dist/lib/stream.js +8 -3
  182. package/dist/lib/stream.js.map +1 -1
  183. package/dist/lib/taskLedgerProposal.d.ts +102 -0
  184. package/dist/lib/taskLedgerProposal.d.ts.map +1 -0
  185. package/dist/lib/taskLedgerProposal.js +408 -0
  186. package/dist/lib/taskLedgerProposal.js.map +1 -0
  187. package/dist/lib/tasksFile.d.ts +23 -2
  188. package/dist/lib/tasksFile.d.ts.map +1 -1
  189. package/dist/lib/tasksFile.js +122 -10
  190. package/dist/lib/tasksFile.js.map +1 -1
  191. package/dist/mcp/registry.d.ts.map +1 -1
  192. package/dist/mcp/registry.js +110 -0
  193. package/dist/mcp/registry.js.map +1 -1
  194. package/native/prebuilds/darwin-universal/youmd_safe_open.node +0 -0
  195. package/native/safe-open/youmd_safe_open.c +224 -0
  196. package/package.json +11 -3
  197. package/scripts/build-safe-open.mjs +63 -0
  198. package/scripts/skillstack-sync/com.you.context-sync.plist +1 -1
  199. package/scripts/skillstack-sync/com.you.identity-sync.plist +1 -1
  200. package/scripts/skillstack-sync/com.you.orchestrator-watch.plist +1 -1
  201. package/scripts/skillstack-sync/com.you.realtime-sync.plist +7 -1
  202. package/scripts/skillstack-sync/com.you.skillstack-sync.plist +1 -1
  203. package/scripts/skillstack-sync/context-sync.sh +19 -7
  204. package/scripts/skillstack-sync/install-daemons-linux.sh +6 -0
  205. package/scripts/smoke-safe-open-node.cjs +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionHandoff.js","sourceRoot":"","sources":["../../src/lib/sessionHandoff.ts"],"names":[],"mappings":"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"}
@@ -87,10 +87,12 @@ export interface ChatTurnMessage {
87
87
  * Calls onToken with each RAW text delta (unfiltered — display filtering is
88
88
  * the caller's concern) and returns the full assembled raw response.
89
89
  */
90
- export declare function streamSSEText(streamUrl: string, messages: ChatTurnMessage[], onToken: (text: string) => void, timeoutMs?: number): Promise<string>;
90
+ export declare function streamSSEText(streamUrl: string, messages: ChatTurnMessage[], onToken: (text: string) => void, timeoutMs?: number, authorizationToken?: string): Promise<string>;
91
91
  export interface StreamAssistantTurnOptions {
92
92
  streamUrl: string;
93
93
  messages: ChatTurnMessage[];
94
+ /** Optional You.md owner token used to hydrate private Founder OS context. */
95
+ authorizationToken?: string;
94
96
  /** BrailleSpinner label shown while waiting for the first token. */
95
97
  spinnerLabel: string;
96
98
  timeoutMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/lib/stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAcH,eAAO,MAAM,6BAA6B,kCAA6B,CAAC;AAExE;;;;;;;;;GASG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,KAAK,CAAuB;IACpC,kEAAkE;IAClE,OAAO,CAAC,OAAO,CAAK;IACpB,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAM;IACtB,uEAAuE;IACvE,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAE9B,wEAAwE;IACxE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IA2G3B,2DAA2D;IAC3D,KAAK,IAAI,MAAM;IAkBf,wEAAwE;IACxE,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,4DAA4D;IAC5D,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAED,6DAA6D;IAC7D,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,6DAA6D;IAC7D,IAAI,mBAAmB,IAAI,MAAM,CAEhC;CACF;AAID,MAAM,WAAW,oBAAoB;IACnC,sEAAsE;IACtE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0DAA0D;IAC1D,MAAM,IAAI,IAAI,CAAC;IACf,gEAAgE;IAChE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,UAAU,eAAe;IACvB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,eAAe,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1E,oBAAoB,CAyCtB;AAID,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC/B,SAAS,SAAU,GAClB,OAAO,CAAC,MAAM,CAAC,CAiDjB;AAID,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAwD9C"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/lib/stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAcH,eAAO,MAAM,6BAA6B,kCAA6B,CAAC;AAExE;;;;;;;;;GASG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,KAAK,CAAuB;IACpC,kEAAkE;IAClE,OAAO,CAAC,OAAO,CAAK;IACpB,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAM;IACtB,uEAAuE;IACvE,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAE9B,wEAAwE;IACxE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IA2G3B,2DAA2D;IAC3D,KAAK,IAAI,MAAM;IAkBf,wEAAwE;IACxE,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,4DAA4D;IAC5D,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAED,6DAA6D;IAC7D,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,6DAA6D;IAC7D,IAAI,mBAAmB,IAAI,MAAM,CAEhC;CACF;AAID,MAAM,WAAW,oBAAoB;IACnC,sEAAsE;IACtE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0DAA0D;IAC1D,MAAM,IAAI,IAAI,CAAC;IACf,gEAAgE;IAChE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,UAAU,eAAe;IACvB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,eAAe,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1E,oBAAoB,CAyCtB;AAID,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC/B,SAAS,SAAU,EACnB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC,CAsDjB;AAID,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAyD9C"}
@@ -256,10 +256,15 @@ function createFilteredStdoutWriter(opts = {}) {
256
256
  * Calls onToken with each RAW text delta (unfiltered — display filtering is
257
257
  * the caller's concern) and returns the full assembled raw response.
258
258
  */
259
- async function streamSSEText(streamUrl, messages, onToken, timeoutMs = 120000) {
259
+ async function streamSSEText(streamUrl, messages, onToken, timeoutMs = 120000, authorizationToken) {
260
260
  const res = await fetch(streamUrl, {
261
261
  method: "POST",
262
- headers: { "Content-Type": "application/json" },
262
+ headers: {
263
+ "Content-Type": "application/json",
264
+ ...(authorizationToken
265
+ ? { Authorization: `Bearer ${authorizationToken}` }
266
+ : {}),
267
+ },
263
268
  body: JSON.stringify({ messages }),
264
269
  signal: AbortSignal.timeout(timeoutMs),
265
270
  });
@@ -329,7 +334,7 @@ async function streamAssistantTurn(opts) {
329
334
  firstToken = false;
330
335
  }
331
336
  writer.write(token);
332
- }, opts.timeoutMs ?? 120000);
337
+ }, opts.timeoutMs ?? 120000, opts.authorizationToken);
333
338
  if (!firstToken) {
334
339
  writer.finish();
335
340
  return { text: response, streamed: true };
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/lib/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/lib/stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Read-only validation and exact migration proposals for repository task ledgers.
3
+ *
4
+ * This module deliberately has no write or apply function. A proposal is review
5
+ * evidence only; repository mutation remains governed by the existing task_write
6
+ * and Project Brain approval contracts.
7
+ */
8
+ import type { ProjectBrainPatchOperation } from "./brain/proposal";
9
+ import { TasksDoc } from "./tasksFile";
10
+ export declare const TASK_LEDGER_VALIDATION_VERSION: "you-md/task-ledger-validation/v1";
11
+ export declare const TASK_LEDGER_FIX_PROPOSAL_VERSION: "you-md/task-ledger-fix-proposal/v1";
12
+ export interface TaskLedgerFailureDetail {
13
+ code: string;
14
+ message: string;
15
+ }
16
+ export interface TaskLedgerBaseFile {
17
+ path: string;
18
+ exists: boolean;
19
+ contentHash: string | null;
20
+ }
21
+ export interface TaskLedgerValidationEntry {
22
+ project: string;
23
+ contextDir: string;
24
+ status: "valid" | "invalid";
25
+ valid: boolean;
26
+ taskCount: number | null;
27
+ adoptionRequired: boolean;
28
+ base: {
29
+ tasksJson: TaskLedgerBaseFile;
30
+ tasksMd: TaskLedgerBaseFile;
31
+ };
32
+ failures: TaskLedgerFailureDetail[];
33
+ }
34
+ export interface TaskLedgerValidationResult {
35
+ schemaVersion: typeof TASK_LEDGER_VALIDATION_VERSION;
36
+ kind: "task-ledger-validation";
37
+ scope: "current" | "all";
38
+ ok: boolean;
39
+ counts: {
40
+ ledgers: number;
41
+ valid: number;
42
+ invalid: number;
43
+ };
44
+ ledgers: TaskLedgerValidationEntry[];
45
+ }
46
+ export type TaskLedgerFixClassification = "generator_drift" | "mechanical_id_migration" | "manual_review";
47
+ export interface TaskLedgerFixProposal {
48
+ schemaVersion: typeof TASK_LEDGER_FIX_PROPOSAL_VERSION;
49
+ kind: "task-ledger-fix-proposal";
50
+ proposalRef: string;
51
+ project: string;
52
+ contextDir: string;
53
+ status: "proposed";
54
+ authority: "review_only";
55
+ applySupported: false;
56
+ classification: TaskLedgerFixClassification;
57
+ adoptionRequired: boolean;
58
+ risk: {
59
+ level: "low" | "medium" | "high";
60
+ review: "exact_patch" | "manual_review";
61
+ reason: string;
62
+ };
63
+ failures: TaskLedgerFailureDetail[];
64
+ base: TaskLedgerValidationEntry["base"];
65
+ tasksJson: {
66
+ path: string;
67
+ patchFormat: "rfc6902";
68
+ operations: ProjectBrainPatchOperation[];
69
+ patchDigest: string;
70
+ resultContentHash: string | null;
71
+ };
72
+ tasksMd: {
73
+ path: string;
74
+ replacement: string | null;
75
+ baseContentHash: string | null;
76
+ replacementContentHash: string | null;
77
+ generatedFromTasksJsonHash: string | null;
78
+ };
79
+ }
80
+ export interface TaskLedgerProposalGenerationResult {
81
+ schemaVersion: "you-md/task-ledger-fix-proposal-generation/v1";
82
+ kind: "task-ledger-fix-proposal-generation";
83
+ scope: "current" | "all";
84
+ ok: true;
85
+ counts: {
86
+ invalid: number;
87
+ proposals: number;
88
+ exactPatch: number;
89
+ manualReview: number;
90
+ };
91
+ proposals: TaskLedgerFixProposal[];
92
+ }
93
+ export declare function taskLedgerContextDirs(contextDirs: string[]): string[];
94
+ export declare function validateTaskLedgers(contextDirs: string[], scope: "current" | "all", requestedProject?: string): TaskLedgerValidationResult;
95
+ export interface MechanicalTaskLedgerRepair {
96
+ doc: TasksDoc;
97
+ content: string;
98
+ operations: ProjectBrainPatchOperation[];
99
+ }
100
+ export declare function mechanicalTaskLedgerRepair(content: string, expectedProject: string): MechanicalTaskLedgerRepair | null;
101
+ export declare function proposeTaskLedgerFixes(contextDirs: string[], scope: "current" | "all", requestedProject?: string): TaskLedgerProposalGenerationResult;
102
+ //# sourceMappingURL=taskLedgerProposal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskLedgerProposal.d.ts","sourceRoot":"","sources":["../../src/lib/taskLedgerProposal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,408 @@
1
+ "use strict";
2
+ /**
3
+ * Read-only validation and exact migration proposals for repository task ledgers.
4
+ *
5
+ * This module deliberately has no write or apply function. A proposal is review
6
+ * evidence only; repository mutation remains governed by the existing task_write
7
+ * and Project Brain approval contracts.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.TASK_LEDGER_FIX_PROPOSAL_VERSION = exports.TASK_LEDGER_VALIDATION_VERSION = void 0;
44
+ exports.taskLedgerContextDirs = taskLedgerContextDirs;
45
+ exports.validateTaskLedgers = validateTaskLedgers;
46
+ exports.mechanicalTaskLedgerRepair = mechanicalTaskLedgerRepair;
47
+ exports.proposeTaskLedgerFixes = proposeTaskLedgerFixes;
48
+ const fs = __importStar(require("fs"));
49
+ const path = __importStar(require("path"));
50
+ const canonical_1 = require("./brain/canonical");
51
+ const tasksFile_1 = require("./tasksFile");
52
+ exports.TASK_LEDGER_VALIDATION_VERSION = "you-md/task-ledger-validation/v1";
53
+ exports.TASK_LEDGER_FIX_PROPOSAL_VERSION = "you-md/task-ledger-fix-proposal/v1";
54
+ const TASK_ID = /^t-[A-Za-z0-9][A-Za-z0-9_-]{0,94}$/;
55
+ const DOC_KEYS = new Set(["$schema", "project", "updatedAt", "tasks", "notes"]);
56
+ const TASK_KEYS = new Set([
57
+ "id", "title", "description", "goal", "successCriteria", "parentId", "dependencyIds",
58
+ "scope", "blockers", "clarification", "review", "evidence", "status", "priority",
59
+ "owner", "ownerLabel", "tags", "source", "verify", "createdAt", "updatedAt", "completedAt",
60
+ ]);
61
+ function compareText(a, b) {
62
+ return a < b ? -1 : a > b ? 1 : 0;
63
+ }
64
+ function compareValidation(a, b) {
65
+ return compareText(a.project.toLowerCase(), b.project.toLowerCase())
66
+ || compareText(a.contextDir, b.contextDir);
67
+ }
68
+ function contentHash(content) {
69
+ return content === null ? null : `sha256:${(0, canonical_1.sha256)(content)}`;
70
+ }
71
+ function regularFileContent(filePath) {
72
+ let stat;
73
+ try {
74
+ stat = fs.lstatSync(filePath);
75
+ }
76
+ catch (error) {
77
+ if (error.code === "ENOENT")
78
+ return { content: null };
79
+ return { content: null, failure: { code: "TASKS_READ_FAILED", message: `cannot inspect ${path.basename(filePath)}` } };
80
+ }
81
+ if (!stat.isFile() || stat.isSymbolicLink()) {
82
+ return { content: null, failure: { code: "TASKS_SYMLINK_REFUSED", message: `${path.basename(filePath)} is not a regular non-symlink file` } };
83
+ }
84
+ try {
85
+ return { content: fs.readFileSync(filePath, "utf8") };
86
+ }
87
+ catch {
88
+ return { content: null, failure: { code: "TASKS_READ_FAILED", message: `cannot read ${path.basename(filePath)}` } };
89
+ }
90
+ }
91
+ function requiresAdoption(contextDir) {
92
+ try {
93
+ (0, tasksFile_1.resolveTaskWriteGrant)(contextDir);
94
+ return false;
95
+ }
96
+ catch {
97
+ return true;
98
+ }
99
+ }
100
+ function asFailure(error) {
101
+ return {
102
+ code: error instanceof tasksFile_1.TasksFileError ? error.code : "TASKS_READ_FAILED",
103
+ message: error instanceof Error ? error.message : "unknown task-ledger read failure",
104
+ };
105
+ }
106
+ function semanticMigrationFailure(content) {
107
+ let raw;
108
+ try {
109
+ raw = JSON.parse(content);
110
+ }
111
+ catch {
112
+ return null;
113
+ }
114
+ if (!isRecord(raw) || !Array.isArray(raw.tasks))
115
+ return null;
116
+ const semanticFields = new Set();
117
+ for (const task of raw.tasks) {
118
+ if (!isRecord(task))
119
+ continue;
120
+ for (const field of ["promptPath", "planPath", "prompt_path", "plan_path", "source_prompts", "completion_criteria"]) {
121
+ if (Object.prototype.hasOwnProperty.call(task, field))
122
+ semanticFields.add(field);
123
+ }
124
+ }
125
+ if (semanticFields.size === 0)
126
+ return null;
127
+ return {
128
+ code: "TASKS_SEMANTIC_MIGRATION_REQUIRED",
129
+ message: `task fields require explicit semantic mapping: ${[...semanticFields].sort(compareText).join(", ")}`,
130
+ };
131
+ }
132
+ function inspectTaskLedger(contextDir, requestedProject) {
133
+ const resolvedContextDir = path.resolve(contextDir);
134
+ const identity = (0, tasksFile_1.resolveTaskProjectIdentity)(path.dirname(resolvedContextDir));
135
+ const project = identity.canonical;
136
+ const jsonPath = path.join(resolvedContextDir, "tasks.json");
137
+ const mdPath = path.join(resolvedContextDir, "tasks.md");
138
+ const jsonRead = regularFileContent(jsonPath);
139
+ const mdRead = regularFileContent(mdPath);
140
+ const failures = [];
141
+ let doc = null;
142
+ if (jsonRead.failure)
143
+ failures.push(jsonRead.failure);
144
+ if (mdRead.failure)
145
+ failures.push(mdRead.failure);
146
+ if (requestedProject && !(0, tasksFile_1.taskProjectIdentityMatches)(requestedProject, identity)) {
147
+ failures.push({
148
+ code: "TASKS_INVALID_DOCUMENT",
149
+ message: `requested project ${requestedProject} does not match ${project}`,
150
+ });
151
+ }
152
+ if (!jsonRead.failure && jsonRead.content === null) {
153
+ failures.push({
154
+ code: "TASKS_JSON_MISSING",
155
+ message: mdRead.content === null
156
+ ? "canonical tasks.json and generated tasks.md are missing"
157
+ : "canonical tasks.json is missing; legacy tasks.md adoption requires review",
158
+ });
159
+ }
160
+ else if (!jsonRead.failure && jsonRead.content !== null) {
161
+ try {
162
+ doc = (0, tasksFile_1.parseTasksJson)(jsonRead.content, identity);
163
+ }
164
+ catch (error) {
165
+ failures.push(asFailure(error));
166
+ }
167
+ const semanticFailure = semanticMigrationFailure(jsonRead.content);
168
+ if (semanticFailure)
169
+ failures.push(semanticFailure);
170
+ }
171
+ if (doc && !mdRead.failure) {
172
+ if (mdRead.content === null) {
173
+ failures.push({ code: "TASKS_MD_MISSING", message: "generated tasks.md is missing" });
174
+ }
175
+ else if (mdRead.content !== (0, tasksFile_1.renderTasksMd)(doc)) {
176
+ failures.push({ code: "TASKS_MD_DRIFT", message: "tasks.md differs from deterministic tasks.json rendering" });
177
+ }
178
+ }
179
+ failures.sort((a, b) => compareText(a.code, b.code) || compareText(a.message, b.message));
180
+ const base = {
181
+ tasksJson: { path: jsonPath, exists: jsonRead.content !== null, contentHash: contentHash(jsonRead.content) },
182
+ tasksMd: { path: mdPath, exists: mdRead.content !== null, contentHash: contentHash(mdRead.content) },
183
+ };
184
+ const validation = {
185
+ project,
186
+ contextDir: resolvedContextDir,
187
+ status: failures.length === 0 ? "valid" : "invalid",
188
+ valid: failures.length === 0,
189
+ taskCount: doc?.tasks.length ?? rawTaskCount(jsonRead.content),
190
+ adoptionRequired: requiresAdoption(resolvedContextDir),
191
+ base,
192
+ failures,
193
+ };
194
+ return { validation, jsonContent: jsonRead.content, mdContent: mdRead.content, doc };
195
+ }
196
+ function rawTaskCount(content) {
197
+ if (content === null)
198
+ return null;
199
+ try {
200
+ const value = JSON.parse(content);
201
+ return Array.isArray(value?.tasks) ? value.tasks.length : null;
202
+ }
203
+ catch {
204
+ return null;
205
+ }
206
+ }
207
+ function taskLedgerContextDirs(contextDirs) {
208
+ return [...new Set(contextDirs.map((contextDir) => path.resolve(contextDir)))]
209
+ .filter((contextDir) => fs.existsSync(path.join(contextDir, "tasks.json")) || fs.existsSync(path.join(contextDir, "tasks.md")))
210
+ .sort(compareText);
211
+ }
212
+ function validateTaskLedgers(contextDirs, scope, requestedProject) {
213
+ const ledgers = contextDirs.map((contextDir) => inspectTaskLedger(contextDir, requestedProject))
214
+ .map((entry) => entry.validation).sort(compareValidation);
215
+ const valid = ledgers.filter((entry) => entry.valid).length;
216
+ return {
217
+ schemaVersion: exports.TASK_LEDGER_VALIDATION_VERSION,
218
+ kind: "task-ledger-validation",
219
+ scope,
220
+ ok: valid === ledgers.length,
221
+ counts: { ledgers: ledgers.length, valid, invalid: ledgers.length - valid },
222
+ ledgers,
223
+ };
224
+ }
225
+ function isRecord(value) {
226
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
227
+ }
228
+ function replacementId(oldId, project, index, occupied) {
229
+ const prefixed = `t-${oldId}`;
230
+ if (TASK_ID.test(prefixed) && !occupied.has(prefixed))
231
+ return prefixed;
232
+ let salt = 0;
233
+ while (true) {
234
+ const digest = (0, canonical_1.sha256)((0, canonical_1.canonicalize)({ project, index, oldId, salt })).slice(0, 20);
235
+ const candidate = `t-migrate-${digest}`;
236
+ if (!occupied.has(candidate))
237
+ return candidate;
238
+ salt += 1;
239
+ }
240
+ }
241
+ function mechanicalTaskLedgerRepair(content, expectedProject) {
242
+ let raw;
243
+ try {
244
+ raw = JSON.parse(content);
245
+ }
246
+ catch {
247
+ return null;
248
+ }
249
+ if (!isRecord(raw) || raw.$schema !== tasksFile_1.TASKS_SCHEMA || raw.project !== expectedProject || !Array.isArray(raw.tasks))
250
+ return null;
251
+ if (Object.keys(raw).some((key) => !DOC_KEYS.has(key)))
252
+ return null;
253
+ if (raw.tasks.some((task) => !isRecord(task) || Object.keys(task).some((key) => !TASK_KEYS.has(key))))
254
+ return null;
255
+ const taskRecords = raw.tasks;
256
+ const oldTaskIds = taskRecords.map((task) => task.id);
257
+ if (oldTaskIds.some((id) => typeof id !== "string" || !id))
258
+ return null;
259
+ const oldIds = oldTaskIds;
260
+ if (new Set(oldIds).size !== oldIds.length)
261
+ return null;
262
+ const invalidIds = oldIds.filter((id) => !TASK_ID.test(id));
263
+ if (invalidIds.length === 0)
264
+ return null;
265
+ const occupied = new Set(oldIds.filter((id) => TASK_ID.test(id)));
266
+ const replacements = new Map();
267
+ for (let index = 0; index < oldIds.length; index += 1) {
268
+ const oldId = oldIds[index];
269
+ if (TASK_ID.test(oldId))
270
+ continue;
271
+ const next = replacementId(oldId, expectedProject, index, occupied);
272
+ replacements.set(oldId, next);
273
+ occupied.add(next);
274
+ }
275
+ const transformed = JSON.parse(content);
276
+ const transformedTasks = transformed.tasks;
277
+ const operations = [];
278
+ const replaceValue = (pointer, container, key, oldValue) => {
279
+ const next = replacements.get(oldValue);
280
+ if (!next)
281
+ return;
282
+ operations.push({ op: "test", path: pointer, value: oldValue });
283
+ operations.push({ op: "replace", path: pointer, value: next });
284
+ container[key] = next;
285
+ };
286
+ for (let index = 0; index < transformedTasks.length; index += 1) {
287
+ const task = transformedTasks[index];
288
+ replaceValue(`/tasks/${index}/id`, task, "id", String(task.id));
289
+ if (typeof task.parentId === "string")
290
+ replaceValue(`/tasks/${index}/parentId`, task, "parentId", task.parentId);
291
+ if (Array.isArray(task.dependencyIds)) {
292
+ for (let dependencyIndex = 0; dependencyIndex < task.dependencyIds.length; dependencyIndex += 1) {
293
+ const dependencyId = task.dependencyIds[dependencyIndex];
294
+ if (typeof dependencyId === "string") {
295
+ replaceValue(`/tasks/${index}/dependencyIds/${dependencyIndex}`, task.dependencyIds, dependencyIndex, dependencyId);
296
+ }
297
+ }
298
+ }
299
+ // Older otherwise-v1 ledgers recorded completed work without completedAt.
300
+ // Reusing the task's own updatedAt is deterministic and does not invent a
301
+ // new event time; anything less mechanical remains manual review.
302
+ if (task.status === "done" && task.completedAt === undefined && typeof task.updatedAt === "string") {
303
+ operations.push({ op: "add", path: `/tasks/${index}/completedAt`, value: task.updatedAt });
304
+ task.completedAt = task.updatedAt;
305
+ }
306
+ }
307
+ try {
308
+ const normalized = (0, tasksFile_1.parseTasksJson)(JSON.stringify(transformed), expectedProject);
309
+ return { doc: normalized, content: `${JSON.stringify(transformed, null, 2)}\n`, operations };
310
+ }
311
+ catch {
312
+ return null;
313
+ }
314
+ }
315
+ function proposalPreimage(proposal) {
316
+ return proposal;
317
+ }
318
+ function proposalFor(inspected) {
319
+ const { validation, jsonContent, doc } = inspected;
320
+ let classification = "manual_review";
321
+ let level = "high";
322
+ let review = "manual_review";
323
+ let reason = "The ledger contains semantic or ownership decisions that cannot be mapped without human review.";
324
+ let operations = [];
325
+ let resultJsonContent = null;
326
+ let generatedDoc = null;
327
+ const failureCodes = validation.failures.map((failure) => failure.code);
328
+ if (doc && failureCodes.every((code) => code === "TASKS_MD_DRIFT" || code === "TASKS_MD_MISSING")) {
329
+ classification = "generator_drift";
330
+ level = "low";
331
+ review = "exact_patch";
332
+ reason = "Canonical tasks.json is valid; only its deterministic tasks.md companion needs replacement.";
333
+ resultJsonContent = jsonContent;
334
+ generatedDoc = doc;
335
+ }
336
+ else if (jsonContent !== null) {
337
+ const repair = mechanicalTaskLedgerRepair(jsonContent, validation.project);
338
+ if (repair) {
339
+ classification = "mechanical_id_migration";
340
+ level = "medium";
341
+ review = "exact_patch";
342
+ reason = "Noncanonical task IDs can be deterministically prefixed or hashed while preserving exact relationship references; legacy done rows reuse their existing updatedAt as completedAt.";
343
+ operations = repair.operations;
344
+ resultJsonContent = repair.content;
345
+ generatedDoc = repair.doc;
346
+ }
347
+ }
348
+ if (failureCodes.includes("TASKS_SEMANTIC_MIGRATION_REQUIRED")) {
349
+ reason = "Prompt/plan provenance or completion-criteria fields require an explicit semantic mapping; no lossy patch is emitted.";
350
+ }
351
+ else if (validation.failures.some((failure) => /project must equal/.test(failure.message))) {
352
+ reason = "The repository and ledger disagree on logical project identity; project naming requires an owner decision.";
353
+ }
354
+ const replacement = generatedDoc ? (0, tasksFile_1.renderTasksMd)(generatedDoc) : null;
355
+ const patchDigest = `sha256:${(0, canonical_1.sha256)((0, canonical_1.canonicalize)(operations))}`;
356
+ const withoutRef = {
357
+ schemaVersion: exports.TASK_LEDGER_FIX_PROPOSAL_VERSION,
358
+ kind: "task-ledger-fix-proposal",
359
+ project: validation.project,
360
+ contextDir: validation.contextDir,
361
+ status: "proposed",
362
+ authority: "review_only",
363
+ applySupported: false,
364
+ classification,
365
+ adoptionRequired: validation.adoptionRequired,
366
+ risk: { level, review, reason },
367
+ failures: validation.failures,
368
+ base: validation.base,
369
+ tasksJson: {
370
+ path: validation.base.tasksJson.path,
371
+ patchFormat: "rfc6902",
372
+ operations,
373
+ patchDigest,
374
+ resultContentHash: resultJsonContent === null ? null : contentHash(resultJsonContent),
375
+ },
376
+ tasksMd: {
377
+ path: validation.base.tasksMd.path,
378
+ replacement,
379
+ baseContentHash: validation.base.tasksMd.contentHash,
380
+ replacementContentHash: replacement === null ? null : contentHash(replacement),
381
+ generatedFromTasksJsonHash: resultJsonContent === null ? null : contentHash(resultJsonContent),
382
+ },
383
+ };
384
+ return {
385
+ ...withoutRef,
386
+ proposalRef: `proposal:tasks/${(0, canonical_1.sha256)((0, canonical_1.canonicalize)(proposalPreimage(withoutRef)))}`,
387
+ };
388
+ }
389
+ function proposeTaskLedgerFixes(contextDirs, scope, requestedProject) {
390
+ const inspected = contextDirs.map((contextDir) => inspectTaskLedger(contextDir, requestedProject))
391
+ .sort((a, b) => compareValidation(a.validation, b.validation));
392
+ const proposals = inspected.filter((entry) => !entry.validation.valid).map(proposalFor);
393
+ const exactPatch = proposals.filter((proposal) => proposal.risk.review === "exact_patch").length;
394
+ return {
395
+ schemaVersion: "you-md/task-ledger-fix-proposal-generation/v1",
396
+ kind: "task-ledger-fix-proposal-generation",
397
+ scope,
398
+ ok: true,
399
+ counts: {
400
+ invalid: proposals.length,
401
+ proposals: proposals.length,
402
+ exactPatch,
403
+ manualReview: proposals.length - exactPatch,
404
+ },
405
+ proposals,
406
+ };
407
+ }
408
+ //# sourceMappingURL=taskLedgerProposal.js.map