@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.
- package/dist/config/consent.d.ts.map +1 -1
- package/dist/config/consent.js +4 -2
- package/dist/config/consent.js.map +1 -1
- package/dist/config/load.d.ts +11 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +139 -28
- package/dist/config/load.js.map +1 -1
- package/dist/egress/scrub.d.ts.map +1 -1
- package/dist/egress/scrub.js +16 -0
- package/dist/egress/scrub.js.map +1 -1
- package/dist/egress/size.d.ts +5 -0
- package/dist/egress/size.d.ts.map +1 -1
- package/dist/egress/size.js +5 -0
- package/dist/egress/size.js.map +1 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/model/profiles.d.ts +19 -1
- package/dist/model/profiles.d.ts.map +1 -1
- package/dist/model/profiles.js +16 -2
- package/dist/model/profiles.js.map +1 -1
- package/dist/model/schema.d.ts +22 -0
- package/dist/model/schema.d.ts.map +1 -0
- package/dist/model/schema.js +26 -0
- package/dist/model/schema.js.map +1 -0
- package/dist/model/validate.d.ts.map +1 -1
- package/dist/model/validate.js +6 -0
- package/dist/model/validate.js.map +1 -1
- package/dist/opportunities/backlog.d.ts +280 -0
- package/dist/opportunities/backlog.d.ts.map +1 -0
- package/dist/opportunities/backlog.js +393 -0
- package/dist/opportunities/backlog.js.map +1 -0
- package/dist/prepare.d.ts +8 -0
- package/dist/prepare.d.ts.map +1 -1
- package/dist/prepare.js +42 -6
- package/dist/prepare.js.map +1 -1
- package/dist/project/project.d.ts +36 -0
- package/dist/project/project.d.ts.map +1 -1
- package/dist/project/project.js +64 -18
- package/dist/project/project.js.map +1 -1
- package/dist/run/budget.d.ts +10 -0
- package/dist/run/budget.d.ts.map +1 -1
- package/dist/run/budget.js +20 -1
- package/dist/run/budget.js.map +1 -1
- package/dist/sources/filter.d.ts +19 -0
- package/dist/sources/filter.d.ts.map +1 -0
- package/dist/sources/filter.js +30 -0
- package/dist/sources/filter.js.map +1 -0
- package/dist/sources/read.d.ts +10 -0
- package/dist/sources/read.d.ts.map +1 -1
- package/dist/sources/read.js +7 -2
- package/dist/sources/read.js.map +1 -1
- package/dist/sources/types.d.ts +2 -2
- package/dist/sources/types.d.ts.map +1 -1
- package/dist/spec/lint.d.ts +35 -0
- package/dist/spec/lint.d.ts.map +1 -0
- package/dist/spec/lint.js +175 -0
- package/dist/spec/lint.js.map +1 -0
- package/dist/spec/spec.d.ts +2 -0
- package/dist/spec/spec.d.ts.map +1 -1
- package/dist/spec/spec.js +11 -9
- package/dist/spec/spec.js.map +1 -1
- package/dist/tools/ask.d.ts.map +1 -1
- package/dist/tools/ask.js +10 -13
- package/dist/tools/ask.js.map +1 -1
- package/dist/tools/context.d.ts +9 -1
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +24 -0
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/doctor.d.ts +1 -1
- package/dist/tools/doctor.d.ts.map +1 -1
- package/dist/tools/doctor.js +46 -3
- package/dist/tools/doctor.js.map +1 -1
- package/dist/tools/many.d.ts.map +1 -1
- package/dist/tools/many.js +3 -0
- package/dist/tools/many.js.map +1 -1
- package/dist/tools/opportunities.d.ts +33 -0
- package/dist/tools/opportunities.d.ts.map +1 -0
- package/dist/tools/opportunities.js +74 -0
- package/dist/tools/opportunities.js.map +1 -0
- package/dist/tools/schemas.d.ts +155 -12
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +32 -25
- package/dist/tools/schemas.js.map +1 -1
- package/dist/tools/spec-check.d.ts +6 -0
- package/dist/tools/spec-check.d.ts.map +1 -1
- package/dist/tools/spec-check.js +6 -3
- package/dist/tools/spec-check.js.map +1 -1
- package/dist/tools/spec-lint.d.ts +31 -0
- package/dist/tools/spec-lint.d.ts.map +1 -0
- package/dist/tools/spec-lint.js +53 -0
- package/dist/tools/spec-lint.js.map +1 -0
- package/dist/transport/openrouter.d.ts +4 -1
- package/dist/transport/openrouter.d.ts.map +1 -1
- package/dist/transport/openrouter.js +5 -2
- package/dist/transport/openrouter.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/wiring.d.ts +1 -1
- package/dist/wiring.d.ts.map +1 -1
- package/dist/wiring.js +1 -1
- package/dist/wiring.js.map +1 -1
- package/package.json +1 -1
package/dist/tools/schemas.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Type } from "typebox";
|
|
2
|
+
import { QuestionSchema } from "../model/schema.js";
|
|
3
|
+
import { CandidateSchema } from "../opportunities/backlog.js";
|
|
2
4
|
/**
|
|
3
5
|
* Tool inputs, defined once. The CLI builds these from argv. A future MCP or Pi
|
|
4
6
|
* adapter would take them directly, and `decide schema <tool>` prints them.
|
|
@@ -24,30 +26,6 @@ const Source = Type.Union([
|
|
|
24
26
|
paths: Type.Optional(Type.Array(Type.String())),
|
|
25
27
|
}),
|
|
26
28
|
]);
|
|
27
|
-
/**
|
|
28
|
-
* A question, as it goes on the wire. Spelled out here (rather than an opaque
|
|
29
|
-
* record) so `decide schema <tool>` describes what a valid question is.
|
|
30
|
-
*/
|
|
31
|
-
const Question = Type.Union([
|
|
32
|
-
Type.Object({
|
|
33
|
-
type: Type.Literal("noul"),
|
|
34
|
-
instructions: Type.String({ minLength: 1 }),
|
|
35
|
-
/** Optional `true`/`false` criteria that sharpen an ambiguous statement. */
|
|
36
|
-
criteria: Type.Optional(Type.Record(Type.String(), Type.String())),
|
|
37
|
-
}, { additionalProperties: false }),
|
|
38
|
-
Type.Object({
|
|
39
|
-
type: Type.Literal("choice"),
|
|
40
|
-
instructions: Type.String({ minLength: 1 }),
|
|
41
|
-
/** Option key to when it applies. At least two, including a way out. */
|
|
42
|
-
criteria: Type.Record(Type.String(), Type.String(), { minProperties: 2 }),
|
|
43
|
-
}, { additionalProperties: false }),
|
|
44
|
-
Type.Object({
|
|
45
|
-
type: Type.Literal("score"),
|
|
46
|
-
instructions: Type.String({ minLength: 1 }),
|
|
47
|
-
/** Levels, lowest first and 0-indexed. */
|
|
48
|
-
criteria: Type.Array(Type.String(), { minItems: 2 }),
|
|
49
|
-
}, { additionalProperties: false }),
|
|
50
|
-
]);
|
|
51
29
|
const Mode = Type.Union([
|
|
52
30
|
Type.Literal("auto"),
|
|
53
31
|
Type.Literal("live"),
|
|
@@ -58,13 +36,20 @@ const Common = {
|
|
|
58
36
|
/** A saved spec: name (repo → user → bundled) or path. */
|
|
59
37
|
spec: Type.Optional(Type.String()),
|
|
60
38
|
/** An inline question set; mutually exclusive with `spec`. */
|
|
61
|
-
questions: Type.Optional(Type.Record(Type.String(),
|
|
39
|
+
questions: Type.Optional(Type.Record(Type.String(), QuestionSchema)),
|
|
62
40
|
/** Where the content comes from. Defaults to the spec's `source`. */
|
|
63
41
|
sources: Type.Optional(Type.Array(Source)),
|
|
42
|
+
/**
|
|
43
|
+
* Leave out paths matching these globs (repo-relative, like `glob`). A per-call
|
|
44
|
+
* choice, reported as `filtered`; egress excludes still apply on top.
|
|
45
|
+
*/
|
|
46
|
+
exclude: Type.Optional(Type.Array(Type.String({ minLength: 1 }))),
|
|
64
47
|
/** `file` | `hunk` | `row` | `lines:N[/overlap]`. */
|
|
65
48
|
split: Type.Optional(Type.String()),
|
|
66
49
|
/** Filters, ANDed: `relevant>=0.7`, `kind in fix,feature`. */
|
|
67
50
|
keep: Type.Optional(Type.Array(Type.String())),
|
|
51
|
+
/** Kept when any of these matches (and every `keep` does): `a>=0.3`, `b>=0.3`. */
|
|
52
|
+
keepAny: Type.Optional(Type.Array(Type.String())),
|
|
68
53
|
mode: Type.Optional(Mode),
|
|
69
54
|
model: Type.Optional(Type.String()),
|
|
70
55
|
/**
|
|
@@ -103,6 +88,24 @@ export const SpecCheckInput = Type.Object({
|
|
|
103
88
|
/** Proceed past the spend guard. */
|
|
104
89
|
confirm: Type.Optional(Type.Boolean()),
|
|
105
90
|
}, strict);
|
|
91
|
+
export const SpecLintInput = Type.Object({
|
|
92
|
+
/** Spec name (repo → user → bundled) or path. Omitted: every spec in reach. */
|
|
93
|
+
spec: Type.Optional(Type.String({ minLength: 1 })),
|
|
94
|
+
}, strict);
|
|
95
|
+
export const OpportunitiesAddInput = Type.Object({
|
|
96
|
+
/** Candidates to merge into `.system1/opportunities.json`. */
|
|
97
|
+
candidates: Type.Array(CandidateSchema, { minItems: 1 }),
|
|
98
|
+
}, strict);
|
|
99
|
+
export const OpportunitiesListInput = Type.Object({
|
|
100
|
+
/** Record filters, ANDed: `status=new`, `risk in medium,high`, `projected>=0.01`. */
|
|
101
|
+
keep: Type.Optional(Type.Array(Type.String())),
|
|
102
|
+
/** `projected:desc` (the default), `seenAt:asc`, … */
|
|
103
|
+
sort: Type.Optional(Type.String()),
|
|
104
|
+
limit: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
105
|
+
/** Top-level fields to include per entry; `id` always is. */
|
|
106
|
+
fields: Type.Optional(Type.Array(Type.String())),
|
|
107
|
+
}, strict);
|
|
108
|
+
export const OpportunitiesCheckInput = Type.Object({}, strict);
|
|
106
109
|
export const RouteInput = Type.Object({
|
|
107
110
|
/** The user's prompt, as the harness hook received it. */
|
|
108
111
|
prompt: Type.String(),
|
|
@@ -112,6 +115,10 @@ export const TOOL_SCHEMAS = {
|
|
|
112
115
|
many: ManyInput,
|
|
113
116
|
usage: UsageInput,
|
|
114
117
|
"spec-check": SpecCheckInput,
|
|
118
|
+
"spec-lint": SpecLintInput,
|
|
119
|
+
"opportunities-add": OpportunitiesAddInput,
|
|
120
|
+
"opportunities-list": OpportunitiesListInput,
|
|
121
|
+
"opportunities-check": OpportunitiesCheckInput,
|
|
115
122
|
route: RouteInput,
|
|
116
123
|
};
|
|
117
124
|
//# sourceMappingURL=schemas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Answers, Usage } from "../model/types.js";
|
|
2
2
|
import { type AnswerSource } from "../run/spend.js";
|
|
3
|
+
import { type LintFinding } from "../spec/lint.js";
|
|
3
4
|
import { type ToolContext } from "./context.js";
|
|
4
5
|
import { type SkippedSummary } from "./many.js";
|
|
5
6
|
export type ExampleStatus = "pass" | "fail" | "undecided" | "captured" | "withheld";
|
|
@@ -35,6 +36,11 @@ export interface SpecCheckResult {
|
|
|
35
36
|
examples: ExampleResult[];
|
|
36
37
|
usage: Usage;
|
|
37
38
|
skipped: SkippedSummary;
|
|
39
|
+
/**
|
|
40
|
+
* `spec lint` findings, run first and offline. Reported only: `passed` and
|
|
41
|
+
* `--strict` still judge the examples alone.
|
|
42
|
+
*/
|
|
43
|
+
lint: LintFinding[];
|
|
38
44
|
}
|
|
39
45
|
/**
|
|
40
46
|
* Run a spec's examples and compare each against its `expect`. Replay by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-check.d.ts","sourceRoot":"","sources":["../../src/tools/spec-check.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGvD,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"spec-check.d.ts","sourceRoot":"","sources":["../../src/tools/spec-check.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGvD,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,iBAAiB,CAAA;AAI7D,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,iBAAiB,CAAA;AAG5D,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,KAAK,cAAc,EAAoB,MAAM,WAAW,CAAA;AAGjE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAA;AAEnF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV;;;;;;OAMG;IACH,MAAM,EAAE,aAAa,CAAA;IACrB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,YAAY,CAAA;IACpB,6EAA6E;IAC7E,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5D,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,KAAK,EAAE,KAAK,CAAA;IACZ,OAAO,EAAE,cAAc,CAAA;IACvB;;;OAGG;IACH,IAAI,EAAE,WAAW,EAAE,CAAA;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CA8HhG"}
|
package/dist/tools/spec-check.js
CHANGED
|
@@ -3,10 +3,11 @@ import { allProfiles } from "../config/load.js";
|
|
|
3
3
|
import { DecisionsError, isDecisionsError } from "../errors.js";
|
|
4
4
|
import { resolveProfile } from "../model/profiles.js";
|
|
5
5
|
import { prepare } from "../prepare.js";
|
|
6
|
-
import { checkBudget,
|
|
6
|
+
import { checkBudget, combineProjections } from "../run/budget.js";
|
|
7
7
|
import { sumUsage } from "../run/spend.js";
|
|
8
8
|
import { parseFileRef } from "../sources/read.js";
|
|
9
9
|
import { describeExpectation, meets, parseExpect } from "../spec/expect.js";
|
|
10
|
+
import { lintSpec } from "../spec/lint.js";
|
|
10
11
|
import { assertExamples, exampleFileProblem, loadSpec } from "../spec/spec.js";
|
|
11
12
|
import { parseSplit } from "../split/split.js";
|
|
12
13
|
import { checkInput, deciderFor } from "./context.js";
|
|
@@ -22,6 +23,7 @@ import { summariseSkipped } from "./many.js";
|
|
|
22
23
|
export async function runSpecCheck(ctx, rawInput) {
|
|
23
24
|
const input = checkInput("spec-check", rawInput);
|
|
24
25
|
const spec = loadSpec(input.spec, ctx.specDirs, ctx.cwd);
|
|
26
|
+
const lint = lintSpec(spec);
|
|
25
27
|
const examples = spec.examples ?? [];
|
|
26
28
|
if (examples.length === 0) {
|
|
27
29
|
throw new DecisionsError("invalid-request", `Spec "${spec.name}" has no examples to check. Add some under examples: (id, state or file, expect).`);
|
|
@@ -77,8 +79,8 @@ export async function runSpecCheck(ctx, rawInput) {
|
|
|
77
79
|
const decider = deciderFor(ctx, profile, input.mode ?? "replay");
|
|
78
80
|
if (decider.mode !== "replay") {
|
|
79
81
|
assertConsent(ctx.config.egress.consent, root);
|
|
80
|
-
const
|
|
81
|
-
checkBudget(
|
|
82
|
+
const parts = prepared.flatMap((p) => (p.prep ? [p.prep.projection] : []));
|
|
83
|
+
checkBudget(combineProjections(profile, parts), ctx.config.budget, input.confirm ?? false);
|
|
82
84
|
}
|
|
83
85
|
const results = [];
|
|
84
86
|
const usages = [];
|
|
@@ -129,6 +131,7 @@ export async function runSpecCheck(ctx, rawInput) {
|
|
|
129
131
|
examples: results,
|
|
130
132
|
usage: sumUsage(usages),
|
|
131
133
|
skipped: summariseSkipped(prepared.flatMap((p) => p.prep?.skipped ?? [])),
|
|
134
|
+
lint,
|
|
132
135
|
};
|
|
133
136
|
}
|
|
134
137
|
function judge(id, answers, flat, expect) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-check.js","sourceRoot":"","sources":["../../src/tools/spec-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAiB,OAAO,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"spec-check.js","sourceRoot":"","sources":["../../src/tools/spec-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type LintFinding } from "../spec/lint.js";
|
|
2
|
+
import { type Spec } from "../spec/spec.js";
|
|
3
|
+
import { type ToolContext } from "./context.js";
|
|
4
|
+
export interface SpecLintEntry {
|
|
5
|
+
name: string;
|
|
6
|
+
file: string;
|
|
7
|
+
origin: Spec["origin"];
|
|
8
|
+
findings: LintFinding[];
|
|
9
|
+
/** Set when the spec doesn't parse: it can't be linted until it does. */
|
|
10
|
+
invalid?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface SpecLintResult {
|
|
13
|
+
specs: SpecLintEntry[];
|
|
14
|
+
counts: {
|
|
15
|
+
specs: number;
|
|
16
|
+
errors: number;
|
|
17
|
+
warnings: number;
|
|
18
|
+
invalid: number;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* No errors and no invalid specs. Warnings don't fail it; `--strict` makes
|
|
22
|
+
* them fail too (exit 7).
|
|
23
|
+
*/
|
|
24
|
+
passed: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Lint one spec, or every spec in reach (repo, user, bundled). Offline: no key,
|
|
28
|
+
* no consent, no egress. A finding is a result, not an error.
|
|
29
|
+
*/
|
|
30
|
+
export declare function runSpecLint(ctx: ToolContext, rawInput?: unknown): SpecLintResult;
|
|
31
|
+
//# sourceMappingURL=spec-lint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-lint.d.ts","sourceRoot":"","sources":["../../src/tools/spec-lint.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAG3D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5E;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAA;CAChB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,GAAE,OAAY,GAAG,cAAc,CAoBpF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { basename, extname } from "node:path";
|
|
2
|
+
import { isDecisionsError } from "../errors.js";
|
|
3
|
+
import { lintSpec } from "../spec/lint.js";
|
|
4
|
+
import { listSpecs, loadSpec } from "../spec/spec.js";
|
|
5
|
+
import { checkInput } from "./context.js";
|
|
6
|
+
/**
|
|
7
|
+
* Lint one spec, or every spec in reach (repo, user, bundled). Offline: no key,
|
|
8
|
+
* no consent, no egress. A finding is a result, not an error.
|
|
9
|
+
*/
|
|
10
|
+
export function runSpecLint(ctx, rawInput = {}) {
|
|
11
|
+
const input = checkInput("spec-lint", rawInput);
|
|
12
|
+
const specs = input.spec
|
|
13
|
+
? [named(ctx, input.spec)]
|
|
14
|
+
: listSpecs(ctx.specDirs)
|
|
15
|
+
.filter((s) => !s.shadowed)
|
|
16
|
+
.map((s) => s.error
|
|
17
|
+
? { name: s.name, file: s.file, origin: s.origin, findings: [], invalid: s.error }
|
|
18
|
+
: // Loaded by path, so keep the layer it was listed from.
|
|
19
|
+
{ ...entry(loadSpec(s.file, ctx.specDirs, ctx.cwd)), origin: s.origin });
|
|
20
|
+
const all = specs.flatMap((s) => s.findings);
|
|
21
|
+
const counts = {
|
|
22
|
+
specs: specs.length,
|
|
23
|
+
errors: all.filter((f) => f.severity === "error").length,
|
|
24
|
+
warnings: all.filter((f) => f.severity === "warning").length,
|
|
25
|
+
invalid: specs.filter((s) => s.invalid).length,
|
|
26
|
+
};
|
|
27
|
+
return { specs, counts, passed: counts.errors === 0 && counts.invalid === 0 };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A named spec that exists but doesn't parse is an `invalid` entry (exit 7),
|
|
31
|
+
* as it is when linting every spec. One that can't be found is still an error.
|
|
32
|
+
*/
|
|
33
|
+
function named(ctx, ref) {
|
|
34
|
+
try {
|
|
35
|
+
return entry(loadSpec(ref, ctx.specDirs, ctx.cwd));
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
const file = isDecisionsError(error) ? error.details?.file : undefined;
|
|
39
|
+
if (typeof file !== "string")
|
|
40
|
+
throw error;
|
|
41
|
+
return {
|
|
42
|
+
name: basename(file, extname(file)),
|
|
43
|
+
file,
|
|
44
|
+
origin: "path",
|
|
45
|
+
findings: [],
|
|
46
|
+
invalid: error.message,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function entry(spec) {
|
|
51
|
+
return { name: spec.name, file: spec.file, origin: spec.origin, findings: lintSpec(spec) };
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=spec-lint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-lint.js","sourceRoot":"","sources":["../../src/tools/spec-lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { DecisionRequest, DecisionResponse } from "../model/types.js";
|
|
2
2
|
export declare const DEFAULT_ENDPOINT = "https://openrouter.ai/api/alpha/decisions";
|
|
3
3
|
export declare const DEFAULT_TIMEOUT_MS = 5000;
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Statuses worth another attempt: timeouts, rate limits and upstream hiccups.
|
|
6
|
+
* 529 is the provider's `system_overloaded`, seen on 2.9% of a 385-item sweep.
|
|
7
|
+
*/
|
|
5
8
|
export declare const RETRY_STATUSES: ReadonlySet<number>;
|
|
6
9
|
export interface TransportOptions {
|
|
7
10
|
/** OpenRouter's decisions endpoint. An alpha path, so overridable. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/transport/openrouter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAG1E,eAAO,MAAM,gBAAgB,8CAA8C,CAAA;AAE3E,eAAO,MAAM,kBAAkB,OAAQ,CAAA;AAEvC
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/transport/openrouter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAG1E,eAAO,MAAM,gBAAgB,8CAA8C,CAAA;AAE3E,eAAO,MAAM,kBAAkB,OAAQ,CAAA;AAEvC;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAE7C,CAAA;AAEF,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;CACjF;AAID;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CA6E9E"}
|
|
@@ -2,9 +2,12 @@ import { ProviderError } from "../errors.js";
|
|
|
2
2
|
import { parseDecisionResponse } from "../model/validate.js";
|
|
3
3
|
export const DEFAULT_ENDPOINT = "https://openrouter.ai/api/alpha/decisions";
|
|
4
4
|
export const DEFAULT_TIMEOUT_MS = 5_000;
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Statuses worth another attempt: timeouts, rate limits and upstream hiccups.
|
|
7
|
+
* 529 is the provider's `system_overloaded`, seen on 2.9% of a 385-item sweep.
|
|
8
|
+
*/
|
|
6
9
|
export const RETRY_STATUSES = new Set([
|
|
7
|
-
408, 429, 500, 502, 503, 504, 520, 521, 522, 524,
|
|
10
|
+
408, 429, 500, 502, 503, 504, 520, 521, 522, 524, 529,
|
|
8
11
|
]);
|
|
9
12
|
const defaultSleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
10
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/transport/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,2CAA2C,CAAA;AAE3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAEvC
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/transport/openrouter.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// GENERATED — DO NOT EDIT (source: catalog.yaml, via tools/generate.ts)
|
|
2
|
-
export const VERSION = "0.
|
|
2
|
+
export const VERSION = "0.4.0";
|
|
3
3
|
/** The npm package that provides `decide`. */
|
|
4
4
|
export const CLI_PACKAGE = "@garygentry/system1";
|
|
5
5
|
//# sourceMappingURL=version.js.map
|
package/dist/wiring.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export interface ConnectionConfig {
|
|
|
16
16
|
/** `SYSTEM1_REPLAY` forces replay even when a key is present. */
|
|
17
17
|
replay: boolean;
|
|
18
18
|
}
|
|
19
|
-
/** Env-only connection settings
|
|
19
|
+
/** Env-only connection settings: what `ping` falls back to when the config files fail to load. */
|
|
20
20
|
export declare function resolveConnection(env?: NodeJS.ProcessEnv): ConnectionConfig;
|
|
21
21
|
export interface EnvDeciderOptions {
|
|
22
22
|
cwd?: string;
|
package/dist/wiring.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAKtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,eAAO,MAAM,aAAa,sBAAmB,CAAA;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,iEAAiE;IACjE,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,
|
|
1
|
+
{"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAKtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,eAAO,MAAM,aAAa,sBAAmB,CAAA;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,iEAAiE;IACjE,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,gBAAgB,CAOxF;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CACrB;AAED,6DAA6D;AAC7D,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAG7E"}
|
package/dist/wiring.js
CHANGED
|
@@ -11,7 +11,7 @@ import { DEFAULT_ENDPOINT } from "./transport/openrouter.js";
|
|
|
11
11
|
export { stateDir } from "./config/load.js";
|
|
12
12
|
export { DEFAULT_ENDPOINT } from "./transport/openrouter.js";
|
|
13
13
|
export const DEFAULT_MODEL = DEFAULT_MODEL_ID;
|
|
14
|
-
/** Env-only connection settings
|
|
14
|
+
/** Env-only connection settings: what `ping` falls back to when the config files fail to load. */
|
|
15
15
|
export function resolveConnection(env = process.env) {
|
|
16
16
|
return {
|
|
17
17
|
endpoint: nonEmpty(env.SYSTEM1_ENDPOINT) ?? DEFAULT_ENDPOINT,
|
package/dist/wiring.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiring.js","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAA;AAW7C,
|
|
1
|
+
{"version":3,"file":"wiring.js","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAA;AAW7C,kGAAkG;AAClG,MAAM,UAAU,iBAAiB,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG;IACpE,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,gBAAgB;QAC5D,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,aAAa;QACnD,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACxC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;KACzD,CAAA;AACH,CAAC;AAUD,6DAA6D;AAC7D,MAAM,UAAU,oBAAoB,CAAC,OAAO,GAAsB,EAAE;IAClE,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAClC,OAAO,UAAU,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;AACjG,CAAC;AAED,SAAS,QAAQ,CAAC,KAAyB;IACzC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;AAC9E,CAAC"}
|