@garygentry/system1-core 0.3.2 → 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/egress/scrub.d.ts.map +1 -1
- package/dist/egress/scrub.js +16 -0
- package/dist/egress/scrub.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/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/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/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 +3 -1
- 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 +5 -0
- 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 +33 -1
- 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 +3 -0
- 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/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrub.d.ts","sourceRoot":"","sources":["../../src/egress/scrub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"scrub.d.ts","sourceRoot":"","sources":["../../src/egress/scrub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AA4E3D,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEhD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,WAAgB,GAAG,MAAM,CASxE;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,GAAE,WAAgB,GAAG,KAAK,CAExE;AAwBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,GAAE,WAAgB,GAAG,WAAW,CAW5F"}
|
package/dist/egress/scrub.js
CHANGED
|
@@ -16,6 +16,13 @@ const RULES = [
|
|
|
16
16
|
{ kind: "slack-token", pattern: /\bxox[baprs]-[A-Za-z0-9-]{10,}\b/g },
|
|
17
17
|
{ kind: "stripe-key", pattern: /\b[rs]k_(?:live|test)_[A-Za-z0-9]{16,}\b/g },
|
|
18
18
|
{ kind: "google-api-key", pattern: /\bAIza[0-9A-Za-z_-]{35}\b/g },
|
|
19
|
+
// Service tokens with a known prefix and separator, whatever they are
|
|
20
|
+
// assigned to (MCP server env blocks name them freely: NOTION_INTEGRATION,
|
|
21
|
+
// HONEYCOMB_WRITEKEY).
|
|
22
|
+
{
|
|
23
|
+
kind: "service-token",
|
|
24
|
+
pattern: /\b(?:secret_|ntn_|glpat-|npm_|pypi-|shpat_|shpss_|dop_v1_|hcaik_|hcxik_|sntrys_|lin_api_|figd_|xapp-)[A-Za-z0-9_]{20,}\b/g,
|
|
25
|
+
},
|
|
19
26
|
{ kind: "jwt", pattern: /\beyJ[A-Za-z0-9_-]{8,}\.eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\b/g },
|
|
20
27
|
{ kind: "url-credentials", pattern: /(?<=\b[a-z][a-z0-9+.-]*:\/\/[^\s:/@]+:)[^\s@/]{3,}(?=@)/gi },
|
|
21
28
|
// NAME = "literal": a quoted value of 8+ chars assigned to a secret-sounding name.
|
|
@@ -30,6 +37,15 @@ const RULES = [
|
|
|
30
37
|
kind: "assigned-secret",
|
|
31
38
|
pattern: new RegExp(`(?<=\\b${SECRET_NAME}\\s*[:=]\\s*)(?!\\$\\{|<|\\[REDACTED)(?=[A-Za-z_\\-+/=~]*\\d)[A-Za-z0-9_\\-+/=~]{8,}(?![\\w(.])`, "gi"),
|
|
32
39
|
},
|
|
40
|
+
// ENV_NAME: "value" in upper-case environment style, ending in a credential
|
|
41
|
+
// word (API_WRITEKEY, SERVICE_PAT). Case-sensitive, and the value must look
|
|
42
|
+
// like a credential (12+ characters, letters and digits, no dots or colons),
|
|
43
|
+
// so UI constants (`PROBE_KEY = "pulse:probe"`) and code are left alone.
|
|
44
|
+
// Last, so a value an earlier rule already caught keeps that rule's name.
|
|
45
|
+
{
|
|
46
|
+
kind: "env-secret",
|
|
47
|
+
pattern: /(?<=\b[A-Z][A-Z0-9_]*(?:KEY|TOKEN|SECRET|PASSWORD|PASS|PAT|CREDENTIALS?)["']?\s*[:=]\s*["']?)(?!\$\{|<|\[REDACTED)(?=[A-Za-z0-9_\-+/=~]*\d)(?=[A-Za-z0-9_\-+/=~]*[A-Za-z])[A-Za-z0-9_\-+/=~]{12,}(?=["'\s,}]|$)/gm,
|
|
48
|
+
},
|
|
33
49
|
];
|
|
34
50
|
export function scrubText(text, counts = {}) {
|
|
35
51
|
let out = text;
|
package/dist/egress/scrub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrub.js","sourceRoot":"","sources":["../../src/egress/scrub.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scrub.js","sourceRoot":"","sources":["../../src/egress/scrub.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export type { ModelProfile } from "./model/profiles.js";
|
|
|
18
18
|
export { DEFAULT_MODEL_ID, PROFILES, projectCost, resolveProfile } from "./model/profiles.js";
|
|
19
19
|
export type * from "./model/types.js";
|
|
20
20
|
export { assertQuestionSet, parseDecisionResponse } from "./model/validate.js";
|
|
21
|
+
export type { Backlog, Candidate, Opportunity, OpportunityStatus } from "./opportunities/backlog.js";
|
|
22
|
+
export { BACKLOG_FORMAT, BacklogSchema, backlogPath, backlogProblems, CandidateSchema, opportunityId, projectedSaving, } from "./opportunities/backlog.js";
|
|
21
23
|
export type { PingOptions, PingResult } from "./ping.js";
|
|
22
24
|
export { ping, probeUrl } from "./ping.js";
|
|
23
25
|
export type { Prepared, PrepareInput } from "./prepare.js";
|
|
@@ -31,10 +33,14 @@ export { checkBudget, project } from "./run/budget.js";
|
|
|
31
33
|
export { mapWithConcurrency } from "./run/pool.js";
|
|
32
34
|
export type { AnswerSource, SpendEntry, SpendSummary } from "./run/spend.js";
|
|
33
35
|
export { SpendLedger, sumUsage } from "./run/spend.js";
|
|
36
|
+
export type { FilterResult } from "./sources/filter.js";
|
|
37
|
+
export { applyFilter } from "./sources/filter.js";
|
|
34
38
|
export { gitIgnored, parseFileRef, readSources, splitDiffByFile } from "./sources/read.js";
|
|
35
39
|
export type { Document, Item, LineRange, Skipped, SourceSpec } from "./sources/types.js";
|
|
36
40
|
export type { Expectation } from "./spec/expect.js";
|
|
37
41
|
export { describeExpectation, meets, parseExpect } from "./spec/expect.js";
|
|
42
|
+
export type { LintCheck, LintFinding, LintSeverity } from "./spec/lint.js";
|
|
43
|
+
export { LINT_CHECKS, LINT_SEVERITY, lintQuestions, lintSpec, lintStatement, } from "./spec/lint.js";
|
|
38
44
|
export type { Spec, SpecDirs, SpecFile, SpecListing } from "./spec/spec.js";
|
|
39
45
|
export { assertExamples, exampleProblems, listSpecs, loadSpec, parseQuestionSet, parseSpec, SpecSchema, specDirs, } from "./spec/spec.js";
|
|
40
46
|
export type { SplitSpec } from "./split/split.js";
|
|
@@ -47,12 +53,16 @@ export type { CheckStatus, DoctorCheck, DoctorOptions, DoctorResult } from "./to
|
|
|
47
53
|
export { CODEX_RULE, DOCTOR_CHECKS, runDoctor, which } from "./tools/doctor.js";
|
|
48
54
|
export type { ManyResult, ResultRow, SkippedSummary } from "./tools/many.js";
|
|
49
55
|
export { runMany, summariseSkipped } from "./tools/many.js";
|
|
56
|
+
export type { OpportunitiesAddResult, OpportunitiesCheckResult, OpportunitiesListResult, } from "./tools/opportunities.js";
|
|
57
|
+
export { runOpportunitiesAdd, runOpportunitiesCheck, runOpportunitiesList, } from "./tools/opportunities.js";
|
|
50
58
|
export type { RouteToolResult } from "./tools/route.js";
|
|
51
59
|
export { runRoute } from "./tools/route.js";
|
|
52
60
|
export type { ToolName } from "./tools/schemas.js";
|
|
53
|
-
export { AskInput, ManyInput, RouteInput, SpecCheckInput, TOOL_SCHEMAS, UsageInput, } from "./tools/schemas.js";
|
|
61
|
+
export { AskInput, ManyInput, OpportunitiesAddInput, OpportunitiesCheckInput, OpportunitiesListInput, RouteInput, SpecCheckInput, SpecLintInput, TOOL_SCHEMAS, UsageInput, } from "./tools/schemas.js";
|
|
54
62
|
export type { ExampleResult, ExampleStatus, SpecCheckResult } from "./tools/spec-check.js";
|
|
55
63
|
export { runSpecCheck } from "./tools/spec-check.js";
|
|
64
|
+
export type { SpecLintEntry, SpecLintResult } from "./tools/spec-lint.js";
|
|
65
|
+
export { runSpecLint } from "./tools/spec-lint.js";
|
|
56
66
|
export type { UsageResult } from "./tools/usage.js";
|
|
57
67
|
export { runUsage } from "./tools/usage.js";
|
|
58
68
|
export type { Transport, TransportOptions, TransportResult } from "./transport/openrouter.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export { canonicalJson, FIXTURE_VERSION, FixtureStore, fixtureKey } from "./fixt
|
|
|
10
10
|
export { confidenceOf, DEFAULT_UNDECIDED_FLOOR, isChoice, isNoul, isScore, isUndecided, noulConfidence, rankedProbabilities, undecidedNames, } from "./model/answers.js";
|
|
11
11
|
export { DEFAULT_MODEL_ID, PROFILES, projectCost, resolveProfile } from "./model/profiles.js";
|
|
12
12
|
export { assertQuestionSet, parseDecisionResponse } from "./model/validate.js";
|
|
13
|
+
export { BACKLOG_FORMAT, BacklogSchema, backlogPath, backlogProblems, CandidateSchema, opportunityId, projectedSaving, } from "./opportunities/backlog.js";
|
|
13
14
|
export { ping, probeUrl } from "./ping.js";
|
|
14
15
|
export { prepare } from "./prepare.js";
|
|
15
16
|
export { matches, parseFilter, parseSort, project as projectRows } from "./project/project.js";
|
|
@@ -17,17 +18,21 @@ export { activeTriggers, BUILTIN_IGNORE, BUILTIN_TRIGGERS, DEFAULT_MESSAGE, ROUT
|
|
|
17
18
|
export { checkBudget, project } from "./run/budget.js";
|
|
18
19
|
export { mapWithConcurrency } from "./run/pool.js";
|
|
19
20
|
export { SpendLedger, sumUsage } from "./run/spend.js";
|
|
21
|
+
export { applyFilter } from "./sources/filter.js";
|
|
20
22
|
export { gitIgnored, parseFileRef, readSources, splitDiffByFile } from "./sources/read.js";
|
|
21
23
|
export { describeExpectation, meets, parseExpect } from "./spec/expect.js";
|
|
24
|
+
export { LINT_CHECKS, LINT_SEVERITY, lintQuestions, lintSpec, lintStatement, } from "./spec/lint.js";
|
|
22
25
|
export { assertExamples, exampleProblems, listSpecs, loadSpec, parseQuestionSet, parseSpec, SpecSchema, specDirs, } from "./spec/spec.js";
|
|
23
26
|
export { parseSplit, split } from "./split/split.js";
|
|
24
27
|
export { runAsk } from "./tools/ask.js";
|
|
25
28
|
export { createContext, deciderFor } from "./tools/context.js";
|
|
26
29
|
export { CODEX_RULE, DOCTOR_CHECKS, runDoctor, which } from "./tools/doctor.js";
|
|
27
30
|
export { runMany, summariseSkipped } from "./tools/many.js";
|
|
31
|
+
export { runOpportunitiesAdd, runOpportunitiesCheck, runOpportunitiesList, } from "./tools/opportunities.js";
|
|
28
32
|
export { runRoute } from "./tools/route.js";
|
|
29
|
-
export { AskInput, ManyInput, RouteInput, SpecCheckInput, TOOL_SCHEMAS, UsageInput, } from "./tools/schemas.js";
|
|
33
|
+
export { AskInput, ManyInput, OpportunitiesAddInput, OpportunitiesCheckInput, OpportunitiesListInput, RouteInput, SpecCheckInput, SpecLintInput, TOOL_SCHEMAS, UsageInput, } from "./tools/schemas.js";
|
|
30
34
|
export { runSpecCheck } from "./tools/spec-check.js";
|
|
35
|
+
export { runSpecLint } from "./tools/spec-lint.js";
|
|
31
36
|
export { runUsage } from "./tools/usage.js";
|
|
32
37
|
export { createOpenRouterTransport, DEFAULT_TIMEOUT_MS, RETRY_STATUSES, } from "./transport/openrouter.js";
|
|
33
38
|
export { CLI_PACKAGE, VERSION } from "./version.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAQ/D,OAAO,EACL,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,GACd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEjF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEnF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE7E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC9F,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,cAAc,GACf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAE7F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE9E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAE9F,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,KAAK,GACN,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAQ/D,OAAO,EACL,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,GACd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEjF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEnF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE7E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC9F,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,cAAc,GACf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAE7F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE9E,OAAO,EACL,cAAc,EACd,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAE9F,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,KAAK,GACN,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAG1F,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE1E,OAAO,EACL,WAAW,EACX,aAAa,EACb,aAAa,EACb,QAAQ,EACR,aAAa,GACd,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,cAAc,EACd,eAAe,EACf,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,QAAQ,GACT,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE9D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE/E,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAM3D,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EACL,QAAQ,EACR,SAAS,EACT,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,GACf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,QAAQ,GACT,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Type } from "typebox";
|
|
2
|
+
/**
|
|
3
|
+
* A question, as it goes on the wire. Spelled out here (rather than an opaque
|
|
4
|
+
* record) so `decide schema <tool>` describes what a valid question is.
|
|
5
|
+
*/
|
|
6
|
+
export declare const QuestionSchema: Type.TUnion<[Type.TObject<{
|
|
7
|
+
type: Type.TLiteral<"noul">;
|
|
8
|
+
instructions: Type.TString;
|
|
9
|
+
/** Optional `true`/`false` criteria that sharpen an ambiguous statement. */
|
|
10
|
+
criteria: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
|
|
11
|
+
}>, Type.TObject<{
|
|
12
|
+
type: Type.TLiteral<"choice">;
|
|
13
|
+
instructions: Type.TString;
|
|
14
|
+
/** Option key to when it applies. At least two, including a way out. */
|
|
15
|
+
criteria: Type.TRecord<"^.*$", Type.TString>;
|
|
16
|
+
}>, Type.TObject<{
|
|
17
|
+
type: Type.TLiteral<"score">;
|
|
18
|
+
instructions: Type.TString;
|
|
19
|
+
/** Levels, lowest first and 0-indexed. */
|
|
20
|
+
criteria: Type.TArray<Type.TString>;
|
|
21
|
+
}>]>;
|
|
22
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/model/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE9B;;;GAGG;AACH,eAAO,MAAM,cAAc;;;IAKrB,4EAA4E;;;;;IAS5E,wEAAwE;;;;;IASxE,0CAA0C;;IAK9C,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Type } from "typebox";
|
|
2
|
+
/**
|
|
3
|
+
* A question, as it goes on the wire. Spelled out here (rather than an opaque
|
|
4
|
+
* record) so `decide schema <tool>` describes what a valid question is.
|
|
5
|
+
*/
|
|
6
|
+
export const QuestionSchema = Type.Union([
|
|
7
|
+
Type.Object({
|
|
8
|
+
type: Type.Literal("noul"),
|
|
9
|
+
instructions: Type.String({ minLength: 1 }),
|
|
10
|
+
/** Optional `true`/`false` criteria that sharpen an ambiguous statement. */
|
|
11
|
+
criteria: Type.Optional(Type.Record(Type.String(), Type.String())),
|
|
12
|
+
}, { additionalProperties: false }),
|
|
13
|
+
Type.Object({
|
|
14
|
+
type: Type.Literal("choice"),
|
|
15
|
+
instructions: Type.String({ minLength: 1 }),
|
|
16
|
+
/** Option key to when it applies. At least two, including a way out. */
|
|
17
|
+
criteria: Type.Record(Type.String(), Type.String(), { minProperties: 2 }),
|
|
18
|
+
}, { additionalProperties: false }),
|
|
19
|
+
Type.Object({
|
|
20
|
+
type: Type.Literal("score"),
|
|
21
|
+
instructions: Type.String({ minLength: 1 }),
|
|
22
|
+
/** Levels, lowest first and 0-indexed. */
|
|
23
|
+
criteria: Type.Array(Type.String(), { minItems: 2 }),
|
|
24
|
+
}, { additionalProperties: false }),
|
|
25
|
+
]);
|
|
26
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/model/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE9B;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;IACvC,IAAI,CAAC,MAAM,CACT;QACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC3C,4EAA4E;QAC5E,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KACnE,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC;IACD,IAAI,CAAC,MAAM,CACT;QACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC5B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC3C,wEAAwE;QACxE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;KAC1E,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC;IACD,IAAI,CAAC,MAAM,CACT;QACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC3C,0CAA0C;QAC1C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;KACrD,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { type Static, Type } from "typebox";
|
|
2
|
+
import { type Op } from "../project/project.js";
|
|
3
|
+
/**
|
|
4
|
+
* The scout backlog: places where an LLM call, a hand-written heuristic or an
|
|
5
|
+
* agent fan-out is doing a decision model's job. The `scout` skill decides what
|
|
6
|
+
* counts; this module validates and persists it, so the backlog is a typed
|
|
7
|
+
* artifact rather than prose in a transcript. Every saving in it is projected
|
|
8
|
+
* (arithmetic over the inputs shown beside it), never measured.
|
|
9
|
+
*/
|
|
10
|
+
export declare const BACKLOG_FORMAT = 1;
|
|
11
|
+
export declare const CandidateSchema: Type.TObject<{
|
|
12
|
+
/** `code`: a codebase (Mode A). `agents`: skills, hooks, agent configuration (Mode B). */
|
|
13
|
+
mode: Type.TUnion<[Type.TLiteral<"code">, Type.TLiteral<"agents">]>;
|
|
14
|
+
location: Type.TObject<{
|
|
15
|
+
path: Type.TString;
|
|
16
|
+
lines: Type.TOptional<Type.TObject<{
|
|
17
|
+
start: Type.TInteger;
|
|
18
|
+
end: Type.TInteger;
|
|
19
|
+
}>>;
|
|
20
|
+
}>;
|
|
21
|
+
/** What does the job today, e.g. "gpt-4o call parsed to an enum". */
|
|
22
|
+
mechanism: Type.TString;
|
|
23
|
+
shape: Type.TUnion<[Type.TLiteral<"single">, Type.TLiteral<"fanout">, Type.TLiteral<"cascade">, Type.TLiteral<"pairwise">]>;
|
|
24
|
+
/**
|
|
25
|
+
* The text that triggered it, taken verbatim from the screened item. The id is
|
|
26
|
+
* derived from it, so it must be copied, not paraphrased.
|
|
27
|
+
*/
|
|
28
|
+
evidence: Type.TString;
|
|
29
|
+
/** A draft question set that would replace the mechanism. */
|
|
30
|
+
questions: Type.TRecord<"^.*$", Type.TUnion<[Type.TObject<{
|
|
31
|
+
type: Type.TLiteral<"noul">;
|
|
32
|
+
instructions: Type.TString;
|
|
33
|
+
criteria: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
|
|
34
|
+
}>, Type.TObject<{
|
|
35
|
+
type: Type.TLiteral<"choice">;
|
|
36
|
+
instructions: Type.TString;
|
|
37
|
+
criteria: Type.TRecord<"^.*$", Type.TString>;
|
|
38
|
+
}>, Type.TObject<{
|
|
39
|
+
type: Type.TLiteral<"score">;
|
|
40
|
+
instructions: Type.TString;
|
|
41
|
+
criteria: Type.TArray<Type.TString>;
|
|
42
|
+
}>]>>;
|
|
43
|
+
/**
|
|
44
|
+
* What replacing the mechanism would mainly buy. `cost`: cheaper calls.
|
|
45
|
+
* `quality`: better or more consistent verdicts (a regex or heuristic that
|
|
46
|
+
* costs nothing today, so its `savingUsd` can be negative). `latency`:
|
|
47
|
+
* faster answers. Rank within a benefit, not across them.
|
|
48
|
+
*/
|
|
49
|
+
benefit: Type.TUnion<[Type.TLiteral<"cost">, Type.TLiteral<"quality">, Type.TLiteral<"latency">]>;
|
|
50
|
+
/** The inputs of the projected saving. The saving itself is computed here. */
|
|
51
|
+
projected: Type.TObject<{
|
|
52
|
+
volume: Type.TNumber;
|
|
53
|
+
/** What `volume` counts per, e.g. "day", "PR", "run". */
|
|
54
|
+
per: Type.TString;
|
|
55
|
+
currentCostPerItemUsd: Type.TNumber;
|
|
56
|
+
decisionCostPerItemUsd: Type.TNumber;
|
|
57
|
+
/** Where the figures came from. */
|
|
58
|
+
note: Type.TOptional<Type.TString>;
|
|
59
|
+
}>;
|
|
60
|
+
risk: Type.TObject<{
|
|
61
|
+
level: Type.TUnion<[Type.TLiteral<"low">, Type.TLiteral<"medium">, Type.TLiteral<"high">]>;
|
|
62
|
+
/** What would go wrong if the replacement erred. */
|
|
63
|
+
note: Type.TString;
|
|
64
|
+
}>;
|
|
65
|
+
/** The next step, e.g. "save the spec with design, then adopt". */
|
|
66
|
+
next: Type.TString;
|
|
67
|
+
/** Defaults to `new`. `rejected` needs a `statusReason`. */
|
|
68
|
+
status: Type.TOptional<Type.TUnion<[Type.TLiteral<"new">, Type.TLiteral<"stale">, Type.TLiteral<"adopted">, Type.TLiteral<"rejected">]>>;
|
|
69
|
+
statusReason: Type.TOptional<Type.TString>;
|
|
70
|
+
/** Which sweep produced it, and whether its screening answers were live or replayed. */
|
|
71
|
+
source: Type.TObject<{
|
|
72
|
+
sweep: Type.TString;
|
|
73
|
+
answers: Type.TUnion<[Type.TLiteral<"live">, Type.TLiteral<"replay">]>;
|
|
74
|
+
}>;
|
|
75
|
+
}>;
|
|
76
|
+
export declare const OpportunitySchema: Type.TObject<{
|
|
77
|
+
/** `code`: a codebase (Mode A). `agents`: skills, hooks, agent configuration (Mode B). */
|
|
78
|
+
mode: Type.TUnion<[Type.TLiteral<"code">, Type.TLiteral<"agents">]>;
|
|
79
|
+
location: Type.TObject<{
|
|
80
|
+
path: Type.TString;
|
|
81
|
+
lines: Type.TOptional<Type.TObject<{
|
|
82
|
+
start: Type.TInteger;
|
|
83
|
+
end: Type.TInteger;
|
|
84
|
+
}>>;
|
|
85
|
+
}>;
|
|
86
|
+
/** What does the job today, e.g. "gpt-4o call parsed to an enum". */
|
|
87
|
+
mechanism: Type.TString;
|
|
88
|
+
shape: Type.TUnion<[Type.TLiteral<"single">, Type.TLiteral<"fanout">, Type.TLiteral<"cascade">, Type.TLiteral<"pairwise">]>;
|
|
89
|
+
/**
|
|
90
|
+
* The text that triggered it, taken verbatim from the screened item. The id is
|
|
91
|
+
* derived from it, so it must be copied, not paraphrased.
|
|
92
|
+
*/
|
|
93
|
+
evidence: Type.TString;
|
|
94
|
+
/** A draft question set that would replace the mechanism. */
|
|
95
|
+
questions: Type.TRecord<"^.*$", Type.TUnion<[Type.TObject<{
|
|
96
|
+
type: Type.TLiteral<"noul">;
|
|
97
|
+
instructions: Type.TString;
|
|
98
|
+
criteria: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
|
|
99
|
+
}>, Type.TObject<{
|
|
100
|
+
type: Type.TLiteral<"choice">;
|
|
101
|
+
instructions: Type.TString;
|
|
102
|
+
criteria: Type.TRecord<"^.*$", Type.TString>;
|
|
103
|
+
}>, Type.TObject<{
|
|
104
|
+
type: Type.TLiteral<"score">;
|
|
105
|
+
instructions: Type.TString;
|
|
106
|
+
criteria: Type.TArray<Type.TString>;
|
|
107
|
+
}>]>>;
|
|
108
|
+
/**
|
|
109
|
+
* What replacing the mechanism would mainly buy. `cost`: cheaper calls.
|
|
110
|
+
* `quality`: better or more consistent verdicts (a regex or heuristic that
|
|
111
|
+
* costs nothing today, so its `savingUsd` can be negative). `latency`:
|
|
112
|
+
* faster answers. Rank within a benefit, not across them.
|
|
113
|
+
*/
|
|
114
|
+
benefit: Type.TUnion<[Type.TLiteral<"cost">, Type.TLiteral<"quality">, Type.TLiteral<"latency">]>;
|
|
115
|
+
risk: Type.TObject<{
|
|
116
|
+
level: Type.TUnion<[Type.TLiteral<"low">, Type.TLiteral<"medium">, Type.TLiteral<"high">]>;
|
|
117
|
+
/** What would go wrong if the replacement erred. */
|
|
118
|
+
note: Type.TString;
|
|
119
|
+
}>;
|
|
120
|
+
/** The next step, e.g. "save the spec with design, then adopt". */
|
|
121
|
+
next: Type.TString;
|
|
122
|
+
statusReason: Type.TOptional<Type.TString>;
|
|
123
|
+
/** Which sweep produced it, and whether its screening answers were live or replayed. */
|
|
124
|
+
source: Type.TObject<{
|
|
125
|
+
sweep: Type.TString;
|
|
126
|
+
answers: Type.TUnion<[Type.TLiteral<"live">, Type.TLiteral<"replay">]>;
|
|
127
|
+
}>;
|
|
128
|
+
id: Type.TString;
|
|
129
|
+
status: Type.TUnion<[Type.TLiteral<"new">, Type.TLiteral<"stale">, Type.TLiteral<"adopted">, Type.TLiteral<"rejected">]>;
|
|
130
|
+
projected: Type.TObject<{
|
|
131
|
+
volume: Type.TNumber;
|
|
132
|
+
/** What `volume` counts per, e.g. "day", "PR", "run". */
|
|
133
|
+
per: Type.TString;
|
|
134
|
+
currentCostPerItemUsd: Type.TNumber;
|
|
135
|
+
decisionCostPerItemUsd: Type.TNumber;
|
|
136
|
+
/** Where the figures came from. */
|
|
137
|
+
note: Type.TOptional<Type.TString>;
|
|
138
|
+
basis: Type.TLiteral<"projected">;
|
|
139
|
+
/** volume × (current − decision), per `per`. Negative means it would cost more. */
|
|
140
|
+
savingUsd: Type.TNumber;
|
|
141
|
+
}>;
|
|
142
|
+
firstSeenAt: Type.TString;
|
|
143
|
+
seenAt: Type.TString;
|
|
144
|
+
}>;
|
|
145
|
+
export declare const BacklogSchema: Type.TObject<{
|
|
146
|
+
version: Type.TLiteral<1>;
|
|
147
|
+
opportunities: Type.TArray<Type.TObject<{
|
|
148
|
+
/** `code`: a codebase (Mode A). `agents`: skills, hooks, agent configuration (Mode B). */
|
|
149
|
+
mode: Type.TUnion<[Type.TLiteral<"code">, Type.TLiteral<"agents">]>;
|
|
150
|
+
location: Type.TObject<{
|
|
151
|
+
path: Type.TString;
|
|
152
|
+
lines: Type.TOptional<Type.TObject<{
|
|
153
|
+
start: Type.TInteger;
|
|
154
|
+
end: Type.TInteger;
|
|
155
|
+
}>>;
|
|
156
|
+
}>;
|
|
157
|
+
/** What does the job today, e.g. "gpt-4o call parsed to an enum". */
|
|
158
|
+
mechanism: Type.TString;
|
|
159
|
+
shape: Type.TUnion<[Type.TLiteral<"single">, Type.TLiteral<"fanout">, Type.TLiteral<"cascade">, Type.TLiteral<"pairwise">]>;
|
|
160
|
+
/**
|
|
161
|
+
* The text that triggered it, taken verbatim from the screened item. The id is
|
|
162
|
+
* derived from it, so it must be copied, not paraphrased.
|
|
163
|
+
*/
|
|
164
|
+
evidence: Type.TString;
|
|
165
|
+
/** A draft question set that would replace the mechanism. */
|
|
166
|
+
questions: Type.TRecord<"^.*$", Type.TUnion<[Type.TObject<{
|
|
167
|
+
type: Type.TLiteral<"noul">;
|
|
168
|
+
instructions: Type.TString;
|
|
169
|
+
criteria: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
|
|
170
|
+
}>, Type.TObject<{
|
|
171
|
+
type: Type.TLiteral<"choice">;
|
|
172
|
+
instructions: Type.TString;
|
|
173
|
+
criteria: Type.TRecord<"^.*$", Type.TString>;
|
|
174
|
+
}>, Type.TObject<{
|
|
175
|
+
type: Type.TLiteral<"score">;
|
|
176
|
+
instructions: Type.TString;
|
|
177
|
+
criteria: Type.TArray<Type.TString>;
|
|
178
|
+
}>]>>;
|
|
179
|
+
/**
|
|
180
|
+
* What replacing the mechanism would mainly buy. `cost`: cheaper calls.
|
|
181
|
+
* `quality`: better or more consistent verdicts (a regex or heuristic that
|
|
182
|
+
* costs nothing today, so its `savingUsd` can be negative). `latency`:
|
|
183
|
+
* faster answers. Rank within a benefit, not across them.
|
|
184
|
+
*/
|
|
185
|
+
benefit: Type.TUnion<[Type.TLiteral<"cost">, Type.TLiteral<"quality">, Type.TLiteral<"latency">]>;
|
|
186
|
+
risk: Type.TObject<{
|
|
187
|
+
level: Type.TUnion<[Type.TLiteral<"low">, Type.TLiteral<"medium">, Type.TLiteral<"high">]>;
|
|
188
|
+
/** What would go wrong if the replacement erred. */
|
|
189
|
+
note: Type.TString;
|
|
190
|
+
}>;
|
|
191
|
+
/** The next step, e.g. "save the spec with design, then adopt". */
|
|
192
|
+
next: Type.TString;
|
|
193
|
+
statusReason: Type.TOptional<Type.TString>;
|
|
194
|
+
/** Which sweep produced it, and whether its screening answers were live or replayed. */
|
|
195
|
+
source: Type.TObject<{
|
|
196
|
+
sweep: Type.TString;
|
|
197
|
+
answers: Type.TUnion<[Type.TLiteral<"live">, Type.TLiteral<"replay">]>;
|
|
198
|
+
}>;
|
|
199
|
+
id: Type.TString;
|
|
200
|
+
status: Type.TUnion<[Type.TLiteral<"new">, Type.TLiteral<"stale">, Type.TLiteral<"adopted">, Type.TLiteral<"rejected">]>;
|
|
201
|
+
projected: Type.TObject<{
|
|
202
|
+
volume: Type.TNumber;
|
|
203
|
+
/** What `volume` counts per, e.g. "day", "PR", "run". */
|
|
204
|
+
per: Type.TString;
|
|
205
|
+
currentCostPerItemUsd: Type.TNumber;
|
|
206
|
+
decisionCostPerItemUsd: Type.TNumber;
|
|
207
|
+
/** Where the figures came from. */
|
|
208
|
+
note: Type.TOptional<Type.TString>;
|
|
209
|
+
basis: Type.TLiteral<"projected">;
|
|
210
|
+
/** volume × (current − decision), per `per`. Negative means it would cost more. */
|
|
211
|
+
savingUsd: Type.TNumber;
|
|
212
|
+
}>;
|
|
213
|
+
firstSeenAt: Type.TString;
|
|
214
|
+
seenAt: Type.TString;
|
|
215
|
+
}>>;
|
|
216
|
+
}>;
|
|
217
|
+
export type Candidate = Static<typeof CandidateSchema>;
|
|
218
|
+
export type Opportunity = Static<typeof OpportunitySchema>;
|
|
219
|
+
export type Backlog = Static<typeof BacklogSchema>;
|
|
220
|
+
export type OpportunityStatus = Opportunity["status"];
|
|
221
|
+
export declare function backlogPath(repoRoot: string): string;
|
|
222
|
+
/**
|
|
223
|
+
* Stable across re-runs and file moves: the mode and the evidence, with
|
|
224
|
+
* whitespace collapsed. Not the path (a moved file keeps its id) and nothing
|
|
225
|
+
* the agent paraphrases.
|
|
226
|
+
*/
|
|
227
|
+
export declare function opportunityId(mode: Candidate["mode"], evidence: string): string;
|
|
228
|
+
export declare function projectedSaving(p: Candidate["projected"]): number;
|
|
229
|
+
/** Every problem with a backlog value, as `path message` lines. Empty when valid. */
|
|
230
|
+
export declare function backlogProblems(value: unknown): string[];
|
|
231
|
+
/**
|
|
232
|
+
* Read the backlog. A missing file is an empty backlog; a malformed one is an
|
|
233
|
+
* error, and is never repaired or overwritten.
|
|
234
|
+
*/
|
|
235
|
+
export declare function readBacklog(file: string): Backlog;
|
|
236
|
+
/**
|
|
237
|
+
* Run `body` holding the backlog's lock, so concurrent `add`s (two sweeps, or
|
|
238
|
+
* a sweep run in parallel) serialise instead of losing each other's entries.
|
|
239
|
+
* A lock older than 30 s is from a crashed run and is taken over.
|
|
240
|
+
*/
|
|
241
|
+
export declare function withBacklogLock<T>(file: string, body: () => T): T;
|
|
242
|
+
/** Written whole, through a temp file, so a crash never leaves half a backlog. */
|
|
243
|
+
export declare function writeBacklog(file: string, backlog: Backlog): void;
|
|
244
|
+
export interface MergeResult {
|
|
245
|
+
backlog: Backlog;
|
|
246
|
+
added: string[];
|
|
247
|
+
updated: string[];
|
|
248
|
+
/** Entries at a path this add covered, not seen again, and so superseded. */
|
|
249
|
+
staled: string[];
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Merge candidates into a backlog.
|
|
253
|
+
*
|
|
254
|
+
* - A candidate whose id exists updates that entry (location, draft, figures,
|
|
255
|
+
* `seenAt`), keeping `firstSeenAt`. Its status changes only when the
|
|
256
|
+
* candidate gives one, so a rejection survives a re-sweep.
|
|
257
|
+
* - A new id is added with status `new` unless the candidate says otherwise.
|
|
258
|
+
* - A `new` entry that this add's sweep produced before, at a path the add
|
|
259
|
+
* covers, in the same mode, and that the add didn't see again is marked
|
|
260
|
+
* `stale`: its evidence changed. It is never deleted. A stale entry seen again
|
|
261
|
+
* is `new` again.
|
|
262
|
+
*/
|
|
263
|
+
export declare function mergeCandidates(backlog: Backlog, candidates: readonly Candidate[], now: string): MergeResult;
|
|
264
|
+
/** Top-level fields of an entry, for `--fields`. */
|
|
265
|
+
export declare const ENTRY_FIELDS: readonly string[];
|
|
266
|
+
export interface RecordFilter {
|
|
267
|
+
field: string;
|
|
268
|
+
op: Op;
|
|
269
|
+
value: number | string | string[];
|
|
270
|
+
source: string;
|
|
271
|
+
}
|
|
272
|
+
/** `status=new`, `risk in medium,high`, `projected>=0.5`, `location.path=src/a.ts`. */
|
|
273
|
+
export declare function parseRecordFilter(text: string): RecordFilter;
|
|
274
|
+
export declare function parseRecordSort(text: string): {
|
|
275
|
+
field: string;
|
|
276
|
+
direction: "asc" | "desc";
|
|
277
|
+
};
|
|
278
|
+
export declare function readField(o: Opportunity, field: string): unknown;
|
|
279
|
+
export declare function recordMatches(o: Opportunity, f: RecordFilter): boolean;
|
|
280
|
+
//# sourceMappingURL=backlog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/opportunities/backlog.ts"],"names":[],"mappings":"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"}
|