@codyswann/lisa 3.26.1 → 3.26.2
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/all/copy-overwrite/scripts/check-state-classification.mjs +31 -0
- package/all/copy-overwrite/scripts/lisa-gates.mjs +10 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +3 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +21 -21
- 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-atlassian-access/scripts/markdown-to-adf.mjs +23 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +31 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-remote-dispatch/scripts/dispatch.mjs +30 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +25 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/inspect-vault.mjs +23 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +24 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/read-secret-note.mjs +25 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/resolve-secret.mjs +25 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/rotate-secret.mjs +25 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +25 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/validate-config.mjs +25 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-automations/scripts/generate-workflow.mjs +31 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-local-env/scripts/local-env.mjs +24 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +23 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +25 -2
- package/plugins/lisa/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +23 -1
- package/plugins/lisa/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +31 -2
- package/plugins/lisa/skills/lisa-remote-dispatch/scripts/dispatch.mjs +30 -2
- package/plugins/lisa/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +25 -1
- package/plugins/lisa/skills/lisa-secrets-access/scripts/inspect-vault.mjs +23 -1
- package/plugins/lisa/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +24 -1
- package/plugins/lisa/skills/lisa-secrets-access/scripts/read-secret-note.mjs +25 -2
- package/plugins/lisa/skills/lisa-secrets-access/scripts/resolve-secret.mjs +25 -2
- package/plugins/lisa/skills/lisa-secrets-access/scripts/rotate-secret.mjs +25 -2
- package/plugins/lisa/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +25 -1
- package/plugins/lisa/skills/lisa-secrets-access/scripts/validate-config.mjs +25 -2
- package/plugins/lisa/skills/lisa-setup-automations/scripts/generate-workflow.mjs +31 -2
- package/plugins/lisa/skills/lisa-setup-local-env/scripts/local-env.mjs +24 -2
- package/plugins/lisa/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +23 -1
- package/plugins/lisa/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +25 -2
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +23 -1
- package/plugins/lisa-agy/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +31 -2
- package/plugins/lisa-agy/skills/lisa-remote-dispatch/scripts/dispatch.mjs +30 -2
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +25 -1
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/inspect-vault.mjs +23 -1
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +24 -1
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/read-secret-note.mjs +25 -2
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/resolve-secret.mjs +25 -2
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/rotate-secret.mjs +25 -2
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +25 -1
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/validate-config.mjs +25 -2
- package/plugins/lisa-agy/skills/lisa-setup-automations/scripts/generate-workflow.mjs +31 -2
- package/plugins/lisa-agy/skills/lisa-setup-local-env/scripts/local-env.mjs +24 -2
- package/plugins/lisa-agy/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +23 -1
- package/plugins/lisa-agy/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +25 -2
- 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-atlassian-access/scripts/markdown-to-adf.mjs +23 -1
- package/plugins/lisa-copilot/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +31 -2
- package/plugins/lisa-copilot/skills/lisa-remote-dispatch/scripts/dispatch.mjs +30 -2
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +25 -1
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/inspect-vault.mjs +23 -1
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +24 -1
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/read-secret-note.mjs +25 -2
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/resolve-secret.mjs +25 -2
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/rotate-secret.mjs +25 -2
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +25 -1
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/validate-config.mjs +25 -2
- package/plugins/lisa-copilot/skills/lisa-setup-automations/scripts/generate-workflow.mjs +31 -2
- package/plugins/lisa-copilot/skills/lisa-setup-local-env/scripts/local-env.mjs +24 -2
- package/plugins/lisa-copilot/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +23 -1
- package/plugins/lisa-copilot/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +25 -2
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +23 -1
- package/plugins/lisa-cursor/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +31 -2
- package/plugins/lisa-cursor/skills/lisa-remote-dispatch/scripts/dispatch.mjs +30 -2
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +25 -1
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/inspect-vault.mjs +23 -1
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +24 -1
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/read-secret-note.mjs +25 -2
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/resolve-secret.mjs +25 -2
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/rotate-secret.mjs +25 -2
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +25 -1
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/validate-config.mjs +25 -2
- package/plugins/lisa-cursor/skills/lisa-setup-automations/scripts/generate-workflow.mjs +31 -2
- package/plugins/lisa-cursor/skills/lisa-setup-local-env/scripts/local-env.mjs +24 -2
- package/plugins/lisa-cursor/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +23 -1
- package/plugins/lisa-cursor/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +25 -2
- 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-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +23 -1
- package/plugins/src/base/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +31 -2
- package/plugins/src/base/skills/lisa-remote-dispatch/scripts/dispatch.mjs +30 -2
- package/plugins/src/base/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +25 -1
- package/plugins/src/base/skills/lisa-secrets-access/scripts/inspect-vault.mjs +23 -1
- package/plugins/src/base/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +24 -1
- package/plugins/src/base/skills/lisa-secrets-access/scripts/read-secret-note.mjs +25 -2
- package/plugins/src/base/skills/lisa-secrets-access/scripts/resolve-secret.mjs +25 -2
- package/plugins/src/base/skills/lisa-secrets-access/scripts/rotate-secret.mjs +25 -2
- package/plugins/src/base/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +25 -1
- package/plugins/src/base/skills/lisa-secrets-access/scripts/validate-config.mjs +25 -2
- package/plugins/src/base/skills/lisa-setup-automations/scripts/generate-workflow.mjs +31 -2
- package/plugins/src/base/skills/lisa-setup-local-env/scripts/local-env.mjs +24 -2
- package/plugins/src/base/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +23 -1
- package/plugins/src/base/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +25 -2
- package/scripts/generate-agy-plugin-artifacts.mjs +2 -1
- package/scripts/generate-copilot-plugin-artifacts.mjs +2 -1
- package/scripts/generate-cursor-plugin-artifacts.mjs +2 -1
- package/typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs +14 -3
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* @module local-env
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
|
-
import { existsSync } from "node:fs";
|
|
26
|
+
import { existsSync, realpathSync } from "node:fs";
|
|
27
27
|
import { dirname, resolve } from "node:path";
|
|
28
28
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
29
29
|
|
|
@@ -159,7 +159,29 @@ export async function run(argv) {
|
|
|
159
159
|
return 0;
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
|
|
162
|
+
/**
|
|
163
|
+
* Whether this module is the one node was asked to run.
|
|
164
|
+
*
|
|
165
|
+
* Both sides are realpath'd: a raw URL comparison answers "no" through a
|
|
166
|
+
* symlinked checkout, a git worktree, or a /tmp path on macOS, so the module
|
|
167
|
+
* loads, runs nothing and exits 0 — a silent no-op that reads as success.
|
|
168
|
+
*
|
|
169
|
+
* A local copy rather than an import: plugin payload scripts ship standalone,
|
|
170
|
+
* with no `lib/` sibling to import from once installed.
|
|
171
|
+
* @param {string} moduleUrl - The caller's own `import.meta.url`.
|
|
172
|
+
* @param {string | undefined} [argv1] - Entry path; defaults to `process.argv[1]`.
|
|
173
|
+
* @returns {boolean} Whether the caller should run its CLI body.
|
|
174
|
+
*/
|
|
175
|
+
function invokedAsScript(moduleUrl, argv1 = process.argv[1]) {
|
|
176
|
+
if (!argv1) return false;
|
|
177
|
+
try {
|
|
178
|
+
return realpathSync(argv1) === realpathSync(fileURLToPath(moduleUrl));
|
|
179
|
+
} catch {
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (invokedAsScript(import.meta.url)) {
|
|
163
185
|
const argv = {
|
|
164
186
|
installTools: process.argv.includes("--install-tools"),
|
|
165
187
|
dryRun: process.argv.includes("--dry-run"),
|
|
@@ -1519,7 +1519,29 @@ async function main() {
|
|
|
1519
1519
|
console.log(`\nRemote environment ${dryRun ? "plan complete" : "ready"}.`);
|
|
1520
1520
|
}
|
|
1521
1521
|
|
|
1522
|
-
|
|
1522
|
+
/**
|
|
1523
|
+
* Whether this module is the one node was asked to run.
|
|
1524
|
+
*
|
|
1525
|
+
* Both sides are realpath'd: a raw URL comparison answers "no" through a
|
|
1526
|
+
* symlinked checkout, a git worktree, or a /tmp path on macOS, so the module
|
|
1527
|
+
* loads, runs nothing and exits 0 — a silent no-op that reads as success.
|
|
1528
|
+
*
|
|
1529
|
+
* A local copy rather than an import: plugin payload scripts ship standalone,
|
|
1530
|
+
* with no `lib/` sibling to import from once installed.
|
|
1531
|
+
* @param {string} moduleUrl - The caller's own `import.meta.url`.
|
|
1532
|
+
* @param {string | undefined} [argv1] - Entry path; defaults to `process.argv[1]`.
|
|
1533
|
+
* @returns {boolean} Whether the caller should run its CLI body.
|
|
1534
|
+
*/
|
|
1535
|
+
function invokedAsScript(moduleUrl, argv1 = process.argv[1]) {
|
|
1536
|
+
if (!argv1) return false;
|
|
1537
|
+
try {
|
|
1538
|
+
return realpathSync(argv1) === realpathSync(fileURLToPath(moduleUrl));
|
|
1539
|
+
} catch {
|
|
1540
|
+
return false;
|
|
1541
|
+
}
|
|
1542
|
+
}
|
|
1543
|
+
|
|
1544
|
+
if (invokedAsScript(import.meta.url)) {
|
|
1523
1545
|
// Awaited rather than called bare: main is async, so a synchronous try/catch
|
|
1524
1546
|
// would let a rejected promise escape as an unhandled rejection and exit 0 —
|
|
1525
1547
|
// reporting a prepared environment that was never prepared.
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import { execFileSync } from "node:child_process";
|
|
25
|
-
import {
|
|
25
|
+
import { fileURLToPath } from "node:url";
|
|
26
|
+
import { existsSync, readFileSync, statSync, realpathSync } from "node:fs";
|
|
26
27
|
import { join } from "node:path";
|
|
27
28
|
|
|
28
29
|
import { probe, readRemoteEnvConfig } from "./setup-remote-env.mjs";
|
|
@@ -213,7 +214,29 @@ function main() {
|
|
|
213
214
|
console.log("\nRemote environment verified without revealing any value.");
|
|
214
215
|
}
|
|
215
216
|
|
|
216
|
-
|
|
217
|
+
/**
|
|
218
|
+
* Whether this module is the one node was asked to run.
|
|
219
|
+
*
|
|
220
|
+
* Both sides are realpath'd: a raw URL comparison answers "no" through a
|
|
221
|
+
* symlinked checkout, a git worktree, or a /tmp path on macOS, so the module
|
|
222
|
+
* loads, runs nothing and exits 0 — a silent no-op that reads as success.
|
|
223
|
+
*
|
|
224
|
+
* A local copy rather than an import: plugin payload scripts ship standalone,
|
|
225
|
+
* with no `lib/` sibling to import from once installed.
|
|
226
|
+
* @param {string} moduleUrl - The caller's own `import.meta.url`.
|
|
227
|
+
* @param {string | undefined} [argv1] - Entry path; defaults to `process.argv[1]`.
|
|
228
|
+
* @returns {boolean} Whether the caller should run its CLI body.
|
|
229
|
+
*/
|
|
230
|
+
function invokedAsScript(moduleUrl, argv1 = process.argv[1]) {
|
|
231
|
+
if (!argv1) return false;
|
|
232
|
+
try {
|
|
233
|
+
return realpathSync(argv1) === realpathSync(fileURLToPath(moduleUrl));
|
|
234
|
+
} catch {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
if (invokedAsScript(import.meta.url)) {
|
|
217
240
|
try {
|
|
218
241
|
main();
|
|
219
242
|
} catch (err) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.26.
|
|
3
|
+
"version": "3.26.2",
|
|
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.26.
|
|
3
|
+
"version": "3.26.2",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.26.
|
|
3
|
+
"version": "3.26.2",
|
|
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.26.
|
|
3
|
+
"version": "3.26.2",
|
|
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.26.
|
|
3
|
+
"version": "3.26.2",
|
|
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"
|
|
@@ -202,7 +202,29 @@ function parseInline(text) {
|
|
|
202
202
|
return nodes.length > 0 ? nodes : [{ type: "text", text: "" }];
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
-
|
|
205
|
+
/**
|
|
206
|
+
* Whether this module is the one node was asked to run.
|
|
207
|
+
*
|
|
208
|
+
* Both sides are realpath'd: a raw URL comparison answers "no" through a
|
|
209
|
+
* symlinked checkout, a git worktree, or a /tmp path on macOS, so the module
|
|
210
|
+
* loads, runs nothing and exits 0 — a silent no-op that reads as success.
|
|
211
|
+
*
|
|
212
|
+
* A local copy rather than an import: plugin payload scripts ship standalone,
|
|
213
|
+
* with no `lib/` sibling to import from once installed.
|
|
214
|
+
* @param {string} moduleUrl - The caller's own `import.meta.url`.
|
|
215
|
+
* @param {string | undefined} [argv1] - Entry path; defaults to `process.argv[1]`.
|
|
216
|
+
* @returns {boolean} Whether the caller should run its CLI body.
|
|
217
|
+
*/
|
|
218
|
+
function invokedAsScript(moduleUrl, argv1 = process.argv[1]) {
|
|
219
|
+
if (!argv1) return false;
|
|
220
|
+
try {
|
|
221
|
+
return realpathSync(argv1) === realpathSync(fileURLToPath(moduleUrl));
|
|
222
|
+
} catch {
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
if (invokedAsScript(import.meta.url)) {
|
|
206
228
|
let input = "";
|
|
207
229
|
process.stdin.setEncoding("utf8");
|
|
208
230
|
process.stdin.on("data", chunk => {
|
|
@@ -22,7 +22,14 @@
|
|
|
22
22
|
* @module detect-tooling
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
-
import {
|
|
25
|
+
import {
|
|
26
|
+
existsSync,
|
|
27
|
+
readFileSync,
|
|
28
|
+
readdirSync,
|
|
29
|
+
statSync,
|
|
30
|
+
realpathSync,
|
|
31
|
+
} from "node:fs";
|
|
32
|
+
import { fileURLToPath } from "node:url";
|
|
26
33
|
import { join } from "node:path";
|
|
27
34
|
|
|
28
35
|
import { commandsIn } from "./commands.mjs";
|
|
@@ -583,7 +590,29 @@ export function proposedEntries(proposal) {
|
|
|
583
590
|
};
|
|
584
591
|
}
|
|
585
592
|
|
|
586
|
-
|
|
593
|
+
/**
|
|
594
|
+
* Whether this module is the one node was asked to run.
|
|
595
|
+
*
|
|
596
|
+
* Both sides are realpath'd: a raw URL comparison answers "no" through a
|
|
597
|
+
* symlinked checkout, a git worktree, or a /tmp path on macOS, so the module
|
|
598
|
+
* loads, runs nothing and exits 0 — a silent no-op that reads as success.
|
|
599
|
+
*
|
|
600
|
+
* A local copy rather than an import: plugin payload scripts ship standalone,
|
|
601
|
+
* with no `lib/` sibling to import from once installed.
|
|
602
|
+
* @param {string} moduleUrl - The caller's own `import.meta.url`.
|
|
603
|
+
* @param {string | undefined} [argv1] - Entry path; defaults to `process.argv[1]`.
|
|
604
|
+
* @returns {boolean} Whether the caller should run its CLI body.
|
|
605
|
+
*/
|
|
606
|
+
function invokedAsScript(moduleUrl, argv1 = process.argv[1]) {
|
|
607
|
+
if (!argv1) return false;
|
|
608
|
+
try {
|
|
609
|
+
return realpathSync(argv1) === realpathSync(fileURLToPath(moduleUrl));
|
|
610
|
+
} catch {
|
|
611
|
+
return false;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
if (invokedAsScript(import.meta.url)) {
|
|
587
616
|
const proposals = detectTooling();
|
|
588
617
|
if (process.argv.includes("--json")) {
|
|
589
618
|
console.log(JSON.stringify(proposals, null, 2));
|
|
@@ -20,7 +20,13 @@
|
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
22
|
import { execFileSync } from "node:child_process";
|
|
23
|
-
import {
|
|
23
|
+
import {
|
|
24
|
+
existsSync,
|
|
25
|
+
mkdirSync,
|
|
26
|
+
readFileSync,
|
|
27
|
+
writeFileSync,
|
|
28
|
+
realpathSync,
|
|
29
|
+
} from "node:fs";
|
|
24
30
|
import { dirname, join, resolve } from "node:path";
|
|
25
31
|
import { fileURLToPath } from "node:url";
|
|
26
32
|
|
|
@@ -495,7 +501,29 @@ async function main() {
|
|
|
495
501
|
console.log(`recorded in ${LEDGER}; not polling — this process is done.`);
|
|
496
502
|
}
|
|
497
503
|
|
|
498
|
-
|
|
504
|
+
/**
|
|
505
|
+
* Whether this module is the one node was asked to run.
|
|
506
|
+
*
|
|
507
|
+
* Both sides are realpath'd: a raw URL comparison answers "no" through a
|
|
508
|
+
* symlinked checkout, a git worktree, or a /tmp path on macOS, so the module
|
|
509
|
+
* loads, runs nothing and exits 0 — a silent no-op that reads as success.
|
|
510
|
+
*
|
|
511
|
+
* A local copy rather than an import: plugin payload scripts ship standalone,
|
|
512
|
+
* with no `lib/` sibling to import from once installed.
|
|
513
|
+
* @param {string} moduleUrl - The caller's own `import.meta.url`.
|
|
514
|
+
* @param {string | undefined} [argv1] - Entry path; defaults to `process.argv[1]`.
|
|
515
|
+
* @returns {boolean} Whether the caller should run its CLI body.
|
|
516
|
+
*/
|
|
517
|
+
function invokedAsScript(moduleUrl, argv1 = process.argv[1]) {
|
|
518
|
+
if (!argv1) return false;
|
|
519
|
+
try {
|
|
520
|
+
return realpathSync(argv1) === realpathSync(fileURLToPath(moduleUrl));
|
|
521
|
+
} catch {
|
|
522
|
+
return false;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
if (invokedAsScript(import.meta.url)) {
|
|
499
527
|
// Awaited rather than called bare: one dispatch path is async, so a synchronous
|
|
500
528
|
// try/catch would let a rejection escape as an unhandled rejection and exit 0 —
|
|
501
529
|
// reporting dispatched work that was never accepted.
|