@rayspec/spec 1.5.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/LICENSE +105 -0
- package/dist/brace-params.d.ts +32 -0
- package/dist/brace-params.d.ts.map +1 -0
- package/dist/brace-params.js +89 -0
- package/dist/brace-params.js.map +1 -0
- package/dist/detect.d.ts +44 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/detect.js +72 -0
- package/dist/detect.js.map +1 -0
- package/dist/errors.d.ts +204 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +165 -0
- package/dist/errors.js.map +1 -0
- package/dist/export.d.ts +54 -0
- package/dist/export.d.ts.map +1 -0
- package/dist/export.js +121 -0
- package/dist/export.js.map +1 -0
- package/dist/grammar.d.ts +569 -0
- package/dist/grammar.d.ts.map +1 -0
- package/dist/grammar.js +503 -0
- package/dist/grammar.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/lint.d.ts +79 -0
- package/dist/lint.d.ts.map +1 -0
- package/dist/lint.js +823 -0
- package/dist/lint.js.map +1 -0
- package/dist/parse.d.ts +8 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +118 -0
- package/dist/parse.js.map +1 -0
- package/dist/product-events.d.ts +73 -0
- package/dist/product-events.d.ts.map +1 -0
- package/dist/product-events.js +42 -0
- package/dist/product-events.js.map +1 -0
- package/dist/product-grammar.d.ts +948 -0
- package/dist/product-grammar.d.ts.map +1 -0
- package/dist/product-grammar.js +581 -0
- package/dist/product-grammar.js.map +1 -0
- package/dist/product-lint.d.ts +74 -0
- package/dist/product-lint.d.ts.map +1 -0
- package/dist/product-lint.js +821 -0
- package/dist/product-lint.js.map +1 -0
- package/dist/product-parse.d.ts +8 -0
- package/dist/product-parse.d.ts.map +1 -0
- package/dist/product-parse.js +119 -0
- package/dist/product-parse.js.map +1 -0
- package/dist/product-scope.d.ts +53 -0
- package/dist/product-scope.d.ts.map +1 -0
- package/dist/product-scope.js +55 -0
- package/dist/product-scope.js.map +1 -0
- package/dist/product-views-lint.d.ts +14 -0
- package/dist/product-views-lint.d.ts.map +1 -0
- package/dist/product-views-lint.js +669 -0
- package/dist/product-views-lint.js.map +1 -0
- package/dist/product-views.d.ts +426 -0
- package/dist/product-views.d.ts.map +1 -0
- package/dist/product-views.js +317 -0
- package/dist/product-views.js.map +1 -0
- package/package.json +34 -0
package/dist/lint.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"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"}
|
package/dist/parse.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type Result, type SpecError } from './errors.js';
|
|
2
|
+
import { RaySpec } from './grammar.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parse + validate a raw RaySpec YAML spec. Returns the typed spec on success, or the FULL
|
|
5
|
+
* aggregated list of fail-closed violations.
|
|
6
|
+
*/
|
|
7
|
+
export declare function parseSpec(rawYamlText: string): Result<RaySpec, SpecError>;
|
|
8
|
+
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAa,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAC;AAsCrD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAqEzE"}
|
package/dist/parse.js
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `parseSpec` — the two-phase, fail-closed entry point: raw YAML text -> a validated
|
|
3
|
+
* `RaySpec` or the FULL list of `SpecError`s.
|
|
4
|
+
*
|
|
5
|
+
* Pipeline (each stage aggregates, never throws to the caller):
|
|
6
|
+
* 1. YAML safe-load — `yaml@2.9.0` `parse()` (safe by default: no code execution,
|
|
7
|
+
* no JS-type tags). A YAML syntax error -> one `yaml_parse_error`.
|
|
8
|
+
* 2. VERSION CHECK FIRST — before the full strict Zod parse, read `version` off the loaded
|
|
9
|
+
* object. A missing/unsupported version -> one clean
|
|
10
|
+
* `unsupported_version` SpecError, NOT a wall of strict-shape errors.
|
|
11
|
+
* 3. STRICT ZOD PARSE — `RaySpec.safeParse`. EVERY Zod issue maps to a SpecError with
|
|
12
|
+
* a JSON path; an `unrecognized_keys` issue -> `unknown_field` (one per
|
|
13
|
+
* offending key), everything else -> `schema_violation`. Returns the
|
|
14
|
+
* FULL issue list.
|
|
15
|
+
* 4. SEMANTIC LINT — `lintSpec` (cross-refs, dups, capability, embedded schemas). Only
|
|
16
|
+
* run when the shape parse SUCCEEDS (lint needs a typed spec).
|
|
17
|
+
*
|
|
18
|
+
* Any non-empty error list -> `{ ok:false, errors }` (the value is NEVER returned partially).
|
|
19
|
+
*/
|
|
20
|
+
import { parse as parseYaml } from 'yaml';
|
|
21
|
+
import { specError } from './errors.js';
|
|
22
|
+
import { RaySpec, SPEC_VERSION } from './grammar.js';
|
|
23
|
+
import { lintSpec } from './lint.js';
|
|
24
|
+
/** Render a Zod issue path (string/number segments) as a JSON path: `agents[0].backend`. */
|
|
25
|
+
function renderPath(path) {
|
|
26
|
+
if (path.length === 0)
|
|
27
|
+
return undefined;
|
|
28
|
+
let out = '';
|
|
29
|
+
for (const seg of path) {
|
|
30
|
+
if (typeof seg === 'number') {
|
|
31
|
+
out += `[${seg}]`;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
out += out.length === 0 ? String(seg) : `.${String(seg)}`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
/** Append a key to a (possibly empty) base JSON path. */
|
|
40
|
+
function joinKey(base, key) {
|
|
41
|
+
return base === undefined ? key : `${base}.${key}`;
|
|
42
|
+
}
|
|
43
|
+
/** Map a single Zod issue to one or more SpecErrors (an unrecognized-keys issue fans out per key). */
|
|
44
|
+
function issueToSpecErrors(issue) {
|
|
45
|
+
const base = renderPath(issue.path);
|
|
46
|
+
if (issue.code === 'unrecognized_keys') {
|
|
47
|
+
// Fail-closed unknown-key rejection — one SpecError per offending key, pathed at the key.
|
|
48
|
+
return issue.keys.map((key) => specError('unknown_field', `unknown field '${key}' (unknown keys are rejected)`, joinKey(base, key)));
|
|
49
|
+
}
|
|
50
|
+
return [specError('schema_violation', issue.message, base)];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Parse + validate a raw RaySpec YAML spec. Returns the typed spec on success, or the FULL
|
|
54
|
+
* aggregated list of fail-closed violations.
|
|
55
|
+
*/
|
|
56
|
+
export function parseSpec(rawYamlText) {
|
|
57
|
+
// ---- 1. YAML SAFE-LOAD ----------------------------------------------------------------
|
|
58
|
+
let loaded;
|
|
59
|
+
try {
|
|
60
|
+
loaded = parseYaml(rawYamlText);
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
return {
|
|
64
|
+
ok: false,
|
|
65
|
+
errors: [
|
|
66
|
+
specError('yaml_parse_error', `YAML parse error: ${String(e instanceof Error ? e.message : e)}`),
|
|
67
|
+
],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
// An empty document (`null`) or a non-object root cannot carry a version/sections.
|
|
71
|
+
if (loaded === null || typeof loaded !== 'object' || Array.isArray(loaded)) {
|
|
72
|
+
return {
|
|
73
|
+
ok: false,
|
|
74
|
+
errors: [
|
|
75
|
+
specError('unsupported_version', 'spec root must be a mapping with a `version` field (got an empty or non-object document)'),
|
|
76
|
+
],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// ---- 2. VERSION CHECK FIRST -----------------------------------------------------------
|
|
80
|
+
// Exactly one backend version is supported (`version:'1.0'`); anything else fails closed with a
|
|
81
|
+
// single clean `unsupported_version` SpecError before the strict-shape parse runs.
|
|
82
|
+
const doc = loaded;
|
|
83
|
+
const version = doc.version;
|
|
84
|
+
if (version !== SPEC_VERSION) {
|
|
85
|
+
let message;
|
|
86
|
+
if (version === undefined) {
|
|
87
|
+
message = `spec version is missing; this engine supports version '${SPEC_VERSION}'`;
|
|
88
|
+
}
|
|
89
|
+
else if (typeof version !== 'string') {
|
|
90
|
+
// The natural author typo `version: 1.0` (unquoted) parses as the YAML NUMBER 1 — correctly
|
|
91
|
+
// rejected (we do NOT coerce). Give a targeted hint naming the JS type instead of stringifying
|
|
92
|
+
// it to a misleading "'1'" that reads close to the supported version.
|
|
93
|
+
message =
|
|
94
|
+
`spec version must be the quoted string '${SPEC_VERSION}' ` +
|
|
95
|
+
`(got the YAML ${typeof version} ${String(version)} — wrap it in quotes)`;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
message = `unsupported spec version '${version}'; this engine supports version '${SPEC_VERSION}'`;
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
ok: false,
|
|
102
|
+
errors: [specError('unsupported_version', message, 'version')],
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// ---- 3. STRICT ZOD PARSE (full issue list) --------------------------------------------
|
|
106
|
+
const parsed = RaySpec.safeParse(loaded);
|
|
107
|
+
if (!parsed.success) {
|
|
108
|
+
const errors = parsed.error.issues.flatMap(issueToSpecErrors);
|
|
109
|
+
return { ok: false, errors };
|
|
110
|
+
}
|
|
111
|
+
// ---- 4. SEMANTIC LINT -----------------------------------------------------------------
|
|
112
|
+
const lintErrors = lintSpec(parsed.data);
|
|
113
|
+
if (lintErrors.length > 0) {
|
|
114
|
+
return { ok: false, errors: lintErrors };
|
|
115
|
+
}
|
|
116
|
+
return { ok: true, value: parsed.data };
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The SHARED Product-YAML trigger-event vocabulary.
|
|
3
|
+
*
|
|
4
|
+
* Historically the trigger normalization lived as TWO byte-identical KEEP-IN-SYNC copies
|
|
5
|
+
* (`product-lint.ts` `compileProductTriggerEvent` + the workflow bridge's `compileTriggerEvent`) plus a
|
|
6
|
+
* THIRD hardcode in `@rayspec/product-yaml`'s capability inventory. This module is now the ONE
|
|
7
|
+
* source both the parser lint and the bridge compiler import, and the descriptor contract the deploy
|
|
8
|
+
* composition consumes — the cross-package parity test in `@rayspec/product-yaml-workflow-bridge`
|
|
9
|
+
* (`product-bridge-parity.test.ts`) pins the single-source invariant structurally (identity +
|
|
10
|
+
* behavior), so a re-introduced local copy or a behavioral divergence fails CI.
|
|
11
|
+
*
|
|
12
|
+
* This is a PRODUCT-side module: it must never import a runtime package (the Tier-B runtimes import
|
|
13
|
+
* @rayspec/spec, not the reverse), and it is NOT `grammar.ts` (a frozen surface).
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* One alias row: a doc-level `(capability, event)` trigger pair whose canonical Tier-B event id is NOT
|
|
17
|
+
* the default `${capability}.${event}` join. Declarative on purpose — the audio special-case is DATA
|
|
18
|
+
* here, not a branch scattered across packages. New capabilities should use the default join and add
|
|
19
|
+
* NO alias; an alias exists only to honor an already-shipped canonical id.
|
|
20
|
+
*/
|
|
21
|
+
export interface ProductTriggerEventAlias {
|
|
22
|
+
readonly capability: string;
|
|
23
|
+
readonly event: string;
|
|
24
|
+
/** The canonical Tier-B event/contract id the pair normalizes to. */
|
|
25
|
+
readonly canonical: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The closed alias table. Exactly ONE entry today: the audio capability's `session_finalized` event,
|
|
29
|
+
* whose canonical id `audio_input.finalized_session` predates the default-join convention and feeds
|
|
30
|
+
* a deployed product's LIVE run identity — it can never be renamed (a re-key duplicates live runs on
|
|
31
|
+
* redelivery).
|
|
32
|
+
*/
|
|
33
|
+
export declare const PRODUCT_TRIGGER_EVENT_ALIASES: readonly ProductTriggerEventAlias[];
|
|
34
|
+
/**
|
|
35
|
+
* THE canonical trigger-event normalization: a workflow trigger's `{ capability, event }` pair → the
|
|
36
|
+
* canonical Tier-B event id. Aliased pairs (the table above) map to their shipped canonical id; every
|
|
37
|
+
* other pair is the default `${capability}.${event}` join. This is the SINGLE source — the parser lint
|
|
38
|
+
* (`lintProductSpec`), the workflow bridge compiler, and the deploy composition all consume THIS
|
|
39
|
+
* function (parity-pinned; never re-copy it locally).
|
|
40
|
+
*/
|
|
41
|
+
export declare function normalizeProductTriggerEvent(capability: string, event: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* The per-event DESCRIPTOR contract (the vocabulary entry a deploy composition consumes). A Tier-B
|
|
44
|
+
* capability declares one per emitted trigger event (e.g. `@rayspec/audio-runtime`'s
|
|
45
|
+
* `CapabilityEventDescriptor` extends this); `composeProductDeploy` builds its capability inventory,
|
|
46
|
+
* its persist-scope check, and its per-trigger idempotency-key derivation from these — never
|
|
47
|
+
* from hardcodes.
|
|
48
|
+
*/
|
|
49
|
+
export interface TriggerEventDescriptor {
|
|
50
|
+
/** The event name a workflow trigger references (`trigger.event`). */
|
|
51
|
+
readonly id: string;
|
|
52
|
+
/**
|
|
53
|
+
* The canonical Tier-B contract id the event normalizes to — REQUIRED to equal
|
|
54
|
+
* `normalizeProductTriggerEvent(<capability id>, id)` (the composition verifies this coherence
|
|
55
|
+
* fail-closed). This is the id the dispatcher matches on and the bridge validates against.
|
|
56
|
+
*/
|
|
57
|
+
readonly contract: string;
|
|
58
|
+
/** The dedup-scope label (documentation-grade; e.g. `session_scoped`). */
|
|
59
|
+
readonly idempotency: string;
|
|
60
|
+
/**
|
|
61
|
+
* The EXACT keys of the event's canonical payload (DATA only, never instructions). The compose-time
|
|
62
|
+
* persist-scope check validates a declared artifact scope against THIS event's keys — never a
|
|
63
|
+
* union across events (a union would re-admit scopes the triggering event cannot satisfy).
|
|
64
|
+
*/
|
|
65
|
+
readonly payload_keys: readonly string[];
|
|
66
|
+
/**
|
|
67
|
+
* The payload field the durable run's single-flight idempotency key derives from. MUST be one
|
|
68
|
+
* of `payload_keys`. For the audio event this is `session_id`, and the derived key format
|
|
69
|
+
* `session_id:<id>:finalized` is byte-stable (live run identity).
|
|
70
|
+
*/
|
|
71
|
+
readonly idempotency_key_field: string;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=product-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-events.d.ts","sourceRoot":"","sources":["../src/product-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,wBAAwB,EAM3E,CAAC;AAEH;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKtF;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The SHARED Product-YAML trigger-event vocabulary.
|
|
3
|
+
*
|
|
4
|
+
* Historically the trigger normalization lived as TWO byte-identical KEEP-IN-SYNC copies
|
|
5
|
+
* (`product-lint.ts` `compileProductTriggerEvent` + the workflow bridge's `compileTriggerEvent`) plus a
|
|
6
|
+
* THIRD hardcode in `@rayspec/product-yaml`'s capability inventory. This module is now the ONE
|
|
7
|
+
* source both the parser lint and the bridge compiler import, and the descriptor contract the deploy
|
|
8
|
+
* composition consumes — the cross-package parity test in `@rayspec/product-yaml-workflow-bridge`
|
|
9
|
+
* (`product-bridge-parity.test.ts`) pins the single-source invariant structurally (identity +
|
|
10
|
+
* behavior), so a re-introduced local copy or a behavioral divergence fails CI.
|
|
11
|
+
*
|
|
12
|
+
* This is a PRODUCT-side module: it must never import a runtime package (the Tier-B runtimes import
|
|
13
|
+
* @rayspec/spec, not the reverse), and it is NOT `grammar.ts` (a frozen surface).
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* The closed alias table. Exactly ONE entry today: the audio capability's `session_finalized` event,
|
|
17
|
+
* whose canonical id `audio_input.finalized_session` predates the default-join convention and feeds
|
|
18
|
+
* a deployed product's LIVE run identity — it can never be renamed (a re-key duplicates live runs on
|
|
19
|
+
* redelivery).
|
|
20
|
+
*/
|
|
21
|
+
export const PRODUCT_TRIGGER_EVENT_ALIASES = Object.freeze([
|
|
22
|
+
{
|
|
23
|
+
capability: 'audio_input',
|
|
24
|
+
event: 'session_finalized',
|
|
25
|
+
canonical: 'audio_input.finalized_session',
|
|
26
|
+
},
|
|
27
|
+
]);
|
|
28
|
+
/**
|
|
29
|
+
* THE canonical trigger-event normalization: a workflow trigger's `{ capability, event }` pair → the
|
|
30
|
+
* canonical Tier-B event id. Aliased pairs (the table above) map to their shipped canonical id; every
|
|
31
|
+
* other pair is the default `${capability}.${event}` join. This is the SINGLE source — the parser lint
|
|
32
|
+
* (`lintProductSpec`), the workflow bridge compiler, and the deploy composition all consume THIS
|
|
33
|
+
* function (parity-pinned; never re-copy it locally).
|
|
34
|
+
*/
|
|
35
|
+
export function normalizeProductTriggerEvent(capability, event) {
|
|
36
|
+
for (const alias of PRODUCT_TRIGGER_EVENT_ALIASES) {
|
|
37
|
+
if (alias.capability === capability && alias.event === event)
|
|
38
|
+
return alias.canonical;
|
|
39
|
+
}
|
|
40
|
+
return `${capability}.${event}`;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=product-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-events.js","sourceRoot":"","sources":["../src/product-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAeH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAwC,MAAM,CAAC,MAAM,CAAC;IAC9F;QACE,UAAU,EAAE,aAAa;QACzB,KAAK,EAAE,mBAAmB;QAC1B,SAAS,EAAE,+BAA+B;KAC3C;CACF,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAAC,UAAkB,EAAE,KAAa;IAC5E,KAAK,MAAM,KAAK,IAAI,6BAA6B,EAAE,CAAC;QAClD,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC,SAAS,CAAC;IACvF,CAAC;IACD,OAAO,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC;AAClC,CAAC"}
|