@codyswann/lisa 3.45.7 → 3.45.9
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/cli/doctor-traceability-gate.js +1 -1
- package/dist/cli/doctor-traceability-gate.js.map +1 -1
- package/dist/configs/eslint/slow.js +3 -3
- package/dist/configs/eslint/slow.js.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +4 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +11 -10
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/migrations/ensure-audit-ignore-local-exclusions.js +1 -1
- package/dist/migrations/ensure-audit-ignore-local-exclusions.js.map +1 -1
- package/dist/migrations/ensure-wiki-source-declared.js +2 -2
- package/dist/migrations/ensure-wiki-source-declared.js.map +1 -1
- package/expo/copy-overwrite/scripts/bdd/parse.mjs +1 -1
- package/expo/copy-overwrite/scripts/check-e2e-coverage.mjs +1 -1
- package/expo/create-only/.github/workflows/nightly-e2e-report.yml +2 -2
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +2 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/surfaces.mjs +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +2 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-workstation/scripts/cli.mjs +1 -1
- package/plugins/lisa/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +2 -2
- package/plugins/lisa/skills/lisa-secrets-access/scripts/surfaces.mjs +1 -1
- package/plugins/lisa/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +2 -2
- package/plugins/lisa/skills/lisa-setup-workstation/scripts/cli.mjs +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +2 -2
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/surfaces.mjs +1 -1
- package/plugins/lisa-agy/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +2 -2
- package/plugins/lisa-agy/skills/lisa-setup-workstation/scripts/cli.mjs +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +2 -2
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/surfaces.mjs +1 -1
- package/plugins/lisa-copilot/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +2 -2
- package/plugins/lisa-copilot/skills/lisa-setup-workstation/scripts/cli.mjs +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +2 -2
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/surfaces.mjs +1 -1
- package/plugins/lisa-cursor/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +2 -2
- package/plugins/lisa-cursor/skills/lisa-setup-workstation/scripts/cli.mjs +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/scripts/ensure-wiki.mjs +3 -3
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/scripts/ensure-wiki.mjs +3 -3
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/scripts/ensure-wiki.mjs +3 -3
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/scripts/ensure-wiki.mjs +3 -3
- package/plugins/src/base/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +2 -2
- package/plugins/src/base/skills/lisa-secrets-access/scripts/surfaces.mjs +1 -1
- package/plugins/src/base/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +2 -2
- package/plugins/src/base/skills/lisa-setup-workstation/scripts/cli.mjs +1 -1
- package/plugins/src/wiki/scripts/ensure-wiki.mjs +3 -3
- package/scripts/lisa-assert-eas-profile.mjs +1 -1
- package/typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.45.
|
|
3
|
+
"version": "3.45.9",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.45.
|
|
3
|
+
"version": "3.45.9",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.45.
|
|
3
|
+
"version": "3.45.9",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -94,10 +94,10 @@ const committed =
|
|
|
94
94
|
readJsonSafe(path.join(projectDir, ".lisa.config.json")) ?? {};
|
|
95
95
|
const local =
|
|
96
96
|
readJsonSafe(path.join(projectDir, ".lisa.config.local.json")) ?? {};
|
|
97
|
-
const wikiCfg = { ...
|
|
97
|
+
const wikiCfg = { ...committed.wiki, ...local.wiki };
|
|
98
98
|
const source = {
|
|
99
|
-
...
|
|
100
|
-
...
|
|
99
|
+
...committed.wiki?.source,
|
|
100
|
+
...local.wiki?.source,
|
|
101
101
|
};
|
|
102
102
|
const ttlSeconds = Number(
|
|
103
103
|
ttlOverride ?? wikiCfg.ttlSeconds ?? DEFAULT_TTL_SECONDS
|
|
@@ -94,10 +94,10 @@ const committed =
|
|
|
94
94
|
readJsonSafe(path.join(projectDir, ".lisa.config.json")) ?? {};
|
|
95
95
|
const local =
|
|
96
96
|
readJsonSafe(path.join(projectDir, ".lisa.config.local.json")) ?? {};
|
|
97
|
-
const wikiCfg = { ...
|
|
97
|
+
const wikiCfg = { ...committed.wiki, ...local.wiki };
|
|
98
98
|
const source = {
|
|
99
|
-
...
|
|
100
|
-
...
|
|
99
|
+
...committed.wiki?.source,
|
|
100
|
+
...local.wiki?.source,
|
|
101
101
|
};
|
|
102
102
|
const ttlSeconds = Number(
|
|
103
103
|
ttlOverride ?? wikiCfg.ttlSeconds ?? DEFAULT_TTL_SECONDS
|
|
@@ -94,10 +94,10 @@ const committed =
|
|
|
94
94
|
readJsonSafe(path.join(projectDir, ".lisa.config.json")) ?? {};
|
|
95
95
|
const local =
|
|
96
96
|
readJsonSafe(path.join(projectDir, ".lisa.config.local.json")) ?? {};
|
|
97
|
-
const wikiCfg = { ...
|
|
97
|
+
const wikiCfg = { ...committed.wiki, ...local.wiki };
|
|
98
98
|
const source = {
|
|
99
|
-
...
|
|
100
|
-
...
|
|
99
|
+
...committed.wiki?.source,
|
|
100
|
+
...local.wiki?.source,
|
|
101
101
|
};
|
|
102
102
|
const ttlSeconds = Number(
|
|
103
103
|
ttlOverride ?? wikiCfg.ttlSeconds ?? DEFAULT_TTL_SECONDS
|
|
@@ -94,10 +94,10 @@ const committed =
|
|
|
94
94
|
readJsonSafe(path.join(projectDir, ".lisa.config.json")) ?? {};
|
|
95
95
|
const local =
|
|
96
96
|
readJsonSafe(path.join(projectDir, ".lisa.config.local.json")) ?? {};
|
|
97
|
-
const wikiCfg = { ...
|
|
97
|
+
const wikiCfg = { ...committed.wiki, ...local.wiki };
|
|
98
98
|
const source = {
|
|
99
|
-
...
|
|
100
|
-
...
|
|
99
|
+
...committed.wiki?.source,
|
|
100
|
+
...local.wiki?.source,
|
|
101
101
|
};
|
|
102
102
|
const ttlSeconds = Number(
|
|
103
103
|
ttlOverride ?? wikiCfg.ttlSeconds ?? DEFAULT_TTL_SECONDS
|
|
@@ -443,8 +443,8 @@ export function satisfiedByNpm(pkg, tool) {
|
|
|
443
443
|
const viaNpm = KNOWN_TOOLS[tool]?.viaNpm;
|
|
444
444
|
if (!viaNpm) return false;
|
|
445
445
|
const declared = {
|
|
446
|
-
...
|
|
447
|
-
...
|
|
446
|
+
...pkg?.dependencies,
|
|
447
|
+
...pkg?.devDependencies,
|
|
448
448
|
};
|
|
449
449
|
return Object.hasOwn(declared, viaNpm);
|
|
450
450
|
}
|
|
@@ -308,7 +308,7 @@ export function readConfig(cwd = process.cwd(), env = process.env) {
|
|
|
308
308
|
rotating: cfg.rotating ?? [],
|
|
309
309
|
propagating: cfg.propagating ?? [],
|
|
310
310
|
namespace,
|
|
311
|
-
narrow: { ...DEFAULTS.narrow, ...
|
|
311
|
+
narrow: { ...DEFAULTS.narrow, ...cfg.narrow },
|
|
312
312
|
surface: cfg.surface ?? null,
|
|
313
313
|
routing,
|
|
314
314
|
configPath: path,
|
|
@@ -91,7 +91,7 @@ export function readRemoteEnvConfig(cwd = process.cwd()) {
|
|
|
91
91
|
const cfg = JSON.parse(readFileSync(path, "utf8")).remoteEnv;
|
|
92
92
|
if (!cfg) return defaults;
|
|
93
93
|
return {
|
|
94
|
-
tools: { require: [], install: [], ...
|
|
94
|
+
tools: { require: [], install: [], ...cfg.tools },
|
|
95
95
|
hook: cfg.hook ?? null,
|
|
96
96
|
surfaces: cfg.surfaces ?? {},
|
|
97
97
|
};
|
|
@@ -879,7 +879,7 @@ export function pinEnvironment(environmentId, cwd = process.cwd()) {
|
|
|
879
879
|
: {};
|
|
880
880
|
const merged = {
|
|
881
881
|
...existing,
|
|
882
|
-
remote: { ...
|
|
882
|
+
remote: { ...existing.remote, defaultEnvironmentId: environmentId },
|
|
883
883
|
};
|
|
884
884
|
writeFileSync(path, `${JSON.stringify(merged, null, 2)}\n`);
|
|
885
885
|
return path;
|
|
@@ -204,7 +204,7 @@ export async function run(argv, io = {}) {
|
|
|
204
204
|
|
|
205
205
|
let plan;
|
|
206
206
|
try {
|
|
207
|
-
plan = planWorkstation({ agents, tools, provider, ...
|
|
207
|
+
plan = planWorkstation({ agents, tools, provider, ...io.probes });
|
|
208
208
|
} catch (error) {
|
|
209
209
|
// A misspelled provider stops here rather than silently provisioning the
|
|
210
210
|
// wrong credential manager.
|
|
@@ -94,10 +94,10 @@ const committed =
|
|
|
94
94
|
readJsonSafe(path.join(projectDir, ".lisa.config.json")) ?? {};
|
|
95
95
|
const local =
|
|
96
96
|
readJsonSafe(path.join(projectDir, ".lisa.config.local.json")) ?? {};
|
|
97
|
-
const wikiCfg = { ...
|
|
97
|
+
const wikiCfg = { ...committed.wiki, ...local.wiki };
|
|
98
98
|
const source = {
|
|
99
|
-
...
|
|
100
|
-
...
|
|
99
|
+
...committed.wiki?.source,
|
|
100
|
+
...local.wiki?.source,
|
|
101
101
|
};
|
|
102
102
|
const ttlSeconds = Number(
|
|
103
103
|
ttlOverride ?? wikiCfg.ttlSeconds ?? DEFAULT_TTL_SECONDS
|
|
@@ -101,7 +101,7 @@ export function resolveProfile(profiles, name) {
|
|
|
101
101
|
const effective = {};
|
|
102
102
|
for (const link of chain) {
|
|
103
103
|
Object.assign(effective, link, {
|
|
104
|
-
env: { ...
|
|
104
|
+
env: { ...effective.env, ...link.env },
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
107
|
delete effective.extends;
|
|
@@ -69,8 +69,8 @@
|
|
|
69
69
|
*
|
|
70
70
|
* ## Inherited from three implementations, with one path closed
|
|
71
71
|
*
|
|
72
|
-
* `DECISIVE_CONCLUSIONS` comes from
|
|
73
|
-
* because it is the right vocabulary. What is NOT kept is
|
|
72
|
+
* `DECISIVE_CONCLUSIONS` comes from acmeorgb's `check-nightly-e2e.mjs` and is
|
|
73
|
+
* kept because it is the right vocabulary. What is NOT kept is acmeorgb's
|
|
74
74
|
* `unknown`-passes-with-a-warning: that is a fail-open path, and here `unknown`
|
|
75
75
|
* fails once bootstrap closes. The bypass model and the context-pinning
|
|
76
76
|
* discipline come from acmeorgd (TUN-525 / TUN-402). The job-name filter comes from
|
|
@@ -236,7 +236,7 @@ export const ISSUE_ACTIONS = Object.freeze({
|
|
|
236
236
|
*
|
|
237
237
|
* The reporter used to state, in every issue it filed, that "pull requests into
|
|
238
238
|
* `<branch>` are blocked". That sentence was a hardcoded claim about somebody
|
|
239
|
-
* else's branch ruleset, and in
|
|
239
|
+
* else's branch ruleset, and in one measured adopter it was measurably FALSE: not
|
|
240
240
|
* one required context on `dev` matched this gate, so the suite blocked nothing
|
|
241
241
|
* — while people burned audited bypass labels to clear a gate that was not
|
|
242
242
|
* gating. An issue that misstates its own consequences is worse than one that
|
|
@@ -265,8 +265,8 @@ export const REQUIREDNESS = Object.freeze({
|
|
|
265
265
|
* easily these two strings drift apart.
|
|
266
266
|
*
|
|
267
267
|
* Overridable via the `gate_context` input, because a repo that has not yet
|
|
268
|
-
* converged onto the template publishes a different string
|
|
269
|
-
* publishes the bare `🌙 Nightly E2E Health`, with no job suffix
|
|
268
|
+
* converged onto the template publishes a different string — one adopter's fork
|
|
269
|
+
* publishes the bare `🌙 Nightly E2E Health`, with no job suffix.
|
|
270
270
|
*/
|
|
271
271
|
export const DEFAULT_GATE_CONTEXT = "🌙 Nightly E2E Health / 🌙 Gate";
|
|
272
272
|
|
|
@@ -1858,7 +1858,7 @@ function meaningParagraph(claim, branch) {
|
|
|
1858
1858
|
* A bypass recipe printed unconditionally is how people end up applying an
|
|
1859
1859
|
* audited waiver label to a check that was never required — burning the audit
|
|
1860
1860
|
* trail the label exists to create, to buy a merge that was never blocked. That
|
|
1861
|
-
* happened in
|
|
1861
|
+
* happened in a measured adopter repository.
|
|
1862
1862
|
*
|
|
1863
1863
|
* @param {{state: string}} claim - Effective claim
|
|
1864
1864
|
* @param {{branch: string, bypassLabel: string}} context - Reporting context
|