frontend-harness 0.1.0 → 0.2.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.
- package/AGENTS.md +9 -5
- package/CLAUDE.md +9 -5
- package/README.md +56 -11
- package/dist/cli/index.js +33 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/runtime/clean.js +6 -1
- package/dist/runtime/clean.js.map +1 -1
- package/dist/runtime/command-taxonomy.js +4 -1
- package/dist/runtime/command-taxonomy.js.map +1 -1
- package/dist/runtime/common/naming.d.ts +2 -0
- package/dist/runtime/common/naming.js +13 -0
- package/dist/runtime/common/naming.js.map +1 -0
- package/dist/runtime/common/parsing.d.ts +11 -0
- package/dist/runtime/common/parsing.js +30 -0
- package/dist/runtime/common/parsing.js.map +1 -0
- package/dist/runtime/context.js +3 -2
- package/dist/runtime/context.js.map +1 -1
- package/dist/runtime/knowledge.js +16 -12
- package/dist/runtime/knowledge.js.map +1 -1
- package/dist/runtime/plan/component-resolver.d.ts +8 -0
- package/dist/runtime/plan/component-resolver.js +344 -0
- package/dist/runtime/plan/component-resolver.js.map +1 -0
- package/dist/runtime/plan/guidance.d.ts +3 -0
- package/dist/runtime/plan/guidance.js +119 -0
- package/dist/runtime/plan/guidance.js.map +1 -0
- package/dist/runtime/plan/proposal.d.ts +2 -0
- package/dist/runtime/plan/proposal.js +251 -0
- package/dist/runtime/plan/proposal.js.map +1 -0
- package/dist/runtime/plan/workflow.d.ts +8 -0
- package/dist/runtime/plan/workflow.js +228 -0
- package/dist/runtime/plan/workflow.js.map +1 -0
- package/dist/runtime/plan.d.ts +4 -3
- package/dist/runtime/plan.js +123 -448
- package/dist/runtime/plan.js.map +1 -1
- package/dist/runtime/policy-provenance.js +30 -17
- package/dist/runtime/policy-provenance.js.map +1 -1
- package/dist/runtime/project-discovery.js +12 -3
- package/dist/runtime/project-discovery.js.map +1 -1
- package/dist/runtime/project-paths.js +3 -0
- package/dist/runtime/project-paths.js.map +1 -1
- package/dist/runtime/protocol-init.js +7 -4
- package/dist/runtime/protocol-init.js.map +1 -1
- package/dist/runtime/repair-decision.js +14 -27
- package/dist/runtime/repair-decision.js.map +1 -1
- package/dist/runtime/repair-packet.js +8 -1
- package/dist/runtime/repair-packet.js.map +1 -1
- package/dist/runtime/scaffold/vue-template.d.ts +7 -0
- package/dist/runtime/scaffold/vue-template.js +167 -0
- package/dist/runtime/scaffold/vue-template.js.map +1 -0
- package/dist/runtime/scaffold.d.ts +21 -0
- package/dist/runtime/scaffold.js +80 -0
- package/dist/runtime/scaffold.js.map +1 -0
- package/dist/runtime/skills.js +3 -3
- package/dist/runtime/skills.js.map +1 -1
- package/dist/runtime/state.js +32 -16
- package/dist/runtime/state.js.map +1 -1
- package/dist/runtime/units.js +36 -1
- package/dist/runtime/units.js.map +1 -1
- package/dist/runtime/verification-commands.js +8 -4
- package/dist/runtime/verification-commands.js.map +1 -1
- package/dist/runtime/verify.js +76 -17
- package/dist/runtime/verify.js.map +1 -1
- package/dist/schemas/types.d.ts +64 -6
- package/dist/schemas/validation.js +4 -0
- package/dist/schemas/validation.js.map +1 -1
- package/dist/storage/json.js +6 -1
- package/dist/storage/json.js.map +1 -1
- package/package.json +3 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-commands.js","sourceRoot":"","sources":["../../src/runtime/verification-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"verification-commands.js","sourceRoot":"","sources":["../../src/runtime/verification-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/verify.js
CHANGED
|
@@ -7,6 +7,7 @@ import { ensureDir, readJson, writeJson, writeText } from "../storage/json.js";
|
|
|
7
7
|
import { updateVerificationState } from "./state.js";
|
|
8
8
|
import { discoverVerificationCommands } from "./verification-commands.js";
|
|
9
9
|
import { createRepairPacket } from "./repair-packet.js";
|
|
10
|
+
const MAX_NODE_E_SCRIPT_LENGTH = 200;
|
|
10
11
|
export function runVerification(projectRoot, options) {
|
|
11
12
|
const commands = resolveCommands(projectRoot, options);
|
|
12
13
|
const startedFromFailed = readPreviousStatus(projectRoot) === "failed";
|
|
@@ -107,19 +108,20 @@ function spawnVerificationCommand(projectRoot, command) {
|
|
|
107
108
|
if (packageScript) {
|
|
108
109
|
return spawnVerificationCommand(projectRoot, packageScript);
|
|
109
110
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
111
|
+
const parsedCommand = parseCommand(command);
|
|
112
|
+
if (!parsedCommand) {
|
|
113
|
+
return {
|
|
114
|
+
status: null,
|
|
115
|
+
signal: null,
|
|
116
|
+
output: [null, "", "Verification command contains unsupported shell syntax."],
|
|
117
|
+
pid: 0,
|
|
118
|
+
stdout: "",
|
|
119
|
+
stderr: "Verification command contains unsupported shell syntax.",
|
|
120
|
+
error: new Error("Verification command contains unsupported shell syntax.")
|
|
121
|
+
};
|
|
119
122
|
}
|
|
120
|
-
return spawnSync(
|
|
123
|
+
return spawnSync(parsedCommand.executable, parsedCommand.args, {
|
|
121
124
|
cwd: projectRoot,
|
|
122
|
-
shell: true,
|
|
123
125
|
encoding: "utf8"
|
|
124
126
|
});
|
|
125
127
|
}
|
|
@@ -151,6 +153,17 @@ function resolvePackageScript(projectRoot, command) {
|
|
|
151
153
|
return null;
|
|
152
154
|
}
|
|
153
155
|
}
|
|
156
|
+
function parseCommand(command) {
|
|
157
|
+
const trimmed = command.trim();
|
|
158
|
+
if (!trimmed) {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
const windowsNodeCommand = parseUnquotedWindowsNodeCommand(trimmed);
|
|
162
|
+
if (windowsNodeCommand) {
|
|
163
|
+
return windowsNodeCommand;
|
|
164
|
+
}
|
|
165
|
+
return parseShellLikeCommand(trimmed);
|
|
166
|
+
}
|
|
154
167
|
function parseUnquotedWindowsNodeCommand(command) {
|
|
155
168
|
const marker = "\\node.exe";
|
|
156
169
|
const lowerCommand = command.toLowerCase();
|
|
@@ -167,20 +180,66 @@ function parseUnquotedWindowsNodeCommand(command) {
|
|
|
167
180
|
return null;
|
|
168
181
|
}
|
|
169
182
|
const script = parseQuotedArgument(remainder.slice(3).trim());
|
|
183
|
+
if (script !== null && script.length > MAX_NODE_E_SCRIPT_LENGTH) {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
170
186
|
return script === null ? null : { executable, args: ["-e", script] };
|
|
171
187
|
}
|
|
172
188
|
function parseQuotedArgument(value) {
|
|
173
|
-
|
|
189
|
+
const parsed = parseShellLikeCommand(value);
|
|
190
|
+
if (!parsed || parsed.args.length > 0) {
|
|
174
191
|
return null;
|
|
175
192
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
193
|
+
return parsed.executable;
|
|
194
|
+
}
|
|
195
|
+
function parseShellLikeCommand(command) {
|
|
196
|
+
const args = [];
|
|
197
|
+
let current = "";
|
|
198
|
+
let quote = null;
|
|
199
|
+
let escaped = false;
|
|
200
|
+
for (const char of command) {
|
|
201
|
+
if (escaped) {
|
|
202
|
+
current += char;
|
|
203
|
+
escaped = false;
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
if (char === "\\" && quote !== "'") {
|
|
207
|
+
escaped = true;
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
if (quote) {
|
|
211
|
+
if (char === quote) {
|
|
212
|
+
quote = null;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
current += char;
|
|
216
|
+
}
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
if (char === "\"" || char === "'") {
|
|
220
|
+
quote = char;
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
if (/\s/.test(char)) {
|
|
224
|
+
if (current) {
|
|
225
|
+
args.push(current);
|
|
226
|
+
current = "";
|
|
227
|
+
}
|
|
228
|
+
continue;
|
|
229
|
+
}
|
|
230
|
+
if (";&|<>`$(){}".includes(char)) {
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
current += char;
|
|
179
234
|
}
|
|
180
|
-
if (
|
|
235
|
+
if (escaped || quote) {
|
|
181
236
|
return null;
|
|
182
237
|
}
|
|
183
|
-
|
|
238
|
+
if (current) {
|
|
239
|
+
args.push(current);
|
|
240
|
+
}
|
|
241
|
+
const executable = args.shift();
|
|
242
|
+
return executable ? { executable, args } : null;
|
|
184
243
|
}
|
|
185
244
|
function readPreviousStatus(projectRoot) {
|
|
186
245
|
const previous = readJson(harnessPath(projectRoot, "verification", "latest.json"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/runtime/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAgE,MAAM,4BAA4B,CAAC;AACxI,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/runtime/verify.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas/types.d.ts
CHANGED
|
@@ -8,20 +8,21 @@ export interface TaskUnderstanding {
|
|
|
8
8
|
inputs?: {
|
|
9
9
|
prd?: string;
|
|
10
10
|
ui?: string;
|
|
11
|
-
|
|
11
|
+
agentProposal?: string;
|
|
12
12
|
};
|
|
13
13
|
reasoningMode?: "deterministic" | "agent_assisted";
|
|
14
14
|
policyProvenance?: PolicyProvenance;
|
|
15
|
-
|
|
15
|
+
agentProposal?: {
|
|
16
16
|
summary?: string | null;
|
|
17
17
|
artifactPath?: string | null;
|
|
18
18
|
contractVersion?: 1 | null;
|
|
19
19
|
intentSuggestion?: string | null;
|
|
20
20
|
constraintHints?: string[];
|
|
21
21
|
componentHints?: AgentDecisionComponentHint[];
|
|
22
|
+
planningEvidence?: AgentPlanningEvidence;
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
|
-
export type FrontendWorkflowKind = "ui_implementation" | "prd_knowledge" | "api_integration" | "frontend_test" | "bug_fix" | "requirement_change";
|
|
25
|
+
export type FrontendWorkflowKind = "ui_implementation" | "prd_knowledge" | "api_integration" | "frontend_test" | "bug_fix" | "frontend_review" | "requirement_change" | "documentation" | "maintenance";
|
|
25
26
|
export interface FrontendWorkflowPolicy {
|
|
26
27
|
kind: FrontendWorkflowKind;
|
|
27
28
|
summary: string;
|
|
@@ -53,16 +54,41 @@ export interface AgentPlanningDecision {
|
|
|
53
54
|
intentSuggestion?: string;
|
|
54
55
|
constraintHints?: string[];
|
|
55
56
|
componentHints?: AgentDecisionComponentHint[];
|
|
57
|
+
planningEvidence?: AgentPlanningEvidence;
|
|
58
|
+
}
|
|
59
|
+
export interface AgentWorkflowCandidate {
|
|
60
|
+
kind: FrontendWorkflowKind;
|
|
61
|
+
confidence: number;
|
|
62
|
+
reasons: string[];
|
|
63
|
+
}
|
|
64
|
+
export interface AgentTargetCandidate {
|
|
65
|
+
path: string;
|
|
66
|
+
role: string;
|
|
67
|
+
confidence: number;
|
|
68
|
+
}
|
|
69
|
+
export interface AgentVerificationCandidate {
|
|
70
|
+
kind: string;
|
|
71
|
+
reason: string;
|
|
72
|
+
}
|
|
73
|
+
export interface AgentAmbiguity {
|
|
74
|
+
question: string;
|
|
75
|
+
severity: "low" | "medium" | "high";
|
|
76
|
+
}
|
|
77
|
+
export interface AgentPlanningEvidence {
|
|
78
|
+
workflowCandidates?: AgentWorkflowCandidate[];
|
|
79
|
+
targetCandidates?: AgentTargetCandidate[];
|
|
80
|
+
verificationCandidates?: AgentVerificationCandidate[];
|
|
81
|
+
ambiguities?: AgentAmbiguity[];
|
|
56
82
|
}
|
|
57
83
|
export interface AgentPlanningDecisionEnvelope {
|
|
58
84
|
contractVersion: 1;
|
|
59
|
-
|
|
85
|
+
proposal: AgentPlanningDecision;
|
|
60
86
|
}
|
|
61
|
-
export interface
|
|
87
|
+
export interface AgentProposalCheckResult {
|
|
62
88
|
status: "passed" | "failed";
|
|
63
89
|
artifactPath: string;
|
|
64
90
|
contractVersion: 1 | null;
|
|
65
|
-
|
|
91
|
+
proposal: AgentPlanningDecision | null;
|
|
66
92
|
errors: string[];
|
|
67
93
|
}
|
|
68
94
|
export interface PlanningDecisionSummary {
|
|
@@ -71,6 +97,38 @@ export interface PlanningDecisionSummary {
|
|
|
71
97
|
intentSuggestion: string | null;
|
|
72
98
|
constraintHints: string[];
|
|
73
99
|
componentHints: AgentDecisionComponentHint[];
|
|
100
|
+
planningEvidence?: AgentPlanningEvidence;
|
|
101
|
+
}
|
|
102
|
+
export interface PlanDecisionTraceItem {
|
|
103
|
+
source: "system" | "agent" | "merged";
|
|
104
|
+
reason: string;
|
|
105
|
+
}
|
|
106
|
+
export interface PlanComponentHintTrace {
|
|
107
|
+
used: boolean;
|
|
108
|
+
strategy: "none" | "expand" | "merge" | "ignore";
|
|
109
|
+
confidence: number;
|
|
110
|
+
acceptedHints: number;
|
|
111
|
+
rejectedHints: number;
|
|
112
|
+
policy: {
|
|
113
|
+
expandMinWeight: number;
|
|
114
|
+
mergeMinConfidence: number;
|
|
115
|
+
};
|
|
116
|
+
constraints: Array<{
|
|
117
|
+
type: string;
|
|
118
|
+
outcome: "accepted" | "rejected" | "preserved";
|
|
119
|
+
reason?: string;
|
|
120
|
+
confidence?: number;
|
|
121
|
+
}>;
|
|
122
|
+
}
|
|
123
|
+
export interface PlanMeta {
|
|
124
|
+
decisionTrace: {
|
|
125
|
+
workflow: PlanDecisionTraceItem;
|
|
126
|
+
targets: PlanDecisionTraceItem;
|
|
127
|
+
components: PlanDecisionTraceItem;
|
|
128
|
+
componentHints: PlanComponentHintTrace;
|
|
129
|
+
agentEvidence?: PlanDecisionTraceItem;
|
|
130
|
+
};
|
|
131
|
+
warnings: string[];
|
|
74
132
|
}
|
|
75
133
|
export interface ComponentItem {
|
|
76
134
|
name: string;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
const harnessStatuses = new Set(["idle", "awaiting_agent_edit", "failed", "passed", "blocked"]);
|
|
2
|
+
const verificationStatuses = new Set(["not_run", "not_configured", "passed", "failed"]);
|
|
1
3
|
export function isHarnessState(value) {
|
|
2
4
|
if (!isRecord(value)) {
|
|
3
5
|
return false;
|
|
@@ -5,11 +7,13 @@ export function isHarnessState(value) {
|
|
|
5
7
|
const verification = value["verification"];
|
|
6
8
|
return value["version"] === 1
|
|
7
9
|
&& typeof value["status"] === "string"
|
|
10
|
+
&& harnessStatuses.has(value["status"])
|
|
8
11
|
&& Array.isArray(value["components"])
|
|
9
12
|
&& Array.isArray(value["units"])
|
|
10
13
|
&& Array.isArray(value["changedFiles"])
|
|
11
14
|
&& isRecord(verification)
|
|
12
15
|
&& typeof verification["status"] === "string"
|
|
16
|
+
&& verificationStatuses.has(verification["status"])
|
|
13
17
|
&& Array.isArray(value["errors"])
|
|
14
18
|
&& typeof value["retryCount"] === "number"
|
|
15
19
|
&& Array.isArray(value["blockers"])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/schemas/validation.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IAC3C,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;WACxB,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ;WACnC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;WAClC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;WAC7B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;WACpC,QAAQ,CAAC,YAAY,CAAC;WACtB,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,QAAQ;WAC1C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;WAC9B,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,QAAQ;WACvC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;WAChC,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC;AAC9C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC"}
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/schemas/validation.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAChG,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAExF,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IAC3C,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;WACxB,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ;WACnC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;WACpC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;WAClC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;WAC7B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;WACpC,QAAQ,CAAC,YAAY,CAAC;WACtB,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,QAAQ;WAC1C,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;WAChD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;WAC9B,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,QAAQ;WACvC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;WAChC,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC;AAC9C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC"}
|
package/dist/storage/json.js
CHANGED
|
@@ -15,7 +15,12 @@ export function readJson(filePath) {
|
|
|
15
15
|
if (!fs.existsSync(filePath)) {
|
|
16
16
|
return null;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
try {
|
|
19
|
+
return JSON.parse(fs.readFileSync(filePath, "utf8"));
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
19
24
|
}
|
|
20
25
|
export function writeText(filePath, value) {
|
|
21
26
|
ensureDir(path.dirname(filePath));
|
package/dist/storage/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/storage/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,KAAc;IACxD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,KAAc;IACjE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACtG,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,QAAgB;IAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/storage/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,KAAc;IACxD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,KAAc;IACjE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACtG,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,QAAgB;IAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAM,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,KAAa;IACvD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frontend-harness",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -19,12 +19,11 @@
|
|
|
19
19
|
".": "./dist/cli/index.js"
|
|
20
20
|
},
|
|
21
21
|
"scripts": {
|
|
22
|
-
"clean": "
|
|
22
|
+
"clean": "node -e \"fs.rmSync('dist', { recursive: true, force: true })\"",
|
|
23
23
|
"build": "npm run clean && tsc",
|
|
24
24
|
"harness": "node dist/cli/index.js",
|
|
25
25
|
"prepare": "npm run build",
|
|
26
|
-
"
|
|
27
|
-
"verify": "npm test && npm run typecheck && npm run build && npm run smoke:phase9",
|
|
26
|
+
"verify": "npm test && npm run typecheck && npm run build",
|
|
28
27
|
"typecheck": "tsc --noEmit",
|
|
29
28
|
"test": "npm run build && node --test tests/*.test.mjs"
|
|
30
29
|
},
|