@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
@@ -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";
@@ -18,11 +20,13 @@ import { createContext } from "./context.js";
18
20
  export const DOCTOR_CHECKS = [
19
21
  "cli",
20
22
  "config",
23
+ "config-keys",
21
24
  "path",
22
25
  "path-version",
23
26
  "key",
24
27
  "consent",
25
28
  "route",
29
+ "backlog",
26
30
  "network",
27
31
  ];
28
32
  /**
@@ -55,6 +59,34 @@ function routeCheck(config) {
55
59
  };
56
60
  }
57
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
+ }
58
90
  export const CODEX_RULE = 'prefix_rule(pattern = ["decide"], decision = "allow")';
59
91
  export async function runDoctor(options) {
60
92
  const { env } = options;
@@ -94,6 +126,14 @@ export async function runDoctor(options) {
94
126
  return report(undefined, false);
95
127
  }
96
128
  const { config } = ctx;
129
+ if (config.warnings.length > 0) {
130
+ checks.push({
131
+ name: "config-keys",
132
+ status: "warn",
133
+ detail: `ignored: ${config.warnings.join("; ")}`,
134
+ fix: "correct or remove these keys (docs/configuration.md lists every key)",
135
+ });
136
+ }
97
137
  checks.push(config.apiKey
98
138
  ? { name: "key", status: "ok", detail: `OPENROUTER_API_KEY present (${config.apiKeySource})` }
99
139
  : {
@@ -101,7 +141,7 @@ export async function runDoctor(options) {
101
141
  status: "warn",
102
142
  detail: "no API key: only replay works",
103
143
  // The file this shell would read: XDG_CONFIG_HOME moves it.
104
- fix: `set OPENROUTER_API_KEY, or write \`openrouter_api_key: <key>\` to ${join(userConfigDir(env, options.home), "credentials")} (chmod 600)`,
144
+ fix: `set OPENROUTER_API_KEY, or write \`openrouter_api_key: <key>\` to ${join(userConfigDir(env, options.home), "credentials")} (create its directory first; chmod 600)`,
105
145
  });
106
146
  checks.push(config.egress.consent.granted
107
147
  ? { name: "consent", status: "ok", detail: `egress consent granted for ${config.repoRoot}` }
@@ -109,9 +149,12 @@ export async function runDoctor(options) {
109
149
  name: "consent",
110
150
  status: "warn",
111
151
  detail: `no egress consent for ${config.repoRoot}: live calls are refused`,
112
- fix: "the user runs `decide config egress allow` in this repo, if they agree",
152
+ fix: "if the user agrees, they grant it themselves (an agent must not): " +
153
+ "`decide config egress allow` in a terminal in this repo, or through their agent " +
154
+ "prompt's shell escape (not as a chat message) with --confirm added",
113
155
  });
114
156
  checks.push(routeCheck(config.route));
157
+ checks.push(backlogCheck(config.repoRoot));
115
158
  let reach;
116
159
  try {
117
160
  reach = await ping({
@@ -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":"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"}
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;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AA8F3C,eAAO,MAAM,QAAQ;IAtBnB,0DAA0D;;IAE1D,8DAA8D;;;;QAnC1D,4EAA4E;;;;;QAS5E,wEAAwE;;;;;QASxE,0CAA0C;;;IAmB9C,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;;;;;IAErE,qDAAqD;;IAErD,8DAA8D;;;;IAI9D;;;OAGG;;EAO8C,CAAA;AAEnD,eAAO,MAAM,SAAS;IAxBpB,0DAA0D;;IAE1D,8DAA8D;;;;QAnC1D,4EAA4E;;;;;QAS5E,wEAAwE;;;;;QASxE,0CAA0C;;;IAmB9C,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;;;;;IAErE,qDAAqD;;IAErD,8DAA8D;;;;IAI9D;;;OAGG;;;;IAcD,2CAA2C;;IAE3C,8DAA8D;;IAE9D,oCAAoC;;;EAKvC,CAAA;AAED,eAAO,MAAM,UAAU;IAEnB,oEAAoE;;IAEpE,6BAA6B;;EAIhC,CAAA;AAED,eAAO,MAAM,cAAc;IAEvB,iDAAiD;;IAEjD,6FAA6F;;;IAG7F,oCAAoC;;EAIvC,CAAA;AAED,eAAO,MAAM,UAAU;IAEnB,0DAA0D;;EAI7D,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,QAAQ,CAAC,CAAA;AAC9C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,SAAS,CAAC,CAAA;AAChD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAA;AAClD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAA;AAC1D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAA;AAElD,eAAO,MAAM,YAAY;aACvB,GAAG;QA9EH,0DAA0D;;QAE1D,8DAA8D;;;;YAnC1D,4EAA4E;;;;;YAS5E,wEAAwE;;;;;YASxE,0CAA0C;;;QAmB9C,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;;;;;QAErE,qDAAqD;;QAErD,8DAA8D;;;;QAI9D;;;WAGG;;;aAgEH,IAAI;QA/EJ,0DAA0D;;QAE1D,8DAA8D;;;;YAnC1D,4EAA4E;;;;;YAS5E,wEAAwE;;;;;YASxE,0CAA0C;;;QAmB9C,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;;;;;QAErE,qDAAqD;;QAErD,8DAA8D;;;;QAI9D;;;WAGG;;;;QAcD,2CAA2C;;QAE3C,8DAA8D;;QAE9D,oCAAoC;;;;aA+CtC,KAAK;QAtCH,oEAAoE;;QAEpE,6BAA6B;;;aAqC/B,YAAY;QA7BV,iDAAiD;;QAEjD,6FAA6F;;;QAG7F,oCAAoC;;;aAyBtC,KAAK;QAjBH,0DAA0D;;;CAkBpD,CAAA;AACV,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,YAAY,CAAA"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}