@astra-spec/sdk 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helpers.d.ts +17 -22
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +41 -62
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -9
- package/dist/index.js.map +1 -1
- package/dist/validation/index.d.ts +1 -1
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +1 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/narrative.d.ts +1 -2
- package/dist/validation/narrative.d.ts.map +1 -1
- package/dist/validation/narrative.js +6 -18
- package/dist/validation/narrative.js.map +1 -1
- package/dist/validation/schema.d.ts.map +1 -1
- package/dist/validation/schema.js +3 -3
- package/dist/validation/schema.js.map +1 -1
- package/dist/validation/semantic.d.ts +3 -4
- package/dist/validation/semantic.d.ts.map +1 -1
- package/dist/validation/semantic.js +44 -71
- package/dist/validation/semantic.js.map +1 -1
- package/package.json +1 -1
- package/src/helpers.ts +53 -81
- package/src/index.ts +0 -8
- package/src/validation/index.ts +2 -2
- package/src/validation/narrative.ts +13 -24
- package/src/validation/schema.ts +2 -3
- package/src/validation/semantic.ts +91 -125
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// (matching the Python validator) so it doesn't depend on type narrowing.
|
|
4
|
-
import { collectNodeDecisions, getInputIds, getOutputIds, isConditionMet, loadYaml, resolveAnalysisTree, } from "../helpers.js";
|
|
1
|
+
import { dirname } from "node:path";
|
|
2
|
+
import { asArray, asDict, collectNodeDecisions, getInputIds, getOutputIds, isConditionMet, loadYaml, resolveAnalysisTree, } from "../helpers.js";
|
|
5
3
|
export class SemanticError {
|
|
6
4
|
code;
|
|
7
5
|
message;
|
|
@@ -16,12 +14,6 @@ export class SemanticError {
|
|
|
16
14
|
}
|
|
17
15
|
}
|
|
18
16
|
const ID_PATTERN = /^[a-z][a-z0-9_]*$/;
|
|
19
|
-
function asDict(v) {
|
|
20
|
-
return v && typeof v === "object" && !Array.isArray(v) ? v : undefined;
|
|
21
|
-
}
|
|
22
|
-
function asArray(v) {
|
|
23
|
-
return Array.isArray(v) ? v : [];
|
|
24
|
-
}
|
|
25
17
|
/** Parse a `../scope.id` style path. Returns null on malformed input. */
|
|
26
18
|
function parseFromPath(ref) {
|
|
27
19
|
let up = 0;
|
|
@@ -127,7 +119,6 @@ export function validateAnalysis(data, options = {}) {
|
|
|
127
119
|
function _validateAnalysisNode(nodeId, node, priorInsights, ancestorChain, pathPrefix) {
|
|
128
120
|
const errors = [];
|
|
129
121
|
const nodePath = `${pathPrefix}.${nodeId}`;
|
|
130
|
-
// Path-only stub (not yet resolved): skip deep checks.
|
|
131
122
|
if (node.path && !node.inputs && !node.outputs)
|
|
132
123
|
return errors;
|
|
133
124
|
for (const field of ["inputs", "outputs"]) {
|
|
@@ -135,7 +126,6 @@ function _validateAnalysisNode(nodeId, node, priorInsights, ancestorChain, pathP
|
|
|
135
126
|
errors.push(new SemanticError("MISSING_SUB_FIELD", `Sub-analysis '${nodeId}' is missing required field: ${field}`, nodePath));
|
|
136
127
|
}
|
|
137
128
|
}
|
|
138
|
-
// Decision `from:` checks.
|
|
139
129
|
const allDecisions = (asDict(node.decisions) ?? {});
|
|
140
130
|
for (const [decisionId, decision] of Object.entries(allDecisions)) {
|
|
141
131
|
const ref = decision?.from;
|
|
@@ -143,7 +133,6 @@ function _validateAnalysisNode(nodeId, node, priorInsights, ancestorChain, pathP
|
|
|
143
133
|
errors.push(..._validateDecisionFrom(ref, ancestorChain, `${nodePath}.decisions.${decisionId}`));
|
|
144
134
|
}
|
|
145
135
|
}
|
|
146
|
-
// Inputs.
|
|
147
136
|
const nodeInputs = asArray(node.inputs);
|
|
148
137
|
const nodeInputIds = new Set();
|
|
149
138
|
for (const inp of nodeInputs) {
|
|
@@ -154,7 +143,6 @@ function _validateAnalysisNode(nodeId, node, priorInsights, ancestorChain, pathP
|
|
|
154
143
|
if (ref)
|
|
155
144
|
errors.push(..._validateInputFrom(ref, ancestorChain, nodeId, nodePath));
|
|
156
145
|
}
|
|
157
|
-
// Output IDs unique.
|
|
158
146
|
const nodeOutputIds = new Set();
|
|
159
147
|
for (const out of asArray(node.outputs)) {
|
|
160
148
|
const id = out?.id;
|
|
@@ -168,7 +156,7 @@ function _validateAnalysisNode(nodeId, node, priorInsights, ancestorChain, pathP
|
|
|
168
156
|
errors.push(..._validateOutputsFrom(nodeOutputs, node, nodePath));
|
|
169
157
|
const nodeDecisions = collectNodeDecisions(node);
|
|
170
158
|
// Build the constraint scope: locally-defined decisions plus any `from:`
|
|
171
|
-
// alias resolved one ancestor up (matches the Python
|
|
159
|
+
// alias resolved one ancestor up (matches the Python constraint_scope).
|
|
172
160
|
const constraintScope = { ...nodeDecisions };
|
|
173
161
|
for (const [decisionId, decision] of Object.entries(allDecisions)) {
|
|
174
162
|
const ref = decision?.from;
|
|
@@ -261,32 +249,12 @@ function _validateDecisions(decisions, priorInsights, pathPrefix, constraintScop
|
|
|
261
249
|
if (defaultOpt != null && !(defaultOpt in options)) {
|
|
262
250
|
errors.push(new SemanticError("INVALID_DEFAULT", `Default option '${defaultOpt}' not found in options`, decisionPath));
|
|
263
251
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
if (parts.length !== 2) {
|
|
271
|
-
errors.push(new SemanticError("INVALID_WHEN_REF", `Decision 'when' condition '${cond}' has invalid format`, decisionPath));
|
|
272
|
-
continue;
|
|
273
|
-
}
|
|
274
|
-
const [whenDecisionId, whenOptionId] = parts;
|
|
275
|
-
if (!(whenDecisionId in decisions) && !(whenDecisionId in scope)) {
|
|
276
|
-
errors.push(new SemanticError("INVALID_WHEN_REF", `'when' references non-existent decision '${whenDecisionId}'`, decisionPath));
|
|
277
|
-
}
|
|
278
|
-
else {
|
|
279
|
-
const refDecision = decisions[whenDecisionId] ?? scope[whenDecisionId];
|
|
280
|
-
const refOptions = refDecision ? (asDict(refDecision.options) ?? {}) : {};
|
|
281
|
-
if (refDecision && !(whenOptionId in refOptions)) {
|
|
282
|
-
errors.push(new SemanticError("INVALID_WHEN_REF", `'when' references non-existent option '${whenOptionId}' in decision '${whenDecisionId}'`, decisionPath));
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
if (whenDecisionId === decisionId) {
|
|
286
|
-
errors.push(new SemanticError("INVALID_WHEN_REF", "'when' cannot reference own decision", decisionPath));
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
252
|
+
errors.push(..._validateWhenRefs(decision.when, {
|
|
253
|
+
decisions: { ...scope, ...decisions },
|
|
254
|
+
path: decisionPath,
|
|
255
|
+
ownerKind: "Decision",
|
|
256
|
+
forbidSelfRef: decisionId,
|
|
257
|
+
}));
|
|
290
258
|
for (const [optionId, optionRaw] of Object.entries(options)) {
|
|
291
259
|
const option = optionRaw;
|
|
292
260
|
const optionPath = `${decisionPath}.options.${optionId}`;
|
|
@@ -327,30 +295,42 @@ function _validateOutputWhen(outputs, decisions, pathPrefix) {
|
|
|
327
295
|
const id = out?.id;
|
|
328
296
|
if (!id)
|
|
329
297
|
continue;
|
|
330
|
-
|
|
331
|
-
|
|
298
|
+
errors.push(..._validateWhenRefs(out.when, {
|
|
299
|
+
decisions,
|
|
300
|
+
path: `${outputsPrefix}.${id}`,
|
|
301
|
+
ownerKind: "Output",
|
|
302
|
+
}));
|
|
303
|
+
}
|
|
304
|
+
return errors;
|
|
305
|
+
}
|
|
306
|
+
function _validateWhenRefs(when, ctx) {
|
|
307
|
+
if (when == null)
|
|
308
|
+
return [];
|
|
309
|
+
const conds = typeof when === "string" ? [when] : Array.isArray(when) ? when : [];
|
|
310
|
+
const errors = [];
|
|
311
|
+
for (const cond of conds) {
|
|
312
|
+
const ref = cond.startsWith("~") ? cond.slice(1) : cond;
|
|
313
|
+
const parts = ref.split(".");
|
|
314
|
+
if (parts.length !== 2) {
|
|
315
|
+
errors.push(new SemanticError("INVALID_WHEN_REF", `${ctx.ownerKind} 'when' condition '${cond}' has invalid format`, ctx.path));
|
|
332
316
|
continue;
|
|
333
|
-
|
|
334
|
-
const
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
const
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
errors.push(new SemanticError("INVALID_WHEN_REF",
|
|
345
|
-
}
|
|
346
|
-
else {
|
|
347
|
-
const refDecision = decisions[decisionId];
|
|
348
|
-
const refOptions = (asDict(refDecision.options) ?? {});
|
|
349
|
-
if (!(optionId in refOptions)) {
|
|
350
|
-
errors.push(new SemanticError("INVALID_WHEN_REF", `Output 'when' references non-existent option '${optionId}' in decision '${decisionId}'`, outputPath));
|
|
351
|
-
}
|
|
317
|
+
}
|
|
318
|
+
const [decisionId, optionId] = parts;
|
|
319
|
+
const referenced = ctx.decisions[decisionId];
|
|
320
|
+
if (!referenced) {
|
|
321
|
+
const subject = ctx.ownerKind === "Output" ? `${ctx.ownerKind} 'when'` : "'when'";
|
|
322
|
+
errors.push(new SemanticError("INVALID_WHEN_REF", `${subject} references non-existent decision '${decisionId}'`, ctx.path));
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
const refOptions = asDict(referenced.options) ?? {};
|
|
326
|
+
if (!(optionId in refOptions)) {
|
|
327
|
+
const subject = ctx.ownerKind === "Output" ? `${ctx.ownerKind} 'when'` : "'when'";
|
|
328
|
+
errors.push(new SemanticError("INVALID_WHEN_REF", `${subject} references non-existent option '${optionId}' in decision '${decisionId}'`, ctx.path));
|
|
352
329
|
}
|
|
353
330
|
}
|
|
331
|
+
if (ctx.forbidSelfRef && decisionId === ctx.forbidSelfRef) {
|
|
332
|
+
errors.push(new SemanticError("INVALID_WHEN_REF", "'when' cannot reference own decision", ctx.path));
|
|
333
|
+
}
|
|
354
334
|
}
|
|
355
335
|
return errors;
|
|
356
336
|
}
|
|
@@ -625,9 +605,6 @@ function _validateConstraintRef(ref, decisions, optionPath) {
|
|
|
625
605
|
}
|
|
626
606
|
return [];
|
|
627
607
|
}
|
|
628
|
-
// ---------------------------------------------------------------------------
|
|
629
|
-
// Universe validation
|
|
630
|
-
// ---------------------------------------------------------------------------
|
|
631
608
|
export function validateUniverse(universeData, analysisData) {
|
|
632
609
|
return _validateUniverseNode(universeData, analysisData, "", []);
|
|
633
610
|
}
|
|
@@ -738,14 +715,10 @@ function _validateNodeUniverseConstraints(universeDecisions, analysisDecisions,
|
|
|
738
715
|
}
|
|
739
716
|
return errors;
|
|
740
717
|
}
|
|
741
|
-
|
|
742
|
-
// File-level wrappers
|
|
743
|
-
// ---------------------------------------------------------------------------
|
|
744
|
-
import { dirname } from "node:path";
|
|
745
|
-
export function validateAnalysisFile(filePath) {
|
|
718
|
+
export function semanticValidateAnalysisFile(filePath) {
|
|
746
719
|
return validateAnalysis(loadYaml(filePath), { basePath: dirname(filePath) });
|
|
747
720
|
}
|
|
748
|
-
export function
|
|
721
|
+
export function semanticValidateUniverseFile(universePath, analysisPath) {
|
|
749
722
|
return validateUniverse(loadYaml(universePath), loadYaml(analysisPath));
|
|
750
723
|
}
|
|
751
724
|
//# sourceMappingURL=semantic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/validation/semantic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/validation/semantic.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astra-spec/sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "TypeScript SDK for ASTRA (Agentic Schema for Transparent Research Analysis): parse, validate, and inspect ASTRA analysis specifications.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "BSD-3-Clause",
|
package/src/helpers.ts
CHANGED
|
@@ -1,31 +1,33 @@
|
|
|
1
|
-
// Dict-based helpers that operate on parsed YAML data structures. Mirrors
|
|
2
|
-
// the Python `astra.helpers` module so semantic validation can resolve
|
|
3
|
-
// `from:` paths, `when:` conditions, and tree lookups without requiring a
|
|
4
|
-
// strongly-typed model.
|
|
5
|
-
|
|
6
1
|
import { readFileSync } from "node:fs";
|
|
7
|
-
import {
|
|
2
|
+
import { isAbsolute, resolve as resolvePath } from "node:path";
|
|
8
3
|
import { parse as parseYaml } from "yaml";
|
|
9
4
|
|
|
10
|
-
import type {
|
|
5
|
+
import type { Decision, Input, Output } from "./types.js";
|
|
6
|
+
|
|
7
|
+
export type Dict = Record<string, unknown>;
|
|
8
|
+
|
|
9
|
+
export function asDict(v: unknown): Dict | undefined {
|
|
10
|
+
return v && typeof v === "object" && !Array.isArray(v) ? (v as Dict) : undefined;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function asArray<T = unknown>(v: unknown): T[] {
|
|
14
|
+
return Array.isArray(v) ? (v as T[]) : [];
|
|
15
|
+
}
|
|
11
16
|
|
|
12
|
-
|
|
13
|
-
export function parseYamlString(text: string): Record<string, unknown> {
|
|
17
|
+
export function parseYamlString(text: string): Dict {
|
|
14
18
|
const data = parseYaml(text);
|
|
15
19
|
if (data == null || typeof data !== "object" || Array.isArray(data)) {
|
|
16
20
|
throw new Error("YAML root must be a mapping/object");
|
|
17
21
|
}
|
|
18
|
-
return data as
|
|
22
|
+
return data as Dict;
|
|
19
23
|
}
|
|
20
24
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const text = readFileSync(filePath, "utf8");
|
|
24
|
-
return parseYamlString(text);
|
|
25
|
+
export function loadYaml(filePath: string): Dict {
|
|
26
|
+
return parseYamlString(readFileSync(filePath, "utf8"));
|
|
25
27
|
}
|
|
26
28
|
|
|
27
|
-
/** Evaluate a `when` clause
|
|
28
|
-
*
|
|
29
|
+
/** Evaluate a `when` clause against a flat decision selection. AND across
|
|
30
|
+
* entries; `~` prefix negates. */
|
|
29
31
|
export function isConditionMet(
|
|
30
32
|
when: string | string[] | undefined | null,
|
|
31
33
|
selections: Record<string, string>,
|
|
@@ -47,10 +49,8 @@ export function isConditionMet(
|
|
|
47
49
|
return true;
|
|
48
50
|
}
|
|
49
51
|
|
|
50
|
-
/** Locally-defined decisions on a node
|
|
51
|
-
export function collectNodeDecisions(
|
|
52
|
-
node: Record<string, unknown>,
|
|
53
|
-
): Record<string, Decision> {
|
|
52
|
+
/** Locally-defined decisions on a node — `from:` aliases are skipped. */
|
|
53
|
+
export function collectNodeDecisions(node: Dict): Record<string, Decision> {
|
|
54
54
|
const out: Record<string, Decision> = {};
|
|
55
55
|
const decisions = (node.decisions ?? {}) as Record<string, Decision>;
|
|
56
56
|
for (const [id, decision] of Object.entries(decisions)) {
|
|
@@ -60,37 +60,32 @@ export function collectNodeDecisions(
|
|
|
60
60
|
return out;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
export function getInputIds(node:
|
|
64
|
-
const inputs = (node.inputs ?? []) as Input[];
|
|
63
|
+
export function getInputIds(node: Dict): Set<string> {
|
|
65
64
|
const out = new Set<string>();
|
|
66
|
-
for (const inp of inputs) if (inp?.id) out.add(inp.id);
|
|
65
|
+
for (const inp of asArray<Input>(node.inputs)) if (inp?.id) out.add(inp.id);
|
|
67
66
|
return out;
|
|
68
67
|
}
|
|
69
68
|
|
|
70
|
-
export function getOutputIds(node:
|
|
71
|
-
const outputs = (node.outputs ?? []) as Output[];
|
|
69
|
+
export function getOutputIds(node: Dict): Set<string> {
|
|
72
70
|
const out = new Set<string>();
|
|
73
|
-
for (const o of outputs) if (o?.id) out.add(o.id);
|
|
71
|
+
for (const o of asArray<Output>(node.outputs)) if (o?.id) out.add(o.id);
|
|
74
72
|
return out;
|
|
75
73
|
}
|
|
76
74
|
|
|
77
75
|
/** Walk `analyses.*.path` references and inline external `astra.yaml`
|
|
78
76
|
* files. Returns a new object only if at least one path was resolved. */
|
|
79
|
-
export function resolveAnalysisTree(
|
|
80
|
-
data: Record<string, unknown>,
|
|
81
|
-
basePath: string,
|
|
82
|
-
): Record<string, unknown> {
|
|
77
|
+
export function resolveAnalysisTree(data: Dict, basePath: string): Dict {
|
|
83
78
|
const analyses = data.analyses;
|
|
84
79
|
if (!analyses || typeof analyses !== "object") return data;
|
|
85
80
|
|
|
86
|
-
const resolved:
|
|
81
|
+
const resolved: Dict = {};
|
|
87
82
|
let changed = false;
|
|
88
83
|
for (const [id, raw] of Object.entries(analyses)) {
|
|
89
|
-
|
|
84
|
+
const node = asDict(raw);
|
|
85
|
+
if (!node) {
|
|
90
86
|
resolved[id] = raw;
|
|
91
87
|
continue;
|
|
92
88
|
}
|
|
93
|
-
const node = raw as Record<string, unknown>;
|
|
94
89
|
const subPath = node.path;
|
|
95
90
|
if (typeof subPath === "string" && subPath) {
|
|
96
91
|
const absDir = isAbsolute(subPath) ? subPath : resolvePath(basePath, subPath);
|
|
@@ -101,8 +96,7 @@ export function resolveAnalysisTree(
|
|
|
101
96
|
resolved[id] = resolveAnalysisTree(subData, absDir);
|
|
102
97
|
changed = true;
|
|
103
98
|
} catch {
|
|
104
|
-
//
|
|
105
|
-
// higher-layer warning surfaces the problem.
|
|
99
|
+
// Missing file is surfaced by a higher layer; leave the stub here.
|
|
106
100
|
resolved[id] = node;
|
|
107
101
|
}
|
|
108
102
|
} else {
|
|
@@ -116,56 +110,34 @@ export function resolveAnalysisTree(
|
|
|
116
110
|
return { ...data, analyses: resolved };
|
|
117
111
|
}
|
|
118
112
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
if (!mapping || typeof mapping !== "object" || Array.isArray(mapping)) continue;
|
|
126
|
-
for (const [key, value] of Object.entries(mapping as Record<string, unknown>)) {
|
|
127
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) continue;
|
|
128
|
-
const obj = value as Record<string, unknown>;
|
|
129
|
-
if (obj.id === undefined) obj.id = key;
|
|
130
|
-
if (field === "decisions") {
|
|
131
|
-
const opts = obj.options;
|
|
132
|
-
if (opts && typeof opts === "object" && !Array.isArray(opts)) {
|
|
133
|
-
for (const [okey, ovalue] of Object.entries(opts as Record<string, unknown>)) {
|
|
134
|
-
if (ovalue && typeof ovalue === "object" && !Array.isArray(ovalue)) {
|
|
135
|
-
const o = ovalue as Record<string, unknown>;
|
|
136
|
-
if (o.id === undefined) o.id = okey;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
if (field === "analyses") {
|
|
142
|
-
injectAnalysisIdsInPlace(obj);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
113
|
+
function injectMapKeysAsIds(map: Dict, recurse?: (value: Dict) => void): void {
|
|
114
|
+
for (const [key, value] of Object.entries(map)) {
|
|
115
|
+
const obj = asDict(value);
|
|
116
|
+
if (!obj) continue;
|
|
117
|
+
if (obj.id === undefined) obj.id = key;
|
|
118
|
+
if (recurse) recurse(obj);
|
|
145
119
|
}
|
|
146
120
|
}
|
|
147
121
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
for (const [
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
122
|
+
/** ASTRA YAML uses keyed dicts but the JSON Schema requires explicit `id`
|
|
123
|
+
* fields; this fills them in from the keys. Mutates `data` in place. */
|
|
124
|
+
export function injectAnalysisIdsInPlace(data: Dict): void {
|
|
125
|
+
for (const field of ["decisions", "analyses", "prior_insights", "findings"] as const) {
|
|
126
|
+
const mapping = asDict(data[field]);
|
|
127
|
+
if (!mapping) continue;
|
|
128
|
+
injectMapKeysAsIds(mapping, (value) => {
|
|
129
|
+
if (field === "decisions") {
|
|
130
|
+
const opts = asDict(value.options);
|
|
131
|
+
if (opts) injectMapKeysAsIds(opts);
|
|
132
|
+
} else if (field === "analyses") {
|
|
133
|
+
injectAnalysisIdsInPlace(value);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
157
136
|
}
|
|
158
137
|
}
|
|
159
138
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
export function dirOf(filePath: string): string {
|
|
167
|
-
return dirname(filePath);
|
|
139
|
+
export function injectUniverseIdsInPlace(node: Dict): void {
|
|
140
|
+
const analyses = asDict(node.analyses);
|
|
141
|
+
if (!analyses) return;
|
|
142
|
+
injectMapKeysAsIds(analyses, injectUniverseIdsInPlace);
|
|
168
143
|
}
|
|
169
|
-
|
|
170
|
-
// Re-export type utility for consumers that want strongly-typed outputs.
|
|
171
|
-
export type { Analysis, Universe };
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
// Public API for @astra-spec/sdk. The package focuses on parsing and
|
|
2
|
-
// validating ASTRA analyses; downstream tools layer their own UX on top.
|
|
3
|
-
|
|
4
1
|
export type {
|
|
5
2
|
Analysis,
|
|
6
3
|
Decision,
|
|
@@ -33,22 +30,17 @@ export {
|
|
|
33
30
|
} from "./helpers.js";
|
|
34
31
|
|
|
35
32
|
export {
|
|
36
|
-
// Structural (JSON Schema)
|
|
37
33
|
validateAnalysisData,
|
|
38
34
|
validateUniverseData,
|
|
39
35
|
validateAnalysisFile,
|
|
40
36
|
validateUniverseFile,
|
|
41
37
|
isValidAnalysis,
|
|
42
38
|
isValidUniverse,
|
|
43
|
-
|
|
44
|
-
// Semantic
|
|
45
39
|
SemanticError,
|
|
46
40
|
validateAnalysis,
|
|
47
41
|
validateUniverse,
|
|
48
42
|
semanticValidateAnalysisFile,
|
|
49
43
|
semanticValidateUniverseFile,
|
|
50
|
-
|
|
51
|
-
// Narrative
|
|
52
44
|
NarrativeWarning,
|
|
53
45
|
validateNarrativeAnchors,
|
|
54
46
|
validateNarrativeAnchorsFile,
|
package/src/validation/index.ts
CHANGED
|
@@ -11,8 +11,8 @@ export {
|
|
|
11
11
|
SemanticError,
|
|
12
12
|
validateAnalysis,
|
|
13
13
|
validateUniverse,
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
semanticValidateAnalysisFile,
|
|
15
|
+
semanticValidateUniverseFile,
|
|
16
16
|
} from "./semantic.js";
|
|
17
17
|
|
|
18
18
|
export {
|