@plurnk/plurnk-service 0.6.0 → 0.8.0
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/SPEC.md +125 -74
- package/bin/plurnk-service.ts +132 -0
- package/dist/Paths.d.ts +8 -0
- package/dist/Paths.d.ts.map +1 -0
- package/dist/Paths.js +47 -0
- package/dist/Paths.js.map +1 -0
- package/dist/content/index.d.ts +9 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +10 -0
- package/dist/content/index.js.map +1 -0
- package/dist/content/line-marker.d.ts +26 -0
- package/dist/content/line-marker.d.ts.map +1 -0
- package/dist/content/line-marker.js +323 -0
- package/dist/content/line-marker.js.map +1 -0
- package/dist/content/matcher.d.ts +15 -0
- package/dist/content/matcher.d.ts.map +1 -0
- package/dist/content/matcher.js +112 -0
- package/dist/content/matcher.js.map +1 -0
- package/dist/content/mimetype-binary.d.ts +9 -0
- package/dist/content/mimetype-binary.d.ts.map +1 -0
- package/dist/content/mimetype-binary.js +86 -0
- package/dist/content/mimetype-binary.js.map +1 -0
- package/dist/content/path-mimetype.d.ts +6 -0
- package/dist/content/path-mimetype.d.ts.map +1 -0
- package/dist/content/path-mimetype.js +49 -0
- package/dist/content/path-mimetype.js.map +1 -0
- package/dist/content/read-resolve.d.ts +20 -0
- package/dist/content/read-resolve.d.ts.map +1 -0
- package/dist/content/read-resolve.js +60 -0
- package/dist/content/read-resolve.js.map +1 -0
- package/dist/core/ChannelWrite.d.ts +33 -30
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +43 -41
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/Engine.d.ts +14 -10
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +272 -94
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/EnvFlags.d.ts +6 -3
- package/dist/core/EnvFlags.d.ts.map +1 -1
- package/dist/core/EnvFlags.js +62 -60
- package/dist/core/EnvFlags.js.map +1 -1
- package/dist/core/PluginLoader.d.ts +6 -3
- package/dist/core/PluginLoader.d.ts.map +1 -1
- package/dist/core/PluginLoader.js +77 -73
- package/dist/core/PluginLoader.js.map +1 -1
- package/dist/core/ProviderInstantiate.d.ts +4 -2
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +23 -22
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +1 -1
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +3 -3
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/git-membership.d.ts +8 -0
- package/dist/core/git-membership.d.ts.map +1 -0
- package/dist/core/git-membership.js +125 -0
- package/dist/core/git-membership.js.map +1 -0
- package/dist/core/packet-wire.d.ts +47 -6
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +376 -312
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/resolveForLoop.d.ts +14 -0
- package/dist/core/resolveForLoop.d.ts.map +1 -0
- package/dist/core/resolveForLoop.js +34 -0
- package/dist/core/resolveForLoop.js.map +1 -0
- package/dist/core/results.d.ts +40 -0
- package/dist/core/results.d.ts.map +1 -0
- package/dist/core/results.js +52 -0
- package/dist/core/results.js.map +1 -0
- package/dist/core/scheme-types.d.ts +6 -3
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/scheme-types.js +4 -4
- package/dist/core/scheme-types.js.map +1 -1
- package/dist/core/types.d.ts +27 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +17 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +1 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -43
- package/dist/index.js.map +1 -1
- package/dist/schemes/Exec.d.ts +1 -0
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +101 -94
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/File.d.ts +0 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +32 -66
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Known.d.ts.map +1 -1
- package/dist/schemes/Known.js +13 -13
- package/dist/schemes/Known.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +8 -52
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Plurnk.d.ts.map +1 -1
- package/dist/schemes/Plurnk.js +13 -13
- package/dist/schemes/Plurnk.js.map +1 -1
- package/dist/schemes/Skill.d.ts.map +1 -1
- package/dist/schemes/Skill.js +13 -13
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/Unknown.d.ts.map +1 -1
- package/dist/schemes/Unknown.js +13 -13
- package/dist/schemes/Unknown.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +5 -3
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +55 -50
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-find.d.ts +10 -3
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +99 -77
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-manifest.d.ts +6 -0
- package/dist/schemes/_entry-manifest.d.ts.map +1 -0
- package/dist/schemes/_entry-manifest.js +45 -0
- package/dist/schemes/_entry-manifest.js.map +1 -0
- package/dist/schemes/_entry-ops.d.ts +7 -4
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +198 -316
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-send.d.ts +4 -1
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +57 -55
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/server/ClientConnection.js +3 -3
- package/dist/server/ClientConnection.js.map +1 -1
- package/dist/server/Daemon.d.ts +5 -5
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +221 -176
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/clientTurn.d.ts +4 -1
- package/dist/server/clientTurn.d.ts.map +1 -1
- package/dist/server/clientTurn.js +19 -17
- package/dist/server/clientTurn.js.map +1 -1
- package/dist/server/dsl.d.ts +19 -16
- package/dist/server/dsl.d.ts.map +1 -1
- package/dist/server/dsl.js +127 -105
- package/dist/server/dsl.js.map +1 -1
- package/dist/server/envelope.d.ts +22 -19
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +116 -102
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/logEntry.d.ts +4 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +41 -39
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/methods/_dispatchAsClient.d.ts +3 -1
- package/dist/server/methods/_dispatchAsClient.d.ts.map +1 -1
- package/dist/server/methods/_dispatchAsClient.js +31 -29
- package/dist/server/methods/_dispatchAsClient.js.map +1 -1
- package/dist/server/methods/discover.d.ts +3 -1
- package/dist/server/methods/discover.d.ts.map +1 -1
- package/dist/server/methods/discover.js +8 -6
- package/dist/server/methods/discover.js.map +1 -1
- package/dist/server/methods/entry_read.d.ts +4 -1
- package/dist/server/methods/entry_read.d.ts.map +1 -1
- package/dist/server/methods/entry_read.js +54 -52
- package/dist/server/methods/entry_read.js.map +1 -1
- package/dist/server/methods/log_read.d.ts +4 -1
- package/dist/server/methods/log_read.d.ts.map +1 -1
- package/dist/server/methods/log_read.js +38 -36
- package/dist/server/methods/log_read.js.map +1 -1
- package/dist/server/methods/loop_cancel.d.ts +3 -1
- package/dist/server/methods/loop_cancel.d.ts.map +1 -1
- package/dist/server/methods/loop_cancel.js +19 -17
- package/dist/server/methods/loop_cancel.js.map +1 -1
- package/dist/server/methods/loop_resolve.d.ts +3 -1
- package/dist/server/methods/loop_resolve.d.ts.map +1 -1
- package/dist/server/methods/loop_resolve.js +42 -40
- package/dist/server/methods/loop_resolve.js.map +1 -1
- package/dist/server/methods/loop_run.d.ts +3 -1
- package/dist/server/methods/loop_run.d.ts.map +1 -1
- package/dist/server/methods/loop_run.js +104 -102
- package/dist/server/methods/loop_run.js.map +1 -1
- package/dist/server/methods/op_copy.d.ts +3 -1
- package/dist/server/methods/op_copy.d.ts.map +1 -1
- package/dist/server/methods/op_copy.js +25 -23
- package/dist/server/methods/op_copy.js.map +1 -1
- package/dist/server/methods/op_dispatch.d.ts +3 -1
- package/dist/server/methods/op_dispatch.d.ts.map +1 -1
- package/dist/server/methods/op_dispatch.js +18 -16
- package/dist/server/methods/op_dispatch.js.map +1 -1
- package/dist/server/methods/op_edit.d.ts +3 -1
- package/dist/server/methods/op_edit.d.ts.map +1 -1
- package/dist/server/methods/op_edit.js +23 -21
- package/dist/server/methods/op_edit.js.map +1 -1
- package/dist/server/methods/op_exec.d.ts +3 -1
- package/dist/server/methods/op_exec.d.ts.map +1 -1
- package/dist/server/methods/op_exec.js +20 -18
- package/dist/server/methods/op_exec.js.map +1 -1
- package/dist/server/methods/op_find.d.ts +3 -1
- package/dist/server/methods/op_find.d.ts.map +1 -1
- package/dist/server/methods/op_find.js +23 -21
- package/dist/server/methods/op_find.js.map +1 -1
- package/dist/server/methods/op_hide.d.ts +3 -1
- package/dist/server/methods/op_hide.d.ts.map +1 -1
- package/dist/server/methods/op_hide.js +23 -21
- package/dist/server/methods/op_hide.js.map +1 -1
- package/dist/server/methods/op_move.d.ts +3 -1
- package/dist/server/methods/op_move.d.ts.map +1 -1
- package/dist/server/methods/op_move.js +23 -21
- package/dist/server/methods/op_move.js.map +1 -1
- package/dist/server/methods/op_parse.d.ts +3 -1
- package/dist/server/methods/op_parse.d.ts.map +1 -1
- package/dist/server/methods/op_parse.js +24 -22
- package/dist/server/methods/op_parse.js.map +1 -1
- package/dist/server/methods/op_read.d.ts +3 -1
- package/dist/server/methods/op_read.d.ts.map +1 -1
- package/dist/server/methods/op_read.js +23 -21
- package/dist/server/methods/op_read.js.map +1 -1
- package/dist/server/methods/op_send.d.ts +3 -1
- package/dist/server/methods/op_send.d.ts.map +1 -1
- package/dist/server/methods/op_send.js +22 -20
- package/dist/server/methods/op_send.js.map +1 -1
- package/dist/server/methods/op_show.d.ts +3 -1
- package/dist/server/methods/op_show.d.ts.map +1 -1
- package/dist/server/methods/op_show.js +23 -21
- package/dist/server/methods/op_show.js.map +1 -1
- package/dist/server/methods/ping.d.ts +3 -1
- package/dist/server/methods/ping.d.ts.map +1 -1
- package/dist/server/methods/ping.js +8 -6
- package/dist/server/methods/ping.js.map +1 -1
- package/dist/server/methods/providers_list.d.ts +3 -1
- package/dist/server/methods/providers_list.d.ts.map +1 -1
- package/dist/server/methods/providers_list.js +19 -17
- package/dist/server/methods/providers_list.js.map +1 -1
- package/dist/server/methods/session_attach.d.ts +3 -1
- package/dist/server/methods/session_attach.d.ts.map +1 -1
- package/dist/server/methods/session_attach.js +43 -41
- package/dist/server/methods/session_attach.js.map +1 -1
- package/dist/server/methods/session_create.d.ts +3 -1
- package/dist/server/methods/session_create.d.ts.map +1 -1
- package/dist/server/methods/session_create.js +51 -49
- package/dist/server/methods/session_create.js.map +1 -1
- package/dist/server/methods/session_list.d.ts +3 -1
- package/dist/server/methods/session_list.d.ts.map +1 -1
- package/dist/server/methods/session_list.js +9 -7
- package/dist/server/methods/session_list.js.map +1 -1
- package/dist/server/methods/session_runs.d.ts +3 -1
- package/dist/server/methods/session_runs.d.ts.map +1 -1
- package/dist/server/methods/session_runs.js +19 -17
- package/dist/server/methods/session_runs.js.map +1 -1
- package/dist/server/methods/session_set_persona.d.ts +3 -1
- package/dist/server/methods/session_set_persona.d.ts.map +1 -1
- package/dist/server/methods/session_set_persona.js +28 -26
- package/dist/server/methods/session_set_persona.js.map +1 -1
- package/dist/server/methods/session_set_root.d.ts +3 -1
- package/dist/server/methods/session_set_root.d.ts.map +1 -1
- package/dist/server/methods/session_set_root.js +31 -29
- package/dist/server/methods/session_set_root.js.map +1 -1
- package/dist/server/yolo.d.ts +3 -1
- package/dist/server/yolo.d.ts.map +1 -1
- package/dist/server/yolo.js +15 -13
- package/dist/server/yolo.js.map +1 -1
- package/package.json +77 -32
- package/bin/plurnk-service.js +0 -112
- /package/migrations/{001_schema.sql → 0000-00-00.01_schema.sql} +0 -0
package/dist/server/envelope.js
CHANGED
|
@@ -5,112 +5,126 @@
|
|
|
5
5
|
// or the daemon auto-creates one on first requiresInit RPC. In both cases
|
|
6
6
|
// the daemon opens a NEW run within the session and a NEW client loop within
|
|
7
7
|
// that run; the client loop closes on disconnect.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
//
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export const generateRunName = () => tsName("run");
|
|
18
|
-
export const createClientEnvelope = async (db, opts = {}) => {
|
|
19
|
-
const name = opts.name ?? tsName(opts.prefix ?? "session");
|
|
20
|
-
const projectRoot = opts.projectRoot ?? null;
|
|
21
|
-
const persona = opts.persona ?? null;
|
|
22
|
-
const session = await db.envelope_insert_session.get({ name, project_root: projectRoot, persona });
|
|
23
|
-
if (session === undefined)
|
|
24
|
-
throw new Error("createClientEnvelope: session insert returned no row");
|
|
25
|
-
const runName = generateRunName();
|
|
26
|
-
const run = await db.envelope_insert_run.get({ session_id: session.id, name: runName, persona: null });
|
|
27
|
-
if (run === undefined)
|
|
28
|
-
throw new Error("createClientEnvelope: run insert returned no row");
|
|
29
|
-
return {
|
|
30
|
-
sessionId: session.id, sessionName: session.name,
|
|
31
|
-
projectRoot: session.project_root, sessionPersona: session.persona,
|
|
32
|
-
runId: run.id, runName: run.name, runPersona: run.persona,
|
|
33
|
-
clientLoopId: null,
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
// Resolve the run inside a session. Three modes:
|
|
37
|
-
// - opts.runId given: lookup by id, verify session ownership (else throw).
|
|
38
|
-
// - opts.runName given: lookup by (sessionId, name); reuse if found, create otherwise.
|
|
39
|
-
// - neither: create a new run with an auto-generated name (current behavior).
|
|
40
|
-
// `runId` and `runName` are alternatives — passing both throws (use one).
|
|
41
|
-
// persona handling: only set when creating a NEW run. Reusing an existing
|
|
42
|
-
// run (by runId or by runName matching an existing row) carries forward
|
|
43
|
-
// whatever persona was stored on that row — overrides target NEW runs.
|
|
44
|
-
const resolveRun = async (db, sessionId, opts) => {
|
|
45
|
-
if (opts.runId !== undefined && opts.runName !== undefined) {
|
|
46
|
-
throw new Error("attachToSession: pass runId OR runName, not both");
|
|
8
|
+
import GitMembership from "../core/git-membership.js";
|
|
9
|
+
export default class Envelope {
|
|
10
|
+
// Grammar 0.5.0 (#10): Session and Run carry user-renameable string names.
|
|
11
|
+
// Defaults are `session-{unixtime}` and `run-{unixtime}`; random suffix avoids
|
|
12
|
+
// collisions when two creations land in the same second.
|
|
13
|
+
static #tsName(prefix) {
|
|
14
|
+
const ts = Math.floor(Date.now() / 1000);
|
|
15
|
+
const rand = Math.floor(Math.random() * 0xFFFFFF).toString(36).padStart(4, "0");
|
|
16
|
+
return `${prefix}-${ts}-${rand}`;
|
|
47
17
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (existing === undefined)
|
|
51
|
-
throw new Error(`run ${opts.runId} not found`);
|
|
52
|
-
if (existing.session_id !== sessionId)
|
|
53
|
-
throw new Error(`run ${opts.runId} belongs to session ${existing.session_id}, not ${sessionId}`);
|
|
54
|
-
return { id: existing.id, name: existing.name, persona: existing.persona };
|
|
18
|
+
static generateSessionName() {
|
|
19
|
+
return Envelope.#tsName("session");
|
|
55
20
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
21
|
+
static generateRunName() {
|
|
22
|
+
return Envelope.#tsName("run");
|
|
23
|
+
}
|
|
24
|
+
static async createClientEnvelope(db, opts = {}) {
|
|
25
|
+
const name = opts.name ?? Envelope.#tsName(opts.prefix ?? "session");
|
|
26
|
+
const projectRoot = opts.projectRoot ?? null;
|
|
27
|
+
const persona = opts.persona ?? null;
|
|
28
|
+
const session = await db.envelope_insert_session.get({ name, project_root: projectRoot, persona });
|
|
29
|
+
if (session === undefined)
|
|
30
|
+
throw new Error("createClientEnvelope: session insert returned no row");
|
|
31
|
+
// SPEC §14.3 D4 — establish git-ls-files membership at workspace setup so
|
|
32
|
+
// tracked files are members before the first op. No-op when projectRoot is
|
|
33
|
+
// null (headless) or not a git working tree.
|
|
34
|
+
await GitMembership.resolveGitMembership(db, session.id, undefined);
|
|
35
|
+
const runName = Envelope.generateRunName();
|
|
36
|
+
const run = await db.envelope_insert_run.get({ session_id: session.id, name: runName, persona: null });
|
|
37
|
+
if (run === undefined)
|
|
38
|
+
throw new Error("createClientEnvelope: run insert returned no row");
|
|
39
|
+
return {
|
|
40
|
+
sessionId: session.id, sessionName: session.name,
|
|
41
|
+
projectRoot: session.project_root, sessionPersona: session.persona,
|
|
42
|
+
runId: run.id, runName: run.name, runPersona: run.persona,
|
|
43
|
+
clientLoopId: null,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
// Resolve the run inside a session. Three modes:
|
|
47
|
+
// - opts.runId given: lookup by id, verify session ownership (else throw).
|
|
48
|
+
// - opts.runName given: lookup by (sessionId, name); reuse if found, create otherwise.
|
|
49
|
+
// - neither: create a new run with an auto-generated name (current behavior).
|
|
50
|
+
// `runId` and `runName` are alternatives — passing both throws (use one).
|
|
51
|
+
// persona handling: only set when creating a NEW run. Reusing an existing
|
|
52
|
+
// run (by runId or by runName matching an existing row) carries forward
|
|
53
|
+
// whatever persona was stored on that row — overrides target NEW runs.
|
|
54
|
+
static async #resolveRun(db, sessionId, opts) {
|
|
55
|
+
if (opts.runId !== undefined && opts.runName !== undefined) {
|
|
56
|
+
throw new Error("attachToSession: pass runId OR runName, not both");
|
|
57
|
+
}
|
|
58
|
+
if (opts.runId !== undefined) {
|
|
59
|
+
const existing = await db.envelope_get_run_by_id.get({ id: opts.runId });
|
|
60
|
+
if (existing === undefined)
|
|
61
|
+
throw new Error(`run ${opts.runId} not found`);
|
|
62
|
+
if (existing.session_id !== sessionId)
|
|
63
|
+
throw new Error(`run ${opts.runId} belongs to session ${existing.session_id}, not ${sessionId}`);
|
|
64
|
+
return { id: existing.id, name: existing.name, persona: existing.persona };
|
|
65
|
+
}
|
|
66
|
+
if (opts.runName !== undefined) {
|
|
67
|
+
const existing = await db.envelope_get_run_by_name.get({ session_id: sessionId, name: opts.runName });
|
|
68
|
+
if (existing !== undefined)
|
|
69
|
+
return existing;
|
|
70
|
+
const created = await db.envelope_insert_run.get({ session_id: sessionId, name: opts.runName, persona: opts.persona ?? null });
|
|
71
|
+
if (created === undefined)
|
|
72
|
+
throw new Error("resolveRun: run insert returned no row");
|
|
73
|
+
return created;
|
|
74
|
+
}
|
|
75
|
+
const created = await db.envelope_insert_run.get({ session_id: sessionId, name: Envelope.generateRunName(), persona: opts.persona ?? null });
|
|
61
76
|
if (created === undefined)
|
|
62
77
|
throw new Error("resolveRun: run insert returned no row");
|
|
63
78
|
return created;
|
|
64
79
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
//
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
};
|
|
80
|
+
static async attachToSession(db, sessionId, opts = {}) {
|
|
81
|
+
const session = await db.envelope_get_session.get({ id: sessionId });
|
|
82
|
+
if (session === undefined)
|
|
83
|
+
throw new Error(`session ${sessionId} not found`);
|
|
84
|
+
const run = await Envelope.#resolveRun(db, session.id, opts);
|
|
85
|
+
return {
|
|
86
|
+
sessionId: session.id, sessionName: session.name,
|
|
87
|
+
projectRoot: session.project_root, sessionPersona: session.persona,
|
|
88
|
+
runId: run.id, runName: run.name, runPersona: run.persona,
|
|
89
|
+
clientLoopId: null,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
// Lazy client-loop allocator. Called from dispatchAsClient on the first
|
|
93
|
+
// client-origin op for this connection; subsequent ops reuse the same
|
|
94
|
+
// loop until the connection closes.
|
|
95
|
+
static async ensureClientLoop(db, runId) {
|
|
96
|
+
const loop = await db.envelope_insert_client_loop.get({ run_id: runId });
|
|
97
|
+
if (loop === undefined)
|
|
98
|
+
throw new Error("ensureClientLoop: loop insert returned no row");
|
|
99
|
+
return loop.id;
|
|
100
|
+
}
|
|
101
|
+
static async listRunsForSession(db, sessionId) {
|
|
102
|
+
return await db.envelope_list_runs_for_session.all({ session_id: sessionId });
|
|
103
|
+
}
|
|
104
|
+
static async closeClientLoop(db, loopId, status) {
|
|
105
|
+
await db.envelope_close_client_loop.run({ status, loop_id: loopId });
|
|
106
|
+
}
|
|
107
|
+
static async listSessions(db) {
|
|
108
|
+
return await db.envelope_list_sessions.all();
|
|
109
|
+
}
|
|
110
|
+
// Updates sessions.project_root for an existing session and returns the new
|
|
111
|
+
// value. Throws if the session does not exist. Used by session.set_root (F.1).
|
|
112
|
+
static async updateSessionProjectRoot(db, sessionId, projectRoot) {
|
|
113
|
+
const row = await db.envelope_update_session_project_root.get({ id: sessionId, project_root: projectRoot });
|
|
114
|
+
if (row === undefined)
|
|
115
|
+
throw new Error(`session ${sessionId} not found`);
|
|
116
|
+
// SPEC §14.3 D4 — (re)establish git-ls-files membership when the workspace
|
|
117
|
+
// pointer changes. No-op on null (headless) or non-git roots.
|
|
118
|
+
await GitMembership.resolveGitMembership(db, sessionId, undefined);
|
|
119
|
+
return row.project_root;
|
|
120
|
+
}
|
|
121
|
+
// Updates sessions.persona. Mirrors updateSessionProjectRoot. Used by
|
|
122
|
+
// session.set_persona (issue #150).
|
|
123
|
+
static async updateSessionPersona(db, sessionId, persona) {
|
|
124
|
+
const row = await db.envelope_update_session_persona.get({ id: sessionId, persona });
|
|
125
|
+
if (row === undefined)
|
|
126
|
+
throw new Error(`session ${sessionId} not found`);
|
|
127
|
+
return row.persona;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
116
130
|
//# sourceMappingURL=envelope.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,0EAA0E;AAC1E,6EAA6E;AAC7E,kDAAkD;
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,5 +26,8 @@ export interface LogEntryWire {
|
|
|
26
26
|
status_rx: number;
|
|
27
27
|
tokens: number;
|
|
28
28
|
}
|
|
29
|
-
export
|
|
29
|
+
export default class LogEntry {
|
|
30
|
+
#private;
|
|
31
|
+
static fetchLogEntry(db: Db, id: number): Promise<LogEntryWire>;
|
|
32
|
+
}
|
|
30
33
|
//# sourceMappingURL=logEntry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEntry.d.ts","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"logEntry.d.ts","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,OAAO,QAAQ;;WAOZ,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CA+BxE"}
|
package/dist/server/logEntry.js
CHANGED
|
@@ -1,43 +1,45 @@
|
|
|
1
1
|
// Hydrate a log_entries row for the wire. Re-parses JSON-encoded columns
|
|
2
2
|
// (signal, params, lineMarker, tx, rx) so the client receives
|
|
3
3
|
// structured values, not opaque strings.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
};
|
|
4
|
+
export default class LogEntry {
|
|
5
|
+
static #parseJsonOrNull(v) {
|
|
6
|
+
if (v === null || v === undefined)
|
|
7
|
+
return null;
|
|
8
|
+
if (typeof v !== "string")
|
|
9
|
+
return v;
|
|
10
|
+
return JSON.parse(v);
|
|
11
|
+
}
|
|
12
|
+
static async fetchLogEntry(db, id) {
|
|
13
|
+
const row = await db.log_entry_by_id.get({ id });
|
|
14
|
+
if (row === undefined)
|
|
15
|
+
throw new Error(`log_entries row ${id} not found`);
|
|
16
|
+
return {
|
|
17
|
+
id: row.id,
|
|
18
|
+
run_id: row.run_id,
|
|
19
|
+
loop_id: row.loop_id,
|
|
20
|
+
turn_id: row.turn_id,
|
|
21
|
+
sequence: row.sequence,
|
|
22
|
+
at: row.at,
|
|
23
|
+
origin: row.origin,
|
|
24
|
+
op: row.op,
|
|
25
|
+
suffix: row.suffix,
|
|
26
|
+
signal: LogEntry.#parseJsonOrNull(row.signal),
|
|
27
|
+
scheme: row.scheme,
|
|
28
|
+
username: row.username,
|
|
29
|
+
password: row.password,
|
|
30
|
+
hostname: row.hostname,
|
|
31
|
+
port: row.port,
|
|
32
|
+
pathname: row.pathname,
|
|
33
|
+
params: LogEntry.#parseJsonOrNull(row.params),
|
|
34
|
+
fragment: row.fragment,
|
|
35
|
+
lineMarker: LogEntry.#parseJsonOrNull(row.lineMarker),
|
|
36
|
+
tx: LogEntry.#parseJsonOrNull(row.tx),
|
|
37
|
+
mimetype_tx: row.mimetype_tx,
|
|
38
|
+
rx: LogEntry.#parseJsonOrNull(row.rx),
|
|
39
|
+
mimetype_rx: row.mimetype_rx,
|
|
40
|
+
status_rx: row.status_rx,
|
|
41
|
+
tokens: row.tokens,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
43
45
|
//# sourceMappingURL=logEntry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,8DAA8D;AAC9D,yCAAyC;AAgCzC,MAAM,
|
|
1
|
+
{"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,8DAA8D;AAC9D,yCAAyC;AAgCzC,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB,MAAM,CAAC,gBAAgB,CAAC,CAAU;QAC9B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAM,EAAE,EAAU;QACzC,MAAM,GAAG,GAAG,MAAO,EAAE,CAAC,eAA8B,CAAC,GAAG,CAA0B,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1F,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;QAC1E,OAAO;YACH,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7C,MAAM,EAAE,GAAG,CAAC,MAAuB;YACnC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,IAAI,EAAE,GAAG,CAAC,IAAqB;YAC/B,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAC7C,QAAQ,EAAE,GAAG,CAAC,QAAyB;YACvC,UAAU,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;YACrD,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAqB;YACtC,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,WAAqB;YACtC,SAAS,EAAE,GAAG,CAAC,SAAmB;YAClC,MAAM,EAAE,GAAG,CAAC,MAAgB;SAC/B,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -4,5 +4,7 @@ export interface DispatchAsClientResult {
|
|
|
4
4
|
status: number;
|
|
5
5
|
[key: string]: unknown;
|
|
6
6
|
}
|
|
7
|
-
export
|
|
7
|
+
export default class DispatchAsClient {
|
|
8
|
+
static dispatch(ctx: HandlerContext, statement: PlurnkStatement): Promise<DispatchAsClientResult>;
|
|
9
|
+
}
|
|
8
10
|
//# sourceMappingURL=_dispatchAsClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_dispatchAsClient.d.ts","sourceRoot":"","sources":["../../../src/server/methods/_dispatchAsClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,
|
|
1
|
+
{"version":3,"file":"_dispatchAsClient.d.ts","sourceRoot":"","sources":["../../../src/server/methods/_dispatchAsClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,OAAO,gBAAgB;WACpB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC;CA2B1G"}
|
|
@@ -3,34 +3,36 @@
|
|
|
3
3
|
// loop, dispatches via Engine.dispatch, fires the log/entry notification
|
|
4
4
|
// to all clients attached to the same session, and returns the dispatch
|
|
5
5
|
// result for the RPC response.
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
import ClientTurn from "../clientTurn.js";
|
|
7
|
+
import LogEntry from "../logEntry.js";
|
|
8
|
+
import Envelope from "../envelope.js";
|
|
9
|
+
export default class DispatchAsClient {
|
|
10
|
+
static async dispatch(ctx, statement) {
|
|
11
|
+
if (ctx.session === null) {
|
|
12
|
+
throw new Error("dispatchAsClient requires an attached session");
|
|
13
|
+
}
|
|
14
|
+
const { sessionId, runId } = ctx.session;
|
|
15
|
+
if (ctx.session.clientLoopId === null) {
|
|
16
|
+
ctx.session.clientLoopId = await Envelope.ensureClientLoop(ctx.db, runId);
|
|
17
|
+
}
|
|
18
|
+
const clientLoopId = ctx.session.clientLoopId;
|
|
19
|
+
const turnId = await ClientTurn.insertClientTurn(ctx.db, clientLoopId);
|
|
20
|
+
const result = await ctx.engine.dispatch({
|
|
21
|
+
statement,
|
|
22
|
+
sessionId,
|
|
23
|
+
runId,
|
|
24
|
+
loopId: clientLoopId,
|
|
25
|
+
turnId,
|
|
26
|
+
sequence: 1,
|
|
27
|
+
origin: "client",
|
|
28
|
+
onDispatch: (logEntryId) => {
|
|
29
|
+
void (async () => {
|
|
30
|
+
const entry = await LogEntry.fetchLogEntry(ctx.db, logEntryId);
|
|
31
|
+
ctx.notify({ sessionId }, "log/entry", { entry });
|
|
32
|
+
})();
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
return result;
|
|
12
36
|
}
|
|
13
|
-
|
|
14
|
-
if (ctx.session.clientLoopId === null) {
|
|
15
|
-
ctx.session.clientLoopId = await ensureClientLoop(ctx.db, runId);
|
|
16
|
-
}
|
|
17
|
-
const clientLoopId = ctx.session.clientLoopId;
|
|
18
|
-
const turnId = await insertClientTurn(ctx.db, clientLoopId);
|
|
19
|
-
const result = await ctx.engine.dispatch({
|
|
20
|
-
statement,
|
|
21
|
-
sessionId,
|
|
22
|
-
runId,
|
|
23
|
-
loopId: clientLoopId,
|
|
24
|
-
turnId,
|
|
25
|
-
sequence: 1,
|
|
26
|
-
origin: "client",
|
|
27
|
-
onDispatch: (logEntryId) => {
|
|
28
|
-
void (async () => {
|
|
29
|
-
const entry = await fetchLogEntry(ctx.db, logEntryId);
|
|
30
|
-
ctx.notify({ sessionId }, "log/entry", { entry });
|
|
31
|
-
})();
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
return result;
|
|
35
|
-
};
|
|
37
|
+
}
|
|
36
38
|
//# sourceMappingURL=_dispatchAsClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_dispatchAsClient.js","sourceRoot":"","sources":["../../../src/server/methods/_dispatchAsClient.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yEAAyE;AACzE,yEAAyE;AACzE,wEAAwE;AACxE,+BAA+B;AAI/B,OAAO,
|
|
1
|
+
{"version":3,"file":"_dispatchAsClient.js","sourceRoot":"","sources":["../../../src/server/methods/_dispatchAsClient.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yEAAyE;AACzE,yEAAyE;AACzE,wEAAwE;AACxE,+BAA+B;AAI/B,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAOtC,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAmB,EAAE,SAA0B;QACjE,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QACzC,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YACpC,GAAG,CAAC,OAAO,CAAC,YAAY,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;YACrC,SAAS;YACT,SAAS;YACT,KAAK;YACL,MAAM,EAAE,YAAY;YACpB,MAAM;YACN,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE;gBACvB,KAAK,CAAC,KAAK,IAAI,EAAE;oBACb,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBAC/D,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACtD,CAAC,CAAC,EAAE,CAAC;YACT,CAAC;SACJ,CAAC,CAAC;QACH,OAAO,MAAgC,CAAC;IAC5C,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAEvD,
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAMlD"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
export
|
|
2
|
-
registry
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
1
|
+
export default class DiscoverMethod {
|
|
2
|
+
static register(registry) {
|
|
3
|
+
registry.registerMethod("discover", {
|
|
4
|
+
handler: async (_params, ctx) => ctx.registry.catalog(),
|
|
5
|
+
description: "Returns the protocol version plus the method and notification catalog.",
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
}
|
|
7
9
|
//# sourceMappingURL=discover.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE;YAChC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;YACvD,WAAW,EAAE,wEAAwE;SACxF,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type MethodRegistry from "../MethodRegistry.ts";
|
|
2
|
-
export
|
|
2
|
+
export default class EntryReadMethod {
|
|
3
|
+
#private;
|
|
4
|
+
static register(registry: MethodRegistry): void;
|
|
5
|
+
}
|
|
3
6
|
//# sourceMappingURL=entry_read.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry_read.d.ts","sourceRoot":"","sources":["../../../src/server/methods/entry_read.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"entry_read.d.ts","sourceRoot":"","sources":["../../../src/server/methods/entry_read.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAkBvD,MAAM,CAAC,OAAO,OAAO,eAAe;;IAgChC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAuBlD"}
|