@codyswann/lisa 2.259.4 → 2.260.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 (79) hide show
  1. package/all/copy-contents/gitignore +4 -0
  2. package/dist/cli/file-upstream-cmd.d.ts +28 -0
  3. package/dist/cli/file-upstream-cmd.d.ts.map +1 -0
  4. package/dist/cli/file-upstream-cmd.js +231 -0
  5. package/dist/cli/file-upstream-cmd.js.map +1 -0
  6. package/dist/cli/gate-commands.d.ts +17 -0
  7. package/dist/cli/gate-commands.d.ts.map +1 -0
  8. package/dist/cli/gate-commands.js +47 -0
  9. package/dist/cli/gate-commands.js.map +1 -0
  10. package/dist/cli/index.d.ts +3 -0
  11. package/dist/cli/index.d.ts.map +1 -1
  12. package/dist/cli/index.js +6 -27
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/core/upstream-attribution-body.d.ts +38 -25
  15. package/dist/core/upstream-attribution-body.d.ts.map +1 -1
  16. package/dist/core/upstream-attribution-body.js +515 -155
  17. package/dist/core/upstream-attribution-body.js.map +1 -1
  18. package/dist/core/upstream-evidence-manifest.d.ts +7 -0
  19. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -0
  20. package/dist/core/upstream-evidence-manifest.js +11623 -0
  21. package/dist/core/upstream-evidence-manifest.js.map +1 -0
  22. package/package.json +4 -1
  23. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  25. package/plugins/lisa/.codex-plugin/skills/lisa-persist-learning/SKILL.md +32 -8
  26. package/plugins/lisa/skills/lisa-persist-learning/SKILL.md +32 -8
  27. package/plugins/lisa-agy/plugin.json +1 -1
  28. package/plugins/lisa-agy/skills/lisa-persist-learning/SKILL.md +32 -8
  29. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  31. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  32. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-copilot/skills/lisa-persist-learning/SKILL.md +32 -8
  36. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-cursor/skills/lisa-persist-learning/SKILL.md +32 -8
  38. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  40. package/plugins/lisa-expo-agy/plugin.json +1 -1
  41. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  45. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  46. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  50. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  51. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  55. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  56. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  60. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  61. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  63. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  65. package/plugins/lisa-rails-agy/plugin.json +1 -1
  66. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  68. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  69. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  70. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  71. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  72. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  73. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  74. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  75. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  76. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  77. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  78. package/plugins/src/base/skills/lisa-persist-learning/SKILL.md +32 -8
  79. package/scripts/generate-upstream-evidence-manifest.mjs +157 -0
@@ -214,6 +214,10 @@ expo-env.d.ts
214
214
  # verification evidence belongs under evidence/<ticket>/ and remains trackable.
215
215
  .lisa/verification-status.json
216
216
 
217
+ # Automation run outcomes — local scheduler observations read by
218
+ # /lisa:automation-status. Runbooks are project knowledge; run records are not.
219
+ .lisa/automations/runs/
220
+
217
221
  # Lisa-generated project Codex overlay. Keep host-owned config.toml and
218
222
  # hooks.json visible so projects can commit their own merged configuration.
219
223
  .codex/.lisa-managed.json
@@ -0,0 +1,28 @@
1
+ /** Options accepted by the public projection command. */
2
+ export interface FileUpstreamOptions {
3
+ /** JSON event file. When omitted, the command reads standard input. */
4
+ readonly input?: string;
5
+ }
6
+ /** Injectable process boundaries used by unit tests. */
7
+ export interface FileUpstreamDependencies {
8
+ readonly cwd?: string;
9
+ readonly error?: (message: string) => void;
10
+ readonly log?: (message: string) => void;
11
+ readonly readStdin?: () => Promise<string>;
12
+ }
13
+ /**
14
+ * Read an async byte stream in linear time under byte and chunk-count caps.
15
+ * @param stream - Untrusted input chunks
16
+ * @returns Strictly decoded UTF-8 payload
17
+ */
18
+ export declare function readBoundedInputStream(stream: AsyncIterable<Buffer | string>): Promise<string>;
19
+ /**
20
+ * Project one filing event and return the intended process exit code.
21
+ * Rejections always produce empty stdout and one sanitized, field-named stderr
22
+ * diagnostic.
23
+ * @param options - Command options
24
+ * @param dependencies - Injectable process boundaries
25
+ * @returns Process exit code: zero on projection, one on rejection
26
+ */
27
+ export declare function runFileUpstream(options?: FileUpstreamOptions, dependencies?: FileUpstreamDependencies): Promise<number>;
28
+ //# sourceMappingURL=file-upstream-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upstream-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/file-upstream-cmd.ts"],"names":[],"mappings":"AAoBA,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wDAAwD;AACxD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;AAsCD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,CAoBjB;AAgKD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,OAAO,GAAE,mBAAwB,EACjC,YAAY,GAAE,wBAA6B,GAC1C,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * `lisa file-upstream` projects a public Lisa filing document from JSON.
3
+ *
4
+ * The command intentionally exposes no verifier or Lisa-root override. Excerpt
5
+ * verification remains owned by the installed Lisa package, never the host
6
+ * project invoking this command.
7
+ * @module cli/file-upstream-cmd
8
+ */
9
+ import { closeSync, constants, fstatSync, openSync, readSync } from "node:fs";
10
+ import path from "node:path";
11
+ import { buildUpstreamAttributionIssueBody, UpstreamAttributionRejection, } from "../core/upstream-attribution-body.js";
12
+ const MAX_INPUT_BYTES = 64 * 1024;
13
+ const MAX_INPUT_CHUNKS = 1024;
14
+ /** Field labels safe to repeat without reflecting arbitrary host input. */
15
+ const DIAGNOSTIC_FIELDS = Object.freeze([
16
+ "documentKind",
17
+ "lisaSurface",
18
+ "failureClass",
19
+ "lisaOwnedExcerpts",
20
+ "upstreamCommitRefs",
21
+ "redactedPlaceholders",
22
+ "hostIssueLink",
23
+ "occurrenceFingerprint",
24
+ "lisaRoot",
25
+ "readLisaFile",
26
+ "hostEnvironment",
27
+ "markerKey",
28
+ "operatorImpact",
29
+ "harnessFault",
30
+ "requestedChange",
31
+ "affectedProject",
32
+ "hostIssueUrl",
33
+ "attributionEvidence",
34
+ "upstreamRefs",
35
+ ]);
36
+ /**
37
+ * Read standard input to completion.
38
+ * @returns UTF-8 stdin contents
39
+ */
40
+ const readAllStdin = async () => {
41
+ return readBoundedInputStream(process.stdin);
42
+ };
43
+ /**
44
+ * Read an async byte stream in linear time under byte and chunk-count caps.
45
+ * @param stream - Untrusted input chunks
46
+ * @returns Strictly decoded UTF-8 payload
47
+ */
48
+ export async function readBoundedInputStream(stream) {
49
+ const chunks = [];
50
+ // eslint-disable-next-line functional/no-let -- bounded stream accounting requires iterative state
51
+ let totalBytes = 0;
52
+ // eslint-disable-next-line functional/no-let -- bounded stream accounting requires iterative state
53
+ let chunkCount = 0;
54
+ for await (const rawChunk of stream) {
55
+ chunkCount += 1;
56
+ if (chunkCount > MAX_INPUT_CHUNKS) {
57
+ throw new Error("input contains too many chunks");
58
+ }
59
+ const chunk = Buffer.from(rawChunk);
60
+ totalBytes += chunk.byteLength;
61
+ if (totalBytes > MAX_INPUT_BYTES) {
62
+ throw new Error("input exceeds limit");
63
+ }
64
+ // eslint-disable-next-line functional/immutable-data -- bounded local accumulator avoids recursive copying
65
+ chunks.push(chunk);
66
+ }
67
+ return decodeUtf8(Buffer.concat(chunks, totalBytes));
68
+ }
69
+ /**
70
+ * Read one bounded regular JSON input file without following symlinks.
71
+ * @param filePath - Candidate JSON input path
72
+ * @returns Strictly decoded UTF-8 payload
73
+ */
74
+ function readInputFile(filePath) {
75
+ const noFollow = constants.O_NOFOLLOW ?? 0;
76
+ // eslint-disable-next-line functional/no-let -- acquired descriptor must be closed in finally
77
+ let descriptor;
78
+ try {
79
+ descriptor = openSync(filePath, constants.O_RDONLY | constants.O_NONBLOCK | noFollow);
80
+ }
81
+ catch {
82
+ throw new Error("input is not a readable regular file");
83
+ }
84
+ try {
85
+ const before = fstatSync(descriptor);
86
+ if (!before.isFile() || before.size > MAX_INPUT_BYTES) {
87
+ throw new Error("input is not a bounded regular file");
88
+ }
89
+ const bytes = Buffer.alloc(before.size);
90
+ const count = readFixedBytes(descriptor, bytes, 0);
91
+ const after = fstatSync(descriptor);
92
+ if (count !== before.size || after.size !== before.size) {
93
+ throw new Error("input changed while being read");
94
+ }
95
+ return decodeUtf8(bytes);
96
+ }
97
+ finally {
98
+ closeSync(descriptor);
99
+ }
100
+ }
101
+ /**
102
+ * Fill a pre-sized buffer without permitting allocation growth.
103
+ * @param descriptor - Open regular-file descriptor
104
+ * @param buffer - Fixed destination buffer
105
+ * @param offset - Current destination offset
106
+ * @returns Number of bytes read
107
+ */
108
+ function readFixedBytes(descriptor, buffer, offset) {
109
+ if (offset >= buffer.length) {
110
+ return offset;
111
+ }
112
+ const count = readSync(descriptor, buffer, offset, buffer.length - offset, offset);
113
+ return count === 0
114
+ ? offset
115
+ : readFixedBytes(descriptor, buffer, offset + count);
116
+ }
117
+ /**
118
+ * Decode UTF-8 strictly so replacement characters cannot conceal input.
119
+ * @param bytes - Candidate UTF-8 bytes
120
+ * @returns Decoded string
121
+ */
122
+ function decodeUtf8(bytes) {
123
+ return new TextDecoder("utf-8", { fatal: true }).decode(bytes);
124
+ }
125
+ /**
126
+ * Enforce the same byte cap on injected test/process boundaries.
127
+ * @param payload - Injected payload
128
+ * @returns The unchanged bounded payload
129
+ */
130
+ function assertInjectedPayloadBounded(payload) {
131
+ if (Buffer.byteLength(payload, "utf8") > MAX_INPUT_BYTES) {
132
+ throw new Error("input exceeds limit");
133
+ }
134
+ return payload;
135
+ }
136
+ /**
137
+ * Load the event without including host paths or thrown values in diagnostics.
138
+ * @param options - Command options
139
+ * @param dependencies - Injectable process boundaries
140
+ * @returns Payload or sanitized read diagnostic
141
+ */
142
+ async function loadPayload(options, dependencies) {
143
+ try {
144
+ return {
145
+ ok: true,
146
+ value: options.input === undefined
147
+ ? assertInjectedPayloadBounded(await (dependencies.readStdin ?? readAllStdin)())
148
+ : readInputFile(path.resolve(dependencies.cwd ?? process.cwd(), options.input)),
149
+ };
150
+ }
151
+ catch {
152
+ return {
153
+ diagnostic: "file-upstream: input could not be read",
154
+ ok: false,
155
+ };
156
+ }
157
+ }
158
+ /**
159
+ * Parse a filing event while keeping rejected payload bytes out of stderr.
160
+ * @param payload - Raw JSON input
161
+ * @returns Parsed object or sanitized parse diagnostic
162
+ */
163
+ function parseEvent(payload) {
164
+ try {
165
+ const parsed = JSON.parse(payload);
166
+ if (typeof parsed !== "object" ||
167
+ parsed === null ||
168
+ Array.isArray(parsed)) {
169
+ return {
170
+ diagnostic: "file-upstream: input must be a JSON object",
171
+ ok: false,
172
+ };
173
+ }
174
+ return { ok: true, value: parsed };
175
+ }
176
+ catch {
177
+ return {
178
+ diagnostic: "file-upstream: input is not valid JSON",
179
+ ok: false,
180
+ };
181
+ }
182
+ }
183
+ /**
184
+ * Find the rejected field without repeating the rejection message, which may
185
+ * contain host-controlled values. Arbitrary top-level keys collapse to
186
+ * `unknownField` rather than being reflected to stderr.
187
+ * @param event - Rejected event
188
+ * @param cause - Builder rejection
189
+ * @returns Safe field label
190
+ */
191
+ function rejectionField(cause) {
192
+ if (!(cause instanceof UpstreamAttributionRejection)) {
193
+ return "input";
194
+ }
195
+ return DIAGNOSTIC_FIELDS.includes(cause.field)
196
+ ? cause.field
197
+ : "unknownField";
198
+ }
199
+ /**
200
+ * Project one filing event and return the intended process exit code.
201
+ * Rejections always produce empty stdout and one sanitized, field-named stderr
202
+ * diagnostic.
203
+ * @param options - Command options
204
+ * @param dependencies - Injectable process boundaries
205
+ * @returns Process exit code: zero on projection, one on rejection
206
+ */
207
+ export async function runFileUpstream(options = {}, dependencies = {}) {
208
+ const log = dependencies.log ?? ((message) => console.log(message));
209
+ const error = dependencies.error ?? ((message) => console.error(message));
210
+ const payload = await loadPayload(options, dependencies);
211
+ if (!payload.ok) {
212
+ error(payload.diagnostic);
213
+ return 1;
214
+ }
215
+ const event = parseEvent(payload.value);
216
+ if (!event.ok) {
217
+ error(event.diagnostic);
218
+ return 1;
219
+ }
220
+ try {
221
+ // The builder is the runtime validation boundary for this untrusted JSON.
222
+ const body = buildUpstreamAttributionIssueBody(event.value);
223
+ log(body);
224
+ return 0;
225
+ }
226
+ catch (cause) {
227
+ error(`file-upstream: rejected field ${rejectionField(cause)}`);
228
+ return 1;
229
+ }
230
+ }
231
+ //# sourceMappingURL=file-upstream-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upstream-cmd.js","sourceRoot":"","sources":["../../src/cli/file-upstream-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /** Registrars for non-project gate commands shipped to host projects. */
2
+ import type { Command } from "commander";
3
+ import type { FileUpstreamOptions } from "./file-upstream-cmd.js";
4
+ /** Gate runners kept structural to avoid importing the whole CLI dependency record. */
5
+ export interface GateCommandDependencies {
6
+ runCheckLearningsBudget: (path: string | undefined) => Promise<number>;
7
+ runFileUpstream: (options: FileUpstreamOptions) => Promise<number>;
8
+ }
9
+ /** Gate commands skip the root npm update check. */
10
+ export declare const GATE_COMMAND_NAMES: readonly ["check-learnings-budget", "file-upstream"];
11
+ /**
12
+ * Register all non-project gate commands.
13
+ * @param program - Commander program
14
+ * @param dependencies - Gate runners
15
+ */
16
+ export declare function addGateCommands(program: Command, dependencies: GateCommandDependencies): void;
17
+ //# sourceMappingURL=gate-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-commands.d.ts","sourceRoot":"","sources":["../../src/cli/gate-commands.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,uFAAuF;AACvF,MAAM,WAAW,uBAAuB;IACtC,uBAAuB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACpE;AAED,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,sDAGrB,CAAC;AA+CX;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,uBAAuB,GACpC,IAAI,CAGN"}
@@ -0,0 +1,47 @@
1
+ /** Gate commands skip the root npm update check. */
2
+ export const GATE_COMMAND_NAMES = [
3
+ "check-learnings-budget",
4
+ "file-upstream",
5
+ ];
6
+ /**
7
+ * Register the bounded learnings-budget check.
8
+ * @param program - Commander program
9
+ * @param dependencies - Gate runners
10
+ */
11
+ function addCheckLearningsBudgetCommand(program, dependencies) {
12
+ program
13
+ .command("check-learnings-budget")
14
+ .description("Fail if the project learnings file exceeds its hard budget (missing file passes)")
15
+ .argument("[path]", "Learnings file to check (default: resolved from .lisa.config.json)")
16
+ .action(async (targetPath) => {
17
+ const code = await dependencies.runCheckLearningsBudget(targetPath);
18
+ if (code !== 0)
19
+ process.exitCode = code;
20
+ });
21
+ }
22
+ /**
23
+ * Register the public upstream-filing projection.
24
+ * @param program - Commander program
25
+ * @param dependencies - Gate runners
26
+ */
27
+ function addFileUpstreamCommand(program, dependencies) {
28
+ program
29
+ .command("file-upstream")
30
+ .description("Project a public upstream filing document from allowlisted fields only")
31
+ .option("--input <file>", "JSON filing event (default: read stdin)")
32
+ .action(async (options) => {
33
+ const code = await dependencies.runFileUpstream(options);
34
+ if (code !== 0)
35
+ process.exitCode = code;
36
+ });
37
+ }
38
+ /**
39
+ * Register all non-project gate commands.
40
+ * @param program - Commander program
41
+ * @param dependencies - Gate runners
42
+ */
43
+ export function addGateCommands(program, dependencies) {
44
+ addCheckLearningsBudgetCommand(program, dependencies);
45
+ addFileUpstreamCommand(program, dependencies);
46
+ }
47
+ //# sourceMappingURL=gate-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-commands.js","sourceRoot":"","sources":["../../src/cli/gate-commands.ts"],"names":[],"mappings":"AAWA,oDAAoD;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,wBAAwB;IACxB,eAAe;CACP,CAAC;AAEX;;;;GAIG;AACH,SAAS,8BAA8B,CACrC,OAAgB,EAChB,YAAqC;IAErC,OAAO;SACJ,OAAO,CAAC,wBAAwB,CAAC;SACjC,WAAW,CACV,kFAAkF,CACnF;SACA,QAAQ,CACP,QAAQ,EACR,oEAAoE,CACrE;SACA,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,EAAE;QAC/C,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC1C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,YAAqC;IAErC,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CACV,wEAAwE,CACzE;SACA,MAAM,CAAC,gBAAgB,EAAE,yCAAyC,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC1C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAgB,EAChB,YAAqC;IAErC,8BAA8B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACtD,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC"}
@@ -3,6 +3,7 @@ import { runApply } from "./apply.js";
3
3
  import { runCheckLearningsBudget } from "./check-learnings-budget-cmd.js";
4
4
  import { runCrossPollinate } from "./cross-pollinate-cmd.js";
5
5
  import { runDoctor } from "./doctor.js";
6
+ import { runFileUpstream } from "./file-upstream-cmd.js";
6
7
  import { runKaneCli, runKanePilotCli, runKaneProbeCli } from "./kane-cmd.js";
7
8
  import { printUpdateWarning } from "./print-update-warning.js";
8
9
  import { runSetupProject } from "./setup-project.js";
@@ -38,6 +39,8 @@ export interface ProgramDependencies {
38
39
  runUi: typeof runUi;
39
40
  /** Checks the project learnings file against its hard budget. */
40
41
  runCheckLearningsBudget: typeof runCheckLearningsBudget;
42
+ /** Projects a public upstream filing body from allowlisted fields. */
43
+ runFileUpstream: typeof runFileUpstream;
41
44
  /** Runs one policy-approved Kane empirical browser objective. */
42
45
  runKaneCli: typeof runKaneCli;
43
46
  /** Probes Kane installation, authentication, and Test Manager readiness. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAEL,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAuB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAqB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,kEAAkE;IAClE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,4DAA4D;IAC5D,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,wCAAwC;IACxC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,yDAAyD;IACzD,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,qCAAqC;IACrC,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,4EAA4E;IAC5E,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,2EAA2E;IAC3E,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,8DAA8D;IAC9D,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,iEAAiE;IACjE,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,iEAAiE;IACjE,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,4EAA4E;IAC5E,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,kEAAkE;IAClE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,gFAAgF;IAChF,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,0EAA0E;IAC1E,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;CAC/C;AAmMD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,YAAY,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC9C,OAAO,CAkFT;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAEL,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAuB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAqB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,kEAAkE;IAClE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,4DAA4D;IAC5D,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,wCAAwC;IACxC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,yDAAyD;IACzD,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,qCAAqC;IACrC,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,4EAA4E;IAC5E,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,2EAA2E;IAC3E,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,8DAA8D;IAC9D,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,iEAAiE;IACjE,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,sEAAsE;IACtE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,iEAAiE;IACjE,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,4EAA4E;IAC5E,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,kEAAkE;IAClE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,gFAAgF;IAChF,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,0EAA0E;IAC1E,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;CAC/C;AAyKD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,YAAY,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC9C,OAAO,CA8ET;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
package/dist/cli/index.js CHANGED
@@ -3,6 +3,8 @@ import { runApply } from "./apply.js";
3
3
  import { runCheckLearningsBudget } from "./check-learnings-budget-cmd.js";
4
4
  import { runCrossPollinate, } from "./cross-pollinate-cmd.js";
5
5
  import { runDoctor } from "./doctor.js";
6
+ import { runFileUpstream } from "./file-upstream-cmd.js";
7
+ import { GATE_COMMAND_NAMES, addGateCommands } from "./gate-commands.js";
6
8
  import { runKaneCli, runKanePilotCli, runKaneProbeCli, } from "./kane-cmd.js";
7
9
  import { printUpdateWarning } from "./print-update-warning.js";
8
10
  import { runSetupProject } from "./setup-project.js";
@@ -26,6 +28,7 @@ const DEFAULT_DEPENDENCIES = {
26
28
  runSync,
27
29
  runUi,
28
30
  runCheckLearningsBudget,
31
+ runFileUpstream,
29
32
  runKaneCli,
30
33
  runKaneProbeCli,
31
34
  runKanePilotCli,
@@ -34,24 +37,6 @@ const DEFAULT_DEPENDENCIES = {
34
37
  };
35
38
  /** Shared help text for the optional project-path positional argument. */
36
39
  const PATH_ARG_DESCRIPTION = "Project path (default: current directory)";
37
- /**
38
- * Register the `check-learnings-budget` gate command. Extracted so the broader
39
- * maintenance-command registrar stays within the function-length budget.
40
- * @param program - Commander program to mutate
41
- * @param deps - Program dependencies
42
- */
43
- function addCheckLearningsBudgetCommand(program, deps) {
44
- program
45
- .command("check-learnings-budget")
46
- .description("Fail if the project learnings file exceeds its hard budget (missing file passes)")
47
- .argument("[path]", "Learnings file to check (default: resolved from .lisa.config.json)")
48
- .action(async (targetPath) => {
49
- const code = await deps.runCheckLearningsBudget(targetPath);
50
- if (code !== 0) {
51
- process.exitCode = code;
52
- }
53
- });
54
- }
55
40
  /**
56
41
  * Register the optional Kane provider command group.
57
42
  * @param program - Commander program to mutate
@@ -147,7 +132,7 @@ function addMaintenanceCommands(program, deps) {
147
132
  .action(async (targetPath, options) => {
148
133
  await deps.runUi(targetPath, options);
149
134
  });
150
- addCheckLearningsBudgetCommand(program, deps);
135
+ addGateCommands(program, deps);
151
136
  addKaneCommands(program, deps);
152
137
  program
153
138
  .command("cross-pollinate")
@@ -185,14 +170,8 @@ export function createProgram(dependencies = {}) {
185
170
  // It is non-fatal: a failed check never blocks the action from running.
186
171
  program.hook("preAction", async (_thisCommand, actionCommand) => {
187
172
  if (actionCommand.parent?.name() === "kane" ||
188
- [
189
- "doctor",
190
- "sync",
191
- "ui",
192
- "update",
193
- "version",
194
- "check-learnings-budget",
195
- ].includes(actionCommand.name())) {
173
+ ["doctor", "sync", "ui", "update", "version"].includes(actionCommand.name()) ||
174
+ GATE_COMMAND_NAMES.includes(actionCommand.name())) {
196
175
  return;
197
176
  }
198
177
  if (program.opts().updateCheck === false) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,44 @@
1
- /** Allowlist-only body builder for public upstream Lisa attribution filings. */
2
- /** Lisa-owned excerpt that is safe to quote in the public upstream issue. */
3
- export type UpstreamAttributionExcerpt = {
4
- readonly surface: string;
1
+ /** Closed, host-agnostic failure categories accepted in public filings. */
2
+ export declare const UPSTREAM_FAILURE_CLASSES: readonly ["access-control-failure", "agent-parity-regression", "configuration-regression", "data-integrity-failure", "dependency-regression", "generated-artifact-regression", "installation-regression", "observability-gap", "pagination-truncation", "performance-regression", "public-data-exposure", "release-regression", "runtime-regression", "stale-artifact-overwrite", "test-coverage-gap", "validation-gap", "workflow-contract-violation"];
3
+ /** Fixed redaction tokens that can appear in public reproduction steps. */
4
+ export declare const UPSTREAM_REDACTED_PLACEHOLDERS: readonly ["<host-project>", "<env-value>", "<credential>", "<connection-string>", "<pii>", "<host-payload>", "<path>", "<identifier>"];
5
+ /** One generic category from the closed public-filing taxonomy. */
6
+ export type UpstreamFailureClass = (typeof UPSTREAM_FAILURE_CLASSES)[number];
7
+ /** One safe, fixed reproduction placeholder accepted by the public builder. */
8
+ export type UpstreamRedactedPlaceholder = (typeof UPSTREAM_REDACTED_PLACEHOLDERS)[number];
9
+ /** One excerpt that must exist verbatim in a hash-pinned Lisa package file. */
10
+ export interface UpstreamAttributionExcerpt {
11
+ readonly file: string;
5
12
  readonly text: string;
6
- };
7
- /** Typed allowlist accepted by the public upstream attribution body builder. */
8
- export type UpstreamAttributionBodyInput = {
9
- readonly markerKey: string;
10
- readonly failureClass: string;
13
+ }
14
+ interface CommonUpstreamAttributionInput {
11
15
  readonly lisaSurface: string;
12
- readonly operatorImpact: string;
13
- readonly harnessFault: string;
14
- readonly requestedChange: string;
15
- readonly affectedProject: string;
16
- readonly hostIssueUrl: string;
17
- readonly attributionEvidence: readonly string[];
16
+ readonly failureClass: UpstreamFailureClass;
18
17
  readonly lisaOwnedExcerpts: readonly UpstreamAttributionExcerpt[];
19
- readonly upstreamRefs: readonly string[];
20
- };
18
+ readonly upstreamCommitRefs: readonly string[];
19
+ readonly redactedPlaceholders: readonly UpstreamRedactedPlaceholder[];
20
+ }
21
+ /** Typed issue event accepted by the public attribution builder. */
22
+ export interface UpstreamAttributionIssueInput extends CommonUpstreamAttributionInput {
23
+ readonly documentKind: "issue";
24
+ }
25
+ /** Typed repeat-occurrence event accepted by the public attribution builder. */
26
+ export interface UpstreamAttributionOccurrenceInput extends CommonUpstreamAttributionInput {
27
+ readonly documentKind: "occurrence";
28
+ readonly occurrenceFingerprint: string;
29
+ }
30
+ /** Closed discriminated event accepted by the public attribution builder. */
31
+ export type UpstreamAttributionBodyInput = UpstreamAttributionIssueInput | UpstreamAttributionOccurrenceInput;
32
+ /** A field-named, value-sanitized public projection rejection. */
33
+ export declare class UpstreamAttributionRejection extends Error {
34
+ readonly field: string;
35
+ constructor(field: string, detail: string);
36
+ }
21
37
  /**
22
- * Build the public upstream issue body from enumerated fields only.
23
- *
24
- * Unknown fields are rejected instead of ignored so callers cannot smuggle
25
- * host-project prose into a world-readable Lisa issue body.
26
- *
27
- * @param input - Candidate body data from the handoff-upstream flow
28
- * @returns Markdown body safe to pass to the upstream GitHub issue writer
38
+ * Build one public issue body or repeat-occurrence comment from a closed event.
39
+ * @param input - Untrusted event supplied by the host-project workflow
40
+ * @returns Public Markdown safe to send verbatim to the upstream writer
29
41
  */
30
- export declare function buildUpstreamAttributionIssueBody(input: unknown): string;
42
+ export declare function buildUpstreamAttributionIssueBody(input: UpstreamAttributionBodyInput): string;
43
+ export {};
31
44
  //# sourceMappingURL=upstream-attribution-body.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upstream-attribution-body.d.ts","sourceRoot":"","sources":["../../src/core/upstream-attribution-body.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,6EAA6E;AAC7E,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAClE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C,CAAC;AAsNF;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA+BxE"}
1
+ {"version":3,"file":"upstream-attribution-body.d.ts","sourceRoot":"","sources":["../../src/core/upstream-attribution-body.ts"],"names":[],"mappings":"AA8CA,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,ybAkB1B,CAAC;AAKZ,2EAA2E;AAC3E,eAAO,MAAM,8BAA8B,wIAShC,CAAC;AAcZ,mEAAmE;AACnE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,+EAA+E;AAC/E,MAAM,MAAM,2BAA2B,GACrC,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD,+EAA+E;AAC/E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,8BAA8B;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAClE,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,oBAAoB,EAAE,SAAS,2BAA2B,EAAE,CAAC;CACvE;AAED,oEAAoE;AACpE,MAAM,WAAW,6BAA8B,SAAQ,8BAA8B;IACnF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,gFAAgF;AAChF,MAAM,WAAW,kCAAmC,SAAQ,8BAA8B;IACxF,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED,6EAA6E;AAC7E,MAAM,MAAM,4BAA4B,GACpC,6BAA6B,GAC7B,kCAAkC,CAAC;AAYvC,kEAAkE;AAClE,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK1C;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,4BAA4B,GAClC,MAAM,CAAC"}