@adhamalkhaja/seyola-runtime 0.11.4

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.
Files changed (135) hide show
  1. package/LICENSE +56 -0
  2. package/README.md +87 -0
  3. package/dist/adapters/claude-code-local/index.d.ts +60 -0
  4. package/dist/adapters/claude-code-local/index.d.ts.map +1 -0
  5. package/dist/adapters/claude-code-local/index.js +270 -0
  6. package/dist/adapters/claude-code-local/index.js.map +1 -0
  7. package/dist/bundle/index.d.ts +60 -0
  8. package/dist/bundle/index.d.ts.map +1 -0
  9. package/dist/bundle/index.js +989 -0
  10. package/dist/bundle/index.js.map +1 -0
  11. package/dist/cli/index.d.ts +12 -0
  12. package/dist/cli/index.d.ts.map +1 -0
  13. package/dist/cli/index.js +207 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/compile-plan/budgets.d.ts +23 -0
  16. package/dist/compile-plan/budgets.d.ts.map +1 -0
  17. package/dist/compile-plan/budgets.js +55 -0
  18. package/dist/compile-plan/budgets.js.map +1 -0
  19. package/dist/compile-plan/graph.d.ts +40 -0
  20. package/dist/compile-plan/graph.d.ts.map +1 -0
  21. package/dist/compile-plan/graph.js +114 -0
  22. package/dist/compile-plan/graph.js.map +1 -0
  23. package/dist/compile-plan/index.d.ts +28 -0
  24. package/dist/compile-plan/index.d.ts.map +1 -0
  25. package/dist/compile-plan/index.js +423 -0
  26. package/dist/compile-plan/index.js.map +1 -0
  27. package/dist/compile-plan/registries.d.ts +35 -0
  28. package/dist/compile-plan/registries.d.ts.map +1 -0
  29. package/dist/compile-plan/registries.js +81 -0
  30. package/dist/compile-plan/registries.js.map +1 -0
  31. package/dist/compile-plan/resolver.d.ts +24 -0
  32. package/dist/compile-plan/resolver.d.ts.map +1 -0
  33. package/dist/compile-plan/resolver.js +57 -0
  34. package/dist/compile-plan/resolver.js.map +1 -0
  35. package/dist/compile-plan/types.d.ts +192 -0
  36. package/dist/compile-plan/types.d.ts.map +1 -0
  37. package/dist/compile-plan/types.js +7 -0
  38. package/dist/compile-plan/types.js.map +1 -0
  39. package/dist/doctor/index.d.ts +43 -0
  40. package/dist/doctor/index.d.ts.map +1 -0
  41. package/dist/doctor/index.js +224 -0
  42. package/dist/doctor/index.js.map +1 -0
  43. package/dist/init/index.d.ts +53 -0
  44. package/dist/init/index.d.ts.map +1 -0
  45. package/dist/init/index.js +414 -0
  46. package/dist/init/index.js.map +1 -0
  47. package/dist/lib/ajvSetup.d.ts +30 -0
  48. package/dist/lib/ajvSetup.d.ts.map +1 -0
  49. package/dist/lib/ajvSetup.js +44 -0
  50. package/dist/lib/ajvSetup.js.map +1 -0
  51. package/dist/lib/loadJson.d.ts +21 -0
  52. package/dist/lib/loadJson.d.ts.map +1 -0
  53. package/dist/lib/loadJson.js +43 -0
  54. package/dist/lib/loadJson.js.map +1 -0
  55. package/dist/lib/loadYaml.d.ts +18 -0
  56. package/dist/lib/loadYaml.d.ts.map +1 -0
  57. package/dist/lib/loadYaml.js +41 -0
  58. package/dist/lib/loadYaml.js.map +1 -0
  59. package/dist/lib/paths.d.ts +22 -0
  60. package/dist/lib/paths.d.ts.map +1 -0
  61. package/dist/lib/paths.js +61 -0
  62. package/dist/lib/paths.js.map +1 -0
  63. package/dist/run-plan/index.d.ts +17 -0
  64. package/dist/run-plan/index.d.ts.map +1 -0
  65. package/dist/run-plan/index.js +235 -0
  66. package/dist/run-plan/index.js.map +1 -0
  67. package/dist/run-plan/types.d.ts +53 -0
  68. package/dist/run-plan/types.d.ts.map +1 -0
  69. package/dist/run-plan/types.js +6 -0
  70. package/dist/run-plan/types.js.map +1 -0
  71. package/dist/run-step/contextPacket.d.ts +39 -0
  72. package/dist/run-step/contextPacket.d.ts.map +1 -0
  73. package/dist/run-step/contextPacket.js +213 -0
  74. package/dist/run-step/contextPacket.js.map +1 -0
  75. package/dist/run-step/derivation.d.ts +41 -0
  76. package/dist/run-step/derivation.d.ts.map +1 -0
  77. package/dist/run-step/derivation.js +61 -0
  78. package/dist/run-step/derivation.js.map +1 -0
  79. package/dist/run-step/effectExecutor.d.ts +42 -0
  80. package/dist/run-step/effectExecutor.d.ts.map +1 -0
  81. package/dist/run-step/effectExecutor.js +297 -0
  82. package/dist/run-step/effectExecutor.js.map +1 -0
  83. package/dist/run-step/formatExecutor.d.ts +34 -0
  84. package/dist/run-step/formatExecutor.d.ts.map +1 -0
  85. package/dist/run-step/formatExecutor.js +329 -0
  86. package/dist/run-step/formatExecutor.js.map +1 -0
  87. package/dist/run-step/index.d.ts +23 -0
  88. package/dist/run-step/index.d.ts.map +1 -0
  89. package/dist/run-step/index.js +627 -0
  90. package/dist/run-step/index.js.map +1 -0
  91. package/dist/run-step/inputResolver.d.ts +48 -0
  92. package/dist/run-step/inputResolver.d.ts.map +1 -0
  93. package/dist/run-step/inputResolver.js +268 -0
  94. package/dist/run-step/inputResolver.js.map +1 -0
  95. package/dist/run-step/types.d.ts +123 -0
  96. package/dist/run-step/types.d.ts.map +1 -0
  97. package/dist/run-step/types.js +6 -0
  98. package/dist/run-step/types.js.map +1 -0
  99. package/dist/validate-pack/checks/capabilitiesRegistry.d.ts +3 -0
  100. package/dist/validate-pack/checks/capabilitiesRegistry.d.ts.map +1 -0
  101. package/dist/validate-pack/checks/capabilitiesRegistry.js +83 -0
  102. package/dist/validate-pack/checks/capabilitiesRegistry.js.map +1 -0
  103. package/dist/validate-pack/checks/contextPolicies.d.ts +3 -0
  104. package/dist/validate-pack/checks/contextPolicies.d.ts.map +1 -0
  105. package/dist/validate-pack/checks/contextPolicies.js +40 -0
  106. package/dist/validate-pack/checks/contextPolicies.js.map +1 -0
  107. package/dist/validate-pack/checks/mvkExamples.d.ts +10 -0
  108. package/dist/validate-pack/checks/mvkExamples.d.ts.map +1 -0
  109. package/dist/validate-pack/checks/mvkExamples.js +77 -0
  110. package/dist/validate-pack/checks/mvkExamples.js.map +1 -0
  111. package/dist/validate-pack/checks/requiredFiles.d.ts +3 -0
  112. package/dist/validate-pack/checks/requiredFiles.d.ts.map +1 -0
  113. package/dist/validate-pack/checks/requiredFiles.js +35 -0
  114. package/dist/validate-pack/checks/requiredFiles.js.map +1 -0
  115. package/dist/validate-pack/checks/resolutionPolicy.d.ts +3 -0
  116. package/dist/validate-pack/checks/resolutionPolicy.d.ts.map +1 -0
  117. package/dist/validate-pack/checks/resolutionPolicy.js +88 -0
  118. package/dist/validate-pack/checks/resolutionPolicy.js.map +1 -0
  119. package/dist/validate-pack/checks/schemas.d.ts +16 -0
  120. package/dist/validate-pack/checks/schemas.d.ts.map +1 -0
  121. package/dist/validate-pack/checks/schemas.js +70 -0
  122. package/dist/validate-pack/checks/schemas.js.map +1 -0
  123. package/dist/validate-pack/index.d.ts +25 -0
  124. package/dist/validate-pack/index.d.ts.map +1 -0
  125. package/dist/validate-pack/index.js +95 -0
  126. package/dist/validate-pack/index.js.map +1 -0
  127. package/dist/validate-pack/reporting.d.ts +6 -0
  128. package/dist/validate-pack/reporting.d.ts.map +1 -0
  129. package/dist/validate-pack/reporting.js +40 -0
  130. package/dist/validate-pack/reporting.js.map +1 -0
  131. package/dist/validate-pack/types.d.ts +34 -0
  132. package/dist/validate-pack/types.d.ts.map +1 -0
  133. package/dist/validate-pack/types.js +8 -0
  134. package/dist/validate-pack/types.js.map +1 -0
  135. package/package.json +54 -0
@@ -0,0 +1,40 @@
1
+ import { resolvePackPath } from "../../lib/paths.js";
2
+ import { loadJson } from "../../lib/loadJson.js";
3
+ const VALIDATOR = "contextPolicies";
4
+ const POLICIES_FILE = ".context/policies.json";
5
+ const REQUIRED_TOP_LEVEL_KEYS = [
6
+ "default_policy",
7
+ "budget_rules",
8
+ "cache_strategy",
9
+ "progressive_disclosure",
10
+ "context_rot_prevention",
11
+ ];
12
+ export function checkContextPolicies(packRoot) {
13
+ const errors = [];
14
+ const warnings = [];
15
+ const abs = resolvePackPath(packRoot, POLICIES_FILE);
16
+ const loaded = loadJson(abs);
17
+ if (!loaded.ok) {
18
+ errors.push({
19
+ severity: "error",
20
+ code: loaded.code,
21
+ message: `Cannot load context policies: ${loaded.message}`,
22
+ path: abs,
23
+ validator: VALIDATOR,
24
+ });
25
+ return { validator: VALIDATOR, errors, warnings };
26
+ }
27
+ for (const key of REQUIRED_TOP_LEVEL_KEYS) {
28
+ if (!(key in loaded.data)) {
29
+ errors.push({
30
+ severity: "error",
31
+ code: "missing_required_field",
32
+ message: `Context policies missing required top-level field: ${key}`,
33
+ path: abs,
34
+ validator: VALIDATOR,
35
+ });
36
+ }
37
+ }
38
+ return { validator: VALIDATOR, errors, warnings };
39
+ }
40
+ //# sourceMappingURL=contextPolicies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextPolicies.js","sourceRoot":"","sources":["../../../src/validate-pack/checks/contextPolicies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,MAAM,SAAS,GAAG,iBAAiB,CAAC;AACpC,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAE/C,MAAM,uBAAuB,GAAG;IAC9B,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,wBAAwB;IACxB,wBAAwB;CACzB,CAAC;AAUF,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAY,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,QAAQ,CAAuB,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,iCAAiC,MAAM,CAAC,OAAO,EAAE;YAC1D,IAAI,EAAE,GAAG;YACT,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACpD,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC1C,IAAI,CAAC,CAAC,GAAG,IAAK,MAAM,CAAC,IAAgC,CAAC,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,sDAAsD,GAAG,EAAE;gBACpE,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACpD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { CheckResult } from "../types.js";
2
+ import type { CompiledSchemas } from "./schemas.js";
3
+ /**
4
+ * Validates every TaskSpec and WorkPlan example in .harness/examples/
5
+ * against its respective schema. If the directory does not exist or is
6
+ * empty, the check passes silently — trimmed alpha bundles legitimately
7
+ * ship no examples.
8
+ */
9
+ export declare function checkMvkExamples(packRoot: string, compiled: CompiledSchemas): CheckResult;
10
+ //# sourceMappingURL=mvkExamples.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mvkExamples.d.ts","sourceRoot":"","sources":["../../../src/validate-pack/checks/mvkExamples.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAS,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,WAAW,CAwCzF"}
@@ -0,0 +1,77 @@
1
+ import { existsSync, readdirSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { resolvePackPath } from "../../lib/paths.js";
4
+ import { loadYaml } from "../../lib/loadYaml.js";
5
+ import { formatAjvErrors } from "../../lib/ajvSetup.js";
6
+ const VALIDATOR = "mvkExamples";
7
+ /**
8
+ * Validates every TaskSpec and WorkPlan example in .harness/examples/
9
+ * against its respective schema. If the directory does not exist or is
10
+ * empty, the check passes silently — trimmed alpha bundles legitimately
11
+ * ship no examples.
12
+ */
13
+ export function checkMvkExamples(packRoot, compiled) {
14
+ const errors = [];
15
+ const warnings = [];
16
+ const examplesDir = resolvePackPath(packRoot, ".harness/examples");
17
+ if (!existsSync(examplesDir)) {
18
+ return { validator: VALIDATOR, errors, warnings };
19
+ }
20
+ const entries = readdirSync(examplesDir, { withFileTypes: true })
21
+ .filter((e) => e.isFile())
22
+ .map((e) => e.name);
23
+ if (compiled.taskSpec) {
24
+ for (const name of entries.filter((n) => n.endsWith(".task.yaml") || n.endsWith(".task.yml"))) {
25
+ runExample(packRoot, join(".harness/examples", name), compiled.taskSpec, "task-spec", errors);
26
+ }
27
+ }
28
+ else if (entries.some((n) => n.endsWith(".task.yaml") || n.endsWith(".task.yml"))) {
29
+ errors.push({
30
+ severity: "error",
31
+ code: "schema_unavailable",
32
+ message: "Cannot validate TaskSpec example(s): task-spec schema did not compile.",
33
+ validator: VALIDATOR,
34
+ });
35
+ }
36
+ if (compiled.workPlan) {
37
+ for (const name of entries.filter((n) => n.endsWith(".plan.yaml") || n.endsWith(".plan.yml"))) {
38
+ runExample(packRoot, join(".harness/examples", name), compiled.workPlan, "work-plan", errors);
39
+ }
40
+ }
41
+ else if (entries.some((n) => n.endsWith(".plan.yaml") || n.endsWith(".plan.yml"))) {
42
+ errors.push({
43
+ severity: "error",
44
+ code: "schema_unavailable",
45
+ message: "Cannot validate WorkPlan example(s): work-plan schema did not compile.",
46
+ validator: VALIDATOR,
47
+ });
48
+ }
49
+ return { validator: VALIDATOR, errors, warnings };
50
+ }
51
+ function runExample(packRoot, rel, validate, schemaLabel, errors) {
52
+ const abs = resolvePackPath(packRoot, rel);
53
+ const loaded = loadYaml(abs);
54
+ if (!loaded.ok) {
55
+ errors.push({
56
+ severity: "error",
57
+ code: loaded.code,
58
+ message: `Cannot load ${schemaLabel} example ${rel}: ${loaded.message}`,
59
+ path: abs,
60
+ validator: VALIDATOR,
61
+ });
62
+ return;
63
+ }
64
+ const valid = validate(loaded.data);
65
+ if (!valid) {
66
+ const messages = formatAjvErrors(validate.errors);
67
+ errors.push({
68
+ severity: "error",
69
+ code: "schema_validation_failed",
70
+ message: `MVK example ${rel} failed validation against ${schemaLabel} schema: ${messages.join("; ")}`,
71
+ path: abs,
72
+ validator: VALIDATOR,
73
+ details: { errors: messages },
74
+ });
75
+ }
76
+ }
77
+ //# sourceMappingURL=mvkExamples.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mvkExamples.js","sourceRoot":"","sources":["../../../src/validate-pack/checks/mvkExamples.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CheckResult } from "../types.js";
2
+ export declare function checkRequiredFiles(packRoot: string): CheckResult;
3
+ //# sourceMappingURL=requiredFiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requiredFiles.d.ts","sourceRoot":"","sources":["../../../src/validate-pack/checks/requiredFiles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAS,MAAM,aAAa,CAAC;AAItD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAiChE"}
@@ -0,0 +1,35 @@
1
+ import { existsSync } from "node:fs";
2
+ import { resolvePackPath, REQUIRED_PACK_FILES, REQUIRED_SHAPE_CONTRACTS } from "../../lib/paths.js";
3
+ const VALIDATOR = "requiredFiles";
4
+ export function checkRequiredFiles(packRoot) {
5
+ const errors = [];
6
+ const warnings = [];
7
+ for (const rel of REQUIRED_PACK_FILES) {
8
+ const abs = resolvePackPath(packRoot, rel);
9
+ if (!existsSync(abs)) {
10
+ errors.push({
11
+ severity: "error",
12
+ code: "missing_required_file",
13
+ message: `Required pack file is missing: ${rel}`,
14
+ path: abs,
15
+ validator: VALIDATOR,
16
+ });
17
+ }
18
+ }
19
+ for (const rel of REQUIRED_SHAPE_CONTRACTS) {
20
+ const abs = resolvePackPath(packRoot, rel);
21
+ if (!existsSync(abs)) {
22
+ // Shape contracts other than the four MVK shapes are stubbed in v1.8.0.
23
+ // Treat the four MVK shapes as required.
24
+ errors.push({
25
+ severity: "error",
26
+ code: "missing_shape_contract",
27
+ message: `MVK shape contract missing: ${rel}`,
28
+ path: abs,
29
+ validator: VALIDATOR,
30
+ });
31
+ }
32
+ }
33
+ return { validator: VALIDATOR, errors, warnings };
34
+ }
35
+ //# sourceMappingURL=requiredFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requiredFiles.js","sourceRoot":"","sources":["../../../src/validate-pack/checks/requiredFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAGpG,MAAM,SAAS,GAAG,eAAe,CAAC;AAElC,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAY,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,kCAAkC,GAAG,EAAE;gBAChD,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,wEAAwE;YACxE,yCAAyC;YACzC,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,+BAA+B,GAAG,EAAE;gBAC7C,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACpD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CheckResult } from "../types.js";
2
+ export declare function checkResolutionPolicy(packRoot: string): CheckResult;
3
+ //# sourceMappingURL=resolutionPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolutionPolicy.d.ts","sourceRoot":"","sources":["../../../src/validate-pack/checks/resolutionPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAS,MAAM,aAAa,CAAC;AAwBtD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAyEnE"}
@@ -0,0 +1,88 @@
1
+ import { resolvePackPath } from "../../lib/paths.js";
2
+ import { loadJson } from "../../lib/loadJson.js";
3
+ const VALIDATOR = "resolutionPolicy";
4
+ const POLICY_FILE = ".composer/resolution-policy.json";
5
+ /**
6
+ * The 8 levels MUST appear in this exact order in resolution_order.
7
+ * V2.1 §19 + .composer/resolution-policy.json.
8
+ */
9
+ const EXPECTED_LEVELS = [
10
+ "explicit_fully_qualified",
11
+ "runtime_override",
12
+ "member_namespace",
13
+ "creator_namespace",
14
+ "pack_namespace",
15
+ "universal_namespace",
16
+ "skill_default",
17
+ "fail_unresolved",
18
+ ];
19
+ export function checkResolutionPolicy(packRoot) {
20
+ const errors = [];
21
+ const warnings = [];
22
+ const abs = resolvePackPath(packRoot, POLICY_FILE);
23
+ const loaded = loadJson(abs);
24
+ if (!loaded.ok) {
25
+ errors.push({
26
+ severity: "error",
27
+ code: loaded.code,
28
+ message: `Cannot load resolution policy: ${loaded.message}`,
29
+ path: abs,
30
+ validator: VALIDATOR,
31
+ });
32
+ return { validator: VALIDATOR, errors, warnings };
33
+ }
34
+ const order = loaded.data.resolution_order;
35
+ if (!Array.isArray(order)) {
36
+ errors.push({
37
+ severity: "error",
38
+ code: "missing_resolution_order",
39
+ message: "Resolution policy missing required resolution_order array.",
40
+ path: abs,
41
+ validator: VALIDATOR,
42
+ });
43
+ return { validator: VALIDATOR, errors, warnings };
44
+ }
45
+ if (order.length !== 8) {
46
+ errors.push({
47
+ severity: "error",
48
+ code: "wrong_resolution_order_length",
49
+ message: `resolution_order must have exactly 8 entries; found ${order.length}.`,
50
+ path: abs,
51
+ validator: VALIDATOR,
52
+ });
53
+ }
54
+ for (let i = 0; i < EXPECTED_LEVELS.length; i++) {
55
+ const expected = EXPECTED_LEVELS[i];
56
+ const entry = order[i];
57
+ if (!entry) {
58
+ errors.push({
59
+ severity: "error",
60
+ code: "missing_resolution_level",
61
+ message: `resolution_order[${i}] missing; expected level '${expected}'.`,
62
+ path: abs,
63
+ validator: VALIDATOR,
64
+ });
65
+ continue;
66
+ }
67
+ if (entry.level !== expected) {
68
+ errors.push({
69
+ severity: "error",
70
+ code: "wrong_resolution_level",
71
+ message: `resolution_order[${i}].level expected '${expected}', got '${entry.level ?? "(missing)"}'.`,
72
+ path: abs,
73
+ validator: VALIDATOR,
74
+ });
75
+ }
76
+ if (entry.step !== i + 1) {
77
+ errors.push({
78
+ severity: "error",
79
+ code: "wrong_resolution_step",
80
+ message: `resolution_order[${i}].step expected ${i + 1}, got ${entry.step ?? "(missing)"}.`,
81
+ path: abs,
82
+ validator: VALIDATOR,
83
+ });
84
+ }
85
+ }
86
+ return { validator: VALIDATOR, errors, warnings };
87
+ }
88
+ //# sourceMappingURL=resolutionPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolutionPolicy.js","sourceRoot":"","sources":["../../../src/validate-pack/checks/resolutionPolicy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ValidateFunction } from "ajv";
2
+ import type { CheckResult } from "../types.js";
3
+ export interface CompiledSchemas {
4
+ taskSpec?: ValidateFunction;
5
+ workPlan?: ValidateFunction;
6
+ contextPacket?: ValidateFunction;
7
+ structuredResult?: ValidateFunction;
8
+ bindingRecord?: ValidateFunction;
9
+ resolutionError?: ValidateFunction;
10
+ composerIndex?: ValidateFunction;
11
+ }
12
+ export interface SchemasCheckOutcome extends CheckResult {
13
+ compiled: CompiledSchemas;
14
+ }
15
+ export declare function checkSchemas(packRoot: string): SchemasCheckOutcome;
16
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/validate-pack/checks/schemas.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAS,MAAM,aAAa,CAAC;AAetD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,aAAa,CAAC,EAAE,gBAAgB,CAAC;CAClC;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CA4DlE"}
@@ -0,0 +1,70 @@
1
+ import { resolvePackPath } from "../../lib/paths.js";
2
+ import { loadJson } from "../../lib/loadJson.js";
3
+ import { makeAjv, compileSchema } from "../../lib/ajvSetup.js";
4
+ const VALIDATOR = "schemas";
5
+ const HARNESS_SCHEMAS = [
6
+ ".harness/schemas/task-spec.schema.json",
7
+ ".harness/schemas/work-plan.schema.json",
8
+ ".harness/schemas/context-packet.schema.json",
9
+ ".harness/schemas/structured-result.schema.json",
10
+ ".harness/schemas/binding-record.schema.json",
11
+ ".harness/schemas/resolution-error.schema.json",
12
+ ];
13
+ const COMPOSER_SCHEMAS = [".composer/index.schema.json"];
14
+ export function checkSchemas(packRoot) {
15
+ const errors = [];
16
+ const warnings = [];
17
+ const compiled = {};
18
+ const ajv = makeAjv();
19
+ const allSchemas = [...HARNESS_SCHEMAS, ...COMPOSER_SCHEMAS];
20
+ for (const rel of allSchemas) {
21
+ const abs = resolvePackPath(packRoot, rel);
22
+ const loaded = loadJson(abs);
23
+ if (!loaded.ok) {
24
+ errors.push({
25
+ severity: "error",
26
+ code: loaded.code,
27
+ message: `Cannot load schema ${rel}: ${loaded.message}`,
28
+ path: abs,
29
+ validator: VALIDATOR,
30
+ });
31
+ continue;
32
+ }
33
+ const result = compileSchema(ajv, loaded.data);
34
+ if (!result.ok) {
35
+ errors.push({
36
+ severity: "error",
37
+ code: "schema_compile_failed",
38
+ message: `Failed to compile schema ${rel}: ${result.message}`,
39
+ path: abs,
40
+ validator: VALIDATOR,
41
+ });
42
+ continue;
43
+ }
44
+ switch (rel) {
45
+ case ".harness/schemas/task-spec.schema.json":
46
+ compiled.taskSpec = result.validate;
47
+ break;
48
+ case ".harness/schemas/work-plan.schema.json":
49
+ compiled.workPlan = result.validate;
50
+ break;
51
+ case ".harness/schemas/context-packet.schema.json":
52
+ compiled.contextPacket = result.validate;
53
+ break;
54
+ case ".harness/schemas/structured-result.schema.json":
55
+ compiled.structuredResult = result.validate;
56
+ break;
57
+ case ".harness/schemas/binding-record.schema.json":
58
+ compiled.bindingRecord = result.validate;
59
+ break;
60
+ case ".harness/schemas/resolution-error.schema.json":
61
+ compiled.resolutionError = result.validate;
62
+ break;
63
+ case ".composer/index.schema.json":
64
+ compiled.composerIndex = result.validate;
65
+ break;
66
+ }
67
+ }
68
+ return { validator: VALIDATOR, errors, warnings, compiled };
69
+ }
70
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/validate-pack/checks/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI/D,MAAM,SAAS,GAAG,SAAS,CAAC;AAE5B,MAAM,eAAe,GAAG;IACtB,wCAAwC;IACxC,wCAAwC;IACxC,6CAA6C;IAC7C,gDAAgD;IAChD,6CAA6C;IAC7C,+CAA+C;CAChD,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAgBzD,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAY,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IAEtB,MAAM,UAAU,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,gBAAgB,CAAC,CAAC;IAE7D,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,sBAAsB,GAAG,KAAK,MAAM,CAAC,OAAO,EAAE;gBACvD,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,4BAA4B,GAAG,KAAK,MAAM,CAAC,OAAO,EAAE;gBAC7D,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,wCAAwC;gBAC3C,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACpC,MAAM;YACR,KAAK,wCAAwC;gBAC3C,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACpC,MAAM;YACR,KAAK,6CAA6C;gBAChD,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACzC,MAAM;YACR,KAAK,gDAAgD;gBACnD,QAAQ,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC5C,MAAM;YACR,KAAK,6CAA6C;gBAChD,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACzC,MAAM;YACR,KAAK,+CAA+C;gBAClD,QAAQ,CAAC,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC3C,MAAM;YACR,KAAK,6BAA6B;gBAChC,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACzC,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Milestone 1 entry point — validate-pack.
3
+ *
4
+ * Walks the seyola-paid pack at the given root and runs six checks:
5
+ * 1. requiredFiles
6
+ * 2. schemas
7
+ * 3. mvkExamples (depends on schemas)
8
+ * 4. contextPolicies
9
+ * 5. resolutionPolicy
10
+ * 6. capabilitiesRegistry
11
+ *
12
+ * Exits 0 when only warnings are present (e.g., known MVK gaps).
13
+ * Exits 1 on any error.
14
+ */
15
+ import type { ValidatePackReport } from "./types.js";
16
+ export interface ValidatePackArgs {
17
+ packPath: string;
18
+ json?: boolean;
19
+ }
20
+ export interface ValidatePackResult {
21
+ exitCode: 0 | 1;
22
+ report: ValidatePackReport;
23
+ }
24
+ export declare function validatePack(args: ValidatePackArgs): Promise<ValidatePackResult>;
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validate-pack/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyDtF"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Milestone 1 entry point — validate-pack.
3
+ *
4
+ * Walks the seyola-paid pack at the given root and runs six checks:
5
+ * 1. requiredFiles
6
+ * 2. schemas
7
+ * 3. mvkExamples (depends on schemas)
8
+ * 4. contextPolicies
9
+ * 5. resolutionPolicy
10
+ * 6. capabilitiesRegistry
11
+ *
12
+ * Exits 0 when only warnings are present (e.g., known MVK gaps).
13
+ * Exits 1 on any error.
14
+ */
15
+ import { resolve } from "node:path";
16
+ import { existsSync } from "node:fs";
17
+ import { checkRequiredFiles } from "./checks/requiredFiles.js";
18
+ import { checkSchemas } from "./checks/schemas.js";
19
+ import { checkMvkExamples } from "./checks/mvkExamples.js";
20
+ import { checkContextPolicies } from "./checks/contextPolicies.js";
21
+ import { checkResolutionPolicy } from "./checks/resolutionPolicy.js";
22
+ import { checkCapabilitiesRegistry } from "./checks/capabilitiesRegistry.js";
23
+ import { printHumanReport, printJsonReport } from "./reporting.js";
24
+ export async function validatePack(args) {
25
+ const start = Date.now();
26
+ const packAbsolute = resolve(args.packPath);
27
+ const errors = [];
28
+ const warnings = [];
29
+ const passedChecks = [];
30
+ const failedChecks = [];
31
+ if (!existsSync(packAbsolute)) {
32
+ const issue = {
33
+ severity: "error",
34
+ code: "pack_root_not_found",
35
+ message: `Pack root does not exist: ${packAbsolute}`,
36
+ path: packAbsolute,
37
+ validator: "preflight",
38
+ };
39
+ errors.push(issue);
40
+ return finalize({ packPath: args.packPath, packAbsolute, errors, warnings, passedChecks, failedChecks: ["preflight"], start, json: args.json });
41
+ }
42
+ const checkResults = [];
43
+ // 1. Required files.
44
+ const requiredFiles = checkRequiredFiles(packAbsolute);
45
+ checkResults.push(requiredFiles);
46
+ // 2. Schemas (load + compile).
47
+ const schemas = checkSchemas(packAbsolute);
48
+ checkResults.push({ validator: schemas.validator, errors: schemas.errors, warnings: schemas.warnings });
49
+ // 3. MVK examples (only if schemas compiled).
50
+ const mvk = checkMvkExamples(packAbsolute, schemas.compiled);
51
+ checkResults.push(mvk);
52
+ // 4. Context policies.
53
+ const contextPolicies = checkContextPolicies(packAbsolute);
54
+ checkResults.push(contextPolicies);
55
+ // 5. Resolution policy (8-step order).
56
+ const resolutionPolicy = checkResolutionPolicy(packAbsolute);
57
+ checkResults.push(resolutionPolicy);
58
+ // 6. Capabilities registry (seeded + gap warnings).
59
+ const capabilitiesRegistry = checkCapabilitiesRegistry(packAbsolute);
60
+ checkResults.push(capabilitiesRegistry);
61
+ for (const result of checkResults) {
62
+ errors.push(...result.errors);
63
+ warnings.push(...result.warnings);
64
+ if (result.errors.length === 0) {
65
+ passedChecks.push(result.validator);
66
+ }
67
+ else {
68
+ failedChecks.push(result.validator);
69
+ }
70
+ }
71
+ return finalize({ packPath: args.packPath, packAbsolute, errors, warnings, passedChecks, failedChecks, start, json: args.json });
72
+ }
73
+ function finalize(args) {
74
+ const report = {
75
+ packPath: args.packPath,
76
+ packAbsolutePath: args.packAbsolute,
77
+ passedChecks: args.passedChecks,
78
+ failedChecks: args.failedChecks,
79
+ errors: args.errors,
80
+ warnings: args.warnings,
81
+ summary: {
82
+ errorCount: args.errors.length,
83
+ warningCount: args.warnings.length,
84
+ durationMs: Date.now() - args.start,
85
+ },
86
+ };
87
+ if (args.json) {
88
+ printJsonReport(report);
89
+ }
90
+ else {
91
+ printHumanReport(report);
92
+ }
93
+ return { exitCode: report.errors.length === 0 ? 0 : 1, report };
94
+ }
95
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validate-pack/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { ValidatePackReport } from "./types.js";
2
+ /** Pretty-prints a validate-pack report to stderr. Returns nothing. */
3
+ export declare function printHumanReport(report: ValidatePackReport): void;
4
+ /** Emits the report as a single JSON object on stdout. */
5
+ export declare function printJsonReport(report: ValidatePackReport): void;
6
+ //# sourceMappingURL=reporting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../src/validate-pack/reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAS,MAAM,YAAY,CAAC;AAE5D,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAgCjE;AAQD,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAEhE"}
@@ -0,0 +1,40 @@
1
+ /** Pretty-prints a validate-pack report to stderr. Returns nothing. */
2
+ export function printHumanReport(report) {
3
+ const errors = report.errors.length;
4
+ const warnings = report.warnings.length;
5
+ const headline = errors === 0
6
+ ? `validate-pack PASSED with ${warnings} warning${warnings === 1 ? "" : "s"} (${report.summary.durationMs}ms)`
7
+ : `validate-pack FAILED — ${errors} error${errors === 1 ? "" : "s"}, ${warnings} warning${warnings === 1 ? "" : "s"} (${report.summary.durationMs}ms)`;
8
+ process.stderr.write(`\n${headline}\n`);
9
+ process.stderr.write(`Pack: ${report.packAbsolutePath}\n\n`);
10
+ if (report.errors.length > 0) {
11
+ process.stderr.write("ERRORS:\n");
12
+ for (const issue of report.errors) {
13
+ process.stderr.write(formatIssue(issue) + "\n");
14
+ }
15
+ process.stderr.write("\n");
16
+ }
17
+ if (report.warnings.length > 0) {
18
+ process.stderr.write("WARNINGS:\n");
19
+ for (const issue of report.warnings) {
20
+ process.stderr.write(formatIssue(issue) + "\n");
21
+ }
22
+ process.stderr.write("\n");
23
+ }
24
+ if (report.passedChecks.length > 0) {
25
+ process.stderr.write(`Checks passed: ${report.passedChecks.join(", ")}\n`);
26
+ }
27
+ if (report.failedChecks.length > 0) {
28
+ process.stderr.write(`Checks failed: ${report.failedChecks.join(", ")}\n`);
29
+ }
30
+ }
31
+ function formatIssue(issue) {
32
+ const validator = issue.validator ? `[${issue.validator}] ` : "";
33
+ const path = issue.path ? `\n at ${issue.path}` : "";
34
+ return ` ${validator}${issue.code}: ${issue.message}${path}`;
35
+ }
36
+ /** Emits the report as a single JSON object on stdout. */
37
+ export function printJsonReport(report) {
38
+ process.stdout.write(JSON.stringify(report, null, 2) + "\n");
39
+ }
40
+ //# sourceMappingURL=reporting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reporting.js","sourceRoot":"","sources":["../../src/validate-pack/reporting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Shared types for validate-pack output.
3
+ *
4
+ * Issues are either errors (block exit 0) or warnings (allowed). The CLI
5
+ * surfaces both; the exit code only reflects errors.
6
+ */
7
+ export type Severity = "error" | "warning";
8
+ export interface Issue {
9
+ severity: Severity;
10
+ code: string;
11
+ message: string;
12
+ path?: string;
13
+ validator?: string;
14
+ details?: Record<string, unknown>;
15
+ }
16
+ export interface CheckResult {
17
+ validator: string;
18
+ errors: Issue[];
19
+ warnings: Issue[];
20
+ }
21
+ export interface ValidatePackReport {
22
+ packPath: string;
23
+ packAbsolutePath: string;
24
+ passedChecks: string[];
25
+ failedChecks: string[];
26
+ errors: Issue[];
27
+ warnings: Issue[];
28
+ summary: {
29
+ errorCount: number;
30
+ warningCount: number;
31
+ durationMs: number;
32
+ };
33
+ }
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validate-pack/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3C,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,KAAK,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Shared types for validate-pack output.
3
+ *
4
+ * Issues are either errors (block exit 0) or warnings (allowed). The CLI
5
+ * surfaces both; the exit code only reflects errors.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/validate-pack/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}