@tarcisiopgs/lisa 1.37.1 → 1.38.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 +2 -1
- package/dist/{chunk-ZERJ7TNX.js → chunk-AKG5WYVB.js} +3 -2
- package/dist/{chunk-YRKJONH5.js → chunk-MQG6ANVU.js} +28 -2
- package/dist/{chunk-I5HJELVZ.js → chunk-YC736WGU.js} +1 -1
- package/dist/index.js +10 -7
- package/dist/{loop-FKUQEJVU.js → loop-DNAY72UG.js} +2 -2
- package/dist/{tui-bridge-MMP6OGHK.js → tui-bridge-L5NWRFEF.js} +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ If something fails — pre-push hooks, quota limits, stuck processes — Lisa ha
|
|
|
38
38
|
## Features
|
|
39
39
|
|
|
40
40
|
- **7 issue trackers** — Linear, GitHub Issues, GitLab Issues, Jira, Trello, Plane, Shortcut
|
|
41
|
-
- **
|
|
41
|
+
- **9 AI agents** — Claude Code, Gemini CLI, GitHub Copilot CLI, Cursor Agent, Aider, Goose, OpenCode, Codex, Kilo Code
|
|
42
42
|
- **AI planning** — describe a goal, the AI brainstorms with you, decomposes it into issues with dependencies, created in your tracker
|
|
43
43
|
- **Language-aware** — responds in the same language you write your goal in
|
|
44
44
|
- **Spec compliance** — LLM-verified acceptance criteria check before PR creation, with auto-retry
|
|
@@ -67,6 +67,7 @@ If something fails — pre-push hooks, quota limits, stuck processes — Lisa ha
|
|
|
67
67
|
| Gemini CLI | `gemini` | Goose | `goose` |
|
|
68
68
|
| GitHub Copilot CLI | `copilot` | Aider | `aider` |
|
|
69
69
|
| OpenCode | `opencode` | OpenAI Codex | `codex` |
|
|
70
|
+
| Kilo Code | `kilo` | | |
|
|
70
71
|
|
|
71
72
|
Configure models and provider-specific options:
|
|
72
73
|
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
readContext,
|
|
20
20
|
resolveModels,
|
|
21
21
|
runWithFallback
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-MQG6ANVU.js";
|
|
23
23
|
import {
|
|
24
24
|
kanbanEmitter
|
|
25
25
|
} from "./chunk-LR2GREZS.js";
|
|
@@ -90,7 +90,8 @@ var VALID_PROVIDERS = [
|
|
|
90
90
|
"cursor",
|
|
91
91
|
"goose",
|
|
92
92
|
"aider",
|
|
93
|
-
"codex"
|
|
93
|
+
"codex",
|
|
94
|
+
"kilo"
|
|
94
95
|
];
|
|
95
96
|
var VALID_SOURCES = [
|
|
96
97
|
"linear",
|
|
@@ -2080,6 +2080,30 @@ var GooseProvider = class {
|
|
|
2080
2080
|
}
|
|
2081
2081
|
};
|
|
2082
2082
|
|
|
2083
|
+
// src/providers/kilo.ts
|
|
2084
|
+
var KILO_ERROR_PATTERN = /^Error /;
|
|
2085
|
+
var KiloProvider = class {
|
|
2086
|
+
name = "kilo";
|
|
2087
|
+
async isAvailable() {
|
|
2088
|
+
return isCommandAvailable("kilo");
|
|
2089
|
+
}
|
|
2090
|
+
async run(prompt, opts) {
|
|
2091
|
+
try {
|
|
2092
|
+
const config = {
|
|
2093
|
+
name: "kilo",
|
|
2094
|
+
buildCommand: (promptCatExpr) => `kilo run --auto ${promptCatExpr}`,
|
|
2095
|
+
logLine: "kilo run --auto",
|
|
2096
|
+
kanbanLine: `$ kilo run --auto <prompt: ${prompt.length} chars>
|
|
2097
|
+
`,
|
|
2098
|
+
errorPattern: KILO_ERROR_PATTERN
|
|
2099
|
+
};
|
|
2100
|
+
return await runProviderProcess(config, prompt, opts);
|
|
2101
|
+
} catch (err) {
|
|
2102
|
+
return { success: false, output: formatError(err), duration: 0 };
|
|
2103
|
+
}
|
|
2104
|
+
}
|
|
2105
|
+
};
|
|
2106
|
+
|
|
2083
2107
|
// src/providers/opencode.ts
|
|
2084
2108
|
var OpenCodeProvider = class {
|
|
2085
2109
|
name = "opencode";
|
|
@@ -2114,7 +2138,8 @@ var providers = {
|
|
|
2114
2138
|
cursor: () => new CursorProvider(),
|
|
2115
2139
|
goose: () => new GooseProvider(),
|
|
2116
2140
|
aider: () => new AiderProvider(),
|
|
2117
|
-
codex: () => new CodexProvider()
|
|
2141
|
+
codex: () => new CodexProvider(),
|
|
2142
|
+
kilo: () => new KiloProvider()
|
|
2118
2143
|
};
|
|
2119
2144
|
async function getAllProvidersWithAvailability() {
|
|
2120
2145
|
const all = Object.values(providers).map((f) => f());
|
|
@@ -4119,7 +4144,8 @@ function resolveModels(config) {
|
|
|
4119
4144
|
"cursor",
|
|
4120
4145
|
"goose",
|
|
4121
4146
|
"aider",
|
|
4122
|
-
"codex"
|
|
4147
|
+
"codex",
|
|
4148
|
+
"kilo"
|
|
4123
4149
|
]);
|
|
4124
4150
|
for (const m of providerModels) {
|
|
4125
4151
|
if (knownProviders.has(m) && m !== config.provider) {
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
runLoop,
|
|
15
15
|
saveConfig,
|
|
16
16
|
validateConfig
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-AKG5WYVB.js";
|
|
18
18
|
import {
|
|
19
19
|
CliError,
|
|
20
20
|
buildExecutionWaves,
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
parseStructuredOutput,
|
|
25
25
|
runPlanWizard,
|
|
26
26
|
savePlan
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-YC736WGU.js";
|
|
28
28
|
import {
|
|
29
29
|
buildContextMdBlock,
|
|
30
30
|
createProvider,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
readContext,
|
|
35
35
|
resolveModels,
|
|
36
36
|
runWithFallback
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-MQG6ANVU.js";
|
|
38
38
|
import {
|
|
39
39
|
kanbanEmitter
|
|
40
40
|
} from "./chunk-LR2GREZS.js";
|
|
@@ -250,7 +250,8 @@ async function runConfigWizard(existing) {
|
|
|
250
250
|
cursor: "Cursor Agent",
|
|
251
251
|
goose: "Goose",
|
|
252
252
|
aider: "Aider",
|
|
253
|
-
codex: "OpenAI Codex"
|
|
253
|
+
codex: "OpenAI Codex",
|
|
254
|
+
kilo: "Kilo Code"
|
|
254
255
|
};
|
|
255
256
|
const providerModels = {
|
|
256
257
|
claude: ["claude-opus-4-6", "claude-sonnet-4-6", "claude-haiku-4-5", "claude-sonnet-4-5"],
|
|
@@ -275,6 +276,7 @@ async function runConfigWizard(existing) {
|
|
|
275
276
|
"gpt-5.4"
|
|
276
277
|
]
|
|
277
278
|
// cursor: populated dynamically below (fetchCursorModels)
|
|
279
|
+
// kilo: model configured in Kilo's own config (~/.config/kilo/kilo.jsonc)
|
|
278
280
|
};
|
|
279
281
|
const allProviders = await getAllProvidersWithAvailability();
|
|
280
282
|
const available = allProviders.filter((r) => r.available).map((r) => r.provider);
|
|
@@ -289,7 +291,8 @@ async function runConfigWizard(existing) {
|
|
|
289
291
|
${pc.bold("GitHub Copilot CLI")} ${pc.dim("npm i -g @github/copilot-cli")}
|
|
290
292
|
${pc.bold("OpenAI Codex")} ${pc.dim("npm i -g @openai/codex")}
|
|
291
293
|
${pc.bold("Goose")} ${pc.dim("https://block.github.io/goose")}
|
|
292
|
-
${pc.bold("Aider")} ${pc.dim("pip install aider-chat")}
|
|
294
|
+
${pc.bold("Aider")} ${pc.dim("pip install aider-chat")}
|
|
295
|
+
${pc.bold("Kilo Code")} ${pc.dim("npm i -g @kilocode/cli")}`
|
|
293
296
|
);
|
|
294
297
|
return process.exit(1);
|
|
295
298
|
}
|
|
@@ -1847,7 +1850,7 @@ async function reviewAndCreate(plan2, planPath, opts) {
|
|
|
1847
1850
|
log("Run `lisa run` when ready.");
|
|
1848
1851
|
return;
|
|
1849
1852
|
}
|
|
1850
|
-
const { runLoop: runLoop2 } = await import("./loop-
|
|
1853
|
+
const { runLoop: runLoop2 } = await import("./loop-DNAY72UG.js");
|
|
1851
1854
|
const waves = buildExecutionWaves(plan2.issues);
|
|
1852
1855
|
const maxWaveSize = Math.max(...waves.map((w) => w.length));
|
|
1853
1856
|
await runLoop2(config2, {
|
|
@@ -2317,7 +2320,7 @@ Add them to your ${shell} and run: source ${shell}`));
|
|
|
2317
2320
|
const initialCards = persistence.load();
|
|
2318
2321
|
persistedCards = initialCards;
|
|
2319
2322
|
persistence.start();
|
|
2320
|
-
const { registerPlanBridge } = await import("./tui-bridge-
|
|
2323
|
+
const { registerPlanBridge } = await import("./tui-bridge-L5NWRFEF.js");
|
|
2321
2324
|
const cleanupPlan = registerPlanBridge(merged);
|
|
2322
2325
|
onBeforeExit = () => {
|
|
2323
2326
|
persistence.stop();
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
cleanupEventListeners,
|
|
5
5
|
runDemoLoop,
|
|
6
6
|
runLoop
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-AKG5WYVB.js";
|
|
8
8
|
import {
|
|
9
9
|
WATCH_POLL_INTERVAL_MS
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-MQG6ANVU.js";
|
|
11
11
|
import "./chunk-LR2GREZS.js";
|
|
12
12
|
import "./chunk-ZOVVFU7B.js";
|
|
13
13
|
import "./chunk-3EOEDL3T.js";
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
markdownToIssue,
|
|
7
7
|
parseStructuredOutput,
|
|
8
8
|
savePlan
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-YC736WGU.js";
|
|
10
10
|
import {
|
|
11
11
|
createSource,
|
|
12
12
|
resolveModels,
|
|
13
13
|
runWithFallback
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-MQG6ANVU.js";
|
|
15
15
|
import {
|
|
16
16
|
kanbanEmitter
|
|
17
17
|
} from "./chunk-LR2GREZS.js";
|