@plurnk/plurnk-service 0.55.0 → 0.57.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.
Files changed (117) hide show
  1. package/.env.example +9 -14
  2. package/SPEC.md +133 -99
  3. package/dist/content/matcher.d.ts +4 -0
  4. package/dist/content/matcher.d.ts.map +1 -1
  5. package/dist/content/matcher.js +73 -92
  6. package/dist/content/matcher.js.map +1 -1
  7. package/dist/core/ChannelWrite.d.ts +7 -1
  8. package/dist/core/ChannelWrite.d.ts.map +1 -1
  9. package/dist/core/ChannelWrite.js +8 -2
  10. package/dist/core/ChannelWrite.js.map +1 -1
  11. package/dist/core/ChannelWrite.sql +12 -2
  12. package/dist/core/Engine.d.ts +9 -0
  13. package/dist/core/Engine.d.ts.map +1 -1
  14. package/dist/core/Engine.js +345 -104
  15. package/dist/core/Engine.js.map +1 -1
  16. package/dist/core/Engine.sql +44 -2
  17. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  18. package/dist/core/SchemeRegistry.js +6 -1
  19. package/dist/core/SchemeRegistry.js.map +1 -1
  20. package/dist/core/fork.d.ts.map +1 -1
  21. package/dist/core/fork.js +20 -4
  22. package/dist/core/fork.js.map +1 -1
  23. package/dist/core/fork.sql +29 -0
  24. package/dist/core/git-membership.d.ts.map +1 -1
  25. package/dist/core/git-membership.js +40 -4
  26. package/dist/core/git-membership.js.map +1 -1
  27. package/dist/core/packet-inject.d.ts +2 -0
  28. package/dist/core/packet-inject.d.ts.map +1 -1
  29. package/dist/core/packet-inject.js +28 -1
  30. package/dist/core/packet-inject.js.map +1 -1
  31. package/dist/core/packet-wire.d.ts.map +1 -1
  32. package/dist/core/packet-wire.js +32 -28
  33. package/dist/core/packet-wire.js.map +1 -1
  34. package/dist/core/session-settings.d.ts +1 -6
  35. package/dist/core/session-settings.d.ts.map +1 -1
  36. package/dist/core/session-settings.js +4 -13
  37. package/dist/core/session-settings.js.map +1 -1
  38. package/dist/schemes/Exec.d.ts.map +1 -1
  39. package/dist/schemes/Exec.js +41 -7
  40. package/dist/schemes/Exec.js.map +1 -1
  41. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  42. package/dist/schemes/ExecOutputScheme.js +2 -1
  43. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  44. package/dist/schemes/File.d.ts.map +1 -1
  45. package/dist/schemes/File.js +9 -6
  46. package/dist/schemes/File.js.map +1 -1
  47. package/dist/schemes/Log.d.ts +4 -0
  48. package/dist/schemes/Log.d.ts.map +1 -1
  49. package/dist/schemes/Log.js +35 -19
  50. package/dist/schemes/Log.js.map +1 -1
  51. package/dist/schemes/Log.sql +14 -11
  52. package/dist/schemes/Run.d.ts +7 -1
  53. package/dist/schemes/Run.d.ts.map +1 -1
  54. package/dist/schemes/Run.js +49 -9
  55. package/dist/schemes/Run.js.map +1 -1
  56. package/dist/schemes/_entry-find.d.ts +16 -1
  57. package/dist/schemes/_entry-find.d.ts.map +1 -1
  58. package/dist/schemes/_entry-find.js +84 -50
  59. package/dist/schemes/_entry-find.js.map +1 -1
  60. package/dist/schemes/_entry-find.sql +23 -0
  61. package/dist/schemes/_entry-graph.d.ts +6 -1
  62. package/dist/schemes/_entry-graph.d.ts.map +1 -1
  63. package/dist/schemes/_entry-graph.js +35 -22
  64. package/dist/schemes/_entry-graph.js.map +1 -1
  65. package/dist/schemes/_entry-graph.sql +9 -7
  66. package/dist/schemes/_entry-manifest.d.ts +1 -1
  67. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  68. package/dist/schemes/_entry-manifest.js +38 -7
  69. package/dist/schemes/_entry-manifest.js.map +1 -1
  70. package/dist/schemes/_entry-ops.d.ts +5 -0
  71. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  72. package/dist/schemes/_entry-ops.js +14 -0
  73. package/dist/schemes/_entry-ops.js.map +1 -1
  74. package/dist/schemes/_entry-semantic.d.ts +1 -1
  75. package/dist/schemes/_entry-semantic.d.ts.map +1 -1
  76. package/dist/schemes/_entry-semantic.js +15 -12
  77. package/dist/schemes/_entry-semantic.js.map +1 -1
  78. package/dist/schemes/exec-abort.d.ts +4 -0
  79. package/dist/schemes/exec-abort.d.ts.map +1 -1
  80. package/dist/schemes/exec-abort.js +6 -0
  81. package/dist/schemes/exec-abort.js.map +1 -1
  82. package/dist/server/Daemon.d.ts.map +1 -1
  83. package/dist/server/Daemon.js +133 -19
  84. package/dist/server/Daemon.js.map +1 -1
  85. package/dist/server/MethodRegistry.d.ts +2 -0
  86. package/dist/server/MethodRegistry.d.ts.map +1 -1
  87. package/dist/server/drain.sql +17 -5
  88. package/dist/server/dsl.d.ts +9 -1
  89. package/dist/server/dsl.d.ts.map +1 -1
  90. package/dist/server/dsl.js +31 -4
  91. package/dist/server/dsl.js.map +1 -1
  92. package/dist/server/envelope.d.ts.map +1 -1
  93. package/dist/server/envelope.js +0 -9
  94. package/dist/server/envelope.js.map +1 -1
  95. package/dist/server/logEntry.d.ts.map +1 -1
  96. package/dist/server/logEntry.js +3 -1
  97. package/dist/server/logEntry.js.map +1 -1
  98. package/dist/server/methods/log_read.d.ts.map +1 -1
  99. package/dist/server/methods/log_read.js +7 -1
  100. package/dist/server/methods/log_read.js.map +1 -1
  101. package/dist/server/methods/log_read.sql +17 -7
  102. package/dist/server/methods/op_look.d.ts +5 -0
  103. package/dist/server/methods/op_look.d.ts.map +1 -0
  104. package/dist/server/methods/op_look.js +30 -0
  105. package/dist/server/methods/op_look.js.map +1 -0
  106. package/dist/server/methods/op_parse.d.ts.map +1 -1
  107. package/dist/server/methods/op_parse.js +7 -2
  108. package/dist/server/methods/op_parse.js.map +1 -1
  109. package/dist/server/methods/session_constraints.js +1 -1
  110. package/dist/server/methods/session_constraints.js.map +1 -1
  111. package/dist/server/methods/session_create.d.ts.map +1 -1
  112. package/dist/server/methods/session_create.js +7 -14
  113. package/dist/server/methods/session_create.js.map +1 -1
  114. package/docs/run.md +3 -1
  115. package/migrations/0000-00-00.01_schema.sql +21 -1
  116. package/package.json +10 -10
  117. package/requirements.md +4 -0
@@ -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,EAAE,MAAM,CAAC,CAAC,CAAC;AAE/E,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,CAAC,gFAAgF;gBACtM,MAAM,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACnF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC5B,CAAC;YACD,WAAW,EAAE,yYAAyY;YACtZ,MAAM,EAAE;gBACJ,MAAM,EAAE,4CAA4C;gBACpD,IAAI,EAAE,8KAA8K;aACvL;YACD,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,QAAQ,CAAC,cAAc,CAAC,qBAAqB,EAAE;YAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBAC9F,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,wBAAwB,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;gBACxF,MAAO,GAAG,CAAC,EAAE,CAAC,8BAA6C,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrH,MAAM,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACnF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC5B,CAAC;YACD,WAAW,EAAE,yJAAyJ;YACtK,MAAM,EAAE;gBACJ,MAAM,EAAE,4CAA4C;gBACpD,IAAI,EAAE,6BAA6B;aACtC;YACD,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,QAAQ,CAAC,cAAc,CAAC,qBAAqB,EAAE;YAC3C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;gBAC5B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBAC9F,MAAM,WAAW,GAAG,MAAO,GAAG,CAAC,EAAE,CAAC,6BAA4C,CAAC,GAAG,CAAmC,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC5J,OAAO,EAAE,WAAW,EAAE,CAAC;YAC3B,CAAC;YACD,WAAW,EAAE,oEAAoE;YACjF,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,MAAe,EAAE,MAAc;QACzC,MAAM,CAAC,GAAG,MAA8C,CAAC;QACzD,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,mDAAmD,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,mCAAmC,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;CACJ"}
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;CAkIlD"}
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;CA4HlD"}
@@ -26,7 +26,7 @@ export default class SessionCreateMethod {
26
26
  // RPC race). Same effects/semantics as session.constrain.
27
27
  const constraints = SessionCreateMethod.#parseConstraints(p.constraints);
28
28
  // #231 — client-chosen open-context, persisted on the session and read at
29
- // turn-0 with precedence over env (manifestItems replaces, mdDocs unions).
29
+ // turn-0 with precedence over env (filesItems replaces, mdDocs unions).
30
30
  const settings = SessionCreateMethod.#parseSettings(p.settings);
31
31
  const envelope = await Envelope.createClientEnvelope(ctx.db, { name: p.name, projectRoot, settings });
32
32
  if (constraints.length > 0) {
@@ -52,7 +52,7 @@ export default class SessionCreateMethod {
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
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) | repo (declare a git repo folder anywhere — its members join the manifest, addressed relative to the project root: clean under it, `..`-prefixed outside). glob: node:path glob vs workspace-relative paths (a folder for repo).",
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), autoReadAgents?: boolean (#268 — per-session override of PLURNK_AGENTS_AUTO; forces the service AGENTS auto-load on/off for this session, else the env default), client?: string (#249 — session-stable frontend id, e.g. 'plurnk.nvim/1.4.0', forwarded to the plurnk provider as Plurnk-Client; dropped by other providers) }",
55
+ settings: "object? — client-chosen open-context, persisted per session, read at turn-0 over env. { filesItems?: number (-1 full | 0 off | N first-N; replaces PLURNK_FILES_ITEMS), mdDocs?: [{alias, content}] (unioned with server PLURNK_MD_* docs; client wins on alias collision), client?: string (#249 — session-stable frontend id, e.g. 'plurnk.nvim/1.4.0', forwarded to the plurnk provider as Plurnk-Client; dropped by other providers) }",
56
56
  },
57
57
  });
58
58
  registry.registerNotification("session/created", {
@@ -80,7 +80,7 @@ export default class SessionCreateMethod {
80
80
  return { effect: e.effect, glob: e.glob };
81
81
  });
82
82
  }
83
- // #231 — validate + serialize the client open-context bag. manifestItems is a scalar
83
+ // #231 — validate + serialize the client open-context bag. filesItems is a scalar
84
84
  // (replace); mdDocs is [{alias, content}] (union'd with env at turn-0). Alias is a clean
85
85
  // entry-name fragment ([\w.-]) since it becomes plurnk:///<alias>.md. Returns JSON ('{}'
86
86
  // when absent). Operator-arcane knobs stay env-only by omission — this is the client surface.
@@ -91,11 +91,11 @@ export default class SessionCreateMethod {
91
91
  throw new Error("session.create: settings must be an object");
92
92
  const r = raw;
93
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)");
94
+ if (r.filesItems !== undefined) {
95
+ if (typeof r.filesItems !== "number" || !Number.isInteger(r.filesItems)) {
96
+ throw new Error("session.create: settings.filesItems must be an integer (-1 full | 0 off | N first-N)");
97
97
  }
98
- out.manifestItems = r.manifestItems;
98
+ out.filesItems = r.filesItems;
99
99
  }
100
100
  // #232 — tighten-only ceilings: a client may narrow, never widen (composed
101
101
  // most-restrictive-wins at each read-site). maxCommands min()s the env ceiling;
@@ -111,13 +111,6 @@ export default class SessionCreateMethod {
111
111
  throw new Error("session.create: settings.git must be a boolean (false denies git for the session)");
112
112
  out.git = r.git;
113
113
  }
114
- // #268 — per-session OVERRIDE of the service AGENTS auto-load (env PLURNK_AGENTS_AUTO / FILES).
115
- // The service owns the pick + read; this just forces it on/off for one session (else env default).
116
- if (r.autoReadAgents !== undefined) {
117
- if (typeof r.autoReadAgents !== "boolean")
118
- throw new Error("session.create: settings.autoReadAgents must be a boolean (per-session override of PLURNK_AGENTS_AUTO)");
119
- out.autoReadAgents = r.autoReadAgents;
120
- }
121
114
  // #249 — session-stable frontend id (e.g. "plurnk.nvim/1.4.0"), forwarded to the plurnk
122
115
  // provider as Plurnk-Client telemetry; ignored by every other provider. Self-identified.
123
116
  if (r.client !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"session_create.js","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"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"}
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,6EAA6E;AAC7E,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE1F,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,yFAAyF;QACzF,gGAAgG;QAChG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE;YACtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,MAAmG,CAAC;gBAC9G,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;gBAC1C,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACvB,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9D,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;oBACtF,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC3B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;oBAC5E,CAAC;gBACL,CAAC;gBACD,oEAAoE;gBACpE,wEAAwE;gBACxE,0DAA0D;gBAC1D,MAAM,WAAW,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBACzE,0EAA0E;gBAC1E,wEAAwE;gBACxE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAChE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACtG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC;wBACzC,MAAO,GAAG,CAAC,EAAE,CAAC,8BAA6C,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtH,CAAC;oBACD,MAAM,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACpF,CAAC;gBACD,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC5B,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAAE;oBACjC,EAAE,EAAE,QAAQ,CAAC,SAAS;oBACtB,IAAI,EAAE,QAAQ,CAAC,WAAW;oBAC1B,WAAW,EAAE,QAAQ,CAAC,WAAW;iBACpC,CAAC,CAAC;gBACH,OAAO;oBACH,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW;oBAClD,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO;oBAChD,WAAW,EAAE,QAAQ,CAAC,WAAW;iBACpC,CAAC;YACN,CAAC;YACD,WAAW,EAAE,mHAAmH;YAChI,MAAM,EAAE;gBACJ,IAAI,EAAE,oDAAoD;gBAC1D,WAAW,EAAE,oHAAoH;gBACjI,WAAW,EAAE,2dAA2d;gBACxe,QAAQ,EAAE,4aAA4a;aACzb;SACJ,CAAC,CAAC;QAEH,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,EAAE;YAC7C,WAAW,EAAE,qEAAqE;YAClF,MAAM,EAAE;gBACJ,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EAAE,mEAAmE;aACnF;SACJ,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAY;QACjC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACzF,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpB,MAAM,CAAC,GAAG,CAAyC,CAAC;YACpD,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,mDAAmD,CAAC,CAAC;YACzG,CAAC;YACD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,mCAAmC,CAAC,CAAC;YACzF,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kFAAkF;IAClF,yFAAyF;IACzF,yFAAyF;IACzF,8FAA8F;IAC9F,MAAM,CAAC,cAAc,CAAC,GAAY;QAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACnD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACjH,MAAM,CAAC,GAAG,GAAyG,CAAC;QACpH,MAAM,GAAG,GAAsI,EAAE,CAAC;QAClJ,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;YAC5G,CAAC;YACD,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;QAClC,CAAC;QACD,2EAA2E;QAC3E,gFAAgF;QAChF,0DAA0D;QAC1D,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;gBAC7F,MAAM,IAAI,KAAK,CAAC,oIAAoI,CAAC,CAAC;YAC1J,CAAC;YACD,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;YACrI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QACpB,CAAC;QACD,wFAAwF;QACxF,yFAAyF;QACzF,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC,CAAC;YAC9H,CAAC;YACD,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAClG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/B,MAAM,CAAC,GAAG,CAA2C,CAAC;gBACtD,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjF,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,4CAA4C,CAAC,CAAC;gBACtG,CAAC;gBACD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,4BAA4B,CAAC,CAAC;gBACrH,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAClD,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;CACJ"}
package/docs/run.md CHANGED
@@ -1,3 +1,5 @@
1
1
  # `run://` — sibling agent runs
2
2
 
3
- Sister agent runs in this session. `run:///.` is you; `run:///<name>` is a sibling. EDIT(run:///name):prompt SPAWNS a new sibling seeded with that prompt; SEND(run:///name):msg messages a sibling, waking it if idle; COPY(run:///.):prompt FORKS — branches a run with your log so far, then continues it with the prompt; KILL(run:///name) ENDS a sibling. Siblings share this session's files and entries; only the conversation log is private to each.
3
+ Sister agent runs in this session. `run://.` is you; `run://<name>` is a sibling. `EDIT(run://name):prompt` SPAWNS a new sibling seeded with that prompt; `SEND(run://name):msg` messages a sibling, waking it if idle; `COPY(run://.):prompt` FORKS — branches a run with your log so far, then continues it with the prompt; `KILL(run://name)` ENDS a sibling. Siblings share this session's files and entries; only the conversation log is private to each.
4
+
5
+ The slash count is the discriminator: **control** addresses the run by NAME as authority — `run://name`, two slashes, no path. **Storage** addresses an entry — `run://name/path` reads a sibling's private scratch, `run:///path` (three slashes, empty authority) writes your own. So `EDIT(run://worker):…` spawns a worker; `EDIT(run:///todo.md):…` writes a note to your own scratch.
@@ -93,9 +93,17 @@ CREATE TABLE IF NOT EXISTS turns (
93
93
  usage_completion INTEGER NOT NULL DEFAULT 0 CHECK (usage_completion >= 0),
94
94
  usage_cached INTEGER NOT NULL DEFAULT 0 CHECK (usage_cached >= 0),
95
95
  usage_cost_pico INTEGER NOT NULL DEFAULT 0 CHECK (usage_cost_pico >= 0),
96
+ -- #274 — the context window of the model that RAN this turn (provider.contextSize), so the
97
+ -- gauge denominator matches the loop's actual model under any /model switch. NULL = the
98
+ -- provider can't report a window (the client omits the gauge).
99
+ usage_context_size INTEGER CHECK (usage_context_size IS NULL OR usage_context_size >= 1),
96
100
  packet TEXT NOT NULL CHECK (json_valid(packet)),
97
101
  finish_reason TEXT,
98
102
  model TEXT NOT NULL DEFAULT 'unknown' CHECK (length(model) >= 1),
103
+ -- #252 — opaque provider→client metadata passthrough (e.g. balancePico). Stored
104
+ -- UNENFORCED (json_valid only, no schema): the canonical-field contract lives between
105
+ -- the provider framework (normalizes) and the client (renders), never the service.
106
+ meta TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(meta)),
99
107
  FOREIGN KEY (loop_id) REFERENCES loops(id) ON DELETE CASCADE
100
108
  ) STRICT;
101
109
 
@@ -268,7 +276,13 @@ CREATE TABLE IF NOT EXISTS log_entries (
268
276
  -- NULL = the owning run itself (self), rendered without a run= label.
269
277
  source TEXT,
270
278
 
271
- op TEXT NOT NULL CHECK (op IN ('FIND', 'READ', 'EDIT', 'COPY', 'MOVE', 'OPEN', 'FOLD', 'SEND', 'EXEC', 'KILL', 'PLAN')),
279
+ -- 'error' is an ACTIONLESS row (§telemetry errors are log items): a parse failure that
280
+ -- produced no op still records a log entry (op='error', status_rx≥400, no target) so the model
281
+ -- can fold/kill/recall its own mistakes like any other log row — one budget surface, the log.
282
+ -- 'model' is an ACTIONLESS row too (§model-entry): the model's own verbatim emission, mirrored
283
+ -- back as a foldable log item so it can finally SEE its prior output (born folded; the turn-0
284
+ -- exemplar is born open). text/vnd.plurnk-typed; OPEN/FOLD/KILL-able like any row.
285
+ op TEXT NOT NULL CHECK (op IN ('FIND', 'READ', 'EDIT', 'COPY', 'MOVE', 'OPEN', 'FOLD', 'SEND', 'EXEC', 'KILL', 'PLAN', 'error', 'model')),
272
286
  suffix TEXT NOT NULL DEFAULT '',
273
287
  signal TEXT CHECK (signal IS NULL OR json_valid(signal)),
274
288
 
@@ -413,6 +427,12 @@ CREATE TABLE IF NOT EXISTS subscriptions (
413
427
  scheme TEXT NOT NULL CHECK (length(scheme) > 0),
414
428
  handle TEXT NOT NULL CHECK (length(handle) > 0),
415
429
  opened_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
430
+ -- grammar 0.74.20 EXEC `<T,P>` poll cadence (seconds). NULL = not polled. While the owning
431
+ -- loop hibernates (202), the daemon wakes it every poll_seconds to inspect this stream (§exec-poll).
432
+ poll_seconds INTEGER CHECK (poll_seconds IS NULL OR poll_seconds > 0),
433
+ -- EXEC `<0>` — turn-scoped: the stream is reaped at the run's next pre-turn so it never survives
434
+ -- into the subsequent turn; its terminal output surfaces born-OPEN like any conclusion. §exec-poll
435
+ turn_scoped INTEGER NOT NULL DEFAULT 0 CHECK (turn_scoped IN (0, 1)),
416
436
  closed_at TEXT,
417
437
  close_status INTEGER CHECK (close_status IS NULL OR (close_status BETWEEN 100 AND 599)),
418
438
  CHECK ((closed_at IS NULL AND close_status IS NULL)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-service",
3
- "version": "0.55.0",
3
+ "version": "0.57.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",
@@ -33,7 +33,7 @@
33
33
  "start": "node src/service.ts",
34
34
  "test:lint": "tsc --noEmit",
35
35
  "test:unit": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-timeout=30000 src/**/*.test.ts",
36
- "test:intg": "npm run test:clean-tmp && PLURNK_MANIFEST_ITEMS=0 node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-timeout=30000 test/intg/*.test.ts",
36
+ "test:intg": "npm run test:clean-tmp && PLURNK_FILES_ITEMS=0 node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 --test-timeout=30000 test/intg/*.test.ts",
37
37
  "test:live": "npm run test:clean-tmp && 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",
38
38
  "test:demo": "npm run test:clean-tmp && 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",
39
39
  "test:all": "npm run test:lint && npm run test:unit && npm run test:intg && npm run test:demo",
@@ -54,16 +54,16 @@
54
54
  "prepublishOnly": "npm run deps:audit"
55
55
  },
56
56
  "dependencies": {
57
- "@plurnk/plurnk-execs": "0.4.18",
58
- "@plurnk/plurnk-execs-all": "0.1.9",
59
- "@plurnk/plurnk-grammar": "0.74.19",
60
- "@plurnk/plurnk-mimetypes": "0.15.25",
57
+ "@plurnk/plurnk-execs": "0.4.19",
58
+ "@plurnk/plurnk-execs-all": "0.1.10",
59
+ "@plurnk/plurnk-grammar": "0.74.32",
60
+ "@plurnk/plurnk-mimetypes": "0.15.36",
61
61
  "@plurnk/plurnk-mimetypes-all": "0.5.4",
62
- "@plurnk/plurnk-mimetypes-text-html": "0.6.4",
63
- "@plurnk/plurnk-providers": "0.18.0",
62
+ "@plurnk/plurnk-mimetypes-text-html": "0.6.6",
63
+ "@plurnk/plurnk-providers": "0.19.0",
64
64
  "@plurnk/plurnk-providers-all": "0.10.0",
65
- "@plurnk/plurnk-schemes": "0.30.7",
66
- "@plurnk/plurnk-schemes-all": "0.2.7",
65
+ "@plurnk/plurnk-schemes": "0.31.6",
66
+ "@plurnk/plurnk-schemes-all": "0.2.21",
67
67
  "@possumtech/sqlrite": "5.2.0",
68
68
  "diff": "^9.0.0",
69
69
  "ws": "^8.20.1"
package/requirements.md CHANGED
@@ -1,5 +1,9 @@
1
1
  YOU MUST ONLY use the Plurnk System Grammar: <<OPsuffix[signal]?(target)?<Line/Result>?:body?:OPsuffix
2
2
 
3
+ YOU MUST avoid and recover from token budget overflow by using FOLD or KILL operations on less relevant log items.
4
+
5
+ YOU MUST SEND[102] to submit and receive the results of operations.
6
+
3
7
  YOU MUST terminate the turn by SENDing a message to the user with the proper status code.
4
8
 
5
9
  Example turn: <<PLAN:retrieve project document:PLAN <<READ(project.md)::READ <<SEND[102]:fetching project document.:SEND