oh-my-claudecode 0.2.3 → 0.2.4
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/README.md +48 -1
- package/dist/cli/bind-cron.d.ts +86 -0
- package/dist/cli/bind-cron.d.ts.map +1 -0
- package/dist/cli/bind-cron.js +161 -0
- package/dist/cli/bind-cron.js.map +1 -0
- package/dist/cli/bind.d.ts +78 -0
- package/dist/cli/bind.d.ts.map +1 -0
- package/dist/cli/bind.js +417 -0
- package/dist/cli/bind.js.map +1 -0
- package/dist/cli/index.js +61 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/project-scan.d.ts +94 -0
- package/dist/cli/project-scan.d.ts.map +1 -0
- package/dist/cli/project-scan.js +387 -0
- package/dist/cli/project-scan.js.map +1 -0
- package/dist/cli/sisyphus-migrate.d.ts +50 -0
- package/dist/cli/sisyphus-migrate.d.ts.map +1 -0
- package/dist/cli/sisyphus-migrate.js +226 -0
- package/dist/cli/sisyphus-migrate.js.map +1 -0
- package/dist/cli/tui.d.ts +94 -0
- package/dist/cli/tui.d.ts.map +1 -0
- package/dist/cli/tui.js +180 -0
- package/dist/cli/tui.js.map +1 -0
- package/dist/features/yith-archive/functions/backfill.d.ts +43 -0
- package/dist/features/yith-archive/functions/backfill.d.ts.map +1 -1
- package/dist/features/yith-archive/functions/backfill.js +303 -145
- package/dist/features/yith-archive/functions/backfill.js.map +1 -1
- package/dist/features/yith-archive/functions/compress-batch.d.ts +4 -0
- package/dist/features/yith-archive/functions/compress-batch.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/compress-batch.js +290 -0
- package/dist/features/yith-archive/functions/compress-batch.js.map +1 -0
- package/dist/features/yith-archive/functions/compress.d.ts +2 -1
- package/dist/features/yith-archive/functions/compress.d.ts.map +1 -1
- package/dist/features/yith-archive/functions/compress.js +1 -1
- package/dist/features/yith-archive/functions/compress.js.map +1 -1
- package/dist/features/yith-archive/functions/opencode-import.d.ts +67 -0
- package/dist/features/yith-archive/functions/opencode-import.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/opencode-import.js +272 -0
- package/dist/features/yith-archive/functions/opencode-import.js.map +1 -0
- package/dist/features/yith-archive/index.d.ts.map +1 -1
- package/dist/features/yith-archive/index.js +4 -0
- package/dist/features/yith-archive/index.js.map +1 -1
- package/dist/features/yith-archive/providers/embedding/local.d.ts +22 -0
- package/dist/features/yith-archive/providers/embedding/local.d.ts.map +1 -1
- package/dist/features/yith-archive/providers/embedding/local.js +56 -2
- package/dist/features/yith-archive/providers/embedding/local.js.map +1 -1
- package/dist/features/yith-archive/state/bind-state.d.ts +84 -0
- package/dist/features/yith-archive/state/bind-state.d.ts.map +1 -0
- package/dist/features/yith-archive/state/bind-state.js +120 -0
- package/dist/features/yith-archive/state/bind-state.js.map +1 -0
- package/dist/features/yith-archive/state/schema.d.ts +14 -0
- package/dist/features/yith-archive/state/schema.d.ts.map +1 -1
- package/dist/features/yith-archive/state/schema.js +14 -0
- package/dist/features/yith-archive/state/schema.js.map +1 -1
- package/dist/hooks/cthulhu-auto.d.ts +1 -1
- package/dist/hooks/cthulhu-auto.d.ts.map +1 -1
- package/dist/hooks/cthulhu-auto.js +75 -11
- package/dist/hooks/cthulhu-auto.js.map +1 -1
- package/dist/hooks/cthulhu-preflight.d.ts +45 -0
- package/dist/hooks/cthulhu-preflight.d.ts.map +1 -0
- package/dist/hooks/cthulhu-preflight.js +91 -0
- package/dist/hooks/cthulhu-preflight.js.map +1 -0
- package/package.json +5 -2
- /package/commands/{bind-necronomicon.md → necronomicon-bind.md} +0 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { logger } from "../state/logger.js";
|
|
2
|
+
import { KV } from "../state/schema.js";
|
|
3
|
+
import { createWorkPacket, planLoopBatches, } from "../state/work-packets.js";
|
|
4
|
+
import { COMPRESSION_SYSTEM, buildCompressionPrompt, } from "../prompts/compression.js";
|
|
5
|
+
import { parseCompressionXml } from "./compress.js";
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Raw-observation detection + queue building
|
|
8
|
+
// ============================================================================
|
|
9
|
+
/**
|
|
10
|
+
* Walk every session and collect the IDs of observations that don't
|
|
11
|
+
* look compressed yet. "Raw" = missing `title` (CompressedObservation
|
|
12
|
+
* always has one). Returns oldest-first so users see progress on
|
|
13
|
+
* historical data before new arrivals.
|
|
14
|
+
*
|
|
15
|
+
* This is an O(sessions * obs_per_session) scan. Acceptable for
|
|
16
|
+
* bind-time — the alternative (a separate raw-queue KV scope) means
|
|
17
|
+
* two sources of truth and drift risk.
|
|
18
|
+
*/
|
|
19
|
+
async function collectRawObservations(kv, limit, projectFilter) {
|
|
20
|
+
const sessions = await kv.list(KV.sessions).catch(() => []);
|
|
21
|
+
const results = [];
|
|
22
|
+
for (const session of sessions) {
|
|
23
|
+
if (projectFilter && session.project !== projectFilter)
|
|
24
|
+
continue;
|
|
25
|
+
const obs = await kv
|
|
26
|
+
.list(KV.observations(session.id))
|
|
27
|
+
.catch(() => []);
|
|
28
|
+
for (const o of obs) {
|
|
29
|
+
// Raw observations have hookType + userPrompt/toolName, but
|
|
30
|
+
// no `title` field. CompressedObservation always has title.
|
|
31
|
+
const isRaw = !("title" in o) || !o.title;
|
|
32
|
+
if (!isRaw)
|
|
33
|
+
continue;
|
|
34
|
+
if (!o.id || !o.timestamp)
|
|
35
|
+
continue;
|
|
36
|
+
results.push({
|
|
37
|
+
obsId: o.id,
|
|
38
|
+
sessionId: session.id,
|
|
39
|
+
timestamp: o.timestamp,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Oldest first. Clamp to limit.
|
|
44
|
+
results.sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime());
|
|
45
|
+
return results.slice(0, limit);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Decrement the pending-compression counter after a successful
|
|
49
|
+
* compression write. Mirrors the helper in backfill.ts — kept inline
|
|
50
|
+
* here to avoid cross-module import churn.
|
|
51
|
+
*/
|
|
52
|
+
async function decrementPending(kv, delta = 1) {
|
|
53
|
+
const existing = (await kv
|
|
54
|
+
.get(KV.pendingCompression, "state")
|
|
55
|
+
.catch(() => null)) ?? { count: 0, updatedAt: "" };
|
|
56
|
+
await kv.set(KV.pendingCompression, "state", {
|
|
57
|
+
count: Math.max(0, existing.count - delta),
|
|
58
|
+
updatedAt: new Date().toISOString(),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Build a WorkPacket for a single raw observation. The packet's user
|
|
63
|
+
* prompt is whatever compression context we can reconstruct from the
|
|
64
|
+
* raw obs — for the bind-path raws that means the original user prompt
|
|
65
|
+
* or tool invocation, fed through the same buildCompressionPrompt
|
|
66
|
+
* helper the direct compress path uses.
|
|
67
|
+
*/
|
|
68
|
+
function packetForRawObs(raw) {
|
|
69
|
+
const userPrompt = buildCompressionPrompt({
|
|
70
|
+
hookType: raw.hookType ?? "conversation",
|
|
71
|
+
toolName: raw.toolName,
|
|
72
|
+
toolInput: raw.toolInput,
|
|
73
|
+
toolOutput: raw.toolOutput,
|
|
74
|
+
userPrompt: raw.userPrompt,
|
|
75
|
+
timestamp: raw.timestamp ?? new Date().toISOString(),
|
|
76
|
+
});
|
|
77
|
+
return createWorkPacket({
|
|
78
|
+
kind: "compress",
|
|
79
|
+
systemPrompt: COMPRESSION_SYSTEM,
|
|
80
|
+
userPrompt,
|
|
81
|
+
purpose: `compress raw observation ${raw.id ?? "(unknown)"}`,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
// ============================================================================
|
|
85
|
+
// Batch construction
|
|
86
|
+
// ============================================================================
|
|
87
|
+
/**
|
|
88
|
+
* Build the next batch of packets by dequeuing from the state's queue
|
|
89
|
+
* starting at batchStart and advancing by batchSize. Loads each raw
|
|
90
|
+
* obs fresh from KV so we have its prompt data, constructs a packet,
|
|
91
|
+
* records a task binding packet→obs for the consume pass.
|
|
92
|
+
*
|
|
93
|
+
* Tasks whose obs can't be loaded (deleted between enqueue and this
|
|
94
|
+
* call) are logged and skipped; they don't break the whole batch.
|
|
95
|
+
*/
|
|
96
|
+
async function buildCompressBatch(kv, state) {
|
|
97
|
+
const end = Math.min(state.batchStart + state.batchSize, state.queue.length);
|
|
98
|
+
const packets = [];
|
|
99
|
+
state.currentBatch = [];
|
|
100
|
+
for (let i = state.batchStart; i < end; i++) {
|
|
101
|
+
const q = state.queue[i];
|
|
102
|
+
const raw = await kv
|
|
103
|
+
.get(KV.observations(q.sessionId), q.obsId)
|
|
104
|
+
.catch(() => null);
|
|
105
|
+
if (!raw) {
|
|
106
|
+
logger.warn("compress-batch: raw obs vanished mid-run", {
|
|
107
|
+
obsId: q.obsId,
|
|
108
|
+
});
|
|
109
|
+
state.failed++;
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
const packet = packetForRawObs(raw);
|
|
113
|
+
packets.push(packet);
|
|
114
|
+
state.currentBatch.push({
|
|
115
|
+
obsId: q.obsId,
|
|
116
|
+
sessionId: q.sessionId,
|
|
117
|
+
packetId: packet.id,
|
|
118
|
+
rawTimestamp: q.timestamp,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
return packets;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Parse a compression completion and overwrite the raw observation
|
|
125
|
+
* with a CompressedObservation. Returns true on success so the caller
|
|
126
|
+
* can bump its counter.
|
|
127
|
+
*/
|
|
128
|
+
async function writeCompressedFromCompletion(kv, task, completion) {
|
|
129
|
+
const parsed = parseCompressionXml(completion);
|
|
130
|
+
if (!parsed)
|
|
131
|
+
return false;
|
|
132
|
+
const qualityScore = Math.min(100, Math.max(0, (parsed.importance ?? 5) * 10));
|
|
133
|
+
const compressed = {
|
|
134
|
+
id: task.obsId,
|
|
135
|
+
sessionId: task.sessionId,
|
|
136
|
+
timestamp: task.rawTimestamp,
|
|
137
|
+
...parsed,
|
|
138
|
+
confidence: qualityScore / 100,
|
|
139
|
+
};
|
|
140
|
+
await kv.set(KV.observations(task.sessionId), task.obsId, compressed);
|
|
141
|
+
await decrementPending(kv, 1);
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
// ============================================================================
|
|
145
|
+
// State machine registration
|
|
146
|
+
// ============================================================================
|
|
147
|
+
export function registerCompressBatchFunction(sdk, kv) {
|
|
148
|
+
sdk.registerFunction({
|
|
149
|
+
id: "mem::compress-batch-step",
|
|
150
|
+
description: "Loop-style state machine that compresses every pending raw " +
|
|
151
|
+
"observation in the archive via the work-packet protocol.",
|
|
152
|
+
}, async (input) => {
|
|
153
|
+
const { step, originalArgs, intermediateState, completions } = input;
|
|
154
|
+
// --------------------- State 0: entry ---------------------
|
|
155
|
+
if (step === 0) {
|
|
156
|
+
const limit = originalArgs.limit ?? 200;
|
|
157
|
+
const queue = await collectRawObservations(kv, limit, originalArgs.projectCwd);
|
|
158
|
+
if (queue.length === 0) {
|
|
159
|
+
return {
|
|
160
|
+
done: true,
|
|
161
|
+
result: {
|
|
162
|
+
success: true,
|
|
163
|
+
compressed: 0,
|
|
164
|
+
failed: 0,
|
|
165
|
+
reason: "no raw observations pending",
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
// Rough total-bytes estimate for planLoopBatches. We don't
|
|
170
|
+
// have exact prompt sizes yet (they get built per-packet) so
|
|
171
|
+
// assume ~2 KB per raw prompt on average. planLoopBatches
|
|
172
|
+
// uses this only to pick a batch size.
|
|
173
|
+
const plan = planLoopBatches(queue.length, queue.length * 2048);
|
|
174
|
+
const state = {
|
|
175
|
+
originalArgs,
|
|
176
|
+
queue,
|
|
177
|
+
batchSize: plan.batchSize,
|
|
178
|
+
totalBatches: plan.totalBatches,
|
|
179
|
+
batchStart: 0,
|
|
180
|
+
currentBatch: [],
|
|
181
|
+
compressed: 0,
|
|
182
|
+
failed: 0,
|
|
183
|
+
batchNum: 1,
|
|
184
|
+
};
|
|
185
|
+
const firstBatch = await buildCompressBatch(kv, state);
|
|
186
|
+
if (firstBatch.length === 0) {
|
|
187
|
+
// Every candidate vanished between enqueue and batch build.
|
|
188
|
+
return {
|
|
189
|
+
done: true,
|
|
190
|
+
result: {
|
|
191
|
+
success: true,
|
|
192
|
+
compressed: 0,
|
|
193
|
+
failed: state.failed,
|
|
194
|
+
reason: "raw queue drained before first batch",
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
done: false,
|
|
200
|
+
nextStep: 1,
|
|
201
|
+
intermediateState: state,
|
|
202
|
+
workPackets: firstBatch,
|
|
203
|
+
instructions: `Compress-batch — batch ${state.batchNum} of ${state.totalBatches}. ` +
|
|
204
|
+
`Run each of these ${firstBatch.length} compression prompts and ` +
|
|
205
|
+
"commit all completions together. The next response is either " +
|
|
206
|
+
"the next batch or terminal.",
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
// --------------------- State 1: consume + maybe emit next ---
|
|
210
|
+
if (step === 1) {
|
|
211
|
+
if (!intermediateState) {
|
|
212
|
+
return {
|
|
213
|
+
done: true,
|
|
214
|
+
result: {
|
|
215
|
+
success: false,
|
|
216
|
+
error: "compress-batch-step: missing intermediate state at step 1",
|
|
217
|
+
},
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
for (const task of intermediateState.currentBatch) {
|
|
221
|
+
const completion = completions?.[task.packetId];
|
|
222
|
+
if (!completion) {
|
|
223
|
+
intermediateState.failed++;
|
|
224
|
+
continue;
|
|
225
|
+
}
|
|
226
|
+
try {
|
|
227
|
+
const ok = await writeCompressedFromCompletion(kv, task, completion);
|
|
228
|
+
if (ok)
|
|
229
|
+
intermediateState.compressed++;
|
|
230
|
+
else
|
|
231
|
+
intermediateState.failed++;
|
|
232
|
+
}
|
|
233
|
+
catch (err) {
|
|
234
|
+
logger.warn("compress-batch: write failed", {
|
|
235
|
+
obsId: task.obsId,
|
|
236
|
+
error: err instanceof Error ? err.message : String(err),
|
|
237
|
+
});
|
|
238
|
+
intermediateState.failed++;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// Advance cursor past the consumed batch.
|
|
242
|
+
intermediateState.batchStart += intermediateState.batchSize;
|
|
243
|
+
intermediateState.currentBatch = [];
|
|
244
|
+
if (intermediateState.batchStart >= intermediateState.queue.length) {
|
|
245
|
+
logger.info("compress-batch complete", {
|
|
246
|
+
compressed: intermediateState.compressed,
|
|
247
|
+
failed: intermediateState.failed,
|
|
248
|
+
});
|
|
249
|
+
return {
|
|
250
|
+
done: true,
|
|
251
|
+
result: {
|
|
252
|
+
success: true,
|
|
253
|
+
compressed: intermediateState.compressed,
|
|
254
|
+
failed: intermediateState.failed,
|
|
255
|
+
},
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
// More batches to emit.
|
|
259
|
+
intermediateState.batchNum++;
|
|
260
|
+
const nextBatch = await buildCompressBatch(kv, intermediateState);
|
|
261
|
+
if (nextBatch.length === 0) {
|
|
262
|
+
return {
|
|
263
|
+
done: true,
|
|
264
|
+
result: {
|
|
265
|
+
success: true,
|
|
266
|
+
compressed: intermediateState.compressed,
|
|
267
|
+
failed: intermediateState.failed,
|
|
268
|
+
reason: "queue drained mid-run",
|
|
269
|
+
},
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
return {
|
|
273
|
+
done: false,
|
|
274
|
+
nextStep: 1,
|
|
275
|
+
intermediateState,
|
|
276
|
+
workPackets: nextBatch,
|
|
277
|
+
instructions: `Compress-batch — batch ${intermediateState.batchNum} of ${intermediateState.totalBatches}. ` +
|
|
278
|
+
`Run these ${nextBatch.length} compression prompts.`,
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
return {
|
|
282
|
+
done: true,
|
|
283
|
+
result: {
|
|
284
|
+
success: false,
|
|
285
|
+
error: `compress-batch-step: unknown step ${step}`,
|
|
286
|
+
},
|
|
287
|
+
};
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
//# sourceMappingURL=compress-batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compress-batch.js","sourceRoot":"","sources":["../../../../src/features/yith-archive/functions/compress-batch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { FakeSdk } from "../state/fake-sdk.js";
|
|
2
|
-
import type { MemoryProvider } from "../types.js";
|
|
2
|
+
import type { CompressedObservation, MemoryProvider } from "../types.js";
|
|
3
3
|
import { StateKV } from "../state/kv.js";
|
|
4
4
|
import type { MetricsStore } from "../eval/metrics-store.js";
|
|
5
|
+
export declare function parseCompressionXml(xml: string): Omit<CompressedObservation, "id" | "sessionId" | "timestamp"> | null;
|
|
5
6
|
export declare function registerCompressFunction(sdk: FakeSdk, kv: StateKV, provider: MemoryProvider, metricsStore?: MetricsStore): void;
|
|
6
7
|
/**
|
|
7
8
|
* Work-packet variant of mem::compress. Single attempt — no self-correct
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../../../../src/features/yith-archive/functions/compress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../../../../src/features/yith-archive/functions/compress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEnD,OAAO,KAAK,EAEV,qBAAqB,EAErB,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAWzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAwB7D,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,GACV,IAAI,CAAC,qBAAqB,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,CAmBtE;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,OAAO,EACZ,EAAE,EAAE,OAAO,EACX,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,YAAY,GAC1B,IAAI,CA6HN;AAcD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,OAAO,EACZ,EAAE,EAAE,OAAO,EACX,YAAY,CAAC,EAAE,YAAY,GAC1B,IAAI,CAmJN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compress.js","sourceRoot":"","sources":["../../../../src/features/yith-archive/functions/compress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAO3C,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EACL,gBAAgB,GAGjB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS;IAClC,WAAW;IACX,YAAY;IACZ,WAAW;IACX,aAAa;IACb,QAAQ;IACR,WAAW;IACX,cAAc;IACd,OAAO;IACP,UAAU;IACV,WAAW;IACX,UAAU;IACV,cAAc;IACd,MAAM;IACN,OAAO;CACR,CAAC,CAAC;AAEH,
|
|
1
|
+
{"version":3,"file":"compress.js","sourceRoot":"","sources":["../../../../src/features/yith-archive/functions/compress.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { FakeSdk } from "../state/fake-sdk.js";
|
|
2
|
+
import type { StateKV } from "../state/kv.js";
|
|
3
|
+
import type { RawObservation } from "../types.js";
|
|
4
|
+
/**
|
|
5
|
+
* mem::import-opencode — pull past sessions out of a legacy oh-my-
|
|
6
|
+
* opencode install and re-express them as Yith RawObservations so
|
|
7
|
+
* the user's existing agentic history carries forward into the
|
|
8
|
+
* Necronomicon.
|
|
9
|
+
*
|
|
10
|
+
* Target: `~/.local/share/opencode/opencode.db` — a SQLite3 database
|
|
11
|
+
* with tables `project / session / message / part`. The `part.data`
|
|
12
|
+
* field is a JSON blob with `{type: "text" | "tool" | "step-start" |
|
|
13
|
+
* "step-finish" | "reasoning" | "patch" | "file" | "compaction"}`.
|
|
14
|
+
* We keep `text` (conversational) and `tool` (tool invocations) and
|
|
15
|
+
* drop the rest.
|
|
16
|
+
*
|
|
17
|
+
* Idempotency: every observation gets ID `oc:<sessionId>:<partId>`
|
|
18
|
+
* so a re-import skips existing entries via the standard KV upsert
|
|
19
|
+
* check. Cursors in `KV.opencodeImportCursors` record the highest
|
|
20
|
+
* time_created seen per session so incremental imports don't re-scan
|
|
21
|
+
* old history.
|
|
22
|
+
*
|
|
23
|
+
* sqlite3 access: we shell out to the `sqlite3` CLI with the `-json`
|
|
24
|
+
* output format instead of adding `better-sqlite3` as a runtime dep.
|
|
25
|
+
* The CLI is available on every Unix by default; on Windows users can
|
|
26
|
+
* install it via winget / scoop. If sqlite3 isn't on PATH, the
|
|
27
|
+
* function returns a clear error.
|
|
28
|
+
*/
|
|
29
|
+
interface OpencodePartData {
|
|
30
|
+
type?: string;
|
|
31
|
+
text?: string;
|
|
32
|
+
tool?: string;
|
|
33
|
+
callID?: string;
|
|
34
|
+
state?: {
|
|
35
|
+
status?: string;
|
|
36
|
+
input?: unknown;
|
|
37
|
+
output?: unknown;
|
|
38
|
+
};
|
|
39
|
+
[key: string]: unknown;
|
|
40
|
+
}
|
|
41
|
+
export interface OpencodePartContext {
|
|
42
|
+
partId: string;
|
|
43
|
+
messageId: string;
|
|
44
|
+
sessionId: string;
|
|
45
|
+
partData: OpencodePartData;
|
|
46
|
+
messageRole: string | undefined;
|
|
47
|
+
timestamp: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Pure mapper from an opencode part to a Yith RawObservation. Returns
|
|
51
|
+
* null for part types we intentionally skip (step-start/finish,
|
|
52
|
+
* reasoning, patch, file, compaction) so the caller can filter with
|
|
53
|
+
* a simple null check.
|
|
54
|
+
*
|
|
55
|
+
* The ID `oc:<sessionId>:<partId>` gives idempotency: re-importing
|
|
56
|
+
* the same opencode DB produces the same IDs, so the upsert skip
|
|
57
|
+
* logic in the scanner deduplicates automatically.
|
|
58
|
+
*/
|
|
59
|
+
export declare function opencodePartToRawObservation(ctx: OpencodePartContext): RawObservation | null;
|
|
60
|
+
/**
|
|
61
|
+
* True if the `sqlite3` CLI is on PATH. Used by tests to skip the
|
|
62
|
+
* integration assertion when the runner doesn't have sqlite installed.
|
|
63
|
+
*/
|
|
64
|
+
export declare function isSqlite3Available(): boolean;
|
|
65
|
+
export declare function registerOpencodeImportFunction(sdk: FakeSdk, kv: StateKV): void;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=opencode-import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-import.d.ts","sourceRoot":"","sources":["../../../../src/features/yith-archive/functions/opencode-import.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAG7C,OAAO,KAAK,EAAY,cAAc,EAAW,MAAM,aAAa,CAAA;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;IACD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,SAAS,EAAE,MAAM,CAAA;CAClB;AAyBD;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,mBAAmB,GACvB,cAAc,GAAG,IAAI,CAmCvB;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAO5C;AA6DD,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,OAAO,EACZ,EAAE,EAAE,OAAO,GACV,IAAI,CAmKN"}
|