@plurnk/plurnk 0.75.0 → 0.76.1

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 (78) hide show
  1. package/README.md +4 -2
  2. package/completions/_plurnk +13 -0
  3. package/completions/plurnk.bash +14 -0
  4. package/completions/plurnk.fish +37 -0
  5. package/conformance/agui-client.json +863 -0
  6. package/dist/agents.d.ts +11 -0
  7. package/dist/agents.d.ts.map +1 -0
  8. package/dist/agents.js +170 -0
  9. package/dist/agents.js.map +1 -0
  10. package/dist/agui.d.ts.map +1 -1
  11. package/dist/agui.js +39 -4
  12. package/dist/agui.js.map +1 -1
  13. package/dist/agui_cli.d.ts.map +1 -1
  14. package/dist/agui_cli.js +15 -3
  15. package/dist/agui_cli.js.map +1 -1
  16. package/dist/build-info.json +1 -1
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +6 -6
  19. package/dist/cli.js.map +1 -1
  20. package/dist/color.d.ts +2 -0
  21. package/dist/color.d.ts.map +1 -0
  22. package/dist/color.js +5 -0
  23. package/dist/color.js.map +1 -0
  24. package/dist/diagnostics.d.ts.map +1 -1
  25. package/dist/diagnostics.js +2 -1
  26. package/dist/diagnostics.js.map +1 -1
  27. package/dist/dispatcher.d.ts +1 -0
  28. package/dist/dispatcher.d.ts.map +1 -1
  29. package/dist/dispatcher.js +1 -1
  30. package/dist/dispatcher.js.map +1 -1
  31. package/dist/markdown.d.ts +17 -0
  32. package/dist/markdown.d.ts.map +1 -0
  33. package/dist/markdown.js +234 -0
  34. package/dist/markdown.js.map +1 -0
  35. package/dist/mcp.d.ts +7 -0
  36. package/dist/mcp.d.ts.map +1 -1
  37. package/dist/mcp.js +107 -39
  38. package/dist/mcp.js.map +1 -1
  39. package/dist/paste.d.ts +1 -0
  40. package/dist/paste.d.ts.map +1 -1
  41. package/dist/paste.js +5 -0
  42. package/dist/paste.js.map +1 -1
  43. package/dist/plan.d.ts +12 -0
  44. package/dist/plan.d.ts.map +1 -0
  45. package/dist/plan.js +30 -0
  46. package/dist/plan.js.map +1 -0
  47. package/dist/proposal.d.ts +1 -0
  48. package/dist/proposal.d.ts.map +1 -1
  49. package/dist/proposal.js +9 -9
  50. package/dist/proposal.js.map +1 -1
  51. package/dist/reasoning-events.d.ts +12 -3
  52. package/dist/reasoning-events.d.ts.map +1 -1
  53. package/dist/reasoning-events.js +11 -9
  54. package/dist/reasoning-events.js.map +1 -1
  55. package/dist/render.d.ts +2 -0
  56. package/dist/render.d.ts.map +1 -1
  57. package/dist/render.js +61 -47
  58. package/dist/render.js.map +1 -1
  59. package/dist/skills.d.ts +5 -5
  60. package/dist/skills.d.ts.map +1 -1
  61. package/dist/skills.js +93 -79
  62. package/dist/skills.js.map +1 -1
  63. package/dist/stream.d.ts.map +1 -1
  64. package/dist/stream.js +11 -11
  65. package/dist/stream.js.map +1 -1
  66. package/dist/subcommands.d.ts.map +1 -1
  67. package/dist/subcommands.js +2 -1
  68. package/dist/subcommands.js.map +1 -1
  69. package/dist/transport.d.ts +4 -2
  70. package/dist/transport.d.ts.map +1 -1
  71. package/dist/transport.js +25 -15
  72. package/dist/transport.js.map +1 -1
  73. package/dist/tui.d.ts +3 -2
  74. package/dist/tui.d.ts.map +1 -1
  75. package/dist/tui.js +164 -37
  76. package/dist/tui.js.map +1 -1
  77. package/man/plurnk.1 +153 -0
  78. package/package.json +11 -6
package/man/plurnk.1 ADDED
@@ -0,0 +1,153 @@
1
+ .TH PLURNK 1 "" "plurnk 0.75.0" "User Commands"
2
+ .SH NAME
3
+ plurnk \- terminal client for the plurnk\-service agentic daemon
4
+ .SH SYNOPSIS
5
+ .nf
6
+ plurnk [--json] [--workspace <name>] [--worker <name>] [--model <selector>] [--reasoning <policy>] [prompt...]
7
+ <piped stdin> | plurnk [options] [prompt...]
8
+ plurnk models [search...] [--provider <name>] [--all] [--offset <n>] [--limit <n>] [--json]
9
+ plurnk workspace list [--json]
10
+ plurnk workspace workers <name> [--json]
11
+ plurnk workspace rename <name> <newname> [--json]
12
+ plurnk log read --workspace <name> [--worker <name>]
13
+ [--loop <id>] [--turn <id>] [--since <id>] [--limit <n>] [--json]
14
+ plurnk read <loop>/<turn>/<seq> --workspace <name> [--worker <name>] [--json]
15
+ plurnk reasoning [policy] --workspace <name> [--worker <name>] [--json]
16
+ plurnk mcp [add <alias> <target> [options.json] | enable <alias> [options.json]
17
+ | disable|remove <alias> | oauth <alias> <callback-url>]
18
+ .fi
19
+ .SH DESCRIPTION
20
+ Connects to the plurnk-service daemon. Run a single prompt one-shot
21
+ (positional args, piped stdin, or both — positionals come first, stdin
22
+ is appended after a blank line). With no positionals and a TTY stdin,
23
+ enters the interactive REPL. Read-only subcommands (models / workspace list /
24
+ log read / read <coord>) inspect daemon state without running a loop.
25
+ .SH OPTIONS
26
+ .nf
27
+ -h, --help print this message and exit
28
+ -v, --version print executable provenance and exit
29
+ --json json OUTPUT MODE: one complete structured document on
30
+ stdout (the whole client-observed record — turns/ops,
31
+ notices, the answer at .response, usage), stderr
32
+ silent, Problems emitted under "problem". Drill into one
33
+ op's content with: plurnk read <coord> --json. CLI only.
34
+ --workspace <name> resume the named workspace, or create it under that name
35
+ if none exists (attach-or-create). Without it, a fresh
36
+ auto-named workspace is created. Overrides PLURNK_CLIENT_WORKSPACE.
37
+ --worker <name> resume (or create) the named worker within the workspace.
38
+ Requires --workspace. Overrides PLURNK_CLIENT_WORKER.
39
+ --model <selector> persistently select the conversation worker's model
40
+ before the first loop (worker.model.set). A selector is
41
+ a declared alias or exact provider/model route. Without
42
+ this, the worker's durable model or the daemon's
43
+ boot-time default runs.
44
+ --reasoning <policy> persistently select the conversation worker's reasoning
45
+ policy before the first loop. The daemon validates the
46
+ policy against the selected parent and child models.
47
+ --project-root <p> absolute path. Sent on workspace.create only; ignored
48
+ on --workspace attach (daemon preserves stored value).
49
+ Default: cwd. Empty string = headless. Overrides
50
+ PLURNK_CLIENT_PROJECT_ROOT.
51
+ --yolo auto-accept every proposal locally without prompting.
52
+ Overrides PLURNK_CLIENT_YOLO.
53
+ --auto keep proposal authority inside the loop; proposals
54
+ resolve automatically without a client review round-trip.
55
+ --flags <json> raw LoopFlags JSON passthrough on every loop.run
56
+ (e.g. '{"auto":true}' for unattended
57
+ benchmark/automation runs).
58
+ --request_user_input let the model ask you through the question tool when it
59
+ needs a decision (multiple choice with a free-response
60
+ escape, or an open question). Off by default for the
61
+ one-shot CLI; on by default for the TUI. Overrides
62
+ PLURNK_REQUEST_USER_INPUT.
63
+ --env-file <p> load env from <p> (errors if missing). Repeatable.
64
+ --env-file-if-exists <p> same, but silently skip a missing file. Repeatable.
65
+ --max-turns <n> per-loop turn cap (daemon default PLURNK_MAX_TURNS).
66
+ --timeout <s> CLI mode: cancel the loop (loop.cancel) after <s>
67
+ seconds; exits 3 with "timedOut":true in the result.
68
+ --pick <glob> membership: track file(s) in manifest (the sole
69
+ source when headless). Repeatable.
70
+ --hide <glob> membership: block file(s) from manifest. Repeatable.
71
+ --view <glob> membership: track file(s) in manifest (read-only). Repeatable.
72
+ --files-items <n> workspace-open preview of the TRACKED-FILE list
73
+ (## FIND0 (file:///**)): -1 full / 0 off / N first-N. Memory
74
+ (known/unknown/worker/plurnk) always foists full. Create-time.
75
+ --md <name=path> pin a markdown doc into the workspace (read at turn 0);
76
+ merges with operator PLURNK_MD_*. Repeatable. Create-time.
77
+ --max-commands <n> ceiling on ops per emission for the workspace (min with the
78
+ daemon's PLURNK_MAX_COMMANDS — can only tighten). Create-time.
79
+ --no-git deny git membership + working-tree status for the workspace (never
80
+ re-enables past the operator lockout). Create-time.
81
+ --loop <id> (log read) filter to a single loop id
82
+ --turn <id> (log read) filter to a single turn id
83
+ --since <id> (log read) return entries with id > <id>
84
+ --limit <n> (log read) max entries to return (default 100)
85
+ --provider <name> (models) restrict the catalog to one provider
86
+ --all (models) include unconfigured models with readiness causes
87
+ --offset <n> (models) catalog page offset (default 0)
88
+ .fi
89
+ .SH SUBCOMMANDS
90
+ .nf
91
+ models [search...] list the bounded daemon model catalog (models.list)
92
+ workspace list list workspaces on the daemon (workspace.list)
93
+ workspace workers <name> list workers in the named workspace (workspace.workers)
94
+ workspace rename <a> <b> rename workspace <a> to <b> (workspace.rename — a workspace's
95
+ name is a mutable handle; workers are immutable)
96
+ log read --workspace ... read log entries from the named workspace's worker
97
+ reasoning [policy] inspect or set a worker's durable reasoning policy
98
+ mcp ... list and manage MCP servers for --workspace
99
+ script <file.plk> run a .plk file: feed its DSL to op.parse, render the
100
+ trace, exit by worst op status. Honors --workspace/--yolo
101
+ /--project-root + membership flags. The daemon owns the
102
+ grammar; the client just feeds the file.
103
+ .fi
104
+ .SH ENVIRONMENT
105
+ .nf
106
+ env (cascade, low → high: packaged .env.defaults < $XDG_CONFIG_HOME/plurnk/.env
107
+ < ./.env < repeated --env-file flags (last wins) < shell):
108
+ Works with no config at all.
109
+ PLURNK_CLIENT_WORKSPACE resume/create a workspace by name. UNSET = the daemon
110
+ mints a fresh, uniquely-named workspace per invocation.
111
+ PLURNK_CLIENT_WORKER resume (or create) a named worker within that workspace
112
+ PLURNK_CLIENT_PROJECT_ROOT absolute path passed to workspace.create as the workspace's
113
+ project_root (workspace for file ops). Default: cwd.
114
+ Empty string = headless (no project_root, file ops 400).
115
+ PLURNK_CLIENT_YOLO when truthy, auto-accept every proposal without prompting.
116
+ PLURNK_AUTO when truthy, keep proposal authority inside the loop.
117
+ Client-side only — proposals still go through the wire.
118
+ PLURNK_CLIENT_JSON when truthy, same as --json for one-shot runs.
119
+ PLURNK_REQUEST_USER_INPUT when truthy, the conversation worker may ask you
120
+ through the question tool. TUI/nvim default on; the
121
+ one-shot CLI defaults off. --request_user_input overrides.
122
+ PLURNK_AGUI_URL plurnk-agui bridge URL (e.g. http://127.0.0.1:8787). When
123
+ set, a one-shot (text AND --json) runs THROUGH the bridge
124
+ instead of raw daemon WS (the exclusive-portal path).
125
+ PLURNK_AGUI_TOKEN is the bearer if the bridge requires one.
126
+ Scripts + subcommands stay on the daemon.
127
+ PLURNK_EXECS_ONLY / per-workspace exec-runtime policy, sent to the daemon at
128
+ PLURNK_EXECS_<tag> workspace.create (ONLY=a,b allowlist; <tag>=0 kills one).
129
+ Plugin configuration with longer underscore suffixes is
130
+ never forwarded. Subtractive only — the
131
+ daemon intersects with its ceiling; the client can narrow,
132
+ never re-enable. Shares the daemon's grammar; a workspace's
133
+ .env carries its own.
134
+ PLURNK_MCP_* raw server declarations accompany MCP list and enable.
135
+ Service controls do not. The daemon owns parsing,
136
+ activation, persistence, and credential expansion.
137
+ .fi
138
+ .SH EXIT STATUS
139
+ .TP
140
+ .B 0
141
+ The loop concluded successfully (or the subcommand completed).
142
+ .TP
143
+ .B 3
144
+ The loop failed, timed out (\-\-timeout), or a script's worst op status was an error.
145
+ .TP
146
+ .B 143
147
+ Terminated by SIGTERM after emitting the partial record.
148
+ .SH FILES
149
+ .TP
150
+ .I $XDG_CONFIG_HOME/plurnk/.env
151
+ Operator configuration (model aliases, provider credentials, client defaults).
152
+ .SH SEE ALSO
153
+ plurnk\-service(1), and the repository SPEC.md for the client contract.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk",
3
- "version": "0.75.0",
3
+ "version": "0.76.1",
4
4
  "description": "Plurnk client app — CLI/TUI consuming plurnk-service. Type prompts at a terminal, drive real model loops through the protocol.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -16,8 +16,11 @@
16
16
  "files": [
17
17
  "bin/plurnk.js",
18
18
  "dist/**/*",
19
+ "conformance/agui-client.json",
19
20
  ".env.defaults",
20
- "README.md"
21
+ "README.md",
22
+ "man/",
23
+ "completions/"
21
24
  ],
22
25
  "scripts": {
23
26
  "test:lint": "tsc --noEmit",
@@ -41,7 +44,8 @@
41
44
  "build:local:uninstall": "node scripts/install-sandbox.mjs uninstall",
42
45
  "test:installation": "node scripts/test-installation.mjs",
43
46
  "test:composition": "node scripts/test-composition.mjs",
44
- "release:publish": "node scripts/release-publish.mjs"
47
+ "release:publish": "node scripts/release-publish.mjs",
48
+ "build:posix": "node --conditions=plurnk-dev scripts/generate-posix.mjs"
45
49
  },
46
50
  "devDependencies": {
47
51
  "@types/node": "^26.1.1",
@@ -52,9 +56,10 @@
52
56
  "dependencies": {
53
57
  "@ag-ui/client": "^0.0.58",
54
58
  "@ag-ui/core": "^0.0.58",
55
- "@plurnk/plurnk-contracts": "^1.8.0"
59
+ "@plurnk/plurnk-contracts": "^1.9.1"
56
60
  },
57
61
  "plurnk": {
58
- "builtAgainst": "1.8.0"
59
- }
62
+ "builtAgainst": "1.9.1"
63
+ },
64
+ "man": "./man/plurnk.1"
60
65
  }