issue-flow 0.7.7 → 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.
- package/dist/{analyze-2RVGY5OK.js → analyze-RBNKXWL5.js} +6 -6
- package/dist/{chunk-6L2BPOE3.js → chunk-36ECROTC.js} +7 -7
- package/dist/{chunk-EOTULFWV.js → chunk-A4M6AKIK.js} +6 -6
- package/dist/{chunk-RUTDK6ZF.js → chunk-BASRRXAM.js} +2 -2
- package/dist/{chunk-WO6ERABE.js → chunk-BH7DYADV.js} +10 -1
- package/dist/chunk-BH7DYADV.js.map +1 -0
- package/dist/{chunk-JOK7VXRV.js → chunk-F52S6ZGF.js} +3 -3
- package/dist/{chunk-EYVXLRRD.js → chunk-HSGTZ3CT.js} +3 -3
- package/dist/{chunk-XPW46TI5.js → chunk-J3PJBZXJ.js} +3 -3
- package/dist/{chunk-6UTVPKNF.js → chunk-J4SICTAN.js} +7 -7
- package/dist/{chunk-KHTLN54U.js → chunk-JWZKV3CL.js} +2 -2
- package/dist/{chunk-3E6KASSE.js → chunk-MK43N4X3.js} +7 -7
- package/dist/{chunk-ZYBYMEWG.js → chunk-QO2MWMAZ.js} +2 -2
- package/dist/{chunk-OPIDR2DC.js → chunk-RQW5W4XC.js} +2 -2
- package/dist/{chunk-WGDLUPSF.js → chunk-TGP6WK65.js} +5 -5
- package/dist/{chunk-G37JNQKB.js → chunk-VPDWTZ3F.js} +2 -2
- package/dist/{chunk-6IOPYFUM.js → chunk-VSF2CR3G.js} +6 -6
- package/dist/cli.js +15 -15
- package/dist/{config-OAZG7KIK.js → config-R7O5YC65.js} +3 -3
- package/dist/execute-LU3HWA54.js +14 -0
- package/dist/{generate-BEJF3SVJ.js → generate-TGJQLGMV.js} +6 -6
- package/dist/init-WP7Z2LFQ.js +9 -0
- package/dist/plan-2MWMCKRY.js +16 -0
- package/dist/pr-XVQDEQ7B.js +16 -0
- package/dist/pr-review-VO6ZXAFM.js +16 -0
- package/dist/prd-FPZAHQEO.js +16 -0
- package/dist/review-AHALLMXO.js +14 -0
- package/dist/{run-SEB6F3W4.js → run-2CXVR3VZ.js} +16 -16
- package/dist/{web-3SBYL7QJ.js → web-JVPK2PIF.js} +4 -4
- package/package.json +1 -1
- package/web/CLAUDE.md +48 -0
- package/web/public/app.css +266 -0
- package/web/public/app.js +237 -0
- package/web/public/index.html +26 -0
- package/dist/chunk-WO6ERABE.js.map +0 -1
- package/dist/execute-AOEM52CD.js +0 -14
- package/dist/init-TBC3WI74.js +0 -9
- package/dist/plan-YDZYB2BO.js +0 -16
- package/dist/pr-SIXMJIZF.js +0 -16
- package/dist/pr-review-AY56ZPJR.js +0 -16
- package/dist/prd-MBSSBLGO.js +0 -16
- package/dist/review-2MDDHZ4X.js +0 -14
- /package/dist/{analyze-2RVGY5OK.js.map → analyze-RBNKXWL5.js.map} +0 -0
- /package/dist/{chunk-6L2BPOE3.js.map → chunk-36ECROTC.js.map} +0 -0
- /package/dist/{chunk-EOTULFWV.js.map → chunk-A4M6AKIK.js.map} +0 -0
- /package/dist/{chunk-RUTDK6ZF.js.map → chunk-BASRRXAM.js.map} +0 -0
- /package/dist/{chunk-JOK7VXRV.js.map → chunk-F52S6ZGF.js.map} +0 -0
- /package/dist/{chunk-EYVXLRRD.js.map → chunk-HSGTZ3CT.js.map} +0 -0
- /package/dist/{chunk-XPW46TI5.js.map → chunk-J3PJBZXJ.js.map} +0 -0
- /package/dist/{chunk-6UTVPKNF.js.map → chunk-J4SICTAN.js.map} +0 -0
- /package/dist/{chunk-KHTLN54U.js.map → chunk-JWZKV3CL.js.map} +0 -0
- /package/dist/{chunk-3E6KASSE.js.map → chunk-MK43N4X3.js.map} +0 -0
- /package/dist/{chunk-ZYBYMEWG.js.map → chunk-QO2MWMAZ.js.map} +0 -0
- /package/dist/{chunk-OPIDR2DC.js.map → chunk-RQW5W4XC.js.map} +0 -0
- /package/dist/{chunk-WGDLUPSF.js.map → chunk-TGP6WK65.js.map} +0 -0
- /package/dist/{chunk-G37JNQKB.js.map → chunk-VPDWTZ3F.js.map} +0 -0
- /package/dist/{chunk-6IOPYFUM.js.map → chunk-VSF2CR3G.js.map} +0 -0
- /package/dist/{config-OAZG7KIK.js.map → config-R7O5YC65.js.map} +0 -0
- /package/dist/{execute-AOEM52CD.js.map → execute-LU3HWA54.js.map} +0 -0
- /package/dist/{generate-BEJF3SVJ.js.map → generate-TGJQLGMV.js.map} +0 -0
- /package/dist/{init-TBC3WI74.js.map → init-WP7Z2LFQ.js.map} +0 -0
- /package/dist/{plan-YDZYB2BO.js.map → plan-2MWMCKRY.js.map} +0 -0
- /package/dist/{pr-SIXMJIZF.js.map → pr-XVQDEQ7B.js.map} +0 -0
- /package/dist/{pr-review-AY56ZPJR.js.map → pr-review-VO6ZXAFM.js.map} +0 -0
- /package/dist/{prd-MBSSBLGO.js.map → prd-FPZAHQEO.js.map} +0 -0
- /package/dist/{review-2MDDHZ4X.js.map → review-AHALLMXO.js.map} +0 -0
- /package/dist/{run-SEB6F3W4.js.map → run-2CXVR3VZ.js.map} +0 -0
- /package/dist/{web-3SBYL7QJ.js.map → web-JVPK2PIF.js.map} +0 -0
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
} from "./chunk-HDV3YDTG.js";
|
|
7
7
|
import {
|
|
8
8
|
publishGitState
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-J3PJBZXJ.js";
|
|
10
10
|
import {
|
|
11
11
|
EXECUTE_PHASE,
|
|
12
12
|
elapsedSecondsSince,
|
|
13
13
|
getPhaseUsageTotals,
|
|
14
14
|
publishIterationMetrics,
|
|
15
15
|
publishStoryMetrics
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-QO2MWMAZ.js";
|
|
17
17
|
import {
|
|
18
18
|
applyPlaceholders,
|
|
19
19
|
loadPrompt
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
createConfig,
|
|
23
23
|
resolvePaths,
|
|
24
24
|
validateDependencies
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-BASRRXAM.js";
|
|
26
26
|
import {
|
|
27
27
|
allStoriesPass,
|
|
28
28
|
applyStoryMetrics,
|
|
@@ -53,7 +53,7 @@ import {
|
|
|
53
53
|
trimErrorMessage,
|
|
54
54
|
useColor,
|
|
55
55
|
useUnicode
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-BH7DYADV.js";
|
|
57
57
|
|
|
58
58
|
// src/core/engine.ts
|
|
59
59
|
import { existsSync } from "fs";
|
|
@@ -610,4 +610,4 @@ export {
|
|
|
610
610
|
printRunSummary,
|
|
611
611
|
runExecute
|
|
612
612
|
};
|
|
613
|
-
//# sourceMappingURL=chunk-
|
|
613
|
+
//# sourceMappingURL=chunk-TGP6WK65.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
printInfo,
|
|
5
5
|
printSuccess,
|
|
6
6
|
printWarning
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-BH7DYADV.js";
|
|
8
8
|
|
|
9
9
|
// src/commands/init.ts
|
|
10
10
|
import { execa } from "execa";
|
|
@@ -132,4 +132,4 @@ async function runInit(source = "github") {
|
|
|
132
132
|
export {
|
|
133
133
|
runInit
|
|
134
134
|
};
|
|
135
|
-
//# sourceMappingURL=chunk-
|
|
135
|
+
//# sourceMappingURL=chunk-VPDWTZ3F.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
listPullRequests
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-J3PJBZXJ.js";
|
|
5
5
|
import {
|
|
6
6
|
runHeadless
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-JWZKV3CL.js";
|
|
8
8
|
import {
|
|
9
9
|
publishPhaseMetrics
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-QO2MWMAZ.js";
|
|
11
11
|
import {
|
|
12
12
|
applyPlaceholders,
|
|
13
13
|
loadPrompt
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
loadPrReviewConfig,
|
|
18
18
|
resolveIssuePaths,
|
|
19
19
|
run
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-BASRRXAM.js";
|
|
21
21
|
import {
|
|
22
22
|
getGlobalTimeout,
|
|
23
23
|
getSessionPublisher,
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
printWarning,
|
|
30
30
|
saveTaskPlan,
|
|
31
31
|
writeFileAtomic
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-BH7DYADV.js";
|
|
33
33
|
|
|
34
34
|
// src/commands/pr-review.ts
|
|
35
35
|
import { join as join3 } from "path";
|
|
@@ -733,4 +733,4 @@ export {
|
|
|
733
733
|
exitCodeFor,
|
|
734
734
|
runPrReview
|
|
735
735
|
};
|
|
736
|
-
//# sourceMappingURL=chunk-
|
|
736
|
+
//# sourceMappingURL=chunk-VSF2CR3G.js.map
|
package/dist/cli.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import {
|
|
3
3
|
setIssuesCliOverrides,
|
|
4
4
|
setWebCliOverrides
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-BASRRXAM.js";
|
|
6
6
|
import {
|
|
7
7
|
printError,
|
|
8
8
|
setGlobalTimeout,
|
|
9
9
|
setVerbose
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-BH7DYADV.js";
|
|
11
11
|
|
|
12
12
|
// src/cli.ts
|
|
13
13
|
import { createRequire } from "module";
|
|
@@ -159,8 +159,8 @@ withIssueOptions(
|
|
|
159
159
|
program.command("init").description("Verify that all prerequisites (claude, gh, git) are met")
|
|
160
160
|
)
|
|
161
161
|
).action(async () => {
|
|
162
|
-
const { loadIssuesConfig } = await import("./config-
|
|
163
|
-
const { runInit } = await import("./init-
|
|
162
|
+
const { loadIssuesConfig } = await import("./config-R7O5YC65.js");
|
|
163
|
+
const { runInit } = await import("./init-WP7Z2LFQ.js");
|
|
164
164
|
const { preferredProvider } = await loadIssuesConfig();
|
|
165
165
|
const code = await runInit(preferredProvider);
|
|
166
166
|
process.exit(code);
|
|
@@ -178,7 +178,7 @@ withGlobalOptions(
|
|
|
178
178
|
}
|
|
179
179
|
throw error;
|
|
180
180
|
}
|
|
181
|
-
const { runGenerate } = await import("./generate-
|
|
181
|
+
const { runGenerate } = await import("./generate-TGJQLGMV.js");
|
|
182
182
|
const code = await runGenerate(options.prompt, target);
|
|
183
183
|
process.exit(code);
|
|
184
184
|
});
|
|
@@ -202,7 +202,7 @@ withWebOptions(
|
|
|
202
202
|
}
|
|
203
203
|
throw error;
|
|
204
204
|
}
|
|
205
|
-
const { runPipeline } = await import("./run-
|
|
205
|
+
const { runPipeline } = await import("./run-2CXVR3VZ.js");
|
|
206
206
|
const code = await runPipeline(
|
|
207
207
|
issue,
|
|
208
208
|
options.mode,
|
|
@@ -218,7 +218,7 @@ withIssueOptions(
|
|
|
218
218
|
program.command("analyze").description("Analyze an issue via Claude Code Headless").argument("<issue>", "Issue number")
|
|
219
219
|
)
|
|
220
220
|
).action(async (issue) => {
|
|
221
|
-
const { runAnalyze } = await import("./analyze-
|
|
221
|
+
const { runAnalyze } = await import("./analyze-RBNKXWL5.js");
|
|
222
222
|
const code = await runAnalyze(issue);
|
|
223
223
|
process.exit(code);
|
|
224
224
|
});
|
|
@@ -227,7 +227,7 @@ withIssueOptions(
|
|
|
227
227
|
program.command("prd").description("Generate a PRD from an analyzed issue via Claude Code Headless").argument("<issue>", "Issue number")
|
|
228
228
|
)
|
|
229
229
|
).action(async (issue) => {
|
|
230
|
-
const { runPrd } = await import("./prd-
|
|
230
|
+
const { runPrd } = await import("./prd-FPZAHQEO.js");
|
|
231
231
|
const code = await runPrd(issue);
|
|
232
232
|
process.exit(code);
|
|
233
233
|
});
|
|
@@ -236,7 +236,7 @@ withIssueOptions(
|
|
|
236
236
|
program.command("plan").description("Convert a PRD to a tasks.json task plan via Claude Code Headless").argument("<issue>", "Issue number")
|
|
237
237
|
)
|
|
238
238
|
).action(async (issue) => {
|
|
239
|
-
const { runPlan } = await import("./plan-
|
|
239
|
+
const { runPlan } = await import("./plan-2MWMCKRY.js");
|
|
240
240
|
const code = await runPlan(issue);
|
|
241
241
|
process.exit(code);
|
|
242
242
|
});
|
|
@@ -255,7 +255,7 @@ withWebOptions(
|
|
|
255
255
|
).action(
|
|
256
256
|
async (positionalMaxIter, options) => {
|
|
257
257
|
try {
|
|
258
|
-
const { runExecute } = await import("./execute-
|
|
258
|
+
const { runExecute } = await import("./execute-LU3HWA54.js");
|
|
259
259
|
const code = await runExecute(positionalMaxIter, options);
|
|
260
260
|
process.exit(code);
|
|
261
261
|
} catch (error) {
|
|
@@ -269,7 +269,7 @@ withIssueOptions(
|
|
|
269
269
|
program.command("review").description("Validate an issue resolution via Claude Code Headless").argument("<issue>", "Issue number")
|
|
270
270
|
)
|
|
271
271
|
).action(async (issue) => {
|
|
272
|
-
const { runReview } = await import("./review-
|
|
272
|
+
const { runReview } = await import("./review-AHALLMXO.js");
|
|
273
273
|
const code = await runReview(issue);
|
|
274
274
|
process.exit(code);
|
|
275
275
|
});
|
|
@@ -278,7 +278,7 @@ withIssueOptions(
|
|
|
278
278
|
program.command("pr").description("Create a pull request via Claude Code Headless").argument("<issue>", "Issue number")
|
|
279
279
|
)
|
|
280
280
|
).action(async (issue) => {
|
|
281
|
-
const { runPr } = await import("./pr-
|
|
281
|
+
const { runPr } = await import("./pr-XVQDEQ7B.js");
|
|
282
282
|
const code = await runPr(issue);
|
|
283
283
|
process.exit(code);
|
|
284
284
|
});
|
|
@@ -286,14 +286,14 @@ var webCommand = program.command("web").description("Manage the web monitoring s
|
|
|
286
286
|
webCommand.command("serve").description(
|
|
287
287
|
"Run the web monitor server in the foreground (internal \u2014 spawned detached by --web)"
|
|
288
288
|
).option("--port <n>", "Web server port (default: 3737)", parseInteger).option("--host <h>", "Web server host (default: 0.0.0.0)").option("--refresh <s>", "Suggested UI polling interval in seconds", parseInteger).action(async (options) => {
|
|
289
|
-
const { runWebServe } = await import("./web-
|
|
289
|
+
const { runWebServe } = await import("./web-JVPK2PIF.js");
|
|
290
290
|
const code = await runWebServe(options);
|
|
291
291
|
if (code !== 0) {
|
|
292
292
|
process.exit(code);
|
|
293
293
|
}
|
|
294
294
|
});
|
|
295
295
|
webCommand.command("stop").description("Stop the running web monitor server").action(async () => {
|
|
296
|
-
const { runWebStop } = await import("./web-
|
|
296
|
+
const { runWebStop } = await import("./web-JVPK2PIF.js");
|
|
297
297
|
const code = await runWebStop();
|
|
298
298
|
process.exit(code);
|
|
299
299
|
});
|
|
@@ -304,7 +304,7 @@ withGlobalOptions(
|
|
|
304
304
|
)
|
|
305
305
|
).action(
|
|
306
306
|
async (pr, options) => {
|
|
307
|
-
const { runPrReview } = await import("./pr-review-
|
|
307
|
+
const { runPrReview } = await import("./pr-review-VO6ZXAFM.js");
|
|
308
308
|
const code = await runPrReview(pr, options);
|
|
309
309
|
process.exit(code);
|
|
310
310
|
}
|
|
@@ -15,8 +15,8 @@ import {
|
|
|
15
15
|
setIssuesCliOverrides,
|
|
16
16
|
setWebCliOverrides,
|
|
17
17
|
validateDependencies
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-BASRRXAM.js";
|
|
19
|
+
import "./chunk-BH7DYADV.js";
|
|
20
20
|
export {
|
|
21
21
|
DEFAULTS,
|
|
22
22
|
GLOBAL_CONFIG_FILENAME,
|
|
@@ -34,4 +34,4 @@ export {
|
|
|
34
34
|
setWebCliOverrides,
|
|
35
35
|
validateDependencies
|
|
36
36
|
};
|
|
37
|
-
//# sourceMappingURL=config-
|
|
37
|
+
//# sourceMappingURL=config-R7O5YC65.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
runExecute
|
|
4
|
+
} from "./chunk-TGP6WK65.js";
|
|
5
|
+
import "./chunk-HDV3YDTG.js";
|
|
6
|
+
import "./chunk-J3PJBZXJ.js";
|
|
7
|
+
import "./chunk-QO2MWMAZ.js";
|
|
8
|
+
import "./chunk-SLHZPB3C.js";
|
|
9
|
+
import "./chunk-BASRRXAM.js";
|
|
10
|
+
import "./chunk-BH7DYADV.js";
|
|
11
|
+
export {
|
|
12
|
+
runExecute
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=execute-LU3HWA54.js.map
|
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
ensureProvidersRegistered,
|
|
4
4
|
getProvider,
|
|
5
5
|
localIssueRef
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-HSGTZ3CT.js";
|
|
7
7
|
import {
|
|
8
8
|
runHeadless
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-JWZKV3CL.js";
|
|
10
10
|
import {
|
|
11
11
|
publishPhaseMetrics
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-QO2MWMAZ.js";
|
|
13
13
|
import {
|
|
14
14
|
applyPlaceholders,
|
|
15
15
|
loadPrompt
|
|
@@ -17,13 +17,13 @@ import {
|
|
|
17
17
|
import {
|
|
18
18
|
loadIssuesConfig,
|
|
19
19
|
resolveProjectPaths
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-BASRRXAM.js";
|
|
21
21
|
import {
|
|
22
22
|
getGlobalTimeout,
|
|
23
23
|
isoNow,
|
|
24
24
|
printError,
|
|
25
25
|
printSuccess
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-BH7DYADV.js";
|
|
27
27
|
|
|
28
28
|
// src/issues/draft.ts
|
|
29
29
|
var DRAFT_TAG = "issue-draft";
|
|
@@ -153,4 +153,4 @@ async function runGenerate(promptText, target) {
|
|
|
153
153
|
export {
|
|
154
154
|
runGenerate
|
|
155
155
|
};
|
|
156
|
-
//# sourceMappingURL=generate-
|
|
156
|
+
//# sourceMappingURL=generate-TGJQLGMV.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
runPlan
|
|
4
|
+
} from "./chunk-MK43N4X3.js";
|
|
5
|
+
import "./chunk-RQW5W4XC.js";
|
|
6
|
+
import "./chunk-HSGTZ3CT.js";
|
|
7
|
+
import "./chunk-HDV3YDTG.js";
|
|
8
|
+
import "./chunk-JWZKV3CL.js";
|
|
9
|
+
import "./chunk-QO2MWMAZ.js";
|
|
10
|
+
import "./chunk-SLHZPB3C.js";
|
|
11
|
+
import "./chunk-BASRRXAM.js";
|
|
12
|
+
import "./chunk-BH7DYADV.js";
|
|
13
|
+
export {
|
|
14
|
+
runPlan
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=plan-2MWMCKRY.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
runPr
|
|
4
|
+
} from "./chunk-J4SICTAN.js";
|
|
5
|
+
import "./chunk-RQW5W4XC.js";
|
|
6
|
+
import "./chunk-HSGTZ3CT.js";
|
|
7
|
+
import "./chunk-HDV3YDTG.js";
|
|
8
|
+
import "./chunk-JWZKV3CL.js";
|
|
9
|
+
import "./chunk-QO2MWMAZ.js";
|
|
10
|
+
import "./chunk-SLHZPB3C.js";
|
|
11
|
+
import "./chunk-BASRRXAM.js";
|
|
12
|
+
import "./chunk-BH7DYADV.js";
|
|
13
|
+
export {
|
|
14
|
+
runPr
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=pr-XVQDEQ7B.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
exitCodeFor,
|
|
4
|
+
runPrReview
|
|
5
|
+
} from "./chunk-VSF2CR3G.js";
|
|
6
|
+
import "./chunk-J3PJBZXJ.js";
|
|
7
|
+
import "./chunk-JWZKV3CL.js";
|
|
8
|
+
import "./chunk-QO2MWMAZ.js";
|
|
9
|
+
import "./chunk-SLHZPB3C.js";
|
|
10
|
+
import "./chunk-BASRRXAM.js";
|
|
11
|
+
import "./chunk-BH7DYADV.js";
|
|
12
|
+
export {
|
|
13
|
+
exitCodeFor,
|
|
14
|
+
runPrReview
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=pr-review-VO6ZXAFM.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
runPrd
|
|
4
|
+
} from "./chunk-36ECROTC.js";
|
|
5
|
+
import "./chunk-RQW5W4XC.js";
|
|
6
|
+
import "./chunk-HSGTZ3CT.js";
|
|
7
|
+
import "./chunk-HDV3YDTG.js";
|
|
8
|
+
import "./chunk-JWZKV3CL.js";
|
|
9
|
+
import "./chunk-QO2MWMAZ.js";
|
|
10
|
+
import "./chunk-SLHZPB3C.js";
|
|
11
|
+
import "./chunk-BASRRXAM.js";
|
|
12
|
+
import "./chunk-BH7DYADV.js";
|
|
13
|
+
export {
|
|
14
|
+
runPrd
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=prd-FPZAHQEO.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
runReview
|
|
4
|
+
} from "./chunk-A4M6AKIK.js";
|
|
5
|
+
import "./chunk-HSGTZ3CT.js";
|
|
6
|
+
import "./chunk-JWZKV3CL.js";
|
|
7
|
+
import "./chunk-QO2MWMAZ.js";
|
|
8
|
+
import "./chunk-SLHZPB3C.js";
|
|
9
|
+
import "./chunk-BASRRXAM.js";
|
|
10
|
+
import "./chunk-BH7DYADV.js";
|
|
11
|
+
export {
|
|
12
|
+
runReview
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=review-AHALLMXO.js.map
|
|
@@ -1,52 +1,52 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runPrd
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-36ECROTC.js";
|
|
5
5
|
import {
|
|
6
6
|
runReview
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-A4M6AKIK.js";
|
|
8
8
|
import {
|
|
9
9
|
ensureWebMonitor
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-F52S6ZGF.js";
|
|
11
11
|
import {
|
|
12
12
|
runInit
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-VPDWTZ3F.js";
|
|
14
14
|
import {
|
|
15
15
|
printRunSummary,
|
|
16
16
|
runExecute
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-TGP6WK65.js";
|
|
18
18
|
import {
|
|
19
19
|
runPlan
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-MK43N4X3.js";
|
|
21
21
|
import {
|
|
22
22
|
runPr
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-J4SICTAN.js";
|
|
24
|
+
import "./chunk-RQW5W4XC.js";
|
|
25
25
|
import {
|
|
26
26
|
getProvider,
|
|
27
27
|
resolveCommandIssue
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-HSGTZ3CT.js";
|
|
29
29
|
import "./chunk-HDV3YDTG.js";
|
|
30
30
|
import {
|
|
31
31
|
mostRecent,
|
|
32
32
|
prReviewDir,
|
|
33
33
|
readPrReviewIndex,
|
|
34
34
|
runPrReview
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-VSF2CR3G.js";
|
|
36
36
|
import {
|
|
37
37
|
listPullRequests,
|
|
38
38
|
publishGitState
|
|
39
|
-
} from "./chunk-
|
|
40
|
-
import "./chunk-
|
|
39
|
+
} from "./chunk-J3PJBZXJ.js";
|
|
40
|
+
import "./chunk-JWZKV3CL.js";
|
|
41
41
|
import {
|
|
42
42
|
getRunUsageTotals
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-QO2MWMAZ.js";
|
|
44
44
|
import "./chunk-SLHZPB3C.js";
|
|
45
45
|
import {
|
|
46
46
|
loadIssuesConfig,
|
|
47
47
|
loadWebConfig,
|
|
48
48
|
resolveIssuePaths
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-BASRRXAM.js";
|
|
50
50
|
import {
|
|
51
51
|
FilePublisher,
|
|
52
52
|
NullPublisher,
|
|
@@ -60,7 +60,7 @@ import {
|
|
|
60
60
|
setOutputCallback,
|
|
61
61
|
setSessionPublisher,
|
|
62
62
|
setStoryUpdateCallback
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-BH7DYADV.js";
|
|
64
64
|
|
|
65
65
|
// src/commands/run.ts
|
|
66
66
|
import { randomUUID } from "crypto";
|
|
@@ -730,4 +730,4 @@ export {
|
|
|
730
730
|
publishStorySeed,
|
|
731
731
|
runPipeline
|
|
732
732
|
};
|
|
733
|
-
//# sourceMappingURL=run-
|
|
733
|
+
//# sourceMappingURL=run-2CXVR3VZ.js.map
|
|
@@ -4,20 +4,20 @@ import {
|
|
|
4
4
|
getWebLockFile,
|
|
5
5
|
readWebLock,
|
|
6
6
|
removeWebLock
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-F52S6ZGF.js";
|
|
8
8
|
import "./chunk-SLHZPB3C.js";
|
|
9
9
|
import {
|
|
10
10
|
ISSUES_DIR_NAME,
|
|
11
11
|
PROJECTS_DIR_NAME,
|
|
12
12
|
getGlobalRoot,
|
|
13
13
|
loadWebConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-BASRRXAM.js";
|
|
15
15
|
import {
|
|
16
16
|
printError,
|
|
17
17
|
printInfo,
|
|
18
18
|
printWarning,
|
|
19
19
|
sessionSnapshotSchema
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-BH7DYADV.js";
|
|
21
21
|
|
|
22
22
|
// src/web/session-directory.ts
|
|
23
23
|
import { readdir, readFile, stat as statFile } from "fs/promises";
|
|
@@ -185,4 +185,4 @@ export {
|
|
|
185
185
|
runWebServe,
|
|
186
186
|
runWebStop
|
|
187
187
|
};
|
|
188
|
-
//# sourceMappingURL=web-
|
|
188
|
+
//# sourceMappingURL=web-JVPK2PIF.js.map
|
package/package.json
CHANGED
package/web/CLAUDE.md
CHANGED
|
@@ -20,6 +20,54 @@ zero é um valor legítimo.
|
|
|
20
20
|
Texto dinâmico sempre via `textContent`/`el()`; nunca `innerHTML` com dados
|
|
21
21
|
do snapshot.
|
|
22
22
|
|
|
23
|
+
## Abas, Kanban e drawer
|
|
24
|
+
|
|
25
|
+
O painel tem duas abas ("Execução" e "Kanban") e um drawer de detalhes por
|
|
26
|
+
story. Três regras seguram esse conjunto:
|
|
27
|
+
|
|
28
|
+
- **Acesso a story sempre por `getStoryById()` / `getStories()`.** Elas são a
|
|
29
|
+
camada de leitura: normalizam num lugar só o que pode faltar num
|
|
30
|
+
`session.json` antigo (`status` → `'backlog'`, `dependencies`/
|
|
31
|
+
`acceptanceCriteria` → `[]`, `description` → `''`) e são o ponto onde uma
|
|
32
|
+
futura camada de escrita entra. Nenhum consumidor varre `snapshot.stories`
|
|
33
|
+
por conta própria, ou a normalização se espalha.
|
|
34
|
+
- **Estado de UI vive em `state`** (`activeTab`, `selectedStoryId`), junto de
|
|
35
|
+
`logFilter`, nunca em variável solta ou em referência a nó do DOM. O drawer
|
|
36
|
+
guarda o **id** da story, não o card: `render()` recria o Kanban a cada poll,
|
|
37
|
+
então uma referência guardada na abertura apontaria para um nó fora do
|
|
38
|
+
documento. Pelo mesmo motivo o foco volta ao card via
|
|
39
|
+
`[data-story-id="…"]` no momento de fechar.
|
|
40
|
+
- **`renderKanban()` e `renderDrawer()` são chamadas incondicionalmente** dentro
|
|
41
|
+
de `render()`, não ao trocar de aba. Uma aba inativa não pode ficar defasada,
|
|
42
|
+
e é o `renderDrawer()` de cada poll que mantém o drawer aberto em dia (e o
|
|
43
|
+
fecha quando a story some do plano).
|
|
44
|
+
|
|
45
|
+
Cada card do Kanban é um `<button>` — Enter/Espaço e foco saem de graça. Como
|
|
46
|
+
`<button>` só aceita *phrasing content*, todo o conteúdo interno é `<span>` com
|
|
47
|
+
`display: block`/`flex` no CSS; `<p>` ou `<div>` ali dentro é HTML inválido.
|
|
48
|
+
|
|
49
|
+
Detalhes cosméticos que não são cosméticos: `.tab-panel[hidden]` e
|
|
50
|
+
`.drawer[hidden]` precisam de `display: none` explícito, senão o `display:
|
|
51
|
+
grid`/`flex` da regra base vence o atributo `hidden`. E o overlay/drawer ficam
|
|
52
|
+
em `z-index` 20/21 para cobrir o `.banner` de desconexão, que é `sticky` com
|
|
53
|
+
`z-index: 10`.
|
|
54
|
+
|
|
55
|
+
## Escrita: o que ainda não existe
|
|
56
|
+
|
|
57
|
+
A interface é somente leitura por contrato (`snapshot.readOnly === true`,
|
|
58
|
+
`capabilities: []`), e o servidor não registra nenhuma rota de escrita — o
|
|
59
|
+
comentário em `src/web/server.ts` reserva `POST /api/control/*` para isso. O
|
|
60
|
+
Kanban e o drawer foram desenhados para que a escrita caiba depois sem
|
|
61
|
+
redesenhar a interação: o drawer já é o lugar onde uma story é inspecionada por
|
|
62
|
+
id, e `getStoryById()` já é o único ponto por onde ela é lida.
|
|
63
|
+
|
|
64
|
+
Quando essa etapa chegar, o contrato esperado é: as rotas de escrita passam a
|
|
65
|
+
ser anunciadas em `capabilities` (o client decide o que renderizar a partir
|
|
66
|
+
disso, nunca da versão do servidor), `readOnly` passa a `false`, e cada
|
|
67
|
+
mutação responde com o snapshot atualizado para que a UI não precise adivinhar
|
|
68
|
+
o efeito nem esperar o próximo poll. Enquanto `capabilities` estiver vazio,
|
|
69
|
+
nenhum controle de escrita deve aparecer na tela.
|
|
70
|
+
|
|
23
71
|
## Métricas (tokens e custo)
|
|
24
72
|
|
|
25
73
|
`formatUsage()` espelha `formatTokens()` de `src/core/metrics.ts` — mesma
|