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,78 @@
1
+ import * as fs from "fs/promises";
2
+ import * as path from "path";
3
+ import * as Registry from "../engine/registry.js";
4
+ export async function workflowGatePermission(input, output, ctx) {
5
+ if (input.tool !== "task")
6
+ return;
7
+ if (input.agent !== "orchestrator")
8
+ return;
9
+ const subagentType = input.args?.subagent_type || input.args?.subagentType;
10
+ if (!subagentType)
11
+ return;
12
+ try {
13
+ const registry = await Registry.readRegistry(ctx.projectRoot);
14
+ const activeChanges = registry.changes.filter(c => c.status === "active");
15
+ if (subagentType === "general" || subagentType === "explore") {
16
+ output.status = "deny";
17
+ return;
18
+ }
19
+ if (subagentType === "spec-propose") {
20
+ output.status = "allow";
21
+ return;
22
+ }
23
+ if (subagentType === "spec-apply") {
24
+ const hasReadyChange = activeChanges.some(c => {
25
+ const artifacts = c.artifacts || {};
26
+ return artifacts.proposal === true &&
27
+ artifacts.specs === true &&
28
+ artifacts["design-tech"] === true &&
29
+ artifacts.tasks === true;
30
+ });
31
+ output.status = hasReadyChange ? "allow" : "deny";
32
+ return;
33
+ }
34
+ if (subagentType === "spec-verify") {
35
+ const hasCompleteTasks = activeChanges.some(c => c.progress >= 100);
36
+ output.status = hasCompleteTasks ? "allow" : "deny";
37
+ return;
38
+ }
39
+ if (subagentType === "spec-archive") {
40
+ const hasVerifiedChange = await Promise.all(activeChanges
41
+ .filter(c => c.progress >= 100)
42
+ .map(async (c) => {
43
+ const passedPath = path.join(ctx.projectRoot, "spec", "changes", c.name, ".verify", "passed");
44
+ try {
45
+ await fs.access(passedPath);
46
+ return true;
47
+ }
48
+ catch {
49
+ return false;
50
+ }
51
+ })).then(results => results.some(Boolean));
52
+ output.status = hasVerifiedChange ? "allow" : "deny";
53
+ return;
54
+ }
55
+ }
56
+ catch {
57
+ output.status = "deny";
58
+ }
59
+ }
60
+ const SPEC_AGENT_TYPES = [
61
+ "spec-propose",
62
+ "spec-apply",
63
+ "spec-verify",
64
+ "spec-archive",
65
+ ];
66
+ export async function workflowGateToolDefinition(input, output, _ctx) {
67
+ if (input.toolID !== "task")
68
+ return;
69
+ const agent = input.agent ?? input.agent;
70
+ if (agent !== "orchestrator")
71
+ return;
72
+ if (output.parameters?.properties?.subagent_type) {
73
+ output.parameters.properties.subagent_type.enum = SPEC_AGENT_TYPES;
74
+ output.parameters.properties.subagent_type.description =
75
+ "The spec workflow agent to delegate to. Follow the workflow: explore → propose → apply → verify → archive";
76
+ }
77
+ }
78
+ //# sourceMappingURL=workflow-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-gate.js","sourceRoot":"","sources":["../../../src/plugin/hooks/workflow-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,423 @@
1
+ import { z } from "zod";
2
+ import { buildSubagentContextBlock, buildOrchestratorDelegationBlock } from "./hooks/context-injection.js";
3
+ export { buildSubagentContextBlock, buildOrchestratorDelegationBlock };
4
+ declare const _default: {
5
+ id: string;
6
+ server: (input: any) => Promise<{
7
+ tool: {
8
+ spec_change_new: {
9
+ description: string;
10
+ args: {
11
+ name: z.ZodString;
12
+ schema: z.ZodOptional<z.ZodString>;
13
+ };
14
+ execute(args: {
15
+ name: string;
16
+ schema?: string | undefined;
17
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
18
+ };
19
+ spec_change_status: {
20
+ description: string;
21
+ args: {
22
+ changeName: z.ZodString;
23
+ };
24
+ execute(args: {
25
+ changeName: string;
26
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
27
+ };
28
+ spec_change_list: {
29
+ description: string;
30
+ args: {};
31
+ execute(args: Record<string, never>, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
32
+ };
33
+ spec_artifact_instr: {
34
+ description: string;
35
+ args: {
36
+ changeName: z.ZodString;
37
+ artifactId: z.ZodOptional<z.ZodString>;
38
+ };
39
+ execute(args: {
40
+ changeName: string;
41
+ artifactId?: string | undefined;
42
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
43
+ };
44
+ spec_validate: {
45
+ description: string;
46
+ args: {
47
+ changeName: z.ZodString;
48
+ artifactId: z.ZodOptional<z.ZodString>;
49
+ };
50
+ execute(args: {
51
+ changeName: string;
52
+ artifactId?: string | undefined;
53
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
54
+ };
55
+ spec_specs_apply: {
56
+ description: string;
57
+ args: {
58
+ changeName: z.ZodString;
59
+ dryRun: z.ZodOptional<z.ZodBoolean>;
60
+ };
61
+ execute(args: {
62
+ changeName: string;
63
+ dryRun?: boolean | undefined;
64
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
65
+ };
66
+ spec_change_archive: {
67
+ description: string;
68
+ args: {
69
+ changeName: z.ZodString;
70
+ };
71
+ execute(args: {
72
+ changeName: string;
73
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
74
+ };
75
+ spec_schema_list: {
76
+ description: string;
77
+ args: {};
78
+ execute(args: Record<string, never>, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
79
+ };
80
+ spec_verify: {
81
+ description: string;
82
+ args: {
83
+ changeName: z.ZodString;
84
+ dimensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
85
+ };
86
+ execute(args: {
87
+ changeName: string;
88
+ dimensions?: string[] | undefined;
89
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
90
+ };
91
+ spec_task_progress: {
92
+ description: string;
93
+ args: {
94
+ changeName: z.ZodString;
95
+ taskId: z.ZodOptional<z.ZodString>;
96
+ status: z.ZodOptional<z.ZodString>;
97
+ };
98
+ execute(args: {
99
+ changeName: string;
100
+ taskId?: string | undefined;
101
+ status?: string | undefined;
102
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
103
+ };
104
+ spec_integrity_check: {
105
+ description: string;
106
+ args: {
107
+ changeName: z.ZodString;
108
+ };
109
+ execute(args: {
110
+ changeName: string;
111
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
112
+ };
113
+ spec_registry_update: {
114
+ description: string;
115
+ args: {};
116
+ execute(args: Record<string, never>, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
117
+ };
118
+ spec_design_wireframe: {
119
+ description: string;
120
+ args: {
121
+ changeName: z.ZodString;
122
+ pages: z.ZodArray<z.ZodObject<{
123
+ id: z.ZodString;
124
+ name: z.ZodString;
125
+ description: z.ZodOptional<z.ZodString>;
126
+ layout: z.ZodArray<z.ZodObject<{
127
+ region: z.ZodString;
128
+ order: z.ZodNumber;
129
+ style: z.ZodOptional<z.ZodString>;
130
+ }, z.core.$strip>>;
131
+ components: z.ZodOptional<z.ZodArray<z.ZodObject<{
132
+ id: z.ZodString;
133
+ type: z.ZodString;
134
+ region: z.ZodString;
135
+ position: z.ZodObject<{
136
+ x: z.ZodNumber;
137
+ y: z.ZodNumber;
138
+ }, z.core.$strip>;
139
+ size: z.ZodObject<{
140
+ width: z.ZodNumber;
141
+ height: z.ZodNumber;
142
+ }, z.core.$strip>;
143
+ properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
144
+ }, z.core.$strip>>>;
145
+ }, z.core.$strip>>;
146
+ flows: z.ZodOptional<z.ZodObject<{
147
+ user_flows: z.ZodOptional<z.ZodArray<z.ZodObject<{
148
+ id: z.ZodString;
149
+ name: z.ZodString;
150
+ description: z.ZodOptional<z.ZodString>;
151
+ steps: z.ZodArray<z.ZodObject<{
152
+ id: z.ZodString;
153
+ from_page: z.ZodString;
154
+ to_page: z.ZodString;
155
+ trigger: z.ZodString;
156
+ description: z.ZodOptional<z.ZodString>;
157
+ }, z.core.$strip>>;
158
+ }, z.core.$strip>>>;
159
+ }, z.core.$strip>>;
160
+ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{
161
+ id: z.ZodString;
162
+ page_id: z.ZodOptional<z.ZodString>;
163
+ note: z.ZodString;
164
+ category: z.ZodOptional<z.ZodString>;
165
+ }, z.core.$strip>>>;
166
+ html_preview: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
167
+ };
168
+ execute(args: {
169
+ changeName: string;
170
+ pages: {
171
+ id: string;
172
+ name: string;
173
+ layout: {
174
+ region: string;
175
+ order: number;
176
+ style?: string | undefined;
177
+ }[];
178
+ description?: string | undefined;
179
+ components?: {
180
+ id: string;
181
+ type: string;
182
+ region: string;
183
+ position: {
184
+ x: number;
185
+ y: number;
186
+ };
187
+ size: {
188
+ width: number;
189
+ height: number;
190
+ };
191
+ properties?: Record<string, any> | undefined;
192
+ }[] | undefined;
193
+ }[];
194
+ html_preview: boolean;
195
+ flows?: {
196
+ user_flows?: {
197
+ id: string;
198
+ name: string;
199
+ steps: {
200
+ id: string;
201
+ from_page: string;
202
+ to_page: string;
203
+ trigger: string;
204
+ description?: string | undefined;
205
+ }[];
206
+ description?: string | undefined;
207
+ }[] | undefined;
208
+ } | undefined;
209
+ annotations?: {
210
+ id: string;
211
+ note: string;
212
+ page_id?: string | undefined;
213
+ category?: string | undefined;
214
+ }[] | undefined;
215
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
216
+ };
217
+ spec_design_hifi: {
218
+ description: string;
219
+ args: {
220
+ changeName: z.ZodString;
221
+ color_palette: z.ZodObject<{
222
+ primary: z.ZodObject<{
223
+ base: z.ZodString;
224
+ hover: z.ZodOptional<z.ZodString>;
225
+ active: z.ZodOptional<z.ZodString>;
226
+ disabled: z.ZodOptional<z.ZodString>;
227
+ contrast: z.ZodOptional<z.ZodString>;
228
+ }, z.core.$strip>;
229
+ secondary: z.ZodObject<{
230
+ base: z.ZodString;
231
+ hover: z.ZodOptional<z.ZodString>;
232
+ active: z.ZodOptional<z.ZodString>;
233
+ disabled: z.ZodOptional<z.ZodString>;
234
+ contrast: z.ZodOptional<z.ZodString>;
235
+ }, z.core.$strip>;
236
+ accent: z.ZodObject<{
237
+ base: z.ZodString;
238
+ hover: z.ZodOptional<z.ZodString>;
239
+ active: z.ZodOptional<z.ZodString>;
240
+ disabled: z.ZodOptional<z.ZodString>;
241
+ contrast: z.ZodOptional<z.ZodString>;
242
+ }, z.core.$strip>;
243
+ neutral: z.ZodObject<{
244
+ base: z.ZodString;
245
+ hover: z.ZodOptional<z.ZodString>;
246
+ active: z.ZodOptional<z.ZodString>;
247
+ disabled: z.ZodOptional<z.ZodString>;
248
+ contrast: z.ZodOptional<z.ZodString>;
249
+ }, z.core.$strip>;
250
+ semantic: z.ZodOptional<z.ZodObject<{
251
+ success: z.ZodString;
252
+ warning: z.ZodString;
253
+ error: z.ZodString;
254
+ info: z.ZodString;
255
+ }, z.core.$strip>>;
256
+ surfaces: z.ZodOptional<z.ZodObject<{
257
+ background: z.ZodString;
258
+ foreground: z.ZodString;
259
+ card: z.ZodString;
260
+ border: z.ZodString;
261
+ muted: z.ZodString;
262
+ }, z.core.$strip>>;
263
+ }, z.core.$strip>;
264
+ typography: z.ZodObject<{
265
+ families: z.ZodArray<z.ZodObject<{
266
+ name: z.ZodString;
267
+ stack: z.ZodString;
268
+ role: z.ZodString;
269
+ }, z.core.$strip>>;
270
+ scale: z.ZodArray<z.ZodObject<{
271
+ name: z.ZodString;
272
+ size: z.ZodString;
273
+ weight: z.ZodNumber;
274
+ line_height: z.ZodNumber;
275
+ letter_spacing: z.ZodOptional<z.ZodString>;
276
+ role: z.ZodString;
277
+ }, z.core.$strip>>;
278
+ }, z.core.$strip>;
279
+ spacing: z.ZodObject<{
280
+ base_unit: z.ZodNumber;
281
+ scale: z.ZodArray<z.ZodNumber>;
282
+ }, z.core.$strip>;
283
+ component_library: z.ZodOptional<z.ZodObject<{
284
+ button: z.ZodOptional<z.ZodArray<z.ZodAny>>;
285
+ card: z.ZodOptional<z.ZodArray<z.ZodAny>>;
286
+ input: z.ZodOptional<z.ZodArray<z.ZodAny>>;
287
+ navigation: z.ZodOptional<z.ZodArray<z.ZodAny>>;
288
+ }, z.core.$strip>>;
289
+ breakpoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
290
+ name: z.ZodString;
291
+ min_width: z.ZodNumber;
292
+ columns: z.ZodNumber;
293
+ rules: z.ZodOptional<z.ZodArray<z.ZodString>>;
294
+ }, z.core.$strip>>>;
295
+ html_preview: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
296
+ };
297
+ execute(args: {
298
+ changeName: string;
299
+ color_palette: {
300
+ primary: {
301
+ base: string;
302
+ hover?: string | undefined;
303
+ active?: string | undefined;
304
+ disabled?: string | undefined;
305
+ contrast?: string | undefined;
306
+ };
307
+ secondary: {
308
+ base: string;
309
+ hover?: string | undefined;
310
+ active?: string | undefined;
311
+ disabled?: string | undefined;
312
+ contrast?: string | undefined;
313
+ };
314
+ accent: {
315
+ base: string;
316
+ hover?: string | undefined;
317
+ active?: string | undefined;
318
+ disabled?: string | undefined;
319
+ contrast?: string | undefined;
320
+ };
321
+ neutral: {
322
+ base: string;
323
+ hover?: string | undefined;
324
+ active?: string | undefined;
325
+ disabled?: string | undefined;
326
+ contrast?: string | undefined;
327
+ };
328
+ semantic?: {
329
+ success: string;
330
+ warning: string;
331
+ error: string;
332
+ info: string;
333
+ } | undefined;
334
+ surfaces?: {
335
+ background: string;
336
+ foreground: string;
337
+ card: string;
338
+ border: string;
339
+ muted: string;
340
+ } | undefined;
341
+ };
342
+ typography: {
343
+ families: {
344
+ name: string;
345
+ stack: string;
346
+ role: string;
347
+ }[];
348
+ scale: {
349
+ name: string;
350
+ size: string;
351
+ weight: number;
352
+ line_height: number;
353
+ role: string;
354
+ letter_spacing?: string | undefined;
355
+ }[];
356
+ };
357
+ spacing: {
358
+ base_unit: number;
359
+ scale: number[];
360
+ };
361
+ html_preview: boolean;
362
+ component_library?: {
363
+ button?: any[] | undefined;
364
+ card?: any[] | undefined;
365
+ input?: any[] | undefined;
366
+ navigation?: any[] | undefined;
367
+ } | undefined;
368
+ breakpoints?: {
369
+ name: string;
370
+ min_width: number;
371
+ columns: number;
372
+ rules?: string[] | undefined;
373
+ }[] | undefined;
374
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
375
+ };
376
+ spec_design_critique: {
377
+ description: string;
378
+ args: {
379
+ changeName: z.ZodString;
380
+ artifactType: z.ZodOptional<z.ZodEnum<{
381
+ wireframe: "wireframe";
382
+ hifi: "hifi";
383
+ }>>;
384
+ threshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
385
+ focusDimensions: z.ZodOptional<z.ZodArray<z.ZodEnum<{
386
+ philosophy: "philosophy";
387
+ hierarchy: "hierarchy";
388
+ detail: "detail";
389
+ functionality: "functionality";
390
+ innovation: "innovation";
391
+ }>>>;
392
+ };
393
+ execute(args: {
394
+ changeName: string;
395
+ threshold: number;
396
+ artifactType?: "wireframe" | "hifi" | undefined;
397
+ focusDimensions?: ("philosophy" | "hierarchy" | "detail" | "functionality" | "innovation")[] | undefined;
398
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
399
+ };
400
+ spec_init: {
401
+ description: string;
402
+ args: {
403
+ context: z.ZodString;
404
+ schema: z.ZodOptional<z.ZodString>;
405
+ rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
406
+ force: z.ZodOptional<z.ZodBoolean>;
407
+ };
408
+ execute(args: {
409
+ context: string;
410
+ schema?: string | undefined;
411
+ rules?: Record<string, string[]> | undefined;
412
+ force?: boolean | undefined;
413
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
414
+ };
415
+ };
416
+ "experimental.chat.system.transform": (input: any, output: any) => Promise<void>;
417
+ event: (event: any) => Promise<void>;
418
+ "permission.ask": (input: any, output: any) => Promise<void>;
419
+ "tool.definition": (input: any, output: any) => Promise<void>;
420
+ }>;
421
+ };
422
+ export default _default;
423
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAkBvB,OAAO,EAA6B,yBAAyB,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAA;AAKrI,OAAO,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,CAAA;;;oBAI9C,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDA8N6B,GAAG,UAAU,GAAG;uBAW/C,GAAG;kCAIQ,GAAG,UAAU,GAAG;mCAIf,GAAG,UAAU,GAAG;;;AAnPrD,wBAuPE"}