frontend-harness 0.7.9 → 0.8.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 (98) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +20 -10
  3. package/dist/cli/index.js +388 -66
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/runtime/builtin-skills.js +1 -1
  6. package/dist/runtime/clean.js +25 -3
  7. package/dist/runtime/clean.js.map +1 -1
  8. package/dist/runtime/command-taxonomy.js +6 -1
  9. package/dist/runtime/command-taxonomy.js.map +1 -1
  10. package/dist/runtime/context.d.ts +33 -2
  11. package/dist/runtime/context.js +112 -13
  12. package/dist/runtime/context.js.map +1 -1
  13. package/dist/runtime/evidence.d.ts +27 -0
  14. package/dist/runtime/evidence.js +302 -19
  15. package/dist/runtime/evidence.js.map +1 -1
  16. package/dist/runtime/graph.js +11 -4
  17. package/dist/runtime/graph.js.map +1 -1
  18. package/dist/runtime/ingest.d.ts +38 -0
  19. package/dist/runtime/ingest.js +157 -0
  20. package/dist/runtime/ingest.js.map +1 -0
  21. package/dist/runtime/knowledge/constants.d.ts +9 -0
  22. package/dist/runtime/knowledge/constants.js +25 -0
  23. package/dist/runtime/knowledge/constants.js.map +1 -0
  24. package/dist/runtime/knowledge/core.d.ts +25 -0
  25. package/dist/runtime/knowledge/core.js +1569 -0
  26. package/dist/runtime/knowledge/core.js.map +1 -0
  27. package/dist/runtime/knowledge/types.d.ts +241 -0
  28. package/dist/runtime/knowledge/types.js +2 -0
  29. package/dist/runtime/knowledge/types.js.map +1 -0
  30. package/dist/runtime/knowledge.d.ts +2 -188
  31. package/dist/runtime/knowledge.js +1 -1126
  32. package/dist/runtime/knowledge.js.map +1 -1
  33. package/dist/runtime/plan/component-resolver.js +17 -6
  34. package/dist/runtime/plan/component-resolver.js.map +1 -1
  35. package/dist/runtime/plan/guidance.d.ts +1 -1
  36. package/dist/runtime/plan/guidance.js +88 -25
  37. package/dist/runtime/plan/guidance.js.map +1 -1
  38. package/dist/runtime/plan/proposal.js +9 -0
  39. package/dist/runtime/plan/proposal.js.map +1 -1
  40. package/dist/runtime/plan/workflow.d.ts +1 -0
  41. package/dist/runtime/plan/workflow.js +32 -1
  42. package/dist/runtime/plan/workflow.js.map +1 -1
  43. package/dist/runtime/plan.d.ts +13 -0
  44. package/dist/runtime/plan.js +137 -82
  45. package/dist/runtime/plan.js.map +1 -1
  46. package/dist/runtime/policy-provenance.d.ts +17 -1
  47. package/dist/runtime/policy-provenance.js +84 -16
  48. package/dist/runtime/policy-provenance.js.map +1 -1
  49. package/dist/runtime/project-discovery.js +32 -17
  50. package/dist/runtime/project-discovery.js.map +1 -1
  51. package/dist/runtime/project-paths.js +7 -1
  52. package/dist/runtime/project-paths.js.map +1 -1
  53. package/dist/runtime/protocol-init.js +117 -26
  54. package/dist/runtime/protocol-init.js.map +1 -1
  55. package/dist/runtime/repair-decision.js +76 -16
  56. package/dist/runtime/repair-decision.js.map +1 -1
  57. package/dist/runtime/repair-packet.js +141 -20
  58. package/dist/runtime/repair-packet.js.map +1 -1
  59. package/dist/runtime/scaffold/vue-template.js +1 -1
  60. package/dist/runtime/scaffold/vue-template.js.map +1 -1
  61. package/dist/runtime/scaffold.js +44 -8
  62. package/dist/runtime/scaffold.js.map +1 -1
  63. package/dist/runtime/skills.d.ts +9 -0
  64. package/dist/runtime/skills.js +133 -18
  65. package/dist/runtime/skills.js.map +1 -1
  66. package/dist/runtime/state-explain.js +39 -7
  67. package/dist/runtime/state-explain.js.map +1 -1
  68. package/dist/runtime/state.js +85 -10
  69. package/dist/runtime/state.js.map +1 -1
  70. package/dist/runtime/task-context.d.ts +122 -0
  71. package/dist/runtime/task-context.js +1322 -0
  72. package/dist/runtime/task-context.js.map +1 -0
  73. package/dist/runtime/task-signals.d.ts +1 -0
  74. package/dist/runtime/task-signals.js +1 -1
  75. package/dist/runtime/task-signals.js.map +1 -1
  76. package/dist/runtime/ui-restoration.d.ts +3 -3
  77. package/dist/runtime/ui-restoration.js +3 -3
  78. package/dist/runtime/ui-restoration.js.map +1 -1
  79. package/dist/runtime/ui-source.d.ts +6 -0
  80. package/dist/runtime/ui-source.js +66 -0
  81. package/dist/runtime/ui-source.js.map +1 -0
  82. package/dist/runtime/units.js +11 -4
  83. package/dist/runtime/units.js.map +1 -1
  84. package/dist/runtime/verification-commands.js +95 -21
  85. package/dist/runtime/verification-commands.js.map +1 -1
  86. package/dist/runtime/verify.js +129 -43
  87. package/dist/runtime/verify.js.map +1 -1
  88. package/dist/runtime/visual-compare.js +104 -12
  89. package/dist/runtime/visual-compare.js.map +1 -1
  90. package/dist/schemas/types.d.ts +75 -2
  91. package/dist/schemas/validation.js +257 -6
  92. package/dist/schemas/validation.js.map +1 -1
  93. package/dist/storage/json.d.ts +9 -1
  94. package/dist/storage/json.js +106 -8
  95. package/dist/storage/json.js.map +1 -1
  96. package/docs/DIRECTION.md +13 -11
  97. package/docs/RELEASE.md +5 -1
  98. package/package.json +1 -1
@@ -2,12 +2,18 @@ import fs from "node:fs";
2
2
  import { createHash } from "node:crypto";
3
3
  import path from "node:path";
4
4
  import { harnessPath, relativeHarnessPath } from "../storage/paths.js";
5
- import { writeJson, writeText } from "../storage/json.js";
5
+ import { isRegularFileWithoutSymlink, writeJson, writeText } from "../storage/json.js";
6
6
  import { getNextAction, loadState } from "./state.js";
7
7
  import { isProjectRelativeSubpath } from "./project-paths.js";
8
8
  import { projectScriptCommand } from "./command-taxonomy.js";
9
9
  import { isRecord } from "./common/parsing.js";
10
+ const MAX_VERIFICATION_ARTIFACT_BYTES = 2 * 1024 * 1024;
10
11
  const MAX_LOG_EXCERPT_CHARS = 4000;
12
+ const MAX_FAILED_COMMANDS = 10;
13
+ const MAX_CHANGED_FILES = 20;
14
+ const MAX_RETRY_GUIDANCE_ITEMS = 10;
15
+ const MAX_RETRY_GUIDANCE_INSTRUCTION_CHARS = 2000;
16
+ const LOG_HASH_CHUNK_BYTES = 64 * 1024;
11
17
  const SECRET_VALUE_PATTERN = /([A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASS|KEY|CREDENTIAL)[A-Za-z0-9_]*\s*=\s*)([^\s"'`]+)/gi;
12
18
  const BEARER_TOKEN_PATTERN = /\b(Bearer\s+)[A-Za-z0-9._~+/-]+=*/gi;
13
19
  export function createRepairPacket(projectRoot, options = {}) {
@@ -15,20 +21,45 @@ export function createRepairPacket(projectRoot, options = {}) {
15
21
  const nextAction = options.nextAction ?? getNextAction(projectRoot);
16
22
  const state = loadState(projectRoot);
17
23
  const failedResults = verification?.results.filter((result) => result.status === "failed" || result.status === "error") ?? [];
24
+ const selectedFailedResults = failedResults.slice(0, MAX_FAILED_COMMANDS);
25
+ const changedFiles = [...state.changedFiles].sort();
26
+ const selectedChangedFiles = changedFiles.slice(0, MAX_CHANGED_FILES);
27
+ const compactRetryGuidance = compactVerificationRetryGuidance(verification?.retryGuidance ?? null);
28
+ const compactNextAction = {
29
+ ...nextAction,
30
+ changedFiles: selectedChangedFiles
31
+ };
18
32
  const packet = {
19
33
  contractVersion: 1,
20
34
  createdAt: new Date().toISOString(),
21
35
  status: failedResults.length > 0 ? "ready" : "not_applicable",
22
36
  stateStatus: state.status,
23
37
  verificationStatus: verification?.status ?? state.verification.status,
24
- nextAction,
38
+ nextAction: compactNextAction,
25
39
  artifacts: {
26
40
  verification: verificationArtifactPath(),
27
41
  repairPacket: repairPacketArtifactPath(),
28
42
  repairPacketMarkdown: repairPacketMarkdownPath()
29
43
  },
30
- changedFiles: [...state.changedFiles].sort(),
31
- failedCommands: failedResults.map((result) => {
44
+ changedFiles: selectedChangedFiles,
45
+ limits: {
46
+ changedFiles: MAX_CHANGED_FILES,
47
+ totalChangedFiles: changedFiles.length,
48
+ omittedChangedFiles: Math.max(0, changedFiles.length - selectedChangedFiles.length),
49
+ failedCommands: MAX_FAILED_COMMANDS,
50
+ totalFailedCommands: failedResults.length,
51
+ omittedFailedCommands: Math.max(0, failedResults.length - selectedFailedResults.length),
52
+ logExcerptChars: MAX_LOG_EXCERPT_CHARS,
53
+ retryGuidanceFailedCommands: MAX_RETRY_GUIDANCE_ITEMS,
54
+ totalRetryGuidanceFailedCommands: compactRetryGuidance.totalFailedCommands,
55
+ omittedRetryGuidanceFailedCommands: compactRetryGuidance.omittedFailedCommands,
56
+ retryGuidanceLogs: MAX_RETRY_GUIDANCE_ITEMS,
57
+ totalRetryGuidanceLogs: compactRetryGuidance.totalLogs,
58
+ omittedRetryGuidanceLogs: compactRetryGuidance.omittedLogs,
59
+ retryGuidanceInstructionChars: MAX_RETRY_GUIDANCE_INSTRUCTION_CHARS,
60
+ retryGuidanceInstructionTruncated: compactRetryGuidance.instructionTruncated
61
+ },
62
+ failedCommands: selectedFailedResults.map((result) => {
32
63
  const logEvidence = readLogEvidence(projectRoot, result.logPath);
33
64
  return {
34
65
  name: result.name,
@@ -44,7 +75,7 @@ export function createRepairPacket(projectRoot, options = {}) {
44
75
  excerptTruncated: logEvidence.excerptTruncated
45
76
  };
46
77
  }),
47
- retryGuidance: verification?.retryGuidance ?? null,
78
+ retryGuidance: compactRetryGuidance.guidance,
48
79
  instructions: buildRepairInstructions(failedResults.length)
49
80
  };
50
81
  writeJson(harnessPath(projectRoot, "repair", "latest.json"), packet);
@@ -53,9 +84,13 @@ export function createRepairPacket(projectRoot, options = {}) {
53
84
  }
54
85
  function readLatestVerification(projectRoot) {
55
86
  const filePath = harnessPath(projectRoot, "verification", "latest.json");
56
- if (!fs.existsSync(filePath)) {
87
+ if (!isRegularFileWithoutSymlink(filePath)) {
57
88
  return null;
58
89
  }
90
+ const stat = fs.statSync(filePath);
91
+ if (stat.size > MAX_VERIFICATION_ARTIFACT_BYTES) {
92
+ throw new Error(`verification artifact exceeds ${MAX_VERIFICATION_ARTIFACT_BYTES} bytes.`);
93
+ }
59
94
  let parsed;
60
95
  try {
61
96
  parsed = JSON.parse(fs.readFileSync(filePath, "utf8"));
@@ -118,28 +153,100 @@ function readLogEvidence(projectRoot, logPath) {
118
153
  const relativePath = path.relative(projectRoot, fullPath);
119
154
  if (relativePath.startsWith("..") ||
120
155
  path.isAbsolute(relativePath) ||
121
- !fs.existsSync(fullPath) ||
122
- !fs.statSync(fullPath).isFile()) {
156
+ !isRegularFileWithoutSymlink(fullPath)) {
123
157
  return empty;
124
158
  }
125
- const content = fs.readFileSync(fullPath);
126
- const sizeBytes = content.byteLength;
127
- const excerptStartByte = Math.max(0, sizeBytes - MAX_LOG_EXCERPT_CHARS);
128
- const excerpt = redactSecrets(content.subarray(excerptStartByte).toString("utf8"));
129
- return {
130
- excerpt,
131
- sha256: createHash("sha256").update(content).digest("hex"),
132
- sizeBytes,
133
- excerptStartByte,
134
- excerptEndByte: sizeBytes,
135
- excerptTruncated: excerptStartByte > 0
136
- };
159
+ const noFollow = fs.constants.O_NOFOLLOW ?? 0;
160
+ let fd;
161
+ try {
162
+ fd = fs.openSync(fullPath, fs.constants.O_RDONLY | noFollow);
163
+ }
164
+ catch {
165
+ return empty;
166
+ }
167
+ try {
168
+ const stat = fs.fstatSync(fd);
169
+ if (!stat.isFile()) {
170
+ return empty;
171
+ }
172
+ const sizeBytes = stat.size;
173
+ const excerptStartByte = Math.max(0, sizeBytes - MAX_LOG_EXCERPT_CHARS);
174
+ const excerptBuffer = Buffer.alloc(sizeBytes - excerptStartByte);
175
+ if (excerptBuffer.byteLength > 0) {
176
+ fs.readSync(fd, excerptBuffer, 0, excerptBuffer.byteLength, excerptStartByte);
177
+ }
178
+ return {
179
+ excerpt: redactSecrets(excerptBuffer.toString("utf8")),
180
+ sha256: sha256OpenFile(fd, sizeBytes),
181
+ sizeBytes,
182
+ excerptStartByte,
183
+ excerptEndByte: sizeBytes,
184
+ excerptTruncated: excerptStartByte > 0
185
+ };
186
+ }
187
+ finally {
188
+ fs.closeSync(fd);
189
+ }
190
+ }
191
+ function sha256OpenFile(fd, sizeBytes) {
192
+ const hash = createHash("sha256");
193
+ const buffer = Buffer.alloc(Math.min(LOG_HASH_CHUNK_BYTES, Math.max(1, sizeBytes)));
194
+ let offset = 0;
195
+ while (offset < sizeBytes) {
196
+ const length = Math.min(buffer.byteLength, sizeBytes - offset);
197
+ const bytesRead = fs.readSync(fd, buffer, 0, length, offset);
198
+ if (bytesRead <= 0) {
199
+ break;
200
+ }
201
+ hash.update(buffer.subarray(0, bytesRead));
202
+ offset += bytesRead;
203
+ }
204
+ return hash.digest("hex");
137
205
  }
138
206
  function redactSecrets(value) {
139
207
  return value
140
208
  .replace(SECRET_VALUE_PATTERN, "$1[REDACTED]")
141
209
  .replace(BEARER_TOKEN_PATTERN, "$1[REDACTED]");
142
210
  }
211
+ function compactVerificationRetryGuidance(guidance) {
212
+ if (!guidance) {
213
+ return {
214
+ guidance: null,
215
+ totalFailedCommands: 0,
216
+ omittedFailedCommands: 0,
217
+ totalLogs: 0,
218
+ omittedLogs: 0,
219
+ instructionTruncated: false
220
+ };
221
+ }
222
+ const failedCommands = guidance.failedCommands.slice(0, MAX_RETRY_GUIDANCE_ITEMS);
223
+ const logs = guidance.logs.slice(0, MAX_RETRY_GUIDANCE_ITEMS);
224
+ const nextAgentInstruction = truncateRetryGuidanceInstruction(guidance.nextAgentInstruction);
225
+ const totalFailedCommands = guidance.limits?.failedCommands.total ?? guidance.failedCommands.length;
226
+ const totalLogs = guidance.limits?.logs.total ?? guidance.logs.length;
227
+ return {
228
+ guidance: {
229
+ summary: guidance.summary,
230
+ failedCommands,
231
+ logs,
232
+ nextAgentInstruction: nextAgentInstruction.value
233
+ },
234
+ totalFailedCommands,
235
+ omittedFailedCommands: Math.max(0, totalFailedCommands - failedCommands.length),
236
+ totalLogs,
237
+ omittedLogs: Math.max(0, totalLogs - logs.length),
238
+ instructionTruncated: nextAgentInstruction.truncated
239
+ };
240
+ }
241
+ function truncateRetryGuidanceInstruction(value) {
242
+ if (value.length <= MAX_RETRY_GUIDANCE_INSTRUCTION_CHARS) {
243
+ return { value, truncated: false };
244
+ }
245
+ return {
246
+ value: `${value.slice(0, MAX_RETRY_GUIDANCE_INSTRUCTION_CHARS - 3)}...`,
247
+ truncated: true
248
+ };
249
+ }
143
250
  function verificationArtifactPath() {
144
251
  return relativeHarnessPath("verification", "latest.json");
145
252
  }
@@ -179,7 +286,21 @@ function renderRepairPacket(packet) {
179
286
  - stateStatus: ${packet.stateStatus}
180
287
  - verificationStatus: ${packet.verificationStatus}
181
288
  - nextAction: ${packet.nextAction.action}
289
+ - changedFiles: ${packet.changedFiles.length}
290
+ - totalChangedFiles: ${packet.limits.totalChangedFiles}
291
+ - omittedChangedFiles: ${packet.limits.omittedChangedFiles}
182
292
  - failedCommands: ${packet.failedCommands.length}
293
+ - totalFailedCommands: ${packet.limits.totalFailedCommands}
294
+ - omittedFailedCommands: ${packet.limits.omittedFailedCommands}
295
+ - logExcerptChars: ${packet.limits.logExcerptChars}
296
+ - retryGuidanceFailedCommands: ${packet.retryGuidance?.failedCommands.length ?? 0}
297
+ - totalRetryGuidanceFailedCommands: ${packet.limits.totalRetryGuidanceFailedCommands}
298
+ - omittedRetryGuidanceFailedCommands: ${packet.limits.omittedRetryGuidanceFailedCommands}
299
+ - retryGuidanceLogs: ${packet.retryGuidance?.logs.length ?? 0}
300
+ - totalRetryGuidanceLogs: ${packet.limits.totalRetryGuidanceLogs}
301
+ - omittedRetryGuidanceLogs: ${packet.limits.omittedRetryGuidanceLogs}
302
+ - retryGuidanceInstructionChars: ${packet.limits.retryGuidanceInstructionChars}
303
+ - retryGuidanceInstructionTruncated: ${String(packet.limits.retryGuidanceInstructionTruncated)}
183
304
  - verificationArtifact: ${verificationArtifactPath()}
184
305
  - repairPacket: ${repairPacketArtifactPath()}
185
306
  - repairPacketMarkdown: ${repairPacketMarkdownPath()}
@@ -1 +1 @@
1
- {"version":3,"file":"repair-packet.js","sourceRoot":"","sources":["../../src/runtime/repair-packet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,oBAAoB,GAAG,+FAA+F,CAAC;AAC7H,MAAM,oBAAoB,GAAG,qCAAqC,CAAC;AAWnE,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,UAA+B,EAAE;IAEjC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;IAC9H,MAAM,MAAM,GAAyB;QACnC,eAAe,EAAE,CAAC;QAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;QAC7D,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,kBAAkB,EAAE,YAAY,EAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM;QACrE,UAAU;QACV,SAAS,EAAE;YACT,YAAY,EAAE,wBAAwB,EAAE;YACxC,YAAY,EAAE,wBAAwB,EAAE;YACxC,oBAAoB,EAAE,wBAAwB,EAAE;SACjD;QACD,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;QAC5C,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3C,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACjE,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,WAAW,CAAC,OAAO;gBAC/B,SAAS,EAAE,WAAW,CAAC,MAAM;gBAC7B,YAAY,EAAE,WAAW,CAAC,SAAS;gBACnC,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;gBAC9C,cAAc,EAAE,WAAW,CAAC,cAAc;gBAC1C,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;aAC/C,CAAC;QACJ,CAAC,CAAC;QACF,aAAa,EAAE,YAAY,EAAE,aAAa,IAAI,IAAI;QAClD,YAAY,EAAE,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAAC;KAC5D,CAAC;IAEF,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAmB;IACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IACzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,4CAA4C,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC;WACjB,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ;WACnC,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;WACpF,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;WAC/B,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;WACnD,CACD,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI;YAC/B,2BAA2B,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CACpD,CAAC;AACN,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc;IACjD,OAAO,QAAQ,CAAC,KAAK,CAAC;WACjB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ;WACjC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC;WACnE,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ;WACnC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;WAC/D,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ;WACnC,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;WACpF,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;WACnE,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,QAAQ;WACvC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc;IACjD,OAAO,QAAQ,CAAC,KAAK,CAAC;WACjB,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ;WACpC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;WACtC,KAAK,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC;WACvE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;WAC5B,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC;WAC7D,OAAO,KAAK,CAAC,sBAAsB,CAAC,KAAK,QAAQ,CAAC;AACzD,CAAC;AAED,SAAS,eAAe,CAAC,WAAmB,EAAE,OAAsB;IAClE,MAAM,KAAK,GAAG;QACZ,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,IAAI;QACpB,gBAAgB,EAAE,KAAK;KACxB,CAAC;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC1D,IACE,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAC7B,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QACxB,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IACrC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,qBAAqB,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACnF,OAAO;QACL,OAAO;QACP,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1D,SAAS;QACT,gBAAgB;QAChB,cAAc,EAAE,SAAS;QACzB,gBAAgB,EAAE,gBAAgB,GAAG,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK;SACT,OAAO,CAAC,oBAAoB,EAAE,cAAc,CAAC;SAC7C,OAAO,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,mBAAmB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAoB;IAChD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,uBAAuB,CAAC,kBAA0B;IACzD,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,oDAAoD,oBAAoB,CAAC,gCAAgC,CAAC,qCAAqC;SAChJ,CAAC;IACJ,CAAC;IACD,OAAO;QACL,4FAA4F;QAC5F,0CAA0C,wBAAwB,EAAE,iCAAiC;QACrG,2EAA2E;QAC3E,mPAAmP,oBAAoB,CAAC,6EAA6E,CAAC,GAAG;QACzV,yEAAyE,oBAAoB,CAAC,6CAA6C,CAAC,GAAG;QAC/I,SAAS,oBAAoB,CAAC,gCAAgC,CAAC,+DAA+D;KAC/H,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA4B;IACtD,OAAO;;;;YAIG,MAAM,CAAC,MAAM;iBACR,MAAM,CAAC,WAAW;wBACX,MAAM,CAAC,kBAAkB;gBACjC,MAAM,CAAC,UAAU,CAAC,MAAM;oBACpB,MAAM,CAAC,cAAc,CAAC,MAAM;0BACtB,wBAAwB,EAAE;kBAClC,wBAAwB,EAAE;0BAClB,wBAAwB,EAAE;;;;EAIlD,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;EAIvE,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ;CAC1G,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAuD;IAClF,OAAO;QACL,OAAO,OAAO,CAAC,IAAI,EAAE;QACrB,EAAE;QACF,aAAa,OAAO,CAAC,MAAM,EAAE;QAC7B,eAAe,OAAO,CAAC,QAAQ,IAAI,SAAS,EAAE;QAC9C,cAAc,OAAO,CAAC,OAAO,IAAI,SAAS,EAAE;QAC5C,cAAc,OAAO,CAAC,OAAO,IAAI,MAAM,EAAE;QACzC,gBAAgB,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE;QAChD,mBAAmB,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QAC/D,mBAAmB,oBAAoB,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,oBAAoB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;QACpH,uBAAuB,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QACzD,EAAE;QACF,SAAS;QACT,OAAO,CAAC,UAAU,IAAI,EAAE;QACxB,KAAK;KACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"repair-packet.js","sourceRoot":"","sources":["../../src/runtime/repair-packet.ts"],"names":[],"mappings":"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"}
@@ -64,7 +64,7 @@ function packageJson(projectName) {
64
64
  lint: "eslint .",
65
65
  typecheck: "vue-tsc --noEmit",
66
66
  test: "vitest run",
67
- "test:e2e": "playwright test",
67
+ "test:e2e": "npm run build && playwright test",
68
68
  format: "prettier --write .",
69
69
  verify: "npm run lint && npm run typecheck && npm test && npm run build",
70
70
  harness: "frontend-harness",
@@ -1 +1 @@
1
- {"version":3,"file":"vue-template.js","sourceRoot":"","sources":["../../../src/runtime/scaffold/vue-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vue-template.js","sourceRoot":"","sources":["../../../src/runtime/scaffold/vue-template.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import { buildVueScaffoldFiles, toPackageName } from "./scaffold/vue-template.js";
4
+ import { chmodFileWithoutSymlink, ensureDir, isDirectoryWithoutSymlink, writeText } from "../storage/json.js";
4
5
  const SCAFFOLD_PRESETS = {
5
6
  vue: {
6
7
  name: "vue",
7
8
  buildFiles: buildVueScaffoldFiles
8
9
  }
9
10
  };
11
+ const MAX_EXISTING_SCAFFOLD_FILE_BYTES = 512 * 1024;
10
12
  export function isScaffoldPresetName(value) {
11
13
  return value in SCAFFOLD_PRESETS;
12
14
  }
@@ -18,7 +20,8 @@ export function scaffoldProject(projectRoot, options) {
18
20
  if (!options.target.trim()) {
19
21
  throw new Error("scaffold requires --target <directory>");
20
22
  }
21
- const targetPath = path.resolve(projectRoot, options.target);
23
+ const normalizedTarget = normalizeScaffoldTarget(options.target);
24
+ const targetPath = path.resolve(projectRoot, normalizedTarget);
22
25
  const targetRelative = path.relative(projectRoot, targetPath);
23
26
  if (targetRelative.startsWith("..") || path.isAbsolute(targetRelative)) {
24
27
  throw new Error("scaffold target must stay inside the project root");
@@ -27,11 +30,11 @@ export function scaffoldProject(projectRoot, options) {
27
30
  const exists = fs.existsSync(targetPath);
28
31
  if (!exists) {
29
32
  if (!options.dryRun) {
30
- fs.mkdirSync(targetPath, { recursive: true });
33
+ ensureDir(targetPath);
31
34
  ensurePathInsideRealRoot(fs.realpathSync.native(projectRoot), fs.realpathSync.native(targetPath));
32
35
  }
33
36
  }
34
- else if (!fs.statSync(targetPath).isDirectory()) {
37
+ else if (!isDirectoryWithoutSymlink(targetPath)) {
35
38
  throw new Error(`scaffold target must be a directory: ${options.target}`);
36
39
  }
37
40
  else if (!options.force && fs.readdirSync(targetPath).length > 0) {
@@ -42,15 +45,15 @@ export function scaffoldProject(projectRoot, options) {
42
45
  for (const file of preset.buildFiles(projectName)) {
43
46
  const fullPath = path.join(targetPath, file.path);
44
47
  assertSafeScaffoldFilePath(projectRoot, fullPath, file.path);
45
- const current = fs.existsSync(fullPath) ? fs.readFileSync(fullPath, "utf8") : null;
46
- const action = current === null ? "created" : current === file.content ? "unchanged" : "updated";
48
+ const current = readExistingScaffoldFile(fullPath);
49
+ const action = !current.exists ? "created" : current.content === file.content ? "unchanged" : "updated";
47
50
  if (!options.dryRun && action !== "unchanged") {
48
- fs.mkdirSync(path.dirname(fullPath), { recursive: true });
51
+ ensureDir(path.dirname(fullPath));
49
52
  ensurePathInsideRealRoot(fs.realpathSync.native(projectRoot), fs.realpathSync.native(path.dirname(fullPath)));
50
- fs.writeFileSync(fullPath, file.content, "utf8");
53
+ writeText(fullPath, file.content);
51
54
  }
52
55
  if (!options.dryRun && file.mode !== undefined) {
53
- fs.chmodSync(fullPath, file.mode);
56
+ chmodFileWithoutSymlink(fullPath, file.mode);
54
57
  }
55
58
  results.push({ path: path.posix.normalize(file.path), action });
56
59
  }
@@ -64,6 +67,26 @@ export function scaffoldProject(projectRoot, options) {
64
67
  files: results
65
68
  };
66
69
  }
70
+ function normalizeScaffoldTarget(value) {
71
+ const trimmed = value.trim();
72
+ if (trimmed.includes("\0")) {
73
+ throw new Error("scaffold target cannot contain null bytes");
74
+ }
75
+ if (path.isAbsolute(trimmed) || /^[A-Za-z]:/.test(trimmed)) {
76
+ throw new Error("scaffold target must be a project-relative directory");
77
+ }
78
+ if (trimmed.includes("\\")) {
79
+ throw new Error("scaffold target must use POSIX-style relative paths");
80
+ }
81
+ const normalized = path.posix.normalize(trimmed);
82
+ if (normalized === ".." || normalized.startsWith("../")) {
83
+ throw new Error("scaffold target must stay inside the project root");
84
+ }
85
+ if (normalized.split("/")[0] === ".frontend-harness") {
86
+ throw new Error("scaffold target must not be inside .frontend-harness");
87
+ }
88
+ return normalized === "." ? "." : normalized;
89
+ }
67
90
  function assertSafeScaffoldFilePath(projectRoot, fullPath, relativePath) {
68
91
  const existing = fs.lstatSync(fullPath, { throwIfNoEntry: false });
69
92
  if (existing?.isSymbolicLink()) {
@@ -74,8 +97,21 @@ function assertSafeScaffoldFilePath(projectRoot, fullPath, relativePath) {
74
97
  }
75
98
  const realProjectRoot = fs.realpathSync.native(projectRoot);
76
99
  const existingParent = findExistingAncestor(path.dirname(fullPath));
100
+ if (!isDirectoryWithoutSymlink(existingParent)) {
101
+ throw new Error(`scaffold refuses to write through symlinked generated directory: ${relativePath}`);
102
+ }
77
103
  ensurePathInsideRealRoot(realProjectRoot, fs.realpathSync.native(existingParent));
78
104
  }
105
+ function readExistingScaffoldFile(fullPath) {
106
+ const stat = fs.statSync(fullPath, { throwIfNoEntry: false });
107
+ if (!stat) {
108
+ return { exists: false, content: null };
109
+ }
110
+ if (stat.size > MAX_EXISTING_SCAFFOLD_FILE_BYTES) {
111
+ return { exists: true, content: null };
112
+ }
113
+ return { exists: true, content: fs.readFileSync(fullPath, "utf8") };
114
+ }
79
115
  function ensureRealPathInsideProjectRoot(projectRoot, targetPath) {
80
116
  const realProjectRoot = fs.realpathSync.native(projectRoot);
81
117
  const existingAncestor = findExistingAncestor(targetPath);
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/runtime/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAgClF,MAAM,gBAAgB,GAAyD;IAC7E,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,qBAAqB;KAClC;CACF,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,KAAK,IAAI,gBAAgB,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,OAAwB;IAC3E,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC9D,IAAI,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,+BAA+B,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,wBAAwB,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,CAAC,MAAM,6CAA6C,CAAC,CAAC;IAChH,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,0BAA0B,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnF,MAAM,MAAM,GAAiC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/H,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC9C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,wBAAwB,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9G,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/C,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;QAC7C,MAAM,EAAE,MAAM,CAAC,IAAI;QACnB,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;QACvE,WAAW;QACX,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7B,KAAK,EAAE,OAAO;KACf,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,WAAmB,EAAE,QAAgB,EAAE,YAAoB;IAC7F,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,IAAI,QAAQ,EAAE,cAAc,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,2DAA2D,YAAY,EAAE,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,2CAA2C,YAAY,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpE,wBAAwB,CAAC,eAAe,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,+BAA+B,CAAC,WAAmB,EAAE,UAAkB;IAC9E,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;IAChG,wBAAwB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,wBAAwB,CAAC,eAAuB,EAAE,UAAkB;IAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAChE,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,IAAI,OAAO,GAAG,UAAU,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/runtime/scaffold.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,14 @@ export interface ProjectSkill {
7
7
  intents?: string[];
8
8
  examples?: string[];
9
9
  }
10
+ export interface ProjectSkillListResult {
11
+ skills: ProjectSkill[];
12
+ limits: {
13
+ selected: number;
14
+ total: number;
15
+ omitted: number;
16
+ };
17
+ }
10
18
  export type SkillCheckStatus = "passed" | "failed" | "not_configured";
11
19
  export interface SkillCheckResult {
12
20
  status: SkillCheckStatus;
@@ -16,4 +24,5 @@ export interface SkillCheckResult {
16
24
  warnings: string[];
17
25
  }
18
26
  export declare function discoverSkills(projectRoot: string): ProjectSkill[];
27
+ export declare function listSkills(projectRoot: string): ProjectSkillListResult;
19
28
  export declare function checkSkills(projectRoot: string): SkillCheckResult;