@duetso/agent 0.1.93 → 0.1.96
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/dist/package.json +1 -1
- package/dist/src/memory/embedding-worker.d.ts.map +1 -1
- package/dist/src/memory/embedding-worker.js +10 -1
- package/dist/src/memory/embedding-worker.js.map +1 -1
- package/dist/src/memory/pglite.d.ts +28 -4
- package/dist/src/memory/pglite.d.ts.map +1 -1
- package/dist/src/memory/pglite.js +207 -8
- package/dist/src/memory/pglite.js.map +1 -1
- package/dist/src/tui/layout.d.ts.map +1 -1
- package/dist/src/tui/layout.js +8 -0
- package/dist/src/tui/layout.js.map +1 -1
- package/dist/src/tui/slash-commands.js +5 -5
- package/dist/src/tui/slash-commands.js.map +1 -1
- package/dist/src/tui/tool-formatters.js +210 -19
- package/dist/src/tui/tool-formatters.js.map +1 -1
- package/package.json +1 -1
package/dist/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-worker.d.ts","sourceRoot":"","sources":["../../../src/memory/embedding-worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA2B9C,MAAM,WAAW,8BAA8B;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,+EAA+E;IAC/E,KAAK,EAAE,OAAO,CAAC;IACf,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAgB;gBAE3B,OAAO,EAAE,8BAA8B;IAInD,wEAAwE;IACxE,KAAK,IAAI,IAAI;IAMb,yEAAyE;IACnE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAOb,GAAG;YA4BH,WAAW;YAmBX,YAAY;
|
|
1
|
+
{"version":3,"file":"embedding-worker.d.ts","sourceRoot":"","sources":["../../../src/memory/embedding-worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA2B9C,MAAM,WAAW,8BAA8B;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,+EAA+E;IAC/E,KAAK,EAAE,OAAO,CAAC;IACf,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAgB;gBAE3B,OAAO,EAAE,8BAA8B;IAInD,wEAAwE;IACxE,KAAK,IAAI,IAAI;IAMb,yEAAyE;IACnE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAOb,GAAG;YA4BH,WAAW;YAmBX,YAAY;IAsC1B,OAAO,CAAC,GAAG;CAUZ"}
|
|
@@ -92,13 +92,22 @@ export class EmbeddingBackfillWorker {
|
|
|
92
92
|
// server reported for this batch; storing it verbatim lets a
|
|
93
93
|
// future re-embedding pass match the deprecated tag and refresh
|
|
94
94
|
// only the affected rows.
|
|
95
|
+
//
|
|
96
|
+
// The `INSERT ... SELECT ... WHERE EXISTS` filter avoids a FK race:
|
|
97
|
+
// between `selectBatch` and `persistBatch` the reflector may have
|
|
98
|
+
// called `replaceSessionObservations`, which deletes the parent
|
|
99
|
+
// row. A bare `INSERT` would then abort the whole transaction with
|
|
100
|
+
// a foreign-key violation, losing every embedding in this batch.
|
|
101
|
+
// Skipping the missing parent inserts 0 rows for that observation
|
|
102
|
+
// and lets the surviving rows commit.
|
|
95
103
|
await this.options.db.transaction(async (tx) => {
|
|
96
104
|
const now = Date.now();
|
|
97
105
|
for (let index = 0; index < batch.length; index++) {
|
|
98
106
|
const row = batch[index];
|
|
99
107
|
const vector = vectors[index];
|
|
100
108
|
await tx.query(`INSERT INTO observation_embeddings (observation_id, model, vector, created_at)
|
|
101
|
-
|
|
109
|
+
SELECT $1, $2, $3::vector, $4
|
|
110
|
+
WHERE EXISTS (SELECT 1 FROM observations WHERE id = $1)
|
|
102
111
|
ON CONFLICT (observation_id) DO UPDATE SET
|
|
103
112
|
model = EXCLUDED.model,
|
|
104
113
|
vector = EXCLUDED.vector,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-worker.js","sourceRoot":"","sources":["../../../src/memory/embedding-worker.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"embedding-worker.js","sourceRoot":"","sources":["../../../src/memory/embedding-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,27 +19,51 @@ export interface OpenPGliteOptions {
|
|
|
19
19
|
}) => void;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* Opens a PGlite database at `path`, recovering from
|
|
22
|
+
* Opens a PGlite database at `path`, recovering from three failure modes that
|
|
23
23
|
* would otherwise leave the agent unable to start:
|
|
24
24
|
*
|
|
25
25
|
* 1. A stale `postmaster.pid` left by a crashed prior run — the lock is
|
|
26
26
|
* removed when its PID is not a live process.
|
|
27
27
|
* 2. A data directory PGlite cannot read at all (corrupted, partially
|
|
28
28
|
* written, or written by an incompatible Postgres version) — detected
|
|
29
|
-
* by running
|
|
30
|
-
* `<path>.corrupted-<iso-timestamp>` so the user can recover it
|
|
31
|
-
* and a fresh database is opened in its place.
|
|
29
|
+
* by running the init hook as a probe. The bad directory is renamed
|
|
30
|
+
* to `<path>.corrupted-<iso-timestamp>` so the user can recover it
|
|
31
|
+
* later, and a fresh database is opened in its place.
|
|
32
|
+
* 3. Two opens racing on a fresh dataDir — historically both could pass
|
|
33
|
+
* the stale-lock check, both call `PGlite.create`, and both run the
|
|
34
|
+
* init hook concurrently, corrupting the dataDir. Now serialized by
|
|
35
|
+
* an in-process refcounted handle plus an `O_EXCL` lock file scoped
|
|
36
|
+
* to the dataDir.
|
|
32
37
|
*
|
|
33
38
|
* Without (2) PGlite aborts with an opaque emscripten "Aborted()" error and
|
|
34
39
|
* the agent is permanently wedged until the user manually deletes the data
|
|
35
40
|
* directory.
|
|
36
41
|
*/
|
|
37
42
|
export declare function openPGlite(path: string, options?: OpenPGliteOptions): Promise<PGlite>;
|
|
43
|
+
/**
|
|
44
|
+
* Open a managed PGlite handle without running migrations or quarantining
|
|
45
|
+
* on read failure. Used by the recovery tooling to read rows out of a
|
|
46
|
+
* previously-quarantined `memory.db.corrupted-*` directory.
|
|
47
|
+
*
|
|
48
|
+
* Does not participate in the shared-handle / open-lock machinery; the
|
|
49
|
+
* caller owns the returned instance and is responsible for `close()`.
|
|
50
|
+
*/
|
|
51
|
+
export declare function openForRecovery(path: string): Promise<PGlite>;
|
|
38
52
|
/**
|
|
39
53
|
* Renames a presumed-corrupt data directory aside so a fresh database can be
|
|
40
54
|
* created in its place. Returns the new path. Exported for testing.
|
|
41
55
|
*/
|
|
42
56
|
export declare function quarantineDataDirectory(path: string): string;
|
|
57
|
+
/**
|
|
58
|
+
* Acquire an exclusive open-lock at `<dataDir>/.duet-open.lock`. Creates
|
|
59
|
+
* `dataDir` if missing. The lock is created with `O_EXCL` so a parallel
|
|
60
|
+
* acquirer either wins outright or sees `EEXIST`; on `EEXIST` we read
|
|
61
|
+
* the pid line and only steal the lock if that pid is no longer alive.
|
|
62
|
+
*
|
|
63
|
+
* Throws with a clear message when the lock is held by a live foreign
|
|
64
|
+
* process so the caller fails fast instead of double-opening the dataDir.
|
|
65
|
+
*/
|
|
66
|
+
export declare function acquireOpenLock(dataDir: string): string;
|
|
43
67
|
/**
|
|
44
68
|
* If `dataDir` contains a `postmaster.pid` whose PID is not a live process,
|
|
45
69
|
* remove the lock so PGlite can start. If the PID is alive, throw with a clear
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite.d.ts","sourceRoot":"","sources":["../../../src/memory/pglite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"pglite.d.ts","sourceRoot":"","sources":["../../../src/memory/pglite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AA+B9C,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACpE;AA8CD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8B/F;AAuHD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGnE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIvD;AAiDD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAkB9D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PGlite } from "@electric-sql/pglite";
|
|
2
2
|
import { vector } from "@electric-sql/pglite/vector";
|
|
3
|
-
import { mkdirSync, readFileSync, renameSync, statSync, unlinkSync } from "node:fs";
|
|
4
|
-
import { dirname, join } from "node:path";
|
|
3
|
+
import { closeSync, mkdirSync, openSync, readFileSync, renameSync, statSync, unlinkSync, writeSync, } from "node:fs";
|
|
4
|
+
import { dirname, resolve as resolvePath, join } from "node:path";
|
|
5
5
|
/**
|
|
6
6
|
* pgvector ships with PGlite as an opt-in WASM extension. We load it
|
|
7
7
|
* unconditionally so every memory database can run hybrid retrieval
|
|
@@ -12,30 +12,156 @@ import { dirname, join } from "node:path";
|
|
|
12
12
|
*/
|
|
13
13
|
const MEMORY_EXTENSIONS = { vector };
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Filename used for the cross-process open-lock written into each
|
|
16
|
+
* managed data directory. The first line is the holder's pid; other
|
|
17
|
+
* processes only proceed past O_EXCL if that pid is no longer alive.
|
|
18
|
+
*/
|
|
19
|
+
const OPEN_LOCK_FILE = ".duet-open.lock";
|
|
20
|
+
const sharedHandles = new Map();
|
|
21
|
+
let exitHandlerInstalled = false;
|
|
22
|
+
function installExitCleanup() {
|
|
23
|
+
if (exitHandlerInstalled)
|
|
24
|
+
return;
|
|
25
|
+
exitHandlerInstalled = true;
|
|
26
|
+
// Last-chance cleanup: if the process exits before every caller's
|
|
27
|
+
// `close()` runs, drop any locks we still hold so the next launch
|
|
28
|
+
// can open the database without tripping the stale-lock check.
|
|
29
|
+
process.on("exit", () => {
|
|
30
|
+
for (const entry of sharedHandles.values()) {
|
|
31
|
+
if (entry.lockPath) {
|
|
32
|
+
try {
|
|
33
|
+
unlinkSync(entry.lockPath);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// Best-effort on exit; nothing to do if the file is already gone.
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Opens a PGlite database at `path`, recovering from three failure modes that
|
|
16
44
|
* would otherwise leave the agent unable to start:
|
|
17
45
|
*
|
|
18
46
|
* 1. A stale `postmaster.pid` left by a crashed prior run — the lock is
|
|
19
47
|
* removed when its PID is not a live process.
|
|
20
48
|
* 2. A data directory PGlite cannot read at all (corrupted, partially
|
|
21
49
|
* written, or written by an incompatible Postgres version) — detected
|
|
22
|
-
* by running
|
|
23
|
-
* `<path>.corrupted-<iso-timestamp>` so the user can recover it
|
|
24
|
-
* and a fresh database is opened in its place.
|
|
50
|
+
* by running the init hook as a probe. The bad directory is renamed
|
|
51
|
+
* to `<path>.corrupted-<iso-timestamp>` so the user can recover it
|
|
52
|
+
* later, and a fresh database is opened in its place.
|
|
53
|
+
* 3. Two opens racing on a fresh dataDir — historically both could pass
|
|
54
|
+
* the stale-lock check, both call `PGlite.create`, and both run the
|
|
55
|
+
* init hook concurrently, corrupting the dataDir. Now serialized by
|
|
56
|
+
* an in-process refcounted handle plus an `O_EXCL` lock file scoped
|
|
57
|
+
* to the dataDir.
|
|
25
58
|
*
|
|
26
59
|
* Without (2) PGlite aborts with an opaque emscripten "Aborted()" error and
|
|
27
60
|
* the agent is permanently wedged until the user manually deletes the data
|
|
28
61
|
* directory.
|
|
29
62
|
*/
|
|
30
63
|
export async function openPGlite(path, options = {}) {
|
|
64
|
+
installExitCleanup();
|
|
65
|
+
const key = resolvePath(path);
|
|
66
|
+
const existing = sharedHandles.get(key);
|
|
67
|
+
if (existing) {
|
|
68
|
+
existing.refs++;
|
|
69
|
+
try {
|
|
70
|
+
return await existing.promise;
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
decrementAndMaybeDelete(key);
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const entry = {
|
|
78
|
+
promise: undefined,
|
|
79
|
+
refs: 1,
|
|
80
|
+
};
|
|
81
|
+
entry.promise = openWithLock(path, options, entry).then((db) => installRefcountedClose(db, key, entry));
|
|
82
|
+
sharedHandles.set(key, entry);
|
|
83
|
+
try {
|
|
84
|
+
return await entry.promise;
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
decrementAndMaybeDelete(key);
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Replace `close` on the underlying PGlite instance with refcounted
|
|
93
|
+
* teardown. Each `openPGlite` call is paired with exactly one `close`;
|
|
94
|
+
* the refcount equals the number of live opens. PGlite uses private
|
|
95
|
+
* class fields internally, so a Proxy around the instance breaks every
|
|
96
|
+
* method that touches one — method replacement preserves identity and
|
|
97
|
+
* keeps private-field access working.
|
|
98
|
+
*/
|
|
99
|
+
function installRefcountedClose(db, key, entry) {
|
|
100
|
+
const originalClose = db.close.bind(db);
|
|
101
|
+
db.close = async () => {
|
|
102
|
+
const current = sharedHandles.get(key);
|
|
103
|
+
if (!current || current.refs <= 0)
|
|
104
|
+
return;
|
|
105
|
+
current.refs--;
|
|
106
|
+
if (current.refs > 0)
|
|
107
|
+
return;
|
|
108
|
+
sharedHandles.delete(key);
|
|
109
|
+
try {
|
|
110
|
+
await originalClose();
|
|
111
|
+
}
|
|
112
|
+
finally {
|
|
113
|
+
if (entry.lockPath) {
|
|
114
|
+
bestEffortUnlink(entry.lockPath);
|
|
115
|
+
entry.lockPath = undefined;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
return db;
|
|
120
|
+
}
|
|
121
|
+
function bestEffortUnlink(path) {
|
|
122
|
+
try {
|
|
123
|
+
unlinkSync(path);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
if (error.code !== "ENOENT")
|
|
127
|
+
throw error;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function decrementAndMaybeDelete(key) {
|
|
131
|
+
const entry = sharedHandles.get(key);
|
|
132
|
+
if (!entry)
|
|
133
|
+
return;
|
|
134
|
+
entry.refs--;
|
|
135
|
+
if (entry.refs > 0)
|
|
136
|
+
return;
|
|
137
|
+
sharedHandles.delete(key);
|
|
138
|
+
if (entry.lockPath) {
|
|
139
|
+
try {
|
|
140
|
+
unlinkSync(entry.lockPath);
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
// Lock may never have been created if we threw before acquireOpenLock returned.
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
async function openWithLock(path, options, entry) {
|
|
31
148
|
mkdirSync(dirname(path), { recursive: true });
|
|
32
149
|
clearStalePostmasterLock(path);
|
|
150
|
+
entry.lockPath = acquireOpenLock(path);
|
|
33
151
|
try {
|
|
34
|
-
|
|
152
|
+
const db = await openAndProbe(path, options.init);
|
|
153
|
+
entry.db = db;
|
|
154
|
+
return db;
|
|
35
155
|
}
|
|
36
156
|
catch (error) {
|
|
37
157
|
if (!isExistingDirectory(path))
|
|
38
158
|
throw error;
|
|
159
|
+
// Release the lock before renaming the directory aside — the lock
|
|
160
|
+
// file lives inside that directory and would be moved with it.
|
|
161
|
+
if (entry.lockPath) {
|
|
162
|
+
bestEffortUnlink(entry.lockPath);
|
|
163
|
+
entry.lockPath = undefined;
|
|
164
|
+
}
|
|
39
165
|
const backupPath = quarantineDataDirectory(path);
|
|
40
166
|
if (options.onRecover) {
|
|
41
167
|
options.onRecover({ backupPath, cause: error });
|
|
@@ -45,7 +171,10 @@ export async function openPGlite(path, options = {}) {
|
|
|
45
171
|
console.warn(`[duet] memory database at ${path} could not be opened (${reason}). ` +
|
|
46
172
|
`Moved aside to ${backupPath} and starting fresh.`);
|
|
47
173
|
}
|
|
48
|
-
|
|
174
|
+
entry.lockPath = acquireOpenLock(path);
|
|
175
|
+
const db = await openAndProbe(path, options.init);
|
|
176
|
+
entry.db = db;
|
|
177
|
+
return db;
|
|
49
178
|
}
|
|
50
179
|
}
|
|
51
180
|
async function openAndProbe(path, init) {
|
|
@@ -72,6 +201,18 @@ async function openAndProbe(path, init) {
|
|
|
72
201
|
throw error;
|
|
73
202
|
}
|
|
74
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Open a managed PGlite handle without running migrations or quarantining
|
|
206
|
+
* on read failure. Used by the recovery tooling to read rows out of a
|
|
207
|
+
* previously-quarantined `memory.db.corrupted-*` directory.
|
|
208
|
+
*
|
|
209
|
+
* Does not participate in the shared-handle / open-lock machinery; the
|
|
210
|
+
* caller owns the returned instance and is responsible for `close()`.
|
|
211
|
+
*/
|
|
212
|
+
export async function openForRecovery(path) {
|
|
213
|
+
clearStalePostmasterLock(path);
|
|
214
|
+
return PGlite.create({ dataDir: path, extensions: MEMORY_EXTENSIONS });
|
|
215
|
+
}
|
|
75
216
|
/**
|
|
76
217
|
* Renames a presumed-corrupt data directory aside so a fresh database can be
|
|
77
218
|
* created in its place. Returns the new path. Exported for testing.
|
|
@@ -82,6 +223,64 @@ export function quarantineDataDirectory(path) {
|
|
|
82
223
|
renameSync(path, backup);
|
|
83
224
|
return backup;
|
|
84
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Acquire an exclusive open-lock at `<dataDir>/.duet-open.lock`. Creates
|
|
228
|
+
* `dataDir` if missing. The lock is created with `O_EXCL` so a parallel
|
|
229
|
+
* acquirer either wins outright or sees `EEXIST`; on `EEXIST` we read
|
|
230
|
+
* the pid line and only steal the lock if that pid is no longer alive.
|
|
231
|
+
*
|
|
232
|
+
* Throws with a clear message when the lock is held by a live foreign
|
|
233
|
+
* process so the caller fails fast instead of double-opening the dataDir.
|
|
234
|
+
*/
|
|
235
|
+
export function acquireOpenLock(dataDir) {
|
|
236
|
+
mkdirSync(dataDir, { recursive: true });
|
|
237
|
+
const lockPath = join(dataDir, OPEN_LOCK_FILE);
|
|
238
|
+
return createLockFile(lockPath) ?? stealStaleLock(dataDir, lockPath);
|
|
239
|
+
}
|
|
240
|
+
function createLockFile(lockPath) {
|
|
241
|
+
let fd;
|
|
242
|
+
try {
|
|
243
|
+
fd = openSync(lockPath, "wx");
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
if (error.code === "EEXIST")
|
|
247
|
+
return undefined;
|
|
248
|
+
throw error;
|
|
249
|
+
}
|
|
250
|
+
try {
|
|
251
|
+
writeSync(fd, `${process.pid}\n`);
|
|
252
|
+
}
|
|
253
|
+
finally {
|
|
254
|
+
closeSync(fd);
|
|
255
|
+
}
|
|
256
|
+
return lockPath;
|
|
257
|
+
}
|
|
258
|
+
function stealStaleLock(dataDir, lockPath) {
|
|
259
|
+
const contents = tryReadFile(lockPath) ?? "";
|
|
260
|
+
const firstLine = contents.split("\n", 1)[0]?.trim() ?? "";
|
|
261
|
+
const holderPid = Number.parseInt(firstLine, 10);
|
|
262
|
+
if (Number.isFinite(holderPid) &&
|
|
263
|
+
holderPid > 0 &&
|
|
264
|
+
holderPid !== process.pid &&
|
|
265
|
+
isProcessAlive(holderPid)) {
|
|
266
|
+
throw new Error(`PGlite data directory ${dataDir} is locked by another duet process (pid ${holderPid}). ` +
|
|
267
|
+
"Stop that process before opening the database.");
|
|
268
|
+
}
|
|
269
|
+
// Stale (crashed prior run) or our own pid from a partially-cleaned
|
|
270
|
+
// failed open. Replace atomically — unlink-then-create-with-O_EXCL.
|
|
271
|
+
try {
|
|
272
|
+
unlinkSync(lockPath);
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
if (error.code !== "ENOENT")
|
|
276
|
+
throw error;
|
|
277
|
+
}
|
|
278
|
+
const created = createLockFile(lockPath);
|
|
279
|
+
if (!created) {
|
|
280
|
+
throw new Error(`Failed to acquire open lock at ${lockPath}: another opener won the race after the stale-lock takeover.`);
|
|
281
|
+
}
|
|
282
|
+
return created;
|
|
283
|
+
}
|
|
85
284
|
/**
|
|
86
285
|
* If `dataDir` contains a `postmaster.pid` whose PID is not a live process,
|
|
87
286
|
* remove the lock so PGlite can start. If the PID is alive, throw with a clear
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite.js","sourceRoot":"","sources":["../../../src/memory/pglite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"pglite.js","sourceRoot":"","sources":["../../../src/memory/pglite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/tui/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAO7C;;;;GAIG;AACH,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,IAAI,EAAE,aAAa,CAAC;IACpB,6DAA6D;IAC7D,MAAM,EAAE,aAAa,CAAC;IACtB,sFAAsF;IACtF,OAAO,EAAE,aAAa,CAAC;IACvB,8FAA8F;IAC9F,UAAU,EAAE,mBAAmB,CAAC;IAChC,0FAA0F;IAC1F,MAAM,EAAE,cAAc,CAAC;IACvB,+EAA+E;IAC/E,IAAI,EAAE,cAAc,CAAC;IACrB,gGAAgG;IAChG,sBAAsB,EAAE,aAAa,CAAC;IACtC,uEAAuE;IACvE,aAAa,EAAE,cAAc,CAAC;IAC9B,iEAAiE;IACjE,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,qEAAqE;IACrE,WAAW,EAAE,cAAc,CAAC;IAC5B,wDAAwD;IACxD,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,kEAAkE;IAClE,qBAAqB,EAAE,aAAa,CAAC;IACrC,oDAAoD;IACpD,qBAAqB,EAAE,cAAc,CAAC;IACtC,uDAAuD;IACvD,oBAAoB,EAAE,cAAc,EAAE,CAAC;IACvC,qFAAqF;IACrF,aAAa,EAAE,aAAa,CAAC;IAC7B,2EAA2E;IAC3E,aAAa,EAAE,cAAc,CAAC;IAC9B,mEAAmE;IACnE,cAAc,EAAE,cAAc,CAAC;IAC/B,uEAAuE;IACvE,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,uEAAuE;IACvE,QAAQ,EAAE,aAAa,CAAC;IACxB,kFAAkF;IAClF,MAAM,EAAE,cAAc,CAAC;IACvB,6EAA6E;IAC7E,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,WAAW,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/tui/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAO7C;;;;GAIG;AACH,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,IAAI,EAAE,aAAa,CAAC;IACpB,6DAA6D;IAC7D,MAAM,EAAE,aAAa,CAAC;IACtB,sFAAsF;IACtF,OAAO,EAAE,aAAa,CAAC;IACvB,8FAA8F;IAC9F,UAAU,EAAE,mBAAmB,CAAC;IAChC,0FAA0F;IAC1F,MAAM,EAAE,cAAc,CAAC;IACvB,+EAA+E;IAC/E,IAAI,EAAE,cAAc,CAAC;IACrB,gGAAgG;IAChG,sBAAsB,EAAE,aAAa,CAAC;IACtC,uEAAuE;IACvE,aAAa,EAAE,cAAc,CAAC;IAC9B,iEAAiE;IACjE,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,qEAAqE;IACrE,WAAW,EAAE,cAAc,CAAC;IAC5B,wDAAwD;IACxD,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,kEAAkE;IAClE,qBAAqB,EAAE,aAAa,CAAC;IACrC,oDAAoD;IACpD,qBAAqB,EAAE,cAAc,CAAC;IACtC,uDAAuD;IACvD,oBAAoB,EAAE,cAAc,EAAE,CAAC;IACvC,qFAAqF;IACrF,aAAa,EAAE,aAAa,CAAC;IAC7B,2EAA2E;IAC3E,aAAa,EAAE,cAAc,CAAC;IAC9B,mEAAmE;IACnE,cAAc,EAAE,cAAc,CAAC;IAC/B,uEAAuE;IACvE,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,uEAAuE;IACvE,QAAQ,EAAE,aAAa,CAAC;IACxB,kFAAkF;IAClF,MAAM,EAAE,cAAc,CAAC;IACvB,6EAA6E;IAC7E,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,WAAW,GAAG,UAAU,CAyP7D"}
|
package/dist/src/tui/layout.js
CHANGED
|
@@ -46,6 +46,14 @@ export function buildLayout(renderer) {
|
|
|
46
46
|
borderColor: COLORS.border,
|
|
47
47
|
padding: 1,
|
|
48
48
|
});
|
|
49
|
+
// Keep keyboard focus pinned to the composer. ScrollBoxRenderable is
|
|
50
|
+
// focusable by default, so a mouse click on the transcript would steal
|
|
51
|
+
// focus from the textarea and break starter-row arrow navigation, paste
|
|
52
|
+
// keystroke handling, and drag-drop image attach — all of which are wired
|
|
53
|
+
// up through inputField.onKeyDown / onPaste. Wheel scrolling, sticky
|
|
54
|
+
// pinning, and drag-select selection do not require focus, so disabling
|
|
55
|
+
// it here costs nothing.
|
|
56
|
+
transcript.focusable = false;
|
|
49
57
|
// Status and hint chrome are excluded from drag-select so a highlight that
|
|
50
58
|
// sweeps the bottom of the screen does not pull the spinner / hint text
|
|
51
59
|
// into the clipboard alongside the transcript content the user wanted.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/tui/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,mBAAmB,EACnB,cAAc,EACd,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAC3D,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,IAAI,CAAC;AACzD,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,cAAc,CAAC;AA4DjE;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,QAAqB;IAC/C,yEAAyE;IACzE,6DAA6D;IAC7D,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE;QACvC,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE;QACzC,aAAa,EAAE,QAAQ;QACvB,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAExC,MAAM,UAAU,GAAG,IAAI,mBAAmB,CAAC,QAAQ,EAAE;QACnD,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,IAAI;QACb,qEAAqE;QACrE,uEAAuE;QACvE,kEAAkE;QAClE,qEAAqE;QACrE,0CAA0C;QAC1C,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,OAAO,EAAE,CAAC;KACX,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/tui/layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,7 +66,7 @@ export const BUILT_IN_SLASH_COMMANDS = [
|
|
|
66
66
|
description: "Dispose the current session and start a fresh one",
|
|
67
67
|
matches: (message) => isBare(message, "reset"),
|
|
68
68
|
handle: (_, ctx) => {
|
|
69
|
-
ctx.appendBlock("[reset]", "starting a new session
|
|
69
|
+
ctx.appendBlock("[reset]", "starting a new session…", COLORS.system);
|
|
70
70
|
ctx.onReset();
|
|
71
71
|
},
|
|
72
72
|
},
|
|
@@ -113,15 +113,15 @@ function handleDiagSlashCommand(raw, ctx) {
|
|
|
113
113
|
: "key + selection event logging OFF.", COLORS.system);
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
|
-
ctx.appendBlock("[diag]", "Usage: /diag (or /diag keys)
|
|
116
|
+
ctx.appendBlock("[diag]", "Usage: /diag (or /diag keys) — toggles key + selection event logging", COLORS.system);
|
|
117
117
|
}
|
|
118
118
|
async function handleFeedbackSlashCommand(raw, ctx) {
|
|
119
119
|
const content = raw.slice("/feedback".length).trim();
|
|
120
120
|
if (!content) {
|
|
121
|
-
ctx.appendBlock("[feedback]", "Usage: /feedback <message>
|
|
121
|
+
ctx.appendBlock("[feedback]", "Usage: /feedback <message> — send free-form feedback to the Duet team", COLORS.system);
|
|
122
122
|
return;
|
|
123
123
|
}
|
|
124
|
-
ctx.appendBlock("[feedback]", "sending
|
|
124
|
+
ctx.appendBlock("[feedback]", "sending…", COLORS.system);
|
|
125
125
|
try {
|
|
126
126
|
const { baseUrl } = await submitDuetFeedback({ content });
|
|
127
127
|
ctx.appendBlock("[feedback]", `Thanks! Feedback sent to ${baseUrl}.`, COLORS.system);
|
|
@@ -133,7 +133,7 @@ async function handleFeedbackSlashCommand(raw, ctx) {
|
|
|
133
133
|
async function handleImageSlashCommand(raw, ctx) {
|
|
134
134
|
const rest = raw.slice("/image".length).trim();
|
|
135
135
|
if (!rest) {
|
|
136
|
-
ctx.appendBlock("[paste]", "Usage: /image <path>
|
|
136
|
+
ctx.appendBlock("[paste]", "Usage: /image <path> — attach a PNG/JPEG/GIF/WebP from disk", COLORS.system);
|
|
137
137
|
return;
|
|
138
138
|
}
|
|
139
139
|
await ctx.pasteController.attachImageFromPath(rest);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../../src/tui/slash-commands.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAuCpC,0CAA0C;AAC1C,SAAS,MAAM,CAAC,OAAe,EAAE,IAAY;IAC3C,OAAO,OAAO,KAAK,IAAI,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,iCAAiC;AACjC,SAAS,YAAY,CAAC,OAAe,EAAE,IAAY;IACjD,OAAO,OAAO,KAAK,IAAI,IAAI,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmC;IACrE;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6DAA6D;QAC1E,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;QACpD,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACvB,KAAK,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,wEAAwE;QACrF,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;QAC9C,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACjB,KAAK,GAAG,CAAC,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,8CAA8C;QAC3D,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;QACrD,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACjB,GAAG,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;YACzC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACjF,CAAC;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,+EAA+E;QAC5F,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;QACnD,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACvB,KAAK,GAAG,CAAC,cAAc,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,2FAA2F;QAC7F,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;QACnD,MAAM,EAAE,sBAAsB;KAC/B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,+DAA+D;QAC5E,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;QACvD,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACvB,KAAK,0BAA0B,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,mDAAmD;QAChE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;QAC9C,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACjB,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../../src/tui/slash-commands.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAuCpC,0CAA0C;AAC1C,SAAS,MAAM,CAAC,OAAe,EAAE,IAAY;IAC3C,OAAO,OAAO,KAAK,IAAI,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,iCAAiC;AACjC,SAAS,YAAY,CAAC,OAAe,EAAE,IAAY;IACjD,OAAO,OAAO,KAAK,IAAI,IAAI,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmC;IACrE;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6DAA6D;QAC1E,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;QACpD,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACvB,KAAK,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,wEAAwE;QACrF,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;QAC9C,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACjB,KAAK,GAAG,CAAC,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,8CAA8C;QAC3D,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;QACrD,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACjB,GAAG,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;YACzC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACjF,CAAC;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,+EAA+E;QAC5F,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;QACnD,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACvB,KAAK,GAAG,CAAC,cAAc,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,2FAA2F;QAC7F,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;QACnD,MAAM,EAAE,sBAAsB;KAC/B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,+DAA+D;QAC5E,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;QACvD,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACvB,KAAK,0BAA0B,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,mDAAmD;QAChE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;QAC9C,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACjB,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,yBAAyB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACrE,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC;KACF;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GACvC,uBAAuB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,WAAW,EAAE,OAAO,CAAC,WAAW;IAChC,KAAK,EAAE,UAAmB;CAC3B,CAAC,CAAC,CAAC;AAEN;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,GAAwB;IAC/E,KAAK,MAAM,OAAO,IAAI,uBAAuB,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,GAAW,EAAE,GAAwB;IACnE,MAAM,QAAQ,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC;QAChE,GAAG,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACvD,GAAG,CAAC,WAAW,CACb,QAAQ,EACR,OAAO;YACL,CAAC,CAAC,4DAA4D;YAC9D,CAAC,CAAC,oCAAoC,EACxC,MAAM,CAAC,MAAM,CACd,CAAC;QACF,OAAO;IACT,CAAC;IACD,GAAG,CAAC,WAAW,CACb,QAAQ,EACR,sEAAsE,EACtE,MAAM,CAAC,MAAM,CACd,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,GAAW,EAAE,GAAwB;IAC7E,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,WAAW,CACb,YAAY,EACZ,wEAAwE,EACxE,MAAM,CAAC,MAAM,CACd,CAAC;QACF,OAAO;IACT,CAAC;IACD,GAAG,CAAC,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,GAAG,CAAC,WAAW,CAAC,YAAY,EAAE,4BAA4B,OAAO,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,WAAW,CACb,YAAY,EACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,MAAM,CAAC,KAAK,CACb,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,GAAW,EAAE,GAAwB;IAC1E,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,WAAW,CACb,SAAS,EACT,8DAA8D,EAC9D,MAAM,CAAC,MAAM,CACd,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,GAAG,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -272,43 +272,234 @@ const formatReadSkill = (spec) => {
|
|
|
272
272
|
const name = stringField(input, "name") ?? "?";
|
|
273
273
|
return { header: `read skill: ${name}`, result: buildDefaultResult(spec) };
|
|
274
274
|
};
|
|
275
|
+
/**
|
|
276
|
+
* Kind glyphs for state-machine states. Picked so each state kind is
|
|
277
|
+
* scannable in a column without relying on color: agent uses the runner's
|
|
278
|
+
* `◆` from elsewhere in the UI, script reuses the bash `$` sigil, poll's
|
|
279
|
+
* `⟳` and timer's `⏲` echo the cyclic / scheduled semantics, and terminal
|
|
280
|
+
* uses a solid block to signal a final exit.
|
|
281
|
+
*/
|
|
282
|
+
const STATE_KIND_GLYPHS = {
|
|
283
|
+
agent: "◆",
|
|
284
|
+
script: "$",
|
|
285
|
+
poll: "⟳",
|
|
286
|
+
timer: "⏲",
|
|
287
|
+
terminal: "■",
|
|
288
|
+
};
|
|
289
|
+
function stateKindGlyph(kind) {
|
|
290
|
+
if (!kind)
|
|
291
|
+
return "·";
|
|
292
|
+
return STATE_KIND_GLYPHS[kind] ?? "·";
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* One-line hint about what a state does. Agent states surface the first
|
|
296
|
+
* line of the prompt, script/poll states surface the command, timer states
|
|
297
|
+
* surface their wake time, and terminal states surface their status (with
|
|
298
|
+
* optional reason). `when` is preferred when present so the routing
|
|
299
|
+
* guidance authored by the agent shows up over the raw prompt body.
|
|
300
|
+
*/
|
|
301
|
+
function summarizeStateRow(state) {
|
|
302
|
+
const when = stringField(state, "when");
|
|
303
|
+
if (when)
|
|
304
|
+
return firstLine(when);
|
|
305
|
+
const kind = stringField(state, "kind");
|
|
306
|
+
if (kind === "agent")
|
|
307
|
+
return firstLine(stringField(state, "prompt") ?? "");
|
|
308
|
+
if (kind === "script")
|
|
309
|
+
return firstLine(stringField(state, "command") ?? "");
|
|
310
|
+
if (kind === "poll") {
|
|
311
|
+
const interval = numberField(state, "intervalMs");
|
|
312
|
+
const cmd = firstLine(stringField(state, "command") ?? "");
|
|
313
|
+
const cadence = interval ? `every ${formatDuration(interval)}` : undefined;
|
|
314
|
+
return [cadence, cmd].filter(Boolean).join(" · ");
|
|
315
|
+
}
|
|
316
|
+
if (kind === "timer") {
|
|
317
|
+
const wakeAt = numberField(state, "wakeAt");
|
|
318
|
+
if (wakeAt)
|
|
319
|
+
return `wakes ${formatWakeAt(wakeAt)}`;
|
|
320
|
+
return "";
|
|
321
|
+
}
|
|
322
|
+
if (kind === "terminal") {
|
|
323
|
+
const status = stringField(state, "status") ?? "";
|
|
324
|
+
const reason = stringField(state, "reason");
|
|
325
|
+
return reason ? `${status} — ${firstLine(reason)}` : status;
|
|
326
|
+
}
|
|
327
|
+
return "";
|
|
328
|
+
}
|
|
329
|
+
function formatDuration(ms) {
|
|
330
|
+
if (ms < 1000)
|
|
331
|
+
return `${ms}ms`;
|
|
332
|
+
const secs = Math.round(ms / 1000);
|
|
333
|
+
if (secs < 60)
|
|
334
|
+
return `${secs}s`;
|
|
335
|
+
const mins = Math.round(secs / 60);
|
|
336
|
+
if (mins < 60)
|
|
337
|
+
return `${mins}m`;
|
|
338
|
+
const hours = Math.round(mins / 60);
|
|
339
|
+
if (hours < 48)
|
|
340
|
+
return `${hours}h`;
|
|
341
|
+
return `${Math.round(hours / 24)}d`;
|
|
342
|
+
}
|
|
343
|
+
function formatWakeAt(ms) {
|
|
344
|
+
const date = new Date(ms);
|
|
345
|
+
if (Number.isNaN(date.getTime()))
|
|
346
|
+
return String(ms);
|
|
347
|
+
return date.toISOString().replace(".000", "");
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* `create_state_machine_definition` renders as a compact relay roster:
|
|
351
|
+
* one row per state with a kind glyph, its name, and a short hint pulled
|
|
352
|
+
* from `when` / prompt / command / wakeAt. The tool result is just an echo
|
|
353
|
+
* of the same definition, so it is suppressed in favor of the body view.
|
|
354
|
+
*/
|
|
275
355
|
const formatCreateStateMachine = (spec) => {
|
|
276
356
|
const input = pickObject(spec.input);
|
|
277
357
|
const definition = pickObject(input ? input["definition"] : undefined);
|
|
278
358
|
const smName = stringField(definition, "name") ?? "?";
|
|
359
|
+
const firstState = stringField(input, "firstState");
|
|
279
360
|
const states = arrayField(definition, "states") ?? [];
|
|
280
|
-
const
|
|
281
|
-
|
|
282
|
-
.
|
|
283
|
-
const
|
|
361
|
+
const rows = [];
|
|
362
|
+
if (firstState)
|
|
363
|
+
rows.push(`firstState: ${firstState}`);
|
|
364
|
+
const nameWidth = states.reduce((max, s) => {
|
|
365
|
+
const name = s && typeof s === "object" ? stringField(s, "name") : undefined;
|
|
366
|
+
return name && name.length > max ? name.length : max;
|
|
367
|
+
}, 0);
|
|
368
|
+
for (const raw of states) {
|
|
369
|
+
const state = pickObject(raw);
|
|
370
|
+
if (!state)
|
|
371
|
+
continue;
|
|
372
|
+
const kind = stringField(state, "kind");
|
|
373
|
+
const name = stringField(state, "name") ?? "?";
|
|
374
|
+
const hint = summarizeStateRow(state);
|
|
375
|
+
const padded = name.padEnd(nameWidth);
|
|
376
|
+
rows.push(hint ? `${stateKindGlyph(kind)} ${padded} ${hint}` : `${stateKindGlyph(kind)} ${padded}`);
|
|
377
|
+
}
|
|
284
378
|
return {
|
|
285
|
-
header: `
|
|
286
|
-
body,
|
|
287
|
-
result
|
|
288
|
-
|
|
379
|
+
header: `relay defined: ${smName}`,
|
|
380
|
+
body: rows.length > 0 ? rows.join("\n") : undefined,
|
|
381
|
+
// Tool result is just an echo of the definition we already rendered.
|
|
382
|
+
result: undefined,
|
|
383
|
+
// Roster is structured and meant to be read in full.
|
|
289
384
|
clamp: false,
|
|
290
385
|
};
|
|
291
386
|
};
|
|
387
|
+
/**
|
|
388
|
+
* `select_state_machine_state` renders the transition verb and target.
|
|
389
|
+
* Reason, input, and override hints fall into the body. The tool result
|
|
390
|
+
* echoes the decision back, which the body already covers, so it is
|
|
391
|
+
* suppressed.
|
|
392
|
+
*/
|
|
292
393
|
const formatSelectStateMachineState = (spec) => {
|
|
293
394
|
const input = pickObject(spec.input);
|
|
294
395
|
const decision = pickObject(input ? input["decision"] : undefined);
|
|
295
|
-
const kind = stringField(decision, "kind")
|
|
396
|
+
const kind = stringField(decision, "kind");
|
|
296
397
|
const stateName = stringField(decision, "state");
|
|
297
398
|
const reason = stringField(decision, "reason");
|
|
298
|
-
const
|
|
299
|
-
const
|
|
399
|
+
const transitionInput = pickObject(decision ? decision["input"] : undefined);
|
|
400
|
+
const override = pickObject(decision ? decision["override"] : undefined);
|
|
401
|
+
const verb = kind === "run_state"
|
|
402
|
+
? "run"
|
|
403
|
+
: kind === "terminal"
|
|
404
|
+
? "finalize"
|
|
405
|
+
: kind === "fail"
|
|
406
|
+
? "fail"
|
|
407
|
+
: (kind ?? "?");
|
|
408
|
+
const headerTail = stateName ? `: ${stateName}` : "";
|
|
409
|
+
const bodyParts = [];
|
|
410
|
+
if (reason)
|
|
411
|
+
bodyParts.push(`reason: ${reason}`);
|
|
412
|
+
if (transitionInput && Object.keys(transitionInput).length > 0) {
|
|
413
|
+
bodyParts.push(`input: ${formatCompactJson(transitionInput)}`);
|
|
414
|
+
}
|
|
415
|
+
if (override) {
|
|
416
|
+
const overrideKind = stringField(override, "kind");
|
|
417
|
+
bodyParts.push(`override: ${overrideKind ?? "unknown"}`);
|
|
418
|
+
}
|
|
300
419
|
return {
|
|
301
|
-
header: `→ ${
|
|
302
|
-
body:
|
|
303
|
-
result
|
|
420
|
+
header: `→ ${verb}${headerTail}`,
|
|
421
|
+
body: bodyParts.length > 0 ? bodyParts.join("\n") : undefined,
|
|
422
|
+
// Tool result is just an echo of the decision; the body already covers it.
|
|
423
|
+
result: undefined,
|
|
424
|
+
clamp: false,
|
|
425
|
+
};
|
|
426
|
+
};
|
|
427
|
+
/**
|
|
428
|
+
* `get_current_state_machine_state` renders the parsed status JSON as a
|
|
429
|
+
* compact summary: current state (or terminal status), per-state progress
|
|
430
|
+
* counters, and the tail of recent history. The raw result is suppressed
|
|
431
|
+
* since the parsed view is strictly more readable.
|
|
432
|
+
*/
|
|
433
|
+
const formatGetCurrentStateMachineState = (spec) => {
|
|
434
|
+
if (spec.status === "running" || !spec.output) {
|
|
435
|
+
return { header: "relay status", clamp: false };
|
|
436
|
+
}
|
|
437
|
+
const parsed = parseToolJsonOutput(spec.output);
|
|
438
|
+
if (!parsed) {
|
|
439
|
+
return { header: "relay status", result: buildDefaultResult(spec), clamp: false };
|
|
440
|
+
}
|
|
441
|
+
const currentState = stringField(parsed, "currentState");
|
|
442
|
+
const terminal = pickObject(parsed["terminal"]);
|
|
443
|
+
const terminalStatus = stringField(terminal, "status");
|
|
444
|
+
const terminalReason = stringField(terminal, "reason");
|
|
445
|
+
const headline = terminalStatus
|
|
446
|
+
? `terminal: ${terminalStatus}`
|
|
447
|
+
: currentState
|
|
448
|
+
? `current: ${currentState}`
|
|
449
|
+
: "idle";
|
|
450
|
+
const bodyParts = [];
|
|
451
|
+
if (terminalReason)
|
|
452
|
+
bodyParts.push(`reason: ${terminalReason}`);
|
|
453
|
+
const progress = pickObject(parsed["progress"]);
|
|
454
|
+
if (progress) {
|
|
455
|
+
const entries = Object.entries(progress)
|
|
456
|
+
.map(([name, count]) => `${name}=${typeof count === "number" ? count : String(count)}`)
|
|
457
|
+
.join(" ");
|
|
458
|
+
if (entries)
|
|
459
|
+
bodyParts.push(`progress: ${entries}`);
|
|
460
|
+
}
|
|
461
|
+
const historyCount = numberField(parsed, "historyCount");
|
|
462
|
+
const historyTail = arrayField(parsed, "history") ?? [];
|
|
463
|
+
if (historyTail.length > 0) {
|
|
464
|
+
const lines = historyTail.slice(-5).map((event) => formatHistoryEvent(event));
|
|
465
|
+
const more = historyCount !== undefined && historyCount > historyTail.length
|
|
466
|
+
? ` (+${historyCount - historyTail.length} earlier)`
|
|
467
|
+
: "";
|
|
468
|
+
bodyParts.push(`history${more}:\n${lines.map((l) => ` ${l}`).join("\n")}`);
|
|
469
|
+
}
|
|
470
|
+
return {
|
|
471
|
+
header: `relay status — ${headline}`,
|
|
472
|
+
body: bodyParts.length > 0 ? bodyParts.join("\n") : undefined,
|
|
473
|
+
result: undefined,
|
|
304
474
|
clamp: false,
|
|
305
475
|
};
|
|
306
476
|
};
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
477
|
+
function parseToolJsonOutput(output) {
|
|
478
|
+
const text = textFromToolContent(output).trim();
|
|
479
|
+
if (!text)
|
|
480
|
+
return undefined;
|
|
481
|
+
try {
|
|
482
|
+
const parsed = JSON.parse(text);
|
|
483
|
+
return pickObject(parsed);
|
|
484
|
+
}
|
|
485
|
+
catch {
|
|
486
|
+
return undefined;
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
function formatHistoryEvent(event) {
|
|
490
|
+
const e = pickObject(event);
|
|
491
|
+
if (!e)
|
|
492
|
+
return String(event);
|
|
493
|
+
const type = stringField(e, "type") ?? "event";
|
|
494
|
+
const state = stringField(e, "state");
|
|
495
|
+
const status = stringField(e, "status");
|
|
496
|
+
const parts = [type];
|
|
497
|
+
if (state)
|
|
498
|
+
parts.push(state);
|
|
499
|
+
if (status && status !== type)
|
|
500
|
+
parts.push(`(${status})`);
|
|
501
|
+
return parts.join(" ");
|
|
502
|
+
}
|
|
312
503
|
const TOOL_FORMATTERS = {
|
|
313
504
|
bash: formatBash,
|
|
314
505
|
read: formatRead,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-formatters.js","sourceRoot":"","sources":["../../../src/tui/tool-formatters.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-formatters.js","sourceRoot":"","sources":["../../../src/tui/tool-formatters.ts"],"names":[],"mappings":"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"}
|