@plurnk/plurnk-service 0.3.0 → 0.5.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/README.md +13 -44
- package/SPEC.md +559 -447
- package/bin/plurnk-service.js +2 -1
- package/dist/core/ChannelWrite.d.ts +15 -0
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/Engine.d.ts +15 -4
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +417 -114
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/PluginLoader.js +6 -6
- package/dist/core/PluginLoader.js.map +1 -1
- package/dist/core/ProviderInstantiate.d.ts +4 -0
- package/dist/core/ProviderInstantiate.d.ts.map +1 -0
- package/dist/core/ProviderInstantiate.js +41 -0
- package/dist/core/ProviderInstantiate.js.map +1 -0
- package/dist/core/ProviderRegistry.d.ts.map +1 -1
- package/dist/core/ProviderRegistry.js +1 -1
- package/dist/core/ProviderRegistry.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 +4 -20
- package/dist/core/SchemeRegistry.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 +12 -0
- package/dist/core/matcher.d.ts.map +1 -0
- package/dist/core/matcher.js +72 -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 +206 -30
- 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 +8 -26
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/scheme-types.js +5 -8
- package/dist/core/scheme-types.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.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 +217 -6
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/File.d.ts +5 -0
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +113 -23
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts +3 -0
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +88 -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 +262 -54
- 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 +51 -1
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +337 -1
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/MethodRegistry.d.ts +31 -2
- 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_resolve.js +2 -2
- package/dist/server/methods/loop_resolve.js.map +1 -1
- package/dist/server/methods/loop_run.d.ts.map +1 -1
- package/dist/server/methods/loop_run.js +48 -48
- 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/dist/server/methods/providers_list.js +1 -1
- package/dist/server/methods/providers_list.js.map +1 -1
- package/migrations/001_schema.sql +1 -1
- package/package.json +19 -14
package/dist/server/dsl.js
CHANGED
|
@@ -32,7 +32,7 @@ const formatPath = (path) => {
|
|
|
32
32
|
// Build a HEREDOC statement string. `signal` is the raw signal payload —
|
|
33
33
|
// CSV tags `[a,b,c]` for most ops, a single number for SEND (`[200]`),
|
|
34
34
|
// a single runtime tag for EXEC (`[node]`).
|
|
35
|
-
const buildHeredoc = ({ op, suffix, signal,
|
|
35
|
+
const buildHeredoc = ({ op, suffix, signal, target, lineMarker, body, }) => `<<${op}${suffix}${signal}${target}${lineMarker}:${body}:${op}${suffix}`;
|
|
36
36
|
export const parseSingleStatement = (text) => {
|
|
37
37
|
const result = PlurnkParser.parse(text);
|
|
38
38
|
for (const item of result.items) {
|
|
@@ -50,35 +50,35 @@ export const parseAllStatements = (text) => {
|
|
|
50
50
|
export const buildEdit = (p) => parseSingleStatement(buildHeredoc({
|
|
51
51
|
op: "EDIT", suffix: randomSuffix(),
|
|
52
52
|
signal: formatTags(p.tags),
|
|
53
|
-
|
|
53
|
+
target: formatPath(p.target),
|
|
54
54
|
lineMarker: formatLineMarker(p.lineRange),
|
|
55
55
|
body: p.content ?? "",
|
|
56
56
|
}));
|
|
57
57
|
export const buildRead = (p) => parseSingleStatement(buildHeredoc({
|
|
58
58
|
op: "READ", suffix: randomSuffix(),
|
|
59
59
|
signal: formatTags(p.tags),
|
|
60
|
-
|
|
60
|
+
target: formatPath(p.target),
|
|
61
61
|
lineMarker: formatLineMarker(p.lineRange),
|
|
62
62
|
body: p.matcher ?? "",
|
|
63
63
|
}));
|
|
64
64
|
export const buildFind = (p) => parseSingleStatement(buildHeredoc({
|
|
65
65
|
op: "FIND", suffix: randomSuffix(),
|
|
66
66
|
signal: formatTags(p.tags),
|
|
67
|
-
|
|
67
|
+
target: formatPath(p.scope),
|
|
68
68
|
lineMarker: formatLineMarker(p.lineRange),
|
|
69
69
|
body: p.matcher ?? "",
|
|
70
70
|
}));
|
|
71
71
|
export const buildShow = (p) => parseSingleStatement(buildHeredoc({
|
|
72
72
|
op: "SHOW", suffix: randomSuffix(),
|
|
73
73
|
signal: formatTags(p.tags),
|
|
74
|
-
|
|
74
|
+
target: formatPath(p.target),
|
|
75
75
|
lineMarker: formatLineMarker(p.lineRange),
|
|
76
76
|
body: p.matcher ?? "",
|
|
77
77
|
}));
|
|
78
78
|
export const buildHide = (p) => parseSingleStatement(buildHeredoc({
|
|
79
79
|
op: "HIDE", suffix: randomSuffix(),
|
|
80
80
|
signal: formatTags(p.tags),
|
|
81
|
-
|
|
81
|
+
target: formatPath(p.target),
|
|
82
82
|
lineMarker: formatLineMarker(p.lineRange),
|
|
83
83
|
body: p.matcher ?? "",
|
|
84
84
|
}));
|
|
@@ -88,7 +88,7 @@ export const buildCopy = (p) => {
|
|
|
88
88
|
return parseSingleStatement(buildHeredoc({
|
|
89
89
|
op: "COPY", suffix: randomSuffix(),
|
|
90
90
|
signal: formatTags(p.tags),
|
|
91
|
-
|
|
91
|
+
target: formatPath(p.source),
|
|
92
92
|
lineMarker: formatLineMarker(p.lineRange),
|
|
93
93
|
body: p.destination,
|
|
94
94
|
}));
|
|
@@ -96,21 +96,21 @@ export const buildCopy = (p) => {
|
|
|
96
96
|
export const buildMove = (p) => parseSingleStatement(buildHeredoc({
|
|
97
97
|
op: "MOVE", suffix: randomSuffix(),
|
|
98
98
|
signal: formatTags(p.tags),
|
|
99
|
-
|
|
99
|
+
target: formatPath(p.source),
|
|
100
100
|
lineMarker: formatLineMarker(p.lineRange),
|
|
101
101
|
body: p.destination ?? "",
|
|
102
102
|
}));
|
|
103
103
|
export const buildSend = (p) => parseSingleStatement(buildHeredoc({
|
|
104
104
|
op: "SEND", suffix: randomSuffix(),
|
|
105
105
|
signal: `[${p.status}]`,
|
|
106
|
-
|
|
106
|
+
target: p.recipient !== undefined ? formatPath(p.recipient) : "",
|
|
107
107
|
lineMarker: "",
|
|
108
108
|
body: p.body ?? "",
|
|
109
109
|
}));
|
|
110
110
|
export const buildExec = (p) => parseSingleStatement(buildHeredoc({
|
|
111
111
|
op: "EXEC", suffix: randomSuffix(),
|
|
112
112
|
signal: p.runtime !== undefined ? `[${p.runtime}]` : "",
|
|
113
|
-
|
|
113
|
+
target: p.cwd !== undefined ? formatPath(p.cwd) : "",
|
|
114
114
|
lineMarker: "",
|
|
115
115
|
body: p.command ?? "",
|
|
116
116
|
}));
|
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,7 +1,7 @@
|
|
|
1
1
|
// loop.resolve — client→server RPC that accepts/rejects a pending proposal.
|
|
2
2
|
// Engine.dispatch is paused on the matching log_entry; this method feeds
|
|
3
|
-
// the decision back in. Returns once the resolution is applied.
|
|
4
|
-
//
|
|
3
|
+
// the decision back in. Returns once the resolution is applied.
|
|
4
|
+
// SPEC.md §13.5 (loop.resolve) + §0.5 (proposal lifecycle).
|
|
5
5
|
export const register = (registry) => {
|
|
6
6
|
registry.registerMethod("loop.resolve", {
|
|
7
7
|
handler: async (params, ctx) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop_resolve.js","sourceRoot":"","sources":["../../../src/server/methods/loop_resolve.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"loop_resolve.js","sourceRoot":"","sources":["../../../src/server/methods/loop_resolve.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,gEAAgE;AAChE,4DAA4D;AAW5D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE;QACpC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACvF,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAW,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAChF,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,UAAU,GAAqE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9G,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACzD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;gBAAE,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;YAClE,gEAAgE;YAChE,8DAA8D;YAC9D,oDAAoD;YACpD,IAAI,CAAC;gBACD,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,OAAO;oBACH,MAAM,EAAE,GAAG;oBACX,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBAC1D,CAAC;YACN,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,WAAW,EAAE,+KAA+K;QAC5L,MAAM,EAAE;YACJ,UAAU,EAAE,8DAA8D;YAC1E,QAAQ,EAAE,yCAAyC;YACnD,IAAI,EAAE,8DAA8D;YACpE,OAAO,EAAE,oGAAoG;SAChH;KACJ,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;AA6BvD,eAAO,MAAM,QAAQ,GAAI,UAAU,cAAc,KAAG,IAgHnD,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
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
|
-
import { parseAliasesFromEnv
|
|
8
|
-
import {
|
|
6
|
+
import { parseAliasesFromEnv } from "@plurnk/plurnk-providers";
|
|
7
|
+
import { instantiateProvider } from "../../core/ProviderInstantiate.js";
|
|
9
8
|
export const register = (registry) => {
|
|
10
9
|
registry.registerMethod("loop.run", {
|
|
11
10
|
handler: async (params, ctx) => {
|
|
@@ -55,52 +54,53 @@ export const register = (registry) => {
|
|
|
55
54
|
}
|
|
56
55
|
const { sessionId, runId } = ctx.session;
|
|
57
56
|
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
57
|
const persona = await readFile(PATHS.defaultPersona, "utf8");
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
58
|
+
// Delegate to the daemon's unified inject surface. Active-drain
|
|
59
|
+
// → write prompt entry for next turn (returns immediately).
|
|
60
|
+
// Idle run → enqueue + start drain (await drain to completion).
|
|
61
|
+
const injected = await ctx.daemon.inject({
|
|
62
|
+
sessionId, runId, prompt: p.prompt,
|
|
63
|
+
provider, persona, systemPrompt,
|
|
64
|
+
maxTurns, flags: p.flags, personaOverride: loopPersona,
|
|
67
65
|
});
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
66
|
+
if (injected.action === "injected_next_turn") {
|
|
67
|
+
// Active drain — prompt landed in the current loop's
|
|
68
|
+
// next-turn slot. Return immediately; the existing
|
|
69
|
+
// drain's notifications surface progress.
|
|
70
|
+
return {
|
|
71
|
+
loopId: injected.loopId,
|
|
72
|
+
turnSeq: injected.turnSeq,
|
|
73
|
+
action: "injected_next_turn",
|
|
74
|
+
finalStatus: 100,
|
|
75
|
+
hitMaxTurns: false,
|
|
76
|
+
turnIds: [],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// enqueued_new_loop:
|
|
80
|
+
// - Drain started by THIS call: firstLoopPromise is the
|
|
81
|
+
// promise for the loop just enqueued; await it.
|
|
82
|
+
// - Drain was already active (concurrent loop.run race
|
|
83
|
+
// where engine.inject returned null): the loop is in
|
|
84
|
+
// the queue, the existing drain will claim it. No
|
|
85
|
+
// firstLoopPromise — return immediately with status=100
|
|
86
|
+
// and let the client subscribe to loop/terminated.
|
|
87
|
+
if (injected.firstLoopPromise === undefined) {
|
|
88
|
+
return {
|
|
89
|
+
loopId: injected.loopId,
|
|
90
|
+
action: "enqueued_new_loop",
|
|
91
|
+
finalStatus: 100,
|
|
92
|
+
hitMaxTurns: false,
|
|
93
|
+
turnIds: [],
|
|
94
|
+
};
|
|
80
95
|
}
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
96
|
+
const first = await injected.firstLoopPromise;
|
|
97
|
+
return {
|
|
98
|
+
loopId: first.loopId,
|
|
99
|
+
turnIds: first.turnIds,
|
|
100
|
+
finalStatus: first.finalStatus,
|
|
101
|
+
hitMaxTurns: first.hitMaxTurns,
|
|
102
|
+
action: "enqueued_new_loop",
|
|
86
103
|
};
|
|
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
104
|
},
|
|
105
105
|
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
106
|
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":"AAAA,qEAAqE;AACrE,0EAA0E;AAC1E,qDAAqD;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AA0BxE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE;QAChC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACnF,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,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACjE,CAAC;YACD,8DAA8D;YAC9D,iEAAiE;YACjE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5E,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACzD,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,CAAU,EAAE,CAAC;oBAC5E,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;wBACpE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,oBAAoB,CAAC,CAAC;oBACjE,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBACjF,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBACnE,CAAC;YACL,CAAC;YACD,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;YACtC,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;YAE5E,iEAAiE;YACjE,kEAAkE;YAClE,mCAAmC;YACnC,IAAI,QAAQ,GAAoB,GAAG,CAAC,QAAQ,CAAC;YAC7C,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACvE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,KAAK,6BAA6B,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;gBAChI,CAAC;gBACD,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,qEAAqE,EAAE,CAAC;YACzG,CAAC;YAED,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;YACzC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAE7D,gEAAgE;YAChE,4DAA4D;YAC5D,gEAAgE;YAChE,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;gBACrC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM;gBAClC,QAAQ,EAAE,OAAO,EAAE,YAAY;gBAC/B,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW;aACzD,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;gBAC3C,qDAAqD;gBACrD,mDAAmD;gBACnD,0CAA0C;gBAC1C,OAAO;oBACH,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,MAAM,EAAE,oBAAoB;oBAC5B,WAAW,EAAE,GAAG;oBAChB,WAAW,EAAE,KAAK;oBAClB,OAAO,EAAE,EAAE;iBACd,CAAC;YACN,CAAC;YAED,qBAAqB;YACrB,0DAA0D;YAC1D,oDAAoD;YACpD,yDAAyD;YACzD,yDAAyD;YACzD,sDAAsD;YACtD,4DAA4D;YAC5D,uDAAuD;YACvD,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO;oBACH,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,MAAM,EAAE,mBAAmB;oBAC3B,WAAW,EAAE,GAAG;oBAChB,WAAW,EAAE,KAAK;oBAClB,OAAO,EAAE,EAAE;iBACd,CAAC;YACN,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC;YAC9C,OAAO;gBACH,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,MAAM,EAAE,mBAAmB;aAC9B,CAAC;QACN,CAAC;QACD,WAAW,EAAE,ygBAAygB;QACthB,MAAM,EAAE;YACJ,MAAM,EAAE,mCAAmC;YAC3C,QAAQ,EAAE,gEAAgE;YAC1E,KAAK,EAAE,kFAAkF;YACzF,KAAK,EAAE,0GAA0G;YACjH,OAAO,EAAE,8FAA8F;SAC1G;QACD,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAI;KACpB,CAAC,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { parseAliasesFromEnv, resolveActiveAlias } from "
|
|
1
|
+
import { parseAliasesFromEnv, resolveActiveAlias } from "@plurnk/plurnk-providers";
|
|
2
2
|
export const register = (registry) => {
|
|
3
3
|
registry.registerMethod("providers.list", {
|
|
4
4
|
handler: async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers_list.js","sourceRoot":"","sources":["../../../src/server/methods/providers_list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"providers_list.js","sourceRoot":"","sources":["../../../src/server/methods/providers_list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACvD,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE;QACtC,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACpC,OAAO;gBACH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,MAAM,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;iBACtD,CAAC,CAAC;aACN,CAAC;QACN,CAAC;QACD,WAAW,EAAE,+EAA+E;KAC/F,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.5.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",
|
|
@@ -29,36 +29,41 @@
|
|
|
29
29
|
"access": "public"
|
|
30
30
|
},
|
|
31
31
|
"scripts": {
|
|
32
|
+
"start": "node bin/plurnk-service.js",
|
|
32
33
|
"test:lint": "tsc --noEmit",
|
|
33
34
|
"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
35
|
"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",
|
|
36
|
+
"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",
|
|
37
|
+
"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
38
|
"test:all": "npm run test:lint && npm run test:unit && npm run test:intg && npm run test:demo",
|
|
38
39
|
"test:digest": "node bin/digest.js",
|
|
40
|
+
"test:clean-tmp": "rm -rf test/intg/.tmp",
|
|
39
41
|
"dev:digest": "node bin/digest.js",
|
|
40
42
|
"build:dist": "tsc -p tsconfig.build.json",
|
|
41
43
|
"build": "npm run build:dist",
|
|
42
44
|
"prepare": "npm run build"
|
|
43
45
|
},
|
|
44
46
|
"dependencies": {
|
|
45
|
-
"@plurnk/plurnk-
|
|
46
|
-
"@plurnk/plurnk-
|
|
47
|
-
"@plurnk/plurnk-mimetypes
|
|
48
|
-
"@plurnk/plurnk-mimetypes-application-
|
|
49
|
-
"@plurnk/plurnk-mimetypes-application-
|
|
50
|
-
"@plurnk/plurnk-mimetypes-application-
|
|
51
|
-
"@plurnk/plurnk-mimetypes-
|
|
52
|
-
"@plurnk/plurnk-mimetypes-text-
|
|
53
|
-
"@plurnk/plurnk-mimetypes-text-
|
|
54
|
-
"@plurnk/plurnk-mimetypes-text-
|
|
55
|
-
"@plurnk/plurnk-mimetypes-text-
|
|
47
|
+
"@plurnk/plurnk-execs": "^0.1.0",
|
|
48
|
+
"@plurnk/plurnk-grammar": "^0.17.0",
|
|
49
|
+
"@plurnk/plurnk-mimetypes": "^0.7.0",
|
|
50
|
+
"@plurnk/plurnk-mimetypes-application-json": "^0.4.0",
|
|
51
|
+
"@plurnk/plurnk-mimetypes-application-pdf": "^0.5.0",
|
|
52
|
+
"@plurnk/plurnk-mimetypes-application-toml": "^0.3.0",
|
|
53
|
+
"@plurnk/plurnk-mimetypes-application-yaml": "^0.3.0",
|
|
54
|
+
"@plurnk/plurnk-mimetypes-text-csv": "^0.3.0",
|
|
55
|
+
"@plurnk/plurnk-mimetypes-text-html": "^0.5.0",
|
|
56
|
+
"@plurnk/plurnk-mimetypes-text-markdown": "^0.5.0",
|
|
57
|
+
"@plurnk/plurnk-mimetypes-text-plain": "^0.6.0",
|
|
58
|
+
"@plurnk/plurnk-mimetypes-text-typescript": "^0.3.0",
|
|
59
|
+
"@plurnk/plurnk-providers": "^0.1.0",
|
|
56
60
|
"@plurnk/plurnk-providers-cloudflare": "^0.2.0",
|
|
57
61
|
"@plurnk/plurnk-providers-google": "^0.2.0",
|
|
58
62
|
"@plurnk/plurnk-providers-ollama": "^0.2.0",
|
|
59
63
|
"@plurnk/plurnk-providers-openai": "^0.2.0",
|
|
60
64
|
"@plurnk/plurnk-providers-openrouter": "^0.2.0",
|
|
61
65
|
"@plurnk/plurnk-providers-xai": "^0.2.0",
|
|
66
|
+
"@plurnk/plurnk-schemes": "^0.1.0",
|
|
62
67
|
"@possumtech/sqlrite": "^3.1.0",
|
|
63
68
|
"diff": "^7.0.0",
|
|
64
69
|
"ws": "^8.20.1"
|