@plurnk/plurnk-service 0.3.0 → 0.4.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 +35 -26
- package/dist/core/ChannelWrite.d.ts +10 -0
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/Engine.d.ts +9 -1
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +260 -53
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/line-marker.d.ts +23 -0
- package/dist/core/line-marker.d.ts.map +1 -0
- package/dist/core/line-marker.js +321 -0
- package/dist/core/line-marker.js.map +1 -0
- package/dist/core/matcher.d.ts +14 -0
- package/dist/core/matcher.d.ts.map +1 -0
- package/dist/core/matcher.js +195 -0
- package/dist/core/matcher.js.map +1 -0
- package/dist/core/mimetype-binary.d.ts +6 -0
- package/dist/core/mimetype-binary.d.ts.map +1 -0
- package/dist/core/mimetype-binary.js +82 -0
- package/dist/core/mimetype-binary.js.map +1 -0
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +97 -21
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/path-mimetype.d.ts +3 -0
- package/dist/core/path-mimetype.d.ts.map +1 -0
- package/dist/core/path-mimetype.js +47 -0
- package/dist/core/path-mimetype.js.map +1 -0
- package/dist/core/scheme-types.d.ts +5 -0
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/scheme-types.js.map +1 -1
- package/dist/schemes/Exec.d.ts +30 -1
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +229 -6
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/File.d.ts +4 -0
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +107 -23
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts +2 -0
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +82 -13
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Plurnk.js +3 -3
- package/dist/schemes/Plurnk.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +2 -0
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +1 -0
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +64 -15
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts +3 -0
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +268 -55
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +14 -7
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/server/ClientConnection.d.ts +3 -2
- package/dist/server/ClientConnection.d.ts.map +1 -1
- package/dist/server/ClientConnection.js +4 -1
- package/dist/server/ClientConnection.js.map +1 -1
- package/dist/server/Daemon.d.ts +40 -1
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +319 -1
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/MethodRegistry.d.ts +29 -0
- package/dist/server/MethodRegistry.d.ts.map +1 -1
- package/dist/server/MethodRegistry.js.map +1 -1
- package/dist/server/dsl.d.ts +2 -2
- package/dist/server/dsl.d.ts.map +1 -1
- package/dist/server/dsl.js +10 -10
- package/dist/server/dsl.js.map +1 -1
- package/dist/server/methods/entry_read.js +5 -5
- package/dist/server/methods/entry_read.js.map +1 -1
- package/dist/server/methods/loop_cancel.d.ts +3 -0
- package/dist/server/methods/loop_cancel.d.ts.map +1 -0
- package/dist/server/methods/loop_cancel.js +27 -0
- package/dist/server/methods/loop_cancel.js.map +1 -0
- package/dist/server/methods/loop_run.d.ts.map +1 -1
- package/dist/server/methods/loop_run.js +46 -47
- package/dist/server/methods/loop_run.js.map +1 -1
- package/dist/server/methods/op_edit.js +3 -3
- package/dist/server/methods/op_edit.js.map +1 -1
- package/dist/server/methods/op_hide.js +3 -3
- package/dist/server/methods/op_hide.js.map +1 -1
- package/dist/server/methods/op_read.js +3 -3
- package/dist/server/methods/op_read.js.map +1 -1
- package/dist/server/methods/op_show.js +3 -3
- package/dist/server/methods/op_show.js.map +1 -1
- package/migrations/001_schema.sql +1 -1
- package/package.json +5 -4
package/dist/server/dsl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsl.js","sourceRoot":"","sources":["../../src/server/dsl.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,sEAAsE;AACtE,iEAAiE;AACjE,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,8BAA8B;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,0EAA0E;AAC1E,0DAA0D;AAC1D,MAAM,YAAY,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAExG,MAAM,UAAU,GAAG,CAAC,IAA0B,EAAU,EAAE;IACtD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,EAA0B,EAAU,EAAE;IAC5D,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC/C,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,KAAK;QAAE,OAAO,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC;IACrE,OAAO,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAwB,EAAU,EAAE;IACpD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAClC,OAAO,IAAI,IAAI,GAAG,CAAC;AACvB,CAAC,CAAC;AAEF,yEAAyE;AACzE,uEAAuE;AACvE,4CAA4C;AAC5C,MAAM,YAAY,GAAG,CAAC,EAClB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"dsl.js","sourceRoot":"","sources":["../../src/server/dsl.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,11 +32,11 @@ export const register = (registry) => {
|
|
|
32
32
|
registry.registerMethod("entry.read", {
|
|
33
33
|
handler: async (params, ctx) => {
|
|
34
34
|
const p = (params ?? {});
|
|
35
|
-
if (typeof p.
|
|
36
|
-
throw new Error("entry.read requires params.
|
|
37
|
-
const parsed = parsePath(p.
|
|
35
|
+
if (typeof p.target !== "string" || p.target.length === 0)
|
|
36
|
+
throw new Error("entry.read requires params.target: string");
|
|
37
|
+
const parsed = parsePath(p.target);
|
|
38
38
|
if (parsed === null)
|
|
39
|
-
throw new Error(`entry.read: path must be URL-shaped (scheme://pathname); got: ${p.
|
|
39
|
+
throw new Error(`entry.read: path must be URL-shaped (scheme://pathname); got: ${p.target}`);
|
|
40
40
|
const sessionId = p.sessionId ?? ctx.session?.sessionId;
|
|
41
41
|
if (sessionId === undefined)
|
|
42
42
|
throw new Error("entry.read requires a sessionId (either via params or session attach)");
|
|
@@ -47,7 +47,7 @@ export const register = (registry) => {
|
|
|
47
47
|
},
|
|
48
48
|
description: "Read the full entry shape (channels + tags + metadata) at the given path.",
|
|
49
49
|
params: {
|
|
50
|
-
|
|
50
|
+
target: "string — entry path (URL-shaped: scheme://pathname)",
|
|
51
51
|
sessionId: "number? — defaults to the connection's attached session",
|
|
52
52
|
},
|
|
53
53
|
requiresInit: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry_read.js","sourceRoot":"","sources":["../../../src/server/methods/entry_read.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,gCAAgC;AAoBhC,MAAM,SAAS,GAAG,CAAC,CAAS,EAA+C,EAAE;IACzE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,KAAK,EAAE,EAAM,EAAE,SAAiB,EAAE,MAAc,EAAE,QAAgB,EAA8B,EAAE;IACjH,MAAM,GAAG,GAAG,MAAO,EAAE,CAAC,iBAAgC,CAAC,GAAG,CAAsF;QAC5I,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ;KAC1C,CAAC,CAAC;IACH,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,WAAW,GAAG,MAAO,EAAE,CAAC,mBAAkC,CAAC,GAAG,CAAqF,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/K,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC1B,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IACtG,CAAC;IAED,MAAM,OAAO,GAAG,MAAO,EAAE,CAAC,cAA6B,CAAC,GAAG,CAAkB,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAEnG,OAAO;QACH,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ;QACR,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;KAClC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE;QAClC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"entry_read.js","sourceRoot":"","sources":["../../../src/server/methods/entry_read.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop_cancel.d.ts","sourceRoot":"","sources":["../../../src/server/methods/loop_cancel.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAMvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAenD,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// loop.cancel — abort the run's active drain. Fires the drain's
|
|
2
|
+
// AbortController, which cascades to engine.runLoop's loop signal, which
|
|
3
|
+
// in turn aborts in-flight scheme operations (exec spawns, future
|
|
4
|
+
// SSE/WS). Queued loops in the run remain enqueued for a subsequent
|
|
5
|
+
// loop.run to pick up.
|
|
6
|
+
//
|
|
7
|
+
// Pairs with loop.run for "redirect" UX: cancel the runaway loop, then
|
|
8
|
+
// send a fresh prompt. Without this, the user would have to wait for
|
|
9
|
+
// the loop to hit max_turns / strike out.
|
|
10
|
+
export const register = (registry) => {
|
|
11
|
+
registry.registerMethod("loop.cancel", {
|
|
12
|
+
handler: async (params, ctx) => {
|
|
13
|
+
if (ctx.session === null)
|
|
14
|
+
throw new Error("loop.cancel requires an attached session");
|
|
15
|
+
const p = (params ?? {});
|
|
16
|
+
const reason = (typeof p.reason === "string" && p.reason.length > 0) ? p.reason : "user_cancelled";
|
|
17
|
+
const cancelled = ctx.daemon.cancelDrain(ctx.session.runId, reason);
|
|
18
|
+
return { cancelled, runId: ctx.session.runId, reason };
|
|
19
|
+
},
|
|
20
|
+
description: "Abort the run's active drain. Returns {cancelled: true} if a drain was running; {cancelled: false} if the run was already idle. Cancelled loops close at status 499. Queued (but not yet claimed) loops remain enqueued; subsequent loop.run resumes the queue.",
|
|
21
|
+
params: {
|
|
22
|
+
reason: "string? — optional human-readable cancellation reason; defaults to 'user_cancelled'",
|
|
23
|
+
},
|
|
24
|
+
requiresInit: true,
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=loop_cancel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop_cancel.js","sourceRoot":"","sources":["../../../src/server/methods/loop_cancel.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,yEAAyE;AACzE,kEAAkE;AAClE,oEAAoE;AACpE,uBAAuB;AACvB,EAAE;AACF,uEAAuE;AACvE,qEAAqE;AACrE,0CAA0C;AAQ1C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE;QACnC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACtF,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACnG,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACpE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3D,CAAC;QACD,WAAW,EAAE,iQAAiQ;QAC9Q,MAAM,EAAE;YACJ,MAAM,EAAE,qFAAqF;SAChG;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop_run.d.ts","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"loop_run.d.ts","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AA4BvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAgHnD,CAAC"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
// loop.run — model-driven loop.
|
|
2
|
-
//
|
|
3
|
-
//
|
|
1
|
+
// loop.run — model-driven loop. Validates params, resolves provider,
|
|
2
|
+
// delegates to daemon.inject. inject decides: active drain → write prompt
|
|
3
|
+
// entry for next turn; idle → enqueue + start drain.
|
|
4
4
|
import { readFile } from "node:fs/promises";
|
|
5
|
-
import { fetchLogEntry } from "../logEntry.js";
|
|
6
5
|
import { PATHS } from "../../index.js";
|
|
7
6
|
import { parseAliasesFromEnv, instantiateProvider } from "../../core/ProviderRegistry.js";
|
|
8
|
-
import { DEFAULT_LOOP_FLAGS } from "../../core/scheme-types.js";
|
|
9
7
|
export const register = (registry) => {
|
|
10
8
|
registry.registerMethod("loop.run", {
|
|
11
9
|
handler: async (params, ctx) => {
|
|
@@ -55,52 +53,53 @@ export const register = (registry) => {
|
|
|
55
53
|
}
|
|
56
54
|
const { sessionId, runId } = ctx.session;
|
|
57
55
|
const systemPrompt = await readFile(PATHS.instructionsSystem, "utf8");
|
|
58
|
-
// packet.system.persona — default from persona.md. issue #150 will
|
|
59
|
-
// add loop.run({persona}) and session.attach({persona}) overrides;
|
|
60
|
-
// until then every loop carries the default.
|
|
61
56
|
const persona = await readFile(PATHS.defaultPersona, "utf8");
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
57
|
+
// Delegate to the daemon's unified inject surface. Active-drain
|
|
58
|
+
// → write prompt entry for next turn (returns immediately).
|
|
59
|
+
// Idle run → enqueue + start drain (await drain to completion).
|
|
60
|
+
const injected = await ctx.daemon.inject({
|
|
61
|
+
sessionId, runId, prompt: p.prompt,
|
|
62
|
+
provider, persona, systemPrompt,
|
|
63
|
+
maxTurns, flags: p.flags, personaOverride: loopPersona,
|
|
67
64
|
});
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
65
|
+
if (injected.action === "injected_next_turn") {
|
|
66
|
+
// Active drain — prompt landed in the current loop's
|
|
67
|
+
// next-turn slot. Return immediately; the existing
|
|
68
|
+
// drain's notifications surface progress.
|
|
69
|
+
return {
|
|
70
|
+
loopId: injected.loopId,
|
|
71
|
+
turnSeq: injected.turnSeq,
|
|
72
|
+
action: "injected_next_turn",
|
|
73
|
+
finalStatus: 100,
|
|
74
|
+
hitMaxTurns: false,
|
|
75
|
+
turnIds: [],
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
// enqueued_new_loop:
|
|
79
|
+
// - Drain started by THIS call: firstLoopPromise is the
|
|
80
|
+
// promise for the loop just enqueued; await it.
|
|
81
|
+
// - Drain was already active (concurrent loop.run race
|
|
82
|
+
// where engine.inject returned null): the loop is in
|
|
83
|
+
// the queue, the existing drain will claim it. No
|
|
84
|
+
// firstLoopPromise — return immediately with status=100
|
|
85
|
+
// and let the client subscribe to loop/terminated.
|
|
86
|
+
if (injected.firstLoopPromise === undefined) {
|
|
87
|
+
return {
|
|
88
|
+
loopId: injected.loopId,
|
|
89
|
+
action: "enqueued_new_loop",
|
|
90
|
+
finalStatus: 100,
|
|
91
|
+
hitMaxTurns: false,
|
|
92
|
+
turnIds: [],
|
|
93
|
+
};
|
|
80
94
|
}
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
95
|
+
const first = await injected.firstLoopPromise;
|
|
96
|
+
return {
|
|
97
|
+
loopId: first.loopId,
|
|
98
|
+
turnIds: first.turnIds,
|
|
99
|
+
finalStatus: first.finalStatus,
|
|
100
|
+
hitMaxTurns: first.hitMaxTurns,
|
|
101
|
+
action: "enqueued_new_loop",
|
|
86
102
|
};
|
|
87
|
-
const result = await ctx.engine.runLoop({
|
|
88
|
-
provider,
|
|
89
|
-
messages: [
|
|
90
|
-
{ role: "system", content: systemPrompt },
|
|
91
|
-
{ role: "user", content: p.prompt },
|
|
92
|
-
],
|
|
93
|
-
persona,
|
|
94
|
-
sessionId, runId, loopId, maxTurns,
|
|
95
|
-
origin: "model",
|
|
96
|
-
onDispatch,
|
|
97
|
-
});
|
|
98
|
-
ctx.notify({ sessionId }, "loop/terminated", {
|
|
99
|
-
loopId,
|
|
100
|
-
finalStatus: result.finalStatus,
|
|
101
|
-
hitMaxTurns: result.hitMaxTurns,
|
|
102
|
-
});
|
|
103
|
-
return { loopId, ...result };
|
|
104
103
|
},
|
|
105
104
|
description: "Run a model-driven loop with a prompt. Optional per-call `alias` resolves a PLURNK_MODEL_<alias> override. Optional `flags.yolo:true` enables server-side YOLO (daemon auto-accepts proposals in-process; intended for benchmarks and automation, NOT standard client UX — see client SPEC §6.3 for client-side YOLO). Optional `persona` sets the loop-level persona override (highest precedence in the cascade loops > runs > sessions > PLURNK_PERSONA file). Streams log/entry notifications; fires loop/terminated on completion.",
|
|
106
105
|
params: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop_run.js","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,
|
|
1
|
+
{"version":3,"file":"loop_run.js","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,14 @@ export const register = (registry) => {
|
|
|
4
4
|
registry.registerMethod("op.edit", {
|
|
5
5
|
handler: async (params, ctx) => {
|
|
6
6
|
const p = (params ?? {});
|
|
7
|
-
if (typeof p.
|
|
8
|
-
throw new Error("op.edit requires params.
|
|
7
|
+
if (typeof p.target !== "string" || p.target.length === 0)
|
|
8
|
+
throw new Error("op.edit requires params.target: string");
|
|
9
9
|
const statement = buildEdit(p);
|
|
10
10
|
return dispatchAsClient(ctx, statement);
|
|
11
11
|
},
|
|
12
12
|
description: "EDIT — write or update an entry's body.",
|
|
13
13
|
params: {
|
|
14
|
-
|
|
14
|
+
target: "string — entry path (e.g. known://france/capital)",
|
|
15
15
|
content: "string? — entry body (empty/omitted clears)",
|
|
16
16
|
tags: "string[]? — tag set",
|
|
17
17
|
lineRange: "LineMarker? — insertion point or replace range",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"op_edit.js","sourceRoot":"","sources":["../../../src/server/methods/op_edit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"op_edit.js","sourceRoot":"","sources":["../../../src/server/methods/op_edit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACrH,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,yCAAyC;QACtD,MAAM,EAAE;YACJ,MAAM,EAAE,mDAAmD;YAC3D,OAAO,EAAE,6CAA6C;YACtD,IAAI,EAAE,qBAAqB;YAC3B,SAAS,EAAE,gDAAgD;SAC9D;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -4,14 +4,14 @@ export const register = (registry) => {
|
|
|
4
4
|
registry.registerMethod("op.hide", {
|
|
5
5
|
handler: async (params, ctx) => {
|
|
6
6
|
const p = (params ?? {});
|
|
7
|
-
if (typeof p.
|
|
8
|
-
throw new Error("op.hide requires params.
|
|
7
|
+
if (typeof p.target !== "string" || p.target.length === 0)
|
|
8
|
+
throw new Error("op.hide requires params.target: string");
|
|
9
9
|
const statement = buildHide(p);
|
|
10
10
|
return dispatchAsClient(ctx, statement);
|
|
11
11
|
},
|
|
12
12
|
description: "HIDE — demote an entry from the active index to the archive.",
|
|
13
13
|
params: {
|
|
14
|
-
|
|
14
|
+
target: "string — entry path",
|
|
15
15
|
matcher: "string? — body matcher (glob/regex/xpath/jsonpath)",
|
|
16
16
|
tags: "string[]? — tag filter",
|
|
17
17
|
lineRange: "LineMarker? — result range",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"op_hide.js","sourceRoot":"","sources":["../../../src/server/methods/op_hide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"op_hide.js","sourceRoot":"","sources":["../../../src/server/methods/op_hide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACrH,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,8DAA8D;QAC3E,MAAM,EAAE;YACJ,MAAM,EAAE,qBAAqB;YAC7B,OAAO,EAAE,oDAAoD;YAC7D,IAAI,EAAE,wBAAwB;YAC9B,SAAS,EAAE,4BAA4B;SAC1C;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -4,14 +4,14 @@ export const register = (registry) => {
|
|
|
4
4
|
registry.registerMethod("op.read", {
|
|
5
5
|
handler: async (params, ctx) => {
|
|
6
6
|
const p = (params ?? {});
|
|
7
|
-
if (typeof p.
|
|
8
|
-
throw new Error("op.read requires params.
|
|
7
|
+
if (typeof p.target !== "string" || p.target.length === 0)
|
|
8
|
+
throw new Error("op.read requires params.target: string");
|
|
9
9
|
const statement = buildRead(p);
|
|
10
10
|
return dispatchAsClient(ctx, statement);
|
|
11
11
|
},
|
|
12
12
|
description: "READ — fetch an entry's body or a slice of it.",
|
|
13
13
|
params: {
|
|
14
|
-
|
|
14
|
+
target: "string — entry path",
|
|
15
15
|
matcher: "string? — body matcher (glob/regex/xpath/jsonpath; dialect determined by leading chars)",
|
|
16
16
|
lineRange: "LineMarker? — line range slice",
|
|
17
17
|
tags: "string[]? — tag filter",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"op_read.js","sourceRoot":"","sources":["../../../src/server/methods/op_read.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"op_read.js","sourceRoot":"","sources":["../../../src/server/methods/op_read.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACrH,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,gDAAgD;QAC7D,MAAM,EAAE;YACJ,MAAM,EAAE,qBAAqB;YAC7B,OAAO,EAAE,yFAAyF;YAClG,SAAS,EAAE,gCAAgC;YAC3C,IAAI,EAAE,wBAAwB;SACjC;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -4,14 +4,14 @@ export const register = (registry) => {
|
|
|
4
4
|
registry.registerMethod("op.show", {
|
|
5
5
|
handler: async (params, ctx) => {
|
|
6
6
|
const p = (params ?? {});
|
|
7
|
-
if (typeof p.
|
|
8
|
-
throw new Error("op.show requires params.
|
|
7
|
+
if (typeof p.target !== "string" || p.target.length === 0)
|
|
8
|
+
throw new Error("op.show requires params.target: string");
|
|
9
9
|
const statement = buildShow(p);
|
|
10
10
|
return dispatchAsClient(ctx, statement);
|
|
11
11
|
},
|
|
12
12
|
description: "SHOW — promote an entry to the active index.",
|
|
13
13
|
params: {
|
|
14
|
-
|
|
14
|
+
target: "string — entry path",
|
|
15
15
|
matcher: "string? — body matcher (glob/regex/xpath/jsonpath)",
|
|
16
16
|
tags: "string[]? — tag filter",
|
|
17
17
|
lineRange: "LineMarker? — result range",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"op_show.js","sourceRoot":"","sources":["../../../src/server/methods/op_show.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"op_show.js","sourceRoot":"","sources":["../../../src/server/methods/op_show.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACrH,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,WAAW,EAAE,8CAA8C;QAC3D,MAAM,EAAE;YACJ,MAAM,EAAE,qBAAqB;YAC7B,OAAO,EAAE,oDAAoD;YAC7D,IAAI,EAAE,wBAAwB;YAC9B,SAAS,EAAE,4BAA4B;SAC1C;QACD,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -48,7 +48,7 @@ CREATE TABLE IF NOT EXISTS loops (
|
|
|
48
48
|
version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
|
|
49
49
|
run_id INTEGER NOT NULL,
|
|
50
50
|
sequence INTEGER NOT NULL CHECK (sequence >= 1),
|
|
51
|
-
status INTEGER NOT NULL DEFAULT 102 CHECK (status IN (102, 200, 499)),
|
|
51
|
+
status INTEGER NOT NULL DEFAULT 102 CHECK (status IN (100, 102, 200, 499)),
|
|
52
52
|
prompt TEXT NOT NULL,
|
|
53
53
|
flags TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(flags)),
|
|
54
54
|
persona TEXT,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-service",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Plurnk agent runtime — the server / engine / core. Implements the @plurnk/plurnk-grammar contract.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,17 +32,18 @@
|
|
|
32
32
|
"test:lint": "tsc --noEmit",
|
|
33
33
|
"test:unit": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test src/**/*.test.ts",
|
|
34
34
|
"test:intg": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test test/intg/*.test.ts",
|
|
35
|
-
"test:live": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test test/live/*.test.ts",
|
|
36
|
-
"test:demo": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test test/demo/*.test.ts",
|
|
35
|
+
"test:live": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/live/*.test.ts",
|
|
36
|
+
"test:demo": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/demo/*.test.ts",
|
|
37
37
|
"test:all": "npm run test:lint && npm run test:unit && npm run test:intg && npm run test:demo",
|
|
38
38
|
"test:digest": "node bin/digest.js",
|
|
39
|
+
"test:clean-tmp": "rm -rf test/intg/.tmp",
|
|
39
40
|
"dev:digest": "node bin/digest.js",
|
|
40
41
|
"build:dist": "tsc -p tsconfig.build.json",
|
|
41
42
|
"build": "npm run build:dist",
|
|
42
43
|
"prepare": "npm run build"
|
|
43
44
|
},
|
|
44
45
|
"dependencies": {
|
|
45
|
-
"@plurnk/plurnk-grammar": "^0.
|
|
46
|
+
"@plurnk/plurnk-grammar": "^0.14.0",
|
|
46
47
|
"@plurnk/plurnk-mimetypes": "^0.3.1",
|
|
47
48
|
"@plurnk/plurnk-mimetypes-application-json": "^0.2.0",
|
|
48
49
|
"@plurnk/plurnk-mimetypes-application-pdf": "^0.3.0",
|