@outerlayer/cli 0.15.0 → 0.16.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/CHANGELOG.md +17 -0
- package/dist/{agent-setup-CN2HUBEJ.js → agent-setup-K3ABU5NL.js} +8 -7
- package/dist/build-info.json +1 -1
- package/dist/{check-2JSSXCKJ.js → check-CNTMSGOG.js} +19 -16
- package/dist/{chunk-HFKKFTXU.js → chunk-2MNPHL23.js} +19 -11
- package/dist/{chunk-FOJGZYFC.js → chunk-42ZI52JW.js} +1 -1
- package/dist/{chunk-SXWS25JC.js → chunk-5FEK6PNE.js} +6 -6
- package/dist/{chunk-PQUM37BK.js → chunk-6JNURGOA.js} +1 -1
- package/dist/{chunk-JR6ERP3M.js → chunk-6QRMLNH3.js} +1 -1
- package/dist/chunk-C5Y5ZJJZ.js +88 -0
- package/dist/{chunk-HXLMZOKU.js → chunk-CA3XMYFN.js} +3 -3
- package/dist/{chunk-NXUH742G.js → chunk-EHAAPRWY.js} +9 -7
- package/dist/{chunk-UUDDPNRJ.js → chunk-EWORLJMO.js} +19 -5
- package/dist/{chunk-F7GBYX2P.js → chunk-FWX735W7.js} +18 -4
- package/dist/{chunk-3NLOVYJQ.js → chunk-JEHRUE3F.js} +47 -22
- package/dist/{chunk-MTF3PHVZ.js → chunk-NBGDBTO2.js} +3 -3
- package/dist/{chunk-2M63GG56.js → chunk-OHVJA253.js} +1 -1
- package/dist/{chunk-KFRM23WD.js → chunk-ONRCEE6D.js} +2 -2
- package/dist/{chunk-T5VPP6H7.js → chunk-OZGHL5Y5.js} +1 -1
- package/dist/{chunk-ZA5CHAFY.js → chunk-POJMEEJJ.js} +21 -4
- package/dist/{chunk-ASOSIKA4.js → chunk-R4ZQQ7U2.js} +28 -6
- package/dist/{chunk-Z3NOIFDR.js → chunk-RSPXEVDX.js} +1 -1
- package/dist/{chunk-MSASO5O4.js → chunk-U3HXXRTY.js} +1 -1
- package/dist/{chunk-QLTYTPYU.js → chunk-W3EKCZSQ.js} +12 -5
- package/dist/{chunk-LCEXHCHD.js → chunk-WTE3MQML.js} +1 -1
- package/dist/{cli-RGGXQTWI.js → cli-AEWH62UE.js} +61 -58
- package/dist/{command-ETUAEXP2.js → command-HHPBR6CS.js} +8 -7
- package/dist/{context-adopt-PJUMW2EZ.js → context-adopt-VMMGFRUZ.js} +5 -4
- package/dist/{context-materialize-FDHYKNDT.js → context-materialize-2WXTS4CW.js} +5 -4
- package/dist/{doctor-CORFPYY6.js → doctor-N6Y7HKK3.js} +11 -10
- package/dist/{emit-artifact-cmd-FOGNJXVR.js → emit-artifact-cmd-H5MH3AOP.js} +2 -2
- package/dist/{emit-cmd-ZEYWLC2C.js → emit-cmd-IJ3GVRFD.js} +4 -3
- package/dist/{emit-finding-cmd-DLI4MKMN.js → emit-finding-cmd-ZXDRL6PG.js} +158 -45
- package/dist/{emit-result-cmd-MUSL7GQA.js → emit-result-cmd-RFKALS5Z.js} +2 -2
- package/dist/{hook-fast-WYQD6D7T.js → hook-fast-D7HV4IXG.js} +1 -1
- package/dist/{import-capture-cmd-6QVCOIHK.js → import-capture-cmd-EQ35EARA.js} +3 -3
- package/dist/{import-ruler-cmd-KLRGRBCP.js → import-ruler-cmd-BGAZXCQM.js} +1 -1
- package/dist/index.js +3 -3
- package/dist/{init-MIC37V6J.js → init-FBCA4DRA.js} +10 -9
- package/dist/{init-OPB7HHXO.js → init-MYX7YMIH.js} +10 -9
- package/dist/{init-cmd-JR3RKNFB.js → init-cmd-CAG572UE.js} +9 -8
- package/dist/{init-update-O5YYFGF4.js → init-update-VDFF4K3B.js} +9 -8
- package/dist/{loop-QNSM5GXS.js → loop-75J4YXLZ.js} +16 -15
- package/dist/{machine-IT6GG7FF.js → machine-A6ZCTUGS.js} +8 -7
- package/dist/{runner-env-XTC53CHN.js → runner-env-EN7YE7QX.js} +1 -1
- package/dist/{runner-key-7SSNMUBQ.js → runner-key-W25ISHI3.js} +10 -9
- package/dist/{session-sender-4M247XSV.js → session-sender-24L5EW25.js} +3 -3
- package/dist/{starter-pack-IB4UUIX3.js → starter-pack-KF66HGZR.js} +3 -3
- package/dist/{status-7ZX57OFJ.js → status-XHSGEYO5.js} +11 -10
- package/dist/{sync-cmd-UWD5JOFU.js → sync-cmd-5G5EIEHD.js} +2 -2
- package/dist/{watch-DBNB7R6X.js → watch-UTOXO4SE.js} +2 -2
- package/dist/{work-claim-cmd-A6IS6CQ7.js → work-claim-cmd-RKHYFE5Y.js} +3 -3
- package/dist/{work-cmd-EQSW5DTD.js → work-cmd-DJQJEZVB.js} +1 -1
- package/dist/{work-comment-cmd-7VLKI7FN.js → work-comment-cmd-A55CUSYE.js} +1 -1
- package/dist/{work-open-pr-cmd-JEVD4HMQ.js → work-open-pr-cmd-E6O53IJD.js} +1 -1
- package/package.json +1 -1
- package/skill-pack/maintained/{amend → outerlayer-amend}/SKILL.md +2 -2
- package/skill-pack/maintained/{outerlayer → outerlayer-cli}/SKILL.md +3 -3
- package/skill-pack/maintained/{emitting-evidence → outerlayer-evidence}/SKILL.md +1 -1
- package/skill-pack/maintained/{reporting-findings → outerlayer-findings}/SKILL.md +24 -30
- package/skill-pack/shipped.json +10 -1
- package/skill-pack/template/build/SKILL.md +5 -1
- package/skill-pack/template/build/references/agent-briefs.md +7 -1
- package/skill-pack/template/build/references/evidence.md +1 -1
- package/skill-pack/template/build/references/release.md +1 -1
- package/skill-pack/template/build/references/review-briefs.md +6 -0
- package/skill-pack/template/writing-specs/SKILL.md +1 -1
- /package/skill-pack/maintained/{outerlayer → outerlayer-cli}/references/open-pull-request.md +0 -0
- /package/skill-pack/maintained/{emitting-evidence → outerlayer-evidence}/references/agents-snippet.md +0 -0
|
@@ -22,7 +22,7 @@ import './chunk-BJ3KTMDH.js';
|
|
|
22
22
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
23
23
|
import './chunk-Z5GEFMRW.js';
|
|
24
24
|
import { readFileSync, existsSync } from 'fs';
|
|
25
|
-
import { join } from 'path';
|
|
25
|
+
import { join, dirname, basename } from 'path';
|
|
26
26
|
|
|
27
27
|
createRequire(import.meta.url);
|
|
28
28
|
var RECENT_EVENT_COUNT = 30;
|
|
@@ -50,14 +50,25 @@ function blockText(block) {
|
|
|
50
50
|
}
|
|
51
51
|
return "";
|
|
52
52
|
}
|
|
53
|
-
function
|
|
54
|
-
|
|
53
|
+
function contentOf(message) {
|
|
54
|
+
return message?.content;
|
|
55
|
+
}
|
|
56
|
+
function flatText(message) {
|
|
57
|
+
const content = contentOf(message);
|
|
55
58
|
const text = Array.isArray(content) ? content.map(blockText).join(" ") : blockText(content);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
return text.replace(/\s+/g, " ").trim();
|
|
60
|
+
}
|
|
61
|
+
function summarize(type, flat, agent) {
|
|
62
|
+
const scrubbed = scrubText(flat);
|
|
63
|
+
const clipped = scrubbed.length > SUMMARY_MAX ? `${scrubbed.slice(0, SUMMARY_MAX - 1)}\u2026` : scrubbed;
|
|
64
|
+
const who = type === "user" ? "user" : agent !== void 0 ? `agent ${agent}` : "agent";
|
|
65
|
+
return `${who}: ${clipped}`;
|
|
59
66
|
}
|
|
60
|
-
function
|
|
67
|
+
function isToolResult(message) {
|
|
68
|
+
const content = contentOf(message);
|
|
69
|
+
return Array.isArray(content) && content.some((b) => typeof b === "object" && b !== null && b.type === "tool_result");
|
|
70
|
+
}
|
|
71
|
+
function readSessionEvents(transcriptPath, agent) {
|
|
61
72
|
let text;
|
|
62
73
|
try {
|
|
63
74
|
text = readFileSync(transcriptPath, "utf8");
|
|
@@ -75,20 +86,48 @@ function readSessionEvents(transcriptPath) {
|
|
|
75
86
|
}
|
|
76
87
|
if (record.type !== "user" && record.type !== "assistant" || typeof record.timestamp !== "string") return;
|
|
77
88
|
if (!Number.isFinite(Date.parse(record.timestamp))) return;
|
|
78
|
-
|
|
89
|
+
const text2 = flatText(record.message);
|
|
90
|
+
events.push({
|
|
91
|
+
id: agent !== void 0 ? `${agent}:e${index + 1}` : `e${index + 1}`,
|
|
92
|
+
at: record.timestamp,
|
|
93
|
+
summary: summarize(record.type, text2, agent),
|
|
94
|
+
text: text2,
|
|
95
|
+
isResult: isToolResult(record.message)
|
|
96
|
+
});
|
|
79
97
|
});
|
|
80
98
|
return events;
|
|
81
99
|
}
|
|
82
|
-
function
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
100
|
+
function subagentTranscripts(transcriptPath) {
|
|
101
|
+
const dir = join(dirname(transcriptPath), basename(transcriptPath, ".jsonl"), "subagents");
|
|
102
|
+
return findTranscripts(dir).map((entry) => ({ file: entry.file, agent: sessionIdFromPath(entry.file).replace(/^agent-/, "") }));
|
|
103
|
+
}
|
|
104
|
+
function readAllSessionEvents(transcriptPath) {
|
|
105
|
+
const all = [
|
|
106
|
+
...readSessionEvents(transcriptPath),
|
|
107
|
+
...subagentTranscripts(transcriptPath).flatMap(({ file, agent }) => readSessionEvents(file, agent))
|
|
108
|
+
];
|
|
109
|
+
return all.sort((a, b) => Date.parse(a.at) - Date.parse(b.at));
|
|
110
|
+
}
|
|
111
|
+
function newestEvents(events, count = RECENT_EVENT_COUNT) {
|
|
112
|
+
return events.slice(-count);
|
|
113
|
+
}
|
|
114
|
+
function looseMatch(needle) {
|
|
115
|
+
const words = needle.split(/\s+/).filter((word) => word !== "");
|
|
116
|
+
if (words.length === 0) return void 0;
|
|
117
|
+
return new RegExp(words.map((word) => word.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("\\s+"), "i");
|
|
118
|
+
}
|
|
119
|
+
function eventsShowing(events, needle) {
|
|
120
|
+
return eventsContaining(events, needle).filter((event) => event.isResult);
|
|
121
|
+
}
|
|
122
|
+
function eventsContaining(events, needle) {
|
|
123
|
+
const pattern = looseMatch(needle);
|
|
124
|
+
return pattern === void 0 ? [] : events.filter((event) => pattern.test(event.text));
|
|
86
125
|
}
|
|
87
126
|
var SessionEventNotFoundError = class extends Error {
|
|
88
127
|
};
|
|
89
128
|
function loadSessionEvents(sessionId, home) {
|
|
90
129
|
const path = locateTranscript(sessionId, home);
|
|
91
|
-
return path === void 0 ? void 0 :
|
|
130
|
+
return path === void 0 ? void 0 : readAllSessionEvents(path);
|
|
92
131
|
}
|
|
93
132
|
function pickSessionEvent(events, id) {
|
|
94
133
|
if (events === void 0) {
|
|
@@ -107,16 +146,45 @@ function clock(iso) {
|
|
|
107
146
|
const date = new Date(iso);
|
|
108
147
|
return [date.getHours(), date.getMinutes(), date.getSeconds()].map((n) => String(n).padStart(2, "0")).join(":");
|
|
109
148
|
}
|
|
110
|
-
function
|
|
111
|
-
|
|
112
|
-
|
|
149
|
+
function eventLines(events) {
|
|
150
|
+
const width = Math.max(7, ...events.map((event) => event.id.length + 1));
|
|
151
|
+
return events.map((event) => ` ${event.id.padEnd(width)} ${clock(event.at)} ${event.summary}`);
|
|
152
|
+
}
|
|
153
|
+
function formatNeedsStart(opts) {
|
|
154
|
+
return [
|
|
155
|
+
"Not recorded: a finding records the time it cost, and no start was given.",
|
|
156
|
+
...opts.errorGiven ? ["No tool output in this session or its subagents contains the --error text."] : [],
|
|
157
|
+
"",
|
|
158
|
+
"Recent events in this session and its subagents (id, local time, what happened):",
|
|
159
|
+
...eventLines(opts.recent),
|
|
160
|
+
"",
|
|
161
|
+
// Last, so a call piped through `tail -4` still shows how to continue.
|
|
162
|
+
"Run the same command again with --started-at <id of the event where you first hit the problem>.",
|
|
163
|
+
"--ended-at defaults to the newest event; give it when you got past the problem earlier.",
|
|
164
|
+
"--find <text> lists every event of this session and its subagents that contains the text.",
|
|
165
|
+
"Pass --untimed only when the problem cost no time in this session."
|
|
166
|
+
].join("\n");
|
|
167
|
+
}
|
|
168
|
+
function formatFound(needle, events) {
|
|
169
|
+
if (events.length === 0) return `No event of this session or its subagents contains "${plain(needle)}".`;
|
|
170
|
+
return [`Events that contain "${plain(needle)}" (id, local time, what happened):`, ...eventLines(events)].join("\n");
|
|
171
|
+
}
|
|
172
|
+
function formatBatchNeedsStart(ids, recent) {
|
|
113
173
|
return [
|
|
114
|
-
"
|
|
115
|
-
|
|
116
|
-
"
|
|
117
|
-
|
|
174
|
+
`Not recorded: ${ids.map(plain).join(", ")} ${ids.length === 1 ? "has" : "have"} no "startedAt", and none was found from "error".`,
|
|
175
|
+
"",
|
|
176
|
+
"Recent events in this session and its subagents (id, local time, what happened):",
|
|
177
|
+
...eventLines(recent),
|
|
178
|
+
"",
|
|
179
|
+
'Give each one "startedAt": "<id of the event where the problem was first hit>". "endedAt" defaults to the newest event.',
|
|
180
|
+
'Give "untimed": true instead only when the problem cost no time in this session. Then run emit findings again.'
|
|
118
181
|
].join("\n");
|
|
119
182
|
}
|
|
183
|
+
function formatTimeLost(findingId, start, end, fromError) {
|
|
184
|
+
const minutes = Math.round((Date.parse(end.at) - Date.parse(start.at)) / 6e4);
|
|
185
|
+
const line = `Time lost for ${plain(findingId)}: ~${minutes} min, from ${start.id} (${clock(start.at)}) to ${end.id} (${clock(end.at)}).`;
|
|
186
|
+
return fromError ? `${line} The start is the first tool output that showed the error; if the problem began earlier, record it again with --started-at.` : line;
|
|
187
|
+
}
|
|
120
188
|
function plain(text) {
|
|
121
189
|
return text.replace(/[\u0000-\u001f\u007f-\u009f\u2028\u2029]+/g, " ").trim();
|
|
122
190
|
}
|
|
@@ -236,26 +304,46 @@ function recordFromFlags(opts) {
|
|
|
236
304
|
// Event ids, resolved to { id, at } against the session transcript
|
|
237
305
|
// before the batch is validated.
|
|
238
306
|
startedAt: opts.startedAt,
|
|
239
|
-
endedAt: opts.endedAt
|
|
307
|
+
endedAt: opts.endedAt,
|
|
308
|
+
...opts.untimed === true ? { untimed: true } : {}
|
|
240
309
|
};
|
|
241
310
|
}
|
|
242
|
-
function
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
311
|
+
function pick(events, id) {
|
|
312
|
+
try {
|
|
313
|
+
return pickSessionEvent(events, id);
|
|
314
|
+
} catch (err) {
|
|
315
|
+
throw new EmitFindingError(err.message);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
function ref(event) {
|
|
319
|
+
return { id: event.id, at: event.at };
|
|
320
|
+
}
|
|
321
|
+
function timeFinding(finding, sessionId, loadEvents, flags) {
|
|
322
|
+
const { untimed, ...out } = finding;
|
|
323
|
+
const named = ["startedAt", "endedAt"].filter((key) => out[key] !== void 0);
|
|
324
|
+
if (untimed === true) {
|
|
325
|
+
if (named.length > 0) {
|
|
326
|
+
throw new EmitFindingError(`${flags.untimedFlag} records no time, so it cannot be given with ${flags.startFlag} or ${flags.endFlag}`);
|
|
251
327
|
}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
328
|
+
return { finding: out };
|
|
329
|
+
}
|
|
330
|
+
if (named.some((key) => typeof out[key] !== "string")) return { finding: out };
|
|
331
|
+
if (sessionId === void 0) {
|
|
332
|
+
if (named.length > 0) {
|
|
333
|
+
const flag = named[0] === "startedAt" ? flags.startFlag : flags.endFlag;
|
|
334
|
+
throw new EmitFindingError(`${flag} names an event of the recording session, but no recorded session was found here`);
|
|
256
335
|
}
|
|
336
|
+
return { finding: out };
|
|
257
337
|
}
|
|
258
|
-
|
|
338
|
+
const loaded = loadEvents(sessionId);
|
|
339
|
+
const given = typeof out.startedAt === "string" ? pick(loaded, out.startedAt) : void 0;
|
|
340
|
+
const givenEnd = typeof out.endedAt === "string" ? pick(loaded, out.endedAt) : void 0;
|
|
341
|
+
const events = loaded ?? [];
|
|
342
|
+
const shown = given === void 0 && typeof out.error === "string" ? eventsShowing(events, out.error)[0] : void 0;
|
|
343
|
+
const start = given ?? (shown !== void 0 ? ref(shown) : void 0);
|
|
344
|
+
if (start === void 0) return events.length > 0 ? { finding: out, needsStart: events } : { finding: out };
|
|
345
|
+
const end = givenEnd ?? ref(events[events.length - 1]);
|
|
346
|
+
return { finding: { ...out, startedAt: start, endedAt: end }, timing: { start, end, fromError: given === void 0 } };
|
|
259
347
|
}
|
|
260
348
|
function eventLoader(home) {
|
|
261
349
|
let loaded = false;
|
|
@@ -268,6 +356,9 @@ function eventLoader(home) {
|
|
|
268
356
|
return events;
|
|
269
357
|
};
|
|
270
358
|
}
|
|
359
|
+
function timingBlock(timed) {
|
|
360
|
+
return timed.filter((t) => t.timing !== void 0).map((t) => formatTimeLost(String(t.finding.id), t.timing.start, t.timing.end, t.timing.fromError)).join("\n");
|
|
361
|
+
}
|
|
271
362
|
function firstIssueMessage(result) {
|
|
272
363
|
const issue = result.error.issues[0];
|
|
273
364
|
return issue ? `${issue.path.join(".")}: ${issue.message}` : "malformed";
|
|
@@ -360,7 +451,7 @@ async function upload(batch, target, opts) {
|
|
|
360
451
|
} else {
|
|
361
452
|
const summary = `${C.green}\u2713${C.reset} recorded ${count} ${count === 1 ? "finding" : "findings"} ${C.dim}\xB7${C.reset} item #${target.item.number}`;
|
|
362
453
|
output = [
|
|
363
|
-
opts.
|
|
454
|
+
opts.timingBlock ?? "",
|
|
364
455
|
count > 0 || !needsChoice ? summary : "",
|
|
365
456
|
formatStored(results),
|
|
366
457
|
formatCandidates(results, opts.rerun)
|
|
@@ -376,18 +467,34 @@ async function runEmitFinding(opts) {
|
|
|
376
467
|
const now = opts.now ?? (() => /* @__PURE__ */ new Date());
|
|
377
468
|
const sessionId = detectUploadSessionId({ cwd, home, env, now });
|
|
378
469
|
const contextSourceSha = opts.contextSourceSha ?? (sessionId !== void 0 ? readLatestProvenanceForSession(sessionId, home)?.sha ?? void 0 : void 0);
|
|
470
|
+
const loadEvents = eventLoader(home);
|
|
471
|
+
if (opts.find !== void 0) {
|
|
472
|
+
if (sessionId === void 0) throw new EmitFindingError("--find searches the recording session, but no recorded session was found here");
|
|
473
|
+
const events = loadEvents(sessionId);
|
|
474
|
+
if (events === void 0) throw new EmitFindingError("--find: this session's transcript was not found on this machine");
|
|
475
|
+
const output = formatFound(opts.find, eventsContaining(events, opts.find));
|
|
476
|
+
if (!opts.quiet) process.stdout.write(output + "\n");
|
|
477
|
+
return { data: {}, output, exitCode: 0 };
|
|
478
|
+
}
|
|
479
|
+
const timed = timeFinding(recordFromFlags(opts), sessionId, loadEvents, {
|
|
480
|
+
startFlag: "--started-at",
|
|
481
|
+
endFlag: "--ended-at",
|
|
482
|
+
untimedFlag: "--untimed"
|
|
483
|
+
});
|
|
484
|
+
if (timed.needsStart !== void 0) {
|
|
485
|
+
throw new EmitFindingError(formatNeedsStart({ recent: newestEvents(timed.needsStart), errorGiven: opts.error !== void 0 }));
|
|
486
|
+
}
|
|
379
487
|
const rawBatch = {
|
|
380
488
|
schemaVersion: 3,
|
|
381
489
|
...opts.headSha !== void 0 ? { headSha: opts.headSha } : {},
|
|
382
490
|
...contextSourceSha !== void 0 ? { contextSourceSha } : {},
|
|
383
|
-
findings: [
|
|
491
|
+
findings: [timed.finding]
|
|
384
492
|
};
|
|
385
493
|
const parsed = FindingBatchSchema.safeParse(rawBatch);
|
|
386
494
|
if (!parsed.success) {
|
|
387
495
|
throw new EmitFindingError(`invalid finding \u2014 ${firstIssueMessage(parsed)}`);
|
|
388
496
|
}
|
|
389
497
|
const target = resolveUploadTarget({ item: opts.item, sessionId, home });
|
|
390
|
-
const events = opts.startedAt === void 0 && sessionId !== void 0 ? recentSessionEvents(sessionId, home) : void 0;
|
|
391
498
|
return upload(parsed.data, target, {
|
|
392
499
|
json: opts.json,
|
|
393
500
|
url: opts.url,
|
|
@@ -398,7 +505,7 @@ async function runEmitFinding(opts) {
|
|
|
398
505
|
home,
|
|
399
506
|
env,
|
|
400
507
|
fetchImpl: opts.fetchImpl,
|
|
401
|
-
|
|
508
|
+
timingBlock: timingBlock([timed]),
|
|
402
509
|
rerun: RERUN_SINGLE
|
|
403
510
|
});
|
|
404
511
|
}
|
|
@@ -430,15 +537,20 @@ async function runEmitFindings(opts) {
|
|
|
430
537
|
);
|
|
431
538
|
}
|
|
432
539
|
const sessionId = detectUploadSessionId({ cwd, home, env, now });
|
|
540
|
+
let timed = [];
|
|
433
541
|
if (Array.isArray(raw?.findings)) {
|
|
434
542
|
const batch = raw;
|
|
435
543
|
const loadEvents = eventLoader(home);
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
544
|
+
const flags = { startFlag: "startedAt", endFlag: "endedAt", untimedFlag: '"untimed"' };
|
|
545
|
+
const entries = batch.findings.map(
|
|
546
|
+
(entry) => typeof entry === "object" && entry !== null ? timeFinding(entry, sessionId, loadEvents, flags) : entry
|
|
547
|
+
);
|
|
548
|
+
timed = entries.filter((entry) => typeof entry === "object" && entry !== null && "finding" in entry);
|
|
549
|
+
const missing = timed.filter((t) => t.needsStart !== void 0);
|
|
550
|
+
if (missing.length > 0) {
|
|
551
|
+
throw new EmitFindingError(formatBatchNeedsStart(missing.map((t) => String(t.finding.id)), newestEvents(missing[0].needsStart)));
|
|
552
|
+
}
|
|
553
|
+
raw = { ...batch, findings: entries.map((entry) => timed.includes(entry) ? entry.finding : entry) };
|
|
442
554
|
}
|
|
443
555
|
const parsed = FindingBatchSchema.safeParse(raw);
|
|
444
556
|
if (!parsed.success) {
|
|
@@ -455,6 +567,7 @@ async function runEmitFindings(opts) {
|
|
|
455
567
|
home,
|
|
456
568
|
env,
|
|
457
569
|
fetchImpl: opts.fetchImpl,
|
|
570
|
+
timingBlock: timingBlock(timed),
|
|
458
571
|
rerun: rerunBatch(opts.file)
|
|
459
572
|
});
|
|
460
573
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { detectCi } from './chunk-
|
|
3
|
+
import { detectCi } from './chunk-U3HXXRTY.js';
|
|
4
4
|
import { launchRefusalForSession } from './chunk-HHJDN6AU.js';
|
|
5
5
|
import './chunk-TBT347UY.js';
|
|
6
6
|
import { autoConnect } from './chunk-NPQWKGUA.js';
|
|
@@ -23,7 +23,7 @@ import { EmittedNameSchema, EMITTED_RESULT_MAX_LINK_LENGTH, EMITTED_RESULTS, EMI
|
|
|
23
23
|
import './chunk-EABW6AJQ.js';
|
|
24
24
|
import './chunk-V7NIVOFD.js';
|
|
25
25
|
import './chunk-ZM2IMMYN.js';
|
|
26
|
-
import './chunk-
|
|
26
|
+
import './chunk-6JNURGOA.js';
|
|
27
27
|
import './chunk-XCCLFVXM.js';
|
|
28
28
|
import './chunk-BJ3KTMDH.js';
|
|
29
29
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { AUTO_SYNC_DEBOUNCE_MS, WORK_LEASE_RENEW_DEBOUNCE_MS, WORK_LINK_RETRIES, contextPossiblyGoverned, handleWorkLaunch, handleWorkSessionEnd, hookFiredMarkerPath, logHookError, markWorkLeaseRenewed, maybeAutoSync, maybeRenewWorkLease, recordLinkExitFailure, runHookFast, spoolDir } from './chunk-
|
|
3
|
+
export { AUTO_SYNC_DEBOUNCE_MS, WORK_LEASE_RENEW_DEBOUNCE_MS, WORK_LINK_RETRIES, contextPossiblyGoverned, handleWorkLaunch, handleWorkSessionEnd, hookFiredMarkerPath, logHookError, markWorkLeaseRenewed, maybeAutoSync, maybeRenewWorkLease, recordLinkExitFailure, runHookFast, spoolDir } from './chunk-6JNURGOA.js';
|
|
4
4
|
import './chunk-XCCLFVXM.js';
|
|
5
5
|
import './chunk-BJ3KTMDH.js';
|
|
6
6
|
import './chunk-VNVZDWO3.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { C } from './chunk-YRYMNBGQ.js';
|
|
4
|
-
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-
|
|
5
|
-
import './chunk-
|
|
4
|
+
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-POJMEEJJ.js';
|
|
5
|
+
import './chunk-OHVJA253.js';
|
|
6
6
|
import './chunk-J5M7BSJQ.js';
|
|
7
7
|
import './chunk-RA3O54FC.js';
|
|
8
8
|
import './chunk-Z5GEFMRW.js';
|
|
@@ -12,7 +12,7 @@ import { join } from 'path';
|
|
|
12
12
|
createRequire(import.meta.url);
|
|
13
13
|
var ImportCaptureError = class extends Error {
|
|
14
14
|
};
|
|
15
|
-
var SNIPPET_PATH = ".outerlayer/skills/
|
|
15
|
+
var SNIPPET_PATH = ".outerlayer/skills/outerlayer-evidence/references/agents-snippet.md";
|
|
16
16
|
var AGENTS_MD_PATH = ".outerlayer/AGENTS.md";
|
|
17
17
|
var AGENTS_MD_MARKER = "<!-- outerlayer:capture-pack -->";
|
|
18
18
|
function runImportCapture(opts = {}) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { C } from './chunk-YRYMNBGQ.js';
|
|
4
|
-
import { normalizePath } from './chunk-
|
|
4
|
+
import { normalizePath } from './chunk-OHVJA253.js';
|
|
5
5
|
import './chunk-J5M7BSJQ.js';
|
|
6
6
|
import './chunk-Z5GEFMRW.js';
|
|
7
7
|
import { existsSync, readdirSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ createRequire(import.meta.url);
|
|
|
6
6
|
// src/index.ts
|
|
7
7
|
var argv = process.argv.slice(2);
|
|
8
8
|
if (argv[0] === "hook") {
|
|
9
|
-
const { runHookFast } = await import('./hook-fast-
|
|
9
|
+
const { runHookFast } = await import('./hook-fast-D7HV4IXG.js');
|
|
10
10
|
await runHookFast(argv[1]);
|
|
11
11
|
process.exit(0);
|
|
12
12
|
}
|
|
@@ -21,6 +21,6 @@ if (argv[0] === "statusline") {
|
|
|
21
21
|
await runStatuslineFast(argv.slice(1));
|
|
22
22
|
process.exit(0);
|
|
23
23
|
}
|
|
24
|
-
(await import('./hook-fast-
|
|
25
|
-
var { runCli } = await import('./cli-
|
|
24
|
+
(await import('./hook-fast-D7HV4IXG.js')).recordLinkExitFailure(argv);
|
|
25
|
+
var { runCli } = await import('./cli-AEWH62UE.js');
|
|
26
26
|
await runCli(process.argv);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { npmSupportsProvenance } from './chunk-YETTWTAY.js';
|
|
4
|
-
import { RunnerInitError, readConfigObject } from './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
4
|
+
import { RunnerInitError, readConfigObject } from './chunk-CA3XMYFN.js';
|
|
5
|
+
import './chunk-RSPXEVDX.js';
|
|
6
|
+
import './chunk-EWORLJMO.js';
|
|
7
7
|
import './chunk-KMDLFI4P.js';
|
|
8
8
|
import './chunk-QKFB4K7X.js';
|
|
9
9
|
import './chunk-RSNSZ2LJ.js';
|
|
10
|
-
import './chunk-
|
|
10
|
+
import './chunk-OZGHL5Y5.js';
|
|
11
11
|
import { checkFit, VM_SERVICE_NAME, RUNNER_RESERVE_BYTES } from './chunk-RLYZLUQ7.js';
|
|
12
12
|
import './chunk-6MZSX4M7.js';
|
|
13
|
-
import './chunk-
|
|
13
|
+
import './chunk-6QRMLNH3.js';
|
|
14
14
|
import './chunk-NPQWKGUA.js';
|
|
15
15
|
import './chunk-IP7BIBXJ.js';
|
|
16
16
|
import { runnerCredentialProblem, resolveBuild, resolveHousekeeping } from './chunk-22RMZBGW.js';
|
|
@@ -31,13 +31,14 @@ import './chunk-4KSQKQXE.js';
|
|
|
31
31
|
import './chunk-N6LURUEF.js';
|
|
32
32
|
import './chunk-YRYMNBGQ.js';
|
|
33
33
|
import './chunk-WZBHBH3J.js';
|
|
34
|
-
import './chunk-
|
|
35
|
-
import './chunk-
|
|
34
|
+
import './chunk-JEHRUE3F.js';
|
|
35
|
+
import './chunk-WTE3MQML.js';
|
|
36
|
+
import './chunk-C5Y5ZJJZ.js';
|
|
36
37
|
import './chunk-ZJSNLVCE.js';
|
|
37
38
|
import './chunk-YO4PSLVB.js';
|
|
38
39
|
import './chunk-BYT5O5RV.js';
|
|
39
|
-
import './chunk-
|
|
40
|
-
import './chunk-
|
|
40
|
+
import './chunk-POJMEEJJ.js';
|
|
41
|
+
import './chunk-OHVJA253.js';
|
|
41
42
|
import './chunk-PLMTLGYH.js';
|
|
42
43
|
import './chunk-J5M7BSJQ.js';
|
|
43
44
|
import './chunk-EABW6AJQ.js';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { PLACEHOLDER_MARKER, RunnerInitError, isPlaceholderCommand, prepareRunnerInit, readConfigObject, runRunnerInit, writeRunnerInit } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
3
|
+
export { PLACEHOLDER_MARKER, RunnerInitError, isPlaceholderCommand, prepareRunnerInit, readConfigObject, runRunnerInit, writeRunnerInit } from './chunk-CA3XMYFN.js';
|
|
4
|
+
import './chunk-RSPXEVDX.js';
|
|
5
|
+
import './chunk-EWORLJMO.js';
|
|
6
6
|
import './chunk-KMDLFI4P.js';
|
|
7
7
|
import './chunk-QKFB4K7X.js';
|
|
8
8
|
import './chunk-RSNSZ2LJ.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-OZGHL5Y5.js';
|
|
10
10
|
import './chunk-RLYZLUQ7.js';
|
|
11
11
|
import './chunk-6MZSX4M7.js';
|
|
12
|
-
import './chunk-
|
|
12
|
+
import './chunk-6QRMLNH3.js';
|
|
13
13
|
import './chunk-NPQWKGUA.js';
|
|
14
14
|
import './chunk-IP7BIBXJ.js';
|
|
15
15
|
import './chunk-22RMZBGW.js';
|
|
@@ -29,13 +29,14 @@ import './chunk-4KSQKQXE.js';
|
|
|
29
29
|
import './chunk-N6LURUEF.js';
|
|
30
30
|
import './chunk-YRYMNBGQ.js';
|
|
31
31
|
import './chunk-WZBHBH3J.js';
|
|
32
|
-
import './chunk-
|
|
33
|
-
import './chunk-
|
|
32
|
+
import './chunk-JEHRUE3F.js';
|
|
33
|
+
import './chunk-WTE3MQML.js';
|
|
34
|
+
import './chunk-C5Y5ZJJZ.js';
|
|
34
35
|
import './chunk-ZJSNLVCE.js';
|
|
35
36
|
import './chunk-YO4PSLVB.js';
|
|
36
37
|
import './chunk-BYT5O5RV.js';
|
|
37
|
-
import './chunk-
|
|
38
|
-
import './chunk-
|
|
38
|
+
import './chunk-POJMEEJJ.js';
|
|
39
|
+
import './chunk-OHVJA253.js';
|
|
39
40
|
import './chunk-PLMTLGYH.js';
|
|
40
41
|
import './chunk-J5M7BSJQ.js';
|
|
41
42
|
import './chunk-EABW6AJQ.js';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { summarizeChecks, summaryText, renderDoctorText } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
3
|
+
import { summarizeChecks, summaryText, renderDoctorText } from './chunk-W3EKCZSQ.js';
|
|
4
|
+
import './chunk-NBGDBTO2.js';
|
|
5
|
+
import './chunk-6QRMLNH3.js';
|
|
6
6
|
import './chunk-NPQWKGUA.js';
|
|
7
7
|
import './chunk-IP7BIBXJ.js';
|
|
8
8
|
import './chunk-F47JBIAW.js';
|
|
9
9
|
import './chunk-BKO6JEZI.js';
|
|
10
10
|
import './chunk-XCK2YAY5.js';
|
|
11
|
-
import './chunk-
|
|
11
|
+
import './chunk-42ZI52JW.js';
|
|
12
12
|
import { runConnect, COMMIT_LINE } from './chunk-YDSMROTB.js';
|
|
13
13
|
import './chunk-WUYTWNMA.js';
|
|
14
14
|
import './chunk-JXYVA45C.js';
|
|
@@ -17,17 +17,18 @@ import './chunk-N6LURUEF.js';
|
|
|
17
17
|
import { C } from './chunk-YRYMNBGQ.js';
|
|
18
18
|
import './chunk-WZBHBH3J.js';
|
|
19
19
|
import './chunk-5QRP3MVS.js';
|
|
20
|
-
import './chunk-
|
|
20
|
+
import './chunk-WTE3MQML.js';
|
|
21
|
+
import './chunk-C5Y5ZJJZ.js';
|
|
21
22
|
import './chunk-YO4PSLVB.js';
|
|
22
|
-
import './chunk-
|
|
23
|
-
import './chunk-
|
|
23
|
+
import './chunk-POJMEEJJ.js';
|
|
24
|
+
import './chunk-OHVJA253.js';
|
|
24
25
|
import './chunk-PLMTLGYH.js';
|
|
25
26
|
import './chunk-J5M7BSJQ.js';
|
|
26
27
|
import './chunk-EABW6AJQ.js';
|
|
27
28
|
import './chunk-RA3O54FC.js';
|
|
28
29
|
import './chunk-V7NIVOFD.js';
|
|
29
30
|
import './chunk-ZM2IMMYN.js';
|
|
30
|
-
import './chunk-
|
|
31
|
+
import './chunk-6JNURGOA.js';
|
|
31
32
|
import './chunk-XCCLFVXM.js';
|
|
32
33
|
import './chunk-BJ3KTMDH.js';
|
|
33
34
|
import './chunk-VNVZDWO3.js';
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { keepHandWritten } from './chunk-
|
|
4
|
-
import { runEmit } from './chunk-
|
|
5
|
-
import { contextIsGoverned, inspectStarterFiles, canonical } from './chunk-
|
|
3
|
+
import { keepHandWritten } from './chunk-5FEK6PNE.js';
|
|
4
|
+
import { runEmit } from './chunk-2MNPHL23.js';
|
|
5
|
+
import { contextIsGoverned, inspectStarterFiles, canonical } from './chunk-NBGDBTO2.js';
|
|
6
6
|
import { setMcpEntry } from './chunk-XCK2YAY5.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-42ZI52JW.js';
|
|
8
8
|
import { COMMIT_LINE } from './chunk-YDSMROTB.js';
|
|
9
9
|
import './chunk-WUYTWNMA.js';
|
|
10
10
|
import './chunk-JXYVA45C.js';
|
|
11
11
|
import './chunk-4KSQKQXE.js';
|
|
12
12
|
import './chunk-N6LURUEF.js';
|
|
13
13
|
import { C } from './chunk-YRYMNBGQ.js';
|
|
14
|
-
import './chunk-
|
|
15
|
-
import './chunk-
|
|
14
|
+
import './chunk-JEHRUE3F.js';
|
|
15
|
+
import './chunk-WTE3MQML.js';
|
|
16
|
+
import './chunk-C5Y5ZJJZ.js';
|
|
16
17
|
import './chunk-ZJSNLVCE.js';
|
|
17
18
|
import './chunk-YO4PSLVB.js';
|
|
18
19
|
import './chunk-BYT5O5RV.js';
|
|
19
|
-
import './chunk-
|
|
20
|
-
import './chunk-
|
|
20
|
+
import './chunk-POJMEEJJ.js';
|
|
21
|
+
import './chunk-OHVJA253.js';
|
|
21
22
|
import './chunk-PLMTLGYH.js';
|
|
22
23
|
import './chunk-J5M7BSJQ.js';
|
|
23
24
|
import './chunk-EABW6AJQ.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { RunnerStartError, listJobFiles, probeCredentials, requestStop, runnerProcessState, start, tick, watchTick } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { RunnerStartError, listJobFiles, probeCredentials, requestStop, runnerProcessState, start, tick, watchTick } from './chunk-EHAAPRWY.js';
|
|
4
|
+
import './chunk-R4ZQQ7U2.js';
|
|
5
5
|
import './chunk-O765JR4W.js';
|
|
6
6
|
import './chunk-UGP76IZ5.js';
|
|
7
7
|
import './chunk-3JVYMD4G.js';
|
|
@@ -10,23 +10,23 @@ import './chunk-RMWLBUCJ.js';
|
|
|
10
10
|
import './chunk-I2UOAV7X.js';
|
|
11
11
|
import './chunk-HYZRY4KZ.js';
|
|
12
12
|
import './chunk-ADJRGVZC.js';
|
|
13
|
-
import './chunk-
|
|
14
|
-
import './chunk-
|
|
13
|
+
import './chunk-ONRCEE6D.js';
|
|
14
|
+
import './chunk-U3HXXRTY.js';
|
|
15
15
|
import './chunk-HHJDN6AU.js';
|
|
16
|
-
import './chunk-
|
|
16
|
+
import './chunk-FWX735W7.js';
|
|
17
17
|
import './chunk-YYYRBYWG.js';
|
|
18
18
|
import './chunk-TI7B7UEO.js';
|
|
19
19
|
import './chunk-TBT347UY.js';
|
|
20
|
-
import './chunk-
|
|
21
|
-
import './chunk-
|
|
22
|
-
import './chunk-
|
|
20
|
+
import './chunk-CA3XMYFN.js';
|
|
21
|
+
import './chunk-RSPXEVDX.js';
|
|
22
|
+
import './chunk-EWORLJMO.js';
|
|
23
23
|
import './chunk-KMDLFI4P.js';
|
|
24
24
|
import './chunk-QKFB4K7X.js';
|
|
25
25
|
import './chunk-RSNSZ2LJ.js';
|
|
26
|
-
import './chunk-
|
|
26
|
+
import './chunk-OZGHL5Y5.js';
|
|
27
27
|
import './chunk-RLYZLUQ7.js';
|
|
28
28
|
import './chunk-6MZSX4M7.js';
|
|
29
|
-
import './chunk-
|
|
29
|
+
import './chunk-6QRMLNH3.js';
|
|
30
30
|
import './chunk-NPQWKGUA.js';
|
|
31
31
|
import './chunk-IP7BIBXJ.js';
|
|
32
32
|
import './chunk-22RMZBGW.js';
|
|
@@ -50,20 +50,21 @@ import './chunk-YRYMNBGQ.js';
|
|
|
50
50
|
import './chunk-GQD22KKN.js';
|
|
51
51
|
import './chunk-WZBHBH3J.js';
|
|
52
52
|
import './chunk-5QRP3MVS.js';
|
|
53
|
-
import './chunk-
|
|
54
|
-
import './chunk-
|
|
53
|
+
import './chunk-JEHRUE3F.js';
|
|
54
|
+
import './chunk-WTE3MQML.js';
|
|
55
|
+
import './chunk-C5Y5ZJJZ.js';
|
|
55
56
|
import './chunk-ZJSNLVCE.js';
|
|
56
57
|
import './chunk-YO4PSLVB.js';
|
|
57
58
|
import './chunk-BYT5O5RV.js';
|
|
58
|
-
import './chunk-
|
|
59
|
-
import './chunk-
|
|
59
|
+
import './chunk-POJMEEJJ.js';
|
|
60
|
+
import './chunk-OHVJA253.js';
|
|
60
61
|
import './chunk-PLMTLGYH.js';
|
|
61
62
|
import './chunk-J5M7BSJQ.js';
|
|
62
63
|
import './chunk-EABW6AJQ.js';
|
|
63
64
|
import './chunk-RA3O54FC.js';
|
|
64
65
|
import './chunk-V7NIVOFD.js';
|
|
65
66
|
import './chunk-ZM2IMMYN.js';
|
|
66
|
-
import './chunk-
|
|
67
|
+
import './chunk-6JNURGOA.js';
|
|
67
68
|
import './chunk-XCCLFVXM.js';
|
|
68
69
|
import './chunk-BJ3KTMDH.js';
|
|
69
70
|
import './chunk-VNVZDWO3.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { describeMachineDocker, detectMachine, microVmArchSupported, microVmAssetsPinned, reachDockerStep, supportsContainerBuilds, supportsMicroVmBuilds } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { describeMachineDocker, detectMachine, microVmArchSupported, microVmAssetsPinned, reachDockerStep, supportsContainerBuilds, supportsMicroVmBuilds } from './chunk-RSPXEVDX.js';
|
|
4
|
+
import './chunk-EWORLJMO.js';
|
|
5
5
|
import './chunk-KMDLFI4P.js';
|
|
6
6
|
import './chunk-QKFB4K7X.js';
|
|
7
7
|
import './chunk-RSNSZ2LJ.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-6QRMLNH3.js';
|
|
9
9
|
import './chunk-NPQWKGUA.js';
|
|
10
10
|
import './chunk-IP7BIBXJ.js';
|
|
11
11
|
import './chunk-UXYLWVTQ.js';
|
|
@@ -24,13 +24,14 @@ import './chunk-4KSQKQXE.js';
|
|
|
24
24
|
import './chunk-N6LURUEF.js';
|
|
25
25
|
import './chunk-YRYMNBGQ.js';
|
|
26
26
|
import './chunk-WZBHBH3J.js';
|
|
27
|
-
import './chunk-
|
|
28
|
-
import './chunk-
|
|
27
|
+
import './chunk-JEHRUE3F.js';
|
|
28
|
+
import './chunk-WTE3MQML.js';
|
|
29
|
+
import './chunk-C5Y5ZJJZ.js';
|
|
29
30
|
import './chunk-ZJSNLVCE.js';
|
|
30
31
|
import './chunk-YO4PSLVB.js';
|
|
31
32
|
import './chunk-BYT5O5RV.js';
|
|
32
|
-
import './chunk-
|
|
33
|
-
import './chunk-
|
|
33
|
+
import './chunk-POJMEEJJ.js';
|
|
34
|
+
import './chunk-OHVJA253.js';
|
|
34
35
|
import './chunk-PLMTLGYH.js';
|
|
35
36
|
import './chunk-J5M7BSJQ.js';
|
|
36
37
|
import './chunk-EABW6AJQ.js';
|