@codyswann/lisa 4.64.9 → 4.65.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 (73) hide show
  1. package/all/copy-overwrite/scripts/check-npm-publish-landed.mjs +101 -4
  2. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  3. package/dist/core/lisa-owned-hash-ledger.js +6 -0
  4. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  5. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  6. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  7. package/dist/core/upstream-evidence-manifest.js +5 -4
  8. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  9. package/package.json +4 -4
  10. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  11. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  12. package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/providers.mjs +19 -1
  13. package/plugins/lisa/rules/eager/session-status-updates.md +1 -0
  14. package/plugins/lisa/rules/reference/session-status-updates.md +51 -0
  15. package/plugins/lisa/skills/lisa-secrets-access/scripts/providers.mjs +19 -1
  16. package/plugins/lisa-agy/plugin.json +1 -1
  17. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/providers.mjs +19 -1
  18. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  20. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  21. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-copilot/rules/eager/session-status-updates.md +1 -0
  25. package/plugins/lisa-copilot/rules/reference/session-status-updates.md +51 -0
  26. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/providers.mjs +19 -1
  27. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-cursor/rules/session-status-updates-reference.mdc +51 -0
  29. package/plugins/lisa-cursor/rules/session-status-updates.mdc +1 -0
  30. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/providers.mjs +19 -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-expo-agy/plugin.json +1 -1
  34. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  39. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  44. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  49. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  54. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-rails-agy/plugin.json +1 -1
  59. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  63. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  64. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  68. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  69. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  71. package/plugins/src/base/rules/eager/session-status-updates.md +1 -0
  72. package/plugins/src/base/rules/reference/session-status-updates.md +51 -0
  73. package/plugins/src/base/skills/lisa-secrets-access/scripts/providers.mjs +19 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
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": "4.64.9",
3
+ "version": "4.65.1",
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": "4.64.9",
3
+ "version": "4.65.1",
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": "4.64.9",
3
+ "version": "4.65.1",
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-phaser",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "Ruby on Rails-specific skills and hooks for RuboCop and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "TypeScript-specific hooks for formatting, linting, and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "Distributable LLM Wiki kernel — ingest, query, lint, and maintain a git-native markdown knowledge base across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "4.64.9",
3
+ "version": "4.65.1",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -7,6 +7,7 @@ Assume the reader is **non-technical** — the same obligation Lisa already plac
7
7
  ## Mandatory
8
8
 
9
9
  - **Plain, conversational language.** No jargon, no Lisa vocabulary, no tool or file names the reader has no use for. Say "the login page broke", not "the auth guard regressed at the controller boundary".
10
+ - **Write every response in ASD-STE100 Simplified Technical English.** All responses, not only status updates. One idea per sentence, active voice, present tense, sentences under 20 words, approved vocabulary — "start" not "initiate", "use" not "utilize". The proper name of a real thing (a command, a file, an error) is always permitted.
10
11
  - **A decision is presented as a decision** — never buried in a status paragraph the reader has to mine. State the choice, give **your recommendation**, and name the **ramifications** of each option in one line apiece.
11
12
  - **End every update with a close line**, exactly this shape:
12
13
 
@@ -27,6 +27,57 @@ Write the way you would speak to a competent colleague who does not work on this
27
27
 
28
28
  Two lines the user themselves offered as the target: *"just tell me what's going on and what my options are"* and *"give me the summary, I'll ask for detail if I want it."*
29
29
 
30
+ ## ASD-STE100 Simplified Technical English
31
+
32
+ Every response you write to a human is written in ASD-STE100 Simplified Technical
33
+ English — the controlled-language standard maintained by the AeroSpace and Defence
34
+ Industries Association of Europe. It is not a separate style from the plain language
35
+ this rule already asks for; it is the written specification of it. "Plain" is a
36
+ preference and gets argued about. ASD-STE100 is a rulebook, so it does not.
37
+
38
+ The scope is every response, not only a status update. A one-line answer, a
39
+ question back to the operator, a review summary and a final report are all bound by
40
+ it.
41
+
42
+ ### The writing rules that bind you
43
+
44
+ - **One idea per sentence.** Split a compound thought into separate sentences.
45
+ - **Sentences stay short.** 20 words at most for a descriptive sentence, 20 for a
46
+ procedural step. Break a longer one in two.
47
+ - **Active voice.** "The test failed", not "a failure was observed".
48
+ - **Present tense** unless you are describing something that already happened.
49
+ - **One word, one meaning.** Use a word in a single sense throughout a response.
50
+ Do not use "check" to mean both an inspection and a CI job in the same message.
51
+ - **Approved vocabulary.** Prefer the simple verb: *start* over initiate, *use*
52
+ over utilize, *do* over perform, *about* over approximately, *before* over prior
53
+ to, *help* over facilitate, *end* over terminate.
54
+ - **No noun clusters longer than three words.** "the deploy approval gate", not
55
+ "the protected environment deploy approval gate policy".
56
+ - **Say the subject.** Do not drop articles or the actor: "The gate blocks the
57
+ push", not "Gate blocks push".
58
+ - **No idiom, no metaphor, no humour that depends on a shared culture.** The reader
59
+ may not speak English as a first language.
60
+ - **Paragraphs stay short.** Six sentences at most.
61
+
62
+ ### What the standard does not forbid
63
+
64
+ The proper name of a real thing is always permitted, even when it is technical: a
65
+ command, a file path, a branch, an error string, a ticket id. ASD-STE100 keeps
66
+ technical names — it constrains the words around them. The plain-language rule
67
+ above still decides *whether* the reader needs that name at all.
68
+
69
+ Numbers, units, measurements and quoted output are reproduced exactly. Never
70
+ simplify the content of an error message, a test result or a security warning to
71
+ obey a word rule; quote it and explain it in simplified prose around the quote.
72
+
73
+ ### Why it is worth the constraint
74
+
75
+ Lisa's premise is that a non-technical person directs the work. The people standing
76
+ at the gates read intake rejections, ticket descriptions and verification reports,
77
+ and many of them do not read English first. A controlled language is the cheapest
78
+ thing that makes those artifacts uniformly readable, and it removes the argument
79
+ about whether a given sentence was "plain enough".
80
+
30
81
  ## Decisions
31
82
 
32
83
  A decision presented as a paragraph of context is a decision the human has to excavate. State it as a decision:
@@ -429,6 +429,24 @@ export function fetchRaw(cfg) {
429
429
  );
430
430
  }
431
431
 
432
+ /**
433
+ * The argument vector a provider CLI is actually spawned with.
434
+ *
435
+ * `bws` 2.1.0 colours its output even into a pipe and ignores `NO_COLOR`,
436
+ * `TERM=dumb` and `CLICOLOR=0` alike, so `bws secret list --output json`
437
+ * arrives as ANSI-wrapped JSON and `JSON.parse` fails on the first escape
438
+ * byte — for EVERY secret, including a known-good control. Its own `--color`
439
+ * flag is the one switch it honours, and it is a global option that must
440
+ * precede the subcommand. It is applied here rather than at each call site
441
+ * because a call site that forgets it reproduces the outage in silence.
442
+ * @param {string} bin Executable name.
443
+ * @param {readonly string[]} args Arguments the caller composed.
444
+ * @returns {string[]} Arguments with the CLI's colour switched off.
445
+ */
446
+ export function providerArgs(bin, args) {
447
+ return bin === "bws" ? ["--color", "no", ...args] : [...args];
448
+ }
449
+
432
450
  /**
433
451
  * Run a provider CLI, keeping its output off any shared stream.
434
452
  * @param {string} bin Executable name.
@@ -438,7 +456,7 @@ export function fetchRaw(cfg) {
438
456
  */
439
457
  function run(bin, args, env, operation = "talking to the secrets provider") {
440
458
  try {
441
- return boundedChildOutput(bin, args, {
459
+ return boundedChildOutput(bin, providerArgs(bin, args), {
442
460
  encoding: "utf8",
443
461
  env,
444
462
  stdio: ["ignore", "pipe", "pipe"],