@seat-mesh/core 1.0.10 → 1.0.12
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/chatfile/chatfile.test.js +89 -2
- package/dist/chatfile/chatfile.test.js.map +1 -1
- package/dist/chatfile/index.d.ts +1 -0
- package/dist/chatfile/index.d.ts.map +1 -1
- package/dist/chatfile/index.js +1 -0
- package/dist/chatfile/index.js.map +1 -1
- package/dist/chatfile/slot.d.ts.map +1 -1
- package/dist/chatfile/slot.js +13 -5
- package/dist/chatfile/slot.js.map +1 -1
- package/dist/chatfile/speaker.d.ts +20 -0
- package/dist/chatfile/speaker.d.ts.map +1 -0
- package/dist/chatfile/speaker.js +52 -0
- package/dist/chatfile/speaker.js.map +1 -0
- package/dist/chatfile/store.d.ts +5 -1
- package/dist/chatfile/store.d.ts.map +1 -1
- package/dist/chatfile/store.js +14 -2
- package/dist/chatfile/store.js.map +1 -1
- package/dist/chatfile/types.d.ts +14 -1
- package/dist/chatfile/types.d.ts.map +1 -1
- package/dist/chatfile/types.js +8 -1
- package/dist/chatfile/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,6 +4,7 @@ import path from "node:path";
|
|
|
4
4
|
import { afterEach, describe, expect, it } from "vitest";
|
|
5
5
|
import { appendSlotPrompt, querySlotPrompts, tailSlotPrompts, turnHash } from "./store.js";
|
|
6
6
|
import { resolveSlotKeyFromPane } from "./slot.js";
|
|
7
|
+
import { chatAgentSpeaker, chatHumanKind, formatChatTranscript, providerSpeakerTag, } from "./speaker.js";
|
|
7
8
|
describe("chatfile store", () => {
|
|
8
9
|
let tmp = "";
|
|
9
10
|
afterEach(() => {
|
|
@@ -25,6 +26,8 @@ describe("chatfile store", () => {
|
|
|
25
26
|
humanPrompt: "fix the bug",
|
|
26
27
|
agentResponse: "done",
|
|
27
28
|
});
|
|
29
|
+
expect(a.agent).toBe("slot-1-cursor");
|
|
30
|
+
expect(a.humanKind).toBe("human");
|
|
28
31
|
const b = await appendSlotPrompt(ws, cfg, {
|
|
29
32
|
slot: "worker-1",
|
|
30
33
|
providerId: "cursor-agent",
|
|
@@ -37,6 +40,33 @@ describe("chatfile store", () => {
|
|
|
37
40
|
const tail = await tailSlotPrompts(ws, cfg, "worker-1", 10);
|
|
38
41
|
expect(tail).toHaveLength(1);
|
|
39
42
|
});
|
|
43
|
+
it("keeps separate records when the seat switches providers", async () => {
|
|
44
|
+
tmp = fs.mkdtempSync(path.join(os.tmpdir(), "chatfile-"));
|
|
45
|
+
const cfg = { root: "tasks/chat-files", filename: "CHAT.jsonl" };
|
|
46
|
+
const ws = tmp;
|
|
47
|
+
fs.mkdirSync(path.join(ws, cfg.root), { recursive: true });
|
|
48
|
+
const oc = await appendSlotPrompt(ws, cfg, {
|
|
49
|
+
slot: "mini-1",
|
|
50
|
+
providerId: "opencode",
|
|
51
|
+
sessionId: "ses_oc",
|
|
52
|
+
humanPrompt: "same ask",
|
|
53
|
+
agentResponse: "oc answer",
|
|
54
|
+
});
|
|
55
|
+
const claude = await appendSlotPrompt(ws, cfg, {
|
|
56
|
+
slot: "mini-1",
|
|
57
|
+
providerId: "claude",
|
|
58
|
+
sessionId: "uuid-claude",
|
|
59
|
+
humanPrompt: "same ask",
|
|
60
|
+
agentResponse: "oc answer",
|
|
61
|
+
});
|
|
62
|
+
expect(oc.agent).toBe("mini-1-oc");
|
|
63
|
+
expect(claude.agent).toBe("mini-1-claude");
|
|
64
|
+
expect(oc.id).not.toBe(claude.id);
|
|
65
|
+
const byAgent = await querySlotPrompts(ws, cfg, { agent: "mini-1-kiro" });
|
|
66
|
+
expect(byAgent).toHaveLength(0);
|
|
67
|
+
const ocRows = await querySlotPrompts(ws, cfg, { agent: "mini-1-oc" });
|
|
68
|
+
expect(ocRows).toHaveLength(1);
|
|
69
|
+
});
|
|
40
70
|
it("queries by session and provider", async () => {
|
|
41
71
|
tmp = fs.mkdtempSync(path.join(os.tmpdir(), "chatfile-"));
|
|
42
72
|
const cfg = { root: "tasks/chat-files", filename: "CHAT.jsonl" };
|
|
@@ -59,15 +89,61 @@ describe("chatfile store", () => {
|
|
|
59
89
|
const bySession = await querySlotPrompts(ws, cfg, { sessionId: "abc" });
|
|
60
90
|
expect(bySession).toHaveLength(1);
|
|
61
91
|
expect(bySession[0]?.providerId).toBe("claude");
|
|
92
|
+
expect(bySession[0]?.agent).toBe("slot-2-claude");
|
|
62
93
|
const byProvider = await querySlotPrompts(ws, cfg, { providerId: "opencode" });
|
|
63
94
|
expect(byProvider).toHaveLength(1);
|
|
64
95
|
expect(byProvider[0]?.slot).toBe("worker-3");
|
|
65
96
|
});
|
|
97
|
+
it("marks mesh-inbox prompts as system", async () => {
|
|
98
|
+
tmp = fs.mkdtempSync(path.join(os.tmpdir(), "chatfile-"));
|
|
99
|
+
const cfg = { root: "tasks/chat-files", filename: "CHAT.jsonl" };
|
|
100
|
+
const ws = tmp;
|
|
101
|
+
fs.mkdirSync(path.join(ws, cfg.root), { recursive: true });
|
|
102
|
+
const row = await appendSlotPrompt(ws, cfg, {
|
|
103
|
+
slot: "mini-6",
|
|
104
|
+
providerId: "opencode",
|
|
105
|
+
humanPrompt: "[mesh-inbox] OC-PROVE-1: FYI only",
|
|
106
|
+
agentResponse: "ack",
|
|
107
|
+
});
|
|
108
|
+
expect(row.humanKind).toBe("system");
|
|
109
|
+
expect(row.agent).toBe("mini-6-oc");
|
|
110
|
+
expect(formatChatTranscript(row)).toBe("[system]: [mesh-inbox] OC-PROVE-1: FYI only\n[mini-6-oc]: ack");
|
|
111
|
+
});
|
|
66
112
|
});
|
|
67
113
|
describe("turnHash", () => {
|
|
68
114
|
it("is stable for same input", () => {
|
|
69
|
-
const h = turnHash({
|
|
70
|
-
|
|
115
|
+
const h = turnHash({
|
|
116
|
+
sessionId: "s",
|
|
117
|
+
agent: "mini-1-oc",
|
|
118
|
+
humanPrompt: "a",
|
|
119
|
+
agentResponse: "b",
|
|
120
|
+
});
|
|
121
|
+
expect(h).toBe(turnHash({ sessionId: "s", agent: "mini-1-oc", humanPrompt: "a", agentResponse: "b" }));
|
|
122
|
+
});
|
|
123
|
+
it("changes when agent switches", () => {
|
|
124
|
+
const a = turnHash({
|
|
125
|
+
sessionId: "s",
|
|
126
|
+
agent: "mini-1-oc",
|
|
127
|
+
humanPrompt: "a",
|
|
128
|
+
agentResponse: "b",
|
|
129
|
+
});
|
|
130
|
+
const b = turnHash({
|
|
131
|
+
sessionId: "s",
|
|
132
|
+
agent: "mini-1-claude",
|
|
133
|
+
humanPrompt: "a",
|
|
134
|
+
agentResponse: "b",
|
|
135
|
+
});
|
|
136
|
+
expect(a).not.toBe(b);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
describe("speaker labels", () => {
|
|
140
|
+
it("maps providers and seats", () => {
|
|
141
|
+
expect(providerSpeakerTag("cursor-agent")).toBe("cursor");
|
|
142
|
+
expect(providerSpeakerTag("opencode")).toBe("oc");
|
|
143
|
+
expect(chatAgentSpeaker("worker-3", "kiro")).toBe("slot-3-kiro");
|
|
144
|
+
expect(chatAgentSpeaker("mini-1", "opencode")).toBe("mini-1-oc");
|
|
145
|
+
expect(chatHumanKind("[mesh-inbox] hi")).toBe("system");
|
|
146
|
+
expect(chatHumanKind("fix the banner")).toBe("human");
|
|
71
147
|
});
|
|
72
148
|
});
|
|
73
149
|
describe("resolveSlotKeyFromPane", () => {
|
|
@@ -82,5 +158,16 @@ describe("resolveSlotKeyFromPane", () => {
|
|
|
82
158
|
};
|
|
83
159
|
expect(resolveSlotKeyFromPane(pane)).toBe("worker-3");
|
|
84
160
|
});
|
|
161
|
+
it("maps mini panes (mesh_slot mini-N + mesh_mini)", () => {
|
|
162
|
+
const pane = {
|
|
163
|
+
paneId: "%15",
|
|
164
|
+
windowName: "minis",
|
|
165
|
+
cwd: "/tmp",
|
|
166
|
+
currentCommand: "opencode",
|
|
167
|
+
captureTail: "",
|
|
168
|
+
options: { mesh_role: "manager-mini", mesh_slot: "mini-6", mesh_mini: "6" },
|
|
169
|
+
};
|
|
170
|
+
expect(resolveSlotKeyFromPane(pane)).toBe("mini-6");
|
|
171
|
+
});
|
|
85
172
|
});
|
|
86
173
|
//# sourceMappingURL=chatfile.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatfile.test.js","sourceRoot":"","sources":["../../src/chatfile/chatfile.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"chatfile.test.js","sourceRoot":"","sources":["../../src/chatfile/chatfile.test.ts"],"names":[],"mappings":"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"}
|
package/dist/chatfile/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chatfile/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chatfile/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
package/dist/chatfile/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chatfile/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chatfile/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../../src/chatfile/slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../../src/chatfile/slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAiBjE"}
|
package/dist/chatfile/slot.js
CHANGED
|
@@ -2,13 +2,21 @@ import { resolveAgentId } from "../chatroom/agent-id.js";
|
|
|
2
2
|
/** Stable slot key for CHAT.jsonl path (worker-1, mini-3, manager, ...). */
|
|
3
3
|
export function resolveSlotKeyFromPane(pane) {
|
|
4
4
|
const role = pane.options.mesh_role?.trim() || "plain";
|
|
5
|
-
const slotRaw = pane.options.mesh_slot;
|
|
6
|
-
const
|
|
7
|
-
|
|
5
|
+
const slotRaw = (pane.options.mesh_slot ?? "").trim();
|
|
6
|
+
const miniRaw = (pane.options.mesh_mini ?? "").trim();
|
|
7
|
+
// Workers: mesh_slot is "3". Minis: mesh_slot is often "mini-6" and/or mesh_mini "6".
|
|
8
|
+
let mini = miniRaw || null;
|
|
9
|
+
let slot = null;
|
|
10
|
+
if (/^mini-/i.test(slotRaw)) {
|
|
11
|
+
mini = mini || slotRaw.replace(/^mini-/i, "");
|
|
12
|
+
}
|
|
13
|
+
else if (/^\d+$/.test(slotRaw)) {
|
|
14
|
+
slot = Number.parseInt(slotRaw, 10);
|
|
15
|
+
}
|
|
8
16
|
return resolveAgentId({
|
|
9
17
|
role,
|
|
10
|
-
slot
|
|
11
|
-
mini
|
|
18
|
+
slot,
|
|
19
|
+
mini,
|
|
12
20
|
});
|
|
13
21
|
}
|
|
14
22
|
//# sourceMappingURL=slot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot.js","sourceRoot":"","sources":["../../src/chatfile/slot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,4EAA4E;AAC5E,MAAM,UAAU,sBAAsB,CAAC,IAAkB;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"slot.js","sourceRoot":"","sources":["../../src/chatfile/slot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,4EAA4E;AAC5E,MAAM,UAAU,sBAAsB,CAAC,IAAkB;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC;IACvD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,sFAAsF;IACtF,IAAI,IAAI,GAAkB,OAAO,IAAI,IAAI,CAAC;IAC1C,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,cAAc,CAAC;QACpB,IAAI;QACJ,IAAI;QACJ,IAAI;KACL,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Short provider tags for speaker labels (slot-3-kiro, mini-1-oc, …). */
|
|
2
|
+
export declare function providerSpeakerTag(providerId: string): string;
|
|
3
|
+
/**
|
|
4
|
+
* Peer-facing seat tag: worker-3 → slot-3, mini-6 stays mini-6, manager stays manager.
|
|
5
|
+
*/
|
|
6
|
+
export declare function seatSpeakerTag(slot: string): string;
|
|
7
|
+
/** Stable agent speaker id: `slot-3-kiro`, `mini-1-oc`, `manager-claude`. */
|
|
8
|
+
export declare function chatAgentSpeaker(slot: string, providerId: string): string;
|
|
9
|
+
/** Classify the inbound prompt side of a turn. */
|
|
10
|
+
export declare function chatHumanKind(humanPrompt: string): "human" | "system";
|
|
11
|
+
/** One turn as transcript lines (what operators expect to read). */
|
|
12
|
+
export declare function formatChatTranscript(record: {
|
|
13
|
+
agent?: string;
|
|
14
|
+
slot: string;
|
|
15
|
+
providerId: string;
|
|
16
|
+
humanPrompt: string;
|
|
17
|
+
agentResponse?: string;
|
|
18
|
+
humanKind?: "human" | "system";
|
|
19
|
+
}): string;
|
|
20
|
+
//# sourceMappingURL=speaker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speaker.d.ts","sourceRoot":"","sources":["../../src/chatfile/speaker.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAMrE;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAChC,GAAG,MAAM,CAQT"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** Short provider tags for speaker labels (slot-3-kiro, mini-1-oc, …). */
|
|
2
|
+
export function providerSpeakerTag(providerId) {
|
|
3
|
+
const id = providerId.trim().toLowerCase();
|
|
4
|
+
if (id === "cursor-agent" || id === "agent")
|
|
5
|
+
return "cursor";
|
|
6
|
+
if (id === "opencode")
|
|
7
|
+
return "oc";
|
|
8
|
+
if (id === "claude")
|
|
9
|
+
return "claude";
|
|
10
|
+
if (id === "kiro")
|
|
11
|
+
return "kiro";
|
|
12
|
+
if (!id || id === "unknown" || id === "empty")
|
|
13
|
+
return "agent";
|
|
14
|
+
return id.replace(/[^a-z0-9_-]+/gi, "-").replace(/^-+|-+$/g, "") || "agent";
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Peer-facing seat tag: worker-3 → slot-3, mini-6 stays mini-6, manager stays manager.
|
|
18
|
+
*/
|
|
19
|
+
export function seatSpeakerTag(slot) {
|
|
20
|
+
const s = slot.trim();
|
|
21
|
+
const worker = /^worker-(\d+)$/i.exec(s);
|
|
22
|
+
if (worker)
|
|
23
|
+
return `slot-${worker[1]}`;
|
|
24
|
+
return s || "unknown";
|
|
25
|
+
}
|
|
26
|
+
/** Stable agent speaker id: `slot-3-kiro`, `mini-1-oc`, `manager-claude`. */
|
|
27
|
+
export function chatAgentSpeaker(slot, providerId) {
|
|
28
|
+
return `${seatSpeakerTag(slot)}-${providerSpeakerTag(providerId)}`;
|
|
29
|
+
}
|
|
30
|
+
/** Classify the inbound prompt side of a turn. */
|
|
31
|
+
export function chatHumanKind(humanPrompt) {
|
|
32
|
+
const t = humanPrompt.trim();
|
|
33
|
+
if (/\[mesh-inbox/i.test(t))
|
|
34
|
+
return "system";
|
|
35
|
+
if (/^\[agent[-_]/i.test(t))
|
|
36
|
+
return "system";
|
|
37
|
+
if (/^\[mesh-cold-start\]/i.test(t))
|
|
38
|
+
return "system";
|
|
39
|
+
return "human";
|
|
40
|
+
}
|
|
41
|
+
/** One turn as transcript lines (what operators expect to read). */
|
|
42
|
+
export function formatChatTranscript(record) {
|
|
43
|
+
const agent = record.agent?.trim() || chatAgentSpeaker(record.slot, record.providerId);
|
|
44
|
+
const kind = record.humanKind ?? chatHumanKind(record.humanPrompt);
|
|
45
|
+
const humanTag = kind === "system" ? "system" : "human";
|
|
46
|
+
const lines = [`[${humanTag}]: ${record.humanPrompt.trim()}`];
|
|
47
|
+
const reply = record.agentResponse?.trim();
|
|
48
|
+
if (reply)
|
|
49
|
+
lines.push(`[${agent}]: ${reply}`);
|
|
50
|
+
return lines.join("\n");
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=speaker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speaker.js","sourceRoot":"","sources":["../../src/chatfile/speaker.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,EAAE,KAAK,cAAc,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC7D,IAAI,EAAE,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACrC,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACjC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAC9D,OAAO,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,MAAM;QAAE,OAAO,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,OAAO,CAAC,IAAI,SAAS,CAAC;AACxB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,UAAkB;IAC/D,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IACrD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,oBAAoB,CAAC,MAOpC;IACC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACvF,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACxD,MAAM,KAAK,GAAG,CAAC,IAAI,QAAQ,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,KAAK,EAAE,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/chatfile/store.d.ts
CHANGED
|
@@ -11,12 +11,16 @@ export declare function chatFileConfigForLoaded(loaded: LoadedProfile): ChatFile
|
|
|
11
11
|
export declare function chatFilePath(workspace: string, cfg: ChatFileConfig, slotKey: string): string;
|
|
12
12
|
export declare function turnHash(input: {
|
|
13
13
|
sessionId?: string;
|
|
14
|
+
agent?: string;
|
|
15
|
+
providerId?: string;
|
|
14
16
|
humanPrompt: string;
|
|
15
17
|
agentResponse?: string;
|
|
16
18
|
}): string;
|
|
17
|
-
export declare function appendSlotPrompt(workspace: string, cfg: ChatFileConfig, record: Omit<SlotPromptRecord, "id" | "ts" | "turnHash"> & {
|
|
19
|
+
export declare function appendSlotPrompt(workspace: string, cfg: ChatFileConfig, record: Omit<SlotPromptRecord, "id" | "ts" | "turnHash" | "agent" | "humanKind"> & {
|
|
18
20
|
id?: string;
|
|
19
21
|
ts?: string;
|
|
22
|
+
agent?: string;
|
|
23
|
+
humanKind?: "human" | "system";
|
|
20
24
|
}): Promise<SlotPromptRecord>;
|
|
21
25
|
export declare function tailSlotPrompts(workspace: string, cfg: ChatFileConfig, slotKey: string, lines?: number): Promise<SlotPromptRecord[]>;
|
|
22
26
|
export declare function querySlotPrompts(workspace: string, cfg: ChatFileConfig, query: PromptQuery): Promise<SlotPromptRecord[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/chatfile/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAA0B,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/chatfile/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAA0B,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG7F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAMnE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAG7E;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG5F;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAKT;AAOD,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC,GAAG;IACjF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAChC,GACA,OAAO,CAAC,gBAAgB,CAAC,CA6B3B;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,SAAK,GACT,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAI7B;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAgC7B"}
|
package/dist/chatfile/store.js
CHANGED
|
@@ -5,6 +5,7 @@ import { resolveFromWorkspace } from "../paths/paths.js";
|
|
|
5
5
|
import { resolveHarnessPath } from "../paths/paths-manifest.js";
|
|
6
6
|
import { appendJsonlLine, readJsonlAll, readJsonlTail } from "../jsonl/store.js";
|
|
7
7
|
import { SlotPromptRecordSchema } from "./types.js";
|
|
8
|
+
import { chatAgentSpeaker, chatHumanKind } from "./speaker.js";
|
|
8
9
|
export function chatFileConfig(profile) {
|
|
9
10
|
const cf = profile.chatFiles;
|
|
10
11
|
return {
|
|
@@ -21,7 +22,9 @@ export function chatFilePath(workspace, cfg, slotKey) {
|
|
|
21
22
|
return path.join(root, slotKey, cfg.filename);
|
|
22
23
|
}
|
|
23
24
|
export function turnHash(input) {
|
|
24
|
-
|
|
25
|
+
// Include agent/provider so a seat that switched CLIs does not collapse turns.
|
|
26
|
+
const who = input.agent ?? input.providerId ?? "";
|
|
27
|
+
const raw = `${input.sessionId ?? ""}\n${who}\n${input.humanPrompt}\n${input.agentResponse ?? ""}`;
|
|
25
28
|
return createHash("sha256").update(raw).digest("hex").slice(0, 16);
|
|
26
29
|
}
|
|
27
30
|
function parseRecord(row) {
|
|
@@ -29,8 +32,12 @@ function parseRecord(row) {
|
|
|
29
32
|
return parsed.success ? parsed.data : null;
|
|
30
33
|
}
|
|
31
34
|
export async function appendSlotPrompt(workspace, cfg, record) {
|
|
35
|
+
const agent = record.agent?.trim() || chatAgentSpeaker(record.slot, record.providerId);
|
|
36
|
+
const humanKind = record.humanKind ?? chatHumanKind(record.humanPrompt);
|
|
32
37
|
const hash = turnHash({
|
|
33
38
|
sessionId: record.sessionId,
|
|
39
|
+
agent,
|
|
40
|
+
providerId: record.providerId,
|
|
34
41
|
humanPrompt: record.humanPrompt,
|
|
35
42
|
agentResponse: record.agentResponse,
|
|
36
43
|
});
|
|
@@ -47,6 +54,8 @@ export async function appendSlotPrompt(workspace, cfg, record) {
|
|
|
47
54
|
ts: record.ts ?? new Date().toISOString(),
|
|
48
55
|
turnHash: hash,
|
|
49
56
|
...record,
|
|
57
|
+
agent,
|
|
58
|
+
humanKind,
|
|
50
59
|
});
|
|
51
60
|
await appendJsonlLine(file, row);
|
|
52
61
|
return row;
|
|
@@ -58,7 +67,7 @@ export async function tailSlotPrompts(workspace, cfg, slotKey, lines = 50) {
|
|
|
58
67
|
return readJsonlTail(file, lines, parseRecord);
|
|
59
68
|
}
|
|
60
69
|
export async function querySlotPrompts(workspace, cfg, query) {
|
|
61
|
-
const root = resolveFromWorkspace(workspace, cfg.root);
|
|
70
|
+
const root = cfg.rootAbs ?? resolveFromWorkspace(workspace, cfg.root);
|
|
62
71
|
if (!fs.existsSync(root))
|
|
63
72
|
return [];
|
|
64
73
|
const slots = query.slot
|
|
@@ -77,6 +86,9 @@ export async function querySlotPrompts(workspace, cfg, query) {
|
|
|
77
86
|
rows = rows.filter((r) => {
|
|
78
87
|
if (query.providerId && r.providerId !== query.providerId)
|
|
79
88
|
return false;
|
|
89
|
+
if (query.agent && (r.agent ?? chatAgentSpeaker(r.slot, r.providerId)) !== query.agent) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
80
92
|
if (query.sessionId && r.sessionId !== query.sessionId)
|
|
81
93
|
return false;
|
|
82
94
|
if (query.model && r.model !== query.model)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/chatfile/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAA2C,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/chatfile/store.ts"],"names":[],"mappings":"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"}
|
package/dist/chatfile/types.d.ts
CHANGED
|
@@ -2,10 +2,17 @@ import { z } from "zod";
|
|
|
2
2
|
export declare const SlotPromptRecordSchema: z.ZodObject<{
|
|
3
3
|
id: z.ZodString;
|
|
4
4
|
ts: z.ZodString;
|
|
5
|
-
/** worker-1, mini-3, manager, secretary */
|
|
5
|
+
/** worker-1, mini-3, manager, secretary — file path key */
|
|
6
6
|
slot: z.ZodString;
|
|
7
7
|
paneId: z.ZodOptional<z.ZodString>;
|
|
8
8
|
providerId: z.ZodString;
|
|
9
|
+
/**
|
|
10
|
+
* Who answered: seat + provider tag (`slot-3-kiro`, `mini-1-oc`, `manager-claude`).
|
|
11
|
+
* Survives agent switches on the same seat — each record names the CLI that spoke.
|
|
12
|
+
*/
|
|
13
|
+
agent: z.ZodOptional<z.ZodString>;
|
|
14
|
+
/** Inbound side: operator typing vs mesh/inbox inject. */
|
|
15
|
+
humanKind: z.ZodOptional<z.ZodEnum<["human", "system"]>>;
|
|
9
16
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
10
17
|
model: z.ZodOptional<z.ZodString>;
|
|
11
18
|
humanPrompt: z.ZodString;
|
|
@@ -18,7 +25,9 @@ export declare const SlotPromptRecordSchema: z.ZodObject<{
|
|
|
18
25
|
ts: string;
|
|
19
26
|
providerId: string;
|
|
20
27
|
humanPrompt: string;
|
|
28
|
+
agent?: string | undefined;
|
|
21
29
|
paneId?: string | undefined;
|
|
30
|
+
humanKind?: "system" | "human" | undefined;
|
|
22
31
|
sessionId?: string | undefined;
|
|
23
32
|
model?: string | undefined;
|
|
24
33
|
agentResponse?: string | undefined;
|
|
@@ -29,7 +38,9 @@ export declare const SlotPromptRecordSchema: z.ZodObject<{
|
|
|
29
38
|
ts: string;
|
|
30
39
|
providerId: string;
|
|
31
40
|
humanPrompt: string;
|
|
41
|
+
agent?: string | undefined;
|
|
32
42
|
paneId?: string | undefined;
|
|
43
|
+
humanKind?: "system" | "human" | undefined;
|
|
33
44
|
sessionId?: string | undefined;
|
|
34
45
|
model?: string | undefined;
|
|
35
46
|
agentResponse?: string | undefined;
|
|
@@ -39,6 +50,8 @@ export type SlotPromptRecord = z.infer<typeof SlotPromptRecordSchema>;
|
|
|
39
50
|
export interface PromptQuery {
|
|
40
51
|
slot?: string;
|
|
41
52
|
providerId?: string;
|
|
53
|
+
/** Filter by speaker id (`mini-1-oc`, `slot-3-kiro`, …). */
|
|
54
|
+
agent?: string;
|
|
42
55
|
sessionId?: string;
|
|
43
56
|
model?: string;
|
|
44
57
|
since?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/chatfile/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;IAGjC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/chatfile/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;IAGjC,2DAA2D;;;;IAI3D;;;OAGG;;IAEH,0DAA0D;;;;;;IAM1D,gDAAgD;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEhD,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
package/dist/chatfile/types.js
CHANGED
|
@@ -2,10 +2,17 @@ import { z } from "zod";
|
|
|
2
2
|
export const SlotPromptRecordSchema = z.object({
|
|
3
3
|
id: z.string().uuid(),
|
|
4
4
|
ts: z.string().datetime(),
|
|
5
|
-
/** worker-1, mini-3, manager, secretary */
|
|
5
|
+
/** worker-1, mini-3, manager, secretary — file path key */
|
|
6
6
|
slot: z.string().min(1),
|
|
7
7
|
paneId: z.string().optional(),
|
|
8
8
|
providerId: z.string().min(1),
|
|
9
|
+
/**
|
|
10
|
+
* Who answered: seat + provider tag (`slot-3-kiro`, `mini-1-oc`, `manager-claude`).
|
|
11
|
+
* Survives agent switches on the same seat — each record names the CLI that spoke.
|
|
12
|
+
*/
|
|
13
|
+
agent: z.string().min(1).optional(),
|
|
14
|
+
/** Inbound side: operator typing vs mesh/inbox inject. */
|
|
15
|
+
humanKind: z.enum(["human", "system"]).optional(),
|
|
9
16
|
sessionId: z.string().optional(),
|
|
10
17
|
model: z.string().optional(),
|
|
11
18
|
humanPrompt: z.string().min(1),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/chatfile/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/chatfile/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,2DAA2D;IAC3D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B;;;OAGG;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnC,0DAA0D;IAC1D,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,gDAAgD;IAChD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC"}
|