@tarcisiopgs/lisa 1.7.2 → 1.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -337,39 +337,12 @@ function divider(session) {
337
337
  }
338
338
  function banner() {
339
339
  if (outputMode !== "default") return;
340
- const art = `
341
- @@%#@@
342
- @@%=--=%@ @@
343
- @@@@@@@@%@+------*@%%@%##*@
344
- @*=======---------===-----@@
345
- @=------------------------#@
346
- @=------------------------+@@
347
- @@=-------------------------+#%%%@@
348
- @@@#=--------------------------------%@
349
- @@*=------------------=---------------=@
350
- @%------=%--=%=--@==+@=--------------@@
351
- @@+-##+*%**#%=-+*+==+####*---------#@
352
- @%*%-::::::%#::::::::+@=---------#@
353
- @@@-:++::::@-::::=::::*%*=--------*@@
354
- @+:==::::%=::::#-:::%==----------=@@
355
- @@+:=%%%%*#+::::::+%=-----------=@@
356
- @%*@=-----=*******---*+=-----=%@
357
- @%=--+##**#=----------#++##----=@
358
- @-----------------#=---**+%-----%@
359
- @%*+=-----===++**#@#--%**#=-==++%@
360
- @@@%%@#*+++=---=--=%----%%%@@@
361
- @@@----------*@#**#@
362
- @@@=---------#@@
363
- @+*%*%%###%*%%=-@
364
- @%@+=#@==@#:+@##@
365
- @@@@%%@##%
366
- `;
367
- const title = " Lisa \u2014 deterministic autonomous issue resolver ";
340
+ const title = " lisa \u266A autonomous issue resolver ";
368
341
  const border = "\u2500".repeat(title.length);
369
- console.log(pc.yellow(art));
370
- console.log(pc.cyan(` \u250C${border}\u2510`));
371
- console.log(pc.cyan(` \u2502${title}\u2502`));
372
- console.log(pc.cyan(` \u2514${border}\u2518
342
+ console.log(pc.yellow(`
343
+ \u250C${border}\u2510`));
344
+ console.log(pc.yellow(` \u2502`) + pc.bold(pc.white(title)) + pc.yellow("\u2502"));
345
+ console.log(pc.yellow(` \u2514${border}\u2518
373
346
  `));
374
347
  }
375
348
 
@@ -1585,12 +1558,9 @@ var providers = {
1585
1558
  goose: () => new GooseProvider(),
1586
1559
  aider: () => new AiderProvider()
1587
1560
  };
1588
- async function getAvailableProviders() {
1561
+ async function getAllProvidersWithAvailability() {
1589
1562
  const all = Object.values(providers).map((f) => f());
1590
- const results = await Promise.all(
1591
- all.map(async (p) => ({ provider: p, available: await p.isAvailable() }))
1592
- );
1593
- return results.filter((r) => r.available).map((r) => r.provider);
1563
+ return Promise.all(all.map(async (p) => ({ provider: p, available: await p.isAvailable() })));
1594
1564
  }
1595
1565
  function createProvider(name) {
1596
1566
  const factory = providers[name];
@@ -4122,7 +4092,7 @@ Add them to your ${shell} and run: source ${shell}`));
4122
4092
  if (isTUI) {
4123
4093
  const { render } = await import("ink");
4124
4094
  const { createElement } = await import("react");
4125
- const { KanbanApp } = await import("./kanban-BY7QNVEE.js");
4095
+ const { KanbanApp } = await import("./kanban-KPIDX2SU.js");
4126
4096
  render(createElement(KanbanApp, { config: merged }), { exitOnCtrlC: false });
4127
4097
  }
4128
4098
  await runLoop(merged, {
@@ -4342,8 +4312,7 @@ var main = defineCommand({
4342
4312
  subCommands: { run, config, init, status, issue }
4343
4313
  });
4344
4314
  async function runConfigWizard() {
4345
- banner();
4346
- clack.intro(pc2.cyan(" lisa \u2014 autonomous issue resolver "));
4315
+ clack.intro(pc2.cyan(" lisa \u266A autonomous issue resolver "));
4347
4316
  const providerLabels = {
4348
4317
  claude: "Claude Code",
4349
4318
  gemini: "Gemini CLI",
@@ -4357,7 +4326,8 @@ async function runConfigWizard() {
4357
4326
  claude: ["claude-sonnet-4-6", "claude-opus-4-6", "claude-haiku-4-5"],
4358
4327
  gemini: ["gemini-2.5-pro", "gemini-2.0-flash", "gemini-1.5-pro"]
4359
4328
  };
4360
- const available = await getAvailableProviders();
4329
+ const allProviders = await getAllProvidersWithAvailability();
4330
+ const available = allProviders.filter((r) => r.available).map((r) => r.provider);
4361
4331
  if (available.length === 0) {
4362
4332
  clack.log.error("No AI provider found on your system.");
4363
4333
  clack.log.info(
@@ -4379,9 +4349,11 @@ async function runConfigWizard() {
4379
4349
  } else {
4380
4350
  const selected = await clack.select({
4381
4351
  message: "Which AI provider should resolve your issues?",
4382
- options: available.map((p) => ({
4383
- value: p.name,
4384
- label: providerLabels[p.name]
4352
+ options: allProviders.map(({ provider, available: isAvailable }) => ({
4353
+ value: provider.name,
4354
+ label: providerLabels[provider.name],
4355
+ hint: isAvailable ? void 0 : "not installed",
4356
+ disabled: !isAvailable
4385
4357
  }))
4386
4358
  });
4387
4359
  if (clack.isCancel(selected)) return process.exit(0);
@@ -4413,14 +4385,47 @@ async function runConfigWizard() {
4413
4385
  const source = await clack.select({
4414
4386
  message: "Where do your issues come from?",
4415
4387
  options: [
4416
- { value: "linear", label: "Linear", hint: "GraphQL API" },
4417
- { value: "trello", label: "Trello", hint: "REST API" },
4418
- { value: "github", label: "GitHub Issues", hint: "REST API" },
4419
- { value: "gitlab", label: "GitLab Issues", hint: "REST API" },
4420
- { value: "plane", label: "Plane", hint: "REST API" },
4421
- { value: "shortcut", label: "Shortcut", hint: "REST API" },
4422
- { value: "jira", label: "Jira", hint: "REST API" }
4423
- ]
4388
+ { value: "linear", label: "Linear", apiHint: "GraphQL API", envVars: ["LINEAR_API_KEY"] },
4389
+ {
4390
+ value: "trello",
4391
+ label: "Trello",
4392
+ apiHint: "REST API",
4393
+ envVars: ["TRELLO_API_KEY", "TRELLO_TOKEN"]
4394
+ },
4395
+ {
4396
+ value: "github-issues",
4397
+ label: "GitHub Issues",
4398
+ apiHint: "REST API",
4399
+ envVars: ["GITHUB_TOKEN"]
4400
+ },
4401
+ {
4402
+ value: "gitlab-issues",
4403
+ label: "GitLab Issues",
4404
+ apiHint: "REST API",
4405
+ envVars: ["GITLAB_TOKEN"]
4406
+ },
4407
+ { value: "plane", label: "Plane", apiHint: "REST API", envVars: ["PLANE_API_TOKEN"] },
4408
+ {
4409
+ value: "shortcut",
4410
+ label: "Shortcut",
4411
+ apiHint: "REST API",
4412
+ envVars: ["SHORTCUT_API_TOKEN"]
4413
+ },
4414
+ {
4415
+ value: "jira",
4416
+ label: "Jira",
4417
+ apiHint: "REST API",
4418
+ envVars: ["JIRA_BASE_URL", "JIRA_EMAIL", "JIRA_API_TOKEN"]
4419
+ }
4420
+ ].map(({ value, label: label2, apiHint, envVars }) => {
4421
+ const missing2 = envVars.filter((v) => !process.env[v]);
4422
+ return {
4423
+ value,
4424
+ label: label2,
4425
+ hint: missing2.length > 0 ? `missing: ${missing2.join(", ")}` : apiHint,
4426
+ disabled: missing2.length > 0
4427
+ };
4428
+ })
4424
4429
  });
4425
4430
  if (clack.isCancel(source)) return process.exit(0);
4426
4431
  const missing = await getMissingEnvVars(source);
@@ -4656,6 +4661,17 @@ async function getMissingEnvVars(source) {
4656
4661
  } else if (source === "trello") {
4657
4662
  if (!process.env.TRELLO_API_KEY) missing.push("TRELLO_API_KEY");
4658
4663
  if (!process.env.TRELLO_TOKEN) missing.push("TRELLO_TOKEN");
4664
+ } else if (source === "github-issues") {
4665
+ } else if (source === "gitlab-issues") {
4666
+ if (!process.env.GITLAB_TOKEN) missing.push("GITLAB_TOKEN");
4667
+ } else if (source === "plane") {
4668
+ if (!process.env.PLANE_API_TOKEN) missing.push("PLANE_API_TOKEN");
4669
+ } else if (source === "shortcut") {
4670
+ if (!process.env.SHORTCUT_API_TOKEN) missing.push("SHORTCUT_API_TOKEN");
4671
+ } else if (source === "jira") {
4672
+ if (!process.env.JIRA_BASE_URL) missing.push("JIRA_BASE_URL");
4673
+ if (!process.env.JIRA_EMAIL) missing.push("JIRA_EMAIL");
4674
+ if (!process.env.JIRA_API_TOKEN) missing.push("JIRA_API_TOKEN");
4659
4675
  }
4660
4676
  return missing;
4661
4677
  }
@@ -362,9 +362,11 @@ function Sidebar({ provider, source, cwd }) {
362
362
  /* @__PURE__ */ jsxs5(Box5, { flexDirection: "column", marginBottom: 1, children: [
363
363
  /* @__PURE__ */ jsx5(Text5, { color: "yellow", children: "\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557" }),
364
364
  /* @__PURE__ */ jsxs5(Text5, { color: "yellow", children: [
365
- "\u2551",
366
- /* @__PURE__ */ jsx5(Text5, { color: "white", bold: true, children: " L I S A v 2 " }),
367
- /* @__PURE__ */ jsx5(Text5, { color: "yellow", children: "\u2551" })
365
+ "\u2551 ",
366
+ /* @__PURE__ */ jsx5(Text5, { color: "white", bold: true, children: "L I S A " }),
367
+ /* @__PURE__ */ jsx5(Text5, { color: "yellow", bold: true, children: "\u266A" }),
368
+ /* @__PURE__ */ jsx5(Text5, { color: "white", bold: true, children: " " }),
369
+ "\u2551"
368
370
  ] }),
369
371
  /* @__PURE__ */ jsx5(Text5, { color: "yellow", children: "\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D" })
370
372
  ] }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarcisiopgs/lisa",
3
- "version": "1.7.2",
3
+ "version": "1.7.3",
4
4
  "description": "Deterministic autonomous issue resolver — structured AI agent loop for Linear/Trello",
5
5
  "license": "MIT",
6
6
  "type": "module",