@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 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 sections (standalone groupings like phases or feature areas), 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
+ 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 sections, features, and tasks:
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
- # Sections
102
- docyrus project-plan upsert-section --title "Core Features" --json
103
- docyrus project-plan upsert-section --title "Testing" --slug "testing" --summary "Test coverage" --json
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 --sectionId "<section-id>" --title "Auth Flow" --json
107
- docyrus project-plan upsert-feature --sectionId "<section-id>" --title "Data Export" --slug "data-export" --summary "CSV and JSON export" --json
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 `project_task` tool is also loaded with actions: `show`, `get`, `create-section`, `create-feature`, `create-task`, `set-status`, `create-linked-todo`.
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 sections, features, and tasks
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` and `/architect` 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`.
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.53",
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: 15e3 }).trim();
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
- const range = sinceTag ? `${sinceTag}..HEAD` : "HEAD~50..HEAD";
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
  }