@farmslot/protocol 0.6.0 → 0.7.2
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 +15 -0
- package/LICENSE +21 -0
- package/README.md +4 -0
- package/dist/contracts/agents.d.ts +22 -0
- package/dist/contracts/agents.d.ts.map +1 -1
- package/dist/contracts/analytics.d.ts +161 -0
- package/dist/contracts/analytics.d.ts.map +1 -0
- package/dist/contracts/analytics.js +27 -0
- package/dist/contracts/analytics.js.map +1 -0
- package/dist/contracts/backlog.d.ts +75 -0
- package/dist/contracts/backlog.d.ts.map +1 -1
- package/dist/contracts/backlog.js +85 -0
- package/dist/contracts/backlog.js.map +1 -1
- package/dist/contracts/config.d.ts +64 -0
- package/dist/contracts/config.d.ts.map +1 -1
- package/dist/contracts/config.js +14 -1
- package/dist/contracts/config.js.map +1 -1
- package/dist/contracts/dispatch.d.ts +18 -0
- package/dist/contracts/dispatch.d.ts.map +1 -1
- package/dist/contracts/evals.d.ts +1 -1
- package/dist/contracts/evals.d.ts.map +1 -1
- package/dist/contracts/evals.js.map +1 -1
- package/dist/contracts/family.d.ts +47 -0
- package/dist/contracts/family.d.ts.map +1 -1
- package/dist/contracts/family.js.map +1 -1
- package/dist/contracts/index.d.ts +6 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +6 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/recipes.d.ts +1 -1
- package/dist/contracts/recipes.d.ts.map +1 -1
- package/dist/contracts/recipes.js +1 -1
- package/dist/contracts/recipes.js.map +1 -1
- package/dist/contracts/roadmap.d.ts +45 -0
- package/dist/contracts/roadmap.d.ts.map +1 -0
- package/dist/contracts/roadmap.js +10 -0
- package/dist/contracts/roadmap.js.map +1 -0
- package/dist/contracts/run-bundles.d.ts +72 -0
- package/dist/contracts/run-bundles.d.ts.map +1 -0
- package/dist/contracts/run-bundles.js +24 -0
- package/dist/contracts/run-bundles.js.map +1 -0
- package/dist/contracts/runs.d.ts +277 -8
- package/dist/contracts/runs.d.ts.map +1 -1
- package/dist/contracts/runs.js +70 -6
- package/dist/contracts/runs.js.map +1 -1
- package/dist/contracts/slots.d.ts +20 -0
- package/dist/contracts/slots.d.ts.map +1 -1
- package/dist/contracts/slots.js +11 -1
- package/dist/contracts/slots.js.map +1 -1
- package/dist/contracts/validation-plan.d.ts +19 -0
- package/dist/contracts/validation-plan.d.ts.map +1 -0
- package/dist/contracts/validation-plan.js +2 -0
- package/dist/contracts/validation-plan.js.map +1 -0
- package/dist/contracts/work-graph.d.ts +182 -0
- package/dist/contracts/work-graph.d.ts.map +1 -0
- package/dist/contracts/work-graph.js +2 -0
- package/dist/contracts/work-graph.js.map +1 -0
- package/dist/contracts/worker-terminal.d.ts +31 -0
- package/dist/contracts/worker-terminal.d.ts.map +1 -0
- package/dist/contracts/worker-terminal.js +2 -0
- package/dist/contracts/worker-terminal.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/node/capture-helper-path.d.ts +3 -0
- package/dist/node/capture-helper-path.d.ts.map +1 -0
- package/dist/node/capture-helper-path.js +77 -0
- package/dist/node/capture-helper-path.js.map +1 -0
- package/dist/node/farmslot-home.d.ts +9 -0
- package/dist/node/farmslot-home.d.ts.map +1 -0
- package/dist/node/farmslot-home.js +20 -0
- package/dist/node/farmslot-home.js.map +1 -0
- package/dist/pairing/index.d.ts +2 -0
- package/dist/pairing/index.d.ts.map +1 -0
- package/dist/pairing/index.js +2 -0
- package/dist/pairing/index.js.map +1 -0
- package/dist/pairing/tailscale.d.ts +4 -0
- package/dist/pairing/tailscale.d.ts.map +1 -0
- package/dist/pairing/tailscale.js +27 -0
- package/dist/pairing/tailscale.js.map +1 -0
- package/dist/recipe/artifact.d.ts.map +1 -1
- package/dist/recipe/artifact.js +63 -0
- package/dist/recipe/artifact.js.map +1 -1
- package/dist/recipe/common.d.ts +11 -0
- package/dist/recipe/common.d.ts.map +1 -1
- package/dist/recipe/common.js +7 -0
- package/dist/recipe/common.js.map +1 -1
- package/dist/recipe/document.d.ts +10 -2
- package/dist/recipe/document.d.ts.map +1 -1
- package/dist/recipe/document.js +7 -7
- package/dist/recipe/document.js.map +1 -1
- package/dist/recipe/index.d.ts +2 -2
- package/dist/recipe/index.d.ts.map +1 -1
- package/dist/recipe/index.js +1 -1
- package/dist/recipe/index.js.map +1 -1
- package/dist/recipe/manifest.d.ts.map +1 -1
- package/dist/recipe/manifest.js +37 -0
- package/dist/recipe/manifest.js.map +1 -1
- package/dist/recipe/workflow.d.ts +3 -1
- package/dist/recipe/workflow.d.ts.map +1 -1
- package/dist/recipe/workflow.js +66 -3
- package/dist/recipe/workflow.js.map +1 -1
- package/dist/recipes/step-io.d.ts +27 -1
- package/dist/recipes/step-io.d.ts.map +1 -1
- package/dist/recipes/step-io.js +19 -0
- package/dist/recipes/step-io.js.map +1 -1
- package/dist/rpc/auth.d.ts +11 -0
- package/dist/rpc/auth.d.ts.map +1 -1
- package/dist/rpc/backlog.d.ts +8 -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/config.d.ts +17 -0
- package/dist/rpc/config.d.ts.map +1 -1
- package/dist/rpc/dispatch.d.ts +25 -0
- package/dist/rpc/dispatch.d.ts.map +1 -1
- package/dist/rpc/dispatch.js +1 -0
- package/dist/rpc/dispatch.js.map +1 -1
- package/dist/rpc/gateway.d.ts +94 -0
- package/dist/rpc/gateway.d.ts.map +1 -0
- package/dist/rpc/gateway.js +7 -0
- package/dist/rpc/gateway.js.map +1 -0
- package/dist/rpc/index.d.ts +3 -0
- package/dist/rpc/index.d.ts.map +1 -1
- package/dist/rpc/index.js +3 -0
- package/dist/rpc/index.js.map +1 -1
- package/dist/rpc/registry.d.ts +35 -0
- package/dist/rpc/registry.d.ts.map +1 -1
- package/dist/rpc/registry.js +39 -0
- package/dist/rpc/registry.js.map +1 -1
- package/dist/rpc/resources.d.ts +39 -0
- package/dist/rpc/resources.d.ts.map +1 -1
- package/dist/rpc/resources.js +2 -0
- package/dist/rpc/resources.js.map +1 -1
- package/dist/rpc/roadmap.d.ts +84 -0
- package/dist/rpc/roadmap.d.ts.map +1 -0
- package/dist/rpc/roadmap.js +10 -0
- package/dist/rpc/roadmap.js.map +1 -0
- package/dist/rpc/run.d.ts +90 -2
- package/dist/rpc/run.d.ts.map +1 -1
- package/dist/rpc/run.js +4 -0
- package/dist/rpc/run.js.map +1 -1
- package/dist/rpc/slot.d.ts +87 -0
- package/dist/rpc/slot.d.ts.map +1 -1
- package/dist/rpc/slot.js +1 -0
- package/dist/rpc/slot.js.map +1 -1
- package/dist/rpc/tmux.d.ts +10 -0
- package/dist/rpc/tmux.d.ts.map +1 -1
- package/dist/rpc/work-graph.d.ts +85 -0
- package/dist/rpc/work-graph.d.ts.map +1 -0
- package/dist/rpc/work-graph.js +16 -0
- package/dist/rpc/work-graph.js.map +1 -0
- package/dist/runs/evidence-summary.d.ts +14 -0
- package/dist/runs/evidence-summary.d.ts.map +1 -0
- package/dist/runs/evidence-summary.js +157 -0
- package/dist/runs/evidence-summary.js.map +1 -0
- package/dist/runs/family-iteration-ledger.d.ts +35 -0
- package/dist/runs/family-iteration-ledger.d.ts.map +1 -0
- package/dist/runs/family-iteration-ledger.js +217 -0
- package/dist/runs/family-iteration-ledger.js.map +1 -0
- package/dist/runs/family-readiness.d.ts.map +1 -1
- package/dist/runs/family-readiness.js +2 -3
- package/dist/runs/family-readiness.js.map +1 -1
- package/dist/runs/portable-bundle.d.ts +11 -0
- package/dist/runs/portable-bundle.d.ts.map +1 -0
- package/dist/runs/portable-bundle.js +103 -0
- package/dist/runs/portable-bundle.js.map +1 -0
- package/dist/runs/run-mode.d.ts +27 -0
- package/dist/runs/run-mode.d.ts.map +1 -0
- package/dist/runs/run-mode.js +53 -0
- package/dist/runs/run-mode.js.map +1 -0
- package/dist/runs/slot-resolution.d.ts +4 -0
- package/dist/runs/slot-resolution.d.ts.map +1 -0
- package/dist/runs/slot-resolution.js +23 -0
- package/dist/runs/slot-resolution.js.map +1 -0
- package/dist/slots/dispatch-scoring.d.ts +4 -0
- package/dist/slots/dispatch-scoring.d.ts.map +1 -0
- package/dist/slots/dispatch-scoring.js +6 -0
- package/dist/slots/dispatch-scoring.js.map +1 -0
- package/dist/slots/tracking-branch.d.ts +30 -0
- package/dist/slots/tracking-branch.d.ts.map +1 -0
- package/dist/slots/tracking-branch.js +41 -0
- package/dist/slots/tracking-branch.js.map +1 -0
- package/dist/surfaces/command-center.d.ts.map +1 -1
- package/dist/surfaces/command-center.js +7 -1
- package/dist/surfaces/command-center.js.map +1 -1
- package/dist/transport/events.d.ts +19 -1
- package/dist/transport/events.d.ts.map +1 -1
- package/dist/transport/events.js +8 -0
- package/dist/transport/events.js.map +1 -1
- package/dist/transport/signal.d.ts +33 -0
- package/dist/transport/signal.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +55 -4
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,21 @@ All notable changes to `@farmslot/protocol` are tracked here.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
- Active-development baseline; add user-facing changes here before release or package publication.
|
|
8
|
+
|
|
9
|
+
## 0.7.2 - 2026-07-03
|
|
10
|
+
|
|
11
|
+
- Rename the team overlay abstraction to "domain" (contracts, rpc, DOMAIN_NAME_RE/isValidDomainName) — clean break, no alias
|
|
12
|
+
- validateRecipeDocument / validateRecipeWithManifest accept an optional externalFlowIds set so call refs resolvable from configured recipe library sources are not reported as unresolved
|
|
13
|
+
|
|
14
|
+
## 0.7.1 - 2026-07-02
|
|
15
|
+
|
|
16
|
+
- Add GatewayReleaseNotes and optional gateway.status.releaseNotes for operator-facing gateway release notes
|
|
17
|
+
|
|
18
|
+
## 0.7.0 - 2026-06-30
|
|
19
|
+
|
|
20
|
+
- Add Gateway Doctor catalog/report fields plus section-scoped request parameters for progressive clients.
|
|
21
|
+
|
|
7
22
|
## 0.6.0 - 2026-06-02
|
|
8
23
|
|
|
9
24
|
- Define the v0 public package surface with explicit `contracts`, `rpc`, and `recipe` entry points.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Arthur Breton
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -56,4 +56,26 @@ export interface AgentContextSelector {
|
|
|
56
56
|
target?: string;
|
|
57
57
|
}
|
|
58
58
|
export type SafetyTier = 'sandboxed' | 'full-auto' | 'dangerous';
|
|
59
|
+
export type ScriptedRunnerScenario = 'success' | 'failure' | 'timeout';
|
|
60
|
+
export type ScriptedRunnerConfig = {
|
|
61
|
+
mode: 'scenario';
|
|
62
|
+
scenario: ScriptedRunnerScenario;
|
|
63
|
+
stepDelayMs?: number;
|
|
64
|
+
} | {
|
|
65
|
+
mode: 'command';
|
|
66
|
+
commandRef: string;
|
|
67
|
+
timeoutMs?: number;
|
|
68
|
+
};
|
|
69
|
+
export interface ExecutorRef {
|
|
70
|
+
runner: string;
|
|
71
|
+
model?: string | null;
|
|
72
|
+
scripted?: ScriptedRunnerConfig;
|
|
73
|
+
safetyTier?: SafetyTier;
|
|
74
|
+
}
|
|
75
|
+
export interface ExecutorPolicy {
|
|
76
|
+
worker?: ExecutorRef;
|
|
77
|
+
selfReview?: ExecutorRef;
|
|
78
|
+
ciRepair?: ExecutorRef;
|
|
79
|
+
validation?: ExecutorRef;
|
|
80
|
+
}
|
|
59
81
|
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/contracts/agents.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvD,eAAO,MAAM,WAAW,8FAQd,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,kBAAkB,GAC1B,WAAW,GACX,SAAS,GACT,SAAS,GACT,UAAU,GACV,QAAQ,GACR,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;6CAIyC;IACzC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/contracts/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import type { FlowType, RunLane, RunStatus } from './runs.js';
|
|
2
|
+
/** Bumped when the on-disk record shape changes in a non-additive way. */
|
|
3
|
+
export declare const ANALYTICS_RECORD_SCHEMA_VERSION = 1;
|
|
4
|
+
/**
|
|
5
|
+
* Normalized cause for a non-`done` terminal run. `operator-cancelled` describes a cancelled
|
|
6
|
+
* terminal; the rest describe genuine step failures. (`blocked` is non-terminal in this system —
|
|
7
|
+
* a blocked run emits when it later resolves to done/failed/cancelled — so it has no reason code.)
|
|
8
|
+
*/
|
|
9
|
+
export type FailureReason = 'merge-conflict' | 'metro-timeout' | 'cdp-timeout' | 'dep-install' | 'auth' | 'ci-flake' | 'lint' | 'type' | 'test' | 'timeout' | 'operator-cancelled' | 'unknown';
|
|
10
|
+
export declare const FAILURE_REASONS: readonly FailureReason[];
|
|
11
|
+
/** Machine-pressure snapshot captured at prepare start (forward-capture only). */
|
|
12
|
+
export interface HostLoadSnapshot {
|
|
13
|
+
/** 1-minute load average (os.loadavg()[0]). */
|
|
14
|
+
load1: number;
|
|
15
|
+
/** Free memory as a percentage of total (0-100). */
|
|
16
|
+
freeMemPct: number;
|
|
17
|
+
/** Count of runs active on the same host when this run's prepare began. */
|
|
18
|
+
activeRunsOnHost: number;
|
|
19
|
+
}
|
|
20
|
+
/** Per-step snapshot embedded in the run record. Final state of each step, not retry history. */
|
|
21
|
+
export interface AnalyticsStepRecord {
|
|
22
|
+
name: string;
|
|
23
|
+
status: string;
|
|
24
|
+
startedAt?: string;
|
|
25
|
+
completedAt?: string;
|
|
26
|
+
durationMs?: number;
|
|
27
|
+
}
|
|
28
|
+
/** One emitted record per terminal run. */
|
|
29
|
+
export interface RunAnalyticsRecord {
|
|
30
|
+
schemaVersion: number;
|
|
31
|
+
/** Terminal-transition timestamp (when the record was emitted). */
|
|
32
|
+
ts: string;
|
|
33
|
+
runId: string;
|
|
34
|
+
familyId?: string;
|
|
35
|
+
project: string;
|
|
36
|
+
/** Machine the run landed on, derived from the slot id; `unknown` when unresolved. */
|
|
37
|
+
host: string;
|
|
38
|
+
slotId: string | null;
|
|
39
|
+
flowType: FlowType;
|
|
40
|
+
lane: RunLane;
|
|
41
|
+
variant?: string | null;
|
|
42
|
+
runner: string | null;
|
|
43
|
+
model: string | null;
|
|
44
|
+
status: RunStatus;
|
|
45
|
+
outcome: 'success' | 'failure' | 'partial' | 'cancelled' | null;
|
|
46
|
+
/** Step the run died at (failed step, else the last non-terminal step), or null for clean runs. */
|
|
47
|
+
failedStep: string | null;
|
|
48
|
+
failureReason: FailureReason | null;
|
|
49
|
+
steps: AnalyticsStepRecord[];
|
|
50
|
+
/** completedAt − createdAt. */
|
|
51
|
+
wallMs: number | null;
|
|
52
|
+
/** wallMs − Σ step durations: queue + human-gate + CI waiting. */
|
|
53
|
+
idleMs: number | null;
|
|
54
|
+
nudgeCount: number;
|
|
55
|
+
/** Self-review attempt count when captured, else null. */
|
|
56
|
+
selfReviewLoops: number | null;
|
|
57
|
+
ciResult: string | null;
|
|
58
|
+
ciPollCount: number | null;
|
|
59
|
+
ciInlineFixAttempts: number | null;
|
|
60
|
+
/**
|
|
61
|
+
* Distinct human reviewers who requested changes, when captured. Forward-capture only: stored
|
|
62
|
+
* per-run but not yet rolled up in AnalyticsQueryResult — reserved for the review-signals lane.
|
|
63
|
+
*/
|
|
64
|
+
humanReviewersRequestingChanges: number | null;
|
|
65
|
+
hostLoad: HostLoadSnapshot | null;
|
|
66
|
+
/**
|
|
67
|
+
* Total session tokens (worker), when captured; null when the runner reported
|
|
68
|
+
* no usage. Optional: records emitted before token capture shipped omit it
|
|
69
|
+
* entirely (readers treat absent and null alike).
|
|
70
|
+
*/
|
|
71
|
+
totalTokens?: number | null;
|
|
72
|
+
/**
|
|
73
|
+
* Session tokens keyed by model id, when captured. Empty when no usage was
|
|
74
|
+
* reported; absent on pre-token-capture records (readers default to `{}`).
|
|
75
|
+
*/
|
|
76
|
+
tokensByModel?: Record<string, number>;
|
|
77
|
+
/** Compact template identity for grouping; null when no provenance was captured. */
|
|
78
|
+
templateKey: string | null;
|
|
79
|
+
/** True when produced by the one-time backfill rather than a live terminal transition. */
|
|
80
|
+
backfilled?: boolean;
|
|
81
|
+
}
|
|
82
|
+
export interface AnalyticsQueryParams {
|
|
83
|
+
project?: string;
|
|
84
|
+
host?: string;
|
|
85
|
+
flowType?: FlowType;
|
|
86
|
+
runner?: string;
|
|
87
|
+
model?: string;
|
|
88
|
+
lane?: RunLane;
|
|
89
|
+
/** ISO lower bound on record ts (inclusive). */
|
|
90
|
+
since?: string;
|
|
91
|
+
/** ISO upper bound on record ts (exclusive). */
|
|
92
|
+
until?: string;
|
|
93
|
+
}
|
|
94
|
+
export interface DurationStats {
|
|
95
|
+
n: number;
|
|
96
|
+
p50: number | null;
|
|
97
|
+
p90: number | null;
|
|
98
|
+
max: number | null;
|
|
99
|
+
}
|
|
100
|
+
export interface BottleneckEntry {
|
|
101
|
+
step: string;
|
|
102
|
+
stats: DurationStats;
|
|
103
|
+
}
|
|
104
|
+
export interface LoopStats {
|
|
105
|
+
distribution: Record<string, number>;
|
|
106
|
+
p50: number | null;
|
|
107
|
+
p90: number | null;
|
|
108
|
+
max: number | null;
|
|
109
|
+
}
|
|
110
|
+
export interface NudgeStats {
|
|
111
|
+
avg: number;
|
|
112
|
+
/** Fraction of runs with zero nudges (0-1). */
|
|
113
|
+
zeroRate: number;
|
|
114
|
+
/** Average nudge count keyed by model. */
|
|
115
|
+
byModel: Record<string, number>;
|
|
116
|
+
}
|
|
117
|
+
export interface CiStats {
|
|
118
|
+
resultBreakdown: Record<string, number>;
|
|
119
|
+
pollCount: DurationStats;
|
|
120
|
+
inlineFixAttempts: DurationStats;
|
|
121
|
+
}
|
|
122
|
+
/** Distinct filter values present in the scanned corpus, for UI dropdowns. */
|
|
123
|
+
export interface AnalyticsDimensions {
|
|
124
|
+
projects: string[];
|
|
125
|
+
hosts: string[];
|
|
126
|
+
flowTypes: string[];
|
|
127
|
+
runners: string[];
|
|
128
|
+
models: string[];
|
|
129
|
+
}
|
|
130
|
+
export interface AnalyticsQueryResult {
|
|
131
|
+
generatedAt: string;
|
|
132
|
+
/** Records matching the filter. */
|
|
133
|
+
matchedRuns: number;
|
|
134
|
+
/** Records scanned before filtering. */
|
|
135
|
+
scannedRuns: number;
|
|
136
|
+
/** Corrupt sink lines skipped while reading; >0 means the numbers cover slightly fewer runs. */
|
|
137
|
+
parseFailures: number;
|
|
138
|
+
byStatus: Record<string, number>;
|
|
139
|
+
byModel: Record<string, number>;
|
|
140
|
+
/** Total session tokens summed by model id across matched runs. */
|
|
141
|
+
tokensByModel: Record<string, number>;
|
|
142
|
+
/** Distribution of per-run total session tokens. */
|
|
143
|
+
tokens: DurationStats;
|
|
144
|
+
byRunner: Record<string, number>;
|
|
145
|
+
byTemplate: Record<string, number>;
|
|
146
|
+
bottleneck: BottleneckEntry[];
|
|
147
|
+
wall: DurationStats;
|
|
148
|
+
idle: DurationStats;
|
|
149
|
+
failureByStep: Record<string, number>;
|
|
150
|
+
failureByReason: Record<string, number>;
|
|
151
|
+
selfReviewLoops: LoopStats;
|
|
152
|
+
ci: CiStats;
|
|
153
|
+
nudges: NudgeStats;
|
|
154
|
+
dimensions: AnalyticsDimensions;
|
|
155
|
+
}
|
|
156
|
+
export interface AnalyticsBackfillResult {
|
|
157
|
+
scanned: number;
|
|
158
|
+
written: number;
|
|
159
|
+
skipped: number;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=analytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/contracts/analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// ─── Pipeline-ops analytics ───
|
|
2
|
+
//
|
|
3
|
+
// A compact, append-only telemetry record emitted once per terminal run, decoupled
|
|
4
|
+
// from the prunable run-history store. Holds distilled metrics only — never
|
|
5
|
+
// transcripts or large step outputs. See docs/plans/pipeline-ops-analytics-goal.md.
|
|
6
|
+
//
|
|
7
|
+
// Token counts ARE captured (extraction became reliable via the gate-summary
|
|
8
|
+
// projection). Dollar cost stays absent on purpose — pricing varies by
|
|
9
|
+
// enterprise/subscription account and must be overridable per project, not a
|
|
10
|
+
// hardcoded table; it is deferred to a later cost lane.
|
|
11
|
+
/** Bumped when the on-disk record shape changes in a non-additive way. */
|
|
12
|
+
export const ANALYTICS_RECORD_SCHEMA_VERSION = 1;
|
|
13
|
+
export const FAILURE_REASONS = [
|
|
14
|
+
'merge-conflict',
|
|
15
|
+
'metro-timeout',
|
|
16
|
+
'cdp-timeout',
|
|
17
|
+
'dep-install',
|
|
18
|
+
'auth',
|
|
19
|
+
'ci-flake',
|
|
20
|
+
'lint',
|
|
21
|
+
'type',
|
|
22
|
+
'test',
|
|
23
|
+
'timeout',
|
|
24
|
+
'operator-cancelled',
|
|
25
|
+
'unknown',
|
|
26
|
+
];
|
|
27
|
+
//# sourceMappingURL=analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/contracts/analytics.ts"],"names":[],"mappings":"AAEA,iCAAiC;AACjC,EAAE;AACF,mFAAmF;AACnF,4EAA4E;AAC5E,oFAAoF;AACpF,EAAE;AACF,6EAA6E;AAC7E,uEAAuE;AACvE,6EAA6E;AAC7E,wDAAwD;AAExD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAqBjD,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,aAAa;IACb,MAAM;IACN,UAAU;IACV,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,oBAAoB;IACpB,SAAS;CACV,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ScriptedRunnerConfig } from './agents.js';
|
|
1
2
|
import type { QueueItem } from './dispatch.js';
|
|
2
3
|
import type { FlowType, RunStatus } from './runs.js';
|
|
3
4
|
export declare const BACKLOG_STATUSES: readonly ["candidate", "ready", "queued", "dispatching", "running", "done", "failed", "needs-attention", "archived"];
|
|
@@ -10,6 +11,49 @@ export interface BacklogAutoDispatchPolicy {
|
|
|
10
11
|
export interface ProjectBacklogConfig {
|
|
11
12
|
autoDispatch?: BacklogAutoDispatchPolicy;
|
|
12
13
|
}
|
|
14
|
+
export type BacklogLaunchSlotPolicy = {
|
|
15
|
+
kind: 'exact';
|
|
16
|
+
slotId: string;
|
|
17
|
+
} | {
|
|
18
|
+
kind: 'pool';
|
|
19
|
+
allowedSlots: string[];
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'spread';
|
|
22
|
+
allowedSlots?: string[];
|
|
23
|
+
};
|
|
24
|
+
export type BacklogLaunchCandidateRole = 'baseline' | 'comparison';
|
|
25
|
+
export interface BacklogLaunchCandidate {
|
|
26
|
+
id: string;
|
|
27
|
+
role: BacklogLaunchCandidateRole;
|
|
28
|
+
label?: string;
|
|
29
|
+
runner?: string;
|
|
30
|
+
model?: string;
|
|
31
|
+
effort?: string;
|
|
32
|
+
/** Required for comparison candidates; baseline candidates must omit it. */
|
|
33
|
+
variant?: string;
|
|
34
|
+
slotPolicy: BacklogLaunchSlotPolicy;
|
|
35
|
+
}
|
|
36
|
+
export interface BacklogLaunchPlan {
|
|
37
|
+
id: string;
|
|
38
|
+
version: 1;
|
|
39
|
+
candidates: BacklogLaunchCandidate[];
|
|
40
|
+
}
|
|
41
|
+
export type BacklogLaunchCandidateStatus = 'planned' | 'queued' | 'running' | 'gated' | 'succeeded' | 'failed' | 'cancelled' | 'blocked';
|
|
42
|
+
export interface BacklogLaunchCandidateProjection {
|
|
43
|
+
candidateId: string;
|
|
44
|
+
status: BacklogLaunchCandidateStatus;
|
|
45
|
+
queueItemId?: string;
|
|
46
|
+
runId?: string;
|
|
47
|
+
slotId?: string;
|
|
48
|
+
waitingReason?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface BacklogLaunchPlanState {
|
|
51
|
+
launchGroupId: string;
|
|
52
|
+
baselineRunId?: string;
|
|
53
|
+
baselineQueueItemId?: string;
|
|
54
|
+
candidates: BacklogLaunchCandidateProjection[];
|
|
55
|
+
}
|
|
56
|
+
export declare function assertBacklogLaunchPlan(value: unknown): asserts value is BacklogLaunchPlan;
|
|
13
57
|
export interface BacklogItem {
|
|
14
58
|
id: string;
|
|
15
59
|
project: string;
|
|
@@ -20,9 +64,24 @@ export interface BacklogItem {
|
|
|
20
64
|
flowType: FlowType;
|
|
21
65
|
status: BacklogStatus;
|
|
22
66
|
notes?: string;
|
|
67
|
+
/** Shared normalized tags propagated to created runs. */
|
|
68
|
+
tags?: string[];
|
|
69
|
+
/** Originating ADR-041 roadmap item, when promoted from roadmap. */
|
|
70
|
+
roadmapItemId?: string;
|
|
71
|
+
/** Local markdown spec backing this backlog item. */
|
|
72
|
+
specPath?: string;
|
|
73
|
+
/** Work graph linkage; graph-linked backlog items can only be enqueued by the graph scheduler. */
|
|
74
|
+
workGraphId?: string;
|
|
75
|
+
workNodeId?: string;
|
|
23
76
|
priority: number;
|
|
24
77
|
allowedSlots?: string[];
|
|
25
78
|
autoDispatch?: boolean;
|
|
79
|
+
runner?: string;
|
|
80
|
+
model?: string;
|
|
81
|
+
scripted?: ScriptedRunnerConfig;
|
|
82
|
+
effort?: string;
|
|
83
|
+
launchPlan?: BacklogLaunchPlan;
|
|
84
|
+
launchPlanState?: BacklogLaunchPlanState;
|
|
26
85
|
createdAt: string;
|
|
27
86
|
updatedAt: string;
|
|
28
87
|
queuedQueueItemId?: string;
|
|
@@ -43,9 +102,17 @@ export interface BacklogCreateInput {
|
|
|
43
102
|
sourceUrl?: string;
|
|
44
103
|
flowType: FlowType;
|
|
45
104
|
notes?: string;
|
|
105
|
+
tags?: string[];
|
|
106
|
+
roadmapItemId?: string;
|
|
107
|
+
specPath?: string;
|
|
46
108
|
priority?: number;
|
|
47
109
|
allowedSlots?: string[];
|
|
48
110
|
autoDispatch?: boolean;
|
|
111
|
+
runner?: string;
|
|
112
|
+
model?: string;
|
|
113
|
+
scripted?: ScriptedRunnerConfig;
|
|
114
|
+
effort?: string;
|
|
115
|
+
launchPlan?: BacklogLaunchPlan;
|
|
49
116
|
status?: Extract<BacklogStatus, 'candidate' | 'ready'>;
|
|
50
117
|
}
|
|
51
118
|
export interface BacklogUpdateInput {
|
|
@@ -55,9 +122,17 @@ export interface BacklogUpdateInput {
|
|
|
55
122
|
sourceUrl?: string | null;
|
|
56
123
|
flowType?: FlowType;
|
|
57
124
|
notes?: string | null;
|
|
125
|
+
tags?: string[] | null;
|
|
126
|
+
roadmapItemId?: string | null;
|
|
127
|
+
specPath?: string | null;
|
|
58
128
|
priority?: number;
|
|
59
129
|
allowedSlots?: string[] | null;
|
|
60
130
|
autoDispatch?: boolean;
|
|
131
|
+
runner?: string | null;
|
|
132
|
+
model?: string | null;
|
|
133
|
+
scripted?: ScriptedRunnerConfig | null;
|
|
134
|
+
effort?: string | null;
|
|
135
|
+
launchPlan?: BacklogLaunchPlan | null;
|
|
61
136
|
}
|
|
62
137
|
export interface BacklogEnqueueResultData {
|
|
63
138
|
item: BacklogItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAErD,eAAO,MAAM,gBAAgB,sHAUnB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9D,eAAO,MAAM,oBAAoB,uCAAwC,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,4 +10,89 @@ export const BACKLOG_STATUSES = [
|
|
|
10
10
|
'archived',
|
|
11
11
|
];
|
|
12
12
|
export const BACKLOG_SOURCE_KINDS = ['jira', 'github', 'manual'];
|
|
13
|
+
function isRecord(value) {
|
|
14
|
+
return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
|
|
15
|
+
}
|
|
16
|
+
function nonEmptyString(value) {
|
|
17
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
18
|
+
}
|
|
19
|
+
function assertSlotPolicy(policy, path) {
|
|
20
|
+
if (!isRecord(policy))
|
|
21
|
+
throw new Error(`${path}.slotPolicy is required`);
|
|
22
|
+
if (policy.kind === 'exact') {
|
|
23
|
+
if (!nonEmptyString(policy.slotId))
|
|
24
|
+
throw new Error(`${path}.slotPolicy.slotId is required`);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (policy.kind === 'pool') {
|
|
28
|
+
if (!Array.isArray(policy.allowedSlots) ||
|
|
29
|
+
policy.allowedSlots.filter(nonEmptyString).length === 0) {
|
|
30
|
+
throw new Error(`${path}.slotPolicy.allowedSlots must contain at least one slot`);
|
|
31
|
+
}
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (policy.kind === 'spread') {
|
|
35
|
+
if (policy.allowedSlots !== undefined &&
|
|
36
|
+
(!Array.isArray(policy.allowedSlots) ||
|
|
37
|
+
policy.allowedSlots.some((slot) => !nonEmptyString(slot)))) {
|
|
38
|
+
throw new Error(`${path}.slotPolicy.allowedSlots must contain only non-empty slots`);
|
|
39
|
+
}
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
throw new Error(`${path}.slotPolicy.kind must be exact, pool, or spread`);
|
|
43
|
+
}
|
|
44
|
+
export function assertBacklogLaunchPlan(value) {
|
|
45
|
+
if (!isRecord(value))
|
|
46
|
+
throw new Error('launchPlan must be an object');
|
|
47
|
+
if (!nonEmptyString(value.id))
|
|
48
|
+
throw new Error('launchPlan.id is required');
|
|
49
|
+
if (value.version !== 1)
|
|
50
|
+
throw new Error('launchPlan.version must be 1');
|
|
51
|
+
if (!Array.isArray(value.candidates) || value.candidates.length === 0) {
|
|
52
|
+
throw new Error('launchPlan.candidates must contain at least one candidate');
|
|
53
|
+
}
|
|
54
|
+
let baselineCount = 0;
|
|
55
|
+
const ids = new Set();
|
|
56
|
+
const variants = new Set();
|
|
57
|
+
value.candidates.forEach((candidate, index) => {
|
|
58
|
+
const path = `launchPlan.candidates[${index}]`;
|
|
59
|
+
if (!isRecord(candidate))
|
|
60
|
+
throw new Error(`${path} must be an object`);
|
|
61
|
+
if (!nonEmptyString(candidate.id))
|
|
62
|
+
throw new Error(`${path}.id is required`);
|
|
63
|
+
if (ids.has(candidate.id))
|
|
64
|
+
throw new Error(`duplicate launch candidate id: ${candidate.id}`);
|
|
65
|
+
ids.add(candidate.id);
|
|
66
|
+
if (candidate.role !== 'baseline' && candidate.role !== 'comparison') {
|
|
67
|
+
throw new Error(`${path}.role must be baseline or comparison`);
|
|
68
|
+
}
|
|
69
|
+
if (candidate.role === 'baseline') {
|
|
70
|
+
baselineCount += 1;
|
|
71
|
+
if (candidate.variant !== undefined &&
|
|
72
|
+
candidate.variant !== null &&
|
|
73
|
+
String(candidate.variant).trim()) {
|
|
74
|
+
throw new Error('baseline launch candidate must not set variant');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
if (!nonEmptyString(candidate.variant)) {
|
|
79
|
+
throw new Error('comparison launch candidate requires variant');
|
|
80
|
+
}
|
|
81
|
+
const variant = candidate.variant.trim();
|
|
82
|
+
if (variants.has(variant))
|
|
83
|
+
throw new Error(`duplicate comparison variant: ${variant}`);
|
|
84
|
+
variants.add(variant);
|
|
85
|
+
}
|
|
86
|
+
for (const field of ['label', 'runner', 'model', 'effort']) {
|
|
87
|
+
if (candidate[field] !== undefined &&
|
|
88
|
+
candidate[field] !== null &&
|
|
89
|
+
typeof candidate[field] !== 'string') {
|
|
90
|
+
throw new Error(`${path}.${field} must be a string`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
assertSlotPolicy(candidate.slotPolicy, path);
|
|
94
|
+
});
|
|
95
|
+
if (baselineCount !== 1)
|
|
96
|
+
throw new Error('launchPlan requires exactly one baseline candidate');
|
|
97
|
+
}
|
|
13
98
|
//# sourceMappingURL=backlog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,10 +57,66 @@ export interface ProjectPublicationReviewFlowConfig {
|
|
|
57
57
|
minimumIndependentReviews?: number;
|
|
58
58
|
requireCrossRunner?: boolean;
|
|
59
59
|
}
|
|
60
|
+
export interface ProjectScriptedCommandConfig {
|
|
61
|
+
command: string;
|
|
62
|
+
timeoutMs?: number;
|
|
63
|
+
cwd?: string;
|
|
64
|
+
}
|
|
65
|
+
export interface ProjectScriptedConfig {
|
|
66
|
+
commands?: Record<string, ProjectScriptedCommandConfig>;
|
|
67
|
+
}
|
|
68
|
+
export interface ProjectRoadmapConfig {
|
|
69
|
+
/** Inline project-specific roadmap refinement prompt template. */
|
|
70
|
+
refinementPrompt?: string;
|
|
71
|
+
/** Markdown prompt template path, absolute or relative to projects/<project>/. */
|
|
72
|
+
refinementPromptPath?: string;
|
|
73
|
+
/** Default runner id for roadmap refinement sessions. */
|
|
74
|
+
runner?: string;
|
|
75
|
+
/** Default model for roadmap refinement sessions. */
|
|
76
|
+
model?: string;
|
|
77
|
+
/** Optional command template launched for refinement. Supports {{runner}}, {{model}}, {{prompt_path}}, and {{item_file}}. */
|
|
78
|
+
runnerCommand?: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Optional cost phases a prepare profile may select. Safety invariants (ssh
|
|
82
|
+
* reachability, device existence, tmux session, prepare sentinel, origin/HEAD
|
|
83
|
+
* guard) always run and are not part of this set.
|
|
84
|
+
*/
|
|
85
|
+
export declare const PREPARE_PHASES: readonly ["git", "fixtures", "deps", "preflight", "health"];
|
|
86
|
+
export type PreparePhase = (typeof PREPARE_PHASES)[number];
|
|
87
|
+
/**
|
|
88
|
+
* Framework-owned precondition checks a profile may require before its cheap
|
|
89
|
+
* path is valid. Each name binds to existing project hooks/sentinels:
|
|
90
|
+
* deps_current → lockfile-hash sentinel, dev_server_up → dev_server_check
|
|
91
|
+
* hook, health_ok → health_check + ready_indicator pipeline.
|
|
92
|
+
*/
|
|
93
|
+
export declare const PREPARE_REQUIREMENTS: readonly ["deps_current", "dev_server_up", "health_ok"];
|
|
94
|
+
export type PrepareRequirement = (typeof PREPARE_REQUIREMENTS)[number];
|
|
95
|
+
export interface PrepareProfileConfig {
|
|
96
|
+
/** Operator-facing label for wizard/CLI listings. */
|
|
97
|
+
label?: string;
|
|
98
|
+
/** Longer operator-facing help text for tooltips/docs. */
|
|
99
|
+
description?: string;
|
|
100
|
+
phases: PreparePhase[];
|
|
101
|
+
/** Per-profile hook overrides; unlisted hooks resolve from the project's top-level hooks. */
|
|
102
|
+
hooks?: Record<string, string>;
|
|
103
|
+
requires?: PrepareRequirement[];
|
|
104
|
+
/** Profile to run instead when any `requires` check fails. Required when `requires` is non-empty. */
|
|
105
|
+
fallback?: string;
|
|
106
|
+
}
|
|
107
|
+
export interface ProjectPrepareConfig {
|
|
108
|
+
/** Profile used when no explicit selection is made. */
|
|
109
|
+
default?: string;
|
|
110
|
+
profiles: Record<string, PrepareProfileConfig>;
|
|
111
|
+
}
|
|
60
112
|
export interface ProjectConfig {
|
|
61
113
|
name: string;
|
|
62
114
|
repoUrl: string;
|
|
63
115
|
defaultBranch: string;
|
|
116
|
+
/** Linked-worktree idle branch template (e.g. wt/{{session}}). See ADR-042. */
|
|
117
|
+
slotTrackingBranch?: string;
|
|
118
|
+
/** Operator/docs hint for worktree sandboxes. Stale/idle inference uses fleet-probed linkedWorktree on SlotStatus, not this path. */
|
|
119
|
+
worktreeBase?: string;
|
|
64
120
|
apps?: string[];
|
|
65
121
|
paths: {
|
|
66
122
|
runtimeDir: string;
|
|
@@ -126,6 +182,14 @@ export interface ProjectConfig {
|
|
|
126
182
|
publicationReview?: Partial<Record<'fix-bug' | 'dev', ProjectPublicationReviewFlowConfig>>;
|
|
127
183
|
autoRecovery?: ProjectAutoRecoveryConfig;
|
|
128
184
|
backlog?: ProjectBacklogConfig;
|
|
185
|
+
roadmap?: ProjectRoadmapConfig;
|
|
186
|
+
prepare?: ProjectPrepareConfig;
|
|
187
|
+
/** Project-owned non-LLM commands addressable by scripted.commandRef. */
|
|
188
|
+
scripted?: ProjectScriptedConfig;
|
|
189
|
+
/** When true, UI may offer slow playback and gateway appends --slow to recipe_run. */
|
|
190
|
+
recipeRunSupportsPlaybackSlow?: boolean;
|
|
191
|
+
/** When true, UI may offer video recording and gateway appends --record-video=full-run to recipe_run. */
|
|
192
|
+
recipeRunSupportsVideoRecording?: boolean;
|
|
129
193
|
}
|
|
130
194
|
export interface ProjectCICheckGroup {
|
|
131
195
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/contracts/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/contracts/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAI5C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,YAAY,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;KACvE,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,GAAG,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvE;AAED,MAAM,WAAW,kCAAkC;IACjD,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,oBAAoB;IACnC,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6HAA6H;IAC7H,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID;;;;GAIG;AACH,eAAO,MAAM,cAAc,6DAA8D,CAAC;AAC1F,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,yDAA0D,CAAC;AAC5F,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,qGAAqG;IACrG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qIAAqI;IACrI,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,EAAE,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,WAAW,EAAE,mBAAmB,EAAE,CAAC;QACnC,WAAW,EAAE,KAAK,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;YACf,KAAK,EAAE,MAAM,CAAC;YACd,aAAa,EAAE,cAAc,GAAG,YAAY,CAAC;YAC7C,OAAO,CAAC,EAAE,KAAK,CAAC;gBAAE,SAAS,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SAC/F,CAAC,CAAC;KACJ,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IAIF,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACnD,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,aAAa,CAAC,EAAE;YACd,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;SACxB,CAAC;KACH,CAAC;IACF,YAAY,CAAC,EAAE;QACb,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,iBAAiB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,EAAE,kCAAkC,CAAC,CAAC,CAAC;IAC3F,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,sFAAsF;IACtF,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,yGAAyG;IACzG,+BAA+B,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IAC1C,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB"}
|
package/dist/contracts/config.js
CHANGED
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
// ─── Prepare profiles (ADR-037) ───
|
|
2
|
+
/**
|
|
3
|
+
* Optional cost phases a prepare profile may select. Safety invariants (ssh
|
|
4
|
+
* reachability, device existence, tmux session, prepare sentinel, origin/HEAD
|
|
5
|
+
* guard) always run and are not part of this set.
|
|
6
|
+
*/
|
|
7
|
+
export const PREPARE_PHASES = ['git', 'fixtures', 'deps', 'preflight', 'health'];
|
|
8
|
+
/**
|
|
9
|
+
* Framework-owned precondition checks a profile may require before its cheap
|
|
10
|
+
* path is valid. Each name binds to existing project hooks/sentinels:
|
|
11
|
+
* deps_current → lockfile-hash sentinel, dev_server_up → dev_server_check
|
|
12
|
+
* hook, health_ok → health_check + ready_indicator pipeline.
|
|
13
|
+
*/
|
|
14
|
+
export const PREPARE_REQUIREMENTS = ['deps_current', 'dev_server_up', 'health_ok'];
|
|
2
15
|
//# sourceMappingURL=config.js.map
|