@plurnk/plurnk-service 1.29.0 → 2.0.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/.env.defaults +3 -18
- package/INSTALL.md +65 -15
- package/README.md +8 -5
- package/SPEC.md +197 -444
- package/dist/build-info.json +1 -1
- package/dist/content/body-preview.d.ts.map +1 -1
- package/dist/content/body-preview.js +11 -2
- package/dist/content/body-preview.js.map +1 -1
- package/dist/content/line-marker.js +1 -1
- package/dist/content/line-marker.js.map +1 -1
- package/dist/content/path-mimetype.js +1 -1
- package/dist/content/path-mimetype.js.map +1 -1
- package/dist/core/AdmittedTurnExecutor.d.ts +4 -3
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
- package/dist/core/AdmittedTurnExecutor.js +19 -17
- package/dist/core/AdmittedTurnExecutor.js.map +1 -1
- package/dist/core/BareBatchRunner.d.ts +2 -2
- package/dist/core/BareBatchRunner.d.ts.map +1 -1
- package/dist/core/BareBatchRunner.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +2 -2
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +3 -8
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Engine.d.ts +1 -1
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +1 -1
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/ExecutorRegistry.d.ts +3 -17
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +6 -6
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/HostPaths.d.ts +2 -0
- package/dist/core/HostPaths.d.ts.map +1 -1
- package/dist/core/HostPaths.js +14 -0
- package/dist/core/HostPaths.js.map +1 -1
- package/dist/core/PacketBuilder.js +1 -1
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +5 -4
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +9 -9
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/ToolResources.js +5 -5
- package/dist/core/ToolResources.js.map +1 -1
- package/dist/core/Turn.js +1 -1
- package/dist/core/Turn.js.map +1 -1
- package/dist/core/TurnOps.d.ts +1 -1
- package/dist/core/TurnOps.d.ts.map +1 -1
- package/dist/core/TurnOps.js +4 -12
- package/dist/core/TurnOps.js.map +1 -1
- package/dist/core/TurnRunner.d.ts +1 -2
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +11 -24
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/caps/DbNotifyCaps.js +2 -2
- package/dist/core/caps/DbNotifyCaps.js.map +1 -1
- package/dist/core/caps/DbProjectionCaps.js +1 -1
- package/dist/core/caps/DbProjectionCaps.js.map +1 -1
- package/dist/core/env-defaults.d.ts +2 -1
- package/dist/core/env-defaults.d.ts.map +1 -1
- package/dist/core/env-defaults.js +17 -9
- package/dist/core/env-defaults.js.map +1 -1
- package/dist/core/packet-wire.d.ts +1 -2
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +9 -6
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/evidence/EvidenceReader.d.ts +14 -0
- package/dist/evidence/EvidenceReader.d.ts.map +1 -0
- package/dist/evidence/EvidenceReader.js +134 -0
- package/dist/evidence/EvidenceReader.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +3 -3
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/File.js +1 -1
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +14 -11
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/{Skill.d.ts → ResourceTreeScheme.d.ts} +5 -6
- package/dist/schemes/ResourceTreeScheme.d.ts.map +1 -0
- package/dist/schemes/{Skill.js → ResourceTreeScheme.js} +63 -43
- package/dist/schemes/ResourceTreeScheme.js.map +1 -0
- package/dist/schemes/Worker.js +1 -1
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +1 -1
- package/dist/schemes/_entry-find.js +2 -2
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-find.sql +1 -1
- package/dist/schemes/_entry-manifest.js +1 -1
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/server/AgentRoots.d.ts +2 -1
- package/dist/server/AgentRoots.d.ts.map +1 -1
- package/dist/server/AgentRoots.js +13 -10
- package/dist/server/AgentRoots.js.map +1 -1
- package/dist/server/ConfigurationDiagnostics.d.ts +4 -3
- package/dist/server/ConfigurationDiagnostics.d.ts.map +1 -1
- package/dist/server/ConfigurationDiagnostics.js +15 -8
- package/dist/server/ConfigurationDiagnostics.js.map +1 -1
- package/dist/server/Daemon.d.ts +13 -8
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +91 -49
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/EnvFunctionality.d.ts +2 -2
- package/dist/server/EnvFunctionality.d.ts.map +1 -1
- package/dist/server/EnvFunctionality.js +2 -2
- package/dist/server/EnvFunctionality.js.map +1 -1
- package/dist/server/Functionality.d.ts +3 -2
- package/dist/server/Functionality.d.ts.map +1 -1
- package/dist/server/Functionality.js +1 -1
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/HttpListener.d.ts +2 -0
- package/dist/server/HttpListener.d.ts.map +1 -1
- package/dist/server/HttpListener.js +17 -9
- package/dist/server/HttpListener.js.map +1 -1
- package/dist/server/MembersFunctionality.d.ts +1 -1
- package/dist/server/MembersFunctionality.d.ts.map +1 -1
- package/dist/server/MembersFunctionality.js.map +1 -1
- package/dist/server/ModuleHost.d.ts +33 -0
- package/dist/server/ModuleHost.d.ts.map +1 -0
- package/dist/server/ModuleHost.js +2 -0
- package/dist/server/ModuleHost.js.map +1 -0
- package/dist/server/PlurnkSkill.d.ts.map +1 -1
- package/dist/server/PlurnkSkill.js +54 -6
- package/dist/server/PlurnkSkill.js.map +1 -1
- package/dist/server/ServiceModules.d.ts +0 -2
- package/dist/server/ServiceModules.d.ts.map +1 -1
- package/dist/server/ServiceModules.js +5 -9
- package/dist/server/ServiceModules.js.map +1 -1
- package/dist/server/WorkspacePlugins.d.ts +2 -11
- package/dist/server/WorkspacePlugins.d.ts.map +1 -1
- package/dist/server/WorkspacePlugins.js.map +1 -1
- package/dist/server/WorkspaceResidency.d.ts +2 -1
- package/dist/server/WorkspaceResidency.d.ts.map +1 -1
- package/dist/server/WorkspaceStorage.d.ts +1 -0
- package/dist/server/WorkspaceStorage.d.ts.map +1 -1
- package/dist/server/WorkspaceStorage.js +31 -5
- package/dist/server/WorkspaceStorage.js.map +1 -1
- package/dist/server/module-discovery.d.ts +11 -3
- package/dist/server/module-discovery.d.ts.map +1 -1
- package/dist/server/module-discovery.js +32 -18
- package/dist/server/module-discovery.js.map +1 -1
- package/dist/server/workspace-storage.sql +5 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +37 -34
- package/dist/service.js.map +1 -1
- package/migrations/016_selection_statements.sql +43 -0
- package/migrations/017_skills_module.sql +5 -0
- package/package.json +71 -72
- package/dist/core/EmissionHead.d.ts +0 -8
- package/dist/core/EmissionHead.d.ts.map +0 -1
- package/dist/core/EmissionHead.js +0 -29
- package/dist/core/EmissionHead.js.map +0 -1
- package/dist/core/operation-target-groups.d.ts +0 -3
- package/dist/core/operation-target-groups.d.ts.map +0 -1
- package/dist/core/operation-target-groups.js +0 -77
- package/dist/core/operation-target-groups.js.map +0 -1
- package/dist/digest/Digest.d.ts +0 -10
- package/dist/digest/Digest.d.ts.map +0 -1
- package/dist/digest/Digest.js +0 -252
- package/dist/digest/Digest.js.map +0 -1
- package/dist/digest/DigestEvidence.d.ts +0 -11
- package/dist/digest/DigestEvidence.d.ts.map +0 -1
- package/dist/digest/DigestEvidence.js +0 -66
- package/dist/digest/DigestEvidence.js.map +0 -1
- package/dist/digest/DigestRender.d.ts +0 -18
- package/dist/digest/DigestRender.d.ts.map +0 -1
- package/dist/digest/DigestRender.js +0 -1044
- package/dist/digest/DigestRender.js.map +0 -1
- package/dist/digest/DigestRequiem.d.ts +0 -13
- package/dist/digest/DigestRequiem.d.ts.map +0 -1
- package/dist/digest/DigestRequiem.js +0 -337
- package/dist/digest/DigestRequiem.js.map +0 -1
- package/dist/digest/digest-db.d.ts +0 -3
- package/dist/digest/digest-db.d.ts.map +0 -1
- package/dist/digest/digest-db.js +0 -68
- package/dist/digest/digest-db.js.map +0 -1
- package/dist/digest/digest-paths.d.ts +0 -6
- package/dist/digest/digest-paths.d.ts.map +0 -1
- package/dist/digest/digest-paths.js +0 -14
- package/dist/digest/digest-paths.js.map +0 -1
- package/dist/digest/digest-rows.d.ts +0 -346
- package/dist/digest/digest-rows.d.ts.map +0 -1
- package/dist/digest/digest-rows.js +0 -2
- package/dist/digest/digest-rows.js.map +0 -1
- package/dist/schemes/Skill.d.ts.map +0 -1
- package/dist/schemes/Skill.js.map +0 -1
- package/dist/server/DaemonModule.d.ts +0 -101
- package/dist/server/DaemonModule.d.ts.map +0 -1
- package/dist/server/DaemonModule.js +0 -2
- package/dist/server/DaemonModule.js.map +0 -1
- package/dist/server/SkillSource.d.ts +0 -37
- package/dist/server/SkillSource.d.ts.map +0 -1
- package/dist/server/SkillSource.js +0 -267
- package/dist/server/SkillSource.js.map +0 -1
- package/dist/server/SkillsFunctionality.d.ts +0 -45
- package/dist/server/SkillsFunctionality.d.ts.map +0 -1
- package/dist/server/SkillsFunctionality.js +0 -405
- package/dist/server/SkillsFunctionality.js.map +0 -1
- package/dist/server/skills-problems.d.ts +0 -8
- package/dist/server/skills-problems.d.ts.map +0 -1
- package/dist/server/skills-problems.js +0 -18
- package/dist/server/skills-problems.js.map +0 -1
- package/dist/share/Share.d.ts +0 -15
- package/dist/share/Share.d.ts.map +0 -1
- package/dist/share/Share.js +0 -106
- package/dist/share/Share.js.map +0 -1
- package/dist/share/share.sql +0 -6
- package/docs/skills.md +0 -73
- /package/dist/{digest → evidence}/digest.sql +0 -0
package/.env.defaults
CHANGED
|
@@ -163,9 +163,8 @@ PLURNK_SERVICE_BUDGET_LARGEST_ITEMS=5
|
|
|
163
163
|
PLURNK_SERVICE_PREVIEW_LINES=100
|
|
164
164
|
# Independent bound on the same page, Unicode code points; CRLF counts as one separator.
|
|
165
165
|
PLURNK_SERVICE_PREVIEW_CHARS=16000
|
|
166
|
-
#
|
|
167
|
-
#
|
|
168
|
-
# without room no row lands and nothing else changes. 0 lands nothing.
|
|
166
|
+
# Optional reasoning memory ({§reasoning-row}): 1 adds the turn's preview before its emission or results,
|
|
167
|
+
# only when room remains after all requested results and diagnostics. Otherwise omit it silently. 0 disables it.
|
|
169
168
|
PLURNK_SERVICE_REASONING_ROWS=1
|
|
170
169
|
# The row's page ({§reasoning-row}): reasoning that fits it lands whole; longer reasoning lands as its last page,
|
|
171
170
|
# this many lines within PLURNK_SERVICE_PREVIEW_CHARS, because a turn's conclusions and plan sit at its end; the
|
|
@@ -187,19 +186,11 @@ PLURNK_SERVICE_FILES_ITEMS=-1
|
|
|
187
186
|
|
|
188
187
|
# --- Teaching and skills ---
|
|
189
188
|
# Scheme names omitted from discoverable references, comma-separated; empty = none.
|
|
190
|
-
# Executable docs instead follow tool enablement.
|
|
189
|
+
# Executable docs instead follow tool enablement. Extension trust lives in plurnk-meta's defaults.
|
|
191
190
|
PLURNK_SERVICE_DOCS_EXCLUDE="plurnk,file,exec"
|
|
192
191
|
# Skills, plugin and standalone MCP configuration roots, comma-separated, nearest first: project
|
|
193
192
|
# (the workspace project's .agents), plurnk ($XDG_CONFIG_HOME/plurnk), global (~/.agents).
|
|
194
193
|
PLURNK_SERVICE_ROOTS=project,plurnk,global
|
|
195
|
-
# Agent Skills: whole source definitions override discovered skills by their exact standard name.
|
|
196
|
-
# `_` in a key represents `-`; Unicode names work in .env or via `env 'KEY=value' command`.
|
|
197
|
-
# PLURNK_SKILLS_code_review={"name":"code-review","source":"/srv/skills/code-review"}
|
|
198
|
-
# Declared and discovered skills default enabled; per-name controls override this default.
|
|
199
|
-
PLURNK_SKILLS_ENABLED=1
|
|
200
|
-
# PLURNK_SKILLS_code_review_ENABLED=0
|
|
201
|
-
# Deadline for one skills source fetch (git ls-remote, git clone, tar, unzip), positive ms.
|
|
202
|
-
PLURNK_SERVICE_SKILLS_FETCH_TIMEOUT_MS=120000
|
|
203
194
|
# Extra Markdown after language teaching, reread each turn; unreadable explicit paths fail.
|
|
204
195
|
# PLURNK_SERVICE_PACKET_INJECT="~/injection.md"
|
|
205
196
|
# Policy Markdown: unset = $XDG_CONFIG_HOME/plurnk/AGENTS.md; empty = off; otherwise that path.
|
|
@@ -220,12 +211,6 @@ PLURNK_SERVICE_DERIVE_STORE_BATCH=1024
|
|
|
220
211
|
# Progress heartbeat, ms; starts, failures, and completion are immediate; no-op passes stay silent.
|
|
221
212
|
PLURNK_SERVICE_DERIVE_PROGRESS_HEARTBEAT_MS=15000
|
|
222
213
|
|
|
223
|
-
# --- Forensic interviews ---
|
|
224
|
-
# Initial requiem output allowance, tokens; used only for requested out-of-band interviews.
|
|
225
|
-
PLURNK_SERVICE_REQUIEM_MAX_TOKENS=16384
|
|
226
|
-
# Retry allowance for empty length-limited testimony; must be at least the initial allowance.
|
|
227
|
-
PLURNK_SERVICE_REQUIEM_RETRY_MAX_TOKENS=32768
|
|
228
|
-
|
|
229
214
|
# --- Retention: information is kept; transient data is collected ({§retention-policy}) ---
|
|
230
215
|
# Packet compositions kept per loop, newest first; -1 = every packet, forever.
|
|
231
216
|
PLURNK_SERVICE_RETAIN_PACKET_TURNS=-1
|
package/INSTALL.md
CHANGED
|
@@ -42,6 +42,42 @@ inspection available. Model providers are constructed and verified on selection
|
|
|
42
42
|
first use, not on startup. An invalid default never selects a different model:
|
|
43
43
|
choose a valid model in the client or correct the daemon's configuration.
|
|
44
44
|
|
|
45
|
+
## Backup and restore
|
|
46
|
+
|
|
47
|
+
The database holds worker history and workspace state. Its default path is in
|
|
48
|
+
the table above; `PLURNK_SERVICE_DB_PATH` overrides it, and
|
|
49
|
+
`PLURNK_SERVICE_STATE_ROOT` relocates the default. Back up the actual daemon's
|
|
50
|
+
database, not a different client's default.
|
|
51
|
+
|
|
52
|
+
Use SQLite's consistent-copy operation while the daemon is running **or** stopped
|
|
53
|
+
({§share-snapshot}). Copying only a live `.db` can omit committed data still in
|
|
54
|
+
its `-wal` file; copying those files separately is not a consistent snapshot.
|
|
55
|
+
This example uses Node, already required by Plurnk, and the default XDG path.
|
|
56
|
+
Choose a new destination for each backup:
|
|
57
|
+
|
|
58
|
+
```sh
|
|
59
|
+
(
|
|
60
|
+
umask 077
|
|
61
|
+
node --input-type=module -e '
|
|
62
|
+
import { DatabaseSync } from "node:sqlite";
|
|
63
|
+
const db = new DatabaseSync(process.argv[1], { readOnly: true });
|
|
64
|
+
try { db.prepare("VACUUM INTO ?").run(process.argv[2]); }
|
|
65
|
+
finally { db.close(); }
|
|
66
|
+
' "${XDG_DATA_HOME:-$HOME/.local/share}/plurnk/plurnk.db" "$HOME/plurnk-backup.db"
|
|
67
|
+
)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Keep backups private: they include prompts, reasoning, and recorded tool output.
|
|
71
|
+
Back up project files, configuration, and extension-owned files separately; a
|
|
72
|
+
database snapshot does not copy them. `plurnk-service share` produces diagnostic
|
|
73
|
+
artifacts from a temporary snapshot and then removes that snapshot; it is not
|
|
74
|
+
a substitute for this backup.
|
|
75
|
+
|
|
76
|
+
To restore, stop the daemon and retain its old database and any `-wal`/`-shm`
|
|
77
|
+
sidecars together. Copy the backup to a fresh working path, select that path with
|
|
78
|
+
`PLURNK_SERVICE_DB_PATH`, and start the same or a newer compatible service version.
|
|
79
|
+
Do not overwrite a live database or pair a restored file with old sidecars.
|
|
80
|
+
|
|
45
81
|
## Precedence
|
|
46
82
|
|
|
47
83
|
Highest priority first ({§operator-config-precedence}):
|
|
@@ -60,7 +96,7 @@ variables reach its commands through the workspace environment (`/env import .en
|
|
|
60
96
|
|
|
61
97
|
For a service-owned variable, strip `PLURNK_`, lowercase, and replace `_` with
|
|
62
98
|
`-` to obtain its CLI flag: `PLURNK_SERVICE_MAX_TURNS` → `--service-max-turns`.
|
|
63
|
-
|
|
99
|
+
Extension settings remain environment/configuration values; they do not extend the
|
|
64
100
|
service CLI. Boolean flags use `1` and `0`. An empty value is not an unset value;
|
|
65
101
|
the owning declaration specifies its meaning.
|
|
66
102
|
|
|
@@ -68,7 +104,7 @@ the owning declaration specifies its meaning.
|
|
|
68
104
|
|
|
69
105
|
| Change | Owner and effect |
|
|
70
106
|
| --- | --- |
|
|
71
|
-
| Startup defaults or installed
|
|
107
|
+
| Startup defaults or installed extension configuration | The daemon's environment cascade. A remote client's shell does not change it. |
|
|
72
108
|
| Model, reasoning, child model | Worker selections persist. Set them through client controls; changing a startup default does not retarget an existing Worker. |
|
|
73
109
|
| MCPs, skills, outbound agents, schedules, membership | Workspace Functionality: list, discover, add, enable, disable, remove. Workers share the workspace's current selection. |
|
|
74
110
|
| Command environment | `env` manages worker overrides or workspace defaults. It does not reconfigure the daemon; running processes keep their launch environment. |
|
|
@@ -141,12 +177,13 @@ Configuration provenance names the definition's environment key, discovered
|
|
|
141
177
|
`SKILL.md` path, or MCP JSON file and JSON Pointer, not a dotenv file or shadowed history. Local overrides are
|
|
142
178
|
workspace-owned; removing one exposes its current inherited source again.
|
|
143
179
|
|
|
144
|
-
##
|
|
180
|
+
## Extensions
|
|
145
181
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
182
|
+
An extension is native Plurnk code of one kind, declared once: under `plurnk` in an npm
|
|
183
|
+
package's `package.json`, or under `extensions.ai.plurnk` in a standard
|
|
184
|
+
[Agent Plugin](https://agent-plugins.org/specification)'s `plugin.json`, beside the plugin's
|
|
185
|
+
portable skills and MCP servers. Its kind's framework loads it with that kind's lifetime. A
|
|
186
|
+
module joins the daemon lifecycle:
|
|
150
187
|
|
|
151
188
|
```json
|
|
152
189
|
{
|
|
@@ -156,15 +193,28 @@ hooks, declare a module:
|
|
|
156
193
|
}
|
|
157
194
|
```
|
|
158
195
|
|
|
159
|
-
|
|
196
|
+
An npm package declares the same module in its own manifest, naming an export subpath so the
|
|
197
|
+
package's export conditions select its entry:
|
|
198
|
+
|
|
199
|
+
```json
|
|
200
|
+
{
|
|
201
|
+
"name": "@example/plurnk-module",
|
|
202
|
+
"exports": { "./module": "./dist/module.js" },
|
|
203
|
+
"plurnk": { "kind": "module", "module": "./module" }
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Modules load at startup from installed npm packages and selected user roots:
|
|
160
208
|
`$XDG_CONFIG_HOME/plurnk/plugins/` before `~/.agents/plugins/`, then npm. The manifest name
|
|
161
209
|
identifies a plugin across those sources. Project plugins never load native code into the daemon.
|
|
162
|
-
`PLURNK_SERVICE_ROOTS` selects the directory roots; `
|
|
163
|
-
imports, using the npm package name when present or the plugin name otherwise.
|
|
164
|
-
Other
|
|
210
|
+
`PLURNK_SERVICE_ROOTS` selects the directory roots; `PLURNK_EXTENSIONS_TRUSTED_ONLY` governs
|
|
211
|
+
extension imports, using the npm package name when present or the plugin name otherwise.
|
|
212
|
+
Other extension kinds (executors, schemes, providers, mimetypes and HTTP materializers)
|
|
165
213
|
require npm installation and retain their own loading behavior.
|
|
166
214
|
|
|
167
|
-
|
|
168
|
-
`stop` drains producers
|
|
169
|
-
|
|
170
|
-
joins the ordinary floor. npm owns dependencies and delivery,
|
|
215
|
+
A module exports a lifecycle object or a no-argument factory: `setup` registers what it
|
|
216
|
+
contributes, `start` opens its ingress, `stop` drains its producers, and `close` releases its
|
|
217
|
+
registrations and observers. Extension files and the optional configuration panel live under
|
|
218
|
+
`ai.plurnk/`; its `.env.defaults` joins the ordinary floor. npm owns dependencies and delivery,
|
|
219
|
+
not a second extension declaration. [Extending Plurnk](skill://plurnk/references/extensibility.md)
|
|
220
|
+
covers every integration surface and links each kind's contract.
|
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ reports the choices shared by a worker's selected model and spawn override.
|
|
|
34
34
|
|
|
35
35
|
```sh
|
|
36
36
|
npm install -g @plurnk/plurnk-service
|
|
37
|
-
plurnk-service migrate # apply
|
|
37
|
+
plurnk-service migrate # apply pending database upgrades, preserving existing data
|
|
38
38
|
plurnk-service start # daemon
|
|
39
39
|
```
|
|
40
40
|
|
|
@@ -50,9 +50,12 @@ validate without contacting a provider. **[`INSTALL.md`](./INSTALL.md) is the
|
|
|
50
50
|
configuration guide.** A legacy mixed `~/.plurnk` is moved only by the explicit
|
|
51
51
|
`plurnk-service paths migrate` command.
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
Protect durable history with a [consistent database backup](./INSTALL.md#backup-and-restore).
|
|
54
|
+
The `share` command exports diagnostic reports, not a restorable database.
|
|
55
|
+
|
|
56
|
+
Clients use AG-UI; extension authors use the owning framework packages.
|
|
57
|
+
Programmatic forensic use imports [`@plurnk/plurnk-digest`](../plurnk-digest/README.md)
|
|
58
|
+
with the canonical reader from `@plurnk/plurnk-service/evidence`.
|
|
56
59
|
The digest requires a new or empty output directory, separate from its input
|
|
57
60
|
database. Existing output and overlapping input/output paths are refused.
|
|
58
61
|
|
|
@@ -67,7 +70,7 @@ database. Existing output and overlapping input/output paths are refused.
|
|
|
67
70
|
|
|
68
71
|
## Observability
|
|
69
72
|
|
|
70
|
-
The daemon can emit OpenTelemetry traces and low-cardinality metrics through the standard `OTEL_*` environment ({§observability-boundary}): `OTEL_TRACES_EXPORTER` / `OTEL_METRICS_EXPORTER` select `otlp` or `console` per signal, `OTEL_SERVICE_NAME` names the service, and `OTEL_SDK_DISABLED` opts out. Unconfigured, the daemon never loads the SDK. The boundary observes lifecycle (workspace, loop, turn, provider, parse, dispatch, proposal, stream, digest) without ever recording prompts, reasoning, file bodies, URLs, secrets, or
|
|
73
|
+
The daemon can emit OpenTelemetry traces and low-cardinality metrics through the standard `OTEL_*` environment ({§observability-boundary}): `OTEL_TRACES_EXPORTER` / `OTEL_METRICS_EXPORTER` select `otlp` or `console` per signal, `OTEL_SERVICE_NAME` names the service, and `OTEL_SDK_DISABLED` opts out. Unconfigured, the daemon never loads the SDK. The boundary observes lifecycle (workspace, loop, turn, provider, parse, dispatch, proposal, stream, digest) without ever recording prompts, reasoning, file bodies, URLs, secrets, or extension payloads.
|
|
71
74
|
|
|
72
75
|
## Full-text search
|
|
73
76
|
|