@farmslot/protocol 0.7.5 → 0.8.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 +14 -0
- package/README.md +14 -12
- package/dist/agents/reviewer-context.d.ts +73 -0
- package/dist/agents/reviewer-context.d.ts.map +1 -0
- package/dist/agents/reviewer-context.js +184 -0
- package/dist/agents/reviewer-context.js.map +1 -0
- package/dist/contracts/agents.d.ts +2 -0
- package/dist/contracts/agents.d.ts.map +1 -1
- package/dist/contracts/backlog.d.ts +1 -0
- package/dist/contracts/backlog.d.ts.map +1 -1
- package/dist/contracts/backlog.js +7 -0
- package/dist/contracts/backlog.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/recipe/artifact.d.ts.map +1 -1
- package/dist/recipe/artifact.js +26 -0
- package/dist/recipe/artifact.js.map +1 -1
- package/dist/recipe/common.d.ts +33 -0
- package/dist/recipe/common.d.ts.map +1 -1
- package/dist/recipe/common.js +11 -0
- package/dist/recipe/common.js.map +1 -1
- package/dist/recipe/document.d.ts +15 -0
- package/dist/recipe/document.d.ts.map +1 -1
- package/dist/recipe/document.js +100 -2
- package/dist/recipe/document.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 +49 -1
- package/dist/recipe/manifest.js.map +1 -1
- package/dist/recipe/workflow.d.ts +9 -0
- package/dist/recipe/workflow.d.ts.map +1 -1
- package/dist/recipe/workflow.js +6 -2
- package/dist/recipe/workflow.js.map +1 -1
- package/dist/rpc/backlog.d.ts +7 -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/registry.d.ts +2 -0
- package/dist/rpc/registry.d.ts.map +1 -1
- package/dist/rpc/registry.js +2 -0
- package/dist/rpc/registry.js.map +1 -1
- package/dist/rpc/tmux.d.ts +22 -0
- package/dist/rpc/tmux.d.ts.map +1 -1
- package/dist/rpc/work-graph.d.ts +6 -0
- package/dist/rpc/work-graph.d.ts.map +1 -1
- package/dist/transport/events.d.ts +0 -1
- package/dist/transport/events.d.ts.map +1 -1
- package/dist/transport/events.js +2 -2
- package/dist/transport/events.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +8 -1
- package/schemas/recipe-v1.schema.json +265 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
- Active-development baseline; add user-facing changes here before release or package publication.
|
|
6
6
|
|
|
7
|
+
## 0.8.0 - 2026-07-12
|
|
8
|
+
|
|
9
|
+
- feat: add Recipe Protocol v1 passive UI observation fields to manifests, recipes, and schemas.
|
|
10
|
+
- feat: add reviewer context protocol types and exports for slot reviewer panes.
|
|
11
|
+
- feat: add tmux runtime recovery RPC contracts for reconciling and restoring worker sessions.
|
|
12
|
+
- feat: add `WorkGraphSchedulerTickParams.forceEnqueue` for operator manual-enqueue of a work-graph node even when its backlog item has autoDispatch disabled.
|
|
13
|
+
- refactor: remove the unused `slot.prepare.output` event (`SLOT_PREPARE_OUTPUT`) — raw prepare output rides `script.output`. Add `ARCHIVABLE_BACKLOG_STATUSES` as the shared source of truth for backlog archive gating, and backlog archive/delete/restore RPC types.
|
|
14
|
+
- docs: note `grok-4.5-fast-xhigh` as a Cursor Agent model example on `SlotStatus.model`.
|
|
15
|
+
|
|
16
|
+
## 0.7.6 - 2026-07-09
|
|
17
|
+
|
|
18
|
+
- feat: publish the canonical Recipe Protocol v1 JSON Schema (`schemas/recipe-v1.schema.json`, exported via `./schemas/*`) and validate a `recipe.$schema` URL contract in `validateRecipeDocument` (`RECIPE_PROTOCOL_SCHEMA_URL`, `recipeProtocolSchemaUrlForVersion`; `$schema` must match `schema_version` when present, or is required under opt-in `requireSchemaRef`). The published schema matches the validator (`schema_version`/`validate` required, `flows` allowed, `additionalProperties`)
|
|
19
|
+
- feat: `validateRecipeArtifactPackage` takes `resolvedRecipe` (the fully-composed `resolved-recipe.json`) and `runPassed`. For a passing run the composition must be proven: `resolvedRecipe`, when present, is validated in full and `recipe` is then checked envelope-only; otherwise `recipe` is validated in full — and because `uses` catalogs are not in the package, a `uses`/library composition with no `resolved-recipe.json` is rejected. `validateFlowCalls` gains `skipResolution` (skip `unresolved_call_ref` only; call-shape checks always run) and `externalCatalogsResolvable`. A failed run keeps `recipe` envelope-only and skips `resolvedRecipe`, so a graceful failure is not turned into a rejection
|
|
20
|
+
|
|
7
21
|
## 0.7.5 - 2026-07-08
|
|
8
22
|
|
|
9
23
|
- feat: export `DEFAULT_GATEWAY_TLS_PORT` (7778) — the shared default port the gateway serves `wss://` on when TLS is configured, so the gateway daemon and CLI reference one source of truth instead of duplicating the literal
|
package/README.md
CHANGED
|
@@ -46,18 +46,19 @@ import {
|
|
|
46
46
|
|
|
47
47
|
## Public API map
|
|
48
48
|
|
|
49
|
-
| Import path
|
|
50
|
-
|
|
|
51
|
-
| `@farmslot/protocol`
|
|
52
|
-
| `@farmslot/protocol/contracts`
|
|
53
|
-
| `@farmslot/protocol/contracts/runs`
|
|
54
|
-
| `@farmslot/protocol/contracts/slots`
|
|
55
|
-
| `@farmslot/protocol/rpc`
|
|
56
|
-
| `@farmslot/protocol/rpc/run`
|
|
57
|
-
| `@farmslot/protocol/recipe`
|
|
58
|
-
| `@farmslot/protocol/
|
|
59
|
-
| `@farmslot/protocol/
|
|
60
|
-
| `@farmslot/protocol/
|
|
49
|
+
| Import path | Use for |
|
|
50
|
+
| -------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
|
51
|
+
| `@farmslot/protocol` | Root import for common recipe validators, constants, shared contracts, RPC names, and transport helpers. |
|
|
52
|
+
| `@farmslot/protocol/contracts` | Shared domain data contracts. |
|
|
53
|
+
| `@farmslot/protocol/contracts/runs` | Run, run-family, evidence, and publication contracts. |
|
|
54
|
+
| `@farmslot/protocol/contracts/slots` | Slot and slot-adjacent contracts. |
|
|
55
|
+
| `@farmslot/protocol/rpc` | Gateway RPC method registry and typed method maps. |
|
|
56
|
+
| `@farmslot/protocol/rpc/run` | Run RPC params/results and run method names. |
|
|
57
|
+
| `@farmslot/protocol/recipe` | Recipe Protocol v1 validation, action vocabulary, schema URL mapping, and manifest helpers. |
|
|
58
|
+
| `@farmslot/protocol/schemas/recipe-v1.schema.json` | Published JSON Schema for Recipe Protocol v1. |
|
|
59
|
+
| `@farmslot/protocol/recipes/step-io` | Runner recipe artifact reference contracts. |
|
|
60
|
+
| `@farmslot/protocol/surfaces/command-center` | Command Center client surface registry used to build safe chat context. |
|
|
61
|
+
| `@farmslot/protocol/transport/events` | Gateway event contracts. |
|
|
61
62
|
|
|
62
63
|
Public subpaths are explicit and extensionless. There are no `types`, `methods`,
|
|
63
64
|
or `recipe-compat` package aliases.
|
|
@@ -65,6 +66,7 @@ or `recipe-compat` package aliases.
|
|
|
65
66
|
Key responsibilities:
|
|
66
67
|
|
|
67
68
|
- define the stable Recipe Protocol v1 action vocabulary;
|
|
69
|
+
- publish the Recipe Protocol v1 JSON Schema at `https://farmslot.io/schemas/recipe-v1.schema.json` and `@farmslot/protocol/schemas/recipe-v1.schema.json`;
|
|
68
70
|
- validate recipe documents and workflow graph shape;
|
|
69
71
|
- validate action manifests declared by project runners;
|
|
70
72
|
- validate recipe usage against a manifest;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { AgentContext, AgentRole } from '../contracts/index.js';
|
|
2
|
+
/** Legacy fixed self-review tmux window (pre multi-reviewer tabs). */
|
|
3
|
+
export declare const LEGACY_SELF_REVIEW_WINDOW: string;
|
|
4
|
+
/**
|
|
5
|
+
* Short runner token for tmux tab names. Model stays in AgentContext.model metadata —
|
|
6
|
+
* never in the window title.
|
|
7
|
+
*/
|
|
8
|
+
export declare function reviewerRunnerToken(runner: string | null | undefined): string;
|
|
9
|
+
/**
|
|
10
|
+
* Deterministic short reviewer tmux window name for one run.
|
|
11
|
+
* - First instance of a runner: `rev-codex`
|
|
12
|
+
* - Collisions / fresh tabs: `rev1-codex`, `rev2-codex`, …
|
|
13
|
+
* Legacy `self-review` is never emitted here (kept for recognition only).
|
|
14
|
+
*/
|
|
15
|
+
export declare function reviewerWindowName(runner: string | null | undefined, ordinal?: number): string;
|
|
16
|
+
export declare function isReviewerWindowName(windowName: string | null | undefined): boolean;
|
|
17
|
+
export declare function parseReviewerWindowName(windowName: string | null | undefined): {
|
|
18
|
+
ordinal: number;
|
|
19
|
+
runnerToken: string;
|
|
20
|
+
} | null;
|
|
21
|
+
export declare function isReviewerAgentRole(role: AgentRole | null | undefined): boolean;
|
|
22
|
+
export declare function isReviewerAgentContext(ctx: {
|
|
23
|
+
role?: AgentRole | null;
|
|
24
|
+
id?: string | null;
|
|
25
|
+
target?: {
|
|
26
|
+
window?: string | null;
|
|
27
|
+
} | null;
|
|
28
|
+
} | null | undefined): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Context id for a reviewer tab. Short and operator-addressable; same-run scope is
|
|
31
|
+
* enforced by AgentContext.runId + selectors, not by embedding runId in the tab id.
|
|
32
|
+
*/
|
|
33
|
+
export declare function reviewerContextId(windowName: string): string;
|
|
34
|
+
export declare function reviewerContextLabel(runner: string | null | undefined, windowName: string, model?: string | null): string;
|
|
35
|
+
export interface AllocateReviewerContextInput {
|
|
36
|
+
runId: string;
|
|
37
|
+
runner: string;
|
|
38
|
+
model?: string | null;
|
|
39
|
+
/** Existing contexts on this run (same-run only). */
|
|
40
|
+
existing: ReadonlyArray<Pick<AgentContext, 'id' | 'role' | 'runId' | 'runner' | 'target'>>;
|
|
41
|
+
/**
|
|
42
|
+
* `warm` reuses an existing same-runner reviewer tab when present.
|
|
43
|
+
* `fresh` always allocates a new numbered tab when the base name is taken.
|
|
44
|
+
*/
|
|
45
|
+
mode?: 'warm' | 'fresh';
|
|
46
|
+
}
|
|
47
|
+
export interface AllocatedReviewerContext {
|
|
48
|
+
id: string;
|
|
49
|
+
role: 'self-review';
|
|
50
|
+
label: string;
|
|
51
|
+
windowName: string;
|
|
52
|
+
runId: string;
|
|
53
|
+
runner: string;
|
|
54
|
+
model: string | null;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Allocate a same-run reviewer context id + short tmux window name.
|
|
58
|
+
* Never reuses windows/ids from another runId.
|
|
59
|
+
*/
|
|
60
|
+
export declare function allocateReviewerContext(input: AllocateReviewerContextInput): AllocatedReviewerContext;
|
|
61
|
+
/** Prefer the most recently updated reviewer; falls back to legacy self-review id. */
|
|
62
|
+
export declare function selectLatestReviewerContext<T extends {
|
|
63
|
+
id: string;
|
|
64
|
+
role?: AgentRole;
|
|
65
|
+
target?: AgentContext['target'];
|
|
66
|
+
updatedAt?: string;
|
|
67
|
+
startedAt?: string;
|
|
68
|
+
lastSignalAt?: string | null;
|
|
69
|
+
}>(contexts: ReadonlyArray<T>): T | null;
|
|
70
|
+
export declare function agentRoleForWindowName(windowName: string | null | undefined): AgentRole | null;
|
|
71
|
+
export declare function defaultWindowForAgentRole(role: AgentRole): string | null;
|
|
72
|
+
export declare function defaultLabelForAgentRole(role: AgentRole): string;
|
|
73
|
+
//# sourceMappingURL=reviewer-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewer-context.d.ts","sourceRoot":"","sources":["../../src/agents/reviewer-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { AGENT_ROLE_WINDOWS, agentRoleLabel, agentRoleWindow, contextIdFor } from './roles.js';
|
|
2
|
+
/** Legacy fixed self-review tmux window (pre multi-reviewer tabs). */
|
|
3
|
+
export const LEGACY_SELF_REVIEW_WINDOW = AGENT_ROLE_WINDOWS['self-review'] ?? 'self-review';
|
|
4
|
+
/**
|
|
5
|
+
* Short runner token for tmux tab names. Model stays in AgentContext.model metadata —
|
|
6
|
+
* never in the window title.
|
|
7
|
+
*/
|
|
8
|
+
export function reviewerRunnerToken(runner) {
|
|
9
|
+
const raw = (runner ?? 'reviewer').trim().toLowerCase();
|
|
10
|
+
const cleaned = raw
|
|
11
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
12
|
+
.replace(/^-+|-+$/g, '')
|
|
13
|
+
.slice(0, 24);
|
|
14
|
+
return cleaned || 'reviewer';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Deterministic short reviewer tmux window name for one run.
|
|
18
|
+
* - First instance of a runner: `rev-codex`
|
|
19
|
+
* - Collisions / fresh tabs: `rev1-codex`, `rev2-codex`, …
|
|
20
|
+
* Legacy `self-review` is never emitted here (kept for recognition only).
|
|
21
|
+
*/
|
|
22
|
+
export function reviewerWindowName(runner, ordinal = 0) {
|
|
23
|
+
const token = reviewerRunnerToken(runner);
|
|
24
|
+
if (ordinal <= 0)
|
|
25
|
+
return `rev-${token}`;
|
|
26
|
+
return `rev${ordinal}-${token}`;
|
|
27
|
+
}
|
|
28
|
+
const REVIEWER_WINDOW_RE = /^rev(?:(\d+))?-([a-z0-9][a-z0-9-]{0,23})$/;
|
|
29
|
+
export function isReviewerWindowName(windowName) {
|
|
30
|
+
if (!windowName)
|
|
31
|
+
return false;
|
|
32
|
+
if (windowName === LEGACY_SELF_REVIEW_WINDOW)
|
|
33
|
+
return true;
|
|
34
|
+
return REVIEWER_WINDOW_RE.test(windowName);
|
|
35
|
+
}
|
|
36
|
+
export function parseReviewerWindowName(windowName) {
|
|
37
|
+
if (!windowName)
|
|
38
|
+
return null;
|
|
39
|
+
if (windowName === LEGACY_SELF_REVIEW_WINDOW) {
|
|
40
|
+
return { ordinal: 0, runnerToken: 'self-review' };
|
|
41
|
+
}
|
|
42
|
+
const match = REVIEWER_WINDOW_RE.exec(windowName);
|
|
43
|
+
if (!match)
|
|
44
|
+
return null;
|
|
45
|
+
return {
|
|
46
|
+
ordinal: match[1] ? Number(match[1]) : 0,
|
|
47
|
+
runnerToken: match[2],
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export function isReviewerAgentRole(role) {
|
|
51
|
+
return role === 'self-review';
|
|
52
|
+
}
|
|
53
|
+
export function isReviewerAgentContext(ctx) {
|
|
54
|
+
if (!ctx)
|
|
55
|
+
return false;
|
|
56
|
+
if (isReviewerAgentRole(ctx.role ?? null))
|
|
57
|
+
return true;
|
|
58
|
+
if (isReviewerWindowName(ctx.target?.window ?? null))
|
|
59
|
+
return true;
|
|
60
|
+
const id = ctx.id ?? '';
|
|
61
|
+
if (id === contextIdFor('self-review') || id.startsWith('rev-') || /^rev\d+-/.test(id))
|
|
62
|
+
return true;
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Context id for a reviewer tab. Short and operator-addressable; same-run scope is
|
|
67
|
+
* enforced by AgentContext.runId + selectors, not by embedding runId in the tab id.
|
|
68
|
+
*/
|
|
69
|
+
export function reviewerContextId(windowName) {
|
|
70
|
+
return windowName;
|
|
71
|
+
}
|
|
72
|
+
export function reviewerContextLabel(runner, windowName, model) {
|
|
73
|
+
const token = reviewerRunnerToken(runner);
|
|
74
|
+
const base = windowName.startsWith('rev') ? windowName : `rev-${token}`;
|
|
75
|
+
if (model?.trim())
|
|
76
|
+
return `${base} (${model.trim()})`;
|
|
77
|
+
return base;
|
|
78
|
+
}
|
|
79
|
+
function existingReviewerWindows(existing, runId) {
|
|
80
|
+
const names = new Set();
|
|
81
|
+
for (const ctx of existing) {
|
|
82
|
+
if (ctx.runId && ctx.runId !== runId)
|
|
83
|
+
continue;
|
|
84
|
+
if (!isReviewerAgentContext(ctx))
|
|
85
|
+
continue;
|
|
86
|
+
const window = ctx.target?.window?.trim() || (isReviewerWindowName(ctx.id) ? ctx.id : null);
|
|
87
|
+
if (window)
|
|
88
|
+
names.add(window);
|
|
89
|
+
if (ctx.id === contextIdFor('self-review'))
|
|
90
|
+
names.add(LEGACY_SELF_REVIEW_WINDOW);
|
|
91
|
+
}
|
|
92
|
+
return names;
|
|
93
|
+
}
|
|
94
|
+
function findWarmReviewer(existing, runId, runner) {
|
|
95
|
+
const token = reviewerRunnerToken(runner);
|
|
96
|
+
for (const ctx of existing) {
|
|
97
|
+
if (ctx.runId && ctx.runId !== runId)
|
|
98
|
+
continue;
|
|
99
|
+
if (!isReviewerAgentRole(ctx.role) && !isReviewerWindowName(ctx.target?.window ?? ctx.id)) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
const window = ctx.target?.window?.trim() || (isReviewerWindowName(ctx.id) ? ctx.id : null);
|
|
103
|
+
if (!window)
|
|
104
|
+
continue;
|
|
105
|
+
const parsed = parseReviewerWindowName(window);
|
|
106
|
+
if (parsed?.runnerToken === token) {
|
|
107
|
+
return { id: ctx.id, windowName: window };
|
|
108
|
+
}
|
|
109
|
+
if (window === LEGACY_SELF_REVIEW_WINDOW && reviewerRunnerToken(ctx.runner) === token) {
|
|
110
|
+
return { id: ctx.id, windowName: window };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Allocate a same-run reviewer context id + short tmux window name.
|
|
117
|
+
* Never reuses windows/ids from another runId.
|
|
118
|
+
*/
|
|
119
|
+
export function allocateReviewerContext(input) {
|
|
120
|
+
const { runId, runner, model = null, existing, mode = 'warm' } = input;
|
|
121
|
+
if (mode === 'warm') {
|
|
122
|
+
const warm = findWarmReviewer(existing, runId, runner);
|
|
123
|
+
if (warm) {
|
|
124
|
+
return {
|
|
125
|
+
id: warm.id,
|
|
126
|
+
role: 'self-review',
|
|
127
|
+
label: reviewerContextLabel(runner, warm.windowName, model),
|
|
128
|
+
windowName: warm.windowName,
|
|
129
|
+
runId,
|
|
130
|
+
runner,
|
|
131
|
+
model,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const taken = existingReviewerWindows(existing, runId);
|
|
136
|
+
let ordinal = 0;
|
|
137
|
+
let windowName = reviewerWindowName(runner, ordinal);
|
|
138
|
+
while (taken.has(windowName)) {
|
|
139
|
+
ordinal += 1;
|
|
140
|
+
windowName = reviewerWindowName(runner, ordinal);
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
id: reviewerContextId(windowName),
|
|
144
|
+
role: 'self-review',
|
|
145
|
+
label: reviewerContextLabel(runner, windowName, model),
|
|
146
|
+
windowName,
|
|
147
|
+
runId,
|
|
148
|
+
runner,
|
|
149
|
+
model,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
/** Prefer the most recently updated reviewer; falls back to legacy self-review id. */
|
|
153
|
+
export function selectLatestReviewerContext(contexts) {
|
|
154
|
+
const reviewers = contexts.filter((ctx) => isReviewerAgentContext(ctx));
|
|
155
|
+
if (reviewers.length === 0)
|
|
156
|
+
return null;
|
|
157
|
+
return [...reviewers].sort((a, b) => {
|
|
158
|
+
const aTs = Date.parse(a.updatedAt ?? a.lastSignalAt ?? a.startedAt ?? '') || 0;
|
|
159
|
+
const bTs = Date.parse(b.updatedAt ?? b.lastSignalAt ?? b.startedAt ?? '') || 0;
|
|
160
|
+
if (aTs !== bTs)
|
|
161
|
+
return bTs - aTs;
|
|
162
|
+
return a.id.localeCompare(b.id);
|
|
163
|
+
})[0];
|
|
164
|
+
}
|
|
165
|
+
export function agentRoleForWindowName(windowName) {
|
|
166
|
+
if (!windowName)
|
|
167
|
+
return null;
|
|
168
|
+
if (isReviewerWindowName(windowName))
|
|
169
|
+
return 'self-review';
|
|
170
|
+
for (const [role, name] of Object.entries(AGENT_ROLE_WINDOWS)) {
|
|
171
|
+
if (role === 'primary')
|
|
172
|
+
continue;
|
|
173
|
+
if (name === windowName)
|
|
174
|
+
return role;
|
|
175
|
+
}
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
export function defaultWindowForAgentRole(role) {
|
|
179
|
+
return agentRoleWindow(role);
|
|
180
|
+
}
|
|
181
|
+
export function defaultLabelForAgentRole(role) {
|
|
182
|
+
return agentRoleLabel(role);
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=reviewer-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewer-context.js","sourceRoot":"","sources":["../../src/agents/reviewer-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,8 @@ export interface AgentContextSummary {
|
|
|
43
43
|
target?: AgentContextTarget | null;
|
|
44
44
|
nudgeCount?: number;
|
|
45
45
|
lastSignalAt?: string;
|
|
46
|
+
/** When present, used to pick the latest reviewer among multiple same-run tabs. */
|
|
47
|
+
updatedAt?: string;
|
|
46
48
|
/** Runner context-window usage percentage (0-100). Runner-agnostic — each runner's node-side
|
|
47
49
|
* adapter is responsible for parsing its own status surface (Claude's `ctx:N%` status line,
|
|
48
50
|
* codex's session metadata, etc.). Null when the runner has not exposed a value or the parse
|
|
@@ -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":"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,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;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;AAEjE,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,sBAAsB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEN,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B"}
|
|
@@ -4,6 +4,7 @@ import type { TaskTemplateSelection } from './evals.js';
|
|
|
4
4
|
import type { DevInteractiveProfile, FlowType, ReviewDepthPolicy, ReviewLoopRequest, RunStatus } from './runs.js';
|
|
5
5
|
export declare const BACKLOG_STATUSES: readonly ["candidate", "ready", "queued", "dispatching", "running", "done", "failed", "needs-attention", "archived"];
|
|
6
6
|
export type BacklogStatus = (typeof BACKLOG_STATUSES)[number];
|
|
7
|
+
export declare const ARCHIVABLE_BACKLOG_STATUSES: ReadonlySet<BacklogStatus>;
|
|
7
8
|
export declare const BACKLOG_SOURCE_KINDS: readonly ["jira", "github", "manual"];
|
|
8
9
|
export type BacklogSourceKind = (typeof BACKLOG_SOURCE_KINDS)[number];
|
|
9
10
|
export interface BacklogAutoDispatchPolicy {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EACV,qBAAqB,EACrB,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACV,MAAM,WAAW,CAAC;AAEnB,eAAO,MAAM,gBAAgB,sHAUnB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,13 @@ export const BACKLOG_STATUSES = [
|
|
|
9
9
|
'needs-attention',
|
|
10
10
|
'archived',
|
|
11
11
|
];
|
|
12
|
+
// Terminal statuses a backlog item can be archived from. Shared so the UI and
|
|
13
|
+
// gateway agree on one definition (no client/server drift).
|
|
14
|
+
export const ARCHIVABLE_BACKLOG_STATUSES = new Set([
|
|
15
|
+
'done',
|
|
16
|
+
'failed',
|
|
17
|
+
'needs-attention',
|
|
18
|
+
]);
|
|
12
19
|
export const BACKLOG_SOURCE_KINDS = ['jira', 'github', 'manual'];
|
|
13
20
|
function isRecord(value) {
|
|
14
21
|
return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../src/contracts/backlog.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,cAAc,oCAAoC,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,cAAc,oCAAoC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../src/recipe/artifact.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAE5B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../src/recipe/artifact.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAE5B,MAAM,aAAa,CAAC;AAIrB,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GACpE,sBAAsB,CAyRxB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,0BAA0B,GAChC,sBAAsB,CAkExB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,SAAS,sBAAsB,EAAE,GACzC,sBAAsB,CAMxB"}
|
package/dist/recipe/artifact.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { addFinding, ARTIFACT_TYPES, createContext, finishResult, isNonEmptyString, isRecord, isRelativeArtifactPath, TERMINAL_STATUSES, } from './common.js';
|
|
2
|
+
import { validateRecipeDocument } from './document.js';
|
|
2
3
|
import { getRecipeWorkflowNodeIds } from './workflow.js';
|
|
3
4
|
export function validateArtifactManifestDocument(manifest, options = {}) {
|
|
4
5
|
const ctx = createContext();
|
|
@@ -149,6 +150,31 @@ export function validateRecipeArtifactPackage(input) {
|
|
|
149
150
|
});
|
|
150
151
|
ctx.findings.push(...manifestResult.findings);
|
|
151
152
|
}
|
|
153
|
+
// A passing run must prove its composition resolves. Either recipe.json is
|
|
154
|
+
// self-contained (validated in full below), or resolved-recipe.json — the
|
|
155
|
+
// composed, `uses`-inlined recipe — proves it (validated in full instead, with
|
|
156
|
+
// recipe.json checked envelope-only since its `call.ref`s are proven there).
|
|
157
|
+
// A failed run (`runPassed === false`) is not held to this: it already surfaced
|
|
158
|
+
// its cause (e.g. a flow cycle) in the trace, so recipe.json stays envelope-only
|
|
159
|
+
// and the composition is not re-validated.
|
|
160
|
+
const enforceComposition = input.runPassed !== false;
|
|
161
|
+
const compositionProvenByResolved = enforceComposition && input.resolvedRecipe != null;
|
|
162
|
+
if (input.recipe != null) {
|
|
163
|
+
const recipeResult = validateRecipeDocument(input.recipe, {
|
|
164
|
+
requireSchemaRef: input.requireSchemaRef === true,
|
|
165
|
+
skipFlowCallResolution: !enforceComposition || compositionProvenByResolved,
|
|
166
|
+
// The `uses` catalogs are not part of the artifact package, so they do not
|
|
167
|
+
// prove resolution here — only inline `flows` (or resolved-recipe.json) do.
|
|
168
|
+
externalCatalogsResolvable: false,
|
|
169
|
+
});
|
|
170
|
+
ctx.findings.push(...recipeResult.findings);
|
|
171
|
+
}
|
|
172
|
+
if (compositionProvenByResolved) {
|
|
173
|
+
const resolvedResult = validateRecipeDocument(input.resolvedRecipe, {
|
|
174
|
+
requireSchemaRef: input.requireSchemaRef === true,
|
|
175
|
+
});
|
|
176
|
+
ctx.findings.push(...resolvedResult.findings);
|
|
177
|
+
}
|
|
152
178
|
return finishResult(ctx);
|
|
153
179
|
}
|
|
154
180
|
export function mergeRecipeValidationResults(results) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/recipe/artifact.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/recipe/artifact.ts"],"names":[],"mappings":"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"}
|
package/dist/recipe/common.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
export declare const RECIPE_PROTOCOL_SCHEMA_VERSION = 1;
|
|
2
|
+
export declare const RECIPE_PROTOCOL_SCHEMA_URL = "https://farmslot.io/schemas/recipe-v1.schema.json";
|
|
3
|
+
export declare const RECIPE_PROTOCOL_SCHEMA_URLS: {
|
|
4
|
+
readonly 1: "https://farmslot.io/schemas/recipe-v1.schema.json";
|
|
5
|
+
};
|
|
2
6
|
export declare const RECIPE_PLAYBACK_SLOW_MS_MIN = 100;
|
|
3
7
|
export declare const RECIPE_PLAYBACK_SLOW_MS_MAX = 60000;
|
|
4
8
|
export declare const OFFICIAL_RECIPE_ACTIONS: readonly ["command", "wait", "assert_file", "assert_json", "assert_exit_code", "assert_output", "state_read", "watch_logs", "index_artifacts", "call", "switch", "manual", "end", "ui.navigate", "ui.press", "ui.key_press", "ui.set_input", "ui.scroll", "ui.gesture", "ui.wait_for", "ui.screenshot", "app.status", "app.lifecycle", "app.hud", "app.trace", "cdp.target", "cdp.storage", "cdp.network", "cdp.emulation", "cdp.metrics", "cdp.trace"];
|
|
5
9
|
export type OfficialActionName = (typeof OFFICIAL_RECIPE_ACTIONS)[number];
|
|
6
10
|
export type RecipeActionName = OfficialActionName | (string & {});
|
|
11
|
+
export declare const BUILT_IN_UI_OBSERVERS: readonly ["ui.screen", "ui.visible"];
|
|
12
|
+
export type BuiltInUiObserverRef = (typeof BUILT_IN_UI_OBSERVERS)[number];
|
|
13
|
+
export type UiObserverRef = BuiltInUiObserverRef | (string & {});
|
|
7
14
|
export interface RecipeActionCatalogExample {
|
|
8
15
|
description?: string;
|
|
9
16
|
node: Record<string, unknown>;
|
|
@@ -49,6 +56,13 @@ export interface RecipeRuntimeCapabilityDeclaration {
|
|
|
49
56
|
modes?: string[];
|
|
50
57
|
artifactTypes?: string[];
|
|
51
58
|
}
|
|
59
|
+
export interface RecipeObserverDeclaration {
|
|
60
|
+
ref: UiObserverRef;
|
|
61
|
+
description: string;
|
|
62
|
+
default_for?: RecipeActionName[];
|
|
63
|
+
cost?: 'cheap' | 'moderate' | 'expensive' | string;
|
|
64
|
+
redaction?: string;
|
|
65
|
+
}
|
|
52
66
|
export interface RecipeActionManifestDocument {
|
|
53
67
|
runner_protocol_version: 1;
|
|
54
68
|
action_registry_version: 1;
|
|
@@ -60,11 +74,13 @@ export interface RecipeActionManifestDocument {
|
|
|
60
74
|
pre_conditions?: RecipePreconditionDeclaration[];
|
|
61
75
|
native_bindings?: RecipeNativeBindingDeclaration[];
|
|
62
76
|
capabilities?: RecipeRuntimeCapabilityDeclaration[];
|
|
77
|
+
observers?: RecipeObserverDeclaration[];
|
|
63
78
|
}
|
|
64
79
|
export declare const PLAYBACK_MODES: Set<string>;
|
|
65
80
|
export declare const TERMINAL_STATUSES: Set<string>;
|
|
66
81
|
export declare const ARTIFACT_TYPES: Set<string>;
|
|
67
82
|
export declare const OFFICIAL_ACTION_SET: Set<string>;
|
|
83
|
+
export declare const BUILT_IN_UI_OBSERVER_SET: Set<string>;
|
|
68
84
|
export type RecipeValidationSeverity = 'error' | 'warning';
|
|
69
85
|
export type RecipeValidationStatus = 'valid' | 'invalid';
|
|
70
86
|
export interface RecipeValidationFinding {
|
|
@@ -85,6 +101,22 @@ export interface RecipeArtifactPackageInput {
|
|
|
85
101
|
manifest?: unknown;
|
|
86
102
|
artifactPaths?: readonly string[];
|
|
87
103
|
recipe?: unknown;
|
|
104
|
+
/**
|
|
105
|
+
* The fully-composed recipe (`resolved-recipe.json`): the authored recipe with
|
|
106
|
+
* every referenced flow inlined under `flows`. For a passing run it is validated
|
|
107
|
+
* in full — including `call.ref` resolution — proving the composition is complete
|
|
108
|
+
* and self-contained, and `recipe` is then checked envelope-only.
|
|
109
|
+
*/
|
|
110
|
+
resolvedRecipe?: unknown;
|
|
111
|
+
/**
|
|
112
|
+
* Whether the run passed. Defaults to `true` (enforce composition). When `true`,
|
|
113
|
+
* the composition must be proven: either `recipe` is self-contained (validated in
|
|
114
|
+
* full) or `resolvedRecipe` proves it. When `false`, the run already failed and
|
|
115
|
+
* surfaced its cause, so `recipe` is envelope-only and `resolvedRecipe` is not
|
|
116
|
+
* re-validated — a graceful failure is not turned into a rejection.
|
|
117
|
+
*/
|
|
118
|
+
runPassed?: boolean;
|
|
119
|
+
requireSchemaRef?: boolean;
|
|
88
120
|
}
|
|
89
121
|
export interface MutableValidationContext {
|
|
90
122
|
findings: RecipeValidationFinding[];
|
|
@@ -93,6 +125,7 @@ export declare function createContext(): MutableValidationContext;
|
|
|
93
125
|
export declare function addFinding(ctx: MutableValidationContext, severity: RecipeValidationSeverity, code: string, path: string, message: string): void;
|
|
94
126
|
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
95
127
|
export declare function hasOwn(value: Record<string, unknown>, key: string): boolean;
|
|
128
|
+
export declare function recipeProtocolSchemaUrlForVersion(version: unknown): string | undefined;
|
|
96
129
|
export declare function isNonEmptyString(value: unknown): value is string;
|
|
97
130
|
export declare function isRelativeArtifactPath(value: string): boolean;
|
|
98
131
|
export declare function finishResult(ctx: MutableValidationContext): RecipeValidationResult;
|