@codyswann/lisa 2.121.0 → 2.121.1

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.
Files changed (67) hide show
  1. package/dist/agy/mcp-installer.d.ts +18 -0
  2. package/dist/agy/mcp-installer.d.ts.map +1 -1
  3. package/dist/agy/mcp-installer.js +21 -0
  4. package/dist/agy/mcp-installer.js.map +1 -1
  5. package/dist/agy/plugin-installer.d.ts.map +1 -1
  6. package/dist/agy/plugin-installer.js +6 -2
  7. package/dist/agy/plugin-installer.js.map +1 -1
  8. package/dist/codex/lisa-plugin-detection.d.ts +18 -19
  9. package/dist/codex/lisa-plugin-detection.d.ts.map +1 -1
  10. package/dist/codex/lisa-plugin-detection.js +26 -22
  11. package/dist/codex/lisa-plugin-detection.js.map +1 -1
  12. package/dist/copilot/plugin-installer.d.ts.map +1 -1
  13. package/dist/copilot/plugin-installer.js +7 -3
  14. package/dist/copilot/plugin-installer.js.map +1 -1
  15. package/dist/core/config.d.ts +20 -0
  16. package/dist/core/config.d.ts.map +1 -1
  17. package/dist/core/config.js +20 -0
  18. package/dist/core/config.js.map +1 -1
  19. package/dist/core/lisa.d.ts.map +1 -1
  20. package/dist/core/lisa.js +10 -6
  21. package/dist/core/lisa.js.map +1 -1
  22. package/package.json +1 -1
  23. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa/.codex-plugin/plugin.json +2 -2
  25. package/plugins/lisa/{.codex-plugin → hooks}/hooks.json +7 -7
  26. package/plugins/lisa-agy/plugin.json +1 -1
  27. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  29. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  33. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +2 -2
  35. package/plugins/lisa-harper-fabric/{.codex-plugin → hooks}/hooks.json +2 -2
  36. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +2 -2
  38. package/plugins/lisa-nestjs/{.codex-plugin → hooks}/hooks.json +1 -1
  39. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  41. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-rails/.codex-plugin/plugin.json +2 -2
  43. package/plugins/lisa-rails/{.codex-plugin → hooks}/hooks.json +4 -4
  44. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-typescript/.codex-plugin/plugin.json +2 -2
  46. package/plugins/lisa-typescript/{.codex-plugin → hooks}/hooks.json +4 -4
  47. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  49. package/scripts/generate-codex-plugin-artifacts.mjs +28 -48
  50. package/scripts/generate-copilot-plugin-artifacts.mjs +5 -0
  51. package/scripts/generate-cursor-plugin-artifacts.mjs +4 -0
  52. package/scripts/internal-copilot-runtime-probe.json +10 -4
  53. package/plugins/lisa/.codex-plugin/hooks/block-no-verify.sh +0 -37
  54. package/plugins/lisa/.codex-plugin/hooks/inject-flow-context.sh +0 -12
  55. package/plugins/lisa/.codex-plugin/hooks/inject-rules.sh +0 -33
  56. package/plugins/lisa/.codex-plugin/hooks/install-pkgs.sh +0 -69
  57. package/plugins/lisa/.codex-plugin/hooks/notify-ntfy.sh +0 -183
  58. package/plugins/lisa/.codex-plugin/hooks/setup-jira-cli.sh +0 -51
  59. package/plugins/lisa-harper-fabric/.codex-plugin/hooks/inject-rules.sh +0 -16
  60. package/plugins/lisa-nestjs/.codex-plugin/hooks/block-migration-edits.sh +0 -60
  61. package/plugins/lisa-rails/.codex-plugin/hooks/inject-rules.sh +0 -22
  62. package/plugins/lisa-rails/.codex-plugin/hooks/rubocop-on-edit.sh +0 -78
  63. package/plugins/lisa-rails/.codex-plugin/hooks/sg-scan-on-edit.sh +0 -74
  64. package/plugins/lisa-typescript/.codex-plugin/hooks/block-suppress-directives.sh +0 -73
  65. package/plugins/lisa-typescript/.codex-plugin/hooks/format-on-edit.sh +0 -79
  66. package/plugins/lisa-typescript/.codex-plugin/hooks/lint-on-edit.sh +0 -134
  67. package/plugins/lisa-typescript/.codex-plugin/hooks/sg-scan-on-edit.sh +0 -71
@@ -11,6 +11,24 @@ export declare function defaultUserMcpConfigPath(): string;
11
11
  * @returns Absolute path to `<destDir>/.agents/mcp_config.json`.
12
12
  */
13
13
  export declare function defaultProjectMcpConfigPath(destDir: string): string;
14
+ /** MCP config scope: per-project workspace file or the shared user file. */
15
+ export type AgyMcpScope = "project" | "user";
16
+ /**
17
+ * Resolve the agy MCP config path for a given scope.
18
+ *
19
+ * `lisa apply` operates on a single project, so the default scope is
20
+ * `"project"` — it writes `<destDir>/.agents/mcp_config.json` rather than
21
+ * polluting the user's global `~/.gemini/config/mcp_config.json` (shared with
22
+ * the Antigravity desktop app). Pass `scope: "user"` to target the shared file.
23
+ * @param opts - Scope selector and (for project scope) the host project root.
24
+ * @param opts.scope - `"project"` (default) or `"user"`.
25
+ * @param opts.destDir - Host project root; required for project scope.
26
+ * @returns Absolute path to the mcp_config.json for the requested scope.
27
+ */
28
+ export declare function resolveAgyMcpConfigPath(opts: {
29
+ readonly scope?: AgyMcpScope;
30
+ readonly destDir?: string;
31
+ }): string;
14
32
  /** A single MCP server entry in agy's mcp_config.json schema. */
15
33
  export interface AgyMcpServerEntry {
16
34
  /** stdio: command to launch. Mutually exclusive with serverUrl. */
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-installer.d.ts","sourceRoot":"","sources":["../../src/agy/mcp-installer.ts"],"names":[],"mappings":"AAyBA,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,EAAG,cAAuB,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,iEAAiE;AACjE,MAAM,WAAW,iBAAiB;IAChC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,oDAAoD;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,mEAAmE;IACnE,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED,uCAAuC;AACvC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;CACnE;AAED,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACnC,qBAAqB;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,oBAAoB,GAC1B,iBAAiB,CAgBnB;AAED,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,iDAAiD;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAkBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CACvC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,EAC9D,UAAU,GAAE,MAAmC,GAC9C,OAAO,CAAC,mBAAmB,CAAC,CAsC9B"}
1
+ {"version":3,"file":"mcp-installer.d.ts","sourceRoot":"","sources":["../../src/agy/mcp-installer.ts"],"names":[],"mappings":"AAyBA,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,EAAG,cAAuB,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,4EAA4E;AAC5E,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAST;AAED,iEAAiE;AACjE,MAAM,WAAW,iBAAiB;IAChC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,oDAAoD;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,mEAAmE;IACnE,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED,uCAAuC;AACvC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;CACnE;AAED,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACnC,qBAAqB;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,oBAAoB,GAC1B,iBAAiB,CAgBnB;AAED,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,iDAAiD;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAkBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CACvC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,EAC9D,UAAU,GAAE,MAAmC,GAC9C,OAAO,CAAC,mBAAmB,CAAC,CAsC9B"}
@@ -39,6 +39,27 @@ export function defaultUserMcpConfigPath() {
39
39
  export function defaultProjectMcpConfigPath(destDir) {
40
40
  return path.join(destDir, ".agents", "mcp_config.json");
41
41
  }
42
+ /**
43
+ * Resolve the agy MCP config path for a given scope.
44
+ *
45
+ * `lisa apply` operates on a single project, so the default scope is
46
+ * `"project"` — it writes `<destDir>/.agents/mcp_config.json` rather than
47
+ * polluting the user's global `~/.gemini/config/mcp_config.json` (shared with
48
+ * the Antigravity desktop app). Pass `scope: "user"` to target the shared file.
49
+ * @param opts - Scope selector and (for project scope) the host project root.
50
+ * @param opts.scope - `"project"` (default) or `"user"`.
51
+ * @param opts.destDir - Host project root; required for project scope.
52
+ * @returns Absolute path to the mcp_config.json for the requested scope.
53
+ */
54
+ export function resolveAgyMcpConfigPath(opts) {
55
+ const scope = opts.scope ?? "project";
56
+ if (scope === "user")
57
+ return defaultUserMcpConfigPath();
58
+ if (opts.destDir === undefined || opts.destDir === "") {
59
+ throw new Error("resolveAgyMcpConfigPath: project scope requires a destDir (host project root)");
60
+ }
61
+ return defaultProjectMcpConfigPath(opts.destDir);
62
+ }
42
63
  /**
43
64
  * Translate a Claude/Codex-shape MCP entry to agy's shape.
44
65
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-installer.js","sourceRoot":"","sources":["../../src/agy/mcp-installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-installer.js","sourceRoot":"","sources":["../../src/agy/mcp-installer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-installer.d.ts","sourceRoot":"","sources":["../../src/agy/plugin-installer.ts"],"names":[],"mappings":"AAsBA,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAkBD;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,sBAAsB,CAAC,CAuCjC"}
1
+ {"version":3,"file":"plugin-installer.d.ts","sourceRoot":"","sources":["../../src/agy/plugin-installer.ts"],"names":[],"mappings":"AAuBA,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAkBD;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,sBAAsB,CAAC,CA0CjC"}
@@ -13,11 +13,12 @@
13
13
  * per its `installed_plugins.json` format).
14
14
  * @module agy/plugin-installer
15
15
  */
16
- import { exec } from "node:child_process";
16
+ import { exec, execFile } from "node:child_process";
17
17
  import { promisify } from "node:util";
18
18
  import { existsSync } from "node:fs";
19
19
  import * as path from "node:path";
20
20
  const execAsync = promisify(exec);
21
+ const execFileAsync = promisify(execFile);
21
22
  /**
22
23
  * Detect whether `agy` is on PATH.
23
24
  *
@@ -63,7 +64,10 @@ export async function installAgyPlugin(lisaPluginRoot) {
63
64
  try {
64
65
  // agy plugin install handles its own idempotence — re-installing the same
65
66
  // source updates the entry in installed_plugins.json without erroring.
66
- await execAsync(`agy plugin install ${JSON.stringify(agyVariant)}`);
67
+ // Use execFile (no shell) so a plugin path containing shell metacharacters
68
+ // cannot be interpreted — `${JSON.stringify(path)}` under a shell still
69
+ // expands $(...), backticks, etc. inside double quotes.
70
+ await execFileAsync("agy", ["plugin", "install", agyVariant]);
67
71
  return {
68
72
  attempted: true,
69
73
  installed: true,
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-installer.js","sourceRoot":"","sources":["../../src/agy/plugin-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAclC;;;;;;GAMG;AACH,KAAK,UAAU,SAAS;IACtB,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,cAAsB;IAEtB,IAAI,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO;YACL,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,mCAAmC,UAAU,oDAAoD;SACzG,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,0EAA0E;QAC1E,uEAAuE;QACvE,MAAM,SAAS,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO;YACL,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,OAAO;SACf,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"plugin-installer.js","sourceRoot":"","sources":["../../src/agy/plugin-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAClC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAc1C;;;;;;GAMG;AACH,KAAK,UAAU,SAAS;IACtB,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,cAAsB;IAEtB,IAAI,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO;YACL,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,mCAAmC,UAAU,oDAAoD;SACzG,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,0EAA0E;QAC1E,uEAAuE;QACvE,2EAA2E;QAC3E,wEAAwE;QACxE,wDAAwD;QACxD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9D,OAAO;YACL,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,OAAO;SACf,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,30 +1,29 @@
1
1
  /**
2
2
  * Default Lisa marketplace plugin reference inside `~/.codex/config.toml`.
3
3
  *
4
- * The exact slug Codex stores depends on how Codex normalizes the
5
- * marketplace name passed to `codex plugin install lisa@CodySwannGT/lisa`.
6
- * The dash form (`CodySwannGT-lisa`) matches Codex's plugin cache directory
7
- * naming convention (`~/.codex/plugins/cache/CodySwannGT-lisa/...`) but the
8
- * slash form (`CodySwannGT/lisa`) is what users type. Until empirically
9
- * verified by running the canonical install and reading the resulting TOML
10
- * key, callers can pass either shape via the `pluginKey` parameter.
11
- *
12
- * The {@link isLisaInstalledAsCodexPlugin} helper tries the dash form by
13
- * default; downstream wiring (when this helper is consumed) should call it
14
- * with both shapes via {@link isLisaInstalledUnderAnyCanonicalKey} once that
15
- * variant is added.
4
+ * [VERIFIED-BY-RUN 2026-05-28, Codex 0.125.0] `codex plugin marketplace add
5
+ * CodySwannGT/lisa` registers the marketplace under the `name` field of the
6
+ * repo's `.claude-plugin/marketplace.json` (which is `"lisa"`), producing a
7
+ * `[marketplaces.lisa]` table. Codex composes plugin keys as
8
+ * `<plugin-name>@<marketplace-name>`, so the enabled-plugin table is
9
+ * `[plugins."lisa@lisa"]` NOT the repo-slug form. The older
10
+ * `CodySwannGT-lisa` / `CodySwannGT/lisa` shapes are retained as legacy
11
+ * fallbacks ({@link LEGACY_LISA_PLUGIN_KEYS}) in case an earlier Codex derived
12
+ * the marketplace name from the repo slug.
16
13
  */
17
- export declare const DEFAULT_LISA_PLUGIN_KEY = "lisa@CodySwannGT-lisa";
18
- /** Alternative canonical key shape using slash separator. */
14
+ export declare const DEFAULT_LISA_PLUGIN_KEY = "lisa@lisa";
15
+ /** Legacy/alternative key shapes tried as fallbacks (pre-0.125.0 guesses). */
16
+ export declare const LEGACY_LISA_PLUGIN_KEYS: readonly ["lisa@CodySwannGT-lisa", "lisa@CodySwannGT/lisa"];
17
+ /** Legacy slash-separator key shape (one of {@link LEGACY_LISA_PLUGIN_KEYS}). */
19
18
  export declare const SLASH_LISA_PLUGIN_KEY = "lisa@CodySwannGT/lisa";
20
19
  /**
21
- * Detect whether either canonical Lisa plugin key shape is enabled.
20
+ * Detect whether any known Lisa plugin key shape is enabled.
22
21
  *
23
- * Until the exact Codex storage key shape is empirically pinned, callers
24
- * that need a definitive yes/no answer should use this helper rather than
25
- * the single-key {@link isLisaInstalledAsCodexPlugin}.
22
+ * Tries the verified 0.125.0 key (`lisa@lisa`) first, then the legacy shapes.
23
+ * Callers that need a definitive yes/no answer should use this helper rather
24
+ * than the single-key {@link isLisaInstalledAsCodexPlugin}.
26
25
  *
27
- * @returns True when either dash-form or slash-form key is enabled.
26
+ * @returns True when the verified key or any legacy key is enabled.
28
27
  */
29
28
  export declare function isLisaInstalledUnderAnyCanonicalKey(): Promise<boolean>;
30
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lisa-plugin-detection.d.ts","sourceRoot":"","sources":["../../src/codex/lisa-plugin-detection.ts"],"names":[],"mappings":"AAuBA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAE/D,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D;;;;;;;;GAQG;AACH,wBAAsB,mCAAmC,IAAI,OAAO,CAAC,OAAO,CAAC,CAI5E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAAgC,GAC1C,OAAO,CAwBT;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,4BAA4B,CAChD,SAAS,GAAE,MAAgC,GAC1C,OAAO,CAAC,OAAO,CAAC,CASlB"}
1
+ {"version":3,"file":"lisa-plugin-detection.d.ts","sourceRoot":"","sources":["../../src/codex/lisa-plugin-detection.ts"],"names":[],"mappings":"AAuBA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,cAAc,CAAC;AAEnD,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,6DAG1B,CAAC;AAEX,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D;;;;;;;;GAQG;AACH,wBAAsB,mCAAmC,IAAI,OAAO,CAAC,OAAO,CAAC,CAM5E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAAgC,GAC1C,OAAO,CAwBT;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,4BAA4B,CAChD,SAAS,GAAE,MAAgC,GAC1C,OAAO,CAAC,OAAO,CAAC,CASlB"}
@@ -9,7 +9,7 @@
9
9
  * delivery path.
10
10
  *
11
11
  * Detection: read `~/.codex/config.toml` (honoring `$CODEX_HOME` if set) and
12
- * check for a `[plugins."lisa@CodySwannGT-lisa"]` table with `enabled = true`.
12
+ * check for a `[plugins."lisa@lisa"]` table with `enabled = true`.
13
13
  *
14
14
  * This is a best-effort detection. If the config file is missing, malformed,
15
15
  * or unreadable, the function returns `false` (fall through to per-project
@@ -23,36 +23,40 @@ import * as path from "node:path";
23
23
  /**
24
24
  * Default Lisa marketplace plugin reference inside `~/.codex/config.toml`.
25
25
  *
26
- * The exact slug Codex stores depends on how Codex normalizes the
27
- * marketplace name passed to `codex plugin install lisa@CodySwannGT/lisa`.
28
- * The dash form (`CodySwannGT-lisa`) matches Codex's plugin cache directory
29
- * naming convention (`~/.codex/plugins/cache/CodySwannGT-lisa/...`) but the
30
- * slash form (`CodySwannGT/lisa`) is what users type. Until empirically
31
- * verified by running the canonical install and reading the resulting TOML
32
- * key, callers can pass either shape via the `pluginKey` parameter.
33
- *
34
- * The {@link isLisaInstalledAsCodexPlugin} helper tries the dash form by
35
- * default; downstream wiring (when this helper is consumed) should call it
36
- * with both shapes via {@link isLisaInstalledUnderAnyCanonicalKey} once that
37
- * variant is added.
26
+ * [VERIFIED-BY-RUN 2026-05-28, Codex 0.125.0] `codex plugin marketplace add
27
+ * CodySwannGT/lisa` registers the marketplace under the `name` field of the
28
+ * repo's `.claude-plugin/marketplace.json` (which is `"lisa"`), producing a
29
+ * `[marketplaces.lisa]` table. Codex composes plugin keys as
30
+ * `<plugin-name>@<marketplace-name>`, so the enabled-plugin table is
31
+ * `[plugins."lisa@lisa"]` NOT the repo-slug form. The older
32
+ * `CodySwannGT-lisa` / `CodySwannGT/lisa` shapes are retained as legacy
33
+ * fallbacks ({@link LEGACY_LISA_PLUGIN_KEYS}) in case an earlier Codex derived
34
+ * the marketplace name from the repo slug.
38
35
  */
39
- export const DEFAULT_LISA_PLUGIN_KEY = "lisa@CodySwannGT-lisa";
40
- /** Alternative canonical key shape using slash separator. */
36
+ export const DEFAULT_LISA_PLUGIN_KEY = "lisa@lisa";
37
+ /** Legacy/alternative key shapes tried as fallbacks (pre-0.125.0 guesses). */
38
+ export const LEGACY_LISA_PLUGIN_KEYS = [
39
+ "lisa@CodySwannGT-lisa",
40
+ "lisa@CodySwannGT/lisa",
41
+ ];
42
+ /** Legacy slash-separator key shape (one of {@link LEGACY_LISA_PLUGIN_KEYS}). */
41
43
  export const SLASH_LISA_PLUGIN_KEY = "lisa@CodySwannGT/lisa";
42
44
  /**
43
- * Detect whether either canonical Lisa plugin key shape is enabled.
45
+ * Detect whether any known Lisa plugin key shape is enabled.
44
46
  *
45
- * Until the exact Codex storage key shape is empirically pinned, callers
46
- * that need a definitive yes/no answer should use this helper rather than
47
- * the single-key {@link isLisaInstalledAsCodexPlugin}.
47
+ * Tries the verified 0.125.0 key (`lisa@lisa`) first, then the legacy shapes.
48
+ * Callers that need a definitive yes/no answer should use this helper rather
49
+ * than the single-key {@link isLisaInstalledAsCodexPlugin}.
48
50
  *
49
- * @returns True when either dash-form or slash-form key is enabled.
51
+ * @returns True when the verified key or any legacy key is enabled.
50
52
  */
51
53
  export async function isLisaInstalledUnderAnyCanonicalKey() {
52
54
  if (await isLisaInstalledAsCodexPlugin(DEFAULT_LISA_PLUGIN_KEY))
53
55
  return true;
54
- if (await isLisaInstalledAsCodexPlugin(SLASH_LISA_PLUGIN_KEY))
55
- return true;
56
+ for (const key of LEGACY_LISA_PLUGIN_KEYS) {
57
+ if (await isLisaInstalledAsCodexPlugin(key))
58
+ return true;
59
+ }
56
60
  return false;
57
61
  }
58
62
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lisa-plugin-detection.js","sourceRoot":"","sources":["../../src/codex/lisa-plugin-detection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lisa-plugin-detection.js","sourceRoot":"","sources":["../../src/codex/lisa-plugin-detection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-installer.d.ts","sourceRoot":"","sources":["../../src/copilot/plugin-installer.ts"],"names":[],"mappings":"AAgCA,iDAAiD;AACjD,MAAM,WAAW,0BAA0B;IACzC,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;IAClD,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AA4ED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,cAAc,GAAE,MAAgC,GAC/C,OAAO,CAAC,0BAA0B,CAAC,CAyBrC"}
1
+ {"version":3,"file":"plugin-installer.d.ts","sourceRoot":"","sources":["../../src/copilot/plugin-installer.ts"],"names":[],"mappings":"AAiCA,iDAAiD;AACjD,MAAM,WAAW,0BAA0B;IACzC,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;IAClD,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AA+ED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,cAAc,GAAE,MAAgC,GAC/C,OAAO,CAAC,0BAA0B,CAAC,CAyBrC"}
@@ -23,11 +23,12 @@
23
23
  * against the same source updates the installed-plugins entry without erroring.
24
24
  * @module copilot/plugin-installer
25
25
  */
26
- import { exec } from "node:child_process";
26
+ import { exec, execFile } from "node:child_process";
27
27
  import { promisify } from "node:util";
28
28
  import { existsSync } from "node:fs";
29
29
  import * as path from "node:path";
30
30
  const execAsync = promisify(exec);
31
+ const execFileAsync = promisify(execFile);
31
32
  /**
32
33
  * Detect whether `copilot` is on PATH.
33
34
  *
@@ -50,7 +51,10 @@ async function detectCopilot() {
50
51
  */
51
52
  async function tryMarketplaceInstall(marketplaceRef) {
52
53
  try {
53
- await execAsync(`copilot plugin install ${JSON.stringify(marketplaceRef)}`);
54
+ // execFile (no shell): the ref is passed as an argv entry, so it is never
55
+ // subject to shell quoting/expansion. This also makes Windows paths with
56
+ // backslashes safe in the local-install path below.
57
+ await execFileAsync("copilot", ["plugin", "install", marketplaceRef]);
54
58
  return {
55
59
  attempted: true,
56
60
  installed: true,
@@ -78,7 +82,7 @@ async function tryMarketplaceInstall(marketplaceRef) {
78
82
  */
79
83
  async function tryLocalInstall(localPath) {
80
84
  try {
81
- await execAsync(`copilot plugin install ${JSON.stringify(localPath)}`);
85
+ await execFileAsync("copilot", ["plugin", "install", localPath]);
82
86
  return {
83
87
  attempted: true,
84
88
  installed: true,
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-installer.js","sourceRoot":"","sources":["../../src/copilot/plugin-installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-installer.js","sourceRoot":"","sources":["../../src/copilot/plugin-installer.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,26 @@ export type Harness = "claude" | "codex" | "cursor" | "agy" | "copilot" | "both"
34
34
  * All valid harness values, in canonical order
35
35
  */
36
36
  export declare const HARNESS_VALUES: readonly Harness[];
37
+ /**
38
+ * Per-project emit agents that have a dispatch path in `lisa apply`.
39
+ * (Cursor is intentionally absent — it needs no per-project writes; it consumes
40
+ * the `lisa-cursor` plugin variant directly via its marketplace/loader.)
41
+ */
42
+ export type EmitAgent = "claude" | "codex" | "agy" | "copilot";
43
+ /**
44
+ * Whether a configured harness should emit artifacts for a given agent.
45
+ *
46
+ * Centralizes the dispatch-inclusion rule so the four `process<Agent>Emit`
47
+ * guards stay consistent: a `"fleet"` harness includes every agent, `"both"`
48
+ * is the Claude+Codex back-compat pair, and any single-agent harness matches
49
+ * only itself. (A prior copy-paste left `"fleet"` out of the Codex guard, so
50
+ * fleet installs silently skipped Codex — this predicate prevents that class
51
+ * of bug.)
52
+ * @param harness - The configured/CLI-resolved harness value.
53
+ * @param agent - The emit agent whose dispatch is being gated.
54
+ * @returns True when the harness should run that agent's emit path.
55
+ */
56
+ export declare function harnessIncludesAgent(harness: Harness, agent: EmitAgent): boolean;
37
57
  /**
38
58
  * Default harness when none is configured (backward compatibility — existing
39
59
  * host projects predate Codex support and have always emitted .claude/ artifacts)
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,26 @@ export const HARNESS_VALUES = [
45
45
  "both",
46
46
  "fleet",
47
47
  ];
48
+ /**
49
+ * Whether a configured harness should emit artifacts for a given agent.
50
+ *
51
+ * Centralizes the dispatch-inclusion rule so the four `process<Agent>Emit`
52
+ * guards stay consistent: a `"fleet"` harness includes every agent, `"both"`
53
+ * is the Claude+Codex back-compat pair, and any single-agent harness matches
54
+ * only itself. (A prior copy-paste left `"fleet"` out of the Codex guard, so
55
+ * fleet installs silently skipped Codex — this predicate prevents that class
56
+ * of bug.)
57
+ * @param harness - The configured/CLI-resolved harness value.
58
+ * @param agent - The emit agent whose dispatch is being gated.
59
+ * @returns True when the harness should run that agent's emit path.
60
+ */
61
+ export function harnessIncludesAgent(harness, agent) {
62
+ if (harness === "fleet")
63
+ return true;
64
+ if (harness === "both")
65
+ return agent === "claude" || agent === "codex";
66
+ return harness === agent;
67
+ }
48
68
  /**
49
69
  * Default harness when none is configured (backward compatibility — existing
50
70
  * host projects predate Codex support and have always emitted .claude/ artifacts)
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAuBA;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAE/B;IACF,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,YAAY;IACpB,GAAG,EAAE,YAAY;IACjB,eAAe,EAAE,YAAY;IAC7B,aAAa,EAAE,YAAY;IAC3B,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;CACR,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,YAAY;IACZ,aAAa;IACb,eAAe;IACf,MAAM;IACN,QAAQ;IACR,KAAK;IACL,OAAO;CACC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA4B;IACtD,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,OAAO;IACP,cAAc;IACd,cAAc;CACN,CAAC;AAsBX;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAuB;IAChD,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,SAAS;IACT,MAAM;IACN,OAAO;CACC,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAY,QAAQ,CAAC;AAqFjD;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,CAAC;KACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAuBA;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAE/B;IACF,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,YAAY;IACpB,GAAG,EAAE,YAAY;IACjB,eAAe,EAAE,YAAY;IAC7B,aAAa,EAAE,YAAY;IAC3B,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;CACR,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,YAAY;IACZ,aAAa;IACb,eAAe;IACf,MAAM;IACN,QAAQ;IACR,KAAK;IACL,OAAO;CACC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA4B;IACtD,gBAAgB;IAChB,eAAe;IACf,aAAa;IACb,OAAO;IACP,cAAc;IACd,cAAc;CACN,CAAC;AAsBX;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAuB;IAChD,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,SAAS;IACT,MAAM;IACN,OAAO;CACC,CAAC;AASX;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,KAAgB;IAEhB,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,CAAC;IACvE,OAAO,OAAO,KAAK,KAAK,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAY,QAAQ,CAAC;AAqFjD;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,iBAAiB,EAAE,CAAC;QACpB,iBAAiB,EAAE,CAAC;KACrB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lisa.d.ts","sourceRoot":"","sources":["../../src/core/lisa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lisa.d.ts","sourceRoot":"","sources":["../../src/core/lisa.ts"],"names":[],"mappings":"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"}
package/dist/core/lisa.js CHANGED
@@ -19,7 +19,7 @@ import { DestinationNotDirectoryError, DestinationNotFoundError, UserAbortedErro
19
19
  import { listFilesRecursive } from "../utils/file-operations.js";
20
20
  import { loadIgnorePatterns, } from "../utils/ignore-patterns.js";
21
21
  import { getLisaDistDir, hashFile, isRunningAsTrampoline, regenerateLockfilesInProcess, scheduleReconciliationChild, shouldSchedulePostinstallReconciliation, } from "../utils/postinstall-trampoline.js";
22
- import { COPY_STRATEGIES, createInitialCounters } from "./config.js";
22
+ import { COPY_STRATEGIES, createInitialCounters, harnessIncludesAgent, } from "./config.js";
23
23
  /**
24
24
  * Main Lisa orchestrator
25
25
  */
@@ -594,7 +594,7 @@ export class Lisa {
594
594
  */
595
595
  async processCodexEmit() {
596
596
  const { harness } = this.config;
597
- if (harness !== "codex" && harness !== "both") {
597
+ if (!harnessIncludesAgent(harness, "codex")) {
598
598
  return;
599
599
  }
600
600
  if (this.config.dryRun) {
@@ -633,7 +633,7 @@ export class Lisa {
633
633
  */
634
634
  async processClaudeEmit() {
635
635
  const { harness } = this.config;
636
- if (harness !== "claude" && harness !== "both" && harness !== "fleet") {
636
+ if (!harnessIncludesAgent(harness, "claude")) {
637
637
  return;
638
638
  }
639
639
  if (this.config.dryRun) {
@@ -660,7 +660,7 @@ export class Lisa {
660
660
  */
661
661
  async processAgyEmit() {
662
662
  const { harness } = this.config;
663
- if (harness !== "agy" && harness !== "fleet") {
663
+ if (!harnessIncludesAgent(harness, "agy")) {
664
664
  return;
665
665
  }
666
666
  if (this.config.dryRun) {
@@ -669,7 +669,11 @@ export class Lisa {
669
669
  }
670
670
  const pluginRoot = path.join(this.config.lisaDir, "plugins");
671
671
  const pluginResult = await installAgyPlugin(pluginRoot);
672
- const rulesEagerDir = path.join(pluginRoot, "lisa-agy", "rules", "eager");
672
+ // Bake source is the BASE plugin's eager rules, not the agy variant's: the
673
+ // agy generator strips rules/ from the variant (agy doesn't auto-load plugin
674
+ // rules), so lisa-agy/rules/eager is empty. The canonical rule content lives
675
+ // in lisa/rules/eager and is what gets baked into AGENTS.md.
676
+ const rulesEagerDir = path.join(pluginRoot, "lisa", "rules", "eager");
673
677
  const agentsMdResult = await installAgyAgentsMd(this.config.destDir, rulesEagerDir);
674
678
  const pluginMessage = pluginResult.attempted
675
679
  ? pluginResult.installed
@@ -689,7 +693,7 @@ export class Lisa {
689
693
  */
690
694
  async processCopilotEmit() {
691
695
  const { harness } = this.config;
692
- if (harness !== "copilot" && harness !== "fleet") {
696
+ if (!harnessIncludesAgent(harness, "copilot")) {
693
697
  return;
694
698
  }
695
699
  if (this.config.dryRun) {