@plurnk/plurnk-service 0.29.0 → 0.35.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 +47 -23
- package/dist/Paths.d.ts +0 -1
- package/dist/Paths.d.ts.map +1 -1
- package/dist/Paths.js +2 -18
- package/dist/Paths.js.map +1 -1
- package/dist/content/line-marker.d.ts +4 -0
- package/dist/content/line-marker.d.ts.map +1 -1
- package/dist/content/line-marker.js +7 -1
- package/dist/content/line-marker.js.map +1 -1
- package/dist/content/matcher.js +1 -1
- package/dist/content/matcher.js.map +1 -1
- package/dist/content/mimetype-binary.js +1 -1
- package/dist/content/mimetype-binary.js.map +1 -1
- package/dist/content/path-mimetype.js +1 -1
- package/dist/content/path-mimetype.js.map +1 -1
- package/dist/content/read-resolve.js +1 -1
- package/dist/content/read-resolve.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +9 -0
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +9 -1
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/Engine.d.ts +11 -6
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +199 -73
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/ExecutorRegistry.d.ts +2 -0
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +1 -0
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/ProviderInstantiate.js +1 -1
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +5 -0
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +39 -0
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/fork.js +2 -2
- package/dist/core/fork.js.map +1 -1
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +10 -7
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/git-state.d.ts.map +1 -1
- package/dist/core/git-state.js +3 -1
- package/dist/core/git-state.js.map +1 -1
- package/dist/core/packet-wire.d.ts +0 -1
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +6 -9
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/path-decode.d.ts +2 -0
- package/dist/core/path-decode.d.ts.map +1 -0
- package/dist/core/path-decode.js +8 -0
- package/dist/core/path-decode.js.map +1 -0
- package/dist/core/run-cap.d.ts +8 -0
- package/dist/core/run-cap.d.ts.map +1 -0
- package/dist/core/run-cap.js +20 -0
- package/dist/core/run-cap.js.map +1 -0
- package/dist/core/scheme-types.d.ts +2 -1
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/session-settings.d.ts +19 -0
- package/dist/core/session-settings.d.ts.map +1 -0
- package/dist/core/session-settings.js +44 -0
- package/dist/core/session-settings.js.map +1 -0
- package/dist/index.js +1 -1
- 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 +4 -3
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/File.d.ts +1 -0
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +6 -2
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Known.d.ts +1 -0
- package/dist/schemes/Known.d.ts.map +1 -1
- package/dist/schemes/Known.js +2 -0
- package/dist/schemes/Known.js.map +1 -1
- package/dist/schemes/Log.d.ts +1 -0
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +4 -1
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Plurnk.d.ts +1 -0
- package/dist/schemes/Plurnk.d.ts.map +1 -1
- package/dist/schemes/Plurnk.js +1 -0
- package/dist/schemes/Plurnk.js.map +1 -1
- package/dist/schemes/Run.d.ts +17 -0
- package/dist/schemes/Run.d.ts.map +1 -0
- package/dist/schemes/Run.js +76 -0
- package/dist/schemes/Run.js.map +1 -0
- package/dist/schemes/Unknown.d.ts +1 -0
- package/dist/schemes/Unknown.d.ts.map +1 -1
- package/dist/schemes/Unknown.js +1 -0
- package/dist/schemes/Unknown.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +2 -2
- 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 +26 -9
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-graph.d.ts +6 -0
- package/dist/schemes/_entry-graph.d.ts.map +1 -1
- package/dist/schemes/_entry-graph.js +8 -0
- package/dist/schemes/_entry-graph.js.map +1 -1
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +60 -30
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +14 -12
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-semantic.d.ts +1 -1
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +5 -2
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +5 -4
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/server/ClientConnection.d.ts.map +1 -1
- package/dist/server/ClientConnection.js +2 -3
- package/dist/server/ClientConnection.js.map +1 -1
- package/dist/server/Daemon.d.ts +1 -3
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +31 -14
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/MethodRegistry.d.ts +0 -2
- package/dist/server/MethodRegistry.d.ts.map +1 -1
- package/dist/server/clientTurn.js +1 -1
- package/dist/server/clientTurn.js.map +1 -1
- package/dist/server/dsl.d.ts.map +1 -1
- package/dist/server/dsl.js +6 -4
- package/dist/server/dsl.js.map +1 -1
- package/dist/server/envelope.d.ts +2 -6
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +19 -24
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/methods/_dispatchAsPlurnk.js +1 -1
- package/dist/server/methods/_dispatchAsPlurnk.js.map +1 -1
- package/dist/server/methods/discover.d.ts.map +1 -1
- package/dist/server/methods/discover.js +6 -2
- package/dist/server/methods/discover.js.map +1 -1
- package/dist/server/methods/log_read.js +1 -1
- package/dist/server/methods/log_read.js.map +1 -1
- package/dist/server/methods/loop_cancel.js +1 -1
- package/dist/server/methods/loop_cancel.js.map +1 -1
- package/dist/server/methods/loop_inject.d.ts.map +1 -1
- package/dist/server/methods/loop_inject.js +1 -2
- package/dist/server/methods/loop_inject.js.map +1 -1
- package/dist/server/methods/loop_run.d.ts.map +1 -1
- package/dist/server/methods/loop_run.js +18 -20
- package/dist/server/methods/loop_run.js.map +1 -1
- package/dist/server/methods/session_attach.d.ts.map +1 -1
- package/dist/server/methods/session_attach.js +3 -9
- package/dist/server/methods/session_attach.js.map +1 -1
- package/dist/server/methods/session_constraints.js +1 -1
- package/dist/server/methods/session_constraints.js.map +1 -1
- package/dist/server/methods/session_create.d.ts.map +1 -1
- package/dist/server/methods/session_create.js +55 -10
- package/dist/server/methods/session_create.js.map +1 -1
- package/dist/server/methods/session_prompts.d.ts +5 -0
- package/dist/server/methods/session_prompts.d.ts.map +1 -0
- package/dist/server/methods/session_prompts.js +29 -0
- package/dist/server/methods/session_prompts.js.map +1 -0
- package/dist/server/version-info.d.ts +14 -0
- package/dist/server/version-info.d.ts.map +1 -0
- package/dist/server/version-info.js +69 -0
- package/dist/server/version-info.js.map +1 -0
- package/dist/server/yolo.d.ts.map +1 -1
- package/dist/server/yolo.js +9 -0
- package/dist/server/yolo.js.map +1 -1
- package/migrations/0000-00-00.01_schema.sql +35 -9
- package/package.json +9 -10
- package/requirements.md +2 -2
- package/persona.md +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,8DAA8D;AAC9D,yCAAyC;
|
|
1
|
+
{"version":3,"file":"logEntry.js","sourceRoot":"","sources":["../../src/server/logEntry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,8DAA8D;AAC9D,yCAAyC;AAoCzC,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,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,OAAO,EAAE,GAAG,CAAC,OAAiB;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAkB;YAChC,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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Self-hosting keystone (SPEC §actor-boundary): the runtime acting as an ordinary `plurnk`
|
|
1
|
+
// Self-hosting keystone (SPEC §actor-boundary, §actor-boundary-self-hosting): the runtime acting as an ordinary `plurnk`
|
|
2
2
|
// actor. Uses the session's reserved plurnk run, opens an ephemeral loop+turn,
|
|
3
3
|
// and fires ops through Engine.dispatch with origin=plurnk — the same path the
|
|
4
4
|
// model and clients use. Mirrors _dispatchAsClient, but the work is the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_dispatchAsPlurnk.js","sourceRoot":"","sources":["../../../src/server/methods/_dispatchAsPlurnk.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"_dispatchAsPlurnk.js","sourceRoot":"","sources":["../../../src/server/methods/_dispatchAsPlurnk.ts"],"names":[],"mappings":"AAAA,yHAAyH;AACzH,+EAA+E;AAC/E,+EAA+E;AAC/E,wEAAwE;AACxE,+EAA+E;AAC/E,uEAAuE;AACvE,4FAA4F;AAK5F,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,EAAM,EAAE,SAAiB,EAAE,UAA6B;QAC1F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnH,CAAC;IACL,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;
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CASlD"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import VersionInfo from "../version-info.js";
|
|
1
2
|
export default class DiscoverMethod {
|
|
2
3
|
static register(registry) {
|
|
4
|
+
// discover returns the protocol version + the method/notification catalog, plus
|
|
5
|
+
// versions (installed self-report + best-effort cached npm poll) for the client's
|
|
6
|
+
// update notifier — the daemon polls so a one-shot CLI does zero registry IO. §discovery
|
|
3
7
|
registry.registerMethod("discover", {
|
|
4
|
-
handler: async (_params, ctx) => ctx.registry.catalog(),
|
|
5
|
-
description: "Returns the protocol version
|
|
8
|
+
handler: async (_params, ctx) => ({ ...ctx.registry.catalog(), versions: await VersionInfo.get() }),
|
|
9
|
+
description: "Returns the protocol version, the method/notification catalog, and versions (service installed + best-effort npm-latest for service & client).",
|
|
6
10
|
});
|
|
7
11
|
}
|
|
8
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,gFAAgF;QAChF,kFAAkF;QAClF,yFAAyF;QACzF,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE;YAChC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC;YACnG,WAAW,EAAE,gJAAgJ;SAChK,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -25,7 +25,7 @@ export default class LogReadMethod {
|
|
|
25
25
|
throw new Error("log.read requires an attached session");
|
|
26
26
|
const p = params;
|
|
27
27
|
// Default to the connection's own run; an explicit runId targets any
|
|
28
|
-
// run in the session — the MODEL run for a conversation client (#214) —
|
|
28
|
+
// run in the session — the MODEL run for a conversation client (#214, §machine-processes-model-run-readable) —
|
|
29
29
|
// ownership-verified so a client can't read a run outside its session.
|
|
30
30
|
let runId = ctx.session.runId;
|
|
31
31
|
if (typeof p.runId === "number" && p.runId !== runId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log_read.js","sourceRoot":"","sources":["../../../src/server/methods/log_read.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8DAA8D;AAI9D,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAWtC,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC;IAC5B,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;IAEzB,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAM,EAAE,KAAa,EAAE,OAAe;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QACnI,MAAM,IAAI,GAAG,MAAO,EAAE,CAAC,mBAAkC,CAAC,GAAG,CAAiB;YAC1E,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YACnE,OAAO,EAAE,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YACnE,QAAQ,EAAE,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACtE,KAAK;SACR,CAAC,CAAC;QACH,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3E,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE;YAChC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBACnF,MAAM,CAAC,GAAG,MAAgB,CAAC;gBAC3B,qEAAqE;gBACrE
|
|
1
|
+
{"version":3,"file":"log_read.js","sourceRoot":"","sources":["../../../src/server/methods/log_read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// loop.cancel — abort the run's active drain. Fires the drain's
|
|
1
|
+
// loop.cancel — abort the run's active drain (§methods-loop-cancel). Fires the drain's
|
|
2
2
|
// AbortController, which cascades to engine.runLoop's loop signal, which
|
|
3
3
|
// in turn aborts in-flight scheme operations (exec spawns, future
|
|
4
4
|
// SSE/WS). Queued loops in the run remain enqueued for a subsequent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop_cancel.js","sourceRoot":"","sources":["../../../src/server/methods/loop_cancel.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"loop_cancel.js","sourceRoot":"","sources":["../../../src/server/methods/loop_cancel.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,yEAAyE;AACzE,kEAAkE;AAClE,oEAAoE;AACpE,uBAAuB;AACvB,EAAE;AACF,uEAAuE;AACvE,qEAAqE;AACrE,0CAA0C;AAQ1C,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE;YACnC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBACtF,MAAM,CAAC,GAAG,MAAgB,CAAC;gBAC3B,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;gBACnG,+FAA+F;gBAC/F,iEAAiE;gBACjE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC1C,MAAM,SAAS,GAAG,UAAU,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACpF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;YACpD,CAAC;YACD,WAAW,EAAE,iQAAiQ;YAC9Q,MAAM,EAAE;gBACJ,MAAM,EAAE,qFAAqF;aAChG;YACD,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop_inject.d.ts","sourceRoot":"","sources":["../../../src/server/methods/loop_inject.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AASvD,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"loop_inject.d.ts","sourceRoot":"","sources":["../../../src/server/methods/loop_inject.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AASvD,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CA0ClD"}
|
|
@@ -33,10 +33,9 @@ export default class LoopInjectMethod {
|
|
|
33
33
|
const requested = p.maxTurns ?? ceiling;
|
|
34
34
|
const maxTurns = ceiling < 0 ? requested : (requested < 0 ? ceiling : Math.min(requested, ceiling));
|
|
35
35
|
const systemPrompt = await readFile(Paths.instructionsSystem, "utf8");
|
|
36
|
-
const persona = await readFile(Paths.defaultPersona, "utf8");
|
|
37
36
|
const injected = await ctx.daemon.inject({
|
|
38
37
|
sessionId: ctx.session.sessionId, runId: modelRunId, prompt: p.prompt,
|
|
39
|
-
provider: ctx.provider,
|
|
38
|
+
provider: ctx.provider, systemPrompt, maxTurns, flags: p.flags,
|
|
40
39
|
});
|
|
41
40
|
// Fire-and-forget: return as soon as the prompt is placed; the client
|
|
42
41
|
// watches the run via log/entry + loop/terminated. Swallow background
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop_inject.js","sourceRoot":"","sources":["../../../src/server/methods/loop_inject.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,iFAAiF;AACjF,gFAAgF;AAChF,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,qBAAqB;AAErB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAQvC,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE;YACnC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBACtF,MAAM,CAAC,GAAG,MAAgB,CAAC;gBAC3B,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC3H,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;oBACvI,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBACtI,CAAC;gBACD,iEAAiE;gBACjE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC1C,IAAI,UAAU,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;gBAC/G,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI;oBAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC;gBAEjG,0EAA0E;gBAC1E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;gBAC7D,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC;gBACxC,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;gBAEpG,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;gBACtE,MAAM,
|
|
1
|
+
{"version":3,"file":"loop_inject.js","sourceRoot":"","sources":["../../../src/server/methods/loop_inject.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAkCvD,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;
|
|
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;AAkCvD,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CA+IlD"}
|
|
@@ -5,6 +5,7 @@ import { readFile } from "node:fs/promises";
|
|
|
5
5
|
import { Paths } from "../../index.js";
|
|
6
6
|
import { parseAliasesFromEnv } from "@plurnk/plurnk-providers";
|
|
7
7
|
import ProviderInstantiate from "../../core/ProviderInstantiate.js";
|
|
8
|
+
import SessionSettings from "../../core/session-settings.js";
|
|
8
9
|
import Envelope from "../envelope.js";
|
|
9
10
|
import DispatchAsPlurnk from "./_dispatchAsPlurnk.js";
|
|
10
11
|
export default class LoopRunMethod {
|
|
@@ -32,12 +33,8 @@ export default class LoopRunMethod {
|
|
|
32
33
|
throw new Error("loop.run: flags.mode must be 'ask' or 'act'");
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
|
-
const loopPersona = p.persona ?? null;
|
|
36
|
-
if (loopPersona !== null && typeof loopPersona !== "string") {
|
|
37
|
-
throw new Error("loop.run: persona must be a string or null");
|
|
38
|
-
}
|
|
39
36
|
// PLURNK_MAX_TURNS is the operator turn ceiling (§operator-config): -1 = no
|
|
40
|
-
// cap; positive = a hard cap a per-call maxTurns cannot exceed.
|
|
37
|
+
// cap; positive = a hard cap a per-call maxTurns cannot exceed. §operator-config-max-turns-ceiling
|
|
41
38
|
const ceiling = Number(process.env.PLURNK_MAX_TURNS ?? "-1");
|
|
42
39
|
const requested = p.maxTurns ?? ceiling;
|
|
43
40
|
const maxTurns = ceiling < 0 ? requested : (requested < 0 ? ceiling : Math.min(requested, ceiling));
|
|
@@ -64,24 +61,26 @@ export default class LoopRunMethod {
|
|
|
64
61
|
// connection's client run, so the packet never carries client op.*.
|
|
65
62
|
const modelRunId = ctx.session.modelRunId ?? (ctx.session.modelRunId = await Envelope.ensureModelRun(ctx.db, sessionId));
|
|
66
63
|
const systemPrompt = await readFile(Paths.instructionsSystem, "utf8");
|
|
67
|
-
const persona = await readFile(Paths.defaultPersona, "utf8");
|
|
68
64
|
// Operator reference docs (PLURNK_MD_<ALIAS>): materialize each as
|
|
69
65
|
// a plurnk:///<ALIAS>.md entry via the self-hosting keystone (a
|
|
70
66
|
// plurnk run, §actor-boundary) so the model READs it at turn 0 (Engine.runTurn
|
|
71
67
|
// foists the READ). The materializing EDITs land in the plurnk
|
|
72
68
|
// run's log, invisible to the model. Missing files are skipped.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
69
|
+
// #231 — materialize env docs (PLURNK_MD_*) UNION the session's client docs
|
|
70
|
+
// (settings.mdDocs); client wins on alias collision. Engine.runTurn foists a
|
|
71
|
+
// READ of the same set at turn-0.
|
|
72
|
+
const { mdDocs } = await SessionSettings.read(ctx.db, sessionId);
|
|
73
|
+
const docStmts = (await SessionSettings.resolveDocs(mdDocs)).map((doc) => ({
|
|
74
|
+
op: "EDIT", suffix: "", signal: null,
|
|
75
|
+
target: { kind: "url", raw: `plurnk:///${doc.entryName}`, scheme: "plurnk", username: null, password: null, hostname: null, port: null, pathname: `/${doc.entryName}`, params: {}, fragment: null },
|
|
76
|
+
lineMarker: null, body: doc.content, position: { line: 1, column: 1 },
|
|
77
|
+
}));
|
|
78
|
+
// #note12 — materialize the daughter scheme/exec reference docs at
|
|
79
|
+
// plurnk:///docs/<name> so the catalogue's doc-links READ + carry token cost.
|
|
80
|
+
for (const { name, content } of ctx.engine.docEntries()) {
|
|
82
81
|
docStmts.push({
|
|
83
82
|
op: "EDIT", suffix: "", signal: null,
|
|
84
|
-
target: { kind: "url", raw: `plurnk
|
|
83
|
+
target: { kind: "url", raw: `plurnk:///docs/${name}`, scheme: "plurnk", username: null, password: null, hostname: null, port: null, pathname: `/docs/${name}`, params: {}, fragment: null },
|
|
85
84
|
lineMarker: null, body: content, position: { line: 1, column: 1 },
|
|
86
85
|
});
|
|
87
86
|
}
|
|
@@ -92,8 +91,8 @@ export default class LoopRunMethod {
|
|
|
92
91
|
// Idle run → enqueue + start drain (await drain to completion).
|
|
93
92
|
const injected = await ctx.daemon.inject({
|
|
94
93
|
sessionId, runId: modelRunId, prompt: p.prompt,
|
|
95
|
-
provider,
|
|
96
|
-
maxTurns, flags: p.flags,
|
|
94
|
+
provider, systemPrompt,
|
|
95
|
+
maxTurns, flags: p.flags,
|
|
97
96
|
});
|
|
98
97
|
if (injected.action === "injected_next_turn") {
|
|
99
98
|
// Active drain — prompt landed in the current loop's
|
|
@@ -138,13 +137,12 @@ export default class LoopRunMethod {
|
|
|
138
137
|
action: "enqueued_new_loop",
|
|
139
138
|
};
|
|
140
139
|
},
|
|
141
|
-
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 §open-fold for client-side YOLO).
|
|
140
|
+
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 §open-fold for client-side YOLO). Returns `modelRunId` — the conversation's run; a conversation client reads it via `log.read({ runId })` for live tail and hydration (§214). Streams log/entry notifications; fires loop/terminated on completion.",
|
|
142
141
|
params: {
|
|
143
142
|
prompt: "string — user prompt for the loop",
|
|
144
143
|
maxTurns: "number? — per-loop turn request; the PLURNK_MAX_TURNS operator ceiling caps it when set (§operator-config)",
|
|
145
144
|
alias: "string? — model alias to use for this loop (overrides the daemon's PLURNK_MODEL)",
|
|
146
145
|
flags: "object? — per-loop flags. Currently accepts { yolo?: boolean }. Server YOLO; not for routine client use.",
|
|
147
|
-
persona: "string? — loop-level persona (text/markdown); takes precedence over session and run personas",
|
|
148
146
|
},
|
|
149
147
|
requiresInit: true,
|
|
150
148
|
longRunning: true,
|
|
@@ -1 +1 @@
|
|
|
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,mBAAmB,MAAM,mCAAmC,CAAC;AACpE,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"loop_run.js","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_attach.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_attach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"session_attach.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_attach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAGvD,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAkClD"}
|
|
@@ -13,30 +13,24 @@ export default class SessionAttachMethod {
|
|
|
13
13
|
if (p.runName !== undefined && (typeof p.runName !== "string" || p.runName.length === 0)) {
|
|
14
14
|
throw new Error("session.attach: runName must be a non-empty string");
|
|
15
15
|
}
|
|
16
|
+
// §methods-session-attach — reject reserved run names, case-insensitively
|
|
16
17
|
if (typeof p.runName === "string" && Envelope.RESERVED_RUN_NAMES.has(p.runName.toLowerCase())) {
|
|
17
18
|
throw new Error(`session.attach: runName "${p.runName}" is reserved`);
|
|
18
19
|
}
|
|
19
|
-
const
|
|
20
|
-
if (persona !== null && typeof persona !== "string") {
|
|
21
|
-
throw new Error("session.attach: persona must be a string or null");
|
|
22
|
-
}
|
|
23
|
-
const envelope = await Envelope.attachToSession(ctx.db, p.id, { runId: p.runId, runName: p.runName, persona });
|
|
20
|
+
const envelope = await Envelope.attachToSession(ctx.db, p.id, { runId: p.runId, runName: p.runName });
|
|
24
21
|
ctx.attachSession(envelope);
|
|
25
22
|
return {
|
|
26
23
|
id: envelope.sessionId,
|
|
27
24
|
name: envelope.sessionName,
|
|
28
|
-
sessionPersona: envelope.sessionPersona,
|
|
29
25
|
runId: envelope.runId,
|
|
30
26
|
runName: envelope.runName,
|
|
31
|
-
runPersona: envelope.runPersona,
|
|
32
27
|
};
|
|
33
28
|
},
|
|
34
|
-
description: "Attach this connection to an existing session. Optionally resume an existing run by id or name; otherwise creates a fresh run.
|
|
29
|
+
description: "Attach this connection to an existing session. Optionally resume an existing run by id or name; otherwise creates a fresh run.",
|
|
35
30
|
params: {
|
|
36
31
|
id: "number — session id to attach to",
|
|
37
32
|
runId: "number? — resume the run with this id (must belong to the session)",
|
|
38
33
|
runName: "string? — resume the run with this name within the session; create if absent",
|
|
39
|
-
persona: "string? — run-level persona (text/markdown); applied to a NEWLY created run only",
|
|
40
34
|
},
|
|
41
35
|
});
|
|
42
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_attach.js","sourceRoot":"","sources":["../../../src/server/methods/session_attach.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE;YACtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"session_attach.js","sourceRoot":"","sources":["../../../src/server/methods/session_attach.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE;YACtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,MAA0D,CAAC;gBACrE,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBACjE,CAAC;gBACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;oBACvF,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBAC1E,CAAC;gBACD,0EAA0E;gBAC1E,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBAC5F,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC;gBAC1E,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC5B,OAAO;oBACH,EAAE,EAAE,QAAQ,CAAC,SAAS;oBACtB,IAAI,EAAE,QAAQ,CAAC,WAAW;oBAC1B,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;iBAC5B,CAAC;YACN,CAAC;YACD,WAAW,EAAE,gIAAgI;YAC7I,MAAM,EAAE;gBACJ,EAAE,EAAE,kCAAkC;gBACtC,KAAK,EAAE,oEAAoE;gBAC3E,OAAO,EAAE,8EAA8E;aAC1F;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -10,7 +10,7 @@ export default class SessionConstraintsMethod {
|
|
|
10
10
|
if (ctx.session === null)
|
|
11
11
|
throw new Error("session.constrain requires an attached session");
|
|
12
12
|
const { effect, glob } = SessionConstraintsMethod.#parse(params, "session.constrain");
|
|
13
|
-
await ctx.db.crud_insert_session_constraint.run({ session_id: ctx.session.sessionId, effect, glob });
|
|
13
|
+
await ctx.db.crud_insert_session_constraint.run({ session_id: ctx.session.sessionId, effect, glob }); // the overlay is session-scoped, never per-run — §machine-processes-one-overlay
|
|
14
14
|
await GitMembership.resolveGitMembership(ctx.db, ctx.session.sessionId, undefined);
|
|
15
15
|
return { effect, glob };
|
|
16
16
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_constraints.js","sourceRoot":"","sources":["../../../src/server/methods/session_constraints.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,sFAAsF;AACtF,mFAAmF;AACnF,+EAA+E;AAC/E,MAAM,OAAO,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEvE,MAAM,CAAC,OAAO,OAAO,wBAAwB;IACzC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,mBAAmB,EAAE;YACzC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBAC5F,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,wBAAwB,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;gBACtF,MAAO,GAAG,CAAC,EAAE,CAAC,8BAA6C,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"session_constraints.js","sourceRoot":"","sources":["../../../src/server/methods/session_constraints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_create.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAUvD,MAAM,CAAC,OAAO,OAAO,mBAAmB;;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"session_create.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAUvD,MAAM,CAAC,OAAO,OAAO,mBAAmB;;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAoHlD"}
|
|
@@ -7,6 +7,8 @@ import GitMembership from "../../core/git-membership.js";
|
|
|
7
7
|
const CONSTRAINT_EFFECTS = new Set(["pick", "hide", "view"]);
|
|
8
8
|
export default class SessionCreateMethod {
|
|
9
9
|
static register(registry) {
|
|
10
|
+
// session.create makes a session, attaches this connection, and returns the auto-created
|
|
11
|
+
// run's identity (runId/runName) so the client skips the pending-dance. §methods-session-create
|
|
10
12
|
registry.registerMethod("session.create", {
|
|
11
13
|
handler: async (params, ctx) => {
|
|
12
14
|
const p = params;
|
|
@@ -19,15 +21,14 @@ export default class SessionCreateMethod {
|
|
|
19
21
|
throw new Error("session.create: projectRoot must be an absolute path");
|
|
20
22
|
}
|
|
21
23
|
}
|
|
22
|
-
const persona = p.persona ?? null;
|
|
23
|
-
if (persona !== null && typeof persona !== "string") {
|
|
24
|
-
throw new Error("session.create: persona must be a string or null");
|
|
25
|
-
}
|
|
26
24
|
// #200 — seed the membership overlay atomically with the session so
|
|
27
25
|
// turn-1's manifest already reflects it (no follow-up session.constrain
|
|
28
26
|
// RPC race). Same effects/semantics as session.constrain.
|
|
29
27
|
const constraints = SessionCreateMethod.#parseConstraints(p.constraints);
|
|
30
|
-
|
|
28
|
+
// #231 — client-chosen open-context, persisted on the session and read at
|
|
29
|
+
// turn-0 with precedence over env (manifestItems replaces, mdDocs unions).
|
|
30
|
+
const settings = SessionCreateMethod.#parseSettings(p.settings);
|
|
31
|
+
const envelope = await Envelope.createClientEnvelope(ctx.db, { name: p.name, projectRoot, settings });
|
|
31
32
|
if (constraints.length > 0) {
|
|
32
33
|
for (const { effect, glob } of constraints) {
|
|
33
34
|
await ctx.db.crud_insert_session_constraint.run({ session_id: envelope.sessionId, effect, glob });
|
|
@@ -39,20 +40,19 @@ export default class SessionCreateMethod {
|
|
|
39
40
|
id: envelope.sessionId,
|
|
40
41
|
name: envelope.sessionName,
|
|
41
42
|
projectRoot: envelope.projectRoot,
|
|
42
|
-
persona: envelope.sessionPersona,
|
|
43
43
|
});
|
|
44
44
|
return {
|
|
45
45
|
id: envelope.sessionId, name: envelope.sessionName,
|
|
46
46
|
runId: envelope.runId, runName: envelope.runName,
|
|
47
|
-
projectRoot: envelope.projectRoot,
|
|
47
|
+
projectRoot: envelope.projectRoot,
|
|
48
48
|
};
|
|
49
49
|
},
|
|
50
|
-
description: "Create a new session and attach this connection to it. Optionally pin the session to a workspace via projectRoot
|
|
50
|
+
description: "Create a new session and attach this connection to it. Optionally pin the session to a workspace via projectRoot.",
|
|
51
51
|
params: {
|
|
52
52
|
name: "string? — session name (auto-generated if omitted)",
|
|
53
53
|
projectRoot: "string? — absolute path to the client's workspace; null/omitted = headless mode (no disk side-effects on file ops)",
|
|
54
|
-
persona: "string? — session-level persona (text/markdown); cascades as: loops.persona > runs.persona > sessions.persona > PLURNK_PERSONA file",
|
|
55
54
|
constraints: "array? — [{effect, glob}] membership overlay seeded atomically at creation so turn-1's manifest is right with no follow-up RPC. effect: pick (admit a file git misses / the sole source when headless) | hide (drop a tracked match) | view (read-only). glob: node:path glob vs workspace-relative paths.",
|
|
55
|
+
settings: "object? — client-chosen open-context, persisted per session, read at turn-0 over env. { manifestItems?: number (-1 full | 0 off | N first-N; replaces PLURNK_MANIFEST_ITEMS), mdDocs?: [{alias, content}] (unioned with server PLURNK_MD_* docs; client wins on alias collision) }",
|
|
56
56
|
},
|
|
57
57
|
});
|
|
58
58
|
registry.registerNotification("session/created", {
|
|
@@ -61,7 +61,6 @@ export default class SessionCreateMethod {
|
|
|
61
61
|
id: "number — session id",
|
|
62
62
|
name: "string — session name",
|
|
63
63
|
projectRoot: "string|null — workspace pointer for the session (null = headless)",
|
|
64
|
-
persona: "string|null — session-level persona override (null = no override at this level)",
|
|
65
64
|
},
|
|
66
65
|
});
|
|
67
66
|
}
|
|
@@ -81,5 +80,51 @@ export default class SessionCreateMethod {
|
|
|
81
80
|
return { effect: e.effect, glob: e.glob };
|
|
82
81
|
});
|
|
83
82
|
}
|
|
83
|
+
// #231 — validate + serialize the client open-context bag. manifestItems is a scalar
|
|
84
|
+
// (replace); mdDocs is [{alias, content}] (union'd with env at turn-0). Alias is a clean
|
|
85
|
+
// entry-name fragment ([\w.-]) since it becomes plurnk:///<alias>.md. Returns JSON ('{}'
|
|
86
|
+
// when absent). Operator-arcane knobs stay env-only by omission — this is the client surface.
|
|
87
|
+
static #parseSettings(raw) {
|
|
88
|
+
if (raw === undefined || raw === null)
|
|
89
|
+
return "{}";
|
|
90
|
+
if (typeof raw !== "object" || Array.isArray(raw))
|
|
91
|
+
throw new Error("session.create: settings must be an object");
|
|
92
|
+
const r = raw;
|
|
93
|
+
const out = {};
|
|
94
|
+
if (r.manifestItems !== undefined) {
|
|
95
|
+
if (typeof r.manifestItems !== "number" || !Number.isInteger(r.manifestItems)) {
|
|
96
|
+
throw new Error("session.create: settings.manifestItems must be an integer (-1 full | 0 off | N first-N)");
|
|
97
|
+
}
|
|
98
|
+
out.manifestItems = r.manifestItems;
|
|
99
|
+
}
|
|
100
|
+
// #232 — tighten-only ceilings: a client may narrow, never widen (composed
|
|
101
|
+
// most-restrictive-wins at each read-site). maxCommands min()s the env ceiling;
|
|
102
|
+
// git:false denies git for the session (env AND session).
|
|
103
|
+
if (r.maxCommands !== undefined) {
|
|
104
|
+
if (typeof r.maxCommands !== "number" || !Number.isInteger(r.maxCommands) || r.maxCommands < 1) {
|
|
105
|
+
throw new Error("session.create: settings.maxCommands must be a positive integer (a tighten-only ceiling)");
|
|
106
|
+
}
|
|
107
|
+
out.maxCommands = r.maxCommands;
|
|
108
|
+
}
|
|
109
|
+
if (r.git !== undefined) {
|
|
110
|
+
if (typeof r.git !== "boolean")
|
|
111
|
+
throw new Error("session.create: settings.git must be a boolean (false denies git for the session)");
|
|
112
|
+
out.git = r.git;
|
|
113
|
+
}
|
|
114
|
+
if (r.mdDocs !== undefined) {
|
|
115
|
+
if (!Array.isArray(r.mdDocs))
|
|
116
|
+
throw new Error("session.create: settings.mdDocs must be an array");
|
|
117
|
+
out.mdDocs = r.mdDocs.map((d, i) => {
|
|
118
|
+
const e = d;
|
|
119
|
+
if (typeof e.alias !== "string" || e.alias.length === 0 || /[^\w.-]/.test(e.alias)) {
|
|
120
|
+
throw new Error(`session.create: settings.mdDocs[${i}].alias must be a non-empty [\\w.-] string`);
|
|
121
|
+
}
|
|
122
|
+
if (typeof e.content !== "string")
|
|
123
|
+
throw new Error(`session.create: settings.mdDocs[${i}].content must be a string`);
|
|
124
|
+
return { alias: e.alias, content: e.content };
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
return JSON.stringify(out);
|
|
128
|
+
}
|
|
84
129
|
}
|
|
85
130
|
//# sourceMappingURL=session_create.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_create.js","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,gFAAgF;AAChF,+EAA+E;AAC/E,mCAAmC;AACnC,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAElF,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE;YACtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"session_create.js","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session_prompts.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAOvD,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAqBlD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import Envelope from "../envelope.js";
|
|
2
|
+
// #238 — session.prompts: a session's prior user prompts, newest-first, for a client's
|
|
3
|
+
// up/down readline history. The daemon is the source of truth (the client's in-memory
|
|
4
|
+
// history dies with its process); this hands it over directly instead of forcing the
|
|
5
|
+
// log-archaeology path (session.runs → log.read → filter prompt entries → dig tx.body).
|
|
6
|
+
export default class SessionPromptsMethod {
|
|
7
|
+
static register(registry) {
|
|
8
|
+
registry.registerMethod("session.prompts", {
|
|
9
|
+
handler: async (params, ctx) => {
|
|
10
|
+
const p = params;
|
|
11
|
+
const sessionId = p.id ?? ctx.session?.sessionId;
|
|
12
|
+
if (typeof sessionId !== "number") {
|
|
13
|
+
throw new Error("session.prompts requires params.id: number (or an attached session)");
|
|
14
|
+
}
|
|
15
|
+
const limit = p.limit ?? 100;
|
|
16
|
+
if (typeof limit !== "number" || !Number.isInteger(limit) || limit < 1) {
|
|
17
|
+
throw new Error("session.prompts: limit must be a positive integer");
|
|
18
|
+
}
|
|
19
|
+
return { prompts: await Envelope.listPromptsForSession(ctx.db, sessionId, limit) };
|
|
20
|
+
},
|
|
21
|
+
description: "List a session's prior user prompts, newest-first (for client up/down history); defaults to the attached session.",
|
|
22
|
+
params: {
|
|
23
|
+
id: "number? — session id; defaults to the attached session",
|
|
24
|
+
limit: "number? — max prompts returned, newest-first (default 100)",
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=session_prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session_prompts.js","sourceRoot":"","sources":["../../../src/server/methods/session_prompts.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,uFAAuF;AACvF,sFAAsF;AACtF,qFAAqF;AACrF,wFAAwF;AACxF,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,EAAE;YACvC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,MAAyC,CAAC;gBACpD,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;gBACjD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;gBAC3F,CAAC;gBACD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;gBAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACrE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACzE,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;YACvF,CAAC;YACD,WAAW,EAAE,mHAAmH;YAChI,MAAM,EAAE;gBACJ,EAAE,EAAE,wDAAwD;gBAC5D,KAAK,EAAE,4DAA4D;aACtE;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type Versions = {
|
|
2
|
+
service: {
|
|
3
|
+
installed: string;
|
|
4
|
+
latest?: string;
|
|
5
|
+
};
|
|
6
|
+
client: {
|
|
7
|
+
latest?: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export default class VersionInfo {
|
|
11
|
+
#private;
|
|
12
|
+
static get(): Promise<Versions>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=version-info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-info.d.ts","sourceRoot":"","sources":["../../src/server/version-info.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,QAAQ,GAAG;IAAE,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAExG,MAAM,CAAC,OAAO,OAAO,WAAW;;WAQf,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;CAkDxC"}
|