@docyrus/docyrus 0.0.53 → 0.0.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -12
- package/main.js +16 -8
- package/main.js.map +2 -2
- package/package.json +4 -2
- package/server-loader.js +3785 -41
- package/server-loader.js.map +4 -4
package/README.md
CHANGED
|
@@ -60,6 +60,7 @@ docyrus auth --help
|
|
|
60
60
|
docyrus discover --help
|
|
61
61
|
docyrus knowledge --help
|
|
62
62
|
docyrus project-plan --help
|
|
63
|
+
docyrus release --help
|
|
63
64
|
docyrus ds --help
|
|
64
65
|
docyrus apps --help
|
|
65
66
|
docyrus studio --help
|
|
@@ -89,28 +90,31 @@ docyrus knowledge config --json
|
|
|
89
90
|
|
|
90
91
|
## Project Plan
|
|
91
92
|
|
|
92
|
-
The project plan is a repo-tracked work graph stored at `docyrus/project-plan/project-plan.json`. It organizes work into
|
|
93
|
+
The project plan is a repo-tracked work graph stored at `docyrus/project-plan/project-plan.json`. It organizes work into phases, features, and tasks. A derived `PROJECT_PLAN.md` is always kept in sync. Features are also synced into the knowledge base features document when it exists.
|
|
93
94
|
|
|
94
|
-
Manage
|
|
95
|
+
Manage phases, features, and tasks:
|
|
95
96
|
|
|
96
97
|
```bash
|
|
97
98
|
docyrus project-plan show --json
|
|
98
99
|
docyrus project-plan check --json
|
|
99
100
|
docyrus project-plan ensure --json
|
|
101
|
+
docyrus project-plan summary --json
|
|
102
|
+
docyrus project-plan config --json
|
|
100
103
|
|
|
101
|
-
#
|
|
102
|
-
docyrus project-plan upsert-
|
|
103
|
-
docyrus project-plan upsert-
|
|
104
|
+
# Phases
|
|
105
|
+
docyrus project-plan upsert-phase --title "Core Features" --json
|
|
106
|
+
docyrus project-plan upsert-phase --title "Testing" --slug "testing" --summary "Test coverage" --json
|
|
104
107
|
|
|
105
108
|
# Features
|
|
106
|
-
docyrus project-plan upsert-feature --
|
|
107
|
-
docyrus project-plan upsert-feature --
|
|
109
|
+
docyrus project-plan upsert-feature --phaseId "<phase-id>" --title "Auth Flow" --json
|
|
110
|
+
docyrus project-plan upsert-feature --phaseId "<phase-id>" --title "Data Export" --slug "data-export" --summary "CSV and JSON export" --json
|
|
108
111
|
|
|
109
112
|
# Tasks
|
|
110
113
|
docyrus project-plan upsert-task --featureId "<feature-id>" --title "Implement OAuth2" --type new-implementation --assignee agent --json
|
|
111
114
|
docyrus project-plan upsert-task --featureId "<feature-id>" --title "Fix token refresh" --type bug-fix --assignee agent --status in_progress --json
|
|
112
115
|
docyrus project-plan get-task --taskId "<task-id>" --json
|
|
113
116
|
docyrus project-plan set-task-status --taskId "<task-id>" --status done --json
|
|
117
|
+
docyrus project-plan set-order --phaseId "<phase-id>" --order 1 --json
|
|
114
118
|
|
|
115
119
|
# Linked local subtasks
|
|
116
120
|
docyrus project-plan create-linked-todo --taskId "<task-id>" --json
|
|
@@ -121,6 +125,22 @@ Task types: `new-implementation`, `bug-fix`, `api-test`, `browser-automation-tes
|
|
|
121
125
|
Assignees: `agent`, `user`
|
|
122
126
|
Statuses: `planned`, `in_progress`, `blocked`, `done`
|
|
123
127
|
|
|
128
|
+
## Release
|
|
129
|
+
|
|
130
|
+
Create versioned releases with changelog generation:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
docyrus release status --json
|
|
134
|
+
docyrus release new-version --json
|
|
135
|
+
docyrus release new-version --bump major --json
|
|
136
|
+
docyrus release new-version --version 2.0.0 --json
|
|
137
|
+
docyrus release new-version --dryRun --json
|
|
138
|
+
docyrus release new-version --skipChangelog --skipTag --json
|
|
139
|
+
docyrus release new-version --skipGithubRelease --json
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
The `new-version` command bumps the version in `package.json`, generates a categorized changelog from commit history, creates a git tag, and optionally publishes a GitHub release via `gh`.
|
|
143
|
+
|
|
124
144
|
## Data Sources
|
|
125
145
|
|
|
126
146
|
Query data source items:
|
|
@@ -240,8 +260,12 @@ docyrus server
|
|
|
240
260
|
docyrus server --port 4000
|
|
241
261
|
docyrus server --profile agent
|
|
242
262
|
docyrus server --model anthropic/claude-sonnet-4-20250514 --thinking high
|
|
263
|
+
docyrus server --auth "<bearer-token>"
|
|
264
|
+
docyrus server --apiKey "<key>" --provider azure-openai-responses
|
|
243
265
|
```
|
|
244
266
|
|
|
267
|
+
The server exposes REST endpoints for chat, models, knowledge, project-plan, release, files, and dev environment management. It also attaches a WebSocket PTY terminal at `WS /api/terminal` for interactive shell access.
|
|
268
|
+
|
|
245
269
|
For full endpoint documentation see [docs/API.md](docs/API.md).
|
|
246
270
|
|
|
247
271
|
## Pi Agent and Coding Agent
|
|
@@ -274,7 +298,7 @@ When `docyrus/knowledge/` exists, `docyrus agent`, `docyrus coder`, and `docyrus
|
|
|
274
298
|
- `docyrus_knowledge_expand`
|
|
275
299
|
- `docyrus_knowledge_check`
|
|
276
300
|
|
|
277
|
-
When `docyrus/project-plan/project-plan.json` exists, the
|
|
301
|
+
When `docyrus/project-plan/project-plan.json` exists, the agents use project-plan CLI commands (`docyrus project-plan show`, `set-task-status`, `create-linked-todo`, etc.) to read and update the canonical work graph.
|
|
278
302
|
|
|
279
303
|
The `todo` tool is always available with actions: `list`, `list-all`, `get`, `create`, `update`, `append`, `delete`, `claim`, `release`.
|
|
280
304
|
|
|
@@ -287,16 +311,14 @@ Inside the interactive agent TUI:
|
|
|
287
311
|
/logout # remove saved provider configuration
|
|
288
312
|
/plan [task] # start a planning-only branch and keep the current plan in .docyrus/plans/
|
|
289
313
|
/end-plan # leave the planning branch, summarize it, and return to the original branch
|
|
290
|
-
/architect [brief] # discover tenant data sources and generate planning artifacts under ./docyrus/architecture/
|
|
291
|
-
/end-architect # alias for leaving an architect planning session
|
|
292
314
|
/plan-policy # show the effective planning-model policy and the resolved planning model
|
|
293
315
|
/read-only # enter read-only mode — write and edit tools are disabled
|
|
294
316
|
/end-read-only # exit read-only mode and resume normal operation
|
|
295
|
-
/tasks # browse the canonical project-plan
|
|
317
|
+
/tasks # browse the canonical project-plan phases, features, and tasks
|
|
296
318
|
/todos # interactive todo manager
|
|
297
319
|
```
|
|
298
320
|
|
|
299
|
-
When running through `docyrus server`, `/plan`
|
|
321
|
+
When running through `docyrus server`, `/plan` can be sent through `/api/chat` as normal chat input. If clarification is needed, the server emits a synthetic `ask_user` client tool. Frontends using AI SDK `useChat` should render that tool and submit structured answers back with `addToolOutput`.
|
|
300
322
|
|
|
301
323
|
### Planning-Model Policy
|
|
302
324
|
|
package/main.js
CHANGED
|
@@ -139349,7 +139349,7 @@ function buildInputSchema(args2, env2, options2) {
|
|
|
139349
139349
|
// package.json
|
|
139350
139350
|
var package_default = {
|
|
139351
139351
|
name: "@docyrus/docyrus",
|
|
139352
|
-
version: "0.0.
|
|
139352
|
+
version: "0.0.55",
|
|
139353
139353
|
private: false,
|
|
139354
139354
|
description: "Docyrus API CLI",
|
|
139355
139355
|
main: "./main.js",
|
|
@@ -139393,11 +139393,13 @@ var package_default = {
|
|
|
139393
139393
|
unified: "^11.0.5",
|
|
139394
139394
|
"unist-util-visit": "^5.1.0",
|
|
139395
139395
|
"web-tree-sitter": "0.25.10",
|
|
139396
|
+
ws: "^8.18.0",
|
|
139396
139397
|
zod: "^4.3.6"
|
|
139397
139398
|
},
|
|
139398
139399
|
devDependencies: {
|
|
139399
139400
|
"@types/node": "^24.12.2",
|
|
139400
|
-
"@types/react": "^19.1.13"
|
|
139401
|
+
"@types/react": "^19.1.13",
|
|
139402
|
+
"@types/ws": "^8.5.0"
|
|
139401
139403
|
},
|
|
139402
139404
|
engines: {
|
|
139403
139405
|
node: ">=22.19"
|
|
@@ -150652,12 +150654,12 @@ var import_node_child_process6 = require("node:child_process");
|
|
|
150652
150654
|
var import_node_fs15 = require("node:fs");
|
|
150653
150655
|
var import_promises18 = __toESM(require("node:fs/promises"));
|
|
150654
150656
|
var import_node_path23 = __toESM(require("node:path"));
|
|
150655
|
-
function git(args2, cwd) {
|
|
150656
|
-
return (0, import_node_child_process6.execFileSync)("git", args2, { cwd, encoding: "utf8", timeout:
|
|
150657
|
+
function git(args2, cwd, timeout = 15e3) {
|
|
150658
|
+
return (0, import_node_child_process6.execFileSync)("git", args2, { cwd, encoding: "utf8", timeout, stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
150657
150659
|
}
|
|
150658
|
-
function gitSafe(args2, cwd) {
|
|
150660
|
+
function gitSafe(args2, cwd, timeout) {
|
|
150659
150661
|
try {
|
|
150660
|
-
return git(args2, cwd);
|
|
150662
|
+
return git(args2, cwd, timeout);
|
|
150661
150663
|
} catch {
|
|
150662
150664
|
return null;
|
|
150663
150665
|
}
|
|
@@ -150796,7 +150798,13 @@ function formatEntry(commit) {
|
|
|
150796
150798
|
return `${breaking}${scope}${commit.subject}`;
|
|
150797
150799
|
}
|
|
150798
150800
|
function detectDocyrusBackendChanges(root, sinceTag) {
|
|
150799
|
-
|
|
150801
|
+
let range;
|
|
150802
|
+
if (sinceTag) {
|
|
150803
|
+
range = `${sinceTag}..HEAD`;
|
|
150804
|
+
} else {
|
|
150805
|
+
const rootCommit = gitSafe(["rev-list", "--max-parents=0", "HEAD"], root);
|
|
150806
|
+
range = rootCommit ? `${rootCommit}..HEAD` : "HEAD";
|
|
150807
|
+
}
|
|
150800
150808
|
const entries = [];
|
|
150801
150809
|
const diffFiles = gitSafe(["diff", "--name-only", range], root);
|
|
150802
150810
|
if (!diffFiles) {
|
|
@@ -150950,7 +150958,7 @@ async function executeRelease(params) {
|
|
|
150950
150958
|
`, "utf8");
|
|
150951
150959
|
}
|
|
150952
150960
|
git(["add", "-A"], root);
|
|
150953
|
-
git(["commit", "-m", `chore(release): v${nextVersion}`], root);
|
|
150961
|
+
git(["commit", "-m", `chore(release): v${nextVersion}`], root, 12e4);
|
|
150954
150962
|
if (!params.skipTag) {
|
|
150955
150963
|
git(["tag", `v${nextVersion}`], root);
|
|
150956
150964
|
}
|