@iloom/cli 0.8.3 → 0.9.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/LICENSE +1 -1
- package/README.md +50 -4
- package/dist/{BranchNamingService-AO7BPIUJ.js → BranchNamingService-K6XNWQ6C.js} +2 -2
- package/dist/ClaudeContextManager-X2Y72GRL.js +14 -0
- package/dist/ClaudeService-7P32TTES.js +13 -0
- package/dist/{LoomLauncher-NHZMEVTQ.js → LoomLauncher-3I47SUPV.js} +6 -6
- package/dist/{ProjectCapabilityDetector-IA56AUE6.js → ProjectCapabilityDetector-N5L7T4IY.js} +3 -3
- package/dist/PromptTemplateManager-36YLQRHP.js +11 -0
- package/dist/README.md +50 -4
- package/dist/{SettingsManager-VCVLL32H.js → SettingsManager-QR7V2IW2.js} +2 -2
- package/dist/agents/iloom-artifact-reviewer.md +280 -0
- package/dist/agents/iloom-code-reviewer.md +9 -7
- package/dist/agents/iloom-issue-analyze-and-plan.md +21 -6
- package/dist/agents/iloom-issue-analyzer.md +21 -6
- package/dist/agents/iloom-issue-complexity-evaluator.md +21 -6
- package/dist/agents/iloom-issue-enhancer.md +21 -6
- package/dist/agents/iloom-issue-implementer.md +21 -6
- package/dist/agents/iloom-issue-planner.md +21 -6
- package/dist/{build-Z3WCIKPD.js → build-IC4CJRMP.js} +8 -8
- package/dist/{chunk-TVH67KEO.js → chunk-2HZX6AMR.js} +2 -2
- package/dist/{chunk-VZYSM7N7.js → chunk-2JPXGGP4.js} +20 -15
- package/dist/chunk-2JPXGGP4.js.map +1 -0
- package/dist/{chunk-HSGZW3ID.js → chunk-4GAJJUYS.js} +3 -3
- package/dist/chunk-4GAJJUYS.js.map +1 -0
- package/dist/{chunk-RD7I2Q2F.js → chunk-4LKGCFGG.js} +2 -2
- package/dist/{chunk-SSASIBDJ.js → chunk-5LVVQGB3.js} +5 -5
- package/dist/{chunk-GWONJE3X.js → chunk-6Y3FTRJL.js} +189 -48
- package/dist/chunk-6Y3FTRJL.js.map +1 -0
- package/dist/{chunk-4BSXZ5YZ.js → chunk-B7U6OKUR.js} +5 -24
- package/dist/chunk-B7U6OKUR.js.map +1 -0
- package/dist/{chunk-IGKPPACU.js → chunk-FO5GGFOV.js} +17 -8
- package/dist/chunk-FO5GGFOV.js.map +1 -0
- package/dist/{chunk-GDS2HXSW.js → chunk-H6ST2TGP.js} +20 -3
- package/dist/chunk-H6ST2TGP.js.map +1 -0
- package/dist/{chunk-A7XHHUEV.js → chunk-HZXBHMVM.js} +47 -22
- package/dist/chunk-HZXBHMVM.js.map +1 -0
- package/dist/{chunk-44Y5IF7P.js → chunk-I23OQB4Y.js} +5 -5
- package/dist/chunk-JT5LZRMI.js +302 -0
- package/dist/chunk-JT5LZRMI.js.map +1 -0
- package/dist/{chunk-Q457PKGH.js → chunk-KAYXR544.js} +2 -2
- package/dist/{chunk-XU5A6BWA.js → chunk-MZPRBNYC.js} +4 -4
- package/dist/{chunk-XHNACIHO.js → chunk-NTTSUAVM.js} +2 -2
- package/dist/{chunk-PLI3JQWT.js → chunk-OAVJR4PM.js} +2 -2
- package/dist/{chunk-4KGRPHM6.js → chunk-PL2FDYEK.js} +2 -2
- package/dist/chunk-QN47QVBX.js +131 -0
- package/dist/chunk-QN47QVBX.js.map +1 -0
- package/dist/{chunk-3FC3VNEX.js → chunk-RD7OPXZK.js} +34 -8
- package/dist/chunk-RD7OPXZK.js.map +1 -0
- package/dist/{chunk-O6LECMT6.js → chunk-TGRK3CHF.js} +8 -8
- package/dist/{chunk-7GLZVDPQ.js → chunk-TL72BGP6.js} +2 -2
- package/dist/{chunk-52MVUK5V.js → chunk-USSL2X4A.js} +2 -2
- package/dist/chunk-USSL2X4A.js.map +1 -0
- package/dist/{chunk-XPKN3QWY.js → chunk-VOGGLPG5.js} +1 -2
- package/dist/{chunk-IWIIOFEB.js → chunk-XFEK2X2D.js} +16 -6
- package/dist/chunk-XFEK2X2D.js.map +1 -0
- package/dist/{chunk-PBSHQVCT.js → chunk-Z6F5CUS6.js} +4 -4
- package/dist/{claude-V4HRPR4Z.js → claude-TP2QO3BU.js} +2 -2
- package/dist/{cleanup-NWNKWPUY.js → cleanup-M6N7KV7E.js} +20 -15
- package/dist/{cleanup-NWNKWPUY.js.map → cleanup-M6N7KV7E.js.map} +1 -1
- package/dist/cli.js +118 -84
- package/dist/cli.js.map +1 -1
- package/dist/{commit-534QIRHY.js → commit-ORHR53KW.js} +10 -10
- package/dist/{compile-UANHMNTS.js → compile-EOWJORKO.js} +8 -8
- package/dist/{contribute-7USRBWRM.js → contribute-4KCEOHSH.js} +3 -3
- package/dist/{dev-server-TO7RLYJI.js → dev-server-Q6M62ATG.js} +13 -13
- package/dist/{feedback-7ZZI6RC5.js → feedback-XRI7SGYX.js} +11 -11
- package/dist/{git-GUNOPP4Q.js → git-W3XUIFTR.js} +5 -3
- package/dist/hooks/iloom-hook.js +5 -3
- package/dist/{ignite-JBX3BUDE.js → ignite-3FHQY23X.js} +90 -47
- package/dist/ignite-3FHQY23X.js.map +1 -0
- package/dist/index.d.ts +37 -2
- package/dist/index.js +49 -13
- package/dist/index.js.map +1 -1
- package/dist/{chunk-FPNSFP6K.js → init-ALYWKNWG.js} +42 -329
- package/dist/init-ALYWKNWG.js.map +1 -0
- package/dist/{lint-XPODLDVA.js → lint-IHUH45OC.js} +8 -8
- package/dist/{open-M2SUR74Y.js → open-KWOV2OFO.js} +15 -15
- package/dist/{plan-FB4AOJ2Q.js → plan-P6MXL7AU.js} +54 -22
- package/dist/plan-P6MXL7AU.js.map +1 -0
- package/dist/{projects-325GEEGJ.js → projects-LH362JZQ.js} +3 -3
- package/dist/prompts/init-prompt.txt +9 -1
- package/dist/prompts/issue-prompt.txt +310 -0
- package/dist/prompts/plan-prompt.txt +4 -6
- package/dist/prompts/pr-prompt.txt +79 -0
- package/dist/prompts/regular-prompt.txt +205 -0
- package/dist/{rebase-4FNRBW3H.js → rebase-AJOJOZUG.js} +9 -9
- package/dist/{recap-GSXFEOD6.js → recap-GKJXMDXW.js} +5 -5
- package/dist/{run-GZNHRJB2.js → run-QEUVZF7J.js} +15 -15
- package/dist/schema/settings.schema.json +9 -1
- package/dist/{shell-2SPM3Z5O.js → shell-DAAVG4YN.js} +5 -5
- package/dist/{summary-Z4F7YFXE.js → summary-WNEYCO4S.js} +11 -11
- package/dist/{test-LBSPYIJW.js → test-5GPWWO3P.js} +8 -8
- package/dist/{test-git-ZPSPA2TP.js → test-git-EJUKDB7F.js} +3 -3
- package/dist/{test-prefix-6DLB2BHE.js → test-prefix-23TOBUXY.js} +3 -3
- package/dist/{test-webserver-XLJ2TZFP.js → test-webserver-CKROHFBQ.js} +5 -5
- package/dist/{vscode-LH3VSQ2W.js → vscode-6TOLFCI2.js} +5 -5
- package/package.json +2 -2
- package/dist/ClaudeContextManager-RDP6CLK6.js +0 -14
- package/dist/ClaudeService-FKPOQRA4.js +0 -13
- package/dist/PRManager-A63LT3NF.js +0 -16
- package/dist/PromptTemplateManager-OUYDHOPI.js +0 -9
- package/dist/chunk-3FC3VNEX.js.map +0 -1
- package/dist/chunk-4BSXZ5YZ.js.map +0 -1
- package/dist/chunk-52MVUK5V.js.map +0 -1
- package/dist/chunk-66QOCD5N.js +0 -79
- package/dist/chunk-66QOCD5N.js.map +0 -1
- package/dist/chunk-A7XHHUEV.js.map +0 -1
- package/dist/chunk-FPNSFP6K.js.map +0 -1
- package/dist/chunk-GDS2HXSW.js.map +0 -1
- package/dist/chunk-GWONJE3X.js.map +0 -1
- package/dist/chunk-HSGZW3ID.js.map +0 -1
- package/dist/chunk-IGKPPACU.js.map +0 -1
- package/dist/chunk-IWIIOFEB.js.map +0 -1
- package/dist/chunk-VZYSM7N7.js.map +0 -1
- package/dist/git-GUNOPP4Q.js.map +0 -1
- package/dist/ignite-JBX3BUDE.js.map +0 -1
- package/dist/init-XXDIB2UJ.js +0 -21
- package/dist/init-XXDIB2UJ.js.map +0 -1
- package/dist/plan-FB4AOJ2Q.js.map +0 -1
- /package/dist/{BranchNamingService-AO7BPIUJ.js.map → BranchNamingService-K6XNWQ6C.js.map} +0 -0
- /package/dist/{ClaudeContextManager-RDP6CLK6.js.map → ClaudeContextManager-X2Y72GRL.js.map} +0 -0
- /package/dist/{ClaudeService-FKPOQRA4.js.map → ClaudeService-7P32TTES.js.map} +0 -0
- /package/dist/{LoomLauncher-NHZMEVTQ.js.map → LoomLauncher-3I47SUPV.js.map} +0 -0
- /package/dist/{PRManager-A63LT3NF.js.map → ProjectCapabilityDetector-N5L7T4IY.js.map} +0 -0
- /package/dist/{ProjectCapabilityDetector-IA56AUE6.js.map → PromptTemplateManager-36YLQRHP.js.map} +0 -0
- /package/dist/{PromptTemplateManager-OUYDHOPI.js.map → SettingsManager-QR7V2IW2.js.map} +0 -0
- /package/dist/{build-Z3WCIKPD.js.map → build-IC4CJRMP.js.map} +0 -0
- /package/dist/{chunk-TVH67KEO.js.map → chunk-2HZX6AMR.js.map} +0 -0
- /package/dist/{chunk-RD7I2Q2F.js.map → chunk-4LKGCFGG.js.map} +0 -0
- /package/dist/{chunk-SSASIBDJ.js.map → chunk-5LVVQGB3.js.map} +0 -0
- /package/dist/{chunk-44Y5IF7P.js.map → chunk-I23OQB4Y.js.map} +0 -0
- /package/dist/{chunk-Q457PKGH.js.map → chunk-KAYXR544.js.map} +0 -0
- /package/dist/{chunk-XU5A6BWA.js.map → chunk-MZPRBNYC.js.map} +0 -0
- /package/dist/{chunk-XHNACIHO.js.map → chunk-NTTSUAVM.js.map} +0 -0
- /package/dist/{chunk-PLI3JQWT.js.map → chunk-OAVJR4PM.js.map} +0 -0
- /package/dist/{chunk-4KGRPHM6.js.map → chunk-PL2FDYEK.js.map} +0 -0
- /package/dist/{chunk-O6LECMT6.js.map → chunk-TGRK3CHF.js.map} +0 -0
- /package/dist/{chunk-7GLZVDPQ.js.map → chunk-TL72BGP6.js.map} +0 -0
- /package/dist/{chunk-XPKN3QWY.js.map → chunk-VOGGLPG5.js.map} +0 -0
- /package/dist/{chunk-PBSHQVCT.js.map → chunk-Z6F5CUS6.js.map} +0 -0
- /package/dist/{SettingsManager-VCVLL32H.js.map → claude-TP2QO3BU.js.map} +0 -0
- /package/dist/{commit-534QIRHY.js.map → commit-ORHR53KW.js.map} +0 -0
- /package/dist/{compile-UANHMNTS.js.map → compile-EOWJORKO.js.map} +0 -0
- /package/dist/{contribute-7USRBWRM.js.map → contribute-4KCEOHSH.js.map} +0 -0
- /package/dist/{dev-server-TO7RLYJI.js.map → dev-server-Q6M62ATG.js.map} +0 -0
- /package/dist/{feedback-7ZZI6RC5.js.map → feedback-XRI7SGYX.js.map} +0 -0
- /package/dist/{claude-V4HRPR4Z.js.map → git-W3XUIFTR.js.map} +0 -0
- /package/dist/{lint-XPODLDVA.js.map → lint-IHUH45OC.js.map} +0 -0
- /package/dist/{open-M2SUR74Y.js.map → open-KWOV2OFO.js.map} +0 -0
- /package/dist/{projects-325GEEGJ.js.map → projects-LH362JZQ.js.map} +0 -0
- /package/dist/{rebase-4FNRBW3H.js.map → rebase-AJOJOZUG.js.map} +0 -0
- /package/dist/{recap-GSXFEOD6.js.map → recap-GKJXMDXW.js.map} +0 -0
- /package/dist/{run-GZNHRJB2.js.map → run-QEUVZF7J.js.map} +0 -0
- /package/dist/{shell-2SPM3Z5O.js.map → shell-DAAVG4YN.js.map} +0 -0
- /package/dist/{summary-Z4F7YFXE.js.map → summary-WNEYCO4S.js.map} +0 -0
- /package/dist/{test-LBSPYIJW.js.map → test-5GPWWO3P.js.map} +0 -0
- /package/dist/{test-git-ZPSPA2TP.js.map → test-git-EJUKDB7F.js.map} +0 -0
- /package/dist/{test-prefix-6DLB2BHE.js.map → test-prefix-23TOBUXY.js.map} +0 -0
- /package/dist/{test-webserver-XLJ2TZFP.js.map → test-webserver-CKROHFBQ.js.map} +0 -0
- /package/dist/{vscode-LH3VSQ2W.js.map → vscode-6TOLFCI2.js.map} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -269,14 +269,17 @@ declare const IloomSettingsSchema: z.ZodObject<{
|
|
|
269
269
|
model: z.ZodOptional<z.ZodEnum<["sonnet", "opus", "haiku"]>>;
|
|
270
270
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
271
271
|
providers: z.ZodOptional<z.ZodRecord<z.ZodEnum<["claude", "gemini", "codex"]>, z.ZodString>>;
|
|
272
|
+
review: z.ZodOptional<z.ZodBoolean>;
|
|
272
273
|
}, "strip", z.ZodTypeAny, {
|
|
273
274
|
model?: "opus" | "sonnet" | "haiku" | undefined;
|
|
274
275
|
enabled?: boolean | undefined;
|
|
275
276
|
providers?: Partial<Record<"claude" | "gemini" | "codex", string>> | undefined;
|
|
277
|
+
review?: boolean | undefined;
|
|
276
278
|
}, {
|
|
277
279
|
model?: "opus" | "sonnet" | "haiku" | undefined;
|
|
278
280
|
enabled?: boolean | undefined;
|
|
279
281
|
providers?: Partial<Record<"claude" | "gemini" | "codex", string>> | undefined;
|
|
282
|
+
review?: boolean | undefined;
|
|
280
283
|
}>>>>;
|
|
281
284
|
spin: z.ZodOptional<z.ZodObject<{
|
|
282
285
|
model: z.ZodDefault<z.ZodEnum<["sonnet", "opus", "haiku"]>>;
|
|
@@ -406,12 +409,15 @@ declare const IloomSettingsSchema: z.ZodObject<{
|
|
|
406
409
|
mergeBehavior: z.ZodOptional<z.ZodObject<{
|
|
407
410
|
mode: z.ZodDefault<z.ZodEnum<["local", "github-pr", "github-draft-pr"]>>;
|
|
408
411
|
remote: z.ZodOptional<z.ZodString>;
|
|
412
|
+
autoCommitPush: z.ZodOptional<z.ZodBoolean>;
|
|
409
413
|
}, "strip", z.ZodTypeAny, {
|
|
410
414
|
mode: "local" | "github-pr" | "github-draft-pr";
|
|
411
415
|
remote?: string | undefined;
|
|
416
|
+
autoCommitPush?: boolean | undefined;
|
|
412
417
|
}, {
|
|
413
418
|
remote?: string | undefined;
|
|
414
419
|
mode?: "local" | "github-pr" | "github-draft-pr" | undefined;
|
|
420
|
+
autoCommitPush?: boolean | undefined;
|
|
415
421
|
}>>;
|
|
416
422
|
ide: z.ZodOptional<z.ZodObject<{
|
|
417
423
|
type: z.ZodDefault<z.ZodEnum<["vscode", "cursor", "webstorm", "sublime", "intellij", "windsurf", "antigravity"]>>;
|
|
@@ -485,6 +491,7 @@ declare const IloomSettingsSchema: z.ZodObject<{
|
|
|
485
491
|
model?: "opus" | "sonnet" | "haiku" | undefined;
|
|
486
492
|
enabled?: boolean | undefined;
|
|
487
493
|
providers?: Partial<Record<"claude" | "gemini" | "codex", string>> | undefined;
|
|
494
|
+
review?: boolean | undefined;
|
|
488
495
|
}> | null | undefined;
|
|
489
496
|
spin?: {
|
|
490
497
|
model: "opus" | "sonnet" | "haiku";
|
|
@@ -512,6 +519,7 @@ declare const IloomSettingsSchema: z.ZodObject<{
|
|
|
512
519
|
mergeBehavior?: {
|
|
513
520
|
mode: "local" | "github-pr" | "github-draft-pr";
|
|
514
521
|
remote?: string | undefined;
|
|
522
|
+
autoCommitPush?: boolean | undefined;
|
|
515
523
|
} | undefined;
|
|
516
524
|
ide?: {
|
|
517
525
|
type: "vscode" | "cursor" | "webstorm" | "sublime" | "intellij" | "windsurf" | "antigravity";
|
|
@@ -573,6 +581,7 @@ declare const IloomSettingsSchema: z.ZodObject<{
|
|
|
573
581
|
model?: "opus" | "sonnet" | "haiku" | undefined;
|
|
574
582
|
enabled?: boolean | undefined;
|
|
575
583
|
providers?: Partial<Record<"claude" | "gemini" | "codex", string>> | undefined;
|
|
584
|
+
review?: boolean | undefined;
|
|
576
585
|
}> | null | undefined;
|
|
577
586
|
spin?: {
|
|
578
587
|
model?: "opus" | "sonnet" | "haiku" | undefined;
|
|
@@ -600,6 +609,7 @@ declare const IloomSettingsSchema: z.ZodObject<{
|
|
|
600
609
|
mergeBehavior?: {
|
|
601
610
|
remote?: string | undefined;
|
|
602
611
|
mode?: "local" | "github-pr" | "github-draft-pr" | undefined;
|
|
612
|
+
autoCommitPush?: boolean | undefined;
|
|
603
613
|
} | undefined;
|
|
604
614
|
ide?: {
|
|
605
615
|
type?: "vscode" | "cursor" | "webstorm" | "sublime" | "intellij" | "windsurf" | "antigravity" | undefined;
|
|
@@ -916,7 +926,7 @@ interface CleanupResult {
|
|
|
916
926
|
*/
|
|
917
927
|
interface OperationResult {
|
|
918
928
|
/** Type of operation performed */
|
|
919
|
-
type: 'dev-server' | 'worktree' | 'branch' | 'database' | 'cli-symlinks';
|
|
929
|
+
type: 'dev-server' | 'worktree' | 'branch' | 'database' | 'cli-symlinks' | 'recap' | 'metadata';
|
|
920
930
|
/** Whether operation succeeded */
|
|
921
931
|
success: boolean;
|
|
922
932
|
/** Human-readable message */
|
|
@@ -1616,8 +1626,11 @@ interface TemplateVariables {
|
|
|
1616
1626
|
COMPACT_SUMMARIES?: string;
|
|
1617
1627
|
RECAP_DATA?: string;
|
|
1618
1628
|
DRAFT_PR_NUMBER?: number;
|
|
1629
|
+
DRAFT_PR_URL?: string;
|
|
1619
1630
|
DRAFT_PR_MODE?: boolean;
|
|
1631
|
+
AUTO_COMMIT_PUSH?: boolean;
|
|
1620
1632
|
STANDARD_ISSUE_MODE?: boolean;
|
|
1633
|
+
STANDARD_BRANCH_MODE?: boolean;
|
|
1621
1634
|
IS_VSCODE_MODE?: boolean;
|
|
1622
1635
|
HAS_PACKAGE_JSON?: boolean;
|
|
1623
1636
|
NO_PACKAGE_JSON?: boolean;
|
|
@@ -1628,6 +1641,19 @@ interface TemplateVariables {
|
|
|
1628
1641
|
HAS_REVIEW_CLAUDE?: boolean;
|
|
1629
1642
|
HAS_REVIEW_GEMINI?: boolean;
|
|
1630
1643
|
HAS_REVIEW_CODEX?: boolean;
|
|
1644
|
+
ARTIFACT_REVIEW_ENABLED?: boolean;
|
|
1645
|
+
ARTIFACT_REVIEW_CLAUDE_MODEL?: string;
|
|
1646
|
+
ARTIFACT_REVIEW_GEMINI_MODEL?: string;
|
|
1647
|
+
ARTIFACT_REVIEW_CODEX_MODEL?: string;
|
|
1648
|
+
HAS_ARTIFACT_REVIEW_CLAUDE?: boolean;
|
|
1649
|
+
HAS_ARTIFACT_REVIEW_GEMINI?: boolean;
|
|
1650
|
+
HAS_ARTIFACT_REVIEW_CODEX?: boolean;
|
|
1651
|
+
ENHANCER_REVIEW_ENABLED?: boolean;
|
|
1652
|
+
ANALYZER_REVIEW_ENABLED?: boolean;
|
|
1653
|
+
PLANNER_REVIEW_ENABLED?: boolean;
|
|
1654
|
+
ANALYZE_AND_PLAN_REVIEW_ENABLED?: boolean;
|
|
1655
|
+
IMPLEMENTER_REVIEW_ENABLED?: boolean;
|
|
1656
|
+
COMPLEXITY_REVIEW_ENABLED?: boolean;
|
|
1631
1657
|
EXISTING_ISSUE_MODE?: boolean;
|
|
1632
1658
|
FRESH_PLANNING_MODE?: boolean;
|
|
1633
1659
|
PARENT_ISSUE_NUMBER?: string | undefined;
|
|
@@ -1644,6 +1670,7 @@ interface TemplateVariables {
|
|
|
1644
1670
|
USE_GEMINI_REVIEWER?: boolean;
|
|
1645
1671
|
USE_CODEX_REVIEWER?: boolean;
|
|
1646
1672
|
HAS_REVIEWER?: boolean;
|
|
1673
|
+
GIT_REMOTE?: string;
|
|
1647
1674
|
}
|
|
1648
1675
|
declare class PromptTemplateManager {
|
|
1649
1676
|
private templateDir;
|
|
@@ -2030,6 +2057,14 @@ declare function ensureRepositoryHasCommits(path?: string): Promise<void>;
|
|
|
2030
2057
|
declare function pushBranchToRemote(branchName: string, worktreePath: string, options?: {
|
|
2031
2058
|
dryRun?: boolean;
|
|
2032
2059
|
}): Promise<void>;
|
|
2060
|
+
/**
|
|
2061
|
+
* Fetch from origin to ensure we have latest refs
|
|
2062
|
+
* Used before branching and rebasing operations to stay current with remote
|
|
2063
|
+
*
|
|
2064
|
+
* @param cwd - Working directory to run git command in
|
|
2065
|
+
* @throws Error if fetch fails (network issues, access denied, etc.)
|
|
2066
|
+
*/
|
|
2067
|
+
declare function fetchOrigin(cwd: string): Promise<void>;
|
|
2033
2068
|
/**
|
|
2034
2069
|
* Check if a file is tracked by git
|
|
2035
2070
|
* Uses git ls-files to check if file is in the index
|
|
@@ -2350,4 +2385,4 @@ declare class TableFormatter {
|
|
|
2350
2385
|
static previewFormatting(headers: string[], options?: TableFormatterOptions): string;
|
|
2351
2386
|
}
|
|
2352
2387
|
|
|
2353
|
-
export { type AddIssueOptions, type AddIssueResult, type BatchCleanupResult, type BranchCleanupTarget, type BranchDeleteOptions, type BranchGenerationOptions, type BranchNameStrategy, type Capability, type ClaudeContext, ClaudeContextManager, type CleanupOptions, type CleanupResult, type ColorData, type CommitOptions, type Config, type CreateLoomInput, type DatabaseDeletionResult, DatabaseManager, type DatabaseProvider, type EnhanceOptions, type EnhanceResult, type EnvFileOptions, type EnvOperationResult, type EnvVariable, EnvironmentManager, type FeedbackOptions, type FinishOptions, type FinishResult, GitCommandError, GitHubService, type GitStatus, type GitWorktree, GitWorktreeManager, type InstallationMethod, type Issue, type IssueTracker, IssueTrackerFactory, type IssueTrackerInputDetection, type IssueTrackerProviderType, type LaunchMode, LinearMarkupConverter, type ListOptions, type Logger, type LoggerOptions, type Loom, type LoomSummary, type MergeOptions, type MergeResult, type MockOptions, type OneShotMode, type OperationResult, PLACEHOLDER_COMMIT_PREFIX, type PRWorktreePattern, type Platform, type PortAssignmentOptions, type ProcessInfo, type ProjectCapability, type PullRequest, type RemoteBranchStatus, type ResourceCleanupOptions, type RgbColor, type SafetyCheck, type StartOptions, type StartResult, type SummaryResult, TableFormatter, type TableFormatterOptions, type TableGenerationOptions, type UpdateCheckCache, type UpdateCheckResult, UserAbortedCommitError, type ValidationOptions, type ValidationResult, type ValidationStepResult, type Workspace, type WorkspaceInput, WorkspaceManager, type WorkspaceSummary, type Worktree, type WorktreeCleanupOptions, type WorktreeCreateOptions, type WorktreeListOptions, type WorktreeOperationResult, type WorktreeStatus, type WorktreeValidation, branchExists, checkRemoteBranchStatus, createLogger, createStderrLogger, ensureRepositoryHasCommits, executeGitCommand, extractIssueNumber, extractPRNumber, findAllBranchesForIssue, findMainWorktreePath, findMainWorktreePathWithSettings, findPlaceholderCommitSha, findWorktreeForBranch, generateWorktreePath, getCurrentBranch, getDefaultBranch, getMergeTargetBranch, getRepoRoot, getThemeMode, getWorktreeRoot, hasUncommittedChanges, isBranchMergedIntoMain, isEmptyRepository, isFileGitignored, isFileTrackedByGit, isPRBranch, isPlaceholderCommit, isRemoteBranchUpToDate, isValidGitRepo, isWorktreePath, logger, parseWorktreeList, pushBranchToRemote, removePlaceholderCommitFromHead, removePlaceholderCommitFromHistory, setThemeMode };
|
|
2388
|
+
export { type AddIssueOptions, type AddIssueResult, type BatchCleanupResult, type BranchCleanupTarget, type BranchDeleteOptions, type BranchGenerationOptions, type BranchNameStrategy, type Capability, type ClaudeContext, ClaudeContextManager, type CleanupOptions, type CleanupResult, type ColorData, type CommitOptions, type Config, type CreateLoomInput, type DatabaseDeletionResult, DatabaseManager, type DatabaseProvider, type EnhanceOptions, type EnhanceResult, type EnvFileOptions, type EnvOperationResult, type EnvVariable, EnvironmentManager, type FeedbackOptions, type FinishOptions, type FinishResult, GitCommandError, GitHubService, type GitStatus, type GitWorktree, GitWorktreeManager, type InstallationMethod, type Issue, type IssueTracker, IssueTrackerFactory, type IssueTrackerInputDetection, type IssueTrackerProviderType, type LaunchMode, LinearMarkupConverter, type ListOptions, type Logger, type LoggerOptions, type Loom, type LoomSummary, type MergeOptions, type MergeResult, type MockOptions, type OneShotMode, type OperationResult, PLACEHOLDER_COMMIT_PREFIX, type PRWorktreePattern, type Platform, type PortAssignmentOptions, type ProcessInfo, type ProjectCapability, type PullRequest, type RemoteBranchStatus, type ResourceCleanupOptions, type RgbColor, type SafetyCheck, type StartOptions, type StartResult, type SummaryResult, TableFormatter, type TableFormatterOptions, type TableGenerationOptions, type UpdateCheckCache, type UpdateCheckResult, UserAbortedCommitError, type ValidationOptions, type ValidationResult, type ValidationStepResult, type Workspace, type WorkspaceInput, WorkspaceManager, type WorkspaceSummary, type Worktree, type WorktreeCleanupOptions, type WorktreeCreateOptions, type WorktreeListOptions, type WorktreeOperationResult, type WorktreeStatus, type WorktreeValidation, branchExists, checkRemoteBranchStatus, createLogger, createStderrLogger, ensureRepositoryHasCommits, executeGitCommand, extractIssueNumber, extractPRNumber, fetchOrigin, findAllBranchesForIssue, findMainWorktreePath, findMainWorktreePathWithSettings, findPlaceholderCommitSha, findWorktreeForBranch, generateWorktreePath, getCurrentBranch, getDefaultBranch, getMergeTargetBranch, getRepoRoot, getThemeMode, getWorktreeRoot, hasUncommittedChanges, isBranchMergedIntoMain, isEmptyRepository, isFileGitignored, isFileTrackedByGit, isPRBranch, isPlaceholderCommit, isRemoteBranchUpToDate, isValidGitRepo, isWorktreePath, logger, parseWorktreeList, pushBranchToRemote, removePlaceholderCommitFromHead, removePlaceholderCommitFromHistory, setThemeMode };
|
package/dist/index.js
CHANGED
|
@@ -507,7 +507,8 @@ var init_SettingsManager = __esm({
|
|
|
507
507
|
providers: z.record(
|
|
508
508
|
z.enum(["claude", "gemini", "codex"]),
|
|
509
509
|
z.string()
|
|
510
|
-
).optional().describe('Map of review providers to model names. Keys: claude, gemini, codex. Values: model name strings (e.g., "sonnet", "gemini-3-pro-preview", "gpt-5.2-codex")')
|
|
510
|
+
).optional().describe('Map of review providers to model names. Keys: claude, gemini, codex. Values: model name strings (e.g., "sonnet", "gemini-3-pro-preview", "gpt-5.2-codex")'),
|
|
511
|
+
review: z.boolean().optional().describe("Whether artifacts from this agent should be reviewed before posting (defaults to false)")
|
|
511
512
|
});
|
|
512
513
|
SpinAgentSettingsSchema = z.object({
|
|
513
514
|
model: z.enum(["sonnet", "opus", "haiku"]).default("opus").describe("Claude model shorthand for spin orchestrator")
|
|
@@ -605,7 +606,7 @@ var init_SettingsManager = __esm({
|
|
|
605
606
|
copyGitIgnoredPatterns: z.array(z.string().min(1, "Pattern cannot be empty")).optional().describe(`Glob patterns for gitignored files to copy to looms (e.g., ["*.db", "data/*.sqlite"]). Great for local dbs and large test data files that are too big to commit to git. Note: .env (dotenv-flow) files, iloom's and claude's local settings are automatically copied and do not need to be specified here.`),
|
|
606
607
|
workflows: WorkflowsSettingsSchema.describe("Per-workflow-type permission configurations"),
|
|
607
608
|
agents: z.record(z.string(), AgentSettingsSchema).optional().nullable().describe(
|
|
608
|
-
"Per-agent configuration overrides. Available agents: iloom-issue-analyzer (analyzes issues), iloom-issue-planner (creates implementation plans), iloom-issue-analyze-and-plan (combined analysis and planning), iloom-issue-complexity-evaluator (evaluates complexity), iloom-issue-enhancer (enhances issue descriptions), iloom-issue-implementer (implements code changes), iloom-code-reviewer (reviews code changes against requirements)"
|
|
609
|
+
"Per-agent configuration overrides. Available agents: iloom-issue-analyzer (analyzes issues), iloom-issue-planner (creates implementation plans), iloom-issue-analyze-and-plan (combined analysis and planning), iloom-issue-complexity-evaluator (evaluates complexity), iloom-issue-enhancer (enhances issue descriptions), iloom-issue-implementer (implements code changes), iloom-code-reviewer (reviews code changes against requirements), iloom-artifact-reviewer (reviews artifacts before posting)"
|
|
609
610
|
),
|
|
610
611
|
spin: SpinAgentSettingsSchema.optional().describe(
|
|
611
612
|
"Spin orchestrator configuration. Model defaults to opus when not configured."
|
|
@@ -619,6 +620,7 @@ var init_SettingsManager = __esm({
|
|
|
619
620
|
capabilities: CapabilitiesSettingsSchema.describe("Project capability configurations"),
|
|
620
621
|
databaseProviders: DatabaseProvidersSettingsSchema.describe("Database provider configurations"),
|
|
621
622
|
issueManagement: z.object({
|
|
623
|
+
// SYNC: If this default changes, update displayDefaultsBox() in src/utils/first-run-setup.ts
|
|
622
624
|
provider: z.enum(["github", "linear"]).optional().default("github").describe("Issue tracker provider (github, linear)"),
|
|
623
625
|
github: z.object({
|
|
624
626
|
remote: z.string().min(1, "Remote name cannot be empty").describe("Git remote name to use for GitHub operations")
|
|
@@ -630,10 +632,15 @@ var init_SettingsManager = __esm({
|
|
|
630
632
|
}).optional()
|
|
631
633
|
}).optional().describe("Issue management configuration"),
|
|
632
634
|
mergeBehavior: z.object({
|
|
635
|
+
// SYNC: If this default changes, update displayDefaultsBox() in src/utils/first-run-setup.ts
|
|
633
636
|
mode: z.enum(["local", "github-pr", "github-draft-pr"]).default("local"),
|
|
634
|
-
remote: z.string().optional()
|
|
637
|
+
remote: z.string().optional(),
|
|
638
|
+
autoCommitPush: z.boolean().optional().describe(
|
|
639
|
+
"Auto-commit and push after code review in draft PR mode. Defaults to true when mode is github-draft-pr."
|
|
640
|
+
)
|
|
635
641
|
}).optional().describe("Merge behavior configuration: local (merge locally), github-pr (create PR), or github-draft-pr (create draft PR at start, mark ready on finish)"),
|
|
636
642
|
ide: z.object({
|
|
643
|
+
// SYNC: If this default changes, update displayDefaultsBox() in src/utils/first-run-setup.ts
|
|
637
644
|
type: z.enum(["vscode", "cursor", "webstorm", "sublime", "intellij", "windsurf", "antigravity"]).default("vscode").describe(
|
|
638
645
|
"IDE to launch when starting a loom. Options: vscode (Visual Studio Code), cursor (Cursor AI editor), webstorm (JetBrains WebStorm), sublime (Sublime Text), intellij (JetBrains IntelliJ IDEA), windsurf (Windsurf editor), antigravity (Antigravity IDE)."
|
|
639
646
|
)
|
|
@@ -680,7 +687,7 @@ var init_SettingsManager = __esm({
|
|
|
680
687
|
copyGitIgnoredPatterns: z.array(z.string().min(1, "Pattern cannot be empty")).optional().describe(`Glob patterns for gitignored files to copy to looms (e.g., ["*.db", "data/*.sqlite"]). Great for local dbs and large test data files that are too big to commit to git. Note: .env (dotenv-flow) files, iloom's and claude's local settings are automatically copied and do not need to be specified here.`),
|
|
681
688
|
workflows: WorkflowsSettingsSchemaNoDefaults.describe("Per-workflow-type permission configurations"),
|
|
682
689
|
agents: z.record(z.string(), AgentSettingsSchema).optional().nullable().describe(
|
|
683
|
-
"Per-agent configuration overrides. Available agents: iloom-issue-analyzer (analyzes issues), iloom-issue-planner (creates implementation plans), iloom-issue-analyze-and-plan (combined analysis and planning), iloom-issue-complexity-evaluator (evaluates complexity), iloom-issue-enhancer (enhances issue descriptions), iloom-issue-implementer (implements code changes), iloom-code-reviewer (reviews code changes against requirements)"
|
|
690
|
+
"Per-agent configuration overrides. Available agents: iloom-issue-analyzer (analyzes issues), iloom-issue-planner (creates implementation plans), iloom-issue-analyze-and-plan (combined analysis and planning), iloom-issue-complexity-evaluator (evaluates complexity), iloom-issue-enhancer (enhances issue descriptions), iloom-issue-implementer (implements code changes), iloom-code-reviewer (reviews code changes against requirements), iloom-artifact-reviewer (reviews artifacts before posting)"
|
|
684
691
|
),
|
|
685
692
|
spin: z.object({
|
|
686
693
|
model: z.enum(["sonnet", "opus", "haiku"]).optional()
|
|
@@ -708,7 +715,10 @@ var init_SettingsManager = __esm({
|
|
|
708
715
|
}).optional().describe("Issue management configuration"),
|
|
709
716
|
mergeBehavior: z.object({
|
|
710
717
|
mode: z.enum(["local", "github-pr", "github-draft-pr"]).optional(),
|
|
711
|
-
remote: z.string().optional()
|
|
718
|
+
remote: z.string().optional(),
|
|
719
|
+
autoCommitPush: z.boolean().optional().describe(
|
|
720
|
+
"Auto-commit and push after code review in draft PR mode. Defaults to true when mode is github-draft-pr."
|
|
721
|
+
)
|
|
712
722
|
}).optional().describe("Merge behavior configuration: local (merge locally), github-pr (create PR), or github-draft-pr (create draft PR at start, mark ready on finish)"),
|
|
713
723
|
ide: z.object({
|
|
714
724
|
type: z.enum(["vscode", "cursor", "webstorm", "sublime", "intellij", "windsurf", "antigravity"]).optional().describe(
|
|
@@ -1987,6 +1997,22 @@ async function pushBranchToRemote(branchName, worktreePath, options) {
|
|
|
1987
1997
|
throw new Error(`Failed to push to remote: ${errorMessage}`);
|
|
1988
1998
|
}
|
|
1989
1999
|
}
|
|
2000
|
+
async function fetchOrigin(cwd) {
|
|
2001
|
+
try {
|
|
2002
|
+
await executeGitCommand(["fetch", "origin"], {
|
|
2003
|
+
cwd,
|
|
2004
|
+
timeout: 6e4
|
|
2005
|
+
// 60 second timeout for fetch operations
|
|
2006
|
+
});
|
|
2007
|
+
} catch (error) {
|
|
2008
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
2009
|
+
throw new Error(
|
|
2010
|
+
`Failed to fetch from origin: ${errorMessage}
|
|
2011
|
+
|
|
2012
|
+
Check your network connection and repository access.`
|
|
2013
|
+
);
|
|
2014
|
+
}
|
|
2015
|
+
}
|
|
1990
2016
|
async function isFileTrackedByGit(filePath, cwd = process.cwd()) {
|
|
1991
2017
|
try {
|
|
1992
2018
|
const result = await executeGitCommand(
|
|
@@ -2261,7 +2287,7 @@ var GitWorktreeManager = class {
|
|
|
2261
2287
|
} else if (options.baseBranch) {
|
|
2262
2288
|
args.push(options.baseBranch);
|
|
2263
2289
|
}
|
|
2264
|
-
await executeGitCommand(args, { cwd: this._workingDirectory });
|
|
2290
|
+
await executeGitCommand(args, { cwd: this._workingDirectory, timeout: 3e5 });
|
|
2265
2291
|
return absolutePath;
|
|
2266
2292
|
}
|
|
2267
2293
|
/**
|
|
@@ -3911,13 +3937,16 @@ function parseJsonStreamOutput(output) {
|
|
|
3911
3937
|
}
|
|
3912
3938
|
}
|
|
3913
3939
|
async function launchClaude(prompt, options = {}) {
|
|
3914
|
-
const { model, permissionMode, addDir, headless = false, appendSystemPrompt, mcpConfig, allowedTools, disallowedTools, agents, sessionId, noSessionPersistence } = options;
|
|
3940
|
+
const { model, permissionMode, addDir, headless = false, appendSystemPrompt, mcpConfig, allowedTools, disallowedTools, agents, sessionId, noSessionPersistence, outputFormat, verbose, jsonMode } = options;
|
|
3915
3941
|
const log = getLogger();
|
|
3916
3942
|
const args = [];
|
|
3917
3943
|
if (headless) {
|
|
3918
3944
|
args.push("-p");
|
|
3919
|
-
|
|
3920
|
-
args.push("--
|
|
3945
|
+
const effectiveOutputFormat = outputFormat ?? "stream-json";
|
|
3946
|
+
args.push("--output-format", effectiveOutputFormat);
|
|
3947
|
+
if (verbose !== false) {
|
|
3948
|
+
args.push("--verbose");
|
|
3949
|
+
}
|
|
3921
3950
|
}
|
|
3922
3951
|
if (model) {
|
|
3923
3952
|
args.push("--model", model);
|
|
@@ -3975,7 +4004,10 @@ async function launchClaude(prompt, options = {}) {
|
|
|
3975
4004
|
subprocess.stdout.on("data", (chunk) => {
|
|
3976
4005
|
const text = chunk.toString();
|
|
3977
4006
|
outputBuffer += text;
|
|
3978
|
-
if (
|
|
4007
|
+
if (jsonMode === "stream") {
|
|
4008
|
+
process.stdout.write(text);
|
|
4009
|
+
} else if (jsonMode === "json") {
|
|
4010
|
+
} else if (isDebugMode) {
|
|
3979
4011
|
log.stdout.write(text);
|
|
3980
4012
|
} else {
|
|
3981
4013
|
if (isFirstProgress) {
|
|
@@ -3990,7 +4022,7 @@ async function launchClaude(prompt, options = {}) {
|
|
|
3990
4022
|
const result = await subprocess;
|
|
3991
4023
|
if (isStreaming) {
|
|
3992
4024
|
const rawOutput = outputBuffer.trim();
|
|
3993
|
-
if (!isDebugMode) {
|
|
4025
|
+
if (!isDebugMode && !jsonMode) {
|
|
3994
4026
|
log.stdout.write("\n");
|
|
3995
4027
|
}
|
|
3996
4028
|
return isJsonStreamFormat ? parseJsonStreamOutput(rawOutput) : rawOutput;
|
|
@@ -4075,7 +4107,10 @@ async function launchClaude(prompt, options = {}) {
|
|
|
4075
4107
|
subprocess.stdout.on("data", (chunk) => {
|
|
4076
4108
|
const text = chunk.toString();
|
|
4077
4109
|
outputBuffer += text;
|
|
4078
|
-
if (
|
|
4110
|
+
if (jsonMode === "stream") {
|
|
4111
|
+
process.stdout.write(text);
|
|
4112
|
+
} else if (jsonMode === "json") {
|
|
4113
|
+
} else if (isDebugMode) {
|
|
4079
4114
|
log.stdout.write(text);
|
|
4080
4115
|
} else {
|
|
4081
4116
|
if (isFirstProgress) {
|
|
@@ -4090,7 +4125,7 @@ async function launchClaude(prompt, options = {}) {
|
|
|
4090
4125
|
const result = await subprocess;
|
|
4091
4126
|
if (isStreaming) {
|
|
4092
4127
|
const rawOutput = outputBuffer.trim();
|
|
4093
|
-
if (!isDebugMode) {
|
|
4128
|
+
if (!isDebugMode && !jsonMode) {
|
|
4094
4129
|
log.stdout.write("\n");
|
|
4095
4130
|
}
|
|
4096
4131
|
return isJsonStreamFormat ? parseJsonStreamOutput(rawOutput) : rawOutput;
|
|
@@ -4725,6 +4760,7 @@ export {
|
|
|
4725
4760
|
executeGitCommand,
|
|
4726
4761
|
extractIssueNumber,
|
|
4727
4762
|
extractPRNumber,
|
|
4763
|
+
fetchOrigin,
|
|
4728
4764
|
findAllBranchesForIssue,
|
|
4729
4765
|
findMainWorktreePath,
|
|
4730
4766
|
findMainWorktreePathWithSettings,
|