arggon-harness 0.1.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.
Files changed (170) hide show
  1. package/README.md +229 -0
  2. package/config/default-opencode.json +21 -0
  3. package/dist/init.d.ts +3 -0
  4. package/dist/init.d.ts.map +1 -0
  5. package/dist/init.js +406 -0
  6. package/dist/init.js.map +1 -0
  7. package/dist/plugin/engine/artifact-graph.d.ts +38 -0
  8. package/dist/plugin/engine/artifact-graph.d.ts.map +1 -0
  9. package/dist/plugin/engine/artifact-graph.js +137 -0
  10. package/dist/plugin/engine/artifact-graph.js.map +1 -0
  11. package/dist/plugin/engine/config.d.ts +21 -0
  12. package/dist/plugin/engine/config.d.ts.map +1 -0
  13. package/dist/plugin/engine/config.js +146 -0
  14. package/dist/plugin/engine/config.js.map +1 -0
  15. package/dist/plugin/engine/delta-apply.d.ts +23 -0
  16. package/dist/plugin/engine/delta-apply.d.ts.map +1 -0
  17. package/dist/plugin/engine/delta-apply.js +153 -0
  18. package/dist/plugin/engine/delta-apply.js.map +1 -0
  19. package/dist/plugin/engine/git.d.ts +32 -0
  20. package/dist/plugin/engine/git.d.ts.map +1 -0
  21. package/dist/plugin/engine/git.js +61 -0
  22. package/dist/plugin/engine/git.js.map +1 -0
  23. package/dist/plugin/engine/integrity.d.ts +45 -0
  24. package/dist/plugin/engine/integrity.d.ts.map +1 -0
  25. package/dist/plugin/engine/integrity.js +98 -0
  26. package/dist/plugin/engine/integrity.js.map +1 -0
  27. package/dist/plugin/engine/registry.d.ts +39 -0
  28. package/dist/plugin/engine/registry.d.ts.map +1 -0
  29. package/dist/plugin/engine/registry.js +191 -0
  30. package/dist/plugin/engine/registry.js.map +1 -0
  31. package/dist/plugin/engine/state.d.ts +31 -0
  32. package/dist/plugin/engine/state.d.ts.map +1 -0
  33. package/dist/plugin/engine/state.js +116 -0
  34. package/dist/plugin/engine/state.js.map +1 -0
  35. package/dist/plugin/engine/task-tracker.d.ts +66 -0
  36. package/dist/plugin/engine/task-tracker.d.ts.map +1 -0
  37. package/dist/plugin/engine/task-tracker.js +124 -0
  38. package/dist/plugin/engine/task-tracker.js.map +1 -0
  39. package/dist/plugin/engine/types.d.ts +349 -0
  40. package/dist/plugin/engine/types.d.ts.map +1 -0
  41. package/dist/plugin/engine/types.js +3 -0
  42. package/dist/plugin/engine/types.js.map +1 -0
  43. package/dist/plugin/engine/validator.d.ts +52 -0
  44. package/dist/plugin/engine/validator.d.ts.map +1 -0
  45. package/dist/plugin/engine/validator.js +457 -0
  46. package/dist/plugin/engine/validator.js.map +1 -0
  47. package/dist/plugin/engine/verifier.d.ts +61 -0
  48. package/dist/plugin/engine/verifier.d.ts.map +1 -0
  49. package/dist/plugin/engine/verifier.js +441 -0
  50. package/dist/plugin/engine/verifier.js.map +1 -0
  51. package/dist/plugin/hooks/context-injection.d.ts +11 -0
  52. package/dist/plugin/hooks/context-injection.d.ts.map +1 -0
  53. package/dist/plugin/hooks/context-injection.js +88 -0
  54. package/dist/plugin/hooks/context-injection.js.map +1 -0
  55. package/dist/plugin/hooks/event-handlers.d.ts +9 -0
  56. package/dist/plugin/hooks/event-handlers.d.ts.map +1 -0
  57. package/dist/plugin/hooks/event-handlers.js +10 -0
  58. package/dist/plugin/hooks/event-handlers.js.map +1 -0
  59. package/dist/plugin/hooks/workflow-gate.d.ts +24 -0
  60. package/dist/plugin/hooks/workflow-gate.d.ts.map +1 -0
  61. package/dist/plugin/hooks/workflow-gate.js +78 -0
  62. package/dist/plugin/hooks/workflow-gate.js.map +1 -0
  63. package/dist/plugin/index.d.ts +423 -0
  64. package/dist/plugin/index.d.ts.map +1 -0
  65. package/dist/plugin/index.js +253 -0
  66. package/dist/plugin/index.js.map +1 -0
  67. package/dist/plugin/tools/spec-artifact-instr.d.ts +7 -0
  68. package/dist/plugin/tools/spec-artifact-instr.d.ts.map +1 -0
  69. package/dist/plugin/tools/spec-artifact-instr.js +73 -0
  70. package/dist/plugin/tools/spec-artifact-instr.js.map +1 -0
  71. package/dist/plugin/tools/spec-change-archive.d.ts +6 -0
  72. package/dist/plugin/tools/spec-change-archive.d.ts.map +1 -0
  73. package/dist/plugin/tools/spec-change-archive.js +62 -0
  74. package/dist/plugin/tools/spec-change-archive.js.map +1 -0
  75. package/dist/plugin/tools/spec-change-list.d.ts +3 -0
  76. package/dist/plugin/tools/spec-change-list.d.ts.map +1 -0
  77. package/dist/plugin/tools/spec-change-list.js +38 -0
  78. package/dist/plugin/tools/spec-change-list.js.map +1 -0
  79. package/dist/plugin/tools/spec-change-new.d.ts +7 -0
  80. package/dist/plugin/tools/spec-change-new.d.ts.map +1 -0
  81. package/dist/plugin/tools/spec-change-new.js +47 -0
  82. package/dist/plugin/tools/spec-change-new.js.map +1 -0
  83. package/dist/plugin/tools/spec-change-status.d.ts +6 -0
  84. package/dist/plugin/tools/spec-change-status.d.ts.map +1 -0
  85. package/dist/plugin/tools/spec-change-status.js +43 -0
  86. package/dist/plugin/tools/spec-change-status.js.map +1 -0
  87. package/dist/plugin/tools/spec-design-critique.d.ts +20 -0
  88. package/dist/plugin/tools/spec-design-critique.d.ts.map +1 -0
  89. package/dist/plugin/tools/spec-design-critique.js +412 -0
  90. package/dist/plugin/tools/spec-design-critique.js.map +1 -0
  91. package/dist/plugin/tools/spec-design-hifi.d.ts +119 -0
  92. package/dist/plugin/tools/spec-design-hifi.d.ts.map +1 -0
  93. package/dist/plugin/tools/spec-design-hifi.js +653 -0
  94. package/dist/plugin/tools/spec-design-hifi.js.map +1 -0
  95. package/dist/plugin/tools/spec-design-wireframe.d.ts +91 -0
  96. package/dist/plugin/tools/spec-design-wireframe.d.ts.map +1 -0
  97. package/dist/plugin/tools/spec-design-wireframe.js +357 -0
  98. package/dist/plugin/tools/spec-design-wireframe.js.map +1 -0
  99. package/dist/plugin/tools/spec-init.d.ts +9 -0
  100. package/dist/plugin/tools/spec-init.d.ts.map +1 -0
  101. package/dist/plugin/tools/spec-init.js +58 -0
  102. package/dist/plugin/tools/spec-init.js.map +1 -0
  103. package/dist/plugin/tools/spec-integrity-check.d.ts +6 -0
  104. package/dist/plugin/tools/spec-integrity-check.d.ts.map +1 -0
  105. package/dist/plugin/tools/spec-integrity-check.js +19 -0
  106. package/dist/plugin/tools/spec-integrity-check.js.map +1 -0
  107. package/dist/plugin/tools/spec-registry-update.d.ts +3 -0
  108. package/dist/plugin/tools/spec-registry-update.d.ts.map +1 -0
  109. package/dist/plugin/tools/spec-registry-update.js +34 -0
  110. package/dist/plugin/tools/spec-registry-update.js.map +1 -0
  111. package/dist/plugin/tools/spec-schema-list.d.ts +3 -0
  112. package/dist/plugin/tools/spec-schema-list.d.ts.map +1 -0
  113. package/dist/plugin/tools/spec-schema-list.js +28 -0
  114. package/dist/plugin/tools/spec-schema-list.js.map +1 -0
  115. package/dist/plugin/tools/spec-specs-apply.d.ts +7 -0
  116. package/dist/plugin/tools/spec-specs-apply.d.ts.map +1 -0
  117. package/dist/plugin/tools/spec-specs-apply.js +49 -0
  118. package/dist/plugin/tools/spec-specs-apply.js.map +1 -0
  119. package/dist/plugin/tools/spec-task-progress.d.ts +8 -0
  120. package/dist/plugin/tools/spec-task-progress.d.ts.map +1 -0
  121. package/dist/plugin/tools/spec-task-progress.js +96 -0
  122. package/dist/plugin/tools/spec-task-progress.js.map +1 -0
  123. package/dist/plugin/tools/spec-validate.d.ts +21 -0
  124. package/dist/plugin/tools/spec-validate.d.ts.map +1 -0
  125. package/dist/plugin/tools/spec-validate.js +182 -0
  126. package/dist/plugin/tools/spec-validate.js.map +1 -0
  127. package/dist/plugin/tools/spec-verify.d.ts +7 -0
  128. package/dist/plugin/tools/spec-verify.d.ts.map +1 -0
  129. package/dist/plugin/tools/spec-verify.js +50 -0
  130. package/dist/plugin/tools/spec-verify.js.map +1 -0
  131. package/dist/plugin/tools/util.d.ts +25 -0
  132. package/dist/plugin/tools/util.d.ts.map +1 -0
  133. package/dist/plugin/tools/util.js +33 -0
  134. package/dist/plugin/tools/util.js.map +1 -0
  135. package/package.json +61 -0
  136. package/src/agents/orchestrator.md +158 -0
  137. package/src/agents/spec-apply.md +114 -0
  138. package/src/agents/spec-archive.md +103 -0
  139. package/src/agents/spec-propose.md +120 -0
  140. package/src/agents/spec-verify.md +103 -0
  141. package/src/commands/spec-init.md +6 -0
  142. package/src/commands/spec-onboard.md +6 -0
  143. package/src/commands/spec-status.md +6 -0
  144. package/src/commands/spec-sync.md +6 -0
  145. package/src/schemas/hybrid.yaml +144 -0
  146. package/src/schemas/spec-driven.yaml +155 -0
  147. package/src/schemas/tdd.yaml +203 -0
  148. package/src/skills/playwright-cli/SKILL.md +388 -0
  149. package/src/skills/playwright-cli/references/element-attributes.md +23 -0
  150. package/src/skills/playwright-cli/references/playwright-tests.md +39 -0
  151. package/src/skills/playwright-cli/references/request-mocking.md +87 -0
  152. package/src/skills/playwright-cli/references/running-code.md +241 -0
  153. package/src/skills/playwright-cli/references/session-management.md +225 -0
  154. package/src/skills/playwright-cli/references/spec-driven-testing.md +305 -0
  155. package/src/skills/playwright-cli/references/storage-state.md +275 -0
  156. package/src/skills/playwright-cli/references/test-generation.md +134 -0
  157. package/src/skills/playwright-cli/references/tracing.md +139 -0
  158. package/src/skills/playwright-cli/references/video-recording.md +143 -0
  159. package/src/skills/spec-init/SKILL.md +61 -0
  160. package/src/skills/spec-onboard/SKILL.md +178 -0
  161. package/src/skills/spec-status/SKILL.md +72 -0
  162. package/src/skills/spec-sync/SKILL.md +63 -0
  163. package/src/templates/config.yaml +14 -0
  164. package/src/templates/design-hifi.yaml +580 -0
  165. package/src/templates/design-tech.yaml +42 -0
  166. package/src/templates/design-wireframe.yaml +114 -0
  167. package/src/templates/proposal.yaml +43 -0
  168. package/src/templates/registry.yaml +3 -0
  169. package/src/templates/spec.yaml +56 -0
  170. package/src/templates/tasks.yaml +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { ArtifactId, ArtifactGraph, CompletedSet, Schema } from './types.ts';
2
+ /**
3
+ * Builds a directed acyclic graph from schema artifact definitions.
4
+ * @param schema - The schema containing artifact definitions
5
+ * @returns The artifact graph with nodes and edges
6
+ * @throws Error if a cycle is detected in the dependency graph
7
+ */
8
+ export declare function buildGraph(schema: Schema): ArtifactGraph;
9
+ /**
10
+ * Returns artifacts in topological order using Kahn's algorithm.
11
+ * @param graph - The artifact graph
12
+ * @returns Array of artifact IDs in build order
13
+ */
14
+ export declare function getBuildOrder(graph: ArtifactGraph): ArtifactId[];
15
+ /**
16
+ * Gets the next artifacts that can be built given completed set.
17
+ * @param graph - The artifact graph
18
+ * @param completed - Set of completed artifact IDs
19
+ * @returns Array of artifact IDs ready to be built
20
+ */
21
+ export declare function getNextArtifacts(graph: ArtifactGraph, completed: CompletedSet, skipped?: CompletedSet): ArtifactId[];
22
+ /**
23
+ * Checks if all artifacts in the graph are complete.
24
+ * @param graph - The artifact graph
25
+ * @param completed - Set of completed artifact IDs
26
+ * @returns True if all artifacts are complete
27
+ */
28
+ export declare function isComplete(graph: ArtifactGraph, completed: CompletedSet, skipped?: CompletedSet): boolean;
29
+ /**
30
+ * Gets blocked artifacts and their missing dependencies.
31
+ * @param graph - The artifact graph
32
+ * @param completed - Set of completed artifact IDs
33
+ * @returns Object mapping artifact IDs to their missing dependencies
34
+ */
35
+ export declare function getBlocked(graph: ArtifactGraph, completed: CompletedSet, skipped?: CompletedSet): {
36
+ [id: string]: ArtifactId[];
37
+ };
38
+ //# sourceMappingURL=artifact-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-graph.d.ts","sourceRoot":"","sources":["../../../src/plugin/engine/artifact-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEjF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAyBxD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU,EAAE,CA0BhE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,YAAY,GACrB,UAAU,EAAE,CAiBd;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAGT;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,YAAY,GACrB;IAAE,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,EAAE,CAAA;CAAE,CAiBhC"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Builds a directed acyclic graph from schema artifact definitions.
3
+ * @param schema - The schema containing artifact definitions
4
+ * @returns The artifact graph with nodes and edges
5
+ * @throws Error if a cycle is detected in the dependency graph
6
+ */
7
+ export function buildGraph(schema) {
8
+ const nodes = schema.artifacts.map(a => a.id);
9
+ const edges = new Map();
10
+ const reverseEdges = new Map();
11
+ for (const node of nodes) {
12
+ edges.set(node, []);
13
+ reverseEdges.set(node, []);
14
+ }
15
+ for (const artifact of schema.artifacts) {
16
+ for (const req of artifact.requires) {
17
+ if (!nodes.includes(req)) {
18
+ throw new Error(`Unknown dependency: ${req} required by ${artifact.id}`);
19
+ }
20
+ edges.get(req).push(artifact.id);
21
+ reverseEdges.get(artifact.id).push(req);
22
+ }
23
+ }
24
+ if (hasCycle(nodes, edges)) {
25
+ throw new Error('Cycle detected in artifact dependency graph');
26
+ }
27
+ return { nodes, edges, reverseEdges };
28
+ }
29
+ /**
30
+ * Returns artifacts in topological order using Kahn's algorithm.
31
+ * @param graph - The artifact graph
32
+ * @returns Array of artifact IDs in build order
33
+ */
34
+ export function getBuildOrder(graph) {
35
+ const inDegree = new Map();
36
+ const queue = [];
37
+ const result = [];
38
+ for (const node of graph.nodes) {
39
+ inDegree.set(node, graph.reverseEdges.get(node).length);
40
+ if (inDegree.get(node) === 0) {
41
+ queue.push(node);
42
+ }
43
+ }
44
+ while (queue.length > 0) {
45
+ const current = queue.shift();
46
+ result.push(current);
47
+ for (const neighbor of graph.edges.get(current)) {
48
+ const newDegree = inDegree.get(neighbor) - 1;
49
+ inDegree.set(neighbor, newDegree);
50
+ if (newDegree === 0) {
51
+ queue.push(neighbor);
52
+ }
53
+ }
54
+ }
55
+ return result;
56
+ }
57
+ /**
58
+ * Gets the next artifacts that can be built given completed set.
59
+ * @param graph - The artifact graph
60
+ * @param completed - Set of completed artifact IDs
61
+ * @returns Array of artifact IDs ready to be built
62
+ */
63
+ export function getNextArtifacts(graph, completed, skipped) {
64
+ const skippedSet = skipped ?? new Set();
65
+ const next = [];
66
+ for (const node of graph.nodes) {
67
+ if (completed.has(node))
68
+ continue;
69
+ if (skippedSet.has(node))
70
+ continue;
71
+ const deps = graph.reverseEdges.get(node);
72
+ const allDepsSatisfied = deps.every(dep => completed.has(dep) || skippedSet.has(dep));
73
+ if (allDepsSatisfied) {
74
+ next.push(node);
75
+ }
76
+ }
77
+ return next;
78
+ }
79
+ /**
80
+ * Checks if all artifacts in the graph are complete.
81
+ * @param graph - The artifact graph
82
+ * @param completed - Set of completed artifact IDs
83
+ * @returns True if all artifacts are complete
84
+ */
85
+ export function isComplete(graph, completed, skipped) {
86
+ const skippedSet = skipped ?? new Set();
87
+ return graph.nodes.every(node => completed.has(node) || skippedSet.has(node));
88
+ }
89
+ /**
90
+ * Gets blocked artifacts and their missing dependencies.
91
+ * @param graph - The artifact graph
92
+ * @param completed - Set of completed artifact IDs
93
+ * @returns Object mapping artifact IDs to their missing dependencies
94
+ */
95
+ export function getBlocked(graph, completed, skipped) {
96
+ const skippedSet = skipped ?? new Set();
97
+ const blocked = {};
98
+ for (const node of graph.nodes) {
99
+ if (completed.has(node))
100
+ continue;
101
+ if (skippedSet.has(node))
102
+ continue;
103
+ const deps = graph.reverseEdges.get(node);
104
+ const missing = deps.filter(dep => !completed.has(dep) && !skippedSet.has(dep));
105
+ if (missing.length > 0) {
106
+ blocked[node] = missing;
107
+ }
108
+ }
109
+ return blocked;
110
+ }
111
+ /**
112
+ * Detects cycles in the graph using DFS.
113
+ */
114
+ function hasCycle(nodes, edges) {
115
+ const visited = new Set();
116
+ const recursionStack = new Set();
117
+ function dfs(node) {
118
+ if (recursionStack.has(node))
119
+ return true;
120
+ if (visited.has(node))
121
+ return false;
122
+ visited.add(node);
123
+ recursionStack.add(node);
124
+ for (const neighbor of edges.get(node)) {
125
+ if (dfs(neighbor))
126
+ return true;
127
+ }
128
+ recursionStack.delete(node);
129
+ return false;
130
+ }
131
+ for (const node of nodes) {
132
+ if (dfs(node))
133
+ return true;
134
+ }
135
+ return false;
136
+ }
137
+ //# sourceMappingURL=artifact-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-graph.js","sourceRoot":"","sources":["../../../src/plugin/engine/artifact-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ProjectConfig, ValidationResult } from './types.ts';
2
+ /**
3
+ * Reads the project configuration from spec/config.yaml.
4
+ * @param projectRoot - Path to the project root
5
+ * @returns The parsed project configuration
6
+ * @throws Error if config file doesn't exist or is invalid
7
+ */
8
+ export declare function readProjectConfig(projectRoot: string): Promise<ProjectConfig>;
9
+ /**
10
+ * Validates a project config object.
11
+ * @param config - The config data to validate
12
+ * @returns Validation result with errors and warnings
13
+ */
14
+ export declare function validateConfig(config: any): ValidationResult;
15
+ /**
16
+ * Checks if a project config exists.
17
+ * @param projectRoot - Path to the project root
18
+ * @returns True if config file exists
19
+ */
20
+ export declare function hasProjectConfig(projectRoot: string): Promise<boolean>;
21
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/plugin/engine/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAEjE;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmBnF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,gBAAgB,CAuC5D;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ5E"}
@@ -0,0 +1,146 @@
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ /**
4
+ * Reads the project configuration from spec/config.yaml.
5
+ * @param projectRoot - Path to the project root
6
+ * @returns The parsed project configuration
7
+ * @throws Error if config file doesn't exist or is invalid
8
+ */
9
+ export async function readProjectConfig(projectRoot) {
10
+ const configPath = path.join(projectRoot, 'spec', 'config.yaml');
11
+ try {
12
+ const content = await fs.readFile(configPath, 'utf8');
13
+ const parsed = parseConfigYaml(content);
14
+ const validation = validateConfig(parsed);
15
+ if (!validation.valid) {
16
+ throw new Error(`Invalid config: ${validation.errors.join(', ')}`);
17
+ }
18
+ return parsed;
19
+ }
20
+ catch (err) {
21
+ if (err.code === 'ENOENT') {
22
+ throw new Error(`Config file not found: ${configPath}`);
23
+ }
24
+ throw err;
25
+ }
26
+ }
27
+ /**
28
+ * Validates a project config object.
29
+ * @param config - The config data to validate
30
+ * @returns Validation result with errors and warnings
31
+ */
32
+ export function validateConfig(config) {
33
+ const errors = [];
34
+ const warnings = [];
35
+ if (!config || typeof config !== 'object') {
36
+ return { valid: false, errors: ['Config must be an object'], warnings: [] };
37
+ }
38
+ if (!config.schema || typeof config.schema !== 'string') {
39
+ errors.push('Config must have a string schema field');
40
+ }
41
+ if (config.context !== undefined && typeof config.context !== 'string') {
42
+ errors.push('Config context must be a string if provided');
43
+ }
44
+ if (config.rules !== undefined) {
45
+ if (typeof config.rules !== 'object' || Array.isArray(config.rules)) {
46
+ errors.push('Config rules must be an object');
47
+ }
48
+ else {
49
+ for (const [key, value] of Object.entries(config.rules)) {
50
+ if (!Array.isArray(value)) {
51
+ errors.push(`Config rules.${key} must be an array`);
52
+ }
53
+ else {
54
+ for (let i = 0; i < value.length; i++) {
55
+ if (typeof value[i] !== 'string') {
56
+ errors.push(`Config rules.${key}[${i}] must be a string`);
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
63
+ if (config.auto_commit !== undefined && typeof config.auto_commit !== 'boolean') {
64
+ errors.push('Config auto_commit must be a boolean if provided');
65
+ }
66
+ return { valid: errors.length === 0, errors, warnings };
67
+ }
68
+ /**
69
+ * Checks if a project config exists.
70
+ * @param projectRoot - Path to the project root
71
+ * @returns True if config file exists
72
+ */
73
+ export async function hasProjectConfig(projectRoot) {
74
+ const configPath = path.join(projectRoot, 'spec', 'config.yaml');
75
+ try {
76
+ await fs.access(configPath);
77
+ return true;
78
+ }
79
+ catch {
80
+ return false;
81
+ }
82
+ }
83
+ /**
84
+ * Simple YAML parser for config files.
85
+ */
86
+ function parseConfigYaml(content) {
87
+ const result = {};
88
+ const lines = content.split('\n');
89
+ let currentKey = '';
90
+ let inRules = false;
91
+ for (const line of lines) {
92
+ const trimmed = line.trim();
93
+ if (trimmed === '' || trimmed.startsWith('#'))
94
+ continue;
95
+ const indent = line.length - line.trimStart().length;
96
+ if (indent === 0 && trimmed.includes(':')) {
97
+ const colonIdx = trimmed.indexOf(':');
98
+ const key = trimmed.substring(0, colonIdx).trim();
99
+ const value = trimmed.substring(colonIdx + 1).trim();
100
+ currentKey = key;
101
+ inRules = false;
102
+ if (key === 'rules') {
103
+ result.rules = {};
104
+ inRules = true;
105
+ }
106
+ else if (value) {
107
+ result[key] = parseValue(value);
108
+ }
109
+ }
110
+ else if (inRules && trimmed.startsWith('- ') === false && trimmed.includes(':')) {
111
+ const colonIdx = trimmed.indexOf(':');
112
+ const key = trimmed.substring(0, colonIdx).trim();
113
+ const value = trimmed.substring(colonIdx + 1).trim();
114
+ if (value === '') {
115
+ result.rules[key] = [];
116
+ currentKey = key;
117
+ }
118
+ else {
119
+ result.rules[key] = [parseValue(value)];
120
+ currentKey = key;
121
+ }
122
+ }
123
+ else if (inRules && trimmed.startsWith('- ')) {
124
+ if (!result.rules[currentKey]) {
125
+ result.rules[currentKey] = [];
126
+ }
127
+ result.rules[currentKey].push(parseValue(trimmed.substring(2).trim()));
128
+ }
129
+ }
130
+ return result;
131
+ }
132
+ function parseValue(value) {
133
+ if (value === 'true')
134
+ return true;
135
+ if (value === 'false')
136
+ return false;
137
+ if (value === 'null' || value === '~')
138
+ return null;
139
+ if (/^-?\d+$/.test(value))
140
+ return parseInt(value, 10);
141
+ if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
142
+ return value.slice(1, -1);
143
+ }
144
+ return value;
145
+ }
146
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/plugin/engine/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { DeltaSpec, Requirement } from './types.ts';
2
+ /**
3
+ * Applies a delta spec to a main spec, producing the updated main spec.
4
+ * @param delta - The delta spec containing operations
5
+ * @param main - The main spec to update (null if creating new)
6
+ * @returns The updated main spec
7
+ * @throws Error if operations reference non-existent requirements
8
+ */
9
+ export declare function applyDelta(delta: DeltaSpec, main: DeltaSpec | null): DeltaSpec;
10
+ /**
11
+ * Applies multiple delta specs to their corresponding main specs.
12
+ * @param deltas - Array of delta specs to apply
13
+ * @param mains - Map of capability names to main specs
14
+ * @returns Updated map of capability names to main specs
15
+ */
16
+ export declare function applyDeltas(deltas: DeltaSpec[], mains: Map<string, DeltaSpec>): Map<string, DeltaSpec>;
17
+ /**
18
+ * Gets all requirements from a spec.
19
+ * @param spec - The spec to extract requirements from
20
+ * @returns Array of requirements
21
+ */
22
+ export declare function getRequirements(spec: DeltaSpec): Requirement[];
23
+ //# sourceMappingURL=delta-apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delta-apply.d.ts","sourceRoot":"","sources":["../../../src/plugin/engine/delta-apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAkB,WAAW,EAAE,MAAM,YAAY,CAAA;AAExE;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAS9E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EAAE,EACnB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAC5B,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CASxB;AAsJD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,EAAE,CAI9D"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Applies a delta spec to a main spec, producing the updated main spec.
3
+ * @param delta - The delta spec containing operations
4
+ * @param main - The main spec to update (null if creating new)
5
+ * @returns The updated main spec
6
+ * @throws Error if operations reference non-existent requirements
7
+ */
8
+ export function applyDelta(delta, main) {
9
+ let result = main ? deepClone(main) : createEmptySpec(delta.capability);
10
+ result.version = delta.version;
11
+ for (const op of delta.operations) {
12
+ result = applyOperation(result, op);
13
+ }
14
+ return result;
15
+ }
16
+ /**
17
+ * Applies multiple delta specs to their corresponding main specs.
18
+ * @param deltas - Array of delta specs to apply
19
+ * @param mains - Map of capability names to main specs
20
+ * @returns Updated map of capability names to main specs
21
+ */
22
+ export function applyDeltas(deltas, mains) {
23
+ const result = new Map(mains);
24
+ for (const delta of deltas) {
25
+ const main = result.get(delta.capability) || null;
26
+ result.set(delta.capability, applyDelta(delta, main));
27
+ }
28
+ return result;
29
+ }
30
+ /**
31
+ * Applies a single operation to a spec.
32
+ */
33
+ function applyOperation(spec, operation) {
34
+ switch (operation.op) {
35
+ case 'add':
36
+ return applyAdd(spec, operation);
37
+ case 'modify':
38
+ return applyModify(spec, operation);
39
+ case 'remove':
40
+ return applyRemove(spec, operation);
41
+ case 'rename':
42
+ return applyRename(spec, operation);
43
+ default:
44
+ throw new Error(`Unknown operation: ${operation.op}`);
45
+ }
46
+ }
47
+ /**
48
+ * Adds a requirement to the spec.
49
+ */
50
+ function applyAdd(spec, operation) {
51
+ if (!operation.requirement) {
52
+ throw new Error('Add operation requires a requirement');
53
+ }
54
+ const existing = spec.operations.find(op => op.requirement?.id === operation.requirement.id);
55
+ if (existing) {
56
+ throw new Error(`Requirement already exists: ${operation.requirement.id}`);
57
+ }
58
+ return {
59
+ ...spec,
60
+ operations: [...spec.operations, { op: 'add', requirement: operation.requirement }]
61
+ };
62
+ }
63
+ /**
64
+ * Modifies an existing requirement in the spec.
65
+ */
66
+ function applyModify(spec, operation) {
67
+ if (!operation.requirement) {
68
+ throw new Error('Modify operation requires a requirement');
69
+ }
70
+ const existingIndex = spec.operations.findIndex(op => op.requirement?.id === operation.requirement.id);
71
+ if (existingIndex === -1) {
72
+ throw new Error(`Requirement not found: ${operation.requirement.id}`);
73
+ }
74
+ const newOperations = [...spec.operations];
75
+ newOperations[existingIndex] = { op: 'modify', requirement: operation.requirement };
76
+ return {
77
+ ...spec,
78
+ operations: newOperations
79
+ };
80
+ }
81
+ /**
82
+ * Removes a requirement from the spec.
83
+ */
84
+ function applyRemove(spec, operation) {
85
+ if (!operation.requirement) {
86
+ throw new Error('Remove operation requires a requirement');
87
+ }
88
+ const existingIndex = spec.operations.findIndex(op => op.requirement?.id === operation.requirement.id);
89
+ if (existingIndex === -1) {
90
+ throw new Error(`Requirement not found: ${operation.requirement.id}`);
91
+ }
92
+ const newOperations = spec.operations.filter((_, i) => i !== existingIndex);
93
+ return {
94
+ ...spec,
95
+ operations: newOperations
96
+ };
97
+ }
98
+ /**
99
+ * Renames a requirement in the spec.
100
+ */
101
+ function applyRename(spec, operation) {
102
+ if (!operation.from || !operation.to) {
103
+ throw new Error('Rename operation requires from and to');
104
+ }
105
+ const existingIndex = spec.operations.findIndex(op => op.requirement?.id === operation.from);
106
+ if (existingIndex === -1) {
107
+ throw new Error(`Requirement not found: ${operation.from}`);
108
+ }
109
+ const targetExists = spec.operations.some(op => op.requirement?.id === operation.to);
110
+ if (targetExists) {
111
+ throw new Error(`Requirement already exists: ${operation.to}`);
112
+ }
113
+ const newOperations = [...spec.operations];
114
+ const existing = newOperations[existingIndex];
115
+ if (existing.requirement) {
116
+ newOperations[existingIndex] = {
117
+ ...existing,
118
+ requirement: { ...existing.requirement, id: operation.to }
119
+ };
120
+ }
121
+ return {
122
+ ...spec,
123
+ operations: newOperations
124
+ };
125
+ }
126
+ /**
127
+ * Creates an empty spec with the given capability name.
128
+ */
129
+ function createEmptySpec(capability) {
130
+ return {
131
+ capability,
132
+ version: 1,
133
+ agent: {},
134
+ operations: []
135
+ };
136
+ }
137
+ /**
138
+ * Deep clones a delta spec.
139
+ */
140
+ function deepClone(spec) {
141
+ return JSON.parse(JSON.stringify(spec));
142
+ }
143
+ /**
144
+ * Gets all requirements from a spec.
145
+ * @param spec - The spec to extract requirements from
146
+ * @returns Array of requirements
147
+ */
148
+ export function getRequirements(spec) {
149
+ return spec.operations
150
+ .filter(op => op.requirement)
151
+ .map(op => op.requirement);
152
+ }
153
+ //# sourceMappingURL=delta-apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delta-apply.js","sourceRoot":"","sources":["../../../src/plugin/engine/delta-apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export interface GitCommitResult {
2
+ success: boolean;
3
+ hash: string | null;
4
+ error: string | null;
5
+ }
6
+ export interface GitRepoResult {
7
+ success: boolean;
8
+ isRepo: boolean;
9
+ }
10
+ export interface GitChangesResult {
11
+ success: boolean;
12
+ hasChanges: boolean;
13
+ }
14
+ /**
15
+ * Checks whether the given directory is inside a git repository.
16
+ * Runs `git rev-parse --is-inside-work-tree` in projectRoot.
17
+ * Never throws — errors are captured in the return value.
18
+ */
19
+ export declare function isGitRepo(projectRoot: string): Promise<GitRepoResult>;
20
+ /**
21
+ * Checks whether there are uncommitted changes (staged or unstaged).
22
+ * Runs `git status --porcelain` in projectRoot.
23
+ * Never throws — errors are captured in the return value.
24
+ */
25
+ export declare function hasChanges(projectRoot: string): Promise<GitChangesResult>;
26
+ /**
27
+ * Stages all changes with `git add -A` and creates a commit with the given message.
28
+ * Returns the full 40-character commit hash on success.
29
+ * Never throws — all errors are captured in the return value.
30
+ */
31
+ export declare function gitCommit(projectRoot: string, message: string): Promise<GitCommitResult>;
32
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/plugin/engine/git.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAO3E;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAO/E;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAuB9F"}