@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.
- package/all/copy-contents/gitignore +4 -0
- package/dist/cli/file-upstream-cmd.d.ts +28 -0
- package/dist/cli/file-upstream-cmd.d.ts.map +1 -0
- package/dist/cli/file-upstream-cmd.js +231 -0
- package/dist/cli/file-upstream-cmd.js.map +1 -0
- package/dist/cli/gate-commands.d.ts +17 -0
- package/dist/cli/gate-commands.d.ts.map +1 -0
- package/dist/cli/gate-commands.js +47 -0
- package/dist/cli/gate-commands.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +6 -27
- package/dist/cli/index.js.map +1 -1
- package/dist/core/upstream-attribution-body.d.ts +38 -25
- package/dist/core/upstream-attribution-body.d.ts.map +1 -1
- package/dist/core/upstream-attribution-body.js +515 -155
- package/dist/core/upstream-attribution-body.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts +7 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -0
- package/dist/core/upstream-evidence-manifest.js +11623 -0
- package/dist/core/upstream-evidence-manifest.js.map +1 -0
- package/package.json +4 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-persist-learning/SKILL.md +32 -8
- package/plugins/lisa/skills/lisa-persist-learning/SKILL.md +32 -8
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-persist-learning/SKILL.md +32 -8
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/skills/lisa-persist-learning/SKILL.md +32 -8
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-persist-learning/SKILL.md +32 -8
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/skills/lisa-persist-learning/SKILL.md +32 -8
- 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"}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -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. */
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
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) {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","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,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,GAEhB,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;AAC/C,OAAO,EAAE,gBAAgB,EAAmB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,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;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,44 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
8
|
-
export type UpstreamAttributionBodyInput = {
|
|
9
|
-
readonly markerKey: string;
|
|
10
|
-
readonly failureClass: string;
|
|
13
|
+
}
|
|
14
|
+
interface CommonUpstreamAttributionInput {
|
|
11
15
|
readonly lisaSurface: string;
|
|
12
|
-
readonly
|
|
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
|
|
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
|
|
23
|
-
*
|
|
24
|
-
*
|
|
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:
|
|
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":"
|
|
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"}
|