@iloom/cli 0.1.19 → 0.3.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/README.md +290 -30
- package/dist/BranchNamingService-3OQPRSWT.js +13 -0
- package/dist/ClaudeContextManager-MUQSDY2E.js +13 -0
- package/dist/ClaudeService-HG4VQ7AW.js +12 -0
- package/dist/GitHubService-EBOETDIW.js +11 -0
- package/dist/{LoomLauncher-UMMLPIZO.js → LoomLauncher-FLEMBCSQ.js} +64 -33
- package/dist/LoomLauncher-FLEMBCSQ.js.map +1 -0
- package/dist/ProjectCapabilityDetector-34LU7JJ4.js +9 -0
- package/dist/{PromptTemplateManager-WII75TKH.js → PromptTemplateManager-A52RUAMS.js} +2 -2
- package/dist/README.md +290 -30
- package/dist/{SettingsManager-SKLUVE3K.js → SettingsManager-WHHFGSL7.js} +12 -4
- package/dist/SettingsMigrationManager-AGIIIPDQ.js +10 -0
- package/dist/agents/iloom-issue-analyze-and-plan.md +125 -35
- package/dist/agents/iloom-issue-analyzer.md +284 -32
- package/dist/agents/iloom-issue-complexity-evaluator.md +40 -21
- package/dist/agents/iloom-issue-enhancer.md +69 -48
- package/dist/agents/iloom-issue-implementer.md +36 -25
- package/dist/agents/iloom-issue-planner.md +35 -24
- package/dist/agents/iloom-issue-reviewer.md +62 -9
- package/dist/chunk-3KATJIKO.js +55 -0
- package/dist/chunk-3KATJIKO.js.map +1 -0
- package/dist/{chunk-JXQXSC45.js → chunk-3RUPPQRG.js} +1 -18
- package/dist/chunk-3RUPPQRG.js.map +1 -0
- package/dist/{chunk-PR7FKQBG.js → chunk-47KSHUCR.js} +3 -3
- package/dist/chunk-47KSHUCR.js.map +1 -0
- package/dist/{chunk-IO4WFTL2.js → chunk-4HHRTA7Q.js} +3 -3
- package/dist/{chunk-IO4WFTL2.js.map → chunk-4HHRTA7Q.js.map} +1 -1
- package/dist/chunk-5EF7Z346.js +1987 -0
- package/dist/chunk-5EF7Z346.js.map +1 -0
- package/dist/{chunk-VVH3ANF2.js → chunk-AWOFAD5O.js} +12 -12
- package/dist/chunk-AWOFAD5O.js.map +1 -0
- package/dist/{chunk-DEPYQRRB.js → chunk-C5QCTEQK.js} +2 -2
- package/dist/{chunk-CWR2SANQ.js → chunk-EBISESAP.js} +1 -1
- package/dist/{chunk-ELFT36PV.js → chunk-FIAT22G7.js} +4 -16
- package/dist/chunk-FIAT22G7.js.map +1 -0
- package/dist/{chunk-ZWXJBSUW.js → chunk-G2IEYOLQ.js} +11 -38
- package/dist/chunk-G2IEYOLQ.js.map +1 -0
- package/dist/{chunk-ZMNQBJUI.js → chunk-IP7SMKIF.js} +61 -22
- package/dist/chunk-IP7SMKIF.js.map +1 -0
- package/dist/{chunk-JNKJ7NJV.js → chunk-JKXJ7BGL.js} +6 -2
- package/dist/{chunk-JNKJ7NJV.js.map → chunk-JKXJ7BGL.js.map} +1 -1
- package/dist/{chunk-LAPY6NAE.js → chunk-JQFO7QQN.js} +68 -12
- package/dist/{chunk-LAPY6NAE.js.map → chunk-JQFO7QQN.js.map} +1 -1
- package/dist/{SettingsMigrationManager-MTQIMI54.js → chunk-KLBYVHPK.js} +3 -2
- package/dist/{chunk-KOCQAD2E.js → chunk-MAVL6PJF.js} +26 -3
- package/dist/chunk-MAVL6PJF.js.map +1 -0
- package/dist/{chunk-USVVV3FP.js → chunk-MKWYLDFK.js} +5 -5
- package/dist/chunk-ML3NRPNB.js +396 -0
- package/dist/chunk-ML3NRPNB.js.map +1 -0
- package/dist/{chunk-FXV24OYZ.js → chunk-PA6Q6AWM.js} +24 -4
- package/dist/chunk-PA6Q6AWM.js.map +1 -0
- package/dist/chunk-RO26VS3W.js +444 -0
- package/dist/chunk-RO26VS3W.js.map +1 -0
- package/dist/{chunk-PV3GAXQO.js → chunk-VAYCCUXW.js} +72 -2
- package/dist/{chunk-PV3GAXQO.js.map → chunk-VAYCCUXW.js.map} +1 -1
- package/dist/{chunk-SPYPLHMK.js → chunk-VU3QMIP2.js} +34 -2
- package/dist/chunk-VU3QMIP2.js.map +1 -0
- package/dist/{chunk-PVAVNJKS.js → chunk-WEN5C5DM.js} +10 -1
- package/dist/chunk-WEN5C5DM.js.map +1 -0
- package/dist/{chunk-PXZBAC2M.js → chunk-XXV3UFZL.js} +4 -4
- package/dist/{chunk-PXZBAC2M.js.map → chunk-XXV3UFZL.js.map} +1 -1
- package/dist/{chunk-RSRO7564.js → chunk-ZE74H5BR.js} +28 -3
- package/dist/chunk-ZE74H5BR.js.map +1 -0
- package/dist/{chunk-GZP4UGGM.js → chunk-ZM3CFL5L.js} +2 -2
- package/dist/{chunk-BLCTGFZN.js → chunk-ZT3YZB4K.js} +3 -4
- package/dist/chunk-ZT3YZB4K.js.map +1 -0
- package/dist/{claude-7LUVDZZ4.js → claude-GOP6PFC7.js} +2 -2
- package/dist/{cleanup-ZHROIBSQ.js → cleanup-7RWLBSLE.js} +86 -25
- package/dist/cleanup-7RWLBSLE.js.map +1 -0
- package/dist/cli.js +2513 -64
- package/dist/cli.js.map +1 -1
- package/dist/{contribute-3MQJ3XAQ.js → contribute-BS2L4FZR.js} +9 -6
- package/dist/{contribute-3MQJ3XAQ.js.map → contribute-BS2L4FZR.js.map} +1 -1
- package/dist/{feedback-ZOUCCHN4.js → feedback-N4ECWIPF.js} +15 -14
- package/dist/{feedback-ZOUCCHN4.js.map → feedback-N4ECWIPF.js.map} +1 -1
- package/dist/{git-OUYMVYJX.js → git-TDXKRTXM.js} +4 -2
- package/dist/{ignite-HICLZEYU.js → ignite-VM64QO3J.js} +32 -27
- package/dist/ignite-VM64QO3J.js.map +1 -0
- package/dist/index.d.ts +379 -45
- package/dist/index.js +1241 -448
- package/dist/index.js.map +1 -1
- package/dist/{init-UMKNHNV5.js → init-G3T64SC4.js} +104 -40
- package/dist/init-G3T64SC4.js.map +1 -0
- package/dist/mcp/issue-management-server.js +934 -0
- package/dist/mcp/issue-management-server.js.map +1 -0
- package/dist/{neon-helpers-ZVIRPKCI.js → neon-helpers-WPUACUVC.js} +3 -3
- package/dist/{open-ETZUFSE4.js → open-KXDXEKRZ.js} +39 -36
- package/dist/open-KXDXEKRZ.js.map +1 -0
- package/dist/{prompt-ANTQWHUF.js → prompt-7INJ7YRU.js} +4 -2
- package/dist/prompt-7INJ7YRU.js.map +1 -0
- package/dist/prompts/init-prompt.txt +563 -91
- package/dist/prompts/issue-prompt.txt +27 -27
- package/dist/{rebase-KBWFDZCN.js → rebase-Q7GMM7EI.js} +6 -6
- package/dist/{remote-GJEZWRCC.js → remote-VUNCQZ6J.js} +5 -2
- package/dist/remote-VUNCQZ6J.js.map +1 -0
- package/dist/{run-4SVQ3WEU.js → run-PAWJJCSX.js} +39 -36
- package/dist/run-PAWJJCSX.js.map +1 -0
- package/dist/schema/settings.schema.json +74 -0
- package/dist/{terminal-3D6TUAKJ.js → terminal-BIRBZ4AZ.js} +2 -2
- package/dist/terminal-BIRBZ4AZ.js.map +1 -0
- package/dist/{test-git-MKZATGZN.js → test-git-3WDLNQCA.js} +3 -3
- package/dist/{test-prefix-ZNLWDI3K.js → test-prefix-EVGAWAJW.js} +3 -3
- package/dist/{test-tabs-JRKY3QMM.js → test-tabs-RXDBZ6J7.js} +2 -2
- package/dist/{test-webserver-M2I3EV4J.js → test-webserver-DAHONWCS.js} +4 -4
- package/dist/test-webserver-DAHONWCS.js.map +1 -0
- package/package.json +2 -1
- package/dist/ClaudeContextManager-JKR4WGNU.js +0 -13
- package/dist/ClaudeService-55DQGB7T.js +0 -12
- package/dist/GitHubService-LWP4GKGH.js +0 -11
- package/dist/LoomLauncher-UMMLPIZO.js.map +0 -1
- package/dist/add-issue-X56V3XPB.js +0 -69
- package/dist/add-issue-X56V3XPB.js.map +0 -1
- package/dist/chunk-BLCTGFZN.js.map +0 -1
- package/dist/chunk-ELFT36PV.js.map +0 -1
- package/dist/chunk-FXV24OYZ.js.map +0 -1
- package/dist/chunk-H4E4THUZ.js +0 -55
- package/dist/chunk-H4E4THUZ.js.map +0 -1
- package/dist/chunk-H5LDRGVK.js +0 -642
- package/dist/chunk-H5LDRGVK.js.map +0 -1
- package/dist/chunk-JXQXSC45.js.map +0 -1
- package/dist/chunk-KOCQAD2E.js.map +0 -1
- package/dist/chunk-PR7FKQBG.js.map +0 -1
- package/dist/chunk-PVAVNJKS.js.map +0 -1
- package/dist/chunk-Q2KYPAH2.js +0 -545
- package/dist/chunk-Q2KYPAH2.js.map +0 -1
- package/dist/chunk-RSRO7564.js.map +0 -1
- package/dist/chunk-SPYPLHMK.js.map +0 -1
- package/dist/chunk-VCMMAFXQ.js +0 -54
- package/dist/chunk-VCMMAFXQ.js.map +0 -1
- package/dist/chunk-VVH3ANF2.js.map +0 -1
- package/dist/chunk-VYQLLHZ7.js +0 -239
- package/dist/chunk-VYQLLHZ7.js.map +0 -1
- package/dist/chunk-ZMNQBJUI.js.map +0 -1
- package/dist/chunk-ZWXJBSUW.js.map +0 -1
- package/dist/cleanup-ZHROIBSQ.js.map +0 -1
- package/dist/enhance-VGWUX474.js +0 -176
- package/dist/enhance-VGWUX474.js.map +0 -1
- package/dist/finish-QJSK6Z7J.js +0 -1355
- package/dist/finish-QJSK6Z7J.js.map +0 -1
- package/dist/ignite-HICLZEYU.js.map +0 -1
- package/dist/init-UMKNHNV5.js.map +0 -1
- package/dist/mcp/chunk-6SDFJ42P.js +0 -62
- package/dist/mcp/chunk-6SDFJ42P.js.map +0 -1
- package/dist/mcp/claude-YHHHLSXH.js +0 -249
- package/dist/mcp/claude-YHHHLSXH.js.map +0 -1
- package/dist/mcp/color-QS5BFCNN.js +0 -168
- package/dist/mcp/color-QS5BFCNN.js.map +0 -1
- package/dist/mcp/github-comment-server.js +0 -168
- package/dist/mcp/github-comment-server.js.map +0 -1
- package/dist/mcp/terminal-SDCMDVD7.js +0 -202
- package/dist/mcp/terminal-SDCMDVD7.js.map +0 -1
- package/dist/open-ETZUFSE4.js.map +0 -1
- package/dist/run-4SVQ3WEU.js.map +0 -1
- package/dist/start-CT2ZEFP2.js +0 -983
- package/dist/start-CT2ZEFP2.js.map +0 -1
- package/dist/test-webserver-M2I3EV4J.js.map +0 -1
- /package/dist/{ClaudeContextManager-JKR4WGNU.js.map → BranchNamingService-3OQPRSWT.js.map} +0 -0
- /package/dist/{ClaudeService-55DQGB7T.js.map → ClaudeContextManager-MUQSDY2E.js.map} +0 -0
- /package/dist/{GitHubService-LWP4GKGH.js.map → ClaudeService-HG4VQ7AW.js.map} +0 -0
- /package/dist/{PromptTemplateManager-WII75TKH.js.map → GitHubService-EBOETDIW.js.map} +0 -0
- /package/dist/{SettingsManager-SKLUVE3K.js.map → ProjectCapabilityDetector-34LU7JJ4.js.map} +0 -0
- /package/dist/{claude-7LUVDZZ4.js.map → PromptTemplateManager-A52RUAMS.js.map} +0 -0
- /package/dist/{git-OUYMVYJX.js.map → SettingsManager-WHHFGSL7.js.map} +0 -0
- /package/dist/{neon-helpers-ZVIRPKCI.js.map → SettingsMigrationManager-AGIIIPDQ.js.map} +0 -0
- /package/dist/{chunk-DEPYQRRB.js.map → chunk-C5QCTEQK.js.map} +0 -0
- /package/dist/{chunk-CWR2SANQ.js.map → chunk-EBISESAP.js.map} +0 -0
- /package/dist/{SettingsMigrationManager-MTQIMI54.js.map → chunk-KLBYVHPK.js.map} +0 -0
- /package/dist/{chunk-USVVV3FP.js.map → chunk-MKWYLDFK.js.map} +0 -0
- /package/dist/{chunk-GZP4UGGM.js.map → chunk-ZM3CFL5L.js.map} +0 -0
- /package/dist/{prompt-ANTQWHUF.js.map → claude-GOP6PFC7.js.map} +0 -0
- /package/dist/{remote-GJEZWRCC.js.map → git-TDXKRTXM.js.map} +0 -0
- /package/dist/{terminal-3D6TUAKJ.js.map → neon-helpers-WPUACUVC.js.map} +0 -0
- /package/dist/{rebase-KBWFDZCN.js.map → rebase-Q7GMM7EI.js.map} +0 -0
- /package/dist/{test-git-MKZATGZN.js.map → test-git-3WDLNQCA.js.map} +0 -0
- /package/dist/{test-prefix-ZNLWDI3K.js.map → test-prefix-EVGAWAJW.js.map} +0 -0
- /package/dist/{test-tabs-JRKY3QMM.js.map → test-tabs-RXDBZ6J7.js.map} +0 -0
package/README.md
CHANGED
|
@@ -10,13 +10,12 @@
|
|
|
10
10
|
</div>
|
|
11
11
|
|
|
12
12
|
<div align="center">
|
|
13
|
-
<img width="
|
|
14
|
-
<div>Scale understanding, not just output.</div>
|
|
15
|
-
|
|
13
|
+
<img width="600" alt="iloom-ai-screenshot" src="https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/assets/iloom-screenshot.png" />
|
|
14
|
+
<div>iloom in action: Scale understanding, not just output.</div>
|
|
16
15
|
</div>
|
|
17
16
|
|
|
18
17
|
#### Links to key sections
|
|
19
|
-
[How It Works](#how-it-works) • [Installation](#installation) • [Commands](#commands) • [
|
|
18
|
+
[How It Works](#how-it-works) • [Installation](#installation) • [Commands](#commands) • [Nested Looms](#child-looms-nested-looms) • [Limitations](#platform--integration-support) • [Configuration](#configuration) • [Feedback](#providing-feedback)
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
## Built For Modern Tools...
|
|
@@ -313,10 +312,22 @@ iloom start <issue-number | pr-number | issue-description | branch-name>
|
|
|
313
312
|
# default: Standard behavior with prompts
|
|
314
313
|
# noReview: Skip phase approval prompts
|
|
315
314
|
# bypassPermissions: Full automation, skip all permission prompts. Be careful!
|
|
315
|
+
# --child-loom - Force create as child loom (skip prompt, requires parent loom)
|
|
316
|
+
# --no-child-loom - Force create as independent loom (skip prompt)
|
|
316
317
|
|
|
317
318
|
iloom finish
|
|
318
319
|
# AI assisted validation, commit, merge steps, as well as loom cleanup (run this from the loom directory)
|
|
320
|
+
# Behavior depends on mergeBehavior.mode setting:
|
|
321
|
+
# local (default): Merge locally and cleanup
|
|
322
|
+
# github-pr: Push branch, create PR, prompt for cleanup
|
|
319
323
|
# Alias: dn
|
|
324
|
+
# Options:
|
|
325
|
+
# -f, --force - Skip confirmation prompts
|
|
326
|
+
# -n, --dry-run - Preview actions without executing
|
|
327
|
+
# --skip-build - Skip post-merge build verification
|
|
328
|
+
# --no-browser - Skip opening PR in browser (github-pr mode only)
|
|
329
|
+
# --cleanup - Clean up worktree after PR creation (github-pr mode only)
|
|
330
|
+
# --no-cleanup - Keep worktree after PR creation (github-pr mode only)
|
|
320
331
|
|
|
321
332
|
iloom rebase
|
|
322
333
|
# Rebase current branch on main with Claude-assisted conflict resolution (run this from a loom directory)
|
|
@@ -352,6 +363,100 @@ iloom enhance <issue-number>
|
|
|
352
363
|
# Expands requirements, asks clarifying questions and adds implementation context
|
|
353
364
|
```
|
|
354
365
|
|
|
366
|
+
## Child Looms (Nested Looms)
|
|
367
|
+
|
|
368
|
+
Child looms let you create isolated workspaces from within an existing loom. This is useful when you need to work on a subtask, bug fix, or experiment while keeping your parent work intact.
|
|
369
|
+
|
|
370
|
+
### When to Use Child Looms
|
|
371
|
+
|
|
372
|
+
- **Break down complex issues**: Large features can spawn smaller issues that become child looms
|
|
373
|
+
- **Fix bugs discovered during work**: Create a child loom to fix a bug without mixing commits
|
|
374
|
+
- **Experiment safely**: Try different approaches in child looms without affecting parent work
|
|
375
|
+
- **Handle interrupts**: Start urgent work from your current context without losing it
|
|
376
|
+
|
|
377
|
+
### How Child Looms Work
|
|
378
|
+
|
|
379
|
+
When you run `il start` from inside an existing loom, iloom detects the parent context and prompts you:
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
# Inside a loom working on issue #25
|
|
383
|
+
> il start 42
|
|
384
|
+
? Create as child loom of issue #25? (Y/n)
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
**Automatic inheritance:**
|
|
388
|
+
- **Database branch**: Child looms branch from the parent's database state, not the main branch
|
|
389
|
+
- **Base branch**: Git branch is created from the parent's branch
|
|
390
|
+
- **Main branch config**: Child's `mainBranch` setting points to parent branch (for `il finish`)
|
|
391
|
+
|
|
392
|
+
### CLI Flags
|
|
393
|
+
|
|
394
|
+
Skip the prompt with explicit flags:
|
|
395
|
+
|
|
396
|
+
```bash
|
|
397
|
+
# Force child loom creation (no prompt)
|
|
398
|
+
il start 42 --child-loom
|
|
399
|
+
|
|
400
|
+
# Force independent loom (no prompt)
|
|
401
|
+
il start 42 --no-child-loom
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
The `--child-loom` flag is ignored when not running from inside a loom.
|
|
405
|
+
|
|
406
|
+
### Directory Structure
|
|
407
|
+
|
|
408
|
+
Child looms are created in a dedicated subdirectory based on the parent branch name:
|
|
409
|
+
|
|
410
|
+
```
|
|
411
|
+
~/project-looms/
|
|
412
|
+
├── feat-issue-25-auth-refactor/ # Parent loom
|
|
413
|
+
├── feat-issue-25-auth-refactor-looms/ # Child looms directory
|
|
414
|
+
│ ├── fix-issue-42-token-validation/ # Child loom 1
|
|
415
|
+
│ └── feat-issue-43-oauth-support/ # Child loom 2
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### Finishing Child Looms
|
|
419
|
+
|
|
420
|
+
When finishing a parent loom, iloom warns about existing child looms:
|
|
421
|
+
|
|
422
|
+
```bash
|
|
423
|
+
> il finish
|
|
424
|
+
⚠ Found 2 child loom(s) that should be cleaned up first:
|
|
425
|
+
- ~/project-looms/feat-issue-25-auth-refactor-looms/fix-issue-42-token-validation
|
|
426
|
+
- ~/project-looms/feat-issue-25-auth-refactor-looms/feat-issue-43-oauth-support
|
|
427
|
+
|
|
428
|
+
To clean up child looms:
|
|
429
|
+
il cleanup 42
|
|
430
|
+
il cleanup 43
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
Child looms should typically be finished or cleaned up before finishing the parent.
|
|
434
|
+
|
|
435
|
+
### Example Workflow
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
# Start working on a feature
|
|
439
|
+
> il start 25
|
|
440
|
+
# ... working on authentication refactor
|
|
441
|
+
|
|
442
|
+
# Discover a bug that needs immediate attention
|
|
443
|
+
> il start 42
|
|
444
|
+
? Create as child loom of issue #25? Y
|
|
445
|
+
# Creates child loom with parent's database state
|
|
446
|
+
|
|
447
|
+
# Fix the bug in isolation
|
|
448
|
+
> cd ~/project-looms/feat-issue-25-auth-refactor-looms/fix-issue-42-...
|
|
449
|
+
|
|
450
|
+
# Finish the child work (merges to parent branch, not main)
|
|
451
|
+
> il finish
|
|
452
|
+
|
|
453
|
+
# Return to parent loom
|
|
454
|
+
> cd ~/project-looms/feat-issue-25-auth-refactor
|
|
455
|
+
|
|
456
|
+
# Continue feature work, then finish
|
|
457
|
+
> il finish
|
|
458
|
+
```
|
|
459
|
+
|
|
355
460
|
## Providing Feedback
|
|
356
461
|
|
|
357
462
|
Found a bug, have a feature request, or want to contribute ideas to improve iloom CLI? Submit feedback directly from your terminal.
|
|
@@ -381,19 +486,6 @@ Your feedback helps make iloom better for everyone! Issues created through `iloo
|
|
|
381
486
|
### Maintenance
|
|
382
487
|
|
|
383
488
|
```bash
|
|
384
|
-
iloom init
|
|
385
|
-
# Interactive Claude-powered configuration wizard
|
|
386
|
-
# Sets up settings.json, .gitignore, and guides you through all configuration options
|
|
387
|
-
# Automatically detects multi-remote setups and helps you configure GitHub integration
|
|
388
|
-
# Alias: il config
|
|
389
|
-
# Run this once per project
|
|
390
|
-
|
|
391
|
-
iloom contribute
|
|
392
|
-
# Set up local development environment for contributing to iloom
|
|
393
|
-
# Automatically forks the repository, clones it locally, configures upstream remote,
|
|
394
|
-
# and runs il init to complete setup
|
|
395
|
-
# Streamlines contributor onboarding with a single command
|
|
396
|
-
|
|
397
489
|
iloom update
|
|
398
490
|
# Update iloom-cli to the latest version
|
|
399
491
|
```
|
|
@@ -407,7 +499,7 @@ The recommended way to configure iloom:
|
|
|
407
499
|
```bash
|
|
408
500
|
iloom init
|
|
409
501
|
# or
|
|
410
|
-
|
|
502
|
+
iloom config
|
|
411
503
|
```
|
|
412
504
|
|
|
413
505
|
This Claude-powered assistant will guide you through all configuration options and automatically:
|
|
@@ -427,14 +519,18 @@ If you prefer manual configuration, iloom uses these files (highest to lowest pr
|
|
|
427
519
|
1. **CLI arguments** - Command-line flags (e.g., `--one-shot bypassPermissions`)
|
|
428
520
|
2. **`.iloom/settings.local.json`** - Local machine settings (gitignored, not committed)
|
|
429
521
|
3. **`.iloom/settings.json`** - Project-wide settings (committed to repository)
|
|
430
|
-
4.
|
|
522
|
+
4. **`~/.config/iloom-ai/settings.json`** - Global user settings (applies to all projects)
|
|
523
|
+
5. **Built-in defaults** - Hardcoded fallback values
|
|
431
524
|
|
|
432
|
-
This allows teams to share project defaults via `settings.json` while individual developers maintain personal overrides in `settings.local.json`.
|
|
525
|
+
This allows teams to share project defaults via `settings.json` while individual developers maintain personal overrides in `settings.local.json` or global preferences in `~/.config/iloom-ai/settings.json`.
|
|
433
526
|
|
|
434
527
|
**Example Use Cases:**
|
|
435
|
-
-
|
|
436
|
-
-
|
|
437
|
-
-
|
|
528
|
+
- **Global settings**: Default agent models or workflow permission modes that apply to all your projects
|
|
529
|
+
- **Project settings**: Team defaults like `mainBranch`, database configuration, GitHub remote
|
|
530
|
+
- **Local settings**: Machine-specific overrides like different `basePort` due to port conflicts, local database URLs, personal workflow preferences
|
|
531
|
+
|
|
532
|
+
**Global Settings:**
|
|
533
|
+
Global settings are stored in `~/.config/iloom-ai/settings.json` and apply to all iloom projects on your machine. Use these for personal preferences like default agent models or workflow permission modes. Project-specific settings (like database configuration) should remain in project config files.
|
|
438
534
|
|
|
439
535
|
**Note:** The `.iloom/settings.local.json` file is automatically created and gitignored when you run `il init`.
|
|
440
536
|
|
|
@@ -443,6 +539,11 @@ This allows teams to share project defaults via `settings.json` while individual
|
|
|
443
539
|
```jsonc
|
|
444
540
|
{
|
|
445
541
|
"mainBranch": "main",
|
|
542
|
+
"sourceEnvOnStart": false, // Source .env in terminal launches (default: false)
|
|
543
|
+
"mergeBehavior": {
|
|
544
|
+
"mode": "local", // or "github-pr" for PR-based workflows
|
|
545
|
+
"remote": "upstream" // optional, defaults to issueManagement.github.remote
|
|
546
|
+
},
|
|
446
547
|
"capabilities": {
|
|
447
548
|
"web": { "basePort": 3000 },
|
|
448
549
|
"database": { "databaseUrlEnvVarName": "DATABASE_URL" }
|
|
@@ -477,6 +578,9 @@ This allows teams to share project defaults via `settings.json` while individual
|
|
|
477
578
|
|
|
478
579
|
** Common configuration options:**
|
|
479
580
|
- `mainBranch` - Primary branch for merging (default: "main")
|
|
581
|
+
- `sourceEnvOnStart` - Source .env file when launching terminal processes (default: false)
|
|
582
|
+
- `mergeBehavior.mode` - How to finish work: "local" (merge locally) or "github-pr" (create PR) (default: "local")
|
|
583
|
+
- `mergeBehavior.remote` - Remote to target for PRs (optional, defaults to `issueManagement.github.remote`)
|
|
480
584
|
- `capabilities.web.basePort` - Base port for dev servers (default: 3000)
|
|
481
585
|
- `capabilities.database.databaseUrlEnvVarName` - Name of environment variable for database connection URL (default: "DATABASE_URL")
|
|
482
586
|
- `databaseProviders.neon.projectId` - Neon project ID (found in project URL, e.g., "fantastic-fox-3566354")
|
|
@@ -491,15 +595,149 @@ Example: Issue #25 with basePort 3000 = port 3025
|
|
|
491
595
|
|
|
492
596
|
For complete configuration reference, see [.iloom/README.md](./.iloom/README.md)
|
|
493
597
|
|
|
598
|
+
### IDE Configuration
|
|
599
|
+
|
|
600
|
+
Configure which IDE launches when starting a loom:
|
|
601
|
+
|
|
602
|
+
```jsonc
|
|
603
|
+
{
|
|
604
|
+
"ide": {
|
|
605
|
+
"type": "cursor" // or: vscode, webstorm, sublime, intellij, windsurf
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
**Supported IDEs:**
|
|
611
|
+
|
|
612
|
+
| Type | Command | Notes |
|
|
613
|
+
|------|---------|-------|
|
|
614
|
+
| `vscode` | `code` | Default. Visual Studio Code |
|
|
615
|
+
| `cursor` | `cursor` | Cursor AI editor |
|
|
616
|
+
| `webstorm` | `webstorm` | JetBrains WebStorm (launches with --nosplash) |
|
|
617
|
+
| `sublime` | `subl` | Sublime Text |
|
|
618
|
+
| `intellij` | `idea` | JetBrains IntelliJ IDEA (launches with --nosplash) |
|
|
619
|
+
| `windsurf` | `windsurf` | Windsurf editor |
|
|
620
|
+
|
|
621
|
+
**Configure via CLI:** Use the existing `--set` flag:
|
|
622
|
+
|
|
623
|
+
```bash
|
|
624
|
+
il start 25 --set ide.type=cursor
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
**Configure during setup:** Run `il init` to configure IDE preference interactively along with other settings.
|
|
628
|
+
|
|
629
|
+
**Note:** Color synchronization (title bar colors) only works with VSCode-compatible editors (vscode, cursor, windsurf). Other IDEs will launch without color theming.
|
|
630
|
+
|
|
631
|
+
## Issue Tracker Integration
|
|
632
|
+
|
|
633
|
+
iloom supports multiple issue tracking systems through a provider abstraction. Choose GitHub or Linear based on your team's workflow.
|
|
634
|
+
|
|
635
|
+
### GitHub (Default)
|
|
636
|
+
|
|
637
|
+
GitHub is the default issue tracker and requires no additional configuration beyond authentication with the `gh` CLI.
|
|
638
|
+
|
|
639
|
+
**Setup:**
|
|
640
|
+
```bash
|
|
641
|
+
# Authenticate with GitHub CLI
|
|
642
|
+
gh auth login
|
|
643
|
+
|
|
644
|
+
# Start using iloom with GitHub issues
|
|
645
|
+
il start 123
|
|
646
|
+
il start PR-456
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
**Configuration:**
|
|
650
|
+
```jsonc
|
|
651
|
+
{
|
|
652
|
+
"issueManagement": {
|
|
653
|
+
"provider": "github", // Default, can be omitted
|
|
654
|
+
"github": {
|
|
655
|
+
"remote": "origin" // Optional, defaults to "origin"
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
```
|
|
660
|
+
|
|
661
|
+
### Linear
|
|
662
|
+
|
|
663
|
+
iloom integrates with Linear through the official `@linear/sdk`, enabling full Linear issue tracking support.
|
|
664
|
+
|
|
665
|
+
**Setup:**
|
|
666
|
+
|
|
667
|
+
1. Get your Linear API token from [Linear Settings → API → Personal API Keys](https://linear.app/settings/api)
|
|
668
|
+
|
|
669
|
+
2. Configure iloom to use Linear:
|
|
670
|
+
```bash
|
|
671
|
+
il init
|
|
672
|
+
# Follow prompts to:
|
|
673
|
+
# - Select Linear as your issue tracker
|
|
674
|
+
# - Enter your Linear team ID (e.g., "ENG")
|
|
675
|
+
# - Enter your Linear API token (saved securely to settings.local.json)
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
Or manually configure:
|
|
679
|
+
|
|
680
|
+
Edit `.iloom/settings.local.json` (for sensitive data):
|
|
681
|
+
```jsonc
|
|
682
|
+
{
|
|
683
|
+
"issueManagement": {
|
|
684
|
+
"provider": "linear",
|
|
685
|
+
"linear": {
|
|
686
|
+
"teamId": "ENG", // Required: Your Linear team key
|
|
687
|
+
"apiToken": "lin_api_..." // Required: Your Linear API token
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
**Important:** The `apiToken` should be stored in `settings.local.json` (not committed to git), not in `settings.json`. The init command will automatically save it to the correct location.
|
|
694
|
+
|
|
695
|
+
Alternatively, use an environment variable:
|
|
696
|
+
```bash
|
|
697
|
+
export LINEAR_API_TOKEN="lin_api_..."
|
|
698
|
+
```
|
|
699
|
+
|
|
700
|
+
Settings take precedence over environment variables.
|
|
701
|
+
|
|
702
|
+
**Usage:**
|
|
703
|
+
|
|
704
|
+
```bash
|
|
705
|
+
# Start working on a Linear issue
|
|
706
|
+
il start ENG-123
|
|
707
|
+
|
|
708
|
+
# Create a new Linear issue
|
|
709
|
+
il start "Add user authentication"
|
|
710
|
+
|
|
711
|
+
# Finish and merge
|
|
712
|
+
il finish
|
|
713
|
+
```
|
|
714
|
+
|
|
715
|
+
**Features:**
|
|
716
|
+
|
|
717
|
+
- Full CRUD operations on issues and comments via the official Linear SDK
|
|
718
|
+
- MCP integration for Claude AI assistance with Linear issues
|
|
719
|
+
- Automatic workspace creation with Linear issue context
|
|
720
|
+
|
|
721
|
+
**Limitations:**
|
|
722
|
+
|
|
723
|
+
- Linear does not have pull requests. Use `il finish` with `mergeBehavior.mode: "local"` or `"github-pr"` to merge your code.
|
|
724
|
+
|
|
725
|
+
**Port Calculation:**
|
|
726
|
+
|
|
727
|
+
Linear issue identifiers (e.g., ENG-123) use hash-based port calculation instead of simple numeric addition. The port is deterministically generated from the branch name, ensuring consistency across sessions.
|
|
728
|
+
|
|
494
729
|
## Requirements
|
|
495
730
|
|
|
496
731
|
**Essential:**
|
|
497
732
|
- Claude CLI - AI assistance with issue context preloaded
|
|
498
733
|
- Node.js 16+
|
|
499
734
|
- Git 2.5+ (for worktree support)
|
|
500
|
-
- GitHub CLI (`gh`) - authenticated with your repository
|
|
501
735
|
|
|
502
|
-
**
|
|
736
|
+
**Issue Tracker (choose one):**
|
|
737
|
+
- **GitHub CLI (`gh`)** - For GitHub issue tracking (default)
|
|
738
|
+
- **Linear CLI (`linearis`)** - For Linear issue tracking (install with `npm install -g linearis`)
|
|
739
|
+
|
|
740
|
+
**Recommended:**
|
|
503
741
|
- A Claude Max subscription - iloom uses your own subscription
|
|
504
742
|
|
|
505
743
|
**Optional (auto-detected):**
|
|
@@ -528,6 +766,8 @@ This is an early stage product - platform/tech stack support is limited for now.
|
|
|
528
766
|
|
|
529
767
|
We (Claude and I) are actively working on expanding platform and integration support. Contributions welcome!
|
|
530
768
|
|
|
769
|
+
See all [`known-limitation`](https://github.com/iloom-ai/iloom-cli/issues?q=is%3Aissue+is%3Aopen+label%3Aknown-limitation) issues for details and to [contribute](CONTRIBUTING.md) solutions.
|
|
770
|
+
|
|
531
771
|
## Installation
|
|
532
772
|
|
|
533
773
|
```bash
|
|
@@ -724,11 +964,31 @@ Other tools increase code output with minimal process change. iloom increases **
|
|
|
724
964
|
|
|
725
965
|
## Contributing
|
|
726
966
|
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
967
|
+
We welcome contributions! Whether you're fixing a bug, adding a feature, or improving documentation, there are multiple ways to get involved.
|
|
968
|
+
|
|
969
|
+
### Quick Start for Contributors
|
|
970
|
+
|
|
971
|
+
The fastest way to get started contributing:
|
|
972
|
+
|
|
973
|
+
```bash
|
|
974
|
+
iloom contribute # requires the github CLI (gh)
|
|
975
|
+
```
|
|
976
|
+
|
|
977
|
+
This automated command handles forking, cloning, and setting up your development environment.
|
|
978
|
+
|
|
979
|
+
### Finding Your First Issue
|
|
980
|
+
|
|
981
|
+
New contributors should start with issues labeled [`starter-task`](https://github.com/iloom-ai/iloom-cli/issues?q=is%3Aissue+is%3Aopen+label%3Astarter-task) - these are designed to help you learn the iloom workflow and codebase while making meaningful contributions.
|
|
982
|
+
|
|
983
|
+
### Full Contributing Guide
|
|
984
|
+
|
|
985
|
+
For detailed information about our development process, testing requirements, and workflow, see our comprehensive [Contributing Guide](CONTRIBUTING.md).
|
|
986
|
+
|
|
987
|
+
**Key highlights:**
|
|
988
|
+
- Behavior-focused testing principles
|
|
989
|
+
- AI-assisted development workflow using iloom itself
|
|
990
|
+
- Clear PR process and code quality standards
|
|
991
|
+
- Test-Driven Development with >70% coverage requirement
|
|
732
992
|
|
|
733
993
|
## License
|
|
734
994
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
ClaudeBranchNameStrategy,
|
|
4
|
+
DefaultBranchNamingService,
|
|
5
|
+
SimpleBranchNameStrategy
|
|
6
|
+
} from "./chunk-3KATJIKO.js";
|
|
7
|
+
import "./chunk-GEHQXLEI.js";
|
|
8
|
+
export {
|
|
9
|
+
ClaudeBranchNameStrategy,
|
|
10
|
+
DefaultBranchNamingService,
|
|
11
|
+
SimpleBranchNameStrategy
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=BranchNamingService-3OQPRSWT.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
ClaudeContextManager
|
|
4
|
+
} from "./chunk-C5QCTEQK.js";
|
|
5
|
+
import "./chunk-FIAT22G7.js";
|
|
6
|
+
import "./chunk-XXV3UFZL.js";
|
|
7
|
+
import "./chunk-WEN5C5DM.js";
|
|
8
|
+
import "./chunk-ML3NRPNB.js";
|
|
9
|
+
import "./chunk-GEHQXLEI.js";
|
|
10
|
+
export {
|
|
11
|
+
ClaudeContextManager
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=ClaudeContextManager-MUQSDY2E.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
ClaudeService
|
|
4
|
+
} from "./chunk-FIAT22G7.js";
|
|
5
|
+
import "./chunk-XXV3UFZL.js";
|
|
6
|
+
import "./chunk-WEN5C5DM.js";
|
|
7
|
+
import "./chunk-ML3NRPNB.js";
|
|
8
|
+
import "./chunk-GEHQXLEI.js";
|
|
9
|
+
export {
|
|
10
|
+
ClaudeService
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=ClaudeService-HG4VQ7AW.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
GitHubService
|
|
4
|
+
} from "./chunk-G2IEYOLQ.js";
|
|
5
|
+
import "./chunk-3RUPPQRG.js";
|
|
6
|
+
import "./chunk-JKXJ7BGL.js";
|
|
7
|
+
import "./chunk-GEHQXLEI.js";
|
|
8
|
+
export {
|
|
9
|
+
GitHubService
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=GitHubService-EBOETDIW.js.map
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
getDevServerLaunchCommand
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-ZM3CFL5L.js";
|
|
5
|
+
import "./chunk-ZT3YZB4K.js";
|
|
6
6
|
import {
|
|
7
7
|
ClaudeContextManager
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-C5QCTEQK.js";
|
|
9
|
+
import "./chunk-FIAT22G7.js";
|
|
10
|
+
import "./chunk-XXV3UFZL.js";
|
|
11
|
+
import "./chunk-WEN5C5DM.js";
|
|
12
|
+
import "./chunk-ML3NRPNB.js";
|
|
9
13
|
import {
|
|
10
14
|
openMultipleTerminalWindows,
|
|
11
15
|
openTerminalWindow
|
|
12
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-ZE74H5BR.js";
|
|
13
17
|
import {
|
|
14
18
|
generateColorFromBranchName
|
|
15
19
|
} from "./chunk-ZZZWQGTS.js";
|
|
16
|
-
import "./chunk-ELFT36PV.js";
|
|
17
|
-
import "./chunk-PXZBAC2M.js";
|
|
18
|
-
import "./chunk-PVAVNJKS.js";
|
|
19
|
-
import "./chunk-VYQLLHZ7.js";
|
|
20
20
|
import {
|
|
21
21
|
logger
|
|
22
22
|
} from "./chunk-GEHQXLEI.js";
|
|
@@ -25,42 +25,71 @@ import {
|
|
|
25
25
|
import { existsSync } from "fs";
|
|
26
26
|
import { join } from "path";
|
|
27
27
|
|
|
28
|
-
// src/utils/
|
|
28
|
+
// src/utils/ide.ts
|
|
29
29
|
import { execa } from "execa";
|
|
30
|
-
|
|
30
|
+
var IDE_PRESETS = {
|
|
31
|
+
vscode: { command: "code", name: "Visual Studio Code", args: [] },
|
|
32
|
+
cursor: { command: "cursor", name: "Cursor", args: [] },
|
|
33
|
+
webstorm: { command: "webstorm", name: "WebStorm", args: ["--nosplash"] },
|
|
34
|
+
sublime: { command: "subl", name: "Sublime Text", args: [] },
|
|
35
|
+
intellij: { command: "idea", name: "IntelliJ IDEA", args: ["--nosplash"] },
|
|
36
|
+
windsurf: { command: "surf", name: "Windsurf", args: [] }
|
|
37
|
+
};
|
|
38
|
+
function getIdeConfig(ideSettings) {
|
|
39
|
+
const type = (ideSettings == null ? void 0 : ideSettings.type) ?? "vscode";
|
|
40
|
+
const preset = IDE_PRESETS[type];
|
|
41
|
+
return {
|
|
42
|
+
command: preset.command,
|
|
43
|
+
args: [...preset.args],
|
|
44
|
+
name: preset.name
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
async function isIdeAvailable(command) {
|
|
31
48
|
try {
|
|
32
|
-
await execa("command", ["-v",
|
|
33
|
-
shell: true,
|
|
34
|
-
timeout: 5e3
|
|
35
|
-
});
|
|
49
|
+
await execa("command", ["-v", command], { shell: true, timeout: 5e3 });
|
|
36
50
|
return true;
|
|
37
|
-
} catch
|
|
38
|
-
logger.debug("VSCode CLI not available", { error });
|
|
51
|
+
} catch {
|
|
39
52
|
return false;
|
|
40
53
|
}
|
|
41
54
|
}
|
|
42
|
-
|
|
43
|
-
const
|
|
55
|
+
function getInstallHint(type) {
|
|
56
|
+
const hints = {
|
|
57
|
+
vscode: `Install command-line tools: Open VSCode > Command Palette > "Shell Command: Install 'code' command in PATH"`,
|
|
58
|
+
cursor: `Install command-line tools: Open Cursor > Command Palette > "Install 'cursor' command in PATH"`,
|
|
59
|
+
webstorm: "Install via JetBrains Toolbox > Settings > Shell Scripts > Enable",
|
|
60
|
+
sublime: 'Create symlink: ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl',
|
|
61
|
+
intellij: "Install via JetBrains Toolbox > Settings > Shell Scripts > Enable",
|
|
62
|
+
windsurf: "Install command-line tools during Windsurf installation or create symlink manually"
|
|
63
|
+
};
|
|
64
|
+
return hints[type] ?? `Ensure the IDE command is available in your PATH`;
|
|
65
|
+
}
|
|
66
|
+
async function openIdeWindow(workspacePath, ideSettings) {
|
|
67
|
+
const config = getIdeConfig(ideSettings);
|
|
68
|
+
const available = await isIdeAvailable(config.command);
|
|
44
69
|
if (!available) {
|
|
70
|
+
const type = (ideSettings == null ? void 0 : ideSettings.type) ?? "vscode";
|
|
45
71
|
throw new Error(
|
|
46
|
-
|
|
47
|
-
|
|
72
|
+
`${config.name} is not available. The "${config.command}" command was not found in PATH.
|
|
73
|
+
` + getInstallHint(type)
|
|
48
74
|
);
|
|
49
75
|
}
|
|
50
76
|
try {
|
|
51
|
-
await execa(
|
|
52
|
-
logger.debug(`Opened
|
|
77
|
+
await execa(config.command, [...config.args, workspacePath]);
|
|
78
|
+
logger.debug(`Opened ${config.name} for workspace: ${workspacePath}`);
|
|
53
79
|
} catch (error) {
|
|
54
80
|
throw new Error(
|
|
55
|
-
`Failed to open
|
|
81
|
+
`Failed to open ${config.name}: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
56
82
|
);
|
|
57
83
|
}
|
|
58
84
|
}
|
|
59
85
|
|
|
60
86
|
// src/lib/LoomLauncher.ts
|
|
61
87
|
var LoomLauncher = class {
|
|
62
|
-
constructor(claudeContext) {
|
|
88
|
+
constructor(claudeContext, settings) {
|
|
63
89
|
this.claudeContext = claudeContext ?? new ClaudeContextManager();
|
|
90
|
+
if (settings !== void 0) {
|
|
91
|
+
this.settings = settings;
|
|
92
|
+
}
|
|
64
93
|
}
|
|
65
94
|
/**
|
|
66
95
|
* Launch loom components based on individual flags
|
|
@@ -114,11 +143,13 @@ var LoomLauncher = class {
|
|
|
114
143
|
logger.success("loom launched successfully");
|
|
115
144
|
}
|
|
116
145
|
/**
|
|
117
|
-
* Launch VSCode
|
|
146
|
+
* Launch IDE (VSCode or configured alternative)
|
|
118
147
|
*/
|
|
119
148
|
async launchVSCode(options) {
|
|
120
|
-
|
|
121
|
-
|
|
149
|
+
var _a;
|
|
150
|
+
const ideConfig = await ((_a = this.settings) == null ? void 0 : _a.loadSettings().then((s) => s.ide));
|
|
151
|
+
await openIdeWindow(options.worktreePath, ideConfig);
|
|
152
|
+
logger.info("IDE opened");
|
|
122
153
|
}
|
|
123
154
|
/**
|
|
124
155
|
* Launch Claude terminal
|
|
@@ -151,7 +182,7 @@ var LoomLauncher = class {
|
|
|
151
182
|
workspacePath: options.worktreePath,
|
|
152
183
|
command: devServerCommand,
|
|
153
184
|
backgroundColor: colorData.rgb,
|
|
154
|
-
includeEnvSetup: existsSync(join(options.worktreePath, ".env")),
|
|
185
|
+
includeEnvSetup: (options.sourceEnvOnStart ?? false) && existsSync(join(options.worktreePath, ".env")),
|
|
155
186
|
includePortExport: options.capabilities.includes("web"),
|
|
156
187
|
...options.port !== void 0 && { port: options.port }
|
|
157
188
|
});
|
|
@@ -165,7 +196,7 @@ var LoomLauncher = class {
|
|
|
165
196
|
await openTerminalWindow({
|
|
166
197
|
workspacePath: options.worktreePath,
|
|
167
198
|
backgroundColor: colorData.rgb,
|
|
168
|
-
includeEnvSetup: existsSync(join(options.worktreePath, ".env")),
|
|
199
|
+
includeEnvSetup: (options.sourceEnvOnStart ?? false) && existsSync(join(options.worktreePath, ".env")),
|
|
169
200
|
includePortExport: options.capabilities.includes("web"),
|
|
170
201
|
...options.port !== void 0 && { port: options.port }
|
|
171
202
|
});
|
|
@@ -193,7 +224,7 @@ var LoomLauncher = class {
|
|
|
193
224
|
command: claudeCommand,
|
|
194
225
|
backgroundColor: colorData.rgb,
|
|
195
226
|
title: claudeTitle,
|
|
196
|
-
includeEnvSetup: hasEnvFile,
|
|
227
|
+
includeEnvSetup: (options.sourceEnvOnStart ?? false) && hasEnvFile,
|
|
197
228
|
...options.port !== void 0 && { port: options.port, includePortExport: true }
|
|
198
229
|
};
|
|
199
230
|
}
|
|
@@ -214,7 +245,7 @@ var LoomLauncher = class {
|
|
|
214
245
|
command: devServerCommand,
|
|
215
246
|
backgroundColor: colorData.rgb,
|
|
216
247
|
title: devServerTitle,
|
|
217
|
-
includeEnvSetup: hasEnvFile,
|
|
248
|
+
includeEnvSetup: (options.sourceEnvOnStart ?? false) && hasEnvFile,
|
|
218
249
|
includePortExport: options.capabilities.includes("web"),
|
|
219
250
|
...options.port !== void 0 && { port: options.port }
|
|
220
251
|
};
|
|
@@ -230,7 +261,7 @@ var LoomLauncher = class {
|
|
|
230
261
|
workspacePath: options.worktreePath,
|
|
231
262
|
backgroundColor: colorData.rgb,
|
|
232
263
|
title: terminalTitle,
|
|
233
|
-
includeEnvSetup: hasEnvFile,
|
|
264
|
+
includeEnvSetup: (options.sourceEnvOnStart ?? false) && hasEnvFile,
|
|
234
265
|
includePortExport: options.capabilities.includes("web"),
|
|
235
266
|
...options.port !== void 0 && { port: options.port }
|
|
236
267
|
};
|
|
@@ -260,4 +291,4 @@ var LoomLauncher = class {
|
|
|
260
291
|
export {
|
|
261
292
|
LoomLauncher
|
|
262
293
|
};
|
|
263
|
-
//# sourceMappingURL=LoomLauncher-
|
|
294
|
+
//# sourceMappingURL=LoomLauncher-FLEMBCSQ.js.map
|