@farmslot/protocol 0.8.0 → 0.10.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/CHANGELOG.md +28 -0
- package/dist/agents/roles.js +2 -2
- package/dist/agents/roles.js.map +1 -1
- package/dist/contracts/agents.d.ts +7 -0
- package/dist/contracts/agents.d.ts.map +1 -1
- package/dist/contracts/backlog.d.ts +17 -0
- package/dist/contracts/backlog.d.ts.map +1 -1
- package/dist/contracts/backlog.js.map +1 -1
- package/dist/contracts/bug-input.d.ts +77 -0
- package/dist/contracts/bug-input.d.ts.map +1 -0
- package/dist/contracts/bug-input.js +300 -0
- package/dist/contracts/bug-input.js.map +1 -0
- package/dist/contracts/bug-score.d.ts +73 -0
- package/dist/contracts/bug-score.d.ts.map +1 -0
- package/dist/contracts/bug-score.js +208 -0
- package/dist/contracts/bug-score.js.map +1 -0
- package/dist/contracts/dispatch.d.ts +5 -1
- package/dist/contracts/dispatch.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +5 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +5 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/pr-recommendation.d.ts +66 -0
- package/dist/contracts/pr-recommendation.d.ts.map +1 -0
- package/dist/contracts/pr-recommendation.js +88 -0
- package/dist/contracts/pr-recommendation.js.map +1 -0
- package/dist/contracts/recipes.js +1 -1
- package/dist/contracts/recipes.js.map +1 -1
- package/dist/contracts/reviews.d.ts +4 -1
- package/dist/contracts/reviews.d.ts.map +1 -1
- package/dist/contracts/reviews.js.map +1 -1
- package/dist/contracts/runner-ids.d.ts +4 -0
- package/dist/contracts/runner-ids.d.ts.map +1 -0
- package/dist/contracts/runner-ids.js +12 -0
- package/dist/contracts/runner-ids.js.map +1 -0
- package/dist/contracts/runs.d.ts +50 -2
- package/dist/contracts/runs.d.ts.map +1 -1
- package/dist/contracts/runs.js +42 -2
- package/dist/contracts/runs.js.map +1 -1
- package/dist/contracts/slot-selection.d.ts +41 -0
- package/dist/contracts/slot-selection.d.ts.map +1 -0
- package/dist/contracts/slot-selection.js +128 -0
- package/dist/contracts/slot-selection.js.map +1 -0
- package/dist/contracts/slots.d.ts +18 -0
- package/dist/contracts/slots.d.ts.map +1 -1
- package/dist/contracts/slots.js +11 -0
- package/dist/contracts/slots.js.map +1 -1
- package/dist/contracts/work-graph.d.ts +1 -1
- package/dist/contracts/work-graph.d.ts.map +1 -1
- package/dist/integrations/github-ref.js +1 -1
- package/dist/integrations/github-ref.js.map +1 -1
- package/dist/recipe/common.d.ts +3 -0
- package/dist/recipe/common.d.ts.map +1 -1
- package/dist/recipe/common.js.map +1 -1
- package/dist/recipe/index.d.ts +2 -1
- package/dist/recipe/index.d.ts.map +1 -1
- package/dist/recipe/index.js +2 -1
- package/dist/recipe/index.js.map +1 -1
- package/dist/recipe/manifest.d.ts.map +1 -1
- package/dist/recipe/manifest.js +14 -0
- package/dist/recipe/manifest.js.map +1 -1
- package/dist/recipe/trust.d.ts +45 -0
- package/dist/recipe/trust.d.ts.map +1 -0
- package/dist/recipe/trust.js +63 -0
- package/dist/recipe/trust.js.map +1 -0
- package/dist/recipe/workflow.d.ts +3 -0
- package/dist/recipe/workflow.d.ts.map +1 -1
- package/dist/recipe/workflow.js +37 -7
- package/dist/recipe/workflow.js.map +1 -1
- package/dist/rpc/backlog.d.ts +10 -0
- package/dist/rpc/backlog.d.ts.map +1 -1
- package/dist/rpc/backlog.js +1 -0
- package/dist/rpc/backlog.js.map +1 -1
- package/dist/rpc/dispatch.d.ts +1 -1
- package/dist/rpc/dispatch.d.ts.map +1 -1
- package/dist/rpc/registry.d.ts +6 -0
- package/dist/rpc/registry.d.ts.map +1 -1
- package/dist/rpc/registry.js +6 -0
- package/dist/rpc/registry.js.map +1 -1
- package/dist/rpc/run.d.ts +11 -1
- package/dist/rpc/run.d.ts.map +1 -1
- package/dist/rpc/slot.d.ts +53 -1
- package/dist/rpc/slot.d.ts.map +1 -1
- package/dist/rpc/slot.js +5 -0
- package/dist/rpc/slot.js.map +1 -1
- package/dist/rpc/tmux.d.ts +1 -1
- package/dist/rpc/tmux.d.ts.map +1 -1
- package/dist/runs/family-iteration-ledger.js +2 -2
- package/dist/runs/family-iteration-ledger.js.map +1 -1
- package/dist/runs/run-mode.d.ts +1 -1
- package/dist/runs/run-mode.js +2 -2
- package/dist/runs/run-mode.js.map +1 -1
- package/dist/transport/events.d.ts +2 -0
- package/dist/transport/events.d.ts.map +1 -1
- package/dist/transport/frames.d.ts +3 -0
- package/dist/transport/frames.d.ts.map +1 -1
- package/dist/transport/frames.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,34 @@
|
|
|
4
4
|
|
|
5
5
|
- Active-development baseline; add user-facing changes here before release or package publication.
|
|
6
6
|
|
|
7
|
+
## 0.10.0 - 2026-07-19
|
|
8
|
+
|
|
9
|
+
- feat: add recipe provenance, execution-capability, exact-plan approval, and stable trust-failure contracts
|
|
10
|
+
- fix: bind recipe approvals to the project root, artifact destination, and effective run environment
|
|
11
|
+
- fix: reject parameter-templated flow references that cannot be represented in a static execution plan
|
|
12
|
+
- feat: `CICheck.status` and `PRStatus.checkSummary` gain `skipped` — watched-check surfaces distinguish path-skipped CI jobs from pending ones. `CiCheckSummary.skipped` is optional (absent in run outputs persisted before skipped tracking).
|
|
13
|
+
- feat: `SLOT_LIFECYCLE` — canonical `SlotLifecycle` value constants for runtime logic (companion to the type union; string literals drift silently)
|
|
14
|
+
- feat: `SlotReleaseParams.expectedRunId` — optional owner binding for slot release: when set, the teardown proceeds only while that run still holds the slot's claim, so a release initiated for one run can never destroy a rival run's fresh claim (additive; absent means the pre-existing unbound behavior)
|
|
15
|
+
- feat: `AgentContext.attemptStartedAt` — launch time of the current attempt/pass, so restart recovery can tell a current-attempt signal from a prior loop's (startedAt survives warm reuse; updatedAt is rewritten by startup reconciliation)
|
|
16
|
+
- feat: `TmuxWorkerAttentionReason` gains `'observability-degraded'` — surfaced when hook/statusline liveness lapses for an event-driven runner while the ADR-032 Phase 3A pane-retirement flag is on, so the operator is alerted before a nudge is attempted (additive; older readers ignore the new reason)
|
|
17
|
+
- feat: `ReviewSessionPolicy` (`'fresh-per-pass' | 'warm-per-reviewer'`), `REVIEW_SESSION_POLICIES`, and `DEFAULT_REVIEW_SESSION_POLICY` — reviewer session lifecycle across one run's review loops (MANUAL-000009), shared by the gateway and `@farmslot/slot-config`
|
|
18
|
+
- feat: `ReviewSummary.independentReviews[]` rows gain optional `source` and `runner` so gate-summary surfaces can render _Independent review (requested)_ and `runner: <id>` policy metadata (additive; older persisted summaries simply omit them); review-loop JSDoc comments use independent-review language
|
|
19
|
+
- feat: launch-plan attempt fields for MANUAL-000037 — `QueueItem.launchAttempt`, `Run.launchAttempt`, `RunCreateParams.launchAttempt`, and `BacklogLaunchCandidateProjection.attempt`: a monotonic per-candidate attempt so backlog run observations can tell a legitimate re-enqueue takeover from a stale echo of a superseded run
|
|
20
|
+
- feat: `BacklogItem.multiPr` (+ create/update inputs) — marks items whose acceptance criteria span multiple PRs so a finished run returns them to `ready` instead of auto-closing them; final closure stays the explicit `backlog.closeShipped` call
|
|
21
|
+
- feat: `contracts/bug-score.ts` — decision cores for the LLM grade / validity / batch stages of the bug pipeline, ported from `grade-bug.sh`, `validate-bug.sh`, and the `batch-triage.sh` GitHub post-filter: `normalizeLlmGrade` + `computeFinalScore` (LLM grade validation and the deterministic heuristic/LLM final-score merge), `normalizeBugValidation` (validity-check defaults), `parseLlmJson` (fence-stripping JSON parse), and `filterBatchIssues` (since/exclude-assigned filter), plus the `LlmGrade`/`FinalScore`/`BugValidation`/`LlmComplexity`/`FinalScoreSource` types and `LLM_COMPLEXITIES`/`FINAL_SCORE_SOURCES` constants. Companion to `contracts/bug-input.ts`; both back the new `farmslot bug` CLI command family
|
|
22
|
+
- `computeFinalScore` rounds the merged one-shot probability half-to-even to approximate the retired Python grader's `round(x, 2)`, but does not bit-match it on binary near-ties: `final.one_shot_probability` may differ by 0.01 from the old Python output on values like `0.015` (JS rounds to `0.02`, Python to `0.01`). Deliberate — bit-parity would need arbitrary-precision decimals for a cosmetic delta
|
|
23
|
+
- feat: `contracts/bug-input.ts` — `scoreKeyForGithub` / `scoreKeyForJira` expose the score-file key rules (`gh-<n>` / lowercased Jira key) that `deriveScoreKey` now delegates to, so the batch/skip-existing fast paths derive a key from a raw ref without duplicating the rules
|
|
24
|
+
- feat: slot helper RPCs — `Methods.SLOT_MONITOR`/`SLOT_SHOW`/`SLOT_SOFT_REFRESH`/`SLOT_REOPEN`/`SLOT_AUTO_REFRESH` (+ matching `SlotMethods` entries) and their params/results (`SlotMonitorParams`/`Result`, `SlotShowParams`, `SlotSoftRefreshParams`, `SlotReopenParams`, `SlotCommandResult` extending `ExecResult`, `SlotAutoRefreshParams`/`Result`) for the ported slot helper CLI verbs
|
|
25
|
+
- **BREAKING** feat: rename the branch-maintenance flow `merge-main` → `update-branch` in `FlowType`. Adds load-boundary migrations `normalizeFlowType` (`merge-main`→`update-branch`, `feature`→`dev`) and `normalizeCiActionId` (`dispatch-merge-main`→`dispatch-update-branch`), the `BranchUpdateStrategy` type + `BRANCH_UPDATE_STRATEGIES`/`isBranchUpdateStrategy`, and `Run.branchUpdateStrategy`/`RunCreateParams.branchUpdateStrategy`. `update-branch` is PR-bound; its worker report artifact is `report.md`
|
|
26
|
+
|
|
27
|
+
## 0.9.0 - 2026-07-13
|
|
28
|
+
|
|
29
|
+
- feat: `contracts/pr-recommendation.ts` (`computePRRecommendation`, `derivePRMergeState`, `isPassiveMergeWaitCandidate` moved from the gateway, now covering the bash pr-monitor rule set) and `contracts/bug-input.ts` (`BugInput`, `parseBugInput` for GitHub/Jira incl. ADF flattening + shared image-URL extraction, `validateBugScore`)
|
|
30
|
+
- feat: `contracts/runner-ids.ts` — canonical runner-id vocabulary (`DEFAULT_RUNNER`, `RUNNER_ALIASES`, `normalizeRunner`) moved from the gateway runner registry so slot-config template expansion shares it; the registry re-exports
|
|
31
|
+
- feat: `contracts/slot-selection.ts` — operator slot availability + selection core (`selectSlot` over the fleet snapshot — stale-refusing, with discriminated failure codes —, `slotUnavailableReason`, `explicitSlotBlocker`, `slotSelectionScore`, `cdpLive`/`isCdpLiveValue`), the TypeScript port of the `scripts/find-slot.sh` decision logic; `isCdpLiveValue` is shared with the gateway dispatch scorer
|
|
32
|
+
- feat: `backlog.closeShipped` method + `BacklogItem.shipped` provenance field
|
|
33
|
+
- feat: RPC response errors may carry `userAction` and `details`; `SlotStatus.missingFromPool` and `FleetStatus.stale` flag ghost slots and stale fleet snapshots
|
|
34
|
+
|
|
7
35
|
## 0.8.0 - 2026-07-12
|
|
8
36
|
|
|
9
37
|
- feat: add Recipe Protocol v1 passive UI observation fields to manifests, recipes, and schemas.
|
package/dist/agents/roles.js
CHANGED
|
@@ -46,9 +46,9 @@ export function primaryRoleForFlow(flowType) {
|
|
|
46
46
|
return 'fix-bug';
|
|
47
47
|
if (flowType === 'review-pr')
|
|
48
48
|
return 'review';
|
|
49
|
-
// Non-worker orchestration flows (pr-complete,
|
|
49
|
+
// Non-worker orchestration flows (pr-complete, update-branch) and null/undefined
|
|
50
50
|
// reuse the default session window instead of claiming a role-scoped worker window.
|
|
51
|
-
if (!flowType || flowType === 'pr-complete' || flowType === '
|
|
51
|
+
if (!flowType || flowType === 'pr-complete' || flowType === 'update-branch')
|
|
52
52
|
return 'primary';
|
|
53
53
|
throw new Error(`primaryRoleForFlow: unknown flow type '${flowType}'`);
|
|
54
54
|
}
|
package/dist/agents/roles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/agents/roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiC,MAAM,uBAAuB,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,MAAM,CAAC,MAAM,iBAAiB,GAA8B;IAC1D,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,QAAQ;IAChB,aAAa,EAAE,aAAa;IAC5B,iBAAiB,EAAE,iBAAiB;IACpC,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAA8B;IAChE,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,KAAK;IACb,aAAa,EAAE,OAAO;IACtB,iBAAiB,EAAE,OAAO;IAC1B,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAqC;IAClE,OAAO,EAAE,IAAI;IACb,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,QAAQ;IAChB,aAAa,EAAE,aAAa;IAC5B,iBAAiB,EAAE,IAAI,EAAE,0DAA0D;IACnF,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF,+EAA+E;AAC/E,+EAA+E;AAC/E,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD,OAAO,EAAE,CAAC;IACV,GAAG,EAAE,CAAC;IACN,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,EAAE;IACjB,iBAAiB,EAAE,EAAE;IACrB,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,QAAmC;IACpE,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,QAAQ,CAAC;IAC9C,
|
|
1
|
+
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../src/agents/roles.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,13 @@ export interface AgentContext {
|
|
|
26
26
|
/** Runner context-window usage percentage (0-100). See {@link AgentContextSummary.ctxPct}. */
|
|
27
27
|
ctxPct?: number | null;
|
|
28
28
|
startedAt?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Launch time of the CURRENT attempt/pass. startedAt survives context reuse
|
|
31
|
+
* (warm reviewer loops keep loop 1's value) and updatedAt is rewritten by
|
|
32
|
+
* startup reconciliation — neither can anchor "did this signal come from the
|
|
33
|
+
* current attempt", which restart recovery needs.
|
|
34
|
+
*/
|
|
35
|
+
attemptStartedAt?: string;
|
|
29
36
|
updatedAt?: string;
|
|
30
37
|
completedAt?: string;
|
|
31
38
|
lastSignalAt?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/contracts/agents.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/contracts/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,9 @@ export interface BacklogLaunchCandidateProjection {
|
|
|
46
46
|
status: BacklogLaunchCandidateStatus;
|
|
47
47
|
queueItemId?: string;
|
|
48
48
|
runId?: string;
|
|
49
|
+
/** Reserved high-water launch attempt for this candidate; observations carrying a
|
|
50
|
+
* lower attempt are stale echoes of superseded runs and are ignored. */
|
|
51
|
+
attempt?: number;
|
|
49
52
|
slotId?: string;
|
|
50
53
|
waitingReason?: string;
|
|
51
54
|
}
|
|
@@ -78,6 +81,12 @@ export interface BacklogItem {
|
|
|
78
81
|
priority: number;
|
|
79
82
|
allowedSlots?: string[];
|
|
80
83
|
autoDispatch?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Acceptance criteria span multiple PRs: a linked run finishing returns the
|
|
86
|
+
* item to `ready` (next slice dispatchable) instead of auto-closing it.
|
|
87
|
+
* Final closure is the explicit `backlog.closeShipped` call.
|
|
88
|
+
*/
|
|
89
|
+
multiPr?: boolean;
|
|
81
90
|
runner?: string;
|
|
82
91
|
model?: string;
|
|
83
92
|
scripted?: ScriptedRunnerConfig;
|
|
@@ -96,6 +105,12 @@ export interface BacklogItem {
|
|
|
96
105
|
queuedQueueItemId?: string;
|
|
97
106
|
runId?: string;
|
|
98
107
|
lastObservedRunStatus?: RunStatus;
|
|
108
|
+
/** Operator close-out provenance for work that shipped outside the run engine (e.g. out-of-band merged PR). */
|
|
109
|
+
shipped?: {
|
|
110
|
+
prRef?: string;
|
|
111
|
+
note?: string;
|
|
112
|
+
closedAt: string;
|
|
113
|
+
};
|
|
99
114
|
lastDispatchAttempt?: string;
|
|
100
115
|
lastDispatchError?: string;
|
|
101
116
|
}
|
|
@@ -117,6 +132,7 @@ export interface BacklogCreateInput {
|
|
|
117
132
|
priority?: number;
|
|
118
133
|
allowedSlots?: string[];
|
|
119
134
|
autoDispatch?: boolean;
|
|
135
|
+
multiPr?: boolean;
|
|
120
136
|
runner?: string;
|
|
121
137
|
model?: string;
|
|
122
138
|
scripted?: ScriptedRunnerConfig;
|
|
@@ -144,6 +160,7 @@ export interface BacklogUpdateInput {
|
|
|
144
160
|
priority?: number;
|
|
145
161
|
allowedSlots?: string[] | null;
|
|
146
162
|
autoDispatch?: boolean;
|
|
163
|
+
multiPr?: boolean | null;
|
|
147
164
|
runner?: string | null;
|
|
148
165
|
model?: string | null;
|
|
149
166
|
scripted?: ScriptedRunnerConfig | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW;IACX,OAAO;IACP,QAAQ;IACR,aAAa;IACb,SAAS;IACT,MAAM;IACN,QAAQ;IACR,iBAAiB;IACjB,UAAU;CACF,CAAC;AAIX,8EAA8E;AAC9E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,2BAA2B,GAA+B,IAAI,GAAG,CAAC;IAC7E,MAAM;IACN,QAAQ;IACR,iBAAiB;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export type BugInputSource = 'github' | 'jira';
|
|
2
|
+
export declare const BUG_SCORE_DIFFICULTIES: readonly ["low", "medium", "high", "extreme"];
|
|
3
|
+
export type BugScoreDifficulty = (typeof BUG_SCORE_DIFFICULTIES)[number];
|
|
4
|
+
export interface BugInput {
|
|
5
|
+
source: BugInputSource;
|
|
6
|
+
/** "owner/repo#123" for GitHub issues, empty string for Jira */
|
|
7
|
+
github_issue: string;
|
|
8
|
+
/** Jira key (e.g. "PROJ-2236"), empty string for GitHub */
|
|
9
|
+
jira_key: string;
|
|
10
|
+
title: string;
|
|
11
|
+
/** Flattened plain text of the issue description (ADF flattened for Jira) */
|
|
12
|
+
description: string;
|
|
13
|
+
acceptance_criteria: string[];
|
|
14
|
+
/** Always empty — present for schema compatibility with existing tooling */
|
|
15
|
+
affected_area: string;
|
|
16
|
+
steps_to_reproduce: string[];
|
|
17
|
+
labels: string[];
|
|
18
|
+
components: string[];
|
|
19
|
+
/** Image filenames (basename, ≤50 chars each) extracted from the description */
|
|
20
|
+
screenshots: string[];
|
|
21
|
+
state: string;
|
|
22
|
+
linked_prs: string[];
|
|
23
|
+
/** Full image URLs extracted from the description, for download scripts */
|
|
24
|
+
image_urls: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface BugScore {
|
|
27
|
+
issue_ref?: string;
|
|
28
|
+
difficulty: BugScoreDifficulty;
|
|
29
|
+
one_shot_probability: number;
|
|
30
|
+
category: string;
|
|
31
|
+
[key: string]: unknown;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Extract image URLs from a GitHub issue body (markdown / HTML / bare
|
|
35
|
+
* GitHub user-content links). Shared helper for both GitHub markdown bodies
|
|
36
|
+
* and Jira ADF descriptions that happen to contain inline HTML.
|
|
37
|
+
*
|
|
38
|
+
* Returns full URLs filtered to image-like extensions or GitHub content hosts.
|
|
39
|
+
* Results are deduplicated and sorted for stable output.
|
|
40
|
+
*/
|
|
41
|
+
export declare function extractImageUrls(body: string): string[];
|
|
42
|
+
/**
|
|
43
|
+
* Recursively flatten an Atlassian Document Format (ADF) node to plain text.
|
|
44
|
+
* ADF is the JSON rich-text format used by Jira REST API v3 description fields.
|
|
45
|
+
*/
|
|
46
|
+
export declare function flattenAdf(node: unknown): string;
|
|
47
|
+
/**
|
|
48
|
+
* Derive the score-file key from a BugInput.
|
|
49
|
+
*
|
|
50
|
+
* GitHub issues become "gh-{number}" (e.g. "gh-12345").
|
|
51
|
+
* Jira keys are lowercased (e.g. "proj-2236").
|
|
52
|
+
*/
|
|
53
|
+
export declare function deriveScoreKey(bug: BugInput): string;
|
|
54
|
+
/**
|
|
55
|
+
* Score-file key for a GitHub issue number ("gh-{number}"). Single source of
|
|
56
|
+
* truth for the batch/skip-existing fast paths that derive a key from a raw ref
|
|
57
|
+
* before fetching the full BugInput — keep them in sync with deriveScoreKey.
|
|
58
|
+
*/
|
|
59
|
+
export declare function scoreKeyForGithub(issueNumber: string): string;
|
|
60
|
+
/** Score-file key for a Jira issue key (lowercased). See scoreKeyForGithub. */
|
|
61
|
+
export declare function scoreKeyForJira(key: string): string;
|
|
62
|
+
/**
|
|
63
|
+
* Parse a raw GitHub issue JSON response (from `gh issue view --json
|
|
64
|
+
* title,body,labels,state,url`) into a BugInput.
|
|
65
|
+
*
|
|
66
|
+
* Extracts: AC sections, reproduction steps, screenshot basenames,
|
|
67
|
+
* image URLs, and linked PR references from the issue body.
|
|
68
|
+
* Derives repo+number from the `url` field.
|
|
69
|
+
*/
|
|
70
|
+
export declare function parseBugInput(source: 'github' | 'jira', raw: unknown): BugInput;
|
|
71
|
+
/**
|
|
72
|
+
* Validate a scorer output object against the score-bug.sh contract.
|
|
73
|
+
* Throws with a teaching error message on any violation.
|
|
74
|
+
* On success, the value is narrowed to BugScore.
|
|
75
|
+
*/
|
|
76
|
+
export declare function validateBugScore(value: unknown): asserts value is BugScore;
|
|
77
|
+
//# sourceMappingURL=bug-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bug-input.d.ts","sourceRoot":"","sources":["../../src/contracts/bug-input.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/C,eAAO,MAAM,sBAAsB,+CAAgD,CAAC;AACpF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gFAAgF;IAChF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CA6BvD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAShD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAWpD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,QAAQ,CAG/E;AA6MD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CA2C1E"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
// bug-input.ts — Pure parsing/validation for bug-input.json (ported from
|
|
2
|
+
// triage-bug.sh, score-bug.sh, download-github-images.sh, and
|
|
3
|
+
// download-jira-images.sh). No IO — callers own network and file operations.
|
|
4
|
+
export const BUG_SCORE_DIFFICULTIES = ['low', 'medium', 'high', 'extreme'];
|
|
5
|
+
/**
|
|
6
|
+
* Extract image URLs from a GitHub issue body (markdown / HTML / bare
|
|
7
|
+
* GitHub user-content links). Shared helper for both GitHub markdown bodies
|
|
8
|
+
* and Jira ADF descriptions that happen to contain inline HTML.
|
|
9
|
+
*
|
|
10
|
+
* Returns full URLs filtered to image-like extensions or GitHub content hosts.
|
|
11
|
+
* Results are deduplicated and sorted for stable output.
|
|
12
|
+
*/
|
|
13
|
+
export function extractImageUrls(body) {
|
|
14
|
+
const urls = new Set();
|
|
15
|
+
//  markdown images
|
|
16
|
+
for (const m of body.matchAll(/!\[[^\]]*\]\(([^)]+)\)/g)) {
|
|
17
|
+
urls.add(m[1]);
|
|
18
|
+
}
|
|
19
|
+
// <img src="url"> or <img src='url'>
|
|
20
|
+
for (const m of body.matchAll(/<img[^>]+src=["']([^"'>]+)["']/g)) {
|
|
21
|
+
urls.add(m[1]);
|
|
22
|
+
}
|
|
23
|
+
// Bare GitHub user-content URLs (user-images.githubusercontent.com and
|
|
24
|
+
// github.com/user-attachments/assets paths used for drag-and-drop uploads)
|
|
25
|
+
for (const m of body.matchAll(/(https:\/\/(?:user-images\.githubusercontent\.com|github\.com\/user-attachments\/assets)\/[^\s)"'>]+)/g)) {
|
|
26
|
+
urls.add(m[1]);
|
|
27
|
+
}
|
|
28
|
+
const IMAGE_EXTENSIONS = ['.png', '.jpg', '.jpeg', '.gif', '.webp', '.svg'];
|
|
29
|
+
return [...urls].sort().filter((url) => {
|
|
30
|
+
const lower = url.toLowerCase();
|
|
31
|
+
const isImage = IMAGE_EXTENSIONS.some((ext) => lower.endsWith(ext));
|
|
32
|
+
const isGhContent = lower.includes('githubusercontent.com') || lower.includes('github.com/user-attachments');
|
|
33
|
+
return isImage || isGhContent;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Recursively flatten an Atlassian Document Format (ADF) node to plain text.
|
|
38
|
+
* ADF is the JSON rich-text format used by Jira REST API v3 description fields.
|
|
39
|
+
*/
|
|
40
|
+
export function flattenAdf(node) {
|
|
41
|
+
if (typeof node === 'string')
|
|
42
|
+
return node;
|
|
43
|
+
if (Array.isArray(node))
|
|
44
|
+
return node.map(flattenAdf).join(' ');
|
|
45
|
+
if (node !== null && typeof node === 'object') {
|
|
46
|
+
const n = node;
|
|
47
|
+
if (n['type'] === 'text')
|
|
48
|
+
return typeof n['text'] === 'string' ? n['text'] : '';
|
|
49
|
+
if (Array.isArray(n['content']))
|
|
50
|
+
return n['content'].map(flattenAdf).join(' ');
|
|
51
|
+
}
|
|
52
|
+
return '';
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Derive the score-file key from a BugInput.
|
|
56
|
+
*
|
|
57
|
+
* GitHub issues become "gh-{number}" (e.g. "gh-12345").
|
|
58
|
+
* Jira keys are lowercased (e.g. "proj-2236").
|
|
59
|
+
*/
|
|
60
|
+
export function deriveScoreKey(bug) {
|
|
61
|
+
if (bug.github_issue) {
|
|
62
|
+
const num = bug.github_issue.includes('#')
|
|
63
|
+
? bug.github_issue.split('#').pop()
|
|
64
|
+
: bug.github_issue;
|
|
65
|
+
return scoreKeyForGithub(num);
|
|
66
|
+
}
|
|
67
|
+
if (bug.jira_key) {
|
|
68
|
+
return scoreKeyForJira(bug.jira_key);
|
|
69
|
+
}
|
|
70
|
+
throw new Error('BugInput has neither github_issue nor jira_key — cannot derive score key');
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Score-file key for a GitHub issue number ("gh-{number}"). Single source of
|
|
74
|
+
* truth for the batch/skip-existing fast paths that derive a key from a raw ref
|
|
75
|
+
* before fetching the full BugInput — keep them in sync with deriveScoreKey.
|
|
76
|
+
*/
|
|
77
|
+
export function scoreKeyForGithub(issueNumber) {
|
|
78
|
+
return `gh-${issueNumber}`;
|
|
79
|
+
}
|
|
80
|
+
/** Score-file key for a Jira issue key (lowercased). See scoreKeyForGithub. */
|
|
81
|
+
export function scoreKeyForJira(key) {
|
|
82
|
+
return key.toLowerCase();
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Parse a raw GitHub issue JSON response (from `gh issue view --json
|
|
86
|
+
* title,body,labels,state,url`) into a BugInput.
|
|
87
|
+
*
|
|
88
|
+
* Extracts: AC sections, reproduction steps, screenshot basenames,
|
|
89
|
+
* image URLs, and linked PR references from the issue body.
|
|
90
|
+
* Derives repo+number from the `url` field.
|
|
91
|
+
*/
|
|
92
|
+
export function parseBugInput(source, raw) {
|
|
93
|
+
if (source === 'github')
|
|
94
|
+
return parseGitHubIssue(raw);
|
|
95
|
+
return parseJiraIssue(raw);
|
|
96
|
+
}
|
|
97
|
+
// ── Private helpers ──────────────────────────────────────────────────────────
|
|
98
|
+
function parseGitHubIssue(raw) {
|
|
99
|
+
const gh = (raw ?? {});
|
|
100
|
+
const url = typeof gh['url'] === 'string' ? gh['url'] : '';
|
|
101
|
+
const urlMatch = url.match(/https?:\/\/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
|
|
102
|
+
if (!urlMatch) {
|
|
103
|
+
throw Object.assign(new Error(`Cannot parse GitHub issue URL from raw JSON: "${url}"`), {
|
|
104
|
+
code: 'PARSE_ERROR',
|
|
105
|
+
userAction: 'Ensure the raw JSON comes from `gh issue view --json title,body,labels,state,url`.',
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
const repo = urlMatch[1];
|
|
109
|
+
const number = urlMatch[2];
|
|
110
|
+
const body = typeof gh['body'] === 'string' ? gh['body'] : '';
|
|
111
|
+
const title = typeof gh['title'] === 'string' ? gh['title'] : '';
|
|
112
|
+
const state = typeof gh['state'] === 'string' ? gh['state'].toLowerCase() : 'open';
|
|
113
|
+
const labels = parseLabels(gh['labels']);
|
|
114
|
+
const ac = parseMarkdownSection(body, /##\s*(?:Acceptance Criteria|Expected Behavior)\s*\n([\s\S]*?)(?=\n##|$)/);
|
|
115
|
+
const steps = parseMarkdownSection(body, /##\s*(?:Steps to Reproduce|Repro Steps)\s*\n([\s\S]*?)(?=\n##|$)/, true);
|
|
116
|
+
// Screenshots: basenames (≤50 chars) from markdown images and <img> tags,
|
|
117
|
+
// matching the shape triage-bug.sh's Python produced.
|
|
118
|
+
const screenshotUrls = [];
|
|
119
|
+
for (const m of body.matchAll(/!\[[^\]]*\]\(([^)]+)\)/g)) {
|
|
120
|
+
screenshotUrls.push(m[1]);
|
|
121
|
+
}
|
|
122
|
+
for (const m of body.matchAll(/<img[^>]+src=["']([^"'>]+)["']/g)) {
|
|
123
|
+
screenshotUrls.push(m[1]);
|
|
124
|
+
}
|
|
125
|
+
const screenshots = screenshotUrls.map((u) => {
|
|
126
|
+
const basename = u.split('/').pop() ?? u;
|
|
127
|
+
return basename.slice(0, 50);
|
|
128
|
+
});
|
|
129
|
+
// Linked PRs: #N or repo#N in body, excluding the current issue number.
|
|
130
|
+
const escapedRepo = repo.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
131
|
+
const linkPattern = new RegExp(`(?:${escapedRepo})?#(\\d+)`, 'g');
|
|
132
|
+
const linkedPrSet = new Set();
|
|
133
|
+
for (const m of body.matchAll(linkPattern)) {
|
|
134
|
+
if (m[1] !== number)
|
|
135
|
+
linkedPrSet.add(`${repo}#${m[1]}`);
|
|
136
|
+
}
|
|
137
|
+
const linked_prs = [...linkedPrSet];
|
|
138
|
+
const image_urls = extractImageUrls(body);
|
|
139
|
+
return {
|
|
140
|
+
source: 'github',
|
|
141
|
+
github_issue: `${repo}#${number}`,
|
|
142
|
+
jira_key: '',
|
|
143
|
+
title,
|
|
144
|
+
description: body,
|
|
145
|
+
acceptance_criteria: ac,
|
|
146
|
+
affected_area: '',
|
|
147
|
+
steps_to_reproduce: steps,
|
|
148
|
+
labels,
|
|
149
|
+
components: [],
|
|
150
|
+
screenshots,
|
|
151
|
+
state,
|
|
152
|
+
linked_prs,
|
|
153
|
+
image_urls,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function parseJiraIssue(raw) {
|
|
157
|
+
const jira = (raw ?? {});
|
|
158
|
+
if ('errorMessages' in jira) {
|
|
159
|
+
const msgs = jira['errorMessages'];
|
|
160
|
+
throw Object.assign(new Error(`Jira API error: ${JSON.stringify(msgs)}`), {
|
|
161
|
+
code: 'JIRA_API_ERROR',
|
|
162
|
+
userAction: 'Check JIRA_EMAIL, JIRA_TOKEN, and the Jira base URL in project.json.',
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
const key = typeof jira['key'] === 'string' ? jira['key'] : '';
|
|
166
|
+
const fields = (jira['fields'] ?? {});
|
|
167
|
+
const title = typeof fields['summary'] === 'string' ? fields['summary'] : '';
|
|
168
|
+
// Description: ADF object → flatten to text, or plain string fallback.
|
|
169
|
+
const descRaw = fields['description'];
|
|
170
|
+
const body = typeof descRaw === 'object' && descRaw !== null
|
|
171
|
+
? flattenAdf(descRaw)
|
|
172
|
+
: typeof descRaw === 'string'
|
|
173
|
+
? descRaw
|
|
174
|
+
: '';
|
|
175
|
+
const state = (() => {
|
|
176
|
+
const s = fields['status'];
|
|
177
|
+
if (s !== null && typeof s === 'object') {
|
|
178
|
+
const name = s['name'];
|
|
179
|
+
return typeof name === 'string' ? name.toLowerCase() : 'open';
|
|
180
|
+
}
|
|
181
|
+
return typeof s === 'string' ? s.toLowerCase() : 'open';
|
|
182
|
+
})();
|
|
183
|
+
const rawLabels = fields['labels'];
|
|
184
|
+
const labels = Array.isArray(rawLabels)
|
|
185
|
+
? rawLabels.filter((l) => typeof l === 'string')
|
|
186
|
+
: [];
|
|
187
|
+
const components = (() => {
|
|
188
|
+
const raw = fields['components'];
|
|
189
|
+
if (!Array.isArray(raw))
|
|
190
|
+
return [];
|
|
191
|
+
return raw
|
|
192
|
+
.map((c) => {
|
|
193
|
+
if (c !== null && typeof c === 'object') {
|
|
194
|
+
const name = c['name'];
|
|
195
|
+
return typeof name === 'string' ? name : '';
|
|
196
|
+
}
|
|
197
|
+
return typeof c === 'string' ? c : '';
|
|
198
|
+
})
|
|
199
|
+
.filter(Boolean);
|
|
200
|
+
})();
|
|
201
|
+
const ac = parseJiraSection(body, /(?:Acceptance Criteria|Expected Behavior)[:\s]*\n([\s\S]*?)(?=\n[A-Z]|$)/);
|
|
202
|
+
const steps = parseJiraSection(body, /(?:Steps to Reproduce|Repro Steps)[:\s]*\n([\s\S]*?)(?=\n[A-Z]|$)/, true);
|
|
203
|
+
// Jira attachments are downloaded separately via the attachment API;
|
|
204
|
+
// image_urls from the description text is available for embedded images.
|
|
205
|
+
const image_urls = extractImageUrls(body);
|
|
206
|
+
return {
|
|
207
|
+
source: 'jira',
|
|
208
|
+
github_issue: '',
|
|
209
|
+
jira_key: key,
|
|
210
|
+
title,
|
|
211
|
+
description: body,
|
|
212
|
+
acceptance_criteria: ac,
|
|
213
|
+
affected_area: '',
|
|
214
|
+
steps_to_reproduce: steps,
|
|
215
|
+
labels,
|
|
216
|
+
components,
|
|
217
|
+
screenshots: [],
|
|
218
|
+
state,
|
|
219
|
+
linked_prs: [],
|
|
220
|
+
image_urls,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Parse a markdown `## Section` into trimmed non-empty lines.
|
|
225
|
+
* When `isSteps` is true, also strips leading ordered-list markers (e.g. "1. ")
|
|
226
|
+
* matching the Python `re.sub(r'^[\s\d.*-]+', '', line)` used for steps sections.
|
|
227
|
+
* For other sections (e.g. AC), only list bullets (`*`, `-`) and whitespace are stripped.
|
|
228
|
+
*/
|
|
229
|
+
function parseMarkdownSection(body, pattern, isSteps = false) {
|
|
230
|
+
const match = body.match(pattern);
|
|
231
|
+
if (!match?.[1])
|
|
232
|
+
return [];
|
|
233
|
+
const stripPattern = isSteps ? /^[\s\d.*-]+/ : /^[\s*-]+/;
|
|
234
|
+
return match[1]
|
|
235
|
+
.trim()
|
|
236
|
+
.split('\n')
|
|
237
|
+
.map((line) => line.replace(stripPattern, '').trim())
|
|
238
|
+
.filter(Boolean);
|
|
239
|
+
}
|
|
240
|
+
/** Parse a Jira section header (no `##` prefix) into trimmed non-empty lines. */
|
|
241
|
+
function parseJiraSection(body, pattern, isSteps = false) {
|
|
242
|
+
const match = body.match(pattern);
|
|
243
|
+
if (!match?.[1])
|
|
244
|
+
return [];
|
|
245
|
+
const stripPattern = isSteps ? /^[\s\d.*-]+/ : /^[\s*-]+/;
|
|
246
|
+
return match[1]
|
|
247
|
+
.trim()
|
|
248
|
+
.split('\n')
|
|
249
|
+
.map((line) => line.replace(stripPattern, '').trim())
|
|
250
|
+
.filter(Boolean);
|
|
251
|
+
}
|
|
252
|
+
function parseLabels(raw) {
|
|
253
|
+
if (!Array.isArray(raw))
|
|
254
|
+
return [];
|
|
255
|
+
return raw
|
|
256
|
+
.map((l) => {
|
|
257
|
+
if (l !== null && typeof l === 'object') {
|
|
258
|
+
const name = l['name'];
|
|
259
|
+
return typeof name === 'string' ? name : '';
|
|
260
|
+
}
|
|
261
|
+
return typeof l === 'string' ? l : '';
|
|
262
|
+
})
|
|
263
|
+
.filter(Boolean);
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Validate a scorer output object against the score-bug.sh contract.
|
|
267
|
+
* Throws with a teaching error message on any violation.
|
|
268
|
+
* On success, the value is narrowed to BugScore.
|
|
269
|
+
*/
|
|
270
|
+
export function validateBugScore(value) {
|
|
271
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value)) {
|
|
272
|
+
throw Object.assign(new Error('scorer output must be a JSON object'), {
|
|
273
|
+
code: 'INVALID_SCORE',
|
|
274
|
+
userAction: 'Ensure the scoring script emits a JSON object to stdout.',
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
const d = value;
|
|
278
|
+
const required = ['difficulty', 'one_shot_probability', 'category'];
|
|
279
|
+
const missing = required.filter((f) => !(f in d));
|
|
280
|
+
if (missing.length > 0) {
|
|
281
|
+
throw Object.assign(new Error(`scorer output is missing required fields: ${JSON.stringify(missing)}`), {
|
|
282
|
+
code: 'INVALID_SCORE',
|
|
283
|
+
userAction: `Add the missing fields to your scoring script output: ${missing.join(', ')}.`,
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
if (!BUG_SCORE_DIFFICULTIES.includes(d['difficulty'])) {
|
|
287
|
+
throw Object.assign(new Error(`difficulty must be one of ${JSON.stringify([...BUG_SCORE_DIFFICULTIES])}, got: ${JSON.stringify(d['difficulty'])}`), {
|
|
288
|
+
code: 'INVALID_SCORE',
|
|
289
|
+
userAction: `Set difficulty to one of: ${BUG_SCORE_DIFFICULTIES.join(', ')}.`,
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
const prob = d['one_shot_probability'];
|
|
293
|
+
if (typeof prob !== 'number' || isNaN(prob) || prob < 0 || prob > 1) {
|
|
294
|
+
throw Object.assign(new Error(`one_shot_probability must be a number in [0, 1], got: ${JSON.stringify(prob)}`), {
|
|
295
|
+
code: 'INVALID_SCORE',
|
|
296
|
+
userAction: 'Set one_shot_probability to a decimal between 0 and 1 (e.g. 0.4).',
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
//# sourceMappingURL=bug-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bug-input.js","sourceRoot":"","sources":["../../src/contracts/bug-input.ts"],"names":[],"mappings":"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"}
|