@kvman/kvcoder 0.1.20 → 0.1.22
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/api.d.ts +48 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/connectors/artifact.d.ts.map +1 -1
- package/dist/connectors/artifact.js +4 -2
- package/dist/connectors/artifact.js.map +1 -1
- package/dist/connectors/delegate.d.ts.map +1 -1
- package/dist/connectors/delegate.js +3 -0
- package/dist/connectors/delegate.js.map +1 -1
- package/dist/connectors/execution-map.d.ts.map +1 -1
- package/dist/connectors/execution-map.js +2 -1
- package/dist/connectors/execution-map.js.map +1 -1
- package/dist/delegate/permission.d.ts +5 -0
- package/dist/delegate/permission.d.ts.map +1 -1
- package/dist/delegate/program-permission.d.ts +1 -0
- package/dist/delegate/program-permission.d.ts.map +1 -1
- package/dist/delegate/runs.d.ts.map +1 -1
- package/dist/delegate/runs.js +2 -1
- package/dist/delegate/runs.js.map +1 -1
- package/dist/files/change-fence.d.ts +5 -0
- package/dist/files/change-fence.d.ts.map +1 -0
- package/dist/files/change-fence.js +17 -0
- package/dist/files/change-fence.js.map +1 -0
- package/dist/files/file-change.d.ts +10 -4
- package/dist/files/file-change.d.ts.map +1 -1
- package/dist/files/file-change.js +19 -21
- package/dist/files/file-change.js.map +1 -1
- package/dist/files/file-copies.d.ts +31 -0
- package/dist/files/file-copies.d.ts.map +1 -0
- package/dist/files/file-copies.js +59 -0
- package/dist/files/file-copies.js.map +1 -0
- package/dist/files/file-parts.d.ts.map +1 -1
- package/dist/files/file-parts.js +4 -2
- package/dist/files/file-parts.js.map +1 -1
- package/dist/files/register-changes.d.ts.map +1 -1
- package/dist/files/register-changes.js +19 -7
- package/dist/files/register-changes.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/jobs/notify-watch.d.ts.map +1 -1
- package/dist/jobs/notify-watch.js +3 -2
- package/dist/jobs/notify-watch.js.map +1 -1
- package/dist/jobs/process-handlers.d.ts.map +1 -1
- package/dist/jobs/process-handlers.js +7 -3
- package/dist/jobs/process-handlers.js.map +1 -1
- package/dist/jobs/process-report.d.ts.map +1 -1
- package/dist/jobs/process-report.js +7 -2
- package/dist/jobs/process-report.js.map +1 -1
- package/dist/jobs/process-run.d.ts.map +1 -1
- package/dist/jobs/process-run.js +6 -2
- package/dist/jobs/process-run.js.map +1 -1
- package/dist/maps/map-schema.d.ts +1 -0
- package/dist/maps/map-schema.d.ts.map +1 -1
- package/dist/maps/map-schema.js +3 -0
- package/dist/maps/map-schema.js.map +1 -1
- package/dist/messages/attachments.d.ts +7 -0
- package/dist/messages/attachments.d.ts.map +1 -1
- package/dist/messages/attachments.js +29 -1
- package/dist/messages/attachments.js.map +1 -1
- package/dist/messages/receive-message.d.ts +1 -0
- package/dist/messages/receive-message.d.ts.map +1 -1
- package/dist/messages/receive-message.js +4 -3
- package/dist/messages/receive-message.js.map +1 -1
- package/dist/messages/register-messages.js +3 -3
- package/dist/messages/register-messages.js.map +1 -1
- package/dist/messages/send-receipt.d.ts +1 -1
- package/dist/messages/send-receipt.d.ts.map +1 -1
- package/dist/messages/send-receipt.js +4 -2
- package/dist/messages/send-receipt.js.map +1 -1
- package/dist/prompt/session-grants.d.ts +2 -0
- package/dist/prompt/session-grants.d.ts.map +1 -1
- package/dist/prompt/working-method.d.ts.map +1 -1
- package/dist/prompt/working-method.js +3 -2
- package/dist/prompt/working-method.js.map +1 -1
- package/dist/rewind/chat-mark.d.ts +4 -0
- package/dist/rewind/chat-mark.d.ts.map +1 -0
- package/dist/rewind/chat-mark.js +8 -0
- package/dist/rewind/chat-mark.js.map +1 -0
- package/dist/rewind/register-rewind.d.ts +3 -0
- package/dist/rewind/register-rewind.d.ts.map +1 -0
- package/dist/rewind/register-rewind.js +88 -0
- package/dist/rewind/register-rewind.js.map +1 -0
- package/dist/rewind/rewind-chat.d.ts +13 -0
- package/dist/rewind/rewind-chat.d.ts.map +1 -0
- package/dist/rewind/rewind-chat.js +80 -0
- package/dist/rewind/rewind-chat.js.map +1 -0
- package/dist/rewind/rewind-files.d.ts +17 -0
- package/dist/rewind/rewind-files.d.ts.map +1 -0
- package/dist/rewind/rewind-files.js +99 -0
- package/dist/rewind/rewind-files.js.map +1 -0
- package/dist/rewind/rewind-records.d.ts +7 -0
- package/dist/rewind/rewind-records.d.ts.map +1 -0
- package/dist/rewind/rewind-records.js +82 -0
- package/dist/rewind/rewind-records.js.map +1 -0
- package/dist/rewind/rewind-target.d.ts +18 -0
- package/dist/rewind/rewind-target.d.ts.map +1 -0
- package/dist/rewind/rewind-target.js +47 -0
- package/dist/rewind/rewind-target.js.map +1 -0
- package/dist/schemas/file-records.d.ts +46 -0
- package/dist/schemas/file-records.d.ts.map +1 -0
- package/dist/schemas/file-records.js +34 -0
- package/dist/schemas/file-records.js.map +1 -0
- package/dist/schemas/process-doc.d.ts +2 -0
- package/dist/schemas/process-doc.d.ts.map +1 -1
- package/dist/schemas/process-doc.js +3 -0
- package/dist/schemas/process-doc.js.map +1 -1
- package/dist/schemas/records.d.ts +6 -28
- package/dist/schemas/records.d.ts.map +1 -1
- package/dist/schemas/records.js +10 -8
- package/dist/schemas/records.js.map +1 -1
- package/dist/sessions/new-session.d.ts.map +1 -1
- package/dist/sessions/new-session.js +3 -1
- package/dist/sessions/new-session.js.map +1 -1
- package/dist/store/collections.d.ts +42 -2
- package/dist/store/collections.d.ts.map +1 -1
- package/dist/store/collections.js +3 -1
- package/dist/store/collections.js.map +1 -1
- package/dist/turns/start-turn.d.ts.map +1 -1
- package/dist/turns/start-turn.js +2 -1
- package/dist/turns/start-turn.js.map +1 -1
- package/dist/web/components/approval.css +1 -1
- package/dist/web/components/call.css +1 -1
- package/dist/web/components/connectors.css +1 -1
- package/dist/web/components/conversation.css +1 -1
- package/dist/web/components/conversation.js +2458 -2076
- package/dist/web/components/mcp-sign-in.css +1 -1
- package/dist/web/components/model.css +1 -1
- package/dist/web/components/preferences.css +1 -1
- package/dist/web/components/question.css +1 -1
- package/dist/web/components/sessions.css +1 -1
- package/locales/ar.json +16 -0
- package/locales/en.json +16 -0
- package/package.json +10 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-run.js","sourceRoot":"","sources":["../../src/jobs/process-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAyB,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGlF,wHAAwH;AACxH,gHAAgH;AAEhH,6DAA6D;AAC7D,MAAM,eAAe,GAAG,KAAK,CAAC;AAC9B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAI7B,+FAA+F;AAC/F,MAAM,UAAU,cAAc,CAAC,GAAoD;IACjF,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACjF,IAAI,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACnG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACvD,CAAC;AAED,+JAA+J;AAC/J,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAQ,EAAE,SAAiB,EAAE,KAAmB,EAAE,IAAY,EAAE,MAAM,GAAG,KAAK;IAC/G,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"process-run.js","sourceRoot":"","sources":["../../src/jobs/process-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-schema.d.ts","sourceRoot":"","sources":["../../src/maps/map-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"map-schema.d.ts","sourceRoot":"","sources":["../../src/maps/map-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAM/B,eAAO,MAAM,WAAW,yDAA0D,CAAC;AAEnF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;iBAWxB,CAAC;AASH,eAAO,MAAM,aAAa;;;iBAAwD,CAAC;AAEnF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUvB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AACrD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
package/dist/maps/map-schema.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from '@kvman/sdk';
|
|
2
|
+
import { atSeqSchema } from "../schemas/file-records.js";
|
|
2
3
|
// A chat's execution map as it is stored (plan 08 §8.5, ADR 0064): the goal, the steps with what each waits on and
|
|
3
4
|
// how far it is, and the findings noted for later. `sessionId` is the chat's own id.
|
|
4
5
|
export const mapStatuses = ['todo', 'doing', 'done', 'failed', 'skipped'];
|
|
@@ -28,6 +29,8 @@ export const mapDocSchema = z.object({
|
|
|
28
29
|
steps: z.array(z.preprocess(storedStep, mapStepSchema)),
|
|
29
30
|
notes: z.array(mapNoteSchema),
|
|
30
31
|
version: z.number().int().min(1),
|
|
32
|
+
// The chat's `nextSeq` when the map was first set (ADR 0118, 4).
|
|
33
|
+
atSeq: atSeqSchema,
|
|
31
34
|
createdAt: z.string(),
|
|
32
35
|
updatedAt: z.string(),
|
|
33
36
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-schema.js","sourceRoot":"","sources":["../../src/maps/map-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"map-schema.js","sourceRoot":"","sources":["../../src/maps/map-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,mHAAmH;AACnH,qFAAqF;AAErF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAEnF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,gEAAgE;IAChE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAEH,0HAA0H;AAC1H,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,SAAS,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACjH,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACvC,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEnF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,iEAAiE;IACjE,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC"}
|
|
@@ -5,4 +5,11 @@ export declare function safeName(name: string): string;
|
|
|
5
5
|
export declare function saveAttachments(ctx: Ctx, files: readonly File[]): Promise<string[]>;
|
|
6
6
|
/** The message's text with its saved files named at its end. */
|
|
7
7
|
export declare function withAttachments(text: string, saved: readonly string[]): string;
|
|
8
|
+
/** A message's text as typed, and the saved files its end names (ADR 0118, 6). */
|
|
9
|
+
export declare function splitAttachments(text: string): {
|
|
10
|
+
typed: string;
|
|
11
|
+
saved: string[];
|
|
12
|
+
};
|
|
13
|
+
/** Files a message names again, already saved under `attachments/` (ADR 0118, 6): each must be a file there. */
|
|
14
|
+
export declare function savedAttachments(ctx: Ctx, named: readonly string[]): Promise<string[]>;
|
|
8
15
|
//# sourceMappingURL=attachments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../src/messages/attachments.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../src/messages/attachments.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAY5C,uGAAuG;AACvG,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI7C;AAeD,sHAAsH;AACtH,wBAAsB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUzF;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE9E;AAID,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAMjF;AAED,gHAAgH;AAChH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAY5F"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { constants } from 'node:fs';
|
|
2
|
-
import { copyFile, mkdir } from 'node:fs/promises';
|
|
2
|
+
import { copyFile, mkdir, stat } from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { resolveInWorkspace } from "../files/workspace-path.js";
|
|
5
|
+
import { invalid } from "../problems.js";
|
|
5
6
|
// A message's files that aren't images (plan 08 §8.1, ADR 0018, 1 to 4): each is copied into the workspace folder under
|
|
6
7
|
// `attachments/`, where the agent opens it with its file commands, and the message's text names them. Nothing is
|
|
7
8
|
// overwritten: a name that exists gets `-2`, `-3`, … before its extension.
|
|
@@ -45,4 +46,31 @@ export async function saveAttachments(ctx, files) {
|
|
|
45
46
|
export function withAttachments(text, saved) {
|
|
46
47
|
return saved.length === 0 ? text : `${text}\n\nAttached files:\n${saved.map((file) => `- ${file}`).join('\n')}`;
|
|
47
48
|
}
|
|
49
|
+
const filesLine = '\n\nAttached files:\n';
|
|
50
|
+
/** A message's text as typed, and the saved files its end names (ADR 0118, 6). */
|
|
51
|
+
export function splitAttachments(text) {
|
|
52
|
+
const at = text.lastIndexOf(filesLine);
|
|
53
|
+
if (at < 0)
|
|
54
|
+
return { typed: text, saved: [] };
|
|
55
|
+
const lines = text.slice(at + filesLine.length).split('\n');
|
|
56
|
+
if (!lines.every((line) => line.startsWith(`- ${folderName}/`)))
|
|
57
|
+
return { typed: text, saved: [] };
|
|
58
|
+
return { typed: text.slice(0, at), saved: lines.map((line) => line.slice(2)) };
|
|
59
|
+
}
|
|
60
|
+
/** Files a message names again, already saved under `attachments/` (ADR 0118, 6): each must be a file there. */
|
|
61
|
+
export async function savedAttachments(ctx, named) {
|
|
62
|
+
if (named.length === 0)
|
|
63
|
+
return [];
|
|
64
|
+
const folder = await resolveInWorkspace(ctx.job.workspace.path, folderName);
|
|
65
|
+
const kept = [];
|
|
66
|
+
for (const name of new Set(named)) {
|
|
67
|
+
const real = await resolveInWorkspace(ctx.job.workspace.path, name);
|
|
68
|
+
const inFolder = path.dirname(real) === folder;
|
|
69
|
+
const file = inFolder ? await stat(real).then((found) => found.isFile(), () => false) : false;
|
|
70
|
+
if (!file)
|
|
71
|
+
throw invalid(`${name} isn't a file saved under ${folderName}/ in the workspace folder.`, { path: name });
|
|
72
|
+
kept.push(`${folderName}/${path.basename(real)}`);
|
|
73
|
+
}
|
|
74
|
+
return kept;
|
|
75
|
+
}
|
|
48
76
|
//# sourceMappingURL=attachments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../src/messages/attachments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../src/messages/attachments.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export declare function sortedFiles(ctx: Ctx, session: Stored<SessionDoc>, fileI
|
|
|
8
8
|
export type Incoming = {
|
|
9
9
|
text: string;
|
|
10
10
|
fileIds: readonly string[];
|
|
11
|
+
attachments?: readonly string[] | undefined;
|
|
11
12
|
source: Source;
|
|
12
13
|
mayStart: boolean;
|
|
13
14
|
sendId?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receive-message.d.ts","sourceRoot":"","sources":["../../src/messages/receive-message.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAmBhE,8HAA8H;AAC9H,wBAAsB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAAC,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAKhJ;AAED,MAAM,MAAM,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"receive-message.d.ts","sourceRoot":"","sources":["../../src/messages/receive-message.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAmBhE,8HAA8H;AAC9H,wBAAsB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAAC,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAKhJ;AAED,MAAM,MAAM,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjL,wBAAsB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C9H"}
|
|
@@ -11,7 +11,7 @@ import { recoverSession, recoverWorkspace } from "../turns/recover-workspace.js"
|
|
|
11
11
|
import { heldText } from "../turns/resolve.js";
|
|
12
12
|
import { beginTurn, dispatchStep, openTurn } from "../turns/start-turn.js";
|
|
13
13
|
import { prepareStep } from "../turns/step-intents.js";
|
|
14
|
-
import { saveAttachments, withAttachments } from "./attachments.js";
|
|
14
|
+
import { saveAttachments, savedAttachments, withAttachments } from "./attachments.js";
|
|
15
15
|
import { acknowledged, sentBy } from "./send-receipt.js";
|
|
16
16
|
// A message from the person or an extension (plan 08 §8.1): on an idle session it starts a turn; on a running one it
|
|
17
17
|
// waits for the step's results; on a waiting one it dismisses the pending questions and denies the approvals, and the
|
|
@@ -26,13 +26,14 @@ export async function sortedFiles(ctx, session, fileIds) {
|
|
|
26
26
|
return { images, others: files.filter((file) => !imageTypes.has(file.type)) };
|
|
27
27
|
}
|
|
28
28
|
export async function receiveMessage(ctx, session, incoming, recover = false) {
|
|
29
|
-
const sent = incoming.sendId === undefined ? undefined : sentBy(incoming.sendId, session.id, incoming.text, incoming.fileIds);
|
|
29
|
+
const sent = incoming.sendId === undefined ? undefined : sentBy(incoming.sendId, session.id, incoming.text, incoming.fileIds, incoming.attachments);
|
|
30
30
|
// Before any file work: an accepted send has already moved its uploads into the workspace (ADR 0048, 4).
|
|
31
31
|
if (sent !== undefined && acknowledged((await records(ctx.store).sendReceipts.find({ sendId: sent.sendId }, { limit: 1 }))[0], sent))
|
|
32
32
|
return;
|
|
33
33
|
await reportInterrupted(ctx, session.id);
|
|
34
34
|
const { images, others } = await sortedFiles(ctx, session, incoming.fileIds);
|
|
35
|
-
const
|
|
35
|
+
const named = await savedAttachments(ctx, incoming.attachments ?? []);
|
|
36
|
+
const text = withAttachments(incoming.text, [...(await saveAttachments(ctx, others)), ...named]);
|
|
36
37
|
const files = images.length === 0 ? { fileIds: null, fileNames: null } : { fileIds: images.map((file) => file.id), fileNames: images.map((file) => file.name) };
|
|
37
38
|
if (recover)
|
|
38
39
|
await recoverWorkspace(ctx, session.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receive-message.js","sourceRoot":"","sources":["../../src/messages/receive-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"receive-message.js","sourceRoot":"","sources":["../../src/messages/receive-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEzD,qHAAqH;AACrH,sHAAsH;AACtH,sEAAsE;AAEtE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAEnF,8HAA8H;AAC9H,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAQ,EAAE,OAA2B,EAAE,OAA0B;IACjG,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI;QAAE,MAAM,OAAO,CAAC,aAAa,OAAO,CAAC,KAAK,IAAI,QAAQ,uBAAuB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACxL,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAQ,EAAE,OAA2B,EAAE,QAAkB,EAAE,OAAO,GAAG,KAAK;IAC7G,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpJ,yGAAyG;IACzG,IAAI,IAAI,KAAK,SAAS,IAAI,YAAY,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAAE,OAAO;IAC7I,MAAM,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;IACjG,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAChK,IAAI,OAAO;QAAE,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACrD,qHAAqH;IACrH,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClG,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,GAAG,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACnG,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC5G,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;gBAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvH,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YACtH,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACtJ,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/E,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACtF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7F,IAAI,QAAQ,KAAK,SAAS;gBAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChE,OAAO,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;QACxE,mGAAmG;QACnG,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,yEAAyE,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7J,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QAChH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAClC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACzE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO;IAC/B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1E,IAAI,OAAO;QAAE,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -12,13 +12,13 @@ const sendSchema = z.object({ sessionId: z.string(), text: z.string().min(1), fi
|
|
|
12
12
|
export function registerMessages(ctx) {
|
|
13
13
|
ctx.registerCommand('kvcoder.message.send', {
|
|
14
14
|
description: "Sends the person's message: it starts a turn, steers the running one, or answers a waiting one. A repeat with the same sendId is acknowledged and adds nothing.",
|
|
15
|
-
input: sendSchema.extend({ sendId: z.string().min(1).max(100).exactOptional() }),
|
|
15
|
+
input: sendSchema.extend({ attachments: z.array(z.string().min(1)).exactOptional(), sendId: z.string().min(1).max(100).exactOptional() }),
|
|
16
16
|
output: z.object({}),
|
|
17
17
|
public: true,
|
|
18
18
|
retries: 0,
|
|
19
|
-
handle: async ({ sessionId, text, fileIds, sendId }) => {
|
|
19
|
+
handle: async ({ sessionId, text, fileIds, attachments, sendId }) => {
|
|
20
20
|
userOnly(ctx, 'kvcoder.message.send');
|
|
21
|
-
await receiveMessage(ctx, await ownSession(ctx, sessionId), { text, fileIds: fileIds ?? [], source: { kind: 'user' }, mayStart: true, sendId }, true);
|
|
21
|
+
await receiveMessage(ctx, await ownSession(ctx, sessionId), { text, fileIds: fileIds ?? [], attachments, source: { kind: 'user' }, mayStart: true, sendId }, true);
|
|
22
22
|
return {};
|
|
23
23
|
},
|
|
24
24
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-messages.js","sourceRoot":"","sources":["../../src/messages/register-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAY,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,wHAAwH;AAExH,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAE9H,MAAM,UAAU,gBAAgB,CAAC,GAAQ;IACvC,GAAG,CAAC,eAAe,CAAC,sBAAsB,EAAE;QAC1C,WAAW,EAAE,iKAAiK;QAC9K,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"register-messages.js","sourceRoot":"","sources":["../../src/messages/register-messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export type Sent = {
|
|
|
4
4
|
sessionId: string;
|
|
5
5
|
messageFingerprint: string;
|
|
6
6
|
};
|
|
7
|
-
export declare function sentBy(sendId: string, sessionId: string, text: string, fileIds: readonly string[]): Sent;
|
|
7
|
+
export declare function sentBy(sendId: string, sessionId: string, text: string, fileIds: readonly string[], attachments?: readonly string[]): Sent;
|
|
8
8
|
/** Whether the receipt already accepted this send; another message or session under its id is a conflict. */
|
|
9
9
|
export declare function acknowledged(receipt: SendReceiptDoc | undefined, sent: Sent): boolean;
|
|
10
10
|
//# sourceMappingURL=send-receipt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-receipt.d.ts","sourceRoot":"","sources":["../../src/messages/send-receipt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,MAAM,IAAI,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"send-receipt.d.ts","sourceRoot":"","sources":["../../src/messages/send-receipt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,MAAM,IAAI,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC;AAGrF,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,GAAE,SAAS,MAAM,EAAO,GAAG,IAAI,CAG7I;AAED,6GAA6G;AAC7G,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAIrF"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
2
|
import { invalid } from "../problems.js";
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
// Files named again are fingerprinted only when there are some, so a receipt from before ADR 0118 still matches.
|
|
4
|
+
export function sentBy(sendId, sessionId, text, fileIds, attachments = []) {
|
|
5
|
+
const message = attachments.length === 0 ? [text, fileIds] : [text, fileIds, attachments];
|
|
6
|
+
return { sendId, sessionId, messageFingerprint: createHash('sha256').update(JSON.stringify(message)).digest('hex') };
|
|
5
7
|
}
|
|
6
8
|
/** Whether the receipt already accepted this send; another message or session under its id is a conflict. */
|
|
7
9
|
export function acknowledged(receipt, sent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-receipt.js","sourceRoot":"","sources":["../../src/messages/send-receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAQzC,MAAM,UAAU,MAAM,CAAC,MAAc,EAAE,SAAiB,EAAE,IAAY,EAAE,OAA0B;
|
|
1
|
+
{"version":3,"file":"send-receipt.js","sourceRoot":"","sources":["../../src/messages/send-receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAQzC,iHAAiH;AACjH,MAAM,UAAU,MAAM,CAAC,MAAc,EAAE,SAAiB,EAAE,IAAY,EAAE,OAA0B,EAAE,cAAiC,EAAE;IACrI,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC1F,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACvH,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,YAAY,CAAC,OAAmC,EAAE,IAAU;IAC1E,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,kBAAkB,KAAK,IAAI,CAAC,kBAAkB;QAAE,MAAM,OAAO,CAAC,mDAAmD,EAAE,EAAE,CAAC,CAAC;IAC3K,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-grants.d.ts","sourceRoot":"","sources":["../../src/prompt/session-grants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAI9C,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAE1G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAapE,gGAAgG;AAChG,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAM3C;AACD,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC;AAEzE,qGAAqG;AACrG,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,gBAAgB
|
|
1
|
+
{"version":3,"file":"session-grants.d.ts","sourceRoot":"","sources":["../../src/prompt/session-grants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAI9C,OAAO,EAAqC,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAE1G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAapE,gGAAgG;AAChG,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAM3C;AACD,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC;AAEzE,qGAAqG;AACrG,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAenG;AACD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;AAEvE,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAMnG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"working-method.d.ts","sourceRoot":"","sources":["../../src/prompt/working-method.ts"],"names":[],"mappings":"AAKA,wFAAwF;AACxF,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErC,mHAAmH;AACnH,MAAM,MAAM,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"working-method.d.ts","sourceRoot":"","sources":["../../src/prompt/working-method.ts"],"names":[],"mappings":"AAKA,wFAAwF;AACxF,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErC,mHAAmH;AACnH,MAAM,MAAM,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;AA+G/C;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAQlG;AAED,8HAA8H;AAC9H,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,MAAsB,EAAE,OAAO,UAAQ,GAAG,MAAM,CAGjG"}
|
|
@@ -26,8 +26,9 @@ const understand = "Understand. Read everything the person sent, attached images
|
|
|
26
26
|
// The person's go-ahead is never asked for again (ADR 0112, 3).
|
|
27
27
|
const clarifyAsking = "Clarify. A fact that looking would answer: look, don't ask. An ordinary detail that is easy to change: decide it yourself, and say what you chose. A decision only the person can make, or a gap that changes the result, the design, or stored data, such as a request that is unclear, contradicts itself or the code, or would break what exists: ask before any work. When the means they asked for works against their goal, or a clearly better way exists, say so and offer both before you build theirs. Look first, then ask everything in one round: every question in the same reply, one `ask` call each, never one question per reply, and `ask choice` whenever you offer options, your recommended one first and each option saying what it leads to. The person's go-ahead (\"do it\", \"yes\", or the option that starts, chosen after you said what you would do) answers what it covers: never ask it again.";
|
|
28
28
|
const clarifyDeciding = "Clarify. A fact that looking would answer: look, don't guess. Anything else, decide yourself, since the person asked you to decide: choose what you would recommend, and say in a line what you chose and why. Put no question to the person in a reply either: decide, say what you chose, and go on. When the means they asked for works against their goal, or a clearly better way exists, say so in a line and take the way you would recommend.";
|
|
29
|
-
// Deliberating is chosen apart from the map, and names no worker, since the person may turn the council off (ADR 0103, 6)
|
|
30
|
-
|
|
29
|
+
// Deliberating is chosen apart from the map, and names no worker, since the person may turn the council off (ADR 0103, 6);
|
|
30
|
+
// a guide in the prompt, such as kvvideo's, may say when to (ADR 0117, 18).
|
|
31
|
+
const deliberate = "Deliberate. Only when the person asks for the approaches to be debated, or a guide in your prompt says when to: once you understood the request and have the person's answers, and before any map or change, hand it in one `delegate run` to the worker of the `delegate` connector that debates approaches, when its entry lists one, briefed with the goal, what done looks like, the facts and paths you found, the constraints, and the person's answers. Check its final answer against what you read, then build on it: the map's steps and details when your path has a map, or the work itself when it doesn't. Deliberating and mapping are separate choices, and deliberate once per request, not per step.";
|
|
31
32
|
const mapStart = "Map. Only when your path needs one, after you understood the request, looked at what exists, and have your answers, and before you change anything: never in your first reply, because a map made before you looked is a guess. The map is the implementation plan the person reads and agrees to, so make it detailed, not an outline; the `execution-map` entry below says how to set it with its steps' details in one call, and keep it true. Choose for each step whoever does it best and fastest: yourself, with a connector, for an ordinary or small change, or a worker of the `delegate` connector whose description fits when the step needs that skill.";
|
|
32
33
|
const understood = 'say in a few lines what you understood (the goal, what done looks like, what stays as it is, and the choices you made for the person)';
|
|
33
34
|
const agreeAsking = `Once every step has details (its undetailed list is empty), and before you start any step, get the person's agreement. When they already told you to go ahead with what the map does, ${understood} and start. Otherwise call \`ask choice\` with other set to true: its question says those few lines, then asks whether to start, the option that starts first and one that changes the plan; when they ask for changes, set the map again, detail what changed, and ask again. A map set again with a change to what the person gets (the goal, what done looks like, what stays as it is, stored data, or what could go wrong) needs their agreement again; a change inside the plan (who does a step, the order, a step split or retried, or a worker reassigned) or of a step's status needs none: say what changed in one line.`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"working-method.js","sourceRoot":"","sources":["../../src/prompt/working-method.ts"],"names":[],"mappings":"AAAA,mMAAmM;AACnM,sJAAsJ;AACtJ,qJAAqJ;AACrJ,6EAA6E;AAQ7E,8EAA8E;AAC9E,MAAM,QAAQ,GAAG,4KAA4K,CAAC;AAC9L,+FAA+F;AAC/F,MAAM,IAAI,GAAG,8IAA8I,CAAC;AAC5J,MAAM,QAAQ,GAAG,6IAA6I,CAAC;AAC/J,MAAM,OAAO,GAAG,gIAAgI,CAAC;AACjJ,MAAM,QAAQ,GAAG,qLAAqL,CAAC;AACvM,MAAM,QAAQ,GACZ,snBAAsnB,CAAC;AACznB,MAAM,OAAO,GAAG,ybAAyb,CAAC;AAC1c,MAAM,SAAS,GAAG,uLAAuL,CAAC;AAC1M,MAAM,MAAM,GAAG,qFAAqF,CAAC;AACrG,MAAM,OAAO,GAAG,4UAA4U,CAAC;AAC7V,2GAA2G;AAC3G,MAAM,OAAO,GACX,m3BAAm3B,CAAC;AACt3B,uHAAuH;AACvH,MAAM,MAAM,GACV,icAAic,CAAC;AACpc,mGAAmG;AACnG,MAAM,SAAS,GACb,qSAAqS,CAAC;AACxS,MAAM,iBAAiB,GACrB,iUAAiU,CAAC;AAEpU,MAAM,IAAI,GACR,qvBAAqvB,CAAC;AACxvB,MAAM,UAAU,GACd,u2BAAu2B,CAAC;AAC12B,gEAAgE;AAChE,MAAM,aAAa,GACjB,i4BAAi4B,CAAC;AACp4B,MAAM,eAAe,GACnB,ubAAub,CAAC;AAC1b,2HAA2H;AAC3H,MAAM,UAAU,GACd,
|
|
1
|
+
{"version":3,"file":"working-method.js","sourceRoot":"","sources":["../../src/prompt/working-method.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { TxRecords } from '../store/collections.ts';
|
|
2
|
+
/** The `nextSeq` of the chat at the root of `sessionId`, or `null` when its chat is gone or being deleted. */
|
|
3
|
+
export declare function chatSeqInTx(store: TxRecords, sessionId: string): number | null;
|
|
4
|
+
//# sourceMappingURL=chat-mark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-mark.d.ts","sourceRoot":"","sources":["../../src/rewind/chat-mark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMzD,8GAA8G;AAC9G,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE9E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { executionRootInTx } from "../sessions/execution-root.js";
|
|
2
|
+
// What came after a message (ADR 0118, 4): a record keeps its chat's `nextSeq` from the transaction that made it, so one
|
|
3
|
+
// made after the message has `atSeq` above the message's `seq`, whatever the clocks say.
|
|
4
|
+
/** The `nextSeq` of the chat at the root of `sessionId`, or `null` when its chat is gone or being deleted. */
|
|
5
|
+
export function chatSeqInTx(store, sessionId) {
|
|
6
|
+
return executionRootInTx(store, sessionId)?.nextSeq ?? null;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=chat-mark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-mark.js","sourceRoot":"","sources":["../../src/rewind/chat-mark.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,yHAAyH;AACzH,yFAAyF;AAEzF,8GAA8G;AAC9G,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,SAAiB;IAC7D,OAAO,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-rewind.d.ts","sourceRoot":"","sources":["../../src/rewind/register-rewind.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,KAAK,GAAG,EAAe,MAAM,YAAY,CAAC;AAsCtD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAkD7C"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { realpath } from 'node:fs/promises';
|
|
2
|
+
import { z } from '@kvman/sdk';
|
|
3
|
+
import { splitAttachments } from "../messages/attachments.js";
|
|
4
|
+
import { receiveMessage } from "../messages/receive-message.js";
|
|
5
|
+
import { acknowledged, sentBy } from "../messages/send-receipt.js";
|
|
6
|
+
import { invalid } from "../problems.js";
|
|
7
|
+
import { ownSession, userOnly } from "../sessions/session-lookup.js";
|
|
8
|
+
import { records, txRecords } from "../store/collections.js";
|
|
9
|
+
import { blockOf } from "../turns/history.js";
|
|
10
|
+
import { textOf } from "../turns/model-context.js";
|
|
11
|
+
import { rewindChat } from "./rewind-chat.js";
|
|
12
|
+
import { changedAfter, decideFile, treeOf } from "./rewind-files.js";
|
|
13
|
+
import { editedMessage, rewindableMessage, rewoundChat, undoneMessage } from "./rewind-target.js";
|
|
14
|
+
// Editing and undoing a message (plan 08 §8.6, ADR 0118, 6): the preview of what a rewind would do to files, the edit
|
|
15
|
+
// that rewinds and sends in its place, and the undo that rewinds and gives the message back for the send box.
|
|
16
|
+
const leftSchema = z.object({ path: z.string(), reason: z.enum(['changedSince', 'tooLarge']) });
|
|
17
|
+
const rewoundShape = { restored: z.array(z.string()), deleted: z.array(z.string()), left: z.array(leftSchema) };
|
|
18
|
+
const markOf = (message) => ({ seq: message.seq, createdAt: message.createdAt });
|
|
19
|
+
// The stored messages from the message on, by block (a block holds at most 500), and the queued ones.
|
|
20
|
+
async function removedCount(ctx, chat, seq) {
|
|
21
|
+
const store = records(ctx.store);
|
|
22
|
+
const first = (await store.messages.find({ sessionId: chat.id, block: blockOf(seq) }, { limit: 1000 })).filter((message) => message.seq >= seq).length;
|
|
23
|
+
let later = 0;
|
|
24
|
+
for (let block = blockOf(seq) + 1; block <= blockOf(Math.max(chat.nextSeq - 1, 0)); block += 1)
|
|
25
|
+
later += await store.messages.count({ sessionId: chat.id, block });
|
|
26
|
+
return first + later + (await store.queued.count({ sessionId: chat.id }));
|
|
27
|
+
}
|
|
28
|
+
// What an edit may keep of the message: its own images and attached files, never new ones.
|
|
29
|
+
function requireKept(message, fileIds, attachments) {
|
|
30
|
+
const images = message.fileIds ?? [];
|
|
31
|
+
const saved = splitAttachments(textOf(message.content['content'])).saved;
|
|
32
|
+
const added = [...fileIds.filter((id) => !images.includes(id)), ...attachments.filter((name) => !saved.includes(name))];
|
|
33
|
+
if (added.length > 0)
|
|
34
|
+
throw invalid(`An edit keeps the message's own files and adds none: ${added.join(', ')}.`, { files: added });
|
|
35
|
+
}
|
|
36
|
+
export function registerRewind(ctx) {
|
|
37
|
+
ctx.registerQuery('kvcoder.rewind.files.list', {
|
|
38
|
+
description: "Lists what rewinding a chat to just before a message would do to the files kvman changed after it, how many messages would go, and whether the chat is busy; changes nothing.",
|
|
39
|
+
input: z.object({ sessionId: z.string(), seq: z.number().int().nonnegative() }),
|
|
40
|
+
output: z.object({ files: z.array(z.object({ path: z.string(), state: z.enum(['restore', 'delete', 'changedSince', 'tooLarge']) })), messages: z.number().int(), running: z.boolean() }),
|
|
41
|
+
public: true,
|
|
42
|
+
handle: async ({ sessionId, seq }) => {
|
|
43
|
+
userOnly(ctx, 'kvcoder.rewind.files.list');
|
|
44
|
+
const chat = await rewoundChat(ctx, sessionId);
|
|
45
|
+
const mark = markOf(await rewindableMessage(ctx, chat, seq));
|
|
46
|
+
const sessions = await treeOf(ctx, chat.id);
|
|
47
|
+
const base = await realpath(ctx.job.workspace.path);
|
|
48
|
+
const paths = await changedAfter(ctx, sessions, mark);
|
|
49
|
+
const files = await ctx.store.transaction((tx) => paths.flatMap((real) => decideFile(txRecords(tx), sessions, real, mark, base) ?? []));
|
|
50
|
+
return { files: files.sort((first, second) => first.path.localeCompare(second.path)), messages: await removedCount(ctx, chat, seq), running: chat.status !== 'idle' };
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
ctx.registerCommand('kvcoder.message.edit', {
|
|
54
|
+
description: "Rewinds a chat to just before a message the person typed, with kvman's file changes after it when files is true, and sends the new text in its place.",
|
|
55
|
+
input: z.object({ sessionId: z.string(), seq: z.number().int().nonnegative(), text: z.string().min(1), fileIds: z.array(z.string()).exactOptional(), attachments: z.array(z.string().min(1)).exactOptional(), files: z.boolean(), sendId: z.string().min(1).max(100).exactOptional() }),
|
|
56
|
+
output: z.object(rewoundShape),
|
|
57
|
+
public: true,
|
|
58
|
+
retries: 0,
|
|
59
|
+
handle: async ({ sessionId, seq, text, fileIds, attachments, files, sendId }) => {
|
|
60
|
+
userOnly(ctx, 'kvcoder.message.edit');
|
|
61
|
+
const chat = await rewoundChat(ctx, sessionId);
|
|
62
|
+
// A repeat is known by its receipt before anything is rewound (ADR 0048).
|
|
63
|
+
if (sendId !== undefined && acknowledged((await records(ctx.store).sendReceipts.find({ sendId }, { limit: 1 }))[0], sentBy(sendId, chat.id, text, fileIds ?? [], attachments ?? [])))
|
|
64
|
+
return { restored: [], deleted: [], left: [] };
|
|
65
|
+
const message = await editedMessage(ctx, chat, seq);
|
|
66
|
+
requireKept(message, fileIds ?? [], attachments ?? []);
|
|
67
|
+
const rewound = await rewindChat(ctx, chat, message, files);
|
|
68
|
+
await receiveMessage(ctx, await ownSession(ctx, chat.id), { text, fileIds: fileIds ?? [], attachments, source: { kind: 'user' }, mayStart: true, sendId }, true);
|
|
69
|
+
return rewound;
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
ctx.registerCommand('kvcoder.message.undo', {
|
|
73
|
+
description: "Rewinds a chat to just before its latest message the person typed or a slash command sent, with kvman's file changes after it when files is true, and returns that message for the send box.",
|
|
74
|
+
input: z.object({ sessionId: z.string(), files: z.boolean() }),
|
|
75
|
+
output: z.object({ text: z.string(), fileIds: z.array(z.string()), fileNames: z.array(z.string()), attachments: z.array(z.string()), ...rewoundShape }),
|
|
76
|
+
public: true,
|
|
77
|
+
retries: 0,
|
|
78
|
+
handle: async ({ sessionId, files }) => {
|
|
79
|
+
userOnly(ctx, 'kvcoder.message.undo');
|
|
80
|
+
const chat = await rewoundChat(ctx, sessionId);
|
|
81
|
+
const message = await undoneMessage(ctx, chat);
|
|
82
|
+
const { typed, saved } = splitAttachments(textOf(message.content['content']));
|
|
83
|
+
const rewound = await rewindChat(ctx, chat, message, files);
|
|
84
|
+
return { text: typed, fileIds: message.fileIds ?? [], fileNames: message.fileNames ?? [], attachments: saved, ...rewound };
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=register-rewind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-rewind.js","sourceRoot":"","sources":["../../src/rewind/register-rewind.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Ctx, Stored } from '@kvman/sdk';
|
|
2
|
+
import type { MessageDoc, SessionDoc } from '../schemas/records.ts';
|
|
3
|
+
export type Rewound = {
|
|
4
|
+
restored: string[];
|
|
5
|
+
deleted: string[];
|
|
6
|
+
left: {
|
|
7
|
+
path: string;
|
|
8
|
+
reason: 'changedSince' | 'tooLarge';
|
|
9
|
+
}[];
|
|
10
|
+
};
|
|
11
|
+
/** Rewinds the chat to just before `message`; with `files`, kvman's own changes after it go back too. */
|
|
12
|
+
export declare function rewindChat(ctx: Ctx, chat: Stored<SessionDoc>, message: Stored<MessageDoc>, files: boolean): Promise<Rewound>;
|
|
13
|
+
//# sourceMappingURL=rewind-chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewind-chat.d.ts","sourceRoot":"","sources":["../../src/rewind/rewind-chat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAapE,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAA;KAAE,EAAE,CAAA;CAAE,CAAC;AAuD/H,yGAAyG;AACzG,wBAAsB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAWlI"}
|