@garygentry/system1-core 0.3.1 → 0.4.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 (104) hide show
  1. package/dist/config/consent.d.ts.map +1 -1
  2. package/dist/config/consent.js +4 -2
  3. package/dist/config/consent.js.map +1 -1
  4. package/dist/config/load.d.ts +11 -1
  5. package/dist/config/load.d.ts.map +1 -1
  6. package/dist/config/load.js +139 -28
  7. package/dist/config/load.js.map +1 -1
  8. package/dist/egress/scrub.d.ts.map +1 -1
  9. package/dist/egress/scrub.js +16 -0
  10. package/dist/egress/scrub.js.map +1 -1
  11. package/dist/egress/size.d.ts +5 -0
  12. package/dist/egress/size.d.ts.map +1 -1
  13. package/dist/egress/size.js +5 -0
  14. package/dist/egress/size.js.map +1 -1
  15. package/dist/index.d.ts +11 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +6 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/model/profiles.d.ts +19 -1
  20. package/dist/model/profiles.d.ts.map +1 -1
  21. package/dist/model/profiles.js +16 -2
  22. package/dist/model/profiles.js.map +1 -1
  23. package/dist/model/schema.d.ts +22 -0
  24. package/dist/model/schema.d.ts.map +1 -0
  25. package/dist/model/schema.js +26 -0
  26. package/dist/model/schema.js.map +1 -0
  27. package/dist/model/validate.d.ts.map +1 -1
  28. package/dist/model/validate.js +6 -0
  29. package/dist/model/validate.js.map +1 -1
  30. package/dist/opportunities/backlog.d.ts +280 -0
  31. package/dist/opportunities/backlog.d.ts.map +1 -0
  32. package/dist/opportunities/backlog.js +393 -0
  33. package/dist/opportunities/backlog.js.map +1 -0
  34. package/dist/prepare.d.ts +8 -0
  35. package/dist/prepare.d.ts.map +1 -1
  36. package/dist/prepare.js +42 -6
  37. package/dist/prepare.js.map +1 -1
  38. package/dist/project/project.d.ts +36 -0
  39. package/dist/project/project.d.ts.map +1 -1
  40. package/dist/project/project.js +64 -18
  41. package/dist/project/project.js.map +1 -1
  42. package/dist/run/budget.d.ts +10 -0
  43. package/dist/run/budget.d.ts.map +1 -1
  44. package/dist/run/budget.js +20 -1
  45. package/dist/run/budget.js.map +1 -1
  46. package/dist/sources/filter.d.ts +19 -0
  47. package/dist/sources/filter.d.ts.map +1 -0
  48. package/dist/sources/filter.js +30 -0
  49. package/dist/sources/filter.js.map +1 -0
  50. package/dist/sources/read.d.ts +10 -0
  51. package/dist/sources/read.d.ts.map +1 -1
  52. package/dist/sources/read.js +7 -2
  53. package/dist/sources/read.js.map +1 -1
  54. package/dist/sources/types.d.ts +2 -2
  55. package/dist/sources/types.d.ts.map +1 -1
  56. package/dist/spec/lint.d.ts +35 -0
  57. package/dist/spec/lint.d.ts.map +1 -0
  58. package/dist/spec/lint.js +175 -0
  59. package/dist/spec/lint.js.map +1 -0
  60. package/dist/spec/spec.d.ts +2 -0
  61. package/dist/spec/spec.d.ts.map +1 -1
  62. package/dist/spec/spec.js +11 -9
  63. package/dist/spec/spec.js.map +1 -1
  64. package/dist/tools/ask.d.ts.map +1 -1
  65. package/dist/tools/ask.js +10 -13
  66. package/dist/tools/ask.js.map +1 -1
  67. package/dist/tools/context.d.ts +9 -1
  68. package/dist/tools/context.d.ts.map +1 -1
  69. package/dist/tools/context.js +24 -0
  70. package/dist/tools/context.js.map +1 -1
  71. package/dist/tools/doctor.d.ts +1 -1
  72. package/dist/tools/doctor.d.ts.map +1 -1
  73. package/dist/tools/doctor.js +46 -3
  74. package/dist/tools/doctor.js.map +1 -1
  75. package/dist/tools/many.d.ts.map +1 -1
  76. package/dist/tools/many.js +3 -0
  77. package/dist/tools/many.js.map +1 -1
  78. package/dist/tools/opportunities.d.ts +33 -0
  79. package/dist/tools/opportunities.d.ts.map +1 -0
  80. package/dist/tools/opportunities.js +74 -0
  81. package/dist/tools/opportunities.js.map +1 -0
  82. package/dist/tools/schemas.d.ts +155 -12
  83. package/dist/tools/schemas.d.ts.map +1 -1
  84. package/dist/tools/schemas.js +32 -25
  85. package/dist/tools/schemas.js.map +1 -1
  86. package/dist/tools/spec-check.d.ts +6 -0
  87. package/dist/tools/spec-check.d.ts.map +1 -1
  88. package/dist/tools/spec-check.js +6 -3
  89. package/dist/tools/spec-check.js.map +1 -1
  90. package/dist/tools/spec-lint.d.ts +31 -0
  91. package/dist/tools/spec-lint.d.ts.map +1 -0
  92. package/dist/tools/spec-lint.js +53 -0
  93. package/dist/tools/spec-lint.js.map +1 -0
  94. package/dist/transport/openrouter.d.ts +4 -1
  95. package/dist/transport/openrouter.d.ts.map +1 -1
  96. package/dist/transport/openrouter.js +5 -2
  97. package/dist/transport/openrouter.js.map +1 -1
  98. package/dist/version.d.ts +1 -1
  99. package/dist/version.js +1 -1
  100. package/dist/wiring.d.ts +1 -1
  101. package/dist/wiring.d.ts.map +1 -1
  102. package/dist/wiring.js +1 -1
  103. package/dist/wiring.js.map +1 -1
  104. package/package.json +1 -1
@@ -1,15 +1,11 @@
1
1
  import { DecisionsError } from "../errors.js";
2
2
  import { confidenceOf } from "../model/answers.js";
3
3
  const FILTER = /^\s*([A-Za-z_][\w-]*)((?:\.[\w-]+)*)\s*(>=|<=|!=|>|<|=|\s+in\s+)\s*(.+?)\s*$/;
4
- /** Parse `relevant>=0.7`, `kind=fix`, `kind in fix,feature`, `kind.probabilities.fix>=0.5`. */
5
- export function parseFilter(text, questions) {
4
+ export function tokenizeFilter(text) {
6
5
  const m = FILTER.exec(text);
7
- if (!m?.[1] || !m[3] || m[4] === undefined) {
8
- throw new DecisionsError("invalid-request", `Cannot parse --keep "${text}". Use <question>[.<field>]<op><value>, e.g. relevant>=0.7 or kind in fix,feature`);
9
- }
10
- const question = m[1];
6
+ if (!m?.[1] || !m[3] || m[4] === undefined)
7
+ return undefined;
11
8
  const op = m[3].trim();
12
- const field = m[2] ? m[2].slice(1) : defaultField(question, questions);
13
9
  const raw = m[4];
14
10
  const value = op === "in"
15
11
  ? raw
@@ -19,6 +15,29 @@ export function parseFilter(text, questions) {
19
15
  : isNumeric(raw)
20
16
  ? Number(raw)
21
17
  : raw;
18
+ return { name: m[1], path: m[2] ? m[2].slice(1) : "", op, value };
19
+ }
20
+ /** The `--sort` grammar: `<name>[.<path>][:asc|desc]`. */
21
+ export function tokenizeSort(text) {
22
+ const m = /^\s*([A-Za-z_][\w-]*)((?:\.[\w-]+)*)(?::(asc|desc))?\s*$/.exec(text);
23
+ if (!m?.[1])
24
+ return undefined;
25
+ return {
26
+ name: m[1],
27
+ path: m[2] ? m[2].slice(1) : "",
28
+ direction: m[3] ?? "desc",
29
+ };
30
+ }
31
+ /** Parse `relevant>=0.7`, `kind=fix`, `kind in fix,feature`, `kind.probabilities.fix>=0.5`. */
32
+ export function parseFilter(text, questions) {
33
+ const t = tokenizeFilter(text);
34
+ if (!t) {
35
+ throw new DecisionsError("invalid-request", `Cannot parse --keep "${text}". Use <question>[.<field>]<op><value>, e.g. relevant>=0.7 or kind in fix,feature`);
36
+ }
37
+ const question = t.name;
38
+ const op = t.op;
39
+ const field = t.path || defaultField(question, questions);
40
+ const value = t.value;
22
41
  const filter = { question, field, op, value, source: text };
23
42
  if (questions)
24
43
  assertKnown(question, questions, text);
@@ -29,14 +48,14 @@ export function parseFilter(text, questions) {
29
48
  }
30
49
  /** Parse `relevant`, `relevant.noul:asc`, `risk.score:desc`. Defaults to descending. */
31
50
  export function parseSort(text, questions) {
32
- const m = /^\s*([A-Za-z_][\w-]*)((?:\.[\w-]+)*)(?::(asc|desc))?\s*$/.exec(text);
33
- if (!m?.[1]) {
51
+ const t = tokenizeSort(text);
52
+ if (!t) {
34
53
  throw new DecisionsError("invalid-request", `Cannot parse --sort "${text}". Use <question>[.<field>][:asc|desc]`);
35
54
  }
36
55
  if (questions)
37
- assertKnown(m[1], questions, text);
38
- const field = m[2] ? m[2].slice(1) : sortField(m[1], questions);
39
- return { question: m[1], field, direction: m[3] ?? "desc" };
56
+ assertKnown(t.name, questions, text);
57
+ const field = t.path || sortField(t.name, questions);
58
+ return { question: t.name, field, direction: t.direction };
40
59
  }
41
60
  export function matches(answers, filter) {
42
61
  const actual = read(answers[filter.question], filter.field);
@@ -61,6 +80,34 @@ export function matches(answers, filter) {
61
80
  }
62
81
  }
63
82
  }
83
+ /**
84
+ * One row's verdict under `keep` (all must match) and `keepAny` (at least one
85
+ * must match).
86
+ *
87
+ * A flat answer on a `keep` or `sort` question makes the row undecided, as
88
+ * before. A flat `keepAny` answer only does when it could change the outcome:
89
+ * if a decided `keepAny` filter already matches, the row is kept; if none
90
+ * matches and none is flat, it is dropped. With no filters and no sort, every
91
+ * question counts.
92
+ */
93
+ export function verdictOf(answers, flat, keep, keepAny = [], sortQuestion) {
94
+ const acted = [...keep.map((f) => f.question), ...(sortQuestion ? [sortQuestion] : [])];
95
+ const all = acted.length === 0 && keepAny.length === 0;
96
+ const blocking = flat.filter((q) => all || acted.includes(q));
97
+ if (blocking.length > 0)
98
+ return { verdict: "undecided", questions: [...blocking] };
99
+ if (!keep.every((f) => matches(answers, f)))
100
+ return { verdict: "dropped", questions: [] };
101
+ if (keepAny.length === 0)
102
+ return { verdict: "kept", questions: [] };
103
+ const decided = keepAny.filter((f) => !flat.includes(f.question));
104
+ if (decided.some((f) => matches(answers, f)))
105
+ return { verdict: "kept", questions: [] };
106
+ const open = [...new Set(keepAny.filter((f) => flat.includes(f.question)).map((f) => f.question))];
107
+ return open.length > 0
108
+ ? { verdict: "undecided", questions: open }
109
+ : { verdict: "dropped", questions: [] };
110
+ }
64
111
  /**
65
112
  * Split rows into kept / undecided / dropped.
66
113
  *
@@ -75,16 +122,15 @@ export function matches(answers, filter) {
75
122
  */
76
123
  export function project(input) {
77
124
  const keep = input.keep ?? [];
78
- const acted = [...keep.map((f) => f.question), ...(input.sort ? [input.sort.question] : [])];
79
- const relevant = acted.length > 0 ? new Set(acted) : undefined;
125
+ const keepAny = input.keepAny ?? [];
80
126
  const kept = [];
81
127
  const undecided = [];
82
128
  let dropped = 0;
83
129
  for (const row of input.rows) {
84
- const flat = input.undecidedOf(row).filter((q) => !relevant || relevant.has(q));
85
- if (flat.length > 0)
86
- undecided.push({ row, questions: [...flat] });
87
- else if (keep.every((f) => matches(row.answers, f)))
130
+ const v = verdictOf(row.answers, input.undecidedOf(row), keep, keepAny, input.sort?.question);
131
+ if (v.verdict === "undecided")
132
+ undecided.push({ row, questions: v.questions });
133
+ else if (v.verdict === "kept")
88
134
  kept.push(row);
89
135
  else
90
136
  dropped += 1;
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AA2BlD,MAAM,MAAM,GAAG,8EAA8E,CAAA;AAc7F,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC5D,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAQ,CAAA;IAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAChB,MAAM,KAAK,GACT,EAAE,KAAK,IAAI;QACT,CAAC,CAAC,GAAG;aACA,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;YACd,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACb,CAAC,CAAC,GAAG,CAAA;IACX,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;AACnE,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,YAAY,CAC1B,IAAY;IAEZ,MAAM,CAAC,GAAG,0DAA0D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/E,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IAC7B,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACV,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/B,SAAS,EAAG,CAAC,CAAC,CAAC,CAAgC,IAAI,MAAM;KAC1D,CAAA;AACH,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,SAAuB;IAC/D,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,cAAc,CACtB,iBAAiB,EACjB,wBAAwB,IAAI,mFAAmF,CAChH,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAA;IACvB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAA;IACf,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IACzD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;IACrB,MAAM,MAAM,GAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACnE,IAAI,SAAS;QAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACrD,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC1F,MAAM,IAAI,cAAc,CAAC,iBAAiB,EAAE,WAAW,IAAI,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACvF,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,SAAuB;IAC7D,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC5B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,cAAc,CACtB,iBAAiB,EACjB,wBAAwB,IAAI,wCAAwC,CACrE,CAAA;IACH,CAAC;IACD,IAAI,SAAS;QAAE,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACpD,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAgB,EAAE,MAAc;IACtD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3D,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC;QAClB,KAAK,IAAI;YACP,OAAQ,MAAM,CAAC,KAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QAC5D,KAAK,GAAG;YACN,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAChD,KAAK,IAAI;YACP,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAChD,SAAS,CAAC;YACR,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAA;YAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAe,CAAA;YAChC,OAAO,MAAM,CAAC,EAAE,KAAK,IAAI;gBACvB,CAAC,CAAC,MAAM,IAAI,CAAC;gBACb,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG;oBACjB,CAAC,CAAC,MAAM,GAAG,CAAC;oBACZ,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI;wBAClB,CAAC,CAAC,MAAM,IAAI,CAAC;wBACb,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AA6BD;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CACvB,OAAgB,EAChB,IAAuB,EACvB,IAAuB,EACvB,OAAO,GAAsB,EAAE,EAC/B,YAAqB;IAErB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACvF,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAA;IAClF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IACzF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IACjE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IACvF,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAClG,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC;QACpB,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;QAC3C,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;AAC3C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,OAAO,CAAiC,KAAsB;IAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAA;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA;IACnC,MAAM,IAAI,GAAQ,EAAE,CAAA;IACpB,MAAM,SAAS,GAA2C,EAAE,CAAA;IAC5D,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7F,IAAI,CAAC,CAAC,OAAO,KAAK,WAAW;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;aACzE,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;YACxC,OAAO,IAAI,CAAC,CAAA;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,IAAI,CAAA;QACjD,MAAM,IAAI,GAAG,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzC,IAAI,CAAC,IAAI,CACP,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CACzF,CAAA;IACH,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAA;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC7E,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM;QAC7B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,MAAkB,CAAC,CAAC;QAClE,CAAC,CAAC,OAAO,CAAA;IACX,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAC5D,CAAC;AAED,SAAS,WAAW,CAAiC,GAAM,EAAE,MAAyB;IACpF,OAAO;QACL,GAAG,GAAG;QACN,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7F,CAAA;AACH,CAAC;AAED,SAAS,IAAI,CAAC,MAA0B,EAAE,KAAa;IACrD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC7B,IAAI,KAAK,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;IACvD,IAAI,KAAK,GAAY,MAAM,CAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,KAAK;YACH,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;gBACzC,CAAC,CAAE,KAAiC,CAAC,IAAI,CAAC;gBAC1C,CAAC,CAAC,SAAS,CAAA;IACjB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB,EAAE,SAAuB;IAC7D,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;IACxC,OAAO,IAAI,IAAI,MAAM,CAAA;AACvB,CAAC;AAED,0EAA0E;AAC1E,SAAS,SAAS,CAAC,QAAgB,EAAE,SAAuB;IAC1D,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;IACxC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,SAAsB,EAAE,IAAY;IACzE,IAAI,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,cAAc,CACtB,iBAAiB,EACjB,IAAI,IAAI,qBAAqB,QAAQ,wCAAwC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClH,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC;AAED,SAAS,GAAG,CAAC,KAAc;IACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAA;AACrE,CAAC"}
@@ -9,7 +9,17 @@ export interface Projection {
9
9
  /** Listed-price date the projection used. */
10
10
  priceAsOf: string;
11
11
  }
12
+ /**
13
+ * @param tokensPerCall the estimated state-plus-questions tokens of each call;
14
+ * the profile's per-call overhead is added to every one.
15
+ */
12
16
  export declare function project(profile: ModelProfile, tokensPerCall: readonly number[]): Projection;
17
+ /**
18
+ * One projection for several prepared requests (such as a spec's examples),
19
+ * each already projected with its per-call overhead. Adds them up; never
20
+ * re-projects, which would count the overhead twice.
21
+ */
22
+ export declare function combineProjections(profile: ModelProfile, parts: readonly Projection[]): Projection;
13
23
  /**
14
24
  * The spend guard (decision 0011): above either limit, stop and hand back the
15
25
  * projection unless the caller explicitly confirmed.
@@ -1 +1 @@
1
- {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/run/budget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,uFAAuF;AACvF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,oBAAoB,EAAE,MAAM,CAAA;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAS3F;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAc5F"}
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/run/budget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,uFAAuF;AACvF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,oBAAoB,EAAE,MAAM,CAAA;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAY3F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,SAAS,UAAU,EAAE,GAC3B,UAAU,CASZ;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAc5F"}
@@ -1,6 +1,10 @@
1
1
  import { DecisionsError } from "../errors.js";
2
+ /**
3
+ * @param tokensPerCall the estimated state-plus-questions tokens of each call;
4
+ * the profile's per-call overhead is added to every one.
5
+ */
2
6
  export function project(profile, tokensPerCall) {
3
- const estimatedInputTokens = tokensPerCall.reduce((a, b) => a + b, 0);
7
+ const estimatedInputTokens = tokensPerCall.reduce((sum, tokens) => sum + tokens + profile.callOverheadTokens, 0);
4
8
  return {
5
9
  basis: "projected",
6
10
  calls: tokensPerCall.length,
@@ -9,6 +13,21 @@ export function project(profile, tokensPerCall) {
9
13
  priceAsOf: profile.priceAsOf,
10
14
  };
11
15
  }
16
+ /**
17
+ * One projection for several prepared requests (such as a spec's examples),
18
+ * each already projected with its per-call overhead. Adds them up; never
19
+ * re-projects, which would count the overhead twice.
20
+ */
21
+ export function combineProjections(profile, parts) {
22
+ const estimatedInputTokens = parts.reduce((sum, p) => sum + p.estimatedInputTokens, 0);
23
+ return {
24
+ basis: "projected",
25
+ calls: parts.reduce((sum, p) => sum + p.calls, 0),
26
+ estimatedInputTokens,
27
+ projectedUsd: estimatedInputTokens * profile.usdPerInputToken,
28
+ priceAsOf: profile.priceAsOf,
29
+ };
30
+ }
12
31
  /**
13
32
  * The spend guard (decision 0011): above either limit, stop and hand back the
14
33
  * projection unless the caller explicitly confirmed.
@@ -1 +1 @@
1
- {"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/run/budget.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAa7C,MAAM,UAAU,OAAO,CAAC,OAAqB,EAAE,aAAgC;IAC7E,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACrE,OAAO;QACL,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,aAAa,CAAC,MAAM;QAC3B,oBAAoB;QACpB,YAAY,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB;QAC7D,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,UAAsB,EAAE,MAAc,EAAE,SAAkB;IACpF,IAAI,SAAS;QAAE,OAAM;IACrB,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,YAAY,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7D,IAAI,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IACnF,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAC7B,MAAM,IAAI,cAAc,CACtB,iBAAiB,EACjB,yBAAyB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4DAA4D,EACpG,EAAE,UAAU,EAAE,MAAM,EAAE,CACvB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/run/budget.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAa7C;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,OAAqB,EAAE,aAAgC;IAC7E,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAC/C,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAC1D,CAAC,CACF,CAAA;IACD,OAAO;QACL,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,aAAa,CAAC,MAAM;QAC3B,oBAAoB;QACpB,YAAY,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB;QAC7D,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAqB,EACrB,KAA4B;IAE5B,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAA;IACtF,OAAO;QACL,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACjD,oBAAoB;QACpB,YAAY,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB;QAC7D,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,UAAsB,EAAE,MAAc,EAAE,SAAkB;IACpF,IAAI,SAAS;QAAE,OAAM;IACrB,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,YAAY,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7D,IAAI,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IACnF,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAC7B,MAAM,IAAI,cAAc,CACtB,iBAAiB,EACjB,yBAAyB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4DAA4D,EACpG,EAAE,UAAU,EAAE,MAAM,EAAE,CACvB,CAAA;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Skipped } from "./types.js";
2
+ export interface FilterResult<T> {
3
+ items: T[];
4
+ filtered: Skipped[];
5
+ }
6
+ /**
7
+ * Drop what the caller asked to leave out (`--exclude <glob>`), by path.
8
+ *
9
+ * Unlike egress excludes this is a per-call choice, not a safety rule, so it is
10
+ * reported as `filtered` rather than `excluded`: withheld secrets stay easy to
11
+ * spot in the skipped summary. Egress excludes run first, so a path both would
12
+ * drop is always reported as `excluded`. Items with no path (text, stdin) are never
13
+ * filtered. Patterns are repo-relative, like `--glob`.
14
+ */
15
+ export declare function applyFilter<T extends {
16
+ path?: string;
17
+ realPath?: string;
18
+ }>(items: readonly T[], patterns?: readonly string[]): FilterResult<T>;
19
+ //# sourceMappingURL=filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/sources/filter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACxE,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,QAAQ,GAAE,SAAS,MAAM,EAAO,GAC/B,YAAY,CAAC,CAAC,CAAC,CAiBjB"}
@@ -0,0 +1,30 @@
1
+ import picomatch from "picomatch";
2
+ /**
3
+ * Drop what the caller asked to leave out (`--exclude <glob>`), by path.
4
+ *
5
+ * Unlike egress excludes this is a per-call choice, not a safety rule, so it is
6
+ * reported as `filtered` rather than `excluded`: withheld secrets stay easy to
7
+ * spot in the skipped summary. Egress excludes run first, so a path both would
8
+ * drop is always reported as `excluded`. Items with no path (text, stdin) are never
9
+ * filtered. Patterns are repo-relative, like `--glob`.
10
+ */
11
+ export function applyFilter(items, patterns = []) {
12
+ if (patterns.length === 0)
13
+ return { items: [...items], filtered: [] };
14
+ const matchers = patterns.map((p) => ({ p, test: picomatch(p, { dot: true }) }));
15
+ const kept = [];
16
+ const filtered = new Map();
17
+ for (const item of items) {
18
+ // Both spellings, as egress excludes do: a symlink's own name and its target.
19
+ const paths = [item.path, item.realPath].filter((p) => p !== undefined);
20
+ const hit = item.path === undefined ? undefined : matchers.find((m) => paths.some((p) => m.test(p)));
21
+ if (hit && item.path !== undefined) {
22
+ filtered.set(item.path, { path: item.path, reason: "filtered", detail: hit.p });
23
+ }
24
+ else {
25
+ kept.push(item);
26
+ }
27
+ }
28
+ return { items: kept, filtered: [...filtered.values()] };
29
+ }
30
+ //# sourceMappingURL=filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/sources/filter.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;AAQjC;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CACzB,KAAmB,EACnB,QAAQ,GAAsB,EAAE;IAEhC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;IACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAChF,MAAM,IAAI,GAAQ,EAAE,CAAA;IACpB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAA;IAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,8EAA8E;QAC9E,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;QACpF,MAAM,GAAG,GACP,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1F,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACnC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAA;QACjF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAA;AAC1D,CAAC"}
@@ -4,6 +4,16 @@ export interface ReadOptions {
4
4
  cwd: string;
5
5
  /** Files larger than this are skipped as `too-large` without being read. */
6
6
  maxFileBytes?: number;
7
+ /**
8
+ * Leave out paths matching these (`--exclude`). Glob matches are dropped
9
+ * before they are read; the caller filters every other source after.
10
+ */
11
+ filter?: readonly string[];
12
+ /**
13
+ * Egress exclude patterns beyond the defaults. The glob prefilter leaves such
14
+ * paths to `prepare()`, so they are reported as `excluded`, never `filtered`.
15
+ */
16
+ withhold?: readonly string[];
7
17
  /**
8
18
  * Allow content from outside `cwd`. Off by default: consent is given per
9
19
  * repo, so a path (or a symlink) that resolves elsewhere is withheld.
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/sources/read.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE1E,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAA;IACX,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAsCD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,OAAO,EAAE,OAAO,EAAE,CAAA;CACnB;AAQD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CASrB;AAmBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,CAY7E;AAwED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CA0B1E;AAyED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,EAAE,CAAA;CAAE,CAsB3F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAyB/D"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/sources/read.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE1E,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAA;IACX,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAsCD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,OAAO,EAAE,OAAO,EAAE,CAAA;CACnB;AAQD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CASrB;AAmBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,CAY7E;AA8ED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CA0B1E;AAyED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,EAAE,CAAA;CAAE,CAsB3F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAyB/D"}
@@ -2,7 +2,9 @@ import { execFileSync } from "node:child_process";
2
2
  import { existsSync, readFileSync, realpathSync, statSync } from "node:fs";
3
3
  import { isAbsolute, relative, resolve } from "node:path";
4
4
  import { glob } from "tinyglobby";
5
+ import { isExcluded } from "../egress/exclude.js";
5
6
  import { DecisionsError } from "../errors.js";
7
+ import { applyFilter } from "./filter.js";
6
8
  function resolvePath(cwd, path) {
7
9
  const absolute = resolve(cwd, path);
8
10
  let realAbsolute = absolute;
@@ -127,12 +129,15 @@ async function readGlob(patterns, options) {
127
129
  });
128
130
  matches.sort();
129
131
  const ignored = new Set(gitIgnored(options.cwd, matches));
130
- const kept = matches.filter((m) => !ignored.has(m));
131
- const result = readFiles(kept, options);
132
+ const candidates = matches.filter((m) => !ignored.has(m));
133
+ const withheld = candidates.filter((m) => isExcluded(m, options.withhold));
134
+ const unfiltered = applyFilter(candidates.filter((m) => !withheld.includes(m)).map((path) => ({ path })), options.filter);
135
+ const result = readFiles([...withheld, ...unfiltered.items.map((m) => m.path)].sort(), options);
132
136
  return {
133
137
  documents: result.documents,
134
138
  skipped: [
135
139
  ...[...ignored].map((path) => ({ path, reason: "gitignored" })),
140
+ ...unfiltered.filtered,
136
141
  ...result.skipped,
137
142
  ],
138
143
  };
@@ -1 +1 @@
1
- {"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/sources/read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/sources/read.ts"],"names":[],"mappings":"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"}
@@ -62,8 +62,8 @@ export interface Document {
62
62
  }
63
63
  export interface Skipped {
64
64
  path: string;
65
- reason: "binary" | "too-large" | "gitignored" | "excluded" | "outside-repo";
66
- /** For `excluded`: the pattern that matched. */
65
+ reason: "binary" | "too-large" | "gitignored" | "excluded" | "outside-repo" | "filtered";
66
+ /** For `excluded` and `filtered`: the pattern that matched. */
67
67
  detail?: string;
68
68
  }
69
69
  /** One thing to send: a state, labelled with where it came from. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sources/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE;AAC7C,kDAAkD;GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACjC;;;GAGG;GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAExE,mDAAmD;AACnD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,kDAAkD;AAClD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;IACtC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,CAAA;IAC3E,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,oEAAoE;AACpE,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sources/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE;AAC7C,kDAAkD;GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACjC;;;GAGG;GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAExE,mDAAmD;AACnD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,kDAAkD;AAClD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;IACtC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,UAAU,CAAA;IACxF,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,oEAAoE;AACpE,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB"}
@@ -0,0 +1,35 @@
1
+ import type { QuestionSet } from "../model/types.js";
2
+ import type { Spec } from "./spec.js";
3
+ /**
4
+ * An offline lint for question sets: no key, no consent, nothing sent. It
5
+ * catches the failure modes of `references/question-craft.md` that can be seen
6
+ * in the text of a spec. Two catalogue entries can't be judged offline and are
7
+ * left to the `design` skill: criteria a literal reader takes the wrong way,
8
+ * and questions written for different states mixed into one set.
9
+ *
10
+ * Almost every check is a heuristic, so it warns: a competent question can
11
+ * trip one. Only checks that are mechanically certain are errors.
12
+ */
13
+ export declare const LINT_CHECKS: readonly ["no-way-out", "abstract-levels", "unsupported-task", "merged-question", "unjustified-threshold", "unknown-threshold"];
14
+ export type LintCheck = (typeof LINT_CHECKS)[number];
15
+ export type LintSeverity = "error" | "warning";
16
+ export declare const LINT_SEVERITY: Record<LintCheck, LintSeverity>;
17
+ export interface LintFinding {
18
+ check: LintCheck;
19
+ severity: LintSeverity;
20
+ /** The question it is about, when it is about one. */
21
+ question?: string;
22
+ message: string;
23
+ /** The repair, in question-craft terms. */
24
+ fix: string;
25
+ }
26
+ /** Lint one question set. `lintSpec` adds the checks that need a policy. */
27
+ export declare function lintQuestions(questions: QuestionSet): LintFinding[];
28
+ /**
29
+ * Lint one statement on its own: the unsupported-task check only. For text
30
+ * that becomes a question without being written as one, such as an acceptance
31
+ * criterion read from a task file.
32
+ */
33
+ export declare function lintStatement(text: string, question?: string): LintFinding[];
34
+ export declare function lintSpec(spec: Pick<Spec, "questions" | "keep" | "keepAny" | "policy">): LintFinding[];
35
+ //# sourceMappingURL=lint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/spec/lint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,YACtB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,CACX,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AACpD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,CAAA;AAE9C,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAOzD,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,YAAY,CAAA;IACtB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAA;CACZ;AAqCD,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,EAAE,CAMnE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAE5E;AAED,wBAAgB,QAAQ,CACtB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,GAC5D,WAAW,EAAE,CAoCf"}