@garygentry/system1-core 0.3.2 → 0.4.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 (93) hide show
  1. package/dist/config/load.d.ts +11 -0
  2. package/dist/config/load.d.ts.map +1 -1
  3. package/dist/config/load.js +34 -5
  4. package/dist/config/load.js.map +1 -1
  5. package/dist/egress/scrub.d.ts.map +1 -1
  6. package/dist/egress/scrub.js +16 -0
  7. package/dist/egress/scrub.js.map +1 -1
  8. package/dist/index.d.ts +11 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +6 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/model/schema.d.ts +22 -0
  13. package/dist/model/schema.d.ts.map +1 -0
  14. package/dist/model/schema.js +26 -0
  15. package/dist/model/schema.js.map +1 -0
  16. package/dist/opportunities/backlog.d.ts +280 -0
  17. package/dist/opportunities/backlog.d.ts.map +1 -0
  18. package/dist/opportunities/backlog.js +393 -0
  19. package/dist/opportunities/backlog.js.map +1 -0
  20. package/dist/prepare.d.ts +8 -0
  21. package/dist/prepare.d.ts.map +1 -1
  22. package/dist/prepare.js +42 -6
  23. package/dist/prepare.js.map +1 -1
  24. package/dist/project/project.d.ts +36 -0
  25. package/dist/project/project.d.ts.map +1 -1
  26. package/dist/project/project.js +64 -18
  27. package/dist/project/project.js.map +1 -1
  28. package/dist/sources/filter.d.ts +19 -0
  29. package/dist/sources/filter.d.ts.map +1 -0
  30. package/dist/sources/filter.js +30 -0
  31. package/dist/sources/filter.js.map +1 -0
  32. package/dist/sources/read.d.ts +10 -0
  33. package/dist/sources/read.d.ts.map +1 -1
  34. package/dist/sources/read.js +7 -2
  35. package/dist/sources/read.js.map +1 -1
  36. package/dist/sources/types.d.ts +2 -2
  37. package/dist/sources/types.d.ts.map +1 -1
  38. package/dist/spec/lint.d.ts +35 -0
  39. package/dist/spec/lint.d.ts.map +1 -0
  40. package/dist/spec/lint.js +174 -0
  41. package/dist/spec/lint.js.map +1 -0
  42. package/dist/spec/spec.d.ts +2 -0
  43. package/dist/spec/spec.d.ts.map +1 -1
  44. package/dist/spec/spec.js +3 -1
  45. package/dist/spec/spec.js.map +1 -1
  46. package/dist/tools/ask.d.ts.map +1 -1
  47. package/dist/tools/ask.js +10 -13
  48. package/dist/tools/ask.js.map +1 -1
  49. package/dist/tools/context.d.ts +5 -0
  50. package/dist/tools/context.d.ts.map +1 -1
  51. package/dist/tools/context.js +24 -0
  52. package/dist/tools/context.js.map +1 -1
  53. package/dist/tools/doctor.d.ts +3 -1
  54. package/dist/tools/doctor.d.ts.map +1 -1
  55. package/dist/tools/doctor.js +57 -10
  56. package/dist/tools/doctor.js.map +1 -1
  57. package/dist/tools/many.d.ts.map +1 -1
  58. package/dist/tools/many.js +3 -0
  59. package/dist/tools/many.js.map +1 -1
  60. package/dist/tools/opportunities.d.ts +33 -0
  61. package/dist/tools/opportunities.d.ts.map +1 -0
  62. package/dist/tools/opportunities.js +74 -0
  63. package/dist/tools/opportunities.js.map +1 -0
  64. package/dist/tools/schemas.d.ts +155 -12
  65. package/dist/tools/schemas.d.ts.map +1 -1
  66. package/dist/tools/schemas.js +32 -25
  67. package/dist/tools/schemas.js.map +1 -1
  68. package/dist/tools/spec-check.d.ts +6 -0
  69. package/dist/tools/spec-check.d.ts.map +1 -1
  70. package/dist/tools/spec-check.js +3 -0
  71. package/dist/tools/spec-check.js.map +1 -1
  72. package/dist/tools/spec-lint.d.ts +31 -0
  73. package/dist/tools/spec-lint.d.ts.map +1 -0
  74. package/dist/tools/spec-lint.js +53 -0
  75. package/dist/tools/spec-lint.js.map +1 -0
  76. package/dist/transport/openrouter.d.ts +4 -1
  77. package/dist/transport/openrouter.d.ts.map +1 -1
  78. package/dist/transport/openrouter.js +5 -2
  79. package/dist/transport/openrouter.js.map +1 -1
  80. package/dist/version.d.ts +1 -1
  81. package/dist/version.js +1 -1
  82. package/dist/wiring.d.ts.map +1 -1
  83. package/dist/wiring.js +11 -2
  84. package/dist/wiring.js.map +1 -1
  85. package/package.json +2 -2
  86. package/dist/config.d.ts +0 -28
  87. package/dist/config.d.ts.map +0 -1
  88. package/dist/config.js +0 -64
  89. package/dist/config.js.map +0 -1
  90. package/dist/testdata/index.d.ts +0 -5
  91. package/dist/testdata/index.d.ts.map +0 -1
  92. package/dist/testdata/index.js +0 -6
  93. package/dist/testdata/index.js.map +0 -1
@@ -6,10 +6,12 @@
6
6
  * Unlike the other tools it builds its own context: a broken config is one of
7
7
  * the things it diagnoses, so it must not fail before it can report it.
8
8
  */
9
- import { accessSync, constants, statSync } from "node:fs";
9
+ import { accessSync, constants, existsSync, statSync } from "node:fs";
10
10
  import { delimiter, join } from "node:path";
11
11
  import { userConfigDir } from "../config/load.js";
12
12
  import { detectHarness } from "../config/session.js";
13
+ import { isDecisionsError } from "../errors.js";
14
+ import { backlogPath, readBacklog } from "../opportunities/backlog.js";
13
15
  import { ping } from "../ping.js";
14
16
  import { activeTriggers, route } from "../route/route.js";
15
17
  import { CLI_PACKAGE, VERSION } from "../version.js";
@@ -24,6 +26,7 @@ export const DOCTOR_CHECKS = [
24
26
  "key",
25
27
  "consent",
26
28
  "route",
29
+ "backlog",
27
30
  "network",
28
31
  ];
29
32
  /**
@@ -56,6 +59,34 @@ function routeCheck(config) {
56
59
  };
57
60
  }
58
61
  }
62
+ function backlogProblem(error) {
63
+ const problems = isDecisionsError(error) ? error.details?.problems : undefined;
64
+ const first = Array.isArray(problems) ? problems[0] : undefined;
65
+ const count = Array.isArray(problems) && problems.length > 1 ? ` (+${problems.length - 1} more)` : "";
66
+ return `the backlog doesn't validate: ${first ?? (error instanceof Error ? error.message : String(error))}${count}`;
67
+ }
68
+ /** The scout backlog is optional; a malformed one is worth knowing about before `list` fails on it. */
69
+ function backlogCheck(repoRoot) {
70
+ const file = backlogPath(repoRoot);
71
+ if (!existsSync(file))
72
+ return { name: "backlog", status: "ok", detail: "no scout backlog yet" };
73
+ try {
74
+ const { opportunities } = readBacklog(file);
75
+ return {
76
+ name: "backlog",
77
+ status: "ok",
78
+ detail: `${opportunities.length} opportunit${opportunities.length === 1 ? "y" : "ies"} in ${file}`,
79
+ };
80
+ }
81
+ catch (error) {
82
+ return {
83
+ name: "backlog",
84
+ status: "warn",
85
+ detail: backlogProblem(error),
86
+ fix: "`decide opportunities check` lists every problem; correct the file by hand or move it aside (decide never repairs it)",
87
+ };
88
+ }
89
+ }
59
90
  export const CODEX_RULE = 'prefix_rule(pattern = ["decide"], decision = "allow")';
60
91
  export async function runDoctor(options) {
61
92
  const { env } = options;
@@ -103,15 +134,30 @@ export async function runDoctor(options) {
103
134
  fix: "correct or remove these keys (docs/configuration.md lists every key)",
104
135
  });
105
136
  }
106
- checks.push(config.apiKey
107
- ? { name: "key", status: "ok", detail: `OPENROUTER_API_KEY present (${config.apiKeySource})` }
108
- : {
137
+ const credentials = join(userConfigDir(env, options.home), "credentials");
138
+ checks.push(config.apiKey && config.apiKeyQuoted
139
+ ? {
109
140
  name: "key",
110
141
  status: "warn",
111
- detail: "no API key: only replay works",
112
- // The file this shell would read: XDG_CONFIG_HOME moves it.
113
- fix: `set OPENROUTER_API_KEY, or write \`openrouter_api_key: <key>\` to ${join(userConfigDir(env, options.home), "credentials")} (create its directory first; chmod 600)`,
114
- });
142
+ detail: `OPENROUTER_API_KEY present (${config.apiKeySource}), but wrapped in quotes; they were removed`,
143
+ fix: config.apiKeySource === "env"
144
+ ? "set OPENROUTER_API_KEY without the surrounding quotes"
145
+ : `remove the extra quotes around openrouter_api_key in ${credentials}`,
146
+ advisory: true,
147
+ }
148
+ : config.apiKey
149
+ ? {
150
+ name: "key",
151
+ status: "ok",
152
+ detail: `OPENROUTER_API_KEY present (${config.apiKeySource})`,
153
+ }
154
+ : {
155
+ name: "key",
156
+ status: "warn",
157
+ detail: "no API key: only replay works",
158
+ // The file this shell would read: XDG_CONFIG_HOME moves it.
159
+ fix: `set OPENROUTER_API_KEY, or write \`openrouter_api_key: <key>\` to ${credentials} (create its directory first; chmod 600)`,
160
+ });
115
161
  checks.push(config.egress.consent.granted
116
162
  ? { name: "consent", status: "ok", detail: `egress consent granted for ${config.repoRoot}` }
117
163
  : {
@@ -123,6 +169,7 @@ export async function runDoctor(options) {
123
169
  "prompt's shell escape (not as a chat message) with --confirm added",
124
170
  });
125
171
  checks.push(routeCheck(config.route));
172
+ checks.push(backlogCheck(config.repoRoot));
126
173
  let reach;
127
174
  try {
128
175
  reach = await ping({
@@ -173,8 +220,8 @@ function pathCheck(harness, env) {
173
220
  return {
174
221
  name: "path",
175
222
  status: "warn",
176
- detail: "decide is not on PATH, so the decisions plugin's bin/ is not loaded",
177
- fix: "install the decisions plugin from its marketplace, or start Claude Code with `--plugin-dir <checkout>/plugins/system1`",
223
+ detail: "decide is not on PATH, so the System 1 plugin's bin/ is not loaded",
224
+ fix: `npm i -g ${CLI_PACKAGE}@${VERSION} (also puts decide in your own terminal), or install the System 1 plugin from its marketplace`,
178
225
  };
179
226
  }
180
227
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/tools/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/tools/doctor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"many.d.ts","sourceRoot":"","sources":["../../src/tools/many.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGvD,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE/D,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,iBAAiB,CAAA;AAC7D,OAAO,KAAK,EAAQ,SAAS,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACnE,OAAO,EAA0C,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAGvF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB;AAID,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IACpD,2EAA2E;IAC3E,MAAM,EAAE,OAAO,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,kFAAkF;IAClF,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,2BAA2B;QAC3B,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,IAAI,EAAE,SAAS,EAAE,CAAA;IACjB,8DAA8D;IAC9D,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG;QAAE,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;IACrD,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzE,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,+CAA+C;IAC/C,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAID;;;GAGG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAuGtF;AAyCD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,cAAc,CAQ5E"}
1
+ {"version":3,"file":"many.d.ts","sourceRoot":"","sources":["../../src/tools/many.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGvD,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE/D,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,iBAAiB,CAAA;AAC7D,OAAO,KAAK,EAAQ,SAAS,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACnE,OAAO,EAA0C,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAGvF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB;AAID,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IACpD,2EAA2E;IAC3E,MAAM,EAAE,OAAO,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,kFAAkF;IAClF,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,2BAA2B;QAC3B,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,IAAI,EAAE,SAAS,EAAE,CAAA;IACjB,8DAA8D;IAC9D,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG;QAAE,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;IACrD,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzE,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,+CAA+C;IAC/C,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAID;;;GAGG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CA0GtF;AAyCD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,cAAc,CAQ5E"}
@@ -23,6 +23,8 @@ export async function runMany(ctx, rawInput) {
23
23
  profile: req.profile,
24
24
  cwd: ctx.config.repoRoot,
25
25
  exclude: ctx.config.egress.exclude,
26
+ filter: req.exclude,
27
+ oversize: "skip",
26
28
  ...(input.allowOutside ? { allowOutside: true } : {}),
27
29
  });
28
30
  const base = {
@@ -76,6 +78,7 @@ export async function runMany(ctx, rawInput) {
76
78
  const projected = project({
77
79
  rows,
78
80
  keep: req.keep,
81
+ keepAny: req.keepAny,
79
82
  ...(req.sort ? { sort: req.sort } : {}),
80
83
  ...(input.limit !== undefined ? { limit: input.limit } : {}),
81
84
  ...(input.fields ? { fields: input.fields } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"many.js","sourceRoot":"","sources":["../../src/tools/many.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,EAAE,cAAc,EAAkB,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/E,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAmB,MAAM,kBAAkB,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAqB,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAA;AAqBvF,MAAM,OAAO,GAAG,GAAG,CAAA;AAuCnB,MAAM,MAAM,GAAG,CAAC,CAAA;AAEhB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAgB,EAAE,QAAiB;IAC/D,MAAM,KAAK,GAAG,UAAU,CAAY,MAAM,EAAE,QAAQ,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IACjC,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACtC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;QAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ;QACxB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;QAClC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC,CAAA;IACF,MAAM,IAAI,GAAG;QACX,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE;QACrB,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3C,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;QAClF,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAA;IAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;YAC7E,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YACnB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YACpD,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,CAAA;IAClE,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,4DAA4D;QAC5D,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC7D,WAAW,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACjG,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAC7E,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAC1F,CAAA;IAED,MAAM,IAAI,GAAkD,EAAE,CAAA;IAC9D,MAAM,MAAM,GAAyB,EAAE,CAAA;IACvC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAS,CAAA;QACtC,IAAI,OAAO,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;;YAC7D,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;IAEF,6EAA6E;IAC7E,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;IACtB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7E,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,CAAqB,CAAA;QACvE,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5D,MAAM,IAAI,cAAc,CACtB,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EACvD,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,kBAAkB,KAAK,CAAC,OAAO,EAAE,EAC3F,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CACtC,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC,SAAS;KACvB,CAAC,CAAC,CAAA;IACH,MAAM,SAAS,GAAG,OAAO,CAAC;QACxB,IAAI;QACJ,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;KAC3B,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAyB,EAAa,EAAE,CAAC,CAAC;QACtE,GAAG,IAAI;QACP,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;QACrD,MAAM,EAAE,MAAM,CACZ,QAAQ,CAAC,KAAK,CAAC,MAAM,EACrB,SAAS,CAAC,IAAI,CAAC,MAAM,EACrB,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,SAAS,CAAC,MAAM,EAC1B,SAAS,CAAC,OAAO,EACjB,MAAM,CAAC,MAAM,EACb,QAAQ,CAAC,OAAO,CAAC,MAAM,CACxB;QACD,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAC/B,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1F,MAAM;QACN,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChD,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;KACrD,CAAA;AACH,CAAC;AAED,SAAS,GAAG,CAAC,IAAU,EAAE,OAAgB;IACvC,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO;KACR,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAU;IAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA;IAC/E,OAAO,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAA;AAC1C,CAAC;AAED,SAAS,OAAO,CAAC,KAAoB;IACnC,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACrE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAA;IACT,OAAO,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AACxE,CAAC;AAED,SAAS,MAAM,CACb,KAAa,EACb,IAAY,EACZ,SAAiB,EACjB,SAAiB,EACjB,OAAe,EACf,MAAc,EACd,OAAe;IAEf,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAA2B;IAC1D,MAAM,QAAQ,GAA+B,EAAE,CAAA;IAC/C,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IAC3E,+EAA+E;IAC/E,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAC5E,CAAA;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAA;AAC9E,CAAC;AAED,SAAS,QAAQ,CAAC,KAAY;IAC5B,OAAO,gBAAgB,CAAC,KAAK,CAAC;QAC5B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;QAC9C,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;AAC/C,CAAC"}
1
+ {"version":3,"file":"many.js","sourceRoot":"","sources":["../../src/tools/many.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { type Opportunity, type OpportunityStatus } from "../opportunities/backlog.js";
2
+ import { type ToolContext } from "./context.js";
3
+ export interface OpportunitiesAddResult {
4
+ file: string;
5
+ added: string[];
6
+ updated: string[];
7
+ /** `new` entries at a covered path that this add didn't see again. */
8
+ staled: string[];
9
+ total: number;
10
+ }
11
+ /** Validate candidates and merge them into the backlog. Local only: nothing is sent. */
12
+ export declare function runOpportunitiesAdd(ctx: ToolContext, rawInput: unknown, now?: () => Date): OpportunitiesAddResult;
13
+ export interface OpportunitiesListResult {
14
+ file: string;
15
+ total: number;
16
+ /** Matching the filters, before `limit`. */
17
+ matched: number;
18
+ /** Every saving here is projected: arithmetic over the inputs shown with it. */
19
+ basis: "projected";
20
+ opportunities: Array<Partial<Opportunity> & {
21
+ id: string;
22
+ }>;
23
+ }
24
+ export declare function runOpportunitiesList(ctx: ToolContext, rawInput?: unknown): OpportunitiesListResult;
25
+ export interface OpportunitiesCheckResult {
26
+ file: string;
27
+ exists: boolean;
28
+ entries: number;
29
+ byStatus: Partial<Record<OpportunityStatus, number>>;
30
+ }
31
+ /** Validate the backlog on disk. Malformed is a typed error (exit 2); nothing is repaired. */
32
+ export declare function runOpportunitiesCheck(ctx: ToolContext, rawInput?: unknown): OpportunitiesCheckResult;
33
+ //# sourceMappingURL=opportunities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunities.d.ts","sourceRoot":"","sources":["../../src/tools/opportunities.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAQvB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAG3D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,sEAAsE;IACtE,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,OAAO,EACjB,GAAG,GAAE,MAAM,IAAuB,GACjC,sBAAsB,CAexB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAA;IACf,gFAAgF;IAChF,KAAK,EAAE,WAAW,CAAA;IAClB,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC5D;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,WAAW,EAChB,QAAQ,GAAE,OAAY,GACrB,uBAAuB,CAkBzB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAA;CACrD;AAED,8FAA8F;AAC9F,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,QAAQ,GAAE,OAAY,GACrB,wBAAwB,CAO1B"}
@@ -0,0 +1,74 @@
1
+ import { existsSync } from "node:fs";
2
+ import { DecisionsError } from "../errors.js";
3
+ import { backlogPath, ENTRY_FIELDS, mergeCandidates, parseRecordFilter, parseRecordSort, readBacklog, readField, recordMatches, withBacklogLock, writeBacklog, } from "../opportunities/backlog.js";
4
+ import { checkInput } from "./context.js";
5
+ /** Validate candidates and merge them into the backlog. Local only: nothing is sent. */
6
+ export function runOpportunitiesAdd(ctx, rawInput, now = () => new Date()) {
7
+ const input = checkInput("opportunities-add", rawInput);
8
+ const file = backlogPath(ctx.config.repoRoot);
9
+ const merged = withBacklogLock(file, () => {
10
+ const result = mergeCandidates(readBacklog(file), input.candidates, now().toISOString());
11
+ writeBacklog(file, result.backlog);
12
+ return result;
13
+ });
14
+ return {
15
+ file,
16
+ added: merged.added,
17
+ updated: merged.updated,
18
+ staled: merged.staled,
19
+ total: merged.backlog.opportunities.length,
20
+ };
21
+ }
22
+ export function runOpportunitiesList(ctx, rawInput = {}) {
23
+ const input = checkInput("opportunities-list", rawInput);
24
+ const filters = (input.keep ?? []).map(parseRecordFilter);
25
+ const sort = parseRecordSort(input.sort ?? "projected:desc");
26
+ assertFields(input.fields);
27
+ const file = backlogPath(ctx.config.repoRoot);
28
+ const { opportunities } = readBacklog(file);
29
+ const matched = opportunities
30
+ .filter((o) => filters.every((f) => recordMatches(o, f)))
31
+ .sort((a, b) => compare(readField(a, sort.field), readField(b, sort.field), sort.direction));
32
+ const shown = input.limit === undefined ? matched : matched.slice(0, input.limit);
33
+ return {
34
+ file,
35
+ total: opportunities.length,
36
+ matched: matched.length,
37
+ basis: "projected",
38
+ opportunities: shown.map((o) => pick(o, input.fields)),
39
+ };
40
+ }
41
+ /** Validate the backlog on disk. Malformed is a typed error (exit 2); nothing is repaired. */
42
+ export function runOpportunitiesCheck(ctx, rawInput = {}) {
43
+ checkInput("opportunities-check", rawInput);
44
+ const file = backlogPath(ctx.config.repoRoot);
45
+ const backlog = readBacklog(file);
46
+ const byStatus = {};
47
+ for (const o of backlog.opportunities)
48
+ byStatus[o.status] = (byStatus[o.status] ?? 0) + 1;
49
+ return { file, exists: existsSync(file), entries: backlog.opportunities.length, byStatus };
50
+ }
51
+ /** Missing values sort last either way. */
52
+ function compare(a, b, direction) {
53
+ if (a === undefined || b === undefined)
54
+ return a === b ? 0 : a === undefined ? 1 : -1;
55
+ const order = typeof a === "number" && typeof b === "number" ? a - b : String(a).localeCompare(String(b));
56
+ return direction === "asc" ? order : -order;
57
+ }
58
+ function pick(o, fields) {
59
+ if (!fields)
60
+ return o;
61
+ const out = { id: o.id };
62
+ for (const f of fields)
63
+ if (Object.hasOwn(o, f))
64
+ out[f] = o[f];
65
+ return out;
66
+ }
67
+ /** Checked before reading, so a typo is an error even on an empty backlog. */
68
+ function assertFields(fields = []) {
69
+ const unknown = fields.filter((f) => !ENTRY_FIELDS.includes(f));
70
+ if (unknown.length) {
71
+ throw new DecisionsError("invalid-request", `--fields: no field ${unknown.join(", ")}. Fields: ${ENTRY_FIELDS.join(", ")}`);
72
+ }
73
+ }
74
+ //# sourceMappingURL=opportunities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunities.js","sourceRoot":"","sources":["../../src/tools/opportunities.ts"],"names":[],"mappings":"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"}
@@ -6,17 +6,14 @@ export declare const AskInput: Type.TObject<{
6
6
  questions: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TObject<{
7
7
  type: Type.TLiteral<"noul">;
8
8
  instructions: Type.TString;
9
- /** Optional `true`/`false` criteria that sharpen an ambiguous statement. */
10
9
  criteria: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
11
10
  }>, Type.TObject<{
12
11
  type: Type.TLiteral<"choice">;
13
12
  instructions: Type.TString;
14
- /** Option key to when it applies. At least two, including a way out. */
15
13
  criteria: Type.TRecord<"^.*$", Type.TString>;
16
14
  }>, Type.TObject<{
17
15
  type: Type.TLiteral<"score">;
18
16
  instructions: Type.TString;
19
- /** Levels, lowest first and 0-indexed. */
20
17
  criteria: Type.TArray<Type.TString>;
21
18
  }>]>>>;
22
19
  /** Where the content comes from. Defaults to the spec's `source`. */
@@ -46,10 +43,17 @@ export declare const AskInput: Type.TObject<{
46
43
  staged: Type.TOptional<Type.TBoolean>;
47
44
  paths: Type.TOptional<Type.TArray<Type.TString>>;
48
45
  }>]>>>;
46
+ /**
47
+ * Leave out paths matching these globs (repo-relative, like `glob`). A per-call
48
+ * choice, reported as `filtered`; egress excludes still apply on top.
49
+ */
50
+ exclude: Type.TOptional<Type.TArray<Type.TString>>;
49
51
  /** `file` | `hunk` | `row` | `lines:N[/overlap]`. */
50
52
  split: Type.TOptional<Type.TString>;
51
53
  /** Filters, ANDed: `relevant>=0.7`, `kind in fix,feature`. */
52
54
  keep: Type.TOptional<Type.TArray<Type.TString>>;
55
+ /** Kept when any of these matches (and every `keep` does): `a>=0.3`, `b>=0.3`. */
56
+ keepAny: Type.TOptional<Type.TArray<Type.TString>>;
53
57
  mode: Type.TOptional<Type.TUnion<[Type.TLiteral<"auto">, Type.TLiteral<"live">, Type.TLiteral<"record">, Type.TLiteral<"replay">]>>;
54
58
  model: Type.TOptional<Type.TString>;
55
59
  /**
@@ -65,17 +69,14 @@ export declare const ManyInput: Type.TObject<{
65
69
  questions: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TObject<{
66
70
  type: Type.TLiteral<"noul">;
67
71
  instructions: Type.TString;
68
- /** Optional `true`/`false` criteria that sharpen an ambiguous statement. */
69
72
  criteria: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
70
73
  }>, Type.TObject<{
71
74
  type: Type.TLiteral<"choice">;
72
75
  instructions: Type.TString;
73
- /** Option key to when it applies. At least two, including a way out. */
74
76
  criteria: Type.TRecord<"^.*$", Type.TString>;
75
77
  }>, Type.TObject<{
76
78
  type: Type.TLiteral<"score">;
77
79
  instructions: Type.TString;
78
- /** Levels, lowest first and 0-indexed. */
79
80
  criteria: Type.TArray<Type.TString>;
80
81
  }>]>>>;
81
82
  /** Where the content comes from. Defaults to the spec's `source`. */
@@ -105,10 +106,17 @@ export declare const ManyInput: Type.TObject<{
105
106
  staged: Type.TOptional<Type.TBoolean>;
106
107
  paths: Type.TOptional<Type.TArray<Type.TString>>;
107
108
  }>]>>>;
109
+ /**
110
+ * Leave out paths matching these globs (repo-relative, like `glob`). A per-call
111
+ * choice, reported as `filtered`; egress excludes still apply on top.
112
+ */
113
+ exclude: Type.TOptional<Type.TArray<Type.TString>>;
108
114
  /** `file` | `hunk` | `row` | `lines:N[/overlap]`. */
109
115
  split: Type.TOptional<Type.TString>;
110
116
  /** Filters, ANDed: `relevant>=0.7`, `kind in fix,feature`. */
111
117
  keep: Type.TOptional<Type.TArray<Type.TString>>;
118
+ /** Kept when any of these matches (and every `keep` does): `a>=0.3`, `b>=0.3`. */
119
+ keepAny: Type.TOptional<Type.TArray<Type.TString>>;
112
120
  mode: Type.TOptional<Type.TUnion<[Type.TLiteral<"auto">, Type.TLiteral<"live">, Type.TLiteral<"record">, Type.TLiteral<"replay">]>>;
113
121
  model: Type.TOptional<Type.TString>;
114
122
  /**
@@ -141,6 +149,68 @@ export declare const SpecCheckInput: Type.TObject<{
141
149
  /** Proceed past the spend guard. */
142
150
  confirm: Type.TOptional<Type.TBoolean>;
143
151
  }>;
152
+ export declare const SpecLintInput: Type.TObject<{
153
+ /** Spec name (repo → user → bundled) or path. Omitted: every spec in reach. */
154
+ spec: Type.TOptional<Type.TString>;
155
+ }>;
156
+ export declare const OpportunitiesAddInput: Type.TObject<{
157
+ /** Candidates to merge into `.system1/opportunities.json`. */
158
+ candidates: Type.TArray<Type.TObject<{
159
+ mode: Type.TUnion<[Type.TLiteral<"code">, Type.TLiteral<"agents">]>;
160
+ location: Type.TObject<{
161
+ path: Type.TString;
162
+ lines: Type.TOptional<Type.TObject<{
163
+ start: Type.TInteger;
164
+ end: Type.TInteger;
165
+ }>>;
166
+ }>;
167
+ mechanism: Type.TString;
168
+ shape: Type.TUnion<[Type.TLiteral<"single">, Type.TLiteral<"fanout">, Type.TLiteral<"cascade">, Type.TLiteral<"pairwise">]>;
169
+ evidence: Type.TString;
170
+ questions: Type.TRecord<"^.*$", Type.TUnion<[Type.TObject<{
171
+ type: Type.TLiteral<"noul">;
172
+ instructions: Type.TString;
173
+ criteria: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
174
+ }>, Type.TObject<{
175
+ type: Type.TLiteral<"choice">;
176
+ instructions: Type.TString;
177
+ criteria: Type.TRecord<"^.*$", Type.TString>;
178
+ }>, Type.TObject<{
179
+ type: Type.TLiteral<"score">;
180
+ instructions: Type.TString;
181
+ criteria: Type.TArray<Type.TString>;
182
+ }>]>>;
183
+ benefit: Type.TUnion<[Type.TLiteral<"cost">, Type.TLiteral<"quality">, Type.TLiteral<"latency">]>;
184
+ projected: Type.TObject<{
185
+ volume: Type.TNumber;
186
+ per: Type.TString;
187
+ currentCostPerItemUsd: Type.TNumber;
188
+ decisionCostPerItemUsd: Type.TNumber;
189
+ note: Type.TOptional<Type.TString>;
190
+ }>;
191
+ risk: Type.TObject<{
192
+ level: Type.TUnion<[Type.TLiteral<"low">, Type.TLiteral<"medium">, Type.TLiteral<"high">]>;
193
+ note: Type.TString;
194
+ }>;
195
+ next: Type.TString;
196
+ status: Type.TOptional<Type.TUnion<[Type.TLiteral<"new">, Type.TLiteral<"stale">, Type.TLiteral<"adopted">, Type.TLiteral<"rejected">]>>;
197
+ statusReason: Type.TOptional<Type.TString>;
198
+ source: Type.TObject<{
199
+ sweep: Type.TString;
200
+ answers: Type.TUnion<[Type.TLiteral<"live">, Type.TLiteral<"replay">]>;
201
+ }>;
202
+ }>>;
203
+ }>;
204
+ export declare const OpportunitiesListInput: Type.TObject<{
205
+ /** Record filters, ANDed: `status=new`, `risk in medium,high`, `projected>=0.01`. */
206
+ keep: Type.TOptional<Type.TArray<Type.TString>>;
207
+ /** `projected:desc` (the default), `seenAt:asc`, … */
208
+ sort: Type.TOptional<Type.TString>;
209
+ limit: Type.TOptional<Type.TInteger>;
210
+ /** Top-level fields to include per entry; `id` always is. */
211
+ fields: Type.TOptional<Type.TArray<Type.TString>>;
212
+ }>;
213
+ export declare const OpportunitiesCheckInput: Type.TObject<{}>;
144
214
  export declare const RouteInput: Type.TObject<{
145
215
  /** The user's prompt, as the harness hook received it. */
146
216
  prompt: Type.TString;
@@ -150,6 +220,9 @@ export type ManyInput = Static<typeof ManyInput>;
150
220
  export type UsageInput = Static<typeof UsageInput>;
151
221
  export type SpecCheckInput = Static<typeof SpecCheckInput>;
152
222
  export type RouteInput = Static<typeof RouteInput>;
223
+ export type SpecLintInput = Static<typeof SpecLintInput>;
224
+ export type OpportunitiesAddInput = Static<typeof OpportunitiesAddInput>;
225
+ export type OpportunitiesListInput = Static<typeof OpportunitiesListInput>;
153
226
  export declare const TOOL_SCHEMAS: {
154
227
  readonly ask: Type.TObject<{
155
228
  /** A saved spec: name (repo → user → bundled) or path. */
@@ -158,17 +231,14 @@ export declare const TOOL_SCHEMAS: {
158
231
  questions: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TObject<{
159
232
  type: Type.TLiteral<"noul">;
160
233
  instructions: Type.TString;
161
- /** Optional `true`/`false` criteria that sharpen an ambiguous statement. */
162
234
  criteria: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
163
235
  }>, Type.TObject<{
164
236
  type: Type.TLiteral<"choice">;
165
237
  instructions: Type.TString;
166
- /** Option key to when it applies. At least two, including a way out. */
167
238
  criteria: Type.TRecord<"^.*$", Type.TString>;
168
239
  }>, Type.TObject<{
169
240
  type: Type.TLiteral<"score">;
170
241
  instructions: Type.TString;
171
- /** Levels, lowest first and 0-indexed. */
172
242
  criteria: Type.TArray<Type.TString>;
173
243
  }>]>>>;
174
244
  /** Where the content comes from. Defaults to the spec's `source`. */
@@ -198,10 +268,17 @@ export declare const TOOL_SCHEMAS: {
198
268
  staged: Type.TOptional<Type.TBoolean>;
199
269
  paths: Type.TOptional<Type.TArray<Type.TString>>;
200
270
  }>]>>>;
271
+ /**
272
+ * Leave out paths matching these globs (repo-relative, like `glob`). A per-call
273
+ * choice, reported as `filtered`; egress excludes still apply on top.
274
+ */
275
+ exclude: Type.TOptional<Type.TArray<Type.TString>>;
201
276
  /** `file` | `hunk` | `row` | `lines:N[/overlap]`. */
202
277
  split: Type.TOptional<Type.TString>;
203
278
  /** Filters, ANDed: `relevant>=0.7`, `kind in fix,feature`. */
204
279
  keep: Type.TOptional<Type.TArray<Type.TString>>;
280
+ /** Kept when any of these matches (and every `keep` does): `a>=0.3`, `b>=0.3`. */
281
+ keepAny: Type.TOptional<Type.TArray<Type.TString>>;
205
282
  mode: Type.TOptional<Type.TUnion<[Type.TLiteral<"auto">, Type.TLiteral<"live">, Type.TLiteral<"record">, Type.TLiteral<"replay">]>>;
206
283
  model: Type.TOptional<Type.TString>;
207
284
  /**
@@ -217,17 +294,14 @@ export declare const TOOL_SCHEMAS: {
217
294
  questions: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TObject<{
218
295
  type: Type.TLiteral<"noul">;
219
296
  instructions: Type.TString;
220
- /** Optional `true`/`false` criteria that sharpen an ambiguous statement. */
221
297
  criteria: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
222
298
  }>, Type.TObject<{
223
299
  type: Type.TLiteral<"choice">;
224
300
  instructions: Type.TString;
225
- /** Option key to when it applies. At least two, including a way out. */
226
301
  criteria: Type.TRecord<"^.*$", Type.TString>;
227
302
  }>, Type.TObject<{
228
303
  type: Type.TLiteral<"score">;
229
304
  instructions: Type.TString;
230
- /** Levels, lowest first and 0-indexed. */
231
305
  criteria: Type.TArray<Type.TString>;
232
306
  }>]>>>;
233
307
  /** Where the content comes from. Defaults to the spec's `source`. */
@@ -257,10 +331,17 @@ export declare const TOOL_SCHEMAS: {
257
331
  staged: Type.TOptional<Type.TBoolean>;
258
332
  paths: Type.TOptional<Type.TArray<Type.TString>>;
259
333
  }>]>>>;
334
+ /**
335
+ * Leave out paths matching these globs (repo-relative, like `glob`). A per-call
336
+ * choice, reported as `filtered`; egress excludes still apply on top.
337
+ */
338
+ exclude: Type.TOptional<Type.TArray<Type.TString>>;
260
339
  /** `file` | `hunk` | `row` | `lines:N[/overlap]`. */
261
340
  split: Type.TOptional<Type.TString>;
262
341
  /** Filters, ANDed: `relevant>=0.7`, `kind in fix,feature`. */
263
342
  keep: Type.TOptional<Type.TArray<Type.TString>>;
343
+ /** Kept when any of these matches (and every `keep` does): `a>=0.3`, `b>=0.3`. */
344
+ keepAny: Type.TOptional<Type.TArray<Type.TString>>;
264
345
  mode: Type.TOptional<Type.TUnion<[Type.TLiteral<"auto">, Type.TLiteral<"live">, Type.TLiteral<"record">, Type.TLiteral<"replay">]>>;
265
346
  model: Type.TOptional<Type.TString>;
266
347
  /**
@@ -293,6 +374,68 @@ export declare const TOOL_SCHEMAS: {
293
374
  /** Proceed past the spend guard. */
294
375
  confirm: Type.TOptional<Type.TBoolean>;
295
376
  }>;
377
+ readonly "spec-lint": Type.TObject<{
378
+ /** Spec name (repo → user → bundled) or path. Omitted: every spec in reach. */
379
+ spec: Type.TOptional<Type.TString>;
380
+ }>;
381
+ readonly "opportunities-add": Type.TObject<{
382
+ /** Candidates to merge into `.system1/opportunities.json`. */
383
+ candidates: Type.TArray<Type.TObject<{
384
+ mode: Type.TUnion<[Type.TLiteral<"code">, Type.TLiteral<"agents">]>;
385
+ location: Type.TObject<{
386
+ path: Type.TString;
387
+ lines: Type.TOptional<Type.TObject<{
388
+ start: Type.TInteger;
389
+ end: Type.TInteger;
390
+ }>>;
391
+ }>;
392
+ mechanism: Type.TString;
393
+ shape: Type.TUnion<[Type.TLiteral<"single">, Type.TLiteral<"fanout">, Type.TLiteral<"cascade">, Type.TLiteral<"pairwise">]>;
394
+ evidence: Type.TString;
395
+ questions: Type.TRecord<"^.*$", Type.TUnion<[Type.TObject<{
396
+ type: Type.TLiteral<"noul">;
397
+ instructions: Type.TString;
398
+ criteria: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
399
+ }>, Type.TObject<{
400
+ type: Type.TLiteral<"choice">;
401
+ instructions: Type.TString;
402
+ criteria: Type.TRecord<"^.*$", Type.TString>;
403
+ }>, Type.TObject<{
404
+ type: Type.TLiteral<"score">;
405
+ instructions: Type.TString;
406
+ criteria: Type.TArray<Type.TString>;
407
+ }>]>>;
408
+ benefit: Type.TUnion<[Type.TLiteral<"cost">, Type.TLiteral<"quality">, Type.TLiteral<"latency">]>;
409
+ projected: Type.TObject<{
410
+ volume: Type.TNumber;
411
+ per: Type.TString;
412
+ currentCostPerItemUsd: Type.TNumber;
413
+ decisionCostPerItemUsd: Type.TNumber;
414
+ note: Type.TOptional<Type.TString>;
415
+ }>;
416
+ risk: Type.TObject<{
417
+ level: Type.TUnion<[Type.TLiteral<"low">, Type.TLiteral<"medium">, Type.TLiteral<"high">]>;
418
+ note: Type.TString;
419
+ }>;
420
+ next: Type.TString;
421
+ status: Type.TOptional<Type.TUnion<[Type.TLiteral<"new">, Type.TLiteral<"stale">, Type.TLiteral<"adopted">, Type.TLiteral<"rejected">]>>;
422
+ statusReason: Type.TOptional<Type.TString>;
423
+ source: Type.TObject<{
424
+ sweep: Type.TString;
425
+ answers: Type.TUnion<[Type.TLiteral<"live">, Type.TLiteral<"replay">]>;
426
+ }>;
427
+ }>>;
428
+ }>;
429
+ readonly "opportunities-list": Type.TObject<{
430
+ /** Record filters, ANDed: `status=new`, `risk in medium,high`, `projected>=0.01`. */
431
+ keep: Type.TOptional<Type.TArray<Type.TString>>;
432
+ /** `projected:desc` (the default), `seenAt:asc`, … */
433
+ sort: Type.TOptional<Type.TString>;
434
+ limit: Type.TOptional<Type.TInteger>;
435
+ /** Top-level fields to include per entry; `id` always is. */
436
+ fields: Type.TOptional<Type.TArray<Type.TString>>;
437
+ }>;
438
+ readonly "opportunities-check": Type.TObject<{}>;
296
439
  readonly route: Type.TObject<{
297
440
  /** The user's prompt, as the harness hook received it. */
298
441
  prompt: Type.TString;