@codyswann/lisa 4.85.0 → 4.86.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/dist/cli/doctor-session-manager-pending.d.ts +17 -0
- package/dist/cli/doctor-session-manager-pending.d.ts.map +1 -0
- package/dist/cli/doctor-session-manager-pending.js +130 -0
- package/dist/cli/doctor-session-manager-pending.js.map +1 -0
- package/dist/cli/doctor-session-manager-token.d.ts +69 -0
- package/dist/cli/doctor-session-manager-token.d.ts.map +1 -0
- package/dist/cli/doctor-session-manager-token.js +264 -0
- package/dist/cli/doctor-session-manager-token.js.map +1 -0
- package/dist/cli/doctor-session-manager.d.ts +3 -1
- package/dist/cli/doctor-session-manager.d.ts.map +1 -1
- package/dist/cli/doctor-session-manager.js +168 -146
- package/dist/cli/doctor-session-manager.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +158 -20
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/package.json +4 -4
- 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-secrets-access/SKILL.md +5 -3
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/providers.mjs +121 -3
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/validate-config.mjs +47 -26
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/SKILL.md +197 -54
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/references/runbook-template.md +23 -10
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-cycle.mjs +21 -3
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-human.mjs +199 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-manager-token.mjs +99 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-manager.mjs +52 -52
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-queue.mjs +51 -139
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-runtime.mjs +5 -3
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-setup.mjs +94 -14
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-status.mjs +73 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-usage.mjs +105 -15
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/config.mjs +39 -11
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/human-answer.mjs +162 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/human-needed.mjs +198 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/json-input.mjs +34 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/launch-shell.mjs +115 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/launch.mjs +69 -60
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/ledger-questions.mjs +252 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/ledger.mjs +22 -56
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/queue-github.mjs +117 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/session-manager.mjs +17 -5
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/token-migrate.mjs +180 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/token-provider.mjs +150 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/token-read.mjs +166 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/token-store.mjs +248 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/token.mjs +39 -120
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-session-manager/SKILL.md +82 -19
- package/plugins/lisa/commands/session-manager.md +1 -1
- package/plugins/lisa/commands/setup/session-manager.md +1 -1
- package/plugins/lisa/rules/reference/config-resolution.md +39 -7
- package/plugins/lisa/skills/lisa-secrets-access/SKILL.md +5 -3
- package/plugins/lisa/skills/lisa-secrets-access/scripts/providers.mjs +121 -3
- package/plugins/lisa/skills/lisa-secrets-access/scripts/validate-config.mjs +47 -26
- package/plugins/lisa/skills/lisa-session-manager/SKILL.md +197 -54
- package/plugins/lisa/skills/lisa-session-manager/references/runbook-template.md +23 -10
- package/plugins/lisa/skills/lisa-session-manager/scripts/cli-cycle.mjs +21 -3
- package/plugins/lisa/skills/lisa-session-manager/scripts/cli-human.mjs +199 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/cli-manager-token.mjs +99 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/cli-manager.mjs +52 -52
- package/plugins/lisa/skills/lisa-session-manager/scripts/cli-queue.mjs +51 -139
- package/plugins/lisa/skills/lisa-session-manager/scripts/cli-runtime.mjs +5 -3
- package/plugins/lisa/skills/lisa-session-manager/scripts/cli-setup.mjs +94 -14
- package/plugins/lisa/skills/lisa-session-manager/scripts/cli-status.mjs +73 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/cli-usage.mjs +105 -15
- package/plugins/lisa/skills/lisa-session-manager/scripts/config.mjs +39 -11
- package/plugins/lisa/skills/lisa-session-manager/scripts/human-answer.mjs +162 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/human-needed.mjs +198 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/json-input.mjs +34 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/launch-shell.mjs +115 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/launch.mjs +69 -60
- package/plugins/lisa/skills/lisa-session-manager/scripts/ledger-questions.mjs +252 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/ledger.mjs +22 -56
- package/plugins/lisa/skills/lisa-session-manager/scripts/queue-github.mjs +117 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/session-manager.mjs +17 -5
- package/plugins/lisa/skills/lisa-session-manager/scripts/token-migrate.mjs +180 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/token-provider.mjs +150 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/token-read.mjs +166 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/token-store.mjs +248 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/token.mjs +39 -120
- package/plugins/lisa/skills/lisa-setup-session-manager/SKILL.md +82 -19
- package/plugins/lisa-agy/commands/lisa/session-manager.md +1 -1
- package/plugins/lisa-agy/commands/lisa/setup/session-manager.md +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-secrets-access/SKILL.md +5 -3
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/providers.mjs +121 -3
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/validate-config.mjs +47 -26
- package/plugins/lisa-agy/skills/lisa-session-manager/SKILL.md +197 -54
- package/plugins/lisa-agy/skills/lisa-session-manager/references/runbook-template.md +23 -10
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-cycle.mjs +21 -3
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-human.mjs +199 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-manager-token.mjs +99 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-manager.mjs +52 -52
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-queue.mjs +51 -139
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-runtime.mjs +5 -3
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-setup.mjs +94 -14
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-status.mjs +73 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-usage.mjs +105 -15
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/config.mjs +39 -11
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/human-answer.mjs +162 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/human-needed.mjs +198 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/json-input.mjs +34 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/launch-shell.mjs +115 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/launch.mjs +69 -60
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/ledger-questions.mjs +252 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/ledger.mjs +22 -56
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/queue-github.mjs +117 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/session-manager.mjs +17 -5
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/token-migrate.mjs +180 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/token-provider.mjs +150 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/token-read.mjs +166 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/token-store.mjs +248 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/token.mjs +39 -120
- package/plugins/lisa-agy/skills/lisa-setup-session-manager/SKILL.md +82 -19
- 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-cdk-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/commands/lisa/session-manager.md +1 -1
- package/plugins/lisa-copilot/commands/lisa/setup/session-manager.md +1 -1
- package/plugins/lisa-copilot/rules/reference/config-resolution.md +39 -7
- package/plugins/lisa-copilot/skills/lisa-secrets-access/SKILL.md +5 -3
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/providers.mjs +121 -3
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/validate-config.mjs +47 -26
- package/plugins/lisa-copilot/skills/lisa-session-manager/SKILL.md +197 -54
- package/plugins/lisa-copilot/skills/lisa-session-manager/references/runbook-template.md +23 -10
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-cycle.mjs +21 -3
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-human.mjs +199 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-manager-token.mjs +99 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-manager.mjs +52 -52
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-queue.mjs +51 -139
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-runtime.mjs +5 -3
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-setup.mjs +94 -14
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-status.mjs +73 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-usage.mjs +105 -15
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/config.mjs +39 -11
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/human-answer.mjs +162 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/human-needed.mjs +198 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/json-input.mjs +34 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/launch-shell.mjs +115 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/launch.mjs +69 -60
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/ledger-questions.mjs +252 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/ledger.mjs +22 -56
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/queue-github.mjs +117 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/session-manager.mjs +17 -5
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/token-migrate.mjs +180 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/token-provider.mjs +150 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/token-read.mjs +166 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/token-store.mjs +248 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/token.mjs +39 -120
- package/plugins/lisa-copilot/skills/lisa-setup-session-manager/SKILL.md +82 -19
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/commands/lisa/session-manager.md +1 -1
- package/plugins/lisa-cursor/commands/lisa/setup/session-manager.md +1 -1
- package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +39 -7
- package/plugins/lisa-cursor/skills/lisa-secrets-access/SKILL.md +5 -3
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/providers.mjs +121 -3
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/validate-config.mjs +47 -26
- package/plugins/lisa-cursor/skills/lisa-session-manager/SKILL.md +197 -54
- package/plugins/lisa-cursor/skills/lisa-session-manager/references/runbook-template.md +23 -10
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-cycle.mjs +21 -3
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-human.mjs +199 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-manager-token.mjs +99 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-manager.mjs +52 -52
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-queue.mjs +51 -139
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-runtime.mjs +5 -3
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-setup.mjs +94 -14
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-status.mjs +73 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-usage.mjs +105 -15
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/config.mjs +39 -11
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/human-answer.mjs +162 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/human-needed.mjs +198 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/json-input.mjs +34 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/launch-shell.mjs +115 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/launch.mjs +69 -60
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/ledger-questions.mjs +252 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/ledger.mjs +22 -56
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/queue-github.mjs +117 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/session-manager.mjs +17 -5
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/token-migrate.mjs +180 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/token-provider.mjs +150 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/token-read.mjs +166 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/token-store.mjs +248 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/token.mjs +39 -120
- package/plugins/lisa-cursor/skills/lisa-setup-session-manager/SKILL.md +82 -19
- package/plugins/lisa-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-devin/rules/reference/config-resolution.md +39 -7
- package/plugins/lisa-devin/skills/lisa-secrets-access/SKILL.md +5 -3
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/providers.mjs +121 -3
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/validate-config.mjs +47 -26
- package/plugins/lisa-devin/skills/lisa-session-manager/SKILL.md +197 -54
- package/plugins/lisa-devin/skills/lisa-session-manager/references/runbook-template.md +23 -10
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-cycle.mjs +21 -3
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-human.mjs +199 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-manager-token.mjs +99 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-manager.mjs +52 -52
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-queue.mjs +51 -139
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-runtime.mjs +5 -3
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-setup.mjs +94 -14
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-status.mjs +73 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-usage.mjs +105 -15
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/config.mjs +39 -11
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/human-answer.mjs +162 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/human-needed.mjs +198 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/json-input.mjs +34 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/launch-shell.mjs +115 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/launch.mjs +69 -60
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/ledger-questions.mjs +252 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/ledger.mjs +22 -56
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/queue-github.mjs +117 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/session-manager.mjs +17 -5
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/token-migrate.mjs +180 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/token-provider.mjs +150 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/token-read.mjs +166 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/token-store.mjs +248 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/token.mjs +39 -120
- package/plugins/lisa-devin/skills/lisa-setup-session-manager/SKILL.md +82 -19
- 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-expo-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-devin/.devin-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-harper-fabric-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-devin/.devin-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-nestjs-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-devin/.devin-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-openclaw-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-devin/.devin-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-phaser-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-devin/.devin-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-rails-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-devin/.devin-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-typescript-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-devin/.devin-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/lisa-wiki-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/src/base/commands/session-manager.md +1 -1
- package/plugins/src/base/commands/setup/session-manager.md +1 -1
- package/plugins/src/base/rules/reference/config-resolution.md +39 -7
- package/plugins/src/base/skills/lisa-secrets-access/SKILL.md +5 -3
- package/plugins/src/base/skills/lisa-secrets-access/scripts/providers.mjs +121 -3
- package/plugins/src/base/skills/lisa-secrets-access/scripts/validate-config.mjs +47 -26
- package/plugins/src/base/skills/lisa-session-manager/SKILL.md +197 -54
- package/plugins/src/base/skills/lisa-session-manager/references/runbook-template.md +23 -10
- package/plugins/src/base/skills/lisa-session-manager/scripts/cli-cycle.mjs +21 -3
- package/plugins/src/base/skills/lisa-session-manager/scripts/cli-human.mjs +199 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/cli-manager-token.mjs +99 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/cli-manager.mjs +52 -52
- package/plugins/src/base/skills/lisa-session-manager/scripts/cli-queue.mjs +51 -139
- package/plugins/src/base/skills/lisa-session-manager/scripts/cli-runtime.mjs +5 -3
- package/plugins/src/base/skills/lisa-session-manager/scripts/cli-setup.mjs +94 -14
- package/plugins/src/base/skills/lisa-session-manager/scripts/cli-status.mjs +73 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/cli-usage.mjs +105 -15
- package/plugins/src/base/skills/lisa-session-manager/scripts/config.mjs +39 -11
- package/plugins/src/base/skills/lisa-session-manager/scripts/human-answer.mjs +162 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/human-needed.mjs +198 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/json-input.mjs +34 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/launch-shell.mjs +115 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/launch.mjs +69 -60
- package/plugins/src/base/skills/lisa-session-manager/scripts/ledger-questions.mjs +252 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/ledger.mjs +22 -56
- package/plugins/src/base/skills/lisa-session-manager/scripts/queue-github.mjs +117 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/session-manager.mjs +17 -5
- package/plugins/src/base/skills/lisa-session-manager/scripts/token-migrate.mjs +180 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/token-provider.mjs +150 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/token-read.mjs +166 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/token-store.mjs +248 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/token.mjs +39 -120
- package/plugins/src/base/skills/lisa-setup-session-manager/SKILL.md +82 -19
package/package.json
CHANGED
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
"qs": "^6.16.0"
|
|
190
190
|
},
|
|
191
191
|
"name": "@codyswann/lisa",
|
|
192
|
-
"version": "4.
|
|
192
|
+
"version": "4.86.0",
|
|
193
193
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
194
194
|
"main": "dist/index.js",
|
|
195
195
|
"exports": {
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"test": "tests"
|
|
348
348
|
},
|
|
349
349
|
"types": "./dist/index.d.ts",
|
|
350
|
-
"lisaReleaseCommit": "
|
|
351
|
-
"gitHead": "
|
|
352
|
-
"lisaReleaseTag": "v4.
|
|
350
|
+
"lisaReleaseCommit": "e3e3be6b38115b41fb7f83de27d26f8438b2794e",
|
|
351
|
+
"gitHead": "e3e3be6b38115b41fb7f83de27d26f8438b2794e",
|
|
352
|
+
"lisaReleaseTag": "v4.86.0"
|
|
353
353
|
}
|
|
@@ -3,7 +3,7 @@ name: lisa-secrets-access
|
|
|
3
3
|
description: "Vendor-neutral access layer for…"
|
|
4
4
|
allowed-tools: ["Bash", "Read", "Skill"]
|
|
5
5
|
---
|
|
6
|
-
Vendor-neutral access layer for secrets. Every skill and script that needs an API key MUST resolve it through this skill rather than reading a keychain, an .env file, or a provider CLI directly. Models two independent axes — the provider a secret lives in (Bitwarden, 1Password, AWS Secrets Manager, Doppler, Vault) and the surface the code runs on (local, GitHub Actions, Codex Cloud) — resolving environment first, then a materialized file where the surface has one, then the provider by exact key name. Enforces one store per secret, fails closed on duplicate names, reads usage metadata from the provider's own note field, and never writes. Rotating credentials route through the separate rotate-secret writer, and copying one into a second store (Bitwarden → GitHub Actions) routes through the separate sync-secret-to-ci propagator.
|
|
6
|
+
Vendor-neutral access layer for secrets. Every skill and script that needs an API key MUST resolve it through this skill rather than reading a keychain, an .env file, or a provider CLI directly. Models two independent axes — the provider a secret lives in (Bitwarden, 1Password, AWS Secrets Manager, Doppler, Vault) and the surface the code runs on (local, GitHub Actions, Codex Cloud) — resolving environment first, then a materialized file where the surface has one, then the provider by exact key name. Enforces one store per secret, fails closed on duplicate names, reads usage metadata from the provider's own note field, and never writes. Rotating credentials route through the separate rotate-secret writer, and copying one into a second store (Bitwarden → GitHub Actions) routes through the separate sync-secret-to-ci propagator; the session manager's Telegram bot token is stored through its own store-token, which uses this skill's provider write path.
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
# Secrets Access: $ARGUMENTS
|
|
@@ -275,6 +275,8 @@ No create, no update, no rotate. Writing secrets or their notes requires an auth
|
|
|
275
275
|
|
|
276
276
|
The two writers are siblings, not modes: `rotate-secret.mjs` replaces a value **at its source**, and `sync-secret-to-ci.mjs` copies one **into a second store** without touching the source. Each needs an authority the resolver must not hold, so each is its own program with its own declaration list.
|
|
277
277
|
|
|
278
|
+
A third, narrow writer lives outside this skill: the session manager's `store-token` (`lisa-session-manager/scripts/token-store.mjs`) stores the Telegram bot token as `TELEGRAM_BOT_TOKEN_<NAME>` through `providers.mjs` `createSecret` (a new record) or `writeSecret` (`--replace`), then reads it back through the ordinary provider view and compares hashes before deleting the plaintext file it replaces. It writes that one name only, and only when an operator runs it. `createSecret` is Bitwarden-only; on any other provider the operator creates the secret and `store-token` verifies it. Like `bws secret edit`, `bws secret create` (2.1.0) takes the value as a positional argument and its help offers no stdin or file option, so the value is in argv for the life of that one call: the same documented exception, confined the same way (no shell, `--output none`, and a failure message that never repeats the command line).
|
|
279
|
+
|
|
278
280
|
## Rotating credentials
|
|
279
281
|
|
|
280
282
|
A **consumable** credential is one where using it can invalidate the stored copy: an OAuth refresh token the issuer replaces on every exchange, a short-lived session, a single-use enrollment token. The defining property is not "OAuth" — it is that a successful use makes the value on record wrong.
|
|
@@ -368,9 +370,9 @@ Values never enter that process, so its output cannot leak one even if logged.
|
|
|
368
370
|
|
|
369
371
|
## Provider dispatch
|
|
370
372
|
|
|
371
|
-
| Provider | Read | Write (rotation
|
|
373
|
+
| Provider | Read | Write (rotation, and the session manager's `store-token`) |
|
|
372
374
|
| --- | --- | --- |
|
|
373
|
-
| `bitwarden` | `bws secret list --output json` → index by `key` | `bws secret edit`; temporary `create`/`delete` for AWS publication coordination |
|
|
375
|
+
| `bitwarden` | `bws secret list --output json` → index by `key` | `bws secret edit`; `bws secret create <KEY> <VALUE> <PROJECT_ID> --output none` for `store-token` (`createSecret`); temporary `create`/`delete` for AWS publication coordination |
|
|
374
376
|
| `doppler` | `doppler secrets download --no-file --format json` | not implemented |
|
|
375
377
|
| `env` | environment only; the provider is the environment | n/a |
|
|
376
378
|
| `1password` | `op read "op://<vault>/<name>/credential"` | not implemented |
|
|
@@ -701,6 +701,72 @@ export function rawByKey(cfg, key) {
|
|
|
701
701
|
return matches[0] ?? null;
|
|
702
702
|
}
|
|
703
703
|
|
|
704
|
+
/** A provider error that names a rate limit (HTTP 429). */
|
|
705
|
+
const RATE_LIMITED = /\b429\b|too many requests|rate.?limit/i;
|
|
706
|
+
|
|
707
|
+
/**
|
|
708
|
+
* Run a provider CLI whose argv carries a secret value, and never let that
|
|
709
|
+
* argv reach an error message.
|
|
710
|
+
*
|
|
711
|
+
* `execFileSync` puts the whole command line in its error (`Command failed:
|
|
712
|
+
* bws secret create KEY <value> ...`), so a failed write would print the very
|
|
713
|
+
* value it was writing. The rethrown error keeps only what a caller needs to
|
|
714
|
+
* act on: the operation, the exit status and whether the provider
|
|
715
|
+
* rate-limited the call. Every other error (a missing binary's
|
|
716
|
+
* `spawnSync bws ENOENT`, a deadline {@link run} already reworded) is
|
|
717
|
+
* rebuilt too, keeping only its message (with the value redacted) and its
|
|
718
|
+
* `code`/`errno`/`syscall`/`status`/`signal`: Node's spawn errors also carry
|
|
719
|
+
* `spawnargs`, the full argv, value included, which a caller that logs or
|
|
720
|
+
* serializes the error would publish.
|
|
721
|
+
* @param {string} bin Executable name.
|
|
722
|
+
* @param {string[]} args Arguments, one of them a secret value.
|
|
723
|
+
* @param {NodeJS.ProcessEnv} env Environment for the child.
|
|
724
|
+
* @param {string} operation What the call was doing, in operator words.
|
|
725
|
+
* @param {string} value The secret value in `args`, redacted from any error.
|
|
726
|
+
* @returns {string} Captured stdout.
|
|
727
|
+
*/
|
|
728
|
+
function runWithValue(bin, args, env, operation, value) {
|
|
729
|
+
try {
|
|
730
|
+
return run(bin, args, env, operation);
|
|
731
|
+
} catch (error) {
|
|
732
|
+
// Node's "Command failed: <command line>" error carries argv in its text.
|
|
733
|
+
if (!String(error?.message ?? "").startsWith("Command failed")) {
|
|
734
|
+
throw withoutArgv(error, value);
|
|
735
|
+
}
|
|
736
|
+
const why = RATE_LIMITED.test(String(error.stderr ?? ""))
|
|
737
|
+
? "the provider rate-limited the request (429 Too Many Requests)"
|
|
738
|
+
: "the provider refused the request or could not be reached";
|
|
739
|
+
throw new Error(
|
|
740
|
+
`${operation} failed (exit ${error.status ?? error.signal}): ${why}. ` +
|
|
741
|
+
`The command's own output is withheld because its arguments carry ` +
|
|
742
|
+
`the secret value.`
|
|
743
|
+
);
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
/** The fields of a spawn error that carry no argv, output or value. */
|
|
748
|
+
const SAFE_ERROR_FIELDS = ["code", "errno", "syscall", "status", "signal"];
|
|
749
|
+
|
|
750
|
+
/**
|
|
751
|
+
* A copy of a child-process error with no argv on it: a fresh Error whose
|
|
752
|
+
* message has `value` redacted, and only {@link SAFE_ERROR_FIELDS}. Drops
|
|
753
|
+
* `spawnargs`, `cmd`, `path`, `stdout`, `stderr` and `output`.
|
|
754
|
+
* @param {unknown} error What the call threw.
|
|
755
|
+
* @param {string} value The secret value to redact.
|
|
756
|
+
* @returns {Error} The rebuilt error.
|
|
757
|
+
*/
|
|
758
|
+
function withoutArgv(error, value) {
|
|
759
|
+
const text = String(error?.message ?? error);
|
|
760
|
+
const message = value ? text.split(String(value)).join("<redacted>") : text;
|
|
761
|
+
const safe = Object.fromEntries(
|
|
762
|
+
SAFE_ERROR_FIELDS.filter(key => error?.[key] !== undefined).map(key => [
|
|
763
|
+
key,
|
|
764
|
+
error[key],
|
|
765
|
+
])
|
|
766
|
+
);
|
|
767
|
+
return Object.assign(new Error(message), safe);
|
|
768
|
+
}
|
|
769
|
+
|
|
704
770
|
/**
|
|
705
771
|
* Write a replacement value back to the provider.
|
|
706
772
|
*
|
|
@@ -709,7 +775,8 @@ export function rawByKey(cfg, key) {
|
|
|
709
775
|
* Bitwarden CLI exposes no stdin path for an edit, so this is a documented
|
|
710
776
|
* exception rather than an oversight: it is confined to the one operation that
|
|
711
777
|
* cannot be expressed otherwise, and `execFileSync` at least keeps the value
|
|
712
|
-
* out of a shell and therefore out of shell history.
|
|
778
|
+
* out of a shell and therefore out of shell history. A failure is reported
|
|
779
|
+
* through {@link runWithValue}, so the value never reaches the error either.
|
|
713
780
|
* @param {object} cfg Resolved configuration.
|
|
714
781
|
* @param {string} id Provider-side identifier for the secret.
|
|
715
782
|
* @param {string} value Replacement value.
|
|
@@ -718,11 +785,12 @@ export function writeSecret(cfg, id, value) {
|
|
|
718
785
|
const env = providerEnv(cfg);
|
|
719
786
|
|
|
720
787
|
if (cfg.provider === "bitwarden") {
|
|
721
|
-
|
|
788
|
+
runWithValue(
|
|
722
789
|
"bws",
|
|
723
790
|
["secret", "edit", id, "--value", value],
|
|
724
791
|
env,
|
|
725
|
-
"updating a secret in Bitwarden"
|
|
792
|
+
"updating a secret in Bitwarden",
|
|
793
|
+
value
|
|
726
794
|
);
|
|
727
795
|
return;
|
|
728
796
|
}
|
|
@@ -732,6 +800,56 @@ export function writeSecret(cfg, id, value) {
|
|
|
732
800
|
);
|
|
733
801
|
}
|
|
734
802
|
|
|
803
|
+
/**
|
|
804
|
+
* Create one new secret in the provider.
|
|
805
|
+
*
|
|
806
|
+
* The one caller is the session manager's `store-token` (#4555), which moves
|
|
807
|
+
* the Telegram bot token out of a plaintext file and into the vault, then
|
|
808
|
+
* reads it back to prove the write before deleting the file. It never
|
|
809
|
+
* replaces an existing record: that is {@link writeSecret}'s job.
|
|
810
|
+
*
|
|
811
|
+
* The value is a positional argument, the same documented exception as
|
|
812
|
+
* {@link writeSecret}: `bws secret create` (2.1.0) takes `<KEY> <VALUE>
|
|
813
|
+
* <PROJECT_ID>` and its help lists no stdin or file option for the value, so
|
|
814
|
+
* there is no way to keep it out of argv. `execFileSync` keeps it out of a
|
|
815
|
+
* shell, `--output none` keeps the created record (value included) off
|
|
816
|
+
* stdout, and {@link runWithValue} keeps it out of any error.
|
|
817
|
+
*
|
|
818
|
+
* Bitwarden only. Other providers fail with a message naming where to add
|
|
819
|
+
* one; until then the operator creates the secret in the vault themselves.
|
|
820
|
+
* @param {object} cfg Resolved configuration.
|
|
821
|
+
* @param {{name: string, value: string, projectId: string, note?: string}}
|
|
822
|
+
* secret Exact key, value, target provider project and usage note.
|
|
823
|
+
*/
|
|
824
|
+
export function createSecret(cfg, { name, value, projectId, note }) {
|
|
825
|
+
if (!ENV_KEY.test(name)) {
|
|
826
|
+
throw new Error(`secret name is not an environment variable name: ${name}`);
|
|
827
|
+
}
|
|
828
|
+
if (cfg.provider === "bitwarden") {
|
|
829
|
+
runWithValue(
|
|
830
|
+
"bws",
|
|
831
|
+
[
|
|
832
|
+
"secret",
|
|
833
|
+
"create",
|
|
834
|
+
name,
|
|
835
|
+
value,
|
|
836
|
+
projectId,
|
|
837
|
+
...(note ? ["--note", note] : []),
|
|
838
|
+
"--output",
|
|
839
|
+
"none",
|
|
840
|
+
],
|
|
841
|
+
providerEnv(cfg),
|
|
842
|
+
"creating a secret in Bitwarden",
|
|
843
|
+
value
|
|
844
|
+
);
|
|
845
|
+
return;
|
|
846
|
+
}
|
|
847
|
+
throw new Error(
|
|
848
|
+
`provider "${cfg.provider}" has no create implemented.\n` +
|
|
849
|
+
`Create the secret in the provider yourself, or add one in providers.mjs.`
|
|
850
|
+
);
|
|
851
|
+
}
|
|
852
|
+
|
|
735
853
|
/**
|
|
736
854
|
* Create one provider-issued publication contender in the target project.
|
|
737
855
|
*
|
|
@@ -664,12 +664,19 @@ const STALL_RULES = {
|
|
|
664
664
|
requestionHours: [n => n >= 0, "zero or a positive number"],
|
|
665
665
|
};
|
|
666
666
|
|
|
667
|
+
/** Notification providers `sessionManager.notify.provider` accepts. */
|
|
668
|
+
const NOTIFY_PROVIDERS = ["none", "telegram"];
|
|
669
|
+
|
|
667
670
|
/**
|
|
668
671
|
* Validate `sessionManager.notify`.
|
|
669
672
|
*
|
|
670
|
-
*
|
|
671
|
-
*
|
|
672
|
-
*
|
|
673
|
+
* A notification channel is optional (#4555): an absent block, an absent
|
|
674
|
+
* provider and `"none"` all mean the manager runs with no channel, and then
|
|
675
|
+
* there is no state dir to name. A `stateDir` without the telegram provider is
|
|
676
|
+
* refused rather than ignored, because it means the operator believes a bot is
|
|
677
|
+
* attached when none will be. For telegram, `stateDir` is required rather than
|
|
678
|
+
* defaulted here: the default dir is shared by every project, and a shared dir
|
|
679
|
+
* is exactly how one project's bot gets taken over by another's session.
|
|
673
680
|
* @param {unknown} notify The declared value.
|
|
674
681
|
* @returns {string[]} Problems found.
|
|
675
682
|
*/
|
|
@@ -677,31 +684,42 @@ function validateNotify(notify) {
|
|
|
677
684
|
if (notify !== undefined && !isPlainObject(notify)) {
|
|
678
685
|
return ["sessionManager.notify must be an object"];
|
|
679
686
|
}
|
|
680
|
-
const provider = notify?.provider;
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
`"
|
|
695
|
-
|
|
696
|
-
|
|
687
|
+
const provider = notify?.provider ?? "none";
|
|
688
|
+
if (!NOTIFY_PROVIDERS.includes(provider)) {
|
|
689
|
+
return [
|
|
690
|
+
`sessionManager.notify.provider ${JSON.stringify(provider)} is not ` +
|
|
691
|
+
`supported. Use "none" (no notification channel) or "telegram".`,
|
|
692
|
+
];
|
|
693
|
+
}
|
|
694
|
+
const hasStateDir = notify?.stateDir !== undefined;
|
|
695
|
+
const stateDirOk =
|
|
696
|
+
typeof notify?.stateDir === "string" && notify.stateDir.trim() !== "";
|
|
697
|
+
if (provider === "none") {
|
|
698
|
+
return hasStateDir
|
|
699
|
+
? [
|
|
700
|
+
`sessionManager.notify.stateDir is set, but notify.provider is not ` +
|
|
701
|
+
`"telegram", so no bot would use it. Set notify.provider to ` +
|
|
702
|
+
`"telegram", or remove notify.stateDir.`,
|
|
703
|
+
]
|
|
704
|
+
: [];
|
|
705
|
+
}
|
|
706
|
+
return stateDirOk
|
|
707
|
+
? []
|
|
708
|
+
: [
|
|
709
|
+
`sessionManager.notify.stateDir is missing. Each project needs its ` +
|
|
710
|
+
`own Telegram state dir, such as ` +
|
|
711
|
+
`"~/.claude/channels/telegram-<project>".`,
|
|
712
|
+
];
|
|
697
713
|
}
|
|
698
714
|
|
|
699
715
|
/**
|
|
700
716
|
* Walk the block for anything that looks like a credential.
|
|
701
717
|
*
|
|
702
718
|
* Config is committed, and this block configures a bot that grants shell
|
|
703
|
-
* access over chat. The token belongs in the
|
|
704
|
-
*
|
|
719
|
+
* access over chat. The token belongs in the project's secrets provider
|
|
720
|
+
* (#4555; the state dir's 0600 dotenv file only when no provider is
|
|
721
|
+
* configured), so a token here is both leaked and unused. The value is never
|
|
722
|
+
* echoed.
|
|
705
723
|
* @param {unknown} value Subtree.
|
|
706
724
|
* @param {string} path Dotted path so far.
|
|
707
725
|
* @returns {string[]} Problems found.
|
|
@@ -710,8 +728,10 @@ function findCredentials(value, path) {
|
|
|
710
728
|
if (typeof value === "string") {
|
|
711
729
|
return TOKEN_VALUE.test(value.trim())
|
|
712
730
|
? [
|
|
713
|
-
`${path} looks like a bot token. Tokens never go in config
|
|
714
|
-
|
|
731
|
+
`${path} looks like a bot token. Tokens never go in config: ` +
|
|
732
|
+
`remove it, and store the token in the project's secrets ` +
|
|
733
|
+
`provider with session-manager.mjs store-token ` +
|
|
734
|
+
`(/lisa:setup:session-manager runs it).`,
|
|
715
735
|
]
|
|
716
736
|
: [];
|
|
717
737
|
}
|
|
@@ -723,8 +743,9 @@ function findCredentials(value, path) {
|
|
|
723
743
|
CREDENTIAL_KEY.test(key)
|
|
724
744
|
? [
|
|
725
745
|
`${path}.${key} names a credential. Tokens and secrets never go in ` +
|
|
726
|
-
`config
|
|
727
|
-
`
|
|
746
|
+
`config: remove it, and keep the bot token in the project's ` +
|
|
747
|
+
`secrets provider (session-manager.mjs store-token, run by ` +
|
|
748
|
+
`/lisa:setup:session-manager).`,
|
|
728
749
|
]
|
|
729
750
|
: findCredentials(child, `${path}.${key}`)
|
|
730
751
|
);
|