@llm4ts/flow 2.1.0 → 2.2.1

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 (57) hide show
  1. package/dist/Approval.d.ts +1 -1
  2. package/dist/Approval.d.ts.map +1 -1
  3. package/dist/Artifacts.d.ts +2 -2
  4. package/dist/Artifacts.d.ts.map +1 -1
  5. package/dist/BenchReport.d.ts +2 -2
  6. package/dist/BenchReport.d.ts.map +1 -1
  7. package/dist/CostLedger.d.ts +2 -2
  8. package/dist/CostLedger.d.ts.map +1 -1
  9. package/dist/Decisions.d.ts +187 -0
  10. package/dist/Decisions.d.ts.map +1 -0
  11. package/dist/Decisions.js +677 -0
  12. package/dist/Decisions.js.map +1 -0
  13. package/dist/Domains.d.ts +125 -0
  14. package/dist/Domains.d.ts.map +1 -0
  15. package/dist/Domains.js +528 -0
  16. package/dist/Domains.js.map +1 -0
  17. package/dist/Equiv.d.ts +3 -3
  18. package/dist/Equiv.d.ts.map +1 -1
  19. package/dist/Flow.d.ts +1 -1
  20. package/dist/Flow.d.ts.map +1 -1
  21. package/dist/FlowError.d.ts +25 -1
  22. package/dist/FlowError.d.ts.map +1 -1
  23. package/dist/FlowError.js +33 -1
  24. package/dist/FlowError.js.map +1 -1
  25. package/dist/Pack.d.ts +16 -0
  26. package/dist/Pack.d.ts.map +1 -1
  27. package/dist/Pack.js +53 -1
  28. package/dist/Pack.js.map +1 -1
  29. package/dist/PageSpec.d.ts +21 -7
  30. package/dist/PageSpec.d.ts.map +1 -1
  31. package/dist/PageSpec.js +83 -14
  32. package/dist/PageSpec.js.map +1 -1
  33. package/dist/Persistence.d.ts +2 -2
  34. package/dist/Persistence.d.ts.map +1 -1
  35. package/dist/PlanExecution.d.ts +1 -1
  36. package/dist/PlanExecution.d.ts.map +1 -1
  37. package/dist/ProgramJudge.d.ts +1 -1
  38. package/dist/ProgramJudge.d.ts.map +1 -1
  39. package/dist/Replay.d.ts +2 -2
  40. package/dist/Replay.d.ts.map +1 -1
  41. package/dist/Review.d.ts +2 -2
  42. package/dist/Review.d.ts.map +1 -1
  43. package/dist/ReviewCache.d.ts +1 -1
  44. package/dist/ReviewCache.d.ts.map +1 -1
  45. package/dist/SpecChecks.d.ts +8 -0
  46. package/dist/SpecChecks.d.ts.map +1 -1
  47. package/dist/SpecChecks.js +7 -1
  48. package/dist/SpecChecks.js.map +1 -1
  49. package/dist/Stories.d.ts +1 -1
  50. package/dist/Stories.d.ts.map +1 -1
  51. package/package.json +4 -2
  52. package/src/Decisions.ts +844 -0
  53. package/src/Domains.ts +650 -0
  54. package/src/FlowError.ts +41 -1
  55. package/src/Pack.ts +79 -1
  56. package/src/PageSpec.ts +132 -8
  57. package/src/SpecChecks.ts +15 -1
@@ -22,6 +22,6 @@ export declare class MissingModernizeArtifact extends MissingModernizeArtifact_b
22
22
  export declare const ApprovedMarker = "- [x] Approved";
23
23
  export declare const DraftApprovalMarker = "- [ ] Approved";
24
24
  export declare const withDraftApproval: (markdown: string) => string;
25
- export declare const requireApproval: (files: PlainFileStoreShape, path: string) => Effect.Effect<void, import("./FlowError.ts").PersistenceError | import("./FlowError.ts").PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | ApprovalRequired | MissingModernizeArtifact, never>;
25
+ export declare const requireApproval: (files: PlainFileStoreShape, path: string) => Effect.Effect<void, import("./FlowError.ts").PersistenceError | import("./FlowError.ts").PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | import("./FlowError.ts").DecisionsInvalid | import("./FlowError.ts").OpenPointsPending | import("./FlowError.ts").ContractConflict | ApprovalRequired | MissingModernizeArtifact, never>;
26
26
  export {};
27
27
  //# sourceMappingURL=Approval.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Approval.d.ts","sourceRoot":"","sources":["../src/Approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;;;;;AAE3D;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,qBAGpC;IACA,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;;;;;AAED,qBAAa,wBAAyB,SAAQ,6BAM7C;CAAG;AAEJ,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAC9C,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAEnD,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,MACA,CAAA;AAErD,eAAO,MAAM,eAAe,41BAc1B,CAAA"}
1
+ {"version":3,"file":"Approval.d.ts","sourceRoot":"","sources":["../src/Approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;;;;;AAE3D;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,qBAGpC;IACA,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;;;;;AAED,qBAAa,wBAAyB,SAAQ,6BAM7C;CAAG;AAEJ,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAC9C,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAEnD,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,MACA,CAAA;AAErD,eAAO,MAAM,eAAe,i+BAc1B,CAAA"}
@@ -51,7 +51,7 @@ export interface ExtractProgramsOptions<E2, R2> {
51
51
  * re-raised. With `concurrency` 1 that is exactly fail-fast; above 1 a quota
52
52
  * death costs only the programs it interrupted, and a rerun resumes the rest.
53
53
  */
54
- export declare const extractProgramsResumably: <E, R, E2 = never, R2 = never>(files: PlainFileStoreShape, units: readonly ProgramUnit[], extract: (unit: ProgramUnit) => Effect.Effect<ProgramArtifacts, E, R>, directory?: string | undefined, options?: ExtractProgramsOptions<E2, R2> | undefined) => Effect.Effect<ResumeSummary, import("./FlowError.ts").PersistenceError | import("./FlowError.ts").PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | E | E2, R | R2>;
55
- export declare const generateVectorsResumably: <E, R>(files: PlainFileStoreShape, programs: readonly string[], generate: (program: string) => Effect.Effect<string, E, R>, directory?: string | undefined) => Effect.Effect<ResumeSummary, import("./FlowError.ts").PersistenceError | import("./FlowError.ts").PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | E, R>;
54
+ export declare const extractProgramsResumably: <E, R, E2 = never, R2 = never>(files: PlainFileStoreShape, units: readonly ProgramUnit[], extract: (unit: ProgramUnit) => Effect.Effect<ProgramArtifacts, E, R>, directory?: string | undefined, options?: ExtractProgramsOptions<E2, R2> | undefined) => Effect.Effect<ResumeSummary, import("./FlowError.ts").PersistenceError | import("./FlowError.ts").PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | import("./FlowError.ts").DecisionsInvalid | import("./FlowError.ts").OpenPointsPending | import("./FlowError.ts").ContractConflict | E | E2, R | R2>;
55
+ export declare const generateVectorsResumably: <E, R>(files: PlainFileStoreShape, programs: readonly string[], generate: (program: string) => Effect.Effect<string, E, R>, directory?: string | undefined) => Effect.Effect<ResumeSummary, import("./FlowError.ts").PersistenceError | import("./FlowError.ts").PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | import("./FlowError.ts").DecisionsInvalid | import("./FlowError.ts").OpenPointsPending | import("./FlowError.ts").ContractConflict | E, R>;
56
56
  export {};
57
57
  //# sourceMappingURL=Artifacts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Artifacts.d.ts","sourceRoot":"","sources":["../src/Artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;;;;;AAE3D,qBAAa,WAAY,SAAQ,gBAG/B;CAAG;;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AAEL,qBAAa,aAAc,SAAQ,kBAGjC;CAAG;AAIL,yFAAyF;AACzF,eAAO,MAAM,oBAAoB,GAC/B,MAAM,WAAW,EACjB,kBAAgC,KAC/B,aAAa,CAAC,MAAM,CAKtB,CAAA;AAED,MAAM,WAAW,sBAAsB,CAAC,EAAE,EAAE,EAAE;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;CACxE;AAID;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GAExB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,qFAGf,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,42BAiErE,CAAA;AAEF,eAAO,MAAM,wBAAwB,GAExB,CAAC,EAAE,CAAC,+EAGK,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,4yBAe1D,CAAA"}
1
+ {"version":3,"file":"Artifacts.d.ts","sourceRoot":"","sources":["../src/Artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;;;;;AAE3D,qBAAa,WAAY,SAAQ,gBAG/B;CAAG;;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AAEL,qBAAa,aAAc,SAAQ,kBAGjC;CAAG;AAIL,yFAAyF;AACzF,eAAO,MAAM,oBAAoB,GAC/B,MAAM,WAAW,EACjB,kBAAgC,KAC/B,aAAa,CAAC,MAAM,CAKtB,CAAA;AAED,MAAM,WAAW,sBAAsB,CAAC,EAAE,EAAE,EAAE;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;CACxE;AAID;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GAExB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,qFAGf,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,i/BAiErE,CAAA;AAEF,eAAO,MAAM,wBAAwB,GAExB,CAAC,EAAE,CAAC,+EAGK,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,i7BAe1D,CAAA"}
@@ -4,6 +4,6 @@ import { PlanParseError, UnsupportedSchemaVersion } from "./FlowError.ts";
4
4
  import type { PlainFileStoreShape } from "./Persistence.ts";
5
5
  export declare const median: (values: ReadonlyArray<number>) => number;
6
6
  export declare const renderBenchReport: (records: ReadonlyArray<BenchRecord>, projectPrograms?: number) => string;
7
- export declare const appendBenchRecord: (files: PlainFileStoreShape, path: string, record: BenchRecord) => Effect.Effect<void, import("./FlowError.ts").PersistenceError | PlanParseError | UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed, never>;
8
- export declare const loadBenchRecords: (files: PlainFileStoreShape, path: string) => Effect.Effect<readonly BenchRecord[], import("./FlowError.ts").PersistenceError | PlanParseError | UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed, never>;
7
+ export declare const appendBenchRecord: (files: PlainFileStoreShape, path: string, record: BenchRecord) => Effect.Effect<void, import("./FlowError.ts").PersistenceError | PlanParseError | UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | import("./FlowError.ts").DecisionsInvalid | import("./FlowError.ts").OpenPointsPending | import("./FlowError.ts").ContractConflict, never>;
8
+ export declare const loadBenchRecords: (files: PlainFileStoreShape, path: string) => Effect.Effect<readonly BenchRecord[], import("./FlowError.ts").PersistenceError | PlanParseError | UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | import("./FlowError.ts").DecisionsInvalid | import("./FlowError.ts").OpenPointsPending | import("./FlowError.ts").ContractConflict, never>;
9
9
  //# sourceMappingURL=BenchReport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BenchReport.d.ts","sourceRoot":"","sources":["../src/BenchReport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,WAAW,EAAuC,MAAM,YAAY,CAAA;AAC7E,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAkB,MAAM,gBAAgB,CAAA;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAI3D,eAAO,MAAM,MAAM,GAAI,QAAQ,aAAa,CAAC,MAAM,CAAC,KAAG,MAStD,CAAA;AA4WD,eAAO,MAAM,iBAAiB,GAC5B,SAAS,aAAa,CAAC,WAAW,CAAC,EACnC,kBAAkB,MAAM,KACvB,MAUF,CAAA;AAID,eAAO,MAAM,iBAAiB,ixBAa5B,CAAA;AAEF,eAAO,MAAM,gBAAgB,8wBAiC3B,CAAA"}
1
+ {"version":3,"file":"BenchReport.d.ts","sourceRoot":"","sources":["../src/BenchReport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,WAAW,EAAuC,MAAM,YAAY,CAAA;AAC7E,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAkB,MAAM,gBAAgB,CAAA;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAI3D,eAAO,MAAM,MAAM,GAAI,QAAQ,aAAa,CAAC,MAAM,CAAC,KAAG,MAStD,CAAA;AA4WD,eAAO,MAAM,iBAAiB,GAC5B,SAAS,aAAa,CAAC,WAAW,CAAC,EACnC,kBAAkB,MAAM,KACvB,MAUF,CAAA;AAID,eAAO,MAAM,iBAAiB,s5BAa5B,CAAA;AAEF,eAAO,MAAM,gBAAgB,m5BAiC3B,CAAA"}
@@ -48,8 +48,8 @@ declare const CostBudget_base: Schema.Class<CostBudget, Schema.Struct<{
48
48
  export declare class CostBudget extends CostBudget_base {
49
49
  }
50
50
  export declare const checkCostBudget: (record: CostRecord, budget: CostBudget) => Effect.Effect<void, BudgetExceeded>;
51
- export declare const appendCostRecord: (files: PlainFileStoreShape, path: string, record: CostRecord) => Effect.Effect<void, import("./FlowError.ts").PersistenceError | PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed, never>;
52
- export declare const loadCostLedger: (files: PlainFileStoreShape, path: string) => Effect.Effect<readonly CostRecord[], import("./FlowError.ts").PersistenceError | PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed, never>;
51
+ export declare const appendCostRecord: (files: PlainFileStoreShape, path: string, record: CostRecord) => Effect.Effect<void, import("./FlowError.ts").PersistenceError | PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | import("./FlowError.ts").DecisionsInvalid | import("./FlowError.ts").OpenPointsPending | import("./FlowError.ts").ContractConflict, never>;
52
+ export declare const loadCostLedger: (files: PlainFileStoreShape, path: string) => Effect.Effect<readonly CostRecord[], import("./FlowError.ts").PersistenceError | PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | import("./FlowError.ts").ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | import("./FlowError.ts").DecisionsInvalid | import("./FlowError.ts").OpenPointsPending | import("./FlowError.ts").ContractConflict, never>;
53
53
  export declare const mergeCostCells: (records: ReadonlyArray<CostRecord>) => ReadonlyArray<CostCell>;
54
54
  export {};
55
55
  //# sourceMappingURL=CostLedger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CostLedger.d.ts","sourceRoot":"","sources":["../src/CostLedger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAA;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;;;;AAI3D,qBAAa,QAAS,SAAQ,aAS5B;CAAG;;;;;;;;;;;;;;;AAEL,qBAAa,UAAW,SAAQ,eAa9B;CAAG;AAEL,eAAO,MAAM,uBAAuB,IAAI,CAAA;AACxC,eAAO,MAAM,kBAAkB,gBAAgB,CAAA;AAE/C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;CACxC;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,eAAe,KAAG,UAgBvD,CAAA;;;;;AAED,qBAAa,UAAW,SAAQ,eAG9B;CAAG;AAEL,eAAO,MAAM,eAAe,GAC1B,QAAQ,UAAU,EAClB,QAAQ,UAAU,KACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAqBpC,CAAA;AAID,eAAO,MAAM,gBAAgB,gxBAa3B,CAAA;AAEF,eAAO,MAAM,cAAc,6wBAqBzB,CAAA;AAOF,eAAO,MAAM,cAAc,GAAI,SAAS,aAAa,CAAC,UAAU,CAAC,KAAG,aAAa,CAAC,QAAQ,CA+BzF,CAAA"}
1
+ {"version":3,"file":"CostLedger.d.ts","sourceRoot":"","sources":["../src/CostLedger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAA;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;;;;AAI3D,qBAAa,QAAS,SAAQ,aAS5B;CAAG;;;;;;;;;;;;;;;AAEL,qBAAa,UAAW,SAAQ,eAa9B;CAAG;AAEL,eAAO,MAAM,uBAAuB,IAAI,CAAA;AACxC,eAAO,MAAM,kBAAkB,gBAAgB,CAAA;AAE/C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;CACxC;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,eAAe,KAAG,UAgBvD,CAAA;;;;;AAED,qBAAa,UAAW,SAAQ,eAG9B;CAAG;AAEL,eAAO,MAAM,eAAe,GAC1B,QAAQ,UAAU,EAClB,QAAQ,UAAU,KACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAqBpC,CAAA;AAID,eAAO,MAAM,gBAAgB,q5BAa3B,CAAA;AAEF,eAAO,MAAM,cAAc,k5BAqBzB,CAAA;AAOF,eAAO,MAAM,cAAc,GAAI,SAAS,aAAa,CAAC,UAAU,CAAC,KAAG,aAAa,CAAC,QAAQ,CA+BzF,CAAA"}
@@ -0,0 +1,187 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Schema from "effect/Schema";
3
+ import type { JsonSchema } from "@llm4ts/core/Models";
4
+ import { DecisionsInvalid } from "./FlowError.ts";
5
+ export { DecisionsInvalid, OpenPointsPending } from "./FlowError.ts";
6
+ /**
7
+ * The scope overlay of a modernization spec pack (ADR 0015): what the
8
+ * extracted pack should BECOME, kept apart from the judged, source-grounded
9
+ * record of what the legacy does. Keyed at program and Gherkin-scenario
10
+ * level only; `migrate` is the implicit default and is never written.
11
+ *
12
+ * The file is the state. Marks (`?`) ask the model to propose, deepen marks
13
+ * send the analyst back to the source with a focus, open points are the
14
+ * questions a proposal could not settle and the answers a human appended,
15
+ * and the approval marker is the gate seed checks.
16
+ */
17
+ export declare const Disposition: Schema.Literals<readonly ["drop", "provided", "defer", "wrap"]>;
18
+ export type Disposition = typeof Disposition.Type;
19
+ declare const ProgramDecision_base: Schema.Class<ProgramDecision, Schema.Struct<{
20
+ readonly reason: Schema.String;
21
+ readonly pointer: Schema.optionalKey<Schema.String>;
22
+ readonly milestone: Schema.optionalKey<Schema.String>;
23
+ readonly decidedBy: Schema.optionalKey<Schema.String>;
24
+ readonly decidedAt: Schema.optionalKey<Schema.String>;
25
+ readonly program: Schema.String;
26
+ readonly disposition: Schema.Literals<readonly ["drop", "provided", "defer", "wrap"]>;
27
+ }>, {}>;
28
+ export declare class ProgramDecision extends ProgramDecision_base {
29
+ }
30
+ declare const ScenarioDecision_base: Schema.Class<ScenarioDecision, Schema.Struct<{
31
+ readonly reason: Schema.String;
32
+ readonly pointer: Schema.optionalKey<Schema.String>;
33
+ readonly milestone: Schema.optionalKey<Schema.String>;
34
+ readonly decidedBy: Schema.optionalKey<Schema.String>;
35
+ readonly decidedAt: Schema.optionalKey<Schema.String>;
36
+ readonly program: Schema.String;
37
+ readonly scenario: Schema.String;
38
+ readonly disposition: Schema.Literals<readonly ["drop", "provided", "defer", "wrap"]>;
39
+ }>, {}>;
40
+ export declare class ScenarioDecision extends ScenarioDecision_base {
41
+ }
42
+ declare const ProposalMark_base: Schema.Class<ProposalMark, Schema.Struct<{
43
+ readonly program: Schema.String;
44
+ readonly scenario: Schema.optionalKey<Schema.String>;
45
+ readonly note: Schema.String;
46
+ }>, {}>;
47
+ /** A `?` line: "propose a disposition for me, here is my note". */
48
+ export declare class ProposalMark extends ProposalMark_base {
49
+ }
50
+ declare const DeepenMark_base: Schema.Class<DeepenMark, Schema.Struct<{
51
+ readonly program: Schema.String;
52
+ readonly focus: Schema.String;
53
+ readonly done: Schema.optionalKey<Schema.String>;
54
+ }>, {}>;
55
+ /** A program to re-extract with a mandatory focus; `done` carries the commit once executed. */
56
+ export declare class DeepenMark extends DeepenMark_base {
57
+ }
58
+ declare const OpenPoint_base: Schema.Class<OpenPoint, Schema.Struct<{
59
+ readonly number: Schema.Int;
60
+ readonly question: Schema.String;
61
+ readonly answer: Schema.optionalKey<Schema.String>;
62
+ }>, {}>;
63
+ export declare class OpenPoint extends OpenPoint_base {
64
+ }
65
+ declare const Decisions_base: Schema.Class<Decisions, Schema.Struct<{
66
+ readonly programs: Schema.$Array<typeof ProgramDecision>;
67
+ readonly scenarios: Schema.$Array<typeof ScenarioDecision>;
68
+ readonly marks: Schema.$Array<typeof ProposalMark>;
69
+ readonly deepen: Schema.$Array<typeof DeepenMark>;
70
+ readonly openPoints: Schema.$Array<typeof OpenPoint>;
71
+ readonly approved: Schema.Boolean;
72
+ }>, {}>;
73
+ export declare class Decisions extends Decisions_base {
74
+ static readonly empty: () => Decisions;
75
+ get isEmpty(): boolean;
76
+ get pendingDeepen(): ReadonlyArray<DeepenMark>;
77
+ get unansweredOpenPoints(): ReadonlyArray<OpenPoint>;
78
+ /** The program-level decision, if the whole program is disposed. */
79
+ programDecision(program: string): ProgramDecision | undefined;
80
+ /** The disposed scenario titles of one program (program-level decisions do not expand here). */
81
+ disposedScenarios(program: string): ReadonlySet<string>;
82
+ }
83
+ export declare const decisionsGuide: string;
84
+ /** `- [x] Approved` → true, `- [ ] Approved` → false, anything else → undefined. */
85
+ export declare const parseApprovalMarker: (trimmed: string) => boolean | undefined;
86
+ /**
87
+ * Collects a `## Open points` section line by line: `1. <question>`, an
88
+ * indented `answer: …` below it, and continuation lines of either. Shared by
89
+ * every overlay that carries open points.
90
+ */
91
+ export declare const makeOpenPointsCollector: () => {
92
+ readonly points: Array<OpenPoint>;
93
+ readonly add: (line: number, trimmed: string) => string | undefined;
94
+ };
95
+ export declare const renderOpenPoints: (points: ReadonlyArray<OpenPoint>) => ReadonlyArray<string>;
96
+ export declare const parseDecisions: (markdown: string, path?: string | undefined) => Effect.Effect<Decisions, DecisionsInvalid, never>;
97
+ export declare const renderDecisions: (decisions: Decisions) => string;
98
+ export interface KnownPack {
99
+ readonly programs: ReadonlySet<string>;
100
+ /** Scenario titles per program, from the pack's .feature files. */
101
+ readonly scenarios: ReadonlyMap<string, ReadonlySet<string>>;
102
+ }
103
+ /**
104
+ * Every key must name a program of the pack and, for scenario keys, a title
105
+ * of that program's feature file. Order: programs, scenarios, marks, deepen —
106
+ * the order the sections are written in, so a violation list reads top-down.
107
+ */
108
+ export declare const validateDecisions: (decisions: Decisions, known: KnownPack) => ReadonlyArray<string>;
109
+ export interface WaivedUnit {
110
+ readonly unit: string;
111
+ readonly program: string;
112
+ /** The decision that waives it, as `<key>: <disposition>`. */
113
+ readonly by: string;
114
+ }
115
+ export interface WaiverInputs {
116
+ /** Traceability fragments per program: `<UNIT> — <refs>` lines. */
117
+ readonly fragments: ReadonlyMap<string, string>;
118
+ /** Scenario titles per program, so a ref to a surviving scenario keeps the unit live. */
119
+ readonly scenarios: ReadonlyMap<string, ReadonlySet<string>>;
120
+ }
121
+ /**
122
+ * Coverage units the decisions waive, derived — never addressed directly.
123
+ * A program-level decision waives every unit of that program's traceability
124
+ * fragment. A scenario-level decision waives a unit only when its refs name
125
+ * at least one disposed scenario and no surviving scenario of that program:
126
+ * a unit still reached by a migrating scenario stays live.
127
+ */
128
+ export declare const waivedUnits: (decisions: Decisions, inputs: WaiverInputs) => ReadonlyArray<WaivedUnit>;
129
+ /** The scenario titles of a feature file, in order. */
130
+ export declare const scenarioTitles: (feature: string) => ReadonlyArray<string>;
131
+ /**
132
+ * The feature file without the scenarios in `disposed` — the projection seed
133
+ * hands the target, so a coder never sees a scenario it must not encode.
134
+ * Background, Rule headers, and every surviving block are kept verbatim.
135
+ */
136
+ export declare const filterFeature: (feature: string, disposed: ReadonlySet<string>) => string;
137
+ declare const ProposedDecision_base: Schema.Class<ProposedDecision, Schema.Struct<{
138
+ readonly key: Schema.String;
139
+ readonly disposition: Schema.Literals<readonly ["drop", "provided", "defer", "wrap"]>;
140
+ readonly reason: Schema.String;
141
+ readonly pointer: Schema.optionalKey<Schema.String>;
142
+ }>, {}>;
143
+ /** One disposition the model proposes; `key` is a program or `<program> / <title>`. */
144
+ export declare class ProposedDecision extends ProposedDecision_base {
145
+ }
146
+ declare const DecisionsProposal_base: Schema.Class<DecisionsProposal, Schema.Struct<{
147
+ readonly decisions: Schema.$Array<typeof ProposedDecision>;
148
+ readonly openPoints: Schema.$Array<Schema.String>;
149
+ }>, {}>;
150
+ export declare class DecisionsProposal extends DecisionsProposal_base {
151
+ }
152
+ export declare const decisionsProposalJsonSchema: JsonSchema;
153
+ export interface ProposeOptions {
154
+ /** Whether a read-only target workspace is mounted for `provided` evidence. */
155
+ readonly targetMounted: boolean;
156
+ /** The pack's `prompts/refine-propose.md` paragraph. */
157
+ readonly packParagraph?: string;
158
+ }
159
+ /**
160
+ * The prune proposal ask: every `?` mark with its note, the decisions a
161
+ * human already took (context, never to be overridden), the answered open
162
+ * points as guidance, and the marked programs' specs and features.
163
+ */
164
+ export declare const proposePrompt: (decisions: Decisions, specs: ReadonlyArray<{
165
+ readonly name: string;
166
+ readonly spec: string;
167
+ readonly feature: string;
168
+ }>, options: ProposeOptions) => string;
169
+ export interface ApplyProposalOptions {
170
+ /** Whether a `provided` pointer names something that exists in the target. */
171
+ readonly pointerExists: (pointer: string) => boolean;
172
+ readonly known: KnownPack;
173
+ /** The signature written on proposed entries; the human's approval covers them. */
174
+ readonly decidedBy?: string;
175
+ readonly decidedAt: string;
176
+ }
177
+ /**
178
+ * Folds a proposal into the decisions. A proposed entry resolves the mark
179
+ * with the same key (the mark is removed) or lands as a consequential entry;
180
+ * it never overrides a decision a human already took. Anything the rules
181
+ * refuse — a `defer`, a `provided` without a real pointer, a `wrap` on a
182
+ * scenario, a key the pack does not have, a mark left unresolved — becomes
183
+ * an open point instead of a silent choice. Answered open points are
184
+ * consumed; the rest are renumbered after the survivors.
185
+ */
186
+ export declare const applyProposal: (decisions: Decisions, proposal: DecisionsProposal, options: ApplyProposalOptions) => Decisions;
187
+ //# sourceMappingURL=Decisions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Decisions.d.ts","sourceRoot":"","sources":["../src/Decisions.ts"],"names":[],"mappings":"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"}