orc-ai 0.1.34 → 0.1.36
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 +86 -52
- package/dist/index.js +1301 -1016
- package/dist/skills/orc-bugfix/SKILL.md +22 -112
- package/dist/skills/orc-coder/SKILL.md +25 -104
- package/dist/skills/orc-gateway/SKILL.md +5 -3
- package/dist/skills/orc-git-flow/SKILL.md +18 -78
- package/dist/skills/orc-knowledge/SKILL.md +68 -109
- package/dist/skills/orc-main-base/SKILL.md +22 -99
- package/dist/skills/orc-memory/SKILL.md +66 -138
- package/dist/skills/orc-memory-review/SKILL.md +18 -8
- package/dist/skills/orc-planner/SKILL.md +16 -109
- package/dist/skills/orc-report/SKILL.md +1 -1
- package/dist/skills/orc-requirements/SKILL.md +10 -6
- package/dist/skills/orc-reviewer/SKILL.md +32 -135
- package/dist/skills/orc-session/SKILL.md +31 -12
- package/dist/skills/orc-tasks/SKILL.md +26 -95
- package/dist/skills/orc-worker-base/SKILL.md +55 -152
- package/dist/web/assets/Agents-BCgZS9yM.js +34 -0
- package/dist/web/assets/Audit-PGckH0vM.js +1 -0
- package/dist/web/assets/Dashboard-1Knw_AzS.css +1 -0
- package/dist/web/assets/Dashboard-Dt96DD5F.js +1 -0
- package/dist/web/assets/DocumentWorkspace-BHbUy7ic.js +1 -0
- package/dist/web/assets/FileEditor-DCslTjES.js +1 -0
- package/dist/web/assets/Jobs-CXU4KM7g.js +11 -0
- package/dist/web/assets/Knowledge-Dl4SueEz.js +38 -0
- package/dist/web/assets/PackageCatalog-Dch8MV9_.js +18 -0
- package/dist/web/assets/Pager-DP4jbc0w.js +1 -0
- package/dist/web/assets/Rules-CoMlVvUV.js +26 -0
- package/dist/web/assets/Sessions-B5wUetrc.js +1 -0
- package/dist/web/assets/Settings-CrMlCCF0.js +12 -0
- package/dist/web/assets/Skills-p8PK9QQh.js +1 -0
- package/dist/web/assets/SourceEditor-DPHhZVrM.js +14 -0
- package/dist/web/assets/Tasks-rgOphGCq.js +39 -0
- package/dist/web/assets/Terminals-BbWYyHA3.css +1 -0
- package/dist/web/assets/Terminals-krsRcQI9.js +43 -0
- package/dist/web/assets/abnfDiagram-VCTEODGH-Comk2Rw4.js +1 -0
- package/dist/web/assets/arc-Bvi_lKMF.js +1 -0
- package/dist/web/assets/architectureDiagram-5GKGNRK7-BTnv8TEv.js +36 -0
- package/dist/web/assets/{blockDiagram-I7D4REHJ-CkWnDidK.js → blockDiagram-I7D4REHJ-DeeC122Z.js} +4 -4
- package/dist/web/assets/{c4Diagram-7LVT6UL2-DzsBLSjE.js → c4Diagram-7LVT6UL2-BgW5C1aW.js} +6 -6
- package/dist/web/assets/channel-DEfxPxY-.js +1 -0
- package/dist/web/assets/chunk-2Q5K7J3B-DNjz7yJz.js +1 -0
- package/dist/web/assets/{chunk-5VM5RSS4-C9RTV_e0.js → chunk-5VM5RSS4-JLiAXzlU.js} +1 -1
- package/dist/web/assets/chunk-F27PBJKO-4rWBzZDo.js +1 -0
- package/dist/web/assets/{chunk-IMKFNOWR-oiDPR2aH.js → chunk-IMKFNOWR-D4mPRcFe.js} +1 -1
- package/dist/web/assets/chunk-JWPE2WC7-BgD0K5Ez.js +1 -0
- package/dist/web/assets/chunk-POPQ4Y6H-ClQOYSty.js +1 -0
- package/dist/web/assets/{chunk-SVP7TREG-Dry3jpj3.js → chunk-SVP7TREG-D3Cn_lvd.js} +1 -1
- package/dist/web/assets/{chunk-TICWLB2K-JUXAhcFd.js → chunk-TICWLB2K-DPn2znfA.js} +1 -1
- package/dist/web/assets/chunk-XXDRQBXY-2xXr8EXw.js +1 -0
- package/dist/web/assets/classDiagram-ZZMXUADV-AHd3Z06u.js +1 -0
- package/dist/web/assets/classDiagram-v2-VYDZK3BY-AHd3Z06u.js +1 -0
- package/dist/web/assets/cose-bilkent-JH36ORCC-CHqRRPA_.js +1 -0
- package/dist/web/assets/{cynefin-OW5HDTMX-B-wATVv-.js → cynefin-OW5HDTMX-Bu5NPO95.js} +1 -1
- package/dist/web/assets/cynefinDiagram-5FMLGOSQ-BI3nxgnD.js +62 -0
- package/dist/web/assets/{dagre-GXQ25YYZ-BEaQ_fXA.js → dagre-GXQ25YYZ-B7lINgif.js} +2 -2
- package/dist/web/assets/{diagram-S7CK7UJ4-DXg30yKg.js → diagram-S7CK7UJ4-C-D6efep.js} +5 -5
- package/dist/web/assets/diagram-UQ7AKVKN-BLuEz09b.js +41 -0
- package/dist/web/assets/{diagram-VSXAHHWV-liCEHREh.js → diagram-VSXAHHWV-CUPoEtgr.js} +3 -3
- package/dist/web/assets/diagram-VX7I27RA-CSSKOhYt.js +24 -0
- package/dist/web/assets/diagram-Z3DM3KII-DPn5bqOq.js +24 -0
- package/dist/web/assets/download-CM6xWttS.js +6 -0
- package/dist/web/assets/ebnfDiagram-PWID7BFC-MFXoS-Jz.js +1 -0
- package/dist/web/assets/{erDiagram-RLTQ6QDP-DLlk_GdL.js → erDiagram-RLTQ6QDP-4HM-oT_n.js} +2 -2
- package/dist/web/assets/{flowDiagram-HODETNUW-JTBl3cFA.js → flowDiagram-HODETNUW-C4Fh3QeO.js} +7 -7
- package/dist/web/assets/folder-open-B4mla76J.js +6 -0
- package/dist/web/assets/ganttDiagram-EL5Y4UJY-BB0_ZKN6.js +292 -0
- package/dist/web/assets/gitGraphDiagram-WWUBYQGX-BmQ3vg7J.js +106 -0
- package/dist/web/assets/highlighted-body-KPVGNVTW-oCX1KOoZ.js +1 -0
- package/dist/web/assets/index-1DuOwIVM.css +1 -0
- package/dist/web/assets/index-C8LK_ZGr.js +379 -0
- package/dist/web/assets/infoDiagram-27XIBGKW-BTPkoR3C.js +2 -0
- package/dist/web/assets/{ishikawaDiagram-5VMMS53U-BEIkH7td.js → ishikawaDiagram-5VMMS53U-CiHd2ebW.js} +6 -6
- package/dist/web/assets/{journeyDiagram-3NMN7TZE-DBFMtw5a.js → journeyDiagram-3NMN7TZE-CxaySxDn.js} +2 -2
- package/dist/web/assets/{kanban-definition-UXKFOSKX-C40yDhY1.js → kanban-definition-UXKFOSKX-BOX0YIRw.js} +8 -8
- package/dist/web/assets/layout-BhNFpPPe.js +1 -0
- package/dist/web/assets/linear-DHq-y1s_.js +1 -0
- package/dist/web/assets/mermaid-HWGCJPDP-DJNeD_0S.js +609 -0
- package/dist/web/assets/{mindmap-definition-YA3MSWOX-CEJH7zEI.js → mindmap-definition-YA3MSWOX-DZGpGSz5.js} +5 -5
- package/dist/web/assets/pegDiagram-XKGWAZYB-BxMh-_51.js +1 -0
- package/dist/web/assets/pencil-B6dqJ9w4.js +6 -0
- package/dist/web/assets/pieDiagram-E7YTZNPT-CS3y4-9p.js +39 -0
- package/dist/web/assets/primitive-files-BwTyowra.js +1 -0
- package/dist/web/assets/public-api-BvD4z7ja.js +131 -0
- package/dist/web/assets/{quadrantDiagram-AXDQQJYC-BIWYQhFI.js → quadrantDiagram-AXDQQJYC-CpI43lZu.js} +2 -2
- package/dist/web/assets/railroadDiagram-O6MQD6OU-DjJq4i95.js +1 -0
- package/dist/web/assets/refresh-cw-DlrGbI-a.js +6 -0
- package/dist/web/assets/{requirementDiagram-BXWQKSXE-Dfxf6QMd.js → requirementDiagram-BXWQKSXE-s2eQx2yN.js} +4 -4
- package/dist/web/assets/sankeyDiagram-P5KCCOFB-D_Vdp4pK.js +40 -0
- package/dist/web/assets/save-C9B3YcwG.js +6 -0
- package/dist/web/assets/schemas-Cwl03S4d.js +57 -0
- package/dist/web/assets/scroll-area-BlQvOdJP.js +1 -0
- package/dist/web/assets/{sequenceDiagram-WJ2MYXX4-B2uw9lIz.js → sequenceDiagram-WJ2MYXX4-CQHywZuE.js} +2 -2
- package/dist/web/assets/sizeCapture-INFHLROL-BInl5f7-.js +1 -0
- package/dist/web/assets/stateDiagram-D77RDMKH-DzvPlBSY.js +1 -0
- package/dist/web/assets/stateDiagram-v2-MP3YSRHH-BiG6-goP.js +1 -0
- package/dist/web/assets/swimlanes-42K2YHIH-Dg2ec7U4.js +1 -0
- package/dist/web/assets/swimlanesDiagram-VR7AAH4N-CGOOp6ap.js +8 -0
- package/dist/web/assets/{timeline-definition-24CTP7MA-B2GMK_El.js → timeline-definition-24CTP7MA-CIv5WXwQ.js} +8 -8
- package/dist/web/assets/upload-Bj7E30a8.js +6 -0
- package/dist/web/assets/useJobs-5iAiSyqW.js +1 -0
- package/dist/web/assets/useKnowledge-D0_usn9_.js +1 -0
- package/dist/web/assets/useMemories-8BpYi3YI.js +1 -0
- package/dist/web/assets/useProjectScope-CRW39JH-.js +1 -0
- package/dist/web/assets/{vennDiagram-4TSXK5OY-CnM_Mi8-.js → vennDiagram-4TSXK5OY-XAHw4n3M.js} +5 -5
- package/dist/web/assets/{wardleyDiagram-VM6X3IG4-BTk-2N68.js → wardleyDiagram-VM6X3IG4-BIEdfrsN.js} +4 -4
- package/dist/web/assets/wiki-links-Y6CQL1QZ.js +1 -0
- package/dist/web/assets/{xychartDiagram-S5SC5T6Z-Ci-6nbSg.js → xychartDiagram-S5SC5T6Z-BaNxlHBC.js} +3 -3
- package/dist/web/favicon.svg +6 -0
- package/dist/web/index.html +13 -3
- package/package.json +4 -3
- package/dist/web/assets/FileEditor-L_GU75WT.js +0 -1
- package/dist/web/assets/SourceEditor-CBfp50r2.js +0 -14
- package/dist/web/assets/abnfDiagram-VCTEODGH-C6veTbhh.js +0 -1
- package/dist/web/assets/arc-npOpSJyq.js +0 -1
- package/dist/web/assets/architectureDiagram-5GKGNRK7-2HiAOiQm.js +0 -36
- package/dist/web/assets/channel-ChxJxoPS.js +0 -1
- package/dist/web/assets/chunk-2Q5K7J3B-CwxiJMoU.js +0 -1
- package/dist/web/assets/chunk-F27PBJKO-DAaDh_Ml.js +0 -1
- package/dist/web/assets/chunk-JWPE2WC7-D1jKFDr2.js +0 -1
- package/dist/web/assets/chunk-POPQ4Y6H-DitejAMK.js +0 -1
- package/dist/web/assets/chunk-XXDRQBXY-6wgUfzQH.js +0 -1
- package/dist/web/assets/classDiagram-ZZMXUADV-ABoavWk1.js +0 -1
- package/dist/web/assets/classDiagram-v2-VYDZK3BY-ABoavWk1.js +0 -1
- package/dist/web/assets/cose-bilkent-JH36ORCC-87PnCJEc.js +0 -1
- package/dist/web/assets/cynefinDiagram-5FMLGOSQ-BRcl6eW9.js +0 -62
- package/dist/web/assets/diagram-UQ7AKVKN-B2xTfPBB.js +0 -41
- package/dist/web/assets/diagram-VX7I27RA-D6zSia8j.js +0 -24
- package/dist/web/assets/diagram-Z3DM3KII-Bkz8uM1N.js +0 -24
- package/dist/web/assets/ebnfDiagram-PWID7BFC-p94ShKlh.js +0 -1
- package/dist/web/assets/ganttDiagram-EL5Y4UJY-CWut_oZu.js +0 -292
- package/dist/web/assets/gitGraphDiagram-WWUBYQGX-YxNuKt4D.js +0 -106
- package/dist/web/assets/highlighted-body-KPVGNVTW-Bqwygq3Z.js +0 -1
- package/dist/web/assets/index-BSMDvuoy.css +0 -1
- package/dist/web/assets/index-q4PKnTK3.js +0 -1361
- package/dist/web/assets/infoDiagram-27XIBGKW-DacMneAQ.js +0 -2
- package/dist/web/assets/layout-BLK70bgi.js +0 -1
- package/dist/web/assets/linear-u4L6Os64.js +0 -1
- package/dist/web/assets/pegDiagram-XKGWAZYB-BMErgyMk.js +0 -1
- package/dist/web/assets/pieDiagram-E7YTZNPT-CINgK4t3.js +0 -39
- package/dist/web/assets/railroadDiagram-O6MQD6OU-j1Y4xGJf.js +0 -1
- package/dist/web/assets/sankeyDiagram-P5KCCOFB-BSqqroQR.js +0 -40
- package/dist/web/assets/sizeCapture-INFHLROL-BN4LDiAT.js +0 -1
- package/dist/web/assets/stateDiagram-D77RDMKH-BDH3Zt-N.js +0 -1
- package/dist/web/assets/stateDiagram-v2-MP3YSRHH-J40BXTJa.js +0 -1
- package/dist/web/assets/swimlanes-42K2YHIH-DhSjWXDg.js +0 -1
- package/dist/web/assets/swimlanesDiagram-VR7AAH4N-BR8GCBcj.js +0 -8
package/README.md
CHANGED
|
@@ -28,14 +28,14 @@ ORC fixes this. Shared memory across every session. A task board where agents su
|
|
|
28
28
|
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
29
29
|
| **Agent orchestration** | Task loop spawns workers across backends (Claude Code, Codex, Gemini, Copilot, A2A), manages concurrency and review cycles |
|
|
30
30
|
| **Human-in-the-loop** | Agents submit work for your approval via CLI, Telegram, or Slack before anything lands |
|
|
31
|
-
| **Shared memory** |
|
|
31
|
+
| **Shared memory** | Short project facts (ports, conventions, gotchas, decisions), ranked by priority and loaded into every session's context |
|
|
32
32
|
| **Task board** | `todo → queued → doing → review → done` with dependency tracking, priority, and automatic unblocking |
|
|
33
33
|
| **Multi-backend routing** | Route to Claude (in-process, nothing to install), ACPX (14+ agents), agentapi, or remote A2A endpoints — with `orc doctor` reporting which are usable |
|
|
34
34
|
| **Job runner** | Cron, file-watch, webhook, or manual triggers with full run history |
|
|
35
|
-
| **MCP server** |
|
|
35
|
+
| **MCP server** | 54 tools connect any [Model Context Protocol](https://modelcontextprotocol.io) (MCP) compatible agent — stdio or Streamable HTTP |
|
|
36
36
|
| **Session continuity** | Snapshots survive context compaction so agents resume where they left off |
|
|
37
37
|
| **Gateway** | Approve work, search memory, and chat with live agents from Telegram or Slack |
|
|
38
|
-
| **Knowledge
|
|
38
|
+
| **Knowledge bases** | Upload PDFs, Office files and Markdown or copy in local folders; hybrid full-text + vector search with cited passages |
|
|
39
39
|
| **Skill library** | Discoverable workflow templates (coder, reviewer, planner, bugfix) that encode your standards |
|
|
40
40
|
| **Task flows** | Per-task graphs: conditional edges, bounded loops, parallel fan-out with joins, and human gates — with hard termination rails |
|
|
41
41
|
|
|
@@ -112,7 +112,7 @@ orc project use my-app
|
|
|
112
112
|
|
|
113
113
|
# 3. Add tasks and memories - everything auto-scopes to my-app
|
|
114
114
|
orc task add "Fix the auth bug" --priority high
|
|
115
|
-
orc mem add "Use RWMutex for token refresh" --
|
|
115
|
+
orc mem add token-refresh-lock -d "Check before touching token refresh" -c "Use RWMutex for token refresh" --priority 60
|
|
116
116
|
orc job add nightly --command "bun run test" --trigger cron --cron "0 22 * * *"
|
|
117
117
|
|
|
118
118
|
# 4. See everything
|
|
@@ -138,6 +138,8 @@ The web dashboard ships inside the `orc` binary and is served by the API process
|
|
|
138
138
|
| `GET /mcp` | MCP server (streamable HTTP) |
|
|
139
139
|
| `GET /tasks/<id>`, `/knowledge`, … | `index.html` again - a navigation request matching no static file falls back to the SPA shell, so dashboard links are shareable |
|
|
140
140
|
|
|
141
|
+
`/mcp?mode=meta` serves three meta-tools (`tool_search`, `tool_describe`, `tool_invoke`) instead of the full tool list, which keeps client context small; the model finds a tool, reads its schema, then calls it through `tool_invoke` with the same validation as a direct call. Stdio parity: `orc mcp --mode meta`. Any other `mode` value returns HTTP 400.
|
|
142
|
+
|
|
141
143
|
Override the served dist directory with `ORC_WEB_DIST=/path/to/web/dist` if you want to host a custom build (e.g. a fork). If no dist is found, the server runs in pure-API mode.
|
|
142
144
|
|
|
143
145
|
### Desktop app
|
|
@@ -181,7 +183,9 @@ Or with [docker-compose.yml](docker-compose.yml):
|
|
|
181
183
|
docker compose up -d
|
|
182
184
|
```
|
|
183
185
|
|
|
184
|
-
The
|
|
186
|
+
The source Docker image includes Node, ACPX, Claude Code and Codex CLI, with versions pinned in the Dockerfile. Its default backend is `claude` through the Anthropic SDK. Tool installation alone does not supply authentication: provide `ANTHROPIC_API_KEY` for Claude, `OPENAI_API_KEY` or a container-local Codex login for `codex-cli`, and the credentials required by whichever agent ACPX launches. Mount your repository and use its **container path** as the project folder. Agent configuration/session files can persist in the Compose `orc-home` volume. Existing ORC policies still apply; native Codex rule interception is not certified by CLI/tool availability. These source changes do not update an already published image.
|
|
187
|
+
|
|
188
|
+
To delegate to an agent running on the host instead, set `ORC_AGENT_LOOP_DEFAULT_BACKEND=agentapi` and run [coder/agentapi](https://github.com/coder/agentapi) on the host:
|
|
185
189
|
|
|
186
190
|
```bash
|
|
187
191
|
agentapi server --allowed-hosts '*' -- \
|
|
@@ -202,7 +206,7 @@ Add to `~/.claude/settings.json`:
|
|
|
202
206
|
"hooks": {
|
|
203
207
|
"PostToolUse": [
|
|
204
208
|
{
|
|
205
|
-
"matcher": "Write|Edit|MultiEdit|StrReplace|EditNotebook|Bash|Shell|Agent|EnterPlanMode|ExitPlanMode|mcp__orc__task_|
|
|
209
|
+
"matcher": "Write|Edit|MultiEdit|StrReplace|EditNotebook|Bash|Shell|Agent|EnterPlanMode|ExitPlanMode|mcp__orc__task_|mcp__orc__memory_create|mcp__orc__memory_delete|mcp__orc__job_run|mcp__orc__job_create|mcp__orc__job_update",
|
|
206
210
|
"hooks": [
|
|
207
211
|
{
|
|
208
212
|
"type": "command",
|
|
@@ -372,7 +376,7 @@ orc project add my-app -d "Main application"
|
|
|
372
376
|
orc project use my-app # set active
|
|
373
377
|
|
|
374
378
|
orc task list # scoped to my-app
|
|
375
|
-
orc mem
|
|
379
|
+
orc mem list -q auth # scoped to my-app
|
|
376
380
|
orc task list -p infra # override to different project
|
|
377
381
|
orc task list --no-project # see everything
|
|
378
382
|
```
|
|
@@ -383,45 +387,55 @@ MCP tools follow the same logic - pass `project: "name"` to scope, or omit to us
|
|
|
383
387
|
|
|
384
388
|
### Memory
|
|
385
389
|
|
|
386
|
-
|
|
390
|
+
A memory is a short project fact worth knowing next session: ports, conventions, gotchas,
|
|
391
|
+
decisions, pointers. Each has a lowercase-hyphenated `name` (unique per project), a
|
|
392
|
+
`description` saying when it matters, `content` (up to 800 characters by default) and an
|
|
393
|
+
optional `priority` from 0 to 100. `context` loads the top 30 memories by priority; agents
|
|
394
|
+
then read the ones they need. Procedures and long guidance belong in skills.
|
|
387
395
|
|
|
388
396
|
```bash
|
|
389
|
-
orc mem add "All IDs are ULIDs" --
|
|
390
|
-
orc mem
|
|
391
|
-
orc mem
|
|
397
|
+
orc mem add ulid-ids -d "Check before adding a table or ID field" -c "All IDs are ULIDs" --priority 90
|
|
398
|
+
orc mem list -q ids # search names and descriptions
|
|
399
|
+
orc mem show ulid-ids
|
|
400
|
+
orc mem edit ulid-ids --priority 80 -r "Narrower than we thought"
|
|
401
|
+
orc mem history ulid-ids # every change, with before/after
|
|
402
|
+
orc mem revert ulid-ids <change-id> --expected-change-id <latest-change-id> -r "Undo mistaken edit"
|
|
392
403
|
```
|
|
393
404
|
|
|
394
|
-
|
|
395
|
-
| ----------- | ------ | ----------------------------------------------- |
|
|
396
|
-
| `rule` | High | Conventions: "all IDs are ULIDs" |
|
|
397
|
-
| `decision` | High | Choices: "use PostgreSQL for concurrent writes" |
|
|
398
|
-
| `discovery` | Medium | Findings: "token refresh has a race condition" |
|
|
399
|
-
| `event` | Low | Things that happened: "deployed v1.0" |
|
|
400
|
-
| `fact` | Low | General knowledge (default) |
|
|
405
|
+
### Knowledge bases
|
|
401
406
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
Index existing document collections (markdown, notes, code docs) and make them searchable by any agent. Unlike memory (short agent-authored notes), knowledge searches pre-existing files on disk.
|
|
407
|
+
Knowledge bases hold human reference documents for agents to search and cite. A knowledge base belongs to a project or is global. Add documents by uploading files (PDF, Word, PowerPoint, Excel, HTML, CSV, Markdown, text), writing Markdown in the dashboard, or registering a folder whose files are copied in. ORC never writes the folder: a copy follows its file on each scan until it is edited in ORC, and a file deleted from the folder keeps its copy. Documents have folders, labels and `[[links]]` with backlinks.
|
|
405
408
|
|
|
406
409
|
```bash
|
|
407
|
-
|
|
408
|
-
orc
|
|
410
|
+
orc kb create Runbooks --project my-app
|
|
411
|
+
orc kb add Runbooks ./docs/*.pdf # upload and parse
|
|
412
|
+
orc kb sources add Runbooks ./handbook # copy a folder in, rescanned periodically
|
|
413
|
+
orc kb editable-by Runbooks ui,cli,api # agents (mcp) may read but not edit
|
|
414
|
+
orc kb search "rollback procedure" # cited passages
|
|
415
|
+
orc kb evidence "how do we rotate keys" # budgeted evidence pack
|
|
416
|
+
orc kb usage Runbooks # reads by source (mcp, api, cli, ui)
|
|
417
|
+
```
|
|
409
418
|
|
|
410
|
-
|
|
411
|
-
orc knowledge search "authentication flow"
|
|
419
|
+
Comments on a knowledge base or one of its documents ask for a change: a correction, a source to digest, a lesson to record. Each has an author and source, a status (open, resolved, dismissed) and one closing reply.
|
|
412
420
|
|
|
413
|
-
|
|
414
|
-
orc knowledge list
|
|
421
|
+
Any knowledge base can have a digest: an agent (Claude, Codex, ...) that follows the knowledge base's own instructions on a schedule, handling open comments first and then reading memories, session summaries and audit records to add, correct and clean up documents. The schedule is an ordinary ORC job (cron or manual) with run history. In the dashboard choose **Add digest** on a knowledge base; it starts from a generic template. Scheduled runs are skipped when nothing new happened. Each active project gets a starter **Learnings** knowledge base with a daily 03:00 digest.
|
|
415
422
|
|
|
416
|
-
|
|
417
|
-
orc
|
|
423
|
+
```bash
|
|
424
|
+
orc kb comment add Learnings "Digest https://example.com/postmortem"
|
|
425
|
+
orc kb digest template > digest.md # edit, then:
|
|
426
|
+
orc kb digest set Runbooks -b codex --cron "0 3 * * *" -i digest.md
|
|
427
|
+
orc kb digest run Runbooks
|
|
418
428
|
```
|
|
419
429
|
|
|
420
|
-
|
|
430
|
+
Search combines title/path matches, SQLite full-text search and, when embeddings are configured (Ollama or an OpenAI-compatible API), vectors stored with sqlite-vec. Set the embedding URL, model and API key or token in Settings or with `orc kb settings`; the key is stored encrypted and never returned by the API. Results cite passages as `kb:<doc>@<rev>#<n>`. Every read is counted per document and source.
|
|
431
|
+
|
|
432
|
+
The built-in parser handles all formats without extra installs. For better PDF layout, tables and OCR, install the optional [Docling](https://github.com/docling-project/docling) parser from Settings or with `orc kb docling install` (about 2 GB); in `auto` mode it is then used for PDFs and images. Each knowledge base can override the parser.
|
|
421
433
|
|
|
422
|
-
|
|
434
|
+
Each knowledge base lists the call sources that may change its documents (`editable_by`: `ui`, `cli`, `api`, `mcp`; all four by default). Agents write with `kb_write` and `kb_document` (partial edits by exact text or line range) where `mcp` is allowed; every change is a revision recording its source and session. Knowledge base settings and knowledge settings cannot be changed over MCP, so an agent cannot widen its own access. Rendered Markdown shows remote images as links instead of loading them.
|
|
423
435
|
|
|
424
|
-
|
|
436
|
+
To back up knowledge bases, stop ORC and copy `~/.orc/orc.db` (with its `-wal` and `-shm` files) and `~/.orc/knowledge/originals/`, plus `~/.orc/secret.key`, without which a saved embedding API key cannot be decrypted and must be entered again. The search index, parse results and Markdown copies are rebuilt on the next start.
|
|
437
|
+
|
|
438
|
+
**MCP tools:** `kb_list`, `kb_search`, `kb_evidence`, `kb_read`, `kb_documents`, `kb_write`, `kb_document`, `kb_comment`, `kb_manage`, `kb_digest`, `kb_maintenance`
|
|
425
439
|
|
|
426
440
|
### Task status flow
|
|
427
441
|
|
|
@@ -449,21 +463,18 @@ The graph itself is deterministic; only the nodes are agents. That means loops,
|
|
|
449
463
|
|
|
450
464
|
```bash
|
|
451
465
|
orc flow list # what graphs are available
|
|
452
|
-
orc flow show orc-
|
|
453
|
-
orc task add "Fix the flaky test" --flow orc-
|
|
466
|
+
orc flow show orc-default # nodes, edges, limits
|
|
467
|
+
orc task add "Fix the flaky test" --flow orc-default --skill orc-bugfix
|
|
454
468
|
orc flow status <taskId> # active nodes + the ledger of outcomes
|
|
455
469
|
orc flow resume <taskId> --outcome approved # resolve a human gate
|
|
456
470
|
orc flow halt <taskId> # stop it and kill live nodes
|
|
457
471
|
```
|
|
458
472
|
|
|
459
|
-
| Built-in
|
|
460
|
-
|
|
|
461
|
-
| `orc-default`
|
|
462
|
-
| `orc-review
|
|
463
|
-
| `orc-
|
|
464
|
-
| `orc-fix-verify` | bugfix → independent confirmation the fix holds and a regression test exists |
|
|
465
|
-
| `orc-supervisor` | Executor keeping its context, plus a supervisor re-verifying from a clean one |
|
|
466
|
-
| `orc-parallel-review` | Fan out to correctness / security / tests reviewers, join on all three |
|
|
473
|
+
| Built-in workflow | Use it for |
|
|
474
|
+
| --- | --- |
|
|
475
|
+
| `orc-default` | Development: understand, plan as needed, implement, verify and independently review; bounded rework. `required_review: false` explicitly skips agent review. |
|
|
476
|
+
| `orc-human-review` | The same development process plus human sign-off. Agent review and human approval are always required, even if `required_review` is false. |
|
|
477
|
+
| `orc-review-only` | Review existing work; approve, request changes, or pause when evidence is insufficient. |
|
|
467
478
|
|
|
468
479
|
**Nodes** are `agent` (runs a session with a skill), `gate` (deterministic branching, fan-out, join points), `human` (waits for you), or `terminal` (ends the run and sets the task's final status). **Edges** carry declarative conditions — `outcome`, `visits`, `var`, `elapsed_secs`, composed with `all`/`any`/`not` — which are data, never evaluated code.
|
|
469
480
|
|
|
@@ -561,13 +572,29 @@ npx skills add niradler/orc --all -g
|
|
|
561
572
|
| --------------- | -------------------------------------------------------------------------- |
|
|
562
573
|
| `orc-session` | Session start, context compaction, resuming work |
|
|
563
574
|
| `orc-tasks` | Task creation, status updates, HITL review, task decomposition |
|
|
564
|
-
| `orc-
|
|
575
|
+
| `orc-memory` | Short project facts, "remember this", "what did we decide" |
|
|
576
|
+
| `orc-knowledge` | Searching indexed docs, managing knowledge collections |
|
|
565
577
|
| `orc-gateway` | Telegram/Slack setup, remote approval, live agent sessions |
|
|
566
578
|
|
|
567
579
|
### Built-in skill templates
|
|
568
580
|
|
|
569
581
|
Skill templates live in `skills/*/SKILL.md` (built-in) and `~/.orc/skills/` (user-defined). Agents discover them via `skill_list` and load with `skill_read`.
|
|
570
582
|
|
|
583
|
+
On the **Skills** page, each built-in has an **Agent discovery** toggle, plus
|
|
584
|
+
**Hide all built-ins** and **Show all built-ins** controls. Visibility applies
|
|
585
|
+
across the installation and defaults to visible. Hidden built-ins stay on the
|
|
586
|
+
Skills page for management and remain readable by name, including supporting
|
|
587
|
+
files; existing task flows continue to use them. User/imported skills and authored
|
|
588
|
+
global/project instruction overrides remain discoverable.
|
|
589
|
+
|
|
590
|
+
The policy is saved under `skills.hidden_builtins` in `~/.orc/config.json` and
|
|
591
|
+
read afresh for discovery, including by existing MCP processes. `GET /api/skills`
|
|
592
|
+
omits hidden built-ins; `include_hidden=true` returns the management catalog with
|
|
593
|
+
`discovery_hidden` metadata. `GET /api/skills/settings/visibility` reads the policy and
|
|
594
|
+
`PUT /api/skills/settings/visibility` replaces its `hidden_builtins` array using the usual
|
|
595
|
+
API authentication. This installation-wide preference ignores project config.
|
|
596
|
+
New built-ins default to visible until hidden explicitly.
|
|
597
|
+
|
|
571
598
|
| Skill | Type | Purpose |
|
|
572
599
|
| ------------------ | -------- | --------------------------------------------------------------------------- |
|
|
573
600
|
| `orc-worker-base` | Base | Default worker behavior - ORC awareness, status updates, deliverable format |
|
|
@@ -648,12 +675,12 @@ Tools are available to any connected agent. Start every session with `context`.
|
|
|
648
675
|
| Category | Tools |
|
|
649
676
|
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
650
677
|
| **Project** | `project_list` |
|
|
651
|
-
| **Memory** | `context`, `
|
|
678
|
+
| **Memory** | `context`, `memory_list`, `memory_read`, `memory_create`, `memory_update`, `memory_delete`, `memory_history`, `memory_revert` |
|
|
652
679
|
| **Task** | `task_list`, `task_get`, `task_create`, `task_update`, `task_batch_create` |
|
|
653
680
|
| **Skill** | `skill_list`, `skill_read`, `skill_create` |
|
|
654
681
|
| **Agent** | `agent_list`, `agent_read`, `agent_create`, `agent_package_list`, `agent_package_read`, `agent_package_import` |
|
|
655
682
|
| **Flow** | `flow_report`, `flow_status`, `flow_list`, `flow_read`, `flow_create`, `flow_attach` |
|
|
656
|
-
| **Knowledge** | `
|
|
683
|
+
| **Knowledge** | `kb_list`, `kb_search`, `kb_evidence`, `kb_read`, `kb_documents`, `kb_write`, `kb_maintenance` |
|
|
657
684
|
| **Search** | `search` |
|
|
658
685
|
| **Job** | `job_list`, `job_run`, `job_status` |
|
|
659
686
|
| **Session** | `session_event`, `session_snapshot`, `session_restore`, `session_log` |
|
|
@@ -677,8 +704,10 @@ Runs on port 7700 with auto-generated OpenAPI spec.
|
|
|
677
704
|
| `GET/POST/PATCH/DELETE` | `/tasks` | CRUD tasks |
|
|
678
705
|
| `GET/POST` | `/tasks/{id}/notes` | Task notes |
|
|
679
706
|
| `GET/POST/DELETE` | `/tasks/{id}/links` | Task dependencies |
|
|
680
|
-
| `GET/POST
|
|
681
|
-
| `GET`
|
|
707
|
+
| `GET/POST` | `/memories` | List (`q`, `sort`) / create |
|
|
708
|
+
| `GET/PATCH/DELETE` | `/memories/{name}` | Read / update / delete by name |
|
|
709
|
+
| `GET` | `/memories/{name}/history` | Change history |
|
|
710
|
+
| `POST` | `/memories/{name}/revert` | Revert a change |
|
|
682
711
|
| `GET` | `/knowledge/search` | Search documents (BM25/hybrid) |
|
|
683
712
|
| `GET` | `/knowledge/documents/{id}` | Get document by docid |
|
|
684
713
|
| `GET/POST/DELETE` | `/knowledge/collections` | CRUD collections |
|
|
@@ -714,7 +743,7 @@ orc doctor Check which agent backends are usable here
|
|
|
714
743
|
|
|
715
744
|
orc project list|add|show|use|update|archive
|
|
716
745
|
orc task list|add|show|update|done|review|approve|reject|delete
|
|
717
|
-
orc mem list|add|
|
|
746
|
+
orc mem list|show|add|edit|delete|history|revert
|
|
718
747
|
orc job list|add|run|runs
|
|
719
748
|
orc session list|show|log
|
|
720
749
|
orc skill list|show
|
|
@@ -757,8 +786,13 @@ ORC merges config in priority order (later wins):
|
|
|
757
786
|
| `ORC_AGENT_LOOP_DEFAULT_BACKEND` | `claude` | Default agent backend |
|
|
758
787
|
| `ORC_AGENT_LOOP_IDLE_TIMEOUT` | `20` | Session idle timeout (minutes) |
|
|
759
788
|
| `ORC_AGENT_LOOP_AUTO_APPROVE` | `true` | Auto-approve worker tool permissions |
|
|
760
|
-
| `
|
|
761
|
-
| `
|
|
789
|
+
| `ORC_KNOWLEDGE_ROOT` | beside `orc.db` | Knowledge base storage (files, index) |
|
|
790
|
+
| `ORC_KNOWLEDGE_PARSER` | `auto` | `auto`, `basic` or `docling` |
|
|
791
|
+
| `ORC_KNOWLEDGE_EMBEDDING_PROVIDER` | `none` | `none`, `ollama` or `openai` |
|
|
792
|
+
| `ORC_KNOWLEDGE_EMBEDDING_URL` | provider default | Embedding endpoint |
|
|
793
|
+
| `ORC_KNOWLEDGE_EMBEDDING_MODEL` | provider default | Embedding model |
|
|
794
|
+
| `ORC_KNOWLEDGE_EMBEDDING_API_KEY` | - | API key for OpenAI-compatible embeddings |
|
|
795
|
+
| `ORC_SQLITE_VEC_PATH` | bundled | Path to a sqlite-vec `vec0` library |
|
|
762
796
|
|
|
763
797
|
</details>
|
|
764
798
|
|
|
@@ -838,7 +872,7 @@ See [AGENTS.md](./AGENTS.md) for the full development guide and coding conventio
|
|
|
838
872
|
|
|
839
873
|
## Learn more
|
|
840
874
|
|
|
841
|
-
- [
|
|
875
|
+
- [Knowledge learning loop](./docs/knowledge-loop.md) - memories, knowledge base digests and comments, skill edits, and human revert
|
|
842
876
|
- [Agent Rules](./docs/agent-rules.md) - opt-in tool protection, revision history, deterministic job actions, and evidence-based skill evaluation
|
|
843
877
|
- [Usage Guide](./docs/usage-guide.md) - best practices for memory, tasks, multi-agent workflows, and configuration
|
|
844
878
|
- [Vision](./docs/vision.md) - why ORC exists and the problem it solves
|
|
@@ -848,4 +882,4 @@ See [AGENTS.md](./AGENTS.md) for the full development guide and coding conventio
|
|
|
848
882
|
|
|
849
883
|
### Knowledge learning
|
|
850
884
|
|
|
851
|
-
Session review and a daily digest
|
|
885
|
+
Session review records verified lessons, and each project's Learnings knowledge base has a daily digest that turns memories, session summaries and comments into documents. Reuse them through ordinary KB search and skill reads. The dashboard shows learning history, audit records and manual skill revert. See [Knowledge learning loop](docs/knowledge-loop.md) for scopes, scheduling and validation limits.
|