@iloom/cli 0.5.4 → 0.6.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 +116 -4
- package/dist/{ClaudeContextManager-PQ46VILL.js → ClaudeContextManager-6J2EB4QU.js} +5 -5
- package/dist/{ClaudeService-6OMO552H.js → ClaudeService-O2PB22GX.js} +4 -4
- package/dist/{LoomLauncher-ZHDTPKED.js → LoomLauncher-5LFM4LXB.js} +5 -5
- package/dist/ProjectCapabilityDetector-S5FLNCFI.js +11 -0
- package/dist/{PromptTemplateManager-5GNF7FCP.js → PromptTemplateManager-C3DK6XZL.js} +2 -2
- package/dist/README.md +116 -4
- package/dist/{SettingsManager-CNYBGXDT.js → SettingsManager-35F5RUJH.js} +2 -2
- package/dist/agents/iloom-framework-detector.md +366 -0
- package/dist/agents/iloom-issue-analyze-and-plan.md +0 -10
- package/dist/agents/iloom-issue-implementer.md +1 -1
- package/dist/agents/iloom-issue-planner.md +0 -10
- package/dist/build-FJVYP7EV.js +27 -0
- package/dist/build-FJVYP7EV.js.map +1 -0
- package/dist/{chunk-SHVB3EFE.js → chunk-64O2UIWO.js} +44 -19
- package/dist/chunk-64O2UIWO.js.map +1 -0
- package/dist/{chunk-FXJKNVZW.js → chunk-6U6VI4SZ.js} +3 -3
- package/dist/{chunk-QPS6TZUW.js → chunk-7WANFUIK.js} +2 -2
- package/dist/{chunk-LVLRMP7V.js → chunk-AXX3QIKK.js} +58 -14
- package/dist/chunk-AXX3QIKK.js.map +1 -0
- package/dist/chunk-BXCPJJYM.js +133 -0
- package/dist/chunk-BXCPJJYM.js.map +1 -0
- package/dist/{chunk-ESP2FF52.js → chunk-EK3XCAAS.js} +2 -2
- package/dist/{chunk-IDUICCZY.js → chunk-F6WVM437.js} +3 -1
- package/dist/chunk-F6WVM437.js.map +1 -0
- package/dist/{chunk-TKL7RBEF.js → chunk-GEXP5IOF.js} +3 -3
- package/dist/{chunk-J7GHNTYK.js → chunk-K7SEEHKO.js} +3 -3
- package/dist/{chunk-NRDY6XO3.js → chunk-PMVWQBWS.js} +73 -17
- package/dist/chunk-PMVWQBWS.js.map +1 -0
- package/dist/{chunk-NKRQNER7.js → chunk-Q7POFB5Q.js} +1 -55
- package/dist/chunk-Q7POFB5Q.js.map +1 -0
- package/dist/{chunk-N4ZJVATC.js → chunk-SN3Z6EZO.js} +11 -7
- package/dist/chunk-SN3Z6EZO.js.map +1 -0
- package/dist/chunk-TRQ76ISK.js +159 -0
- package/dist/chunk-TRQ76ISK.js.map +1 -0
- package/dist/{chunk-ZXWTOJXA.js → chunk-UB4TFAXJ.js} +38 -9
- package/dist/chunk-UB4TFAXJ.js.map +1 -0
- package/dist/{chunk-YPOG7WY4.js → chunk-UQIXZ3BA.js} +2 -2
- package/dist/{chunk-K5G5SFWY.js → chunk-W6WVRHJ6.js} +13 -1
- package/dist/chunk-W6WVRHJ6.js.map +1 -0
- package/dist/{chunk-E4F7KASE.js → chunk-WIJWIKAN.js} +3 -3
- package/dist/{chunk-EBISESAP.js → chunk-ZPSTA5PR.js} +16 -6
- package/dist/chunk-ZPSTA5PR.js.map +1 -0
- package/dist/{cleanup-H5QUWBWE.js → cleanup-OU2HFOOG.js} +11 -11
- package/dist/cli.js +107 -69
- package/dist/cli.js.map +1 -1
- package/dist/compile-ULNO5F7Q.js +57 -0
- package/dist/compile-ULNO5F7Q.js.map +1 -0
- package/dist/{contribute-VP73TPAL.js → contribute-T7ENST5N.js} +3 -3
- package/dist/{dev-server-H5FFXIVX.js → dev-server-4RCDJ5MU.js} +9 -9
- package/dist/{feedback-567ZH2O7.js → feedback-O4Q55SVS.js} +8 -8
- package/dist/{git-UHUNQZBA.js → git-FVMGBHC2.js} +3 -3
- package/dist/{ignite-VPP4PMF4.js → ignite-VHV65WEZ.js} +12 -8
- package/dist/ignite-VHV65WEZ.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/{init-4ZR2XXZA.js → init-HB34Q5FH.js} +8 -7
- package/dist/lint-5JMCWE4Y.js +27 -0
- package/dist/lint-5JMCWE4Y.js.map +1 -0
- package/dist/{open-6HBQHPUL.js → open-WHVUYGPY.js} +9 -9
- package/dist/prompts/init-prompt.txt +108 -0
- package/dist/prompts/issue-prompt.txt +12 -12
- package/dist/{rebase-SRBOVC4M.js → rebase-5EY3Q6XP.js} +5 -5
- package/dist/{recap-X7FTTKPP.js → recap-VOOUXOGP.js} +5 -5
- package/dist/{run-5FU76FFE.js → run-NCRK5NPR.js} +9 -9
- package/dist/schema/settings.schema.json +8 -0
- package/dist/{shell-UQJDI36V.js → shell-SBLXVOVJ.js} +5 -5
- package/dist/{summary-MOKN7RM2.js → summary-CVFAMDOJ.js} +6 -6
- package/dist/test-3KIVXI6J.js +27 -0
- package/dist/test-3KIVXI6J.js.map +1 -0
- package/dist/{test-git-GB3B6QNT.js → test-git-ZB6AGGRW.js} +3 -3
- package/dist/{test-prefix-YQNNTCY3.js → test-prefix-FBGXKMPA.js} +3 -3
- package/package.json +2 -1
- package/dist/ProjectCapabilityDetector-34LU7JJ4.js +0 -9
- package/dist/chunk-2ZPFJQ3B.js +0 -63
- package/dist/chunk-2ZPFJQ3B.js.map +0 -1
- package/dist/chunk-EBISESAP.js.map +0 -1
- package/dist/chunk-IDUICCZY.js.map +0 -1
- package/dist/chunk-K5G5SFWY.js.map +0 -1
- package/dist/chunk-LVLRMP7V.js.map +0 -1
- package/dist/chunk-N4ZJVATC.js.map +0 -1
- package/dist/chunk-NKRQNER7.js.map +0 -1
- package/dist/chunk-NRDY6XO3.js.map +0 -1
- package/dist/chunk-SHVB3EFE.js.map +0 -1
- package/dist/chunk-ZXWTOJXA.js.map +0 -1
- package/dist/ignite-VPP4PMF4.js.map +0 -1
- /package/dist/{ClaudeContextManager-PQ46VILL.js.map → ClaudeContextManager-6J2EB4QU.js.map} +0 -0
- /package/dist/{ClaudeService-6OMO552H.js.map → ClaudeService-O2PB22GX.js.map} +0 -0
- /package/dist/{LoomLauncher-ZHDTPKED.js.map → LoomLauncher-5LFM4LXB.js.map} +0 -0
- /package/dist/{ProjectCapabilityDetector-34LU7JJ4.js.map → ProjectCapabilityDetector-S5FLNCFI.js.map} +0 -0
- /package/dist/{PromptTemplateManager-5GNF7FCP.js.map → PromptTemplateManager-C3DK6XZL.js.map} +0 -0
- /package/dist/{SettingsManager-CNYBGXDT.js.map → SettingsManager-35F5RUJH.js.map} +0 -0
- /package/dist/{chunk-FXJKNVZW.js.map → chunk-6U6VI4SZ.js.map} +0 -0
- /package/dist/{chunk-QPS6TZUW.js.map → chunk-7WANFUIK.js.map} +0 -0
- /package/dist/{chunk-ESP2FF52.js.map → chunk-EK3XCAAS.js.map} +0 -0
- /package/dist/{chunk-TKL7RBEF.js.map → chunk-GEXP5IOF.js.map} +0 -0
- /package/dist/{chunk-J7GHNTYK.js.map → chunk-K7SEEHKO.js.map} +0 -0
- /package/dist/{chunk-YPOG7WY4.js.map → chunk-UQIXZ3BA.js.map} +0 -0
- /package/dist/{chunk-E4F7KASE.js.map → chunk-WIJWIKAN.js.map} +0 -0
- /package/dist/{cleanup-H5QUWBWE.js.map → cleanup-OU2HFOOG.js.map} +0 -0
- /package/dist/{contribute-VP73TPAL.js.map → contribute-T7ENST5N.js.map} +0 -0
- /package/dist/{dev-server-H5FFXIVX.js.map → dev-server-4RCDJ5MU.js.map} +0 -0
- /package/dist/{feedback-567ZH2O7.js.map → feedback-O4Q55SVS.js.map} +0 -0
- /package/dist/{git-UHUNQZBA.js.map → git-FVMGBHC2.js.map} +0 -0
- /package/dist/{init-4ZR2XXZA.js.map → init-HB34Q5FH.js.map} +0 -0
- /package/dist/{open-6HBQHPUL.js.map → open-WHVUYGPY.js.map} +0 -0
- /package/dist/{rebase-SRBOVC4M.js.map → rebase-5EY3Q6XP.js.map} +0 -0
- /package/dist/{recap-X7FTTKPP.js.map → recap-VOOUXOGP.js.map} +0 -0
- /package/dist/{run-5FU76FFE.js.map → run-NCRK5NPR.js.map} +0 -0
- /package/dist/{shell-UQJDI36V.js.map → shell-SBLXVOVJ.js.map} +0 -0
- /package/dist/{summary-MOKN7RM2.js.map → summary-CVFAMDOJ.js.map} +0 -0
- /package/dist/{test-git-GB3B6QNT.js.map → test-git-ZB6AGGRW.js.map} +0 -0
- /package/dist/{test-prefix-YQNNTCY3.js.map → test-prefix-FBGXKMPA.js.map} +0 -0
package/README.md
CHANGED
|
@@ -120,7 +120,7 @@ Each loom is a fully isolated container for your work:
|
|
|
120
120
|
|
|
121
121
|
* **Database Branch:** (Neon support) Schema changes in this loom are isolated—they won't break your main environment or your other active looms.
|
|
122
122
|
|
|
123
|
-
* **Environment Variables:** Each loom has its own environment files (`.env`, `.env.local`, `.env.development`, `.env.development.local`). Uses `development` by default, override with `DOTENV_FLOW_NODE_ENV`.
|
|
123
|
+
* **Environment Variables:** Each loom has its own environment files (`.env`, `.env.local`, `.env.development`, `.env.development.local`). Uses `development` by default, override with `DOTENV_FLOW_NODE_ENV`. See [Secret Storage Limitations](#multi-language-project-support) for frameworks with encrypted credentials.
|
|
124
124
|
|
|
125
125
|
* **Unique Runtime:**
|
|
126
126
|
|
|
@@ -144,6 +144,10 @@ Command Reference
|
|
|
144
144
|
| `il spin` | | Launch Claude inside the current loom with context auto-detected. |
|
|
145
145
|
| `il open` | `run` | Open loom in browser (web) or run your CLI tool. |
|
|
146
146
|
| `il dev-server` | `dev` | Start dev server in foreground for a workspace. |
|
|
147
|
+
| `il build` | | Run the build script for a workspace. |
|
|
148
|
+
| `il lint` | | Run the lint script for a workspace. |
|
|
149
|
+
| `il test` | | Run the test script for a workspace. |
|
|
150
|
+
| `il compile` | `typecheck` | Run the compile or typecheck script for a workspace. |
|
|
147
151
|
| `il add-issue` | `a` | Create and AI-enhance a new issue without starting work yet. |
|
|
148
152
|
| `il init` | `config` | Interactive configuration wizard. |
|
|
149
153
|
| `il feedback` | `f` | Submit bug reports/feedback directly from the CLI. |
|
|
@@ -232,6 +236,114 @@ This example shows how to configure a project-wide default (e.g., GitHub remote)
|
|
|
232
236
|
}
|
|
233
237
|
```
|
|
234
238
|
|
|
239
|
+
### Multi-Language/Framework Project Support
|
|
240
|
+
|
|
241
|
+
iloom supports projects in any programming language through `.iloom/package.iloom.json`. This file defines scripts using raw shell commands instead of npm scripts.
|
|
242
|
+
|
|
243
|
+
**File Location:** `.iloom/package.iloom.json`
|
|
244
|
+
|
|
245
|
+
**Format:**
|
|
246
|
+
```json
|
|
247
|
+
{
|
|
248
|
+
"scripts": {
|
|
249
|
+
"install": "bundle install",
|
|
250
|
+
"build": "cargo build --release",
|
|
251
|
+
"test": "cargo test",
|
|
252
|
+
"dev": "cargo run",
|
|
253
|
+
"lint": "cargo clippy",
|
|
254
|
+
"typecheck": "cargo check"
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**Supported Scripts:**
|
|
260
|
+
|
|
261
|
+
| Script | Purpose | When Used |
|
|
262
|
+
|--------|---------|-----------|
|
|
263
|
+
| `install` | Install dependencies | `il start` (loom creation), `il finish` (post-merge) |
|
|
264
|
+
| `build` | Compile/build project | `il build`, `il finish` (CLI projects, post-merge) |
|
|
265
|
+
| `test` | Run test suite | `il test`, `il finish` validation |
|
|
266
|
+
| `dev` | Start dev server | `il dev-server` |
|
|
267
|
+
| `lint` | Run linter | `il lint`, `il finish` validation |
|
|
268
|
+
| `typecheck` | Type checking | `il typecheck`, `il finish` validation |
|
|
269
|
+
| `compile` | Alternative to typecheck | `il compile`, `il finish` validation (preferred over typecheck if both exist) |
|
|
270
|
+
|
|
271
|
+
All scripts are optional. If not defined, that step is skipped.
|
|
272
|
+
|
|
273
|
+
**Language Examples:**
|
|
274
|
+
|
|
275
|
+
| Language | Install | Build | Test | Dev | Lint | Typecheck |
|
|
276
|
+
|----------|---------|-------|------|-----|------|-----------|
|
|
277
|
+
| Rust | `cargo fetch` | `cargo build` | `cargo test` | `cargo run` | `cargo clippy` | `cargo check` |
|
|
278
|
+
| Python (pip) | `pip install -e .` | - | `pytest` | `uvicorn app:app` | `ruff check .` | `mypy .` |
|
|
279
|
+
| Python (poetry) | `poetry install` | - | `pytest` | `uvicorn app:app` | `ruff check .` | `mypy .` |
|
|
280
|
+
| Ruby | `bundle install` | - | `bundle exec rspec` | `rails server` | `bundle exec rubocop` | - |
|
|
281
|
+
| Go | `go mod download` | `go build ./...` | `go test ./...` | `go run .` | `golangci-lint run` | `go vet ./...` |
|
|
282
|
+
|
|
283
|
+
**Precedence Rules:**
|
|
284
|
+
1. `.iloom/package.iloom.json` (if exists) - highest priority
|
|
285
|
+
2. `package.json` (if exists) - fallback for Node.js projects
|
|
286
|
+
|
|
287
|
+
**Key Differences from package.json:**
|
|
288
|
+
- Scripts are raw shell commands, executed directly (not via npm/pnpm)
|
|
289
|
+
- No package manager prefix is added to commands
|
|
290
|
+
- Works with any language's toolchain
|
|
291
|
+
|
|
292
|
+
**Automatic Detection:** When running `il init` on a non-Node.js project, iloom will offer to detect your project's language and generate an appropriate `package.iloom.json`.
|
|
293
|
+
|
|
294
|
+
**→ [Complete Multi-Language Project Guide](docs/multi-language-projects.md)** - Detailed setup instructions, more language examples, and troubleshooting.
|
|
295
|
+
|
|
296
|
+
**Secret Storage Limitations:** iloom manages environment variables through standard `.env` files (via dotenv-flow). The following encrypted/proprietary secret storage formats are **not supported**:
|
|
297
|
+
|
|
298
|
+
| Format | Why Unsupported |
|
|
299
|
+
|--------|-----------------|
|
|
300
|
+
| Rails encrypted credentials (`config/credentials.yml.enc`) | Requires Rails internals + master key |
|
|
301
|
+
| ASP.NET Core User Secrets | Stored outside project at `~/.microsoft/usersecrets/<guid>/` |
|
|
302
|
+
| SOPS/Sealed Secrets | Requires external decryption keys |
|
|
303
|
+
|
|
304
|
+
**Recommendation:** If you want to use database isolation features (or anything else that requires updating env variables), use standard `.env` files for iloom compatibility. For Rails, consider [dotenv-rails](https://github.com/bkeepers/dotenv). For ASP.NET, use a local `.env` file alongside User Secrets.
|
|
305
|
+
|
|
306
|
+
### Copying Gitignored Files to Looms
|
|
307
|
+
|
|
308
|
+
By default, looms only contain files tracked by Git. If you have local files that are gitignored (like SQLite databases, test data, or sensitive configuration), they won't be available in your looms.
|
|
309
|
+
|
|
310
|
+
**Automatically copied:** Some gitignored files are always copied to looms without configuration:
|
|
311
|
+
- dotenv-flow files: `.env`, `.env.local`, `.env.development`, `.env.development.local`
|
|
312
|
+
- `.iloom/settings.local.json`
|
|
313
|
+
- `.claude/settings.local.json`
|
|
314
|
+
|
|
315
|
+
For other gitignored files, use `copyGitIgnoredPatterns` to specify glob patterns for files that should be copied from your main repo to each loom.
|
|
316
|
+
|
|
317
|
+
**When to use:**
|
|
318
|
+
- **Local databases:** SQLite files (`*.db`, `*.sqlite`) for local development
|
|
319
|
+
- **Test data:** Large test fixtures that are too big to commit to git
|
|
320
|
+
- **Sensitive files:** Configuration files with credentials that shouldn't be in version control
|
|
321
|
+
|
|
322
|
+
**.iloom/settings.json**
|
|
323
|
+
|
|
324
|
+
```json
|
|
325
|
+
{
|
|
326
|
+
"copyGitIgnoredPatterns": [
|
|
327
|
+
"*.db",
|
|
328
|
+
"*.sqlite",
|
|
329
|
+
"data/**/*.json",
|
|
330
|
+
"{data,fixtures}/*.sql"
|
|
331
|
+
]
|
|
332
|
+
}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
**Supported patterns:**
|
|
336
|
+
- `*.db` - Match files with .db extension in root
|
|
337
|
+
- `**/*.db` - Recursively match all .db files in any directory
|
|
338
|
+
- `data/**/*.sqlite` - Match .sqlite files anywhere under data/
|
|
339
|
+
- `{data,backup}/*.db` - Match .db files in either data/ or backup/
|
|
340
|
+
- `*.{db,sqlite}` - Match files with either .db or .sqlite extension
|
|
341
|
+
|
|
342
|
+
**Notes:**
|
|
343
|
+
- Files are copied from your main workspace to each loom during `il start`
|
|
344
|
+
- Files are NOT copied back during `il finish` (one-way copy only)
|
|
345
|
+
- The patterns use [fast-glob](https://github.com/mrmlnc/fast-glob) syntax
|
|
346
|
+
|
|
235
347
|
### Merge Behavior
|
|
236
348
|
|
|
237
349
|
Control how `il finish` handles your work. Configure in `.iloom/settings.json`:
|
|
@@ -339,10 +451,10 @@ This is an early-stage product.
|
|
|
339
451
|
**Project Support:**
|
|
340
452
|
|
|
341
453
|
* ✅ **Node.js Web Projects:** First-class support via package.json scripts (dev, test, build).
|
|
342
|
-
|
|
454
|
+
|
|
343
455
|
* ✅ **Node.js CLI Tools:** Full support with isolated binary generation.
|
|
344
|
-
|
|
345
|
-
*
|
|
456
|
+
|
|
457
|
+
* ✅ **Multi-Language Projects:** Python, Rust, Ruby, Go, and other languages via `.iloom/package.iloom.json`.
|
|
346
458
|
|
|
347
459
|
See all [known limitations](https://github.com/iloom-ai/iloom-cli/issues?q=is:issue+is:open+label:known-limitation) on GitHub. If you're feeling left out - you're absolutely right! The best way to complain about something is to fix it. So...
|
|
348
460
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ClaudeContextManager
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-7WANFUIK.js";
|
|
5
|
+
import "./chunk-6U6VI4SZ.js";
|
|
6
|
+
import "./chunk-W6WVRHJ6.js";
|
|
7
|
+
import "./chunk-F6WVM437.js";
|
|
8
8
|
import "./chunk-AEIMYF4P.js";
|
|
9
9
|
import "./chunk-6MLEBAYZ.js";
|
|
10
10
|
import "./chunk-VT4PDUYT.js";
|
|
11
11
|
export {
|
|
12
12
|
ClaudeContextManager
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=ClaudeContextManager-
|
|
14
|
+
//# sourceMappingURL=ClaudeContextManager-6J2EB4QU.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ClaudeService
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-6U6VI4SZ.js";
|
|
5
|
+
import "./chunk-W6WVRHJ6.js";
|
|
6
|
+
import "./chunk-F6WVM437.js";
|
|
7
7
|
import "./chunk-AEIMYF4P.js";
|
|
8
8
|
import "./chunk-6MLEBAYZ.js";
|
|
9
9
|
import "./chunk-VT4PDUYT.js";
|
|
10
10
|
export {
|
|
11
11
|
ClaudeService
|
|
12
12
|
};
|
|
13
|
-
//# sourceMappingURL=ClaudeService-
|
|
13
|
+
//# sourceMappingURL=ClaudeService-O2PB22GX.js.map
|
|
@@ -4,13 +4,13 @@ import {
|
|
|
4
4
|
} from "./chunk-O7VL5N6S.js";
|
|
5
5
|
import {
|
|
6
6
|
ClaudeContextManager
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-7WANFUIK.js";
|
|
8
|
+
import "./chunk-6U6VI4SZ.js";
|
|
9
|
+
import "./chunk-W6WVRHJ6.js";
|
|
10
10
|
import {
|
|
11
11
|
getExecutablePath
|
|
12
12
|
} from "./chunk-GYCR2LOU.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-F6WVM437.js";
|
|
14
14
|
import {
|
|
15
15
|
generateColorFromBranchName,
|
|
16
16
|
hexToRgb
|
|
@@ -252,4 +252,4 @@ var LoomLauncher = class {
|
|
|
252
252
|
export {
|
|
253
253
|
LoomLauncher
|
|
254
254
|
};
|
|
255
|
-
//# sourceMappingURL=LoomLauncher-
|
|
255
|
+
//# sourceMappingURL=LoomLauncher-5LFM4LXB.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
ProjectCapabilityDetector
|
|
4
|
+
} from "./chunk-ZPSTA5PR.js";
|
|
5
|
+
import "./chunk-BXCPJJYM.js";
|
|
6
|
+
import "./chunk-6MLEBAYZ.js";
|
|
7
|
+
import "./chunk-VT4PDUYT.js";
|
|
8
|
+
export {
|
|
9
|
+
ProjectCapabilityDetector
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=ProjectCapabilityDetector-S5FLNCFI.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
PromptTemplateManager
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-W6WVRHJ6.js";
|
|
5
5
|
import "./chunk-VT4PDUYT.js";
|
|
6
6
|
export {
|
|
7
7
|
PromptTemplateManager
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=PromptTemplateManager-
|
|
9
|
+
//# sourceMappingURL=PromptTemplateManager-C3DK6XZL.js.map
|
package/dist/README.md
CHANGED
|
@@ -120,7 +120,7 @@ Each loom is a fully isolated container for your work:
|
|
|
120
120
|
|
|
121
121
|
* **Database Branch:** (Neon support) Schema changes in this loom are isolated—they won't break your main environment or your other active looms.
|
|
122
122
|
|
|
123
|
-
* **Environment Variables:** Each loom has its own environment files (`.env`, `.env.local`, `.env.development`, `.env.development.local`). Uses `development` by default, override with `DOTENV_FLOW_NODE_ENV`.
|
|
123
|
+
* **Environment Variables:** Each loom has its own environment files (`.env`, `.env.local`, `.env.development`, `.env.development.local`). Uses `development` by default, override with `DOTENV_FLOW_NODE_ENV`. See [Secret Storage Limitations](#multi-language-project-support) for frameworks with encrypted credentials.
|
|
124
124
|
|
|
125
125
|
* **Unique Runtime:**
|
|
126
126
|
|
|
@@ -144,6 +144,10 @@ Command Reference
|
|
|
144
144
|
| `il spin` | | Launch Claude inside the current loom with context auto-detected. |
|
|
145
145
|
| `il open` | `run` | Open loom in browser (web) or run your CLI tool. |
|
|
146
146
|
| `il dev-server` | `dev` | Start dev server in foreground for a workspace. |
|
|
147
|
+
| `il build` | | Run the build script for a workspace. |
|
|
148
|
+
| `il lint` | | Run the lint script for a workspace. |
|
|
149
|
+
| `il test` | | Run the test script for a workspace. |
|
|
150
|
+
| `il compile` | `typecheck` | Run the compile or typecheck script for a workspace. |
|
|
147
151
|
| `il add-issue` | `a` | Create and AI-enhance a new issue without starting work yet. |
|
|
148
152
|
| `il init` | `config` | Interactive configuration wizard. |
|
|
149
153
|
| `il feedback` | `f` | Submit bug reports/feedback directly from the CLI. |
|
|
@@ -232,6 +236,114 @@ This example shows how to configure a project-wide default (e.g., GitHub remote)
|
|
|
232
236
|
}
|
|
233
237
|
```
|
|
234
238
|
|
|
239
|
+
### Multi-Language/Framework Project Support
|
|
240
|
+
|
|
241
|
+
iloom supports projects in any programming language through `.iloom/package.iloom.json`. This file defines scripts using raw shell commands instead of npm scripts.
|
|
242
|
+
|
|
243
|
+
**File Location:** `.iloom/package.iloom.json`
|
|
244
|
+
|
|
245
|
+
**Format:**
|
|
246
|
+
```json
|
|
247
|
+
{
|
|
248
|
+
"scripts": {
|
|
249
|
+
"install": "bundle install",
|
|
250
|
+
"build": "cargo build --release",
|
|
251
|
+
"test": "cargo test",
|
|
252
|
+
"dev": "cargo run",
|
|
253
|
+
"lint": "cargo clippy",
|
|
254
|
+
"typecheck": "cargo check"
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**Supported Scripts:**
|
|
260
|
+
|
|
261
|
+
| Script | Purpose | When Used |
|
|
262
|
+
|--------|---------|-----------|
|
|
263
|
+
| `install` | Install dependencies | `il start` (loom creation), `il finish` (post-merge) |
|
|
264
|
+
| `build` | Compile/build project | `il build`, `il finish` (CLI projects, post-merge) |
|
|
265
|
+
| `test` | Run test suite | `il test`, `il finish` validation |
|
|
266
|
+
| `dev` | Start dev server | `il dev-server` |
|
|
267
|
+
| `lint` | Run linter | `il lint`, `il finish` validation |
|
|
268
|
+
| `typecheck` | Type checking | `il typecheck`, `il finish` validation |
|
|
269
|
+
| `compile` | Alternative to typecheck | `il compile`, `il finish` validation (preferred over typecheck if both exist) |
|
|
270
|
+
|
|
271
|
+
All scripts are optional. If not defined, that step is skipped.
|
|
272
|
+
|
|
273
|
+
**Language Examples:**
|
|
274
|
+
|
|
275
|
+
| Language | Install | Build | Test | Dev | Lint | Typecheck |
|
|
276
|
+
|----------|---------|-------|------|-----|------|-----------|
|
|
277
|
+
| Rust | `cargo fetch` | `cargo build` | `cargo test` | `cargo run` | `cargo clippy` | `cargo check` |
|
|
278
|
+
| Python (pip) | `pip install -e .` | - | `pytest` | `uvicorn app:app` | `ruff check .` | `mypy .` |
|
|
279
|
+
| Python (poetry) | `poetry install` | - | `pytest` | `uvicorn app:app` | `ruff check .` | `mypy .` |
|
|
280
|
+
| Ruby | `bundle install` | - | `bundle exec rspec` | `rails server` | `bundle exec rubocop` | - |
|
|
281
|
+
| Go | `go mod download` | `go build ./...` | `go test ./...` | `go run .` | `golangci-lint run` | `go vet ./...` |
|
|
282
|
+
|
|
283
|
+
**Precedence Rules:**
|
|
284
|
+
1. `.iloom/package.iloom.json` (if exists) - highest priority
|
|
285
|
+
2. `package.json` (if exists) - fallback for Node.js projects
|
|
286
|
+
|
|
287
|
+
**Key Differences from package.json:**
|
|
288
|
+
- Scripts are raw shell commands, executed directly (not via npm/pnpm)
|
|
289
|
+
- No package manager prefix is added to commands
|
|
290
|
+
- Works with any language's toolchain
|
|
291
|
+
|
|
292
|
+
**Automatic Detection:** When running `il init` on a non-Node.js project, iloom will offer to detect your project's language and generate an appropriate `package.iloom.json`.
|
|
293
|
+
|
|
294
|
+
**→ [Complete Multi-Language Project Guide](docs/multi-language-projects.md)** - Detailed setup instructions, more language examples, and troubleshooting.
|
|
295
|
+
|
|
296
|
+
**Secret Storage Limitations:** iloom manages environment variables through standard `.env` files (via dotenv-flow). The following encrypted/proprietary secret storage formats are **not supported**:
|
|
297
|
+
|
|
298
|
+
| Format | Why Unsupported |
|
|
299
|
+
|--------|-----------------|
|
|
300
|
+
| Rails encrypted credentials (`config/credentials.yml.enc`) | Requires Rails internals + master key |
|
|
301
|
+
| ASP.NET Core User Secrets | Stored outside project at `~/.microsoft/usersecrets/<guid>/` |
|
|
302
|
+
| SOPS/Sealed Secrets | Requires external decryption keys |
|
|
303
|
+
|
|
304
|
+
**Recommendation:** If you want to use database isolation features (or anything else that requires updating env variables), use standard `.env` files for iloom compatibility. For Rails, consider [dotenv-rails](https://github.com/bkeepers/dotenv). For ASP.NET, use a local `.env` file alongside User Secrets.
|
|
305
|
+
|
|
306
|
+
### Copying Gitignored Files to Looms
|
|
307
|
+
|
|
308
|
+
By default, looms only contain files tracked by Git. If you have local files that are gitignored (like SQLite databases, test data, or sensitive configuration), they won't be available in your looms.
|
|
309
|
+
|
|
310
|
+
**Automatically copied:** Some gitignored files are always copied to looms without configuration:
|
|
311
|
+
- dotenv-flow files: `.env`, `.env.local`, `.env.development`, `.env.development.local`
|
|
312
|
+
- `.iloom/settings.local.json`
|
|
313
|
+
- `.claude/settings.local.json`
|
|
314
|
+
|
|
315
|
+
For other gitignored files, use `copyGitIgnoredPatterns` to specify glob patterns for files that should be copied from your main repo to each loom.
|
|
316
|
+
|
|
317
|
+
**When to use:**
|
|
318
|
+
- **Local databases:** SQLite files (`*.db`, `*.sqlite`) for local development
|
|
319
|
+
- **Test data:** Large test fixtures that are too big to commit to git
|
|
320
|
+
- **Sensitive files:** Configuration files with credentials that shouldn't be in version control
|
|
321
|
+
|
|
322
|
+
**.iloom/settings.json**
|
|
323
|
+
|
|
324
|
+
```json
|
|
325
|
+
{
|
|
326
|
+
"copyGitIgnoredPatterns": [
|
|
327
|
+
"*.db",
|
|
328
|
+
"*.sqlite",
|
|
329
|
+
"data/**/*.json",
|
|
330
|
+
"{data,fixtures}/*.sql"
|
|
331
|
+
]
|
|
332
|
+
}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
**Supported patterns:**
|
|
336
|
+
- `*.db` - Match files with .db extension in root
|
|
337
|
+
- `**/*.db` - Recursively match all .db files in any directory
|
|
338
|
+
- `data/**/*.sqlite` - Match .sqlite files anywhere under data/
|
|
339
|
+
- `{data,backup}/*.db` - Match .db files in either data/ or backup/
|
|
340
|
+
- `*.{db,sqlite}` - Match files with either .db or .sqlite extension
|
|
341
|
+
|
|
342
|
+
**Notes:**
|
|
343
|
+
- Files are copied from your main workspace to each loom during `il start`
|
|
344
|
+
- Files are NOT copied back during `il finish` (one-way copy only)
|
|
345
|
+
- The patterns use [fast-glob](https://github.com/mrmlnc/fast-glob) syntax
|
|
346
|
+
|
|
235
347
|
### Merge Behavior
|
|
236
348
|
|
|
237
349
|
Control how `il finish` handles your work. Configure in `.iloom/settings.json`:
|
|
@@ -339,10 +451,10 @@ This is an early-stage product.
|
|
|
339
451
|
**Project Support:**
|
|
340
452
|
|
|
341
453
|
* ✅ **Node.js Web Projects:** First-class support via package.json scripts (dev, test, build).
|
|
342
|
-
|
|
454
|
+
|
|
343
455
|
* ✅ **Node.js CLI Tools:** Full support with isolated binary generation.
|
|
344
|
-
|
|
345
|
-
*
|
|
456
|
+
|
|
457
|
+
* ✅ **Multi-Language Projects:** Python, Rust, Ruby, Go, and other languages via `.iloom/package.iloom.json`.
|
|
346
458
|
|
|
347
459
|
See all [known limitations](https://github.com/iloom-ai/iloom-cli/issues?q=is:issue+is:open+label:known-limitation) on GitHub. If you're feeling left out - you're absolutely right! The best way to complain about something is to fix it. So...
|
|
348
460
|
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
WorkflowPermissionSchemaNoDefaults,
|
|
15
15
|
WorkflowsSettingsSchema,
|
|
16
16
|
WorkflowsSettingsSchemaNoDefaults
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-F6WVM437.js";
|
|
18
18
|
import "./chunk-VT4PDUYT.js";
|
|
19
19
|
export {
|
|
20
20
|
AgentSettingsSchema,
|
|
@@ -32,4 +32,4 @@ export {
|
|
|
32
32
|
WorkflowsSettingsSchema,
|
|
33
33
|
WorkflowsSettingsSchemaNoDefaults
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=SettingsManager-
|
|
35
|
+
//# sourceMappingURL=SettingsManager-35F5RUJH.js.map
|