ur-agent 1.34.0 → 1.35.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.
@@ -1,1042 +0,0 @@
1
- # UR-AGENT code feature inventory
2
-
3
- This file is a code-derived inventory of what this agent can do in the
4
- `ur-agent` 1.25.3 source tree. It is meant to cover behavior that is easy to
5
- miss in user-facing documentation.
6
-
7
- Sources traced include:
8
-
9
- - `package.json`
10
- - `bin/ur.js`
11
- - `src/entrypoints/cli.tsx`
12
- - `src/main.tsx`
13
- - `src/query.ts`
14
- - `src/commands.ts`
15
- - `src/tools.ts`
16
- - `src/constants/prompts.ts`
17
- - `src/tools/**`
18
- - `src/commands/**`
19
- - `src/services/**`
20
- - `src/security/**`
21
- - `src/utils/settings/**`
22
- - `src/utils/plugins/**`
23
- - `src/entrypoints/mcp.ts`
24
- - `src/sdk/index.ts`
25
- - `plugins/core/**`
26
-
27
- Notes:
28
-
29
- - "Feature-gated" means the code exists but is conditional on env vars,
30
- feature flags, build type, user type, or settings.
31
- - "Internal-only" means the code path is restricted to Anthropic/internal
32
- user types or similar checks in this tree.
33
- - "Stub" means the source exposes a command/tool name but the implementation is
34
- intentionally disabled, null, or placeholder in this build.
35
- - Copy-artifact files with names like `* 2.ts` are not treated as canonical;
36
- the cleanup pass removed the stale `escalate 2.ts` and `ollama 2.ts` copies.
37
-
38
- ## Package and binary entry
39
-
40
- - Publishes the CLI as `ur` from `bin/ur.js`.
41
- - Uses Bun as the runtime.
42
- - Runs `dist/cli.js` when present, otherwise `src/entrypoints/cli.tsx` with
43
- build macros.
44
- - Exposes package scripts for start, dev, bundling, release checks,
45
- typechecking, tests, smoke tests, secret scanning, package checks, and
46
- prepack bundling.
47
- - Includes a dependency-free TypeScript SDK in `src/sdk/index.ts` that shells
48
- out to `ur -p --output-format json`.
49
-
50
- ## Startup and runtime modes
51
-
52
- - Fast `--version`, `-v`, and `-V` handling before full CLI load.
53
- - Normal interactive terminal UI.
54
- - Headless print mode with `-p` / `--print`.
55
- - Output modes:
56
- - `text`
57
- - `json`
58
- - `stream-json`
59
- - Streaming JSON input mode via `--input-format stream-json`.
60
- - Structured output through `--json-schema`.
61
- - Optional inclusion of hook events, partial assistant messages, and replayed
62
- user messages in streamed output.
63
- - Debug modes:
64
- - `--debug`
65
- - `--debug-to-stderr`
66
- - `--debug-file`
67
- - verbose mode
68
- - Minimal `--bare` mode that forces simple/local behavior and skips many
69
- startup features such as hooks, LSP, plugin sync, attribution, auto-memory,
70
- background prefetches, keychain prefetch, and project instruction discovery.
71
- - Init flows:
72
- - `--init`
73
- - `--init-only`
74
- - maintenance mode
75
- - Resume flows:
76
- - continue last session
77
- - resume by session
78
- - fork/resume variants
79
- - resume from pull request context
80
- - no-persistence mode
81
- - rewind files
82
- - Model controls:
83
- - model selection
84
- - effort selection
85
- - fallback model
86
- - workload flags
87
- - beta flags
88
- - custom agents passed by `--agents <json>`
89
- - Turn and budget controls:
90
- - max turns
91
- - task budget
92
- - max budget
93
- - thinking controls
94
- - System prompt controls:
95
- - override system prompt
96
- - append system prompt
97
- - load prompt additions from a file
98
- - dump system prompt when gated
99
- - Workspace controls:
100
- - `--add-dir`
101
- - `--settings`
102
- - `--setting-sources`
103
- - `--ide`
104
- - `--strict-mcp-config`
105
- - `--session-id`
106
- - `--name`
107
- - `--file`
108
- - Worktree controls:
109
- - `-w` / `--worktree [name]`
110
- - `--tmux`
111
- - tmux worktree fast path
112
- - Background session controls, feature-gated:
113
- - `ps`
114
- - `logs`
115
- - `attach`
116
- - `kill`
117
- - `--bg` / `--background`
118
- - Daemon and worker modes, feature-gated:
119
- - `daemon`
120
- - `--daemon-worker`
121
- - environment runner
122
- - self-hosted runner
123
- - Browser and desktop integration entrypoints:
124
- - Chrome MCP mode
125
- - Chrome native host mode
126
- - computer-use MCP mode, feature-gated
127
- - deep-link handling, feature-gated
128
- - Remote/session server entrypoints:
129
- - `server`
130
- - `open <cc-url>`
131
- - SSH remote runner, feature-gated
132
- - remote-control / assistant bridge, feature-gated
133
- - A2A fast path in `bin/ur.js`:
134
- - local A2A HTTP server
135
- - health endpoint
136
- - agent-card endpoint
137
- - task endpoint
138
- - loopback-only protection unless bearer token is configured
139
- - dry-run mode
140
- - headless `ur -p --output-format json` execution for tasks
141
-
142
- ## Main CLI command families
143
-
144
- The CLI registers these top-level command families in `src/main.tsx`:
145
-
146
- - `mcp`: configure and manage MCP servers.
147
- - `auth`: login, status, and logout.
148
- - `plugin` / `plugins`: validate, install, update, enable, disable, uninstall,
149
- and manage marketplaces.
150
- - `setup-token`: configure a long-lived authentication token.
151
- - `agents`: list configured agents.
152
- - `agent-trends`: show coverage against current agent technology trends.
153
- - `agent-features` / `agent-roadmap`: show or initialize agent feature
154
- scaffolds.
155
- - `agent-templates` / `agent-template`: list or install reusable project
156
- agent templates.
157
- - `automation` / `automations`: manage project-local automation specs and the
158
- resident scheduler.
159
- - `agent-task` / `task-pr`: summarize task state, git diff status, and PR
160
- handoff commands.
161
- - `model-doctor` / `model-capabilities`: inspect local Ollama model
162
- capabilities.
163
- - `semantic-memory` / `memory-index`: build and search a project memory index.
164
- - `claim-ledger` / `claims`: manage claim-to-source provenance.
165
- - `browser-qa`: validate and smoke-run browser QA replay fixtures.
166
- - `pattern` / `patterns`: run or install multi-agent collaboration patterns.
167
- - `workflow` / `wf`: create, validate, graph, run, plan, and resume declarative
168
- workflows.
169
- - `agent-inspect` / `inspect-agents`: reconstruct subagent timelines from
170
- transcripts.
171
- - `route` / `intent`: classify task intent and recommend agents/patterns.
172
- - `model-route` / `model-pick`: recommend a local Ollama model for a task.
173
- - `crew` / `crews`: run a headless multi-agent crew with a shared board.
174
- - `goal` / `goals`: track long-horizon objectives and resume workflows.
175
- - `spec` / `specs`: spec-driven development scaffolding and execution.
176
- - `escalate`: capability-aware local model escalation.
177
- - `arena` / `best-of`: run competing agents in isolated worktrees and judge
178
- diffs.
179
- - `bg` / `background-agent`: run detached local background agents with durable
180
- state, logs, optional worktrees, fanout, live steering, and opt-in PRs.
181
- - `ci-loop` / `heal`: self-healing build/test loop with bounded fix attempts.
182
- - `test-first` / `quality-loop` / `tf-loop`: stack-aware compile/test/lint
183
- loop with failure traces and `.ur/verify.json` gate installation.
184
- - `safety` / `safety-policy`: inspect project shell safety policy, initialize
185
- `.ur/safety-policy.json`, and evaluate commands for read/write/execute/network
186
- permission class, destructive-command approval, sandbox posture, and secret
187
- exfiltration denial.
188
- - `context-pack` / `project-manifest` / `ctx-pack`: write
189
- `.ur/project-manifest.json`, summarize repository architecture under
190
- `.ur/context/architecture.md`, record task memory, and compress context.
191
- - `artifacts` / `artifact`: create, review, approve, reject, and capture
192
- deliverables; comments can steer linked background tasks.
193
- - `trigger` / `mention`: parse webhook payloads and optionally launch a run.
194
- - `sdk` / `embed`: show or scaffold programmatic SDK usage.
195
- - `knowledge` / `kb`: curated project knowledge base with provenance.
196
- - `eval` / `evals`: public agent eval harness.
197
- - `code-index` / `codeindex`: semantic code index backed by local embeddings,
198
- including watch mode for auto-reindex.
199
- - `repo-edit` / `repoedit` / `reliable-edit`: reliable repo editing with a
200
- local file/symbol index, AST-aware JavaScript/TypeScript rename plans, patch
201
- previews, and rollback-safe multi-file apply.
202
- - `memory retention`: project-local memory retention controls.
203
- - `ide diff`: editor-readable inline diff bundles for native review surfaces.
204
- - `role-mode` / `roles`: built-in role modes such as Architect, Code, Debug,
205
- and Ask.
206
- - `a2a`: agent-to-agent card, server, and token utilities.
207
- - `auto-mode`: inspect classifier defaults/config/critique when gated.
208
- - `doctor`: updater and health diagnostics.
209
- - `update` / `upgrade`: check and install updates.
210
- - `install`: install native builds.
211
- - `completion`: shell completion support.
212
-
213
- Internal-only or gated command families include rollback, log, error, export,
214
- task-list management, remote control, assistant bridge, and selected dev
215
- commands.
216
-
217
- ## Slash command inventory
218
-
219
- Slash commands are assembled from built-ins, skills, plugins, workflow commands,
220
- MCP prompt commands, and feature-gated sources in `src/commands.ts`.
221
-
222
- Code-visible slash command names include:
223
-
224
- - `a2a-card`
225
- - `actions`
226
- - `add-dir`
227
- - `advisor`
228
- - `agent-features`
229
- - `agent-inspect`
230
- - `agent-task`
231
- - `agent-templates`
232
- - `agent-trends`
233
- - `agents`
234
- - `analyze`
235
- - `arena`
236
- - `artifacts`
237
- - `automation`
238
- - `branch`
239
- - `brief`
240
- - `browser`
241
- - `browser-qa`
242
- - `btw`
243
- - `chrome`
244
- - `ci-loop`
245
- - `test-first`
246
- - `cite`
247
- - `claim-ledger`
248
- - `clear`
249
- - `code-index`
250
- - `color`
251
- - `compact`
252
- - `compliance`
253
- - `config`
254
- - `context`
255
- - `context-pack`
256
- - `convert`
257
- - `copy`
258
- - `cost`
259
- - `create-skill`
260
- - `crew`
261
- - `desktop`
262
- - `devcontainer`
263
- - `diff`
264
- - `dna`
265
- - `doctor`
266
- - `effort`
267
- - `escalate`
268
- - `eval`
269
- - `evidence`
270
- - `exit`
271
- - `export`
272
- - `extra-usage`
273
- - `fast`
274
- - `feedback`
275
- - `files`
276
- - `forget`
277
- - `goal`
278
- - `graph`
279
- - `guardrails`
280
- - `harden`
281
- - `heapdump`
282
- - `help`
283
- - `hooks`
284
- - `ide`
285
- - `image`
286
- - `index`
287
- - `init`
288
- - `install-github-app`
289
- - `install-slack-app`
290
- - `ir`
291
- - `kali`
292
- - `keybindings`
293
- - `knowledge`
294
- - `lab`
295
- - `learn`
296
- - `login`
297
- - `logout`
298
- - `mcp`
299
- - `memory`
300
- - `mode`
301
- - `model`
302
- - `model-doctor`
303
- - `model-route`
304
- - `os`
305
- - `output-style`
306
- - `paper`
307
- - `passes`
308
- - `pattern`
309
- - `permissions`
310
- - `plan`
311
- - `playbook`
312
- - `plugin`
313
- - `pr-comments`
314
- - `privacy-settings`
315
- - `project`
316
- - `insights`
317
- - `rate-limit-options`
318
- - `read`
319
- - `release-notes`
320
- - `reload-plugins`
321
- - `remember`
322
- - `remote-control`
323
- - `remote-env`
324
- - `rename`
325
- - `research`
326
- - `resume`
327
- - `review` / `ultrareview`
328
- - `rewind`
329
- - `role-mode`
330
- - `route`
331
- - `sandbox`
332
- - `safety`
333
- - `scope`
334
- - `sdk`
335
- - `search`
336
- - `security`
337
- - `security-review`
338
- - `semantic-memory`
339
- - `session`
340
- - `skills`
341
- - `spec`
342
- - `stability`
343
- - `stats`
344
- - `status`
345
- - `statusline`
346
- - `summarize`
347
- - `tag`
348
- - `tasks`
349
- - `terminal-setup`
350
- - `theme`
351
- - `think-back` / `thinkback-play`
352
- - `threat-model`
353
- - `toolsmith`
354
- - `trace`
355
- - `trigger`
356
- - `upgrade`
357
- - `ur-doctor`
358
- - `ur-init`
359
- - `usage`
360
- - `verify`
361
- - `video`
362
- - `vim`
363
- - `voice`
364
- - `vuln`
365
- - `web-setup`
366
- - `workflow`
367
- - `workspace`
368
- - `youtube`
369
-
370
- Internal-only command stubs or restricted commands in the registry include
371
- backfill sessions, break cache, bughunter, commit, commit/push/PR, context
372
- visualization, good UR, issue, init verifiers, force snip, mock limits, bridge
373
- kick, version, ultraplan, subscribe PR, reset limits, onboarding, share,
374
- summary, teleport, trace/debug helpers, perf issue, env, OAuth refresh,
375
- debug-tool-call, agents platform, and autofix PR.
376
-
377
- Remote-safe slash commands are limited to session, exit, clear, help, theme,
378
- color, vim, cost, usage, copy, btw, feedback, plan, keybindings, and
379
- statusline.
380
-
381
- Bridge-safe local commands include compact, clear, cost, summary,
382
- release-notes, and files. Prompt commands are allowed in the bridge path, while
383
- local JSX commands are blocked.
384
-
385
- ## Conversation loop features
386
-
387
- - Maintains an assistant/user/tool message loop in `src/query.ts`.
388
- - Streams assistant output and tool-use events.
389
- - Executes tool calls through streaming and non-streaming orchestration.
390
- - Supports parallel tool calls where the model emits them.
391
- - Validates and repairs missing tool result blocks.
392
- - Tracks tool-use summaries.
393
- - Enforces turn limits and task budgets.
394
- - Handles retryable API/model errors.
395
- - Supports fallback models.
396
- - Handles token-budget continuation.
397
- - Applies tool result output budgets and content replacement.
398
- - Supports large-output persistence and references.
399
- - Performs auto-compaction and micro-compaction.
400
- - Supports session-memory compaction.
401
- - Supports post-compact cleanup.
402
- - Has a disabled/stubbed context-collapse service in this build.
403
- - Handles prompt-too-long recovery when feature-gated.
404
- - Supports stop hooks and post-sampling hooks.
405
- - Tracks verifier state and can inject reminders.
406
- - Supports structured JSON output through a synthetic output tool.
407
-
408
- ## Prompt and behavioral system
409
-
410
- The system prompt source in `src/constants/prompts.ts` includes:
411
-
412
- - UR identity as a coding agent.
413
- - Concise terminal-oriented output rules.
414
- - Code editing expectations.
415
- - Tool-use discipline and preference for file tools over shell ad hoc edits.
416
- - Planning guidance for multi-step tasks.
417
- - Guidance for using subagents.
418
- - Guidance for invoking skills.
419
- - Optional verification contract.
420
- - Cyber-safety risk guidance.
421
- - Hook instructions.
422
- - MCP instructions.
423
- - Memory instructions.
424
- - Language and output-style customization.
425
- - System reminders.
426
- - Token-budget instructions.
427
- - Brief/proactive sections.
428
- - Scratchpad and function-result clearing sections.
429
-
430
- For Ollama-backed providers, the prompt adds stricter instructions around:
431
-
432
- - using structured tool calls rather than raw JSON/tool XML
433
- - using `Write` and `Edit` for file changes
434
- - preferring parallel tool calls
435
- - planning before larger tasks
436
- - stopping repeated failing calls
437
- - verifying before claiming completion
438
- - responding to command failures
439
- - avoiding empty responses
440
-
441
- `UR_CODE_SIMPLE` replaces this with a minimal prompt containing identity, cwd,
442
- and date.
443
-
444
- ## Built-in tools
445
-
446
- Tool assembly is centralized in `src/tools.ts`. Availability depends on mode,
447
- feature flags, user type, MCP, and settings.
448
-
449
- Core tools:
450
-
451
- - `Bash`: run shell commands with permissions, sandbox checks, timeout,
452
- background execution, read-only auto-approval heuristics, destructive command
453
- warnings, output truncation/persistence, image output handling, git operation
454
- tracking, and UI collapsing for common read/search commands.
455
- - `PowerShell`: PowerShell command execution with similar permission,
456
- path-safety, destructive-warning, and constrained-language checks.
457
- - `Read`: read text files, selected line ranges, images, notebooks, and PDF
458
- page ranges; blocks binary or risky device paths; enforces size/token limits;
459
- tracks reads before edits.
460
- - `Edit`: replace exact strings in files after prior read; validates paths,
461
- permissions, concurrent modifications, max file size, and secret exposure;
462
- records diffs/history.
463
- - `Write`: create or overwrite files; requires prior read for existing files;
464
- validates permissions and unexpected modifications; records diffs/history.
465
- - `NotebookEdit`: edit notebook cells.
466
- - `Glob`: find files by glob pattern.
467
- - `Grep`: search file contents with optimized ripgrep-backed behavior.
468
- - `CodeSearch`: semantic code search through a local embedding index.
469
- - `WebFetch`: fetch a URL and run a prompt over retrieved content.
470
- - `WebSearch`: web search through the configured model/tool backend.
471
- - `TodoWrite`: maintain conversation-local todo state.
472
- - `Agent`: launch subagents synchronously or in the background; supports custom
473
- agents, built-in agents, plugin agents, MCP requirements, worktree isolation,
474
- remote mode, permission modes, cwd, background output files, teams, memory,
475
- and model overrides.
476
- - `TaskOutput`: read background task output. Deprecated in favor of reading the
477
- output file directly.
478
- - `TaskStop`: stop background tasks.
479
- - `TaskCreate`, `TaskGet`, `TaskUpdate`, `TaskList`: task-list v2 tools for
480
- tracked work items, ownership, status, and blockers.
481
- - `TeamCreate`, `TeamDelete`, `SendMessage`: multi-agent team coordination.
482
- - `AskUserQuestion`: ask structured user questions from the agent loop.
483
- - `EnterPlanMode` and `ExitPlanMode`: proposal/approval planning flow.
484
- - `EnterWorktree` and `ExitWorktree`: enter or leave isolated worktree sessions.
485
- - `Skill`: execute prompt-backed skills from local skills, bundled skills,
486
- plugins, or MCP.
487
- - `Brief`: send concise status messages or user-facing updates.
488
- - `SendUserFile`: send a generated file to the user, feature-gated.
489
- - `ListMcpResourcesTool` and `ReadMcpResourceTool`: enumerate and read MCP
490
- resources.
491
- - `ToolSearch`: deferred tool discovery over tool metadata.
492
- - `Config`: read/write supported settings, internal-only in this build.
493
- - `REPL`: internal REPL tooling.
494
- - `Tungsten`: internal-only tooling.
495
- - `SuggestBackgroundPR`: internal-only background PR suggestion.
496
- - `LSP`: language-server diagnostics and symbol context, feature-gated.
497
- - `WorkflowTool`: workflow execution helper, feature-gated.
498
- - `CronCreate`, `CronDelete`, `CronList`: schedule recurring tasks,
499
- feature-gated.
500
- - `RemoteTrigger`: trigger remote runs, feature-gated.
501
- - `Monitor`: monitoring helper, feature-gated or stubbed depending on build.
502
- - `Sleep`: wait/sleep tool.
503
- - `PushNotification`: push notifications, feature-gated.
504
- - `SubscribePR`: subscribe to PR changes, feature-gated/internal.
505
- - `Snip`: snip tool, feature-gated/internal.
506
- - `WebBrowserTool`, `CtxInspectTool`, `TerminalCaptureTool`: present as
507
- tool surfaces but stubbed or disabled in this build.
508
- - `StructuredOutput`: synthetic tool used for JSON-schema output.
509
- - `mcp__<server>__<tool>`: dynamically assembled MCP server tools.
510
-
511
- Simple/bare mode keeps the tool set narrow, generally `Bash`, `Read`, and
512
- `Edit`, with REPL mode substituting `REPL` where applicable.
513
-
514
- ## Built-in agents
515
-
516
- Built-in agents live under `src/tools/AgentTool/built-in`:
517
-
518
- - `general-purpose`: broad-purpose subagent with all tools.
519
- - `Explore`: read/search-only exploration agent, no file writes.
520
- - `plan`: planning agent for implementation designs, no file writes.
521
- - `verification`: adversarial verification agent for checking tests, builds,
522
- browser behavior, and task completion.
523
- - `statusline-setup`: statusline configuration agent with read/edit tools.
524
- - `urCodeGuide`: UR documentation and guide agent with read/search/web tools.
525
-
526
- Custom agents can be loaded from user, project, managed, flag, or plugin
527
- sources. Agent definitions can configure:
528
-
529
- - description
530
- - tool allowlist
531
- - disallowed tools
532
- - prompt
533
- - model
534
- - effort
535
- - permission mode
536
- - required MCP servers
537
- - hooks
538
- - max turns
539
- - skills
540
- - initial prompt
541
- - memory
542
- - background behavior
543
- - isolation mode
544
-
545
- Agent resolution considers built-ins, plugins, user settings, project settings,
546
- CLI-provided agents, and managed settings.
547
-
548
- ## Agent-platform features
549
-
550
- The `src/services/agents/**` area implements a large set of higher-level agent
551
- systems:
552
-
553
- - A2A server and Agent Card metadata, with task submit/list/status/output/cancel
554
- routes backed by local background tasks.
555
- - Background-agent runner under `.ur/background`, including stream-json stdin
556
- injection for live artifact steering.
557
- - HMAC-based attenuated A2A delegation tokens with audience, subject, scope,
558
- and TTL.
559
- - Arena/best-of workflow: run multiple agents in isolated worktrees, judge
560
- diffs, optionally apply the winner.
561
- - Reviewable artifacts under `.ur/artifacts`.
562
- - IDE diff bundles under `.ur/ide/diffs` plus the
563
- `extensions/vscode-ur-inline-diffs` native VS Code review extension.
564
- - Benchmark adapters that import local SWE-bench, Terminal-Bench, and Aider
565
- Polyglot JSON/JSONL exports into UR eval suites.
566
- - CI loop: run build/test commands, capture failures, spawn a fix agent, rerun
567
- with bounded attempts, optionally commit/push.
568
- - Crew mode: lead agent decomposes a goal into a shared task board that worker
569
- agents claim and execute.
570
- - Long-horizon goals persisted across sessions.
571
- - Spec-driven development under `.ur/specs`.
572
- - Declarative workflows with steps, dependencies, gates, resume state, and
573
- graph rendering.
574
- - Live workflow board.
575
- - Scheduler service for automations through launchd, systemd, cron, or daemon
576
- mode.
577
- - Knowledge base with source provenance, chunking, dense embeddings, search,
578
- list, prune, and status.
579
- - Learning from artifact outcomes into model/category success stats and
580
- lessons.
581
- - Local model routing based on capability fit.
582
- - Intent routing for task category, agent choice, and collaboration pattern.
583
- - Multi-agent collaboration patterns such as PEER and DOE.
584
- - Webhook trigger parsing for GitHub, Slack, and generic payloads.
585
- - Execution target wrappers for local, Docker, and devcontainer execution.
586
- - Eval harness with suites, cases, checks, reports, and replayable runs.
587
- - Agent inspector for reconstructing subagent timelines from transcripts.
588
- - Capability-aware model escalation between fast and oracle models.
589
- - Feature scaffold and reusable agent-template installation.
590
-
591
- ## Memory and project knowledge
592
-
593
- - User/project/team memory loading.
594
- - Relevant memory scan.
595
- - Conversation/session memory compaction.
596
- - Memory extraction from sessions.
597
- - Auto-dream background memory consolidation.
598
- - Team memory sync.
599
- - Secret scanning and guards for team memory writes.
600
- - Memory commands:
601
- - remember
602
- - forget
603
- - memory
604
- - semantic-memory
605
- - knowledge
606
- - Lightweight project file operations under `src/ur/fileops.ts`:
607
- - read project files
608
- - search text-like files
609
- - maintain `.ur/index/files.txt`
610
- - Project DNA generation under `src/ur/projectDna.ts`:
611
- - language detection
612
- - package manager detection
613
- - build/test/lint/run command detection, with Node/TypeScript typecheck
614
- scripts treated as compile evidence
615
- - key folders
616
- - git/readme context
617
- - `.ur/project_dna.md`
618
- - Project notes and research graph helpers under `src/ur/**`.
619
-
620
- ## Verification and quality gates
621
-
622
- The verifier service in `src/services/verifier/**` includes:
623
-
624
- - L1 deterministic verifier enabled by default unless disabled by env.
625
- - Modes:
626
- - `off`
627
- - `loose`
628
- - `strict`
629
- - Empty-turn detection.
630
- - Done-claim detection against actual tool/mutation evidence.
631
- - Project gates from `.ur/verify.json`.
632
- - Test-first execution loop under `src/services/agents/testFirstLoop.ts`:
633
- - automatic stack and command detection
634
- - compile/test/lint command ordering
635
- - bounded fix-runner retries
636
- - failure traces under `.ur/test-first/traces/`
637
- - gate installation into `.ur/verify.json`
638
- - Project context pack under `src/services/context/projectContextManifest.ts`:
639
- - manifest generation from package scripts, Project DNA, instruction files,
640
- `.ur/verify.json`, `.ur/safety-policy.json`, and other project manifests
641
- - architecture summary under `.ur/context/architecture.md`
642
- - task memory JSONL for decisions, constraints, commands, diffs, and notes
643
- - compressed task context under `.ur/context/compressed.md`
644
- - Loop detection.
645
- - Rejection cap.
646
- - Optional L2 verification subagent through env opt-in.
647
- - Manual deeper verification through `/verify`.
648
- - Verifier reminders injected back into the conversation loop.
649
-
650
- ## Permissions and sandboxing
651
-
652
- Permission modes:
653
-
654
- - `default`
655
- - `plan`
656
- - `acceptEdits`
657
- - `bypassPermissions`
658
- - `dontAsk`
659
- - `auto`, feature-gated
660
-
661
- Permission features:
662
-
663
- - Tool-level allow, deny, and ask rules.
664
- - Project shell safety policy under `src/services/safety/projectSafety.ts`.
665
- - Command permission classes: read, write, execute, and network.
666
- - `ur safety check --command <cmd>` previews safety behavior before execution.
667
- - Bash command permission checks consult the project safety policy before broad
668
- sandbox auto-allow and exact allow rules.
669
- - Destructive commands such as recursive remove, hard reset, git clean, forced
670
- push, recursive chmod/chown, filesystem formatting, infrastructure destroy,
671
- and cluster delete require approval.
672
- - Secret exfiltration patterns deny common secret-file reads into transcript
673
- and likely secret values sent to remote sinks.
674
- - MCP server/tool permission rules.
675
- - CLI, command, session, user, project, local, and managed setting sources.
676
- - Permission request hooks.
677
- - Permission-denial tracking.
678
- - Auto-mode classifier integration when gated.
679
- - Dangerous Bash/PowerShell rule detection.
680
- - Auto-mode stripping of dangerous rules.
681
- - Additional directory validation.
682
- - Security restriction gates.
683
-
684
- Sandbox configuration supports:
685
-
686
- - enabled/disabled state
687
- - fail-if-unavailable
688
- - automatic Bash approval when sandboxed
689
- - explicit unsandboxed command allowances
690
- - network allowed domains
691
- - managed-only network controls
692
- - Unix socket controls
693
- - local binding controls
694
- - proxy ports
695
- - filesystem read/write allow and deny rules
696
- - ignored violations
697
- - weaker nested/network isolation flags
698
- - excluded commands
699
- - custom ripgrep behavior
700
-
701
- ## MCP integration
702
-
703
- MCP features:
704
-
705
- - CLI management through `ur mcp`.
706
- - MCP stdio server via `src/entrypoints/mcp.ts`.
707
- - Exposes built-in tools through MCP.
708
- - Converts Zod schemas to JSON schema for MCP tools.
709
- - Runs tools in non-interactive context with normal permission checks.
710
- - Server scopes:
711
- - local
712
- - user
713
- - project
714
- - dynamic
715
- - enterprise
716
- - urai
717
- - managed
718
- - Transports:
719
- - stdio
720
- - SSE
721
- - HTTP
722
- - WebSocket
723
- - SDK/in-process
724
- - IDE variants
725
- - UR.ai proxy
726
- - Config support:
727
- - command/args/env
728
- - URL/headers
729
- - headers helper
730
- - OAuth
731
- - client IDs and client secrets
732
- - callback ports
733
- - auth server metadata URL
734
- - XAA identity-provider settings, feature-gated
735
- - Connection states:
736
- - connected
737
- - failed
738
- - needs auth
739
- - pending
740
- - disabled
741
- - MCP resources and prompt commands.
742
- - Official registry lookup/cache.
743
- - Environment variable expansion.
744
- - Channel allowlists, permissions, and notifications.
745
- - Elicitation handling.
746
- - VS Code SDK MCP support.
747
- - Tool normalization as `mcp__server__tool`.
748
-
749
- ## Hooks
750
-
751
- Hook events include:
752
-
753
- - `PreToolUse`
754
- - `PostToolUse`
755
- - `PostToolUseFailure`
756
- - `Notification`
757
- - `UserPromptSubmit`
758
- - `SessionStart`
759
- - `SessionEnd`
760
- - `Stop`
761
- - `StopFailure`
762
- - `SubagentStart`
763
- - `SubagentStop`
764
- - `PreCompact`
765
- - `PostCompact`
766
- - `PermissionRequest`
767
- - `PermissionDenied`
768
- - `Setup`
769
- - `TeammateIdle`
770
- - `TaskCreated`
771
- - `TaskCompleted`
772
- - `Elicitation`
773
- - `ElicitationResult`
774
- - `ConfigChange`
775
- - `WorktreeCreate`
776
- - `WorktreeRemove`
777
- - `InstructionsLoaded`
778
- - `CwdChanged`
779
- - `FileChanged`
780
-
781
- Hook command types:
782
-
783
- - shell command hooks
784
- - PowerShell hooks
785
- - prompt/LLM hooks
786
- - HTTP hooks
787
- - agent/verifier hooks
788
-
789
- Hook features:
790
-
791
- - conditional `if` permission-rule filters
792
- - timeouts
793
- - status messages
794
- - once-only hooks
795
- - async command hooks
796
- - async rewake behavior
797
- - model selection for prompt/agent hooks
798
- - HTTP headers and allowed environment variables
799
- - exit-code semantics that can block, feed stderr to the model, erase prompts,
800
- or decide permission requests depending on event type
801
-
802
- ## Security features
803
-
804
- The `src/security/**` subsystem and related slash commands provide:
805
-
806
- - Security command dispatcher.
807
- - Source-code security audit.
808
- - Secret scanning and redaction.
809
- - Attack-surface mapping.
810
- - Dependency inventory.
811
- - OSV vulnerability audit.
812
- - Dockerfile, Kubernetes, Terraform, and cloud/IaC audit.
813
- - Threat modeling.
814
- - Network snapshot and packet-capture summary helpers.
815
- - Incident response collection.
816
- - IR timeline support.
817
- - Containment planning.
818
- - Compliance reports.
819
- - SSDF, CIS, ASVS, OWASP, CWE, and MITRE mappings.
820
- - Playbooks.
821
- - Local security labs.
822
- - Hardening checks.
823
- - Safe command runner.
824
- - Policy/classifier helpers.
825
- - Vulnerability-intelligence helpers.
826
- - Web audit helpers.
827
-
828
- Security slash-command families include:
829
-
830
- - `/security`
831
- - `/security-review`
832
- - `/threat-model`
833
- - `/vuln`
834
- - `/ir`
835
- - `/compliance`
836
- - `/playbook`
837
- - `/lab`
838
- - `/harden`
839
- - `/kali`
840
-
841
- `/security` subcommands include scan, code, secrets, attack-surface,
842
- dependencies, classify, status, rules, report, scope, mode, threat-model, vuln,
843
- net, ir, attack, compliance, playbook(s), lab, secure-design, secure-api,
844
- secure-ci, secure-docker, and secure-deploy.
845
-
846
- ## Plugins and marketplaces
847
-
848
- Plugin loading supports:
849
-
850
- - installed marketplace plugins
851
- - session-only `--plugin-dir`
852
- - plugin manifests
853
- - plugin commands
854
- - plugin agents
855
- - plugin skills
856
- - plugin templates
857
- - plugin validators
858
- - plugin hooks
859
- - output styles
860
- - MCP servers
861
- - LSP servers
862
- - language adapters
863
- - marketplace capability metadata
864
- - plugin settings
865
- - duplicate-name handling
866
- - enable/disable state
867
- - trust warnings
868
- - marketplace add/list/remove/update
869
- - sparse marketplace checkouts
870
- - cached marketplace installs
871
- - versioned plugin cache
872
- - seed caches
873
- - zip caches
874
- - legacy cache migration
875
- - blocked marketplaces
876
- - strict known-marketplace policy
877
- - managed plugin settings
878
-
879
- Bundled marketplace plugin families in `plugins/core/**`:
880
-
881
- - code review
882
- - evaluate response
883
- - explain error
884
- - git summary
885
- - GitHub issues, PR creation, PR review, repo health, and GitHub workflow skill
886
- - GitLab issues, merge request creation/review, pipeline, and GitLab workflow
887
- skill
888
- - hello example plugin
889
- - Hugging Face model/dataset search, downloads, model cards, and HF workflow
890
- skill
891
- - Miro board, diagram, export, stickies, and Miro workflow skill
892
- - Obsidian backlinks, daily notes, MOC, second brain, vault search, and second
893
- brain skill
894
- - PowerPoint deck creation, markdown-to-deck, review, theme, and deck-craft
895
- skill
896
- - release notes
897
- - reproducible release discipline, release-gate validator, release verifier
898
- template, and Markdown language-adapter metadata
899
- - skill forge and skill authoring
900
- - Word document creation, markdown-to-docx, edit, review, and document-craft
901
- skill
902
-
903
- ## Configuration features
904
-
905
- The Config tool supports these settings where available:
906
-
907
- - `theme`
908
- - `editorMode`
909
- - `verbose`
910
- - `preferredNotifChannel`
911
- - `autoCompactEnabled`
912
- - `autoMemoryEnabled`
913
- - `autoDreamEnabled`
914
- - `fileCheckpointingEnabled`
915
- - `showTurnDuration`
916
- - `terminalProgressBarEnabled`
917
- - `todoFeatureEnabled`
918
- - `model`
919
- - `alwaysThinkingEnabled`
920
- - `permissions.defaultMode`
921
- - `language`
922
- - `teammateMode`
923
- - `classifierPermissionsEnabled`, internal-only
924
- - `voiceEnabled`, feature-gated
925
- - `remoteControlAtStartup`, feature-gated
926
- - push-notification settings, feature-gated
927
-
928
- The broader settings schema also covers:
929
-
930
- - environment variables
931
- - API-key helpers
932
- - AWS/GCP auth refresh
933
- - XAA identity-provider settings
934
- - file suggestions
935
- - gitignore behavior
936
- - cleanup retention
937
- - attribution
938
- - git instructions
939
- - permission allow/deny/ask/default mode/additional dirs
940
- - model lists and model overrides
941
- - MCP allow/deny/project approvals
942
- - hooks
943
- - worktree symlink and sparse settings
944
- - hook disabling
945
- - default shell
946
- - managed-only hooks, permissions, and MCP settings
947
- - HTTP hook URL/env policies
948
- - strict plugin-only customization
949
- - statusline command
950
- - enabled plugins
951
- - extra marketplaces
952
- - marketplace blocklists
953
- - authentication organization/method
954
- - output style
955
- - language
956
- - sandbox settings
957
- - surveys
958
- - spinner
959
- - syntax highlighting
960
- - terminal title
961
- - thinking and effort
962
- - advisor
963
- - fast mode
964
- - prompt suggestions
965
- - agent settings
966
- - company announcements
967
- - plugin config
968
- - remote defaults
969
- - auto updates/channels
970
- - reduced motion
971
- - auto memory and auto dream
972
- - dangerous-mode prompts
973
- - auto-mode config
974
- - SSH configs
975
- - UR.md excludes
976
- - plugin trust message state
977
-
978
- ## Model/provider behavior
979
-
980
- - This external build supports legal provider adapters for subscription CLIs,
981
- explicit API-key providers, and local/OpenAI-compatible runtimes.
982
- - The Ollama router inspects local models and classifies likely coding/fast
983
- capabilities.
984
- - Auto-routing is on by default through `UR_OLLAMA_AUTO_ROUTE`.
985
- - Simple prompts can route to a faster model.
986
- - Complex coding prompts can route to the best available coder model.
987
- - Model doctor and model route commands expose capability reports and
988
- recommendations.
989
- - Embedding-backed features use local Ollama embeddings such as
990
- `nomic-embed-text` where configured.
991
-
992
- ## UI and terminal experience
993
-
994
- Terminal/UI features include:
995
-
996
- - Ink/React interactive UI.
997
- - Theming and color controls.
998
- - Vim mode.
999
- - Status line configuration.
1000
- - Keybinding help.
1001
- - Cost and usage displays.
1002
- - Session browser and resume UI.
1003
- - Compacting UI.
1004
- - Permission prompts.
1005
- - MCP approval UI.
1006
- - Plugin management UI.
1007
- - Install/setup flows.
1008
- - Feedback and BTW commands.
1009
- - Terminal setup.
1010
- - Desktop, Chrome, IDE, remote environment, and OS integration commands.
1011
- - Voice command surface, feature-gated.
1012
- - Image/video/youtube command surfaces.
1013
-
1014
- ## SDK and embedding
1015
-
1016
- `src/sdk/index.ts` exposes:
1017
-
1018
- - `query`
1019
- - `queryJSON`
1020
- - `UrClient`
1021
- - `parseResultText`
1022
-
1023
- The SDK is intentionally small and dependency-free. It shells out to the local
1024
- `ur` binary in print mode, uses JSON output, supports cwd/env/bin overrides, and
1025
- can pass max turns, model, permission mode, and extra args.
1026
-
1027
- ## Documentation gaps this inventory exposes
1028
-
1029
- The code includes many features that are easy to miss if reading only user docs:
1030
-
1031
- - Agent-platform workflows, goals, specs, crews, arena, CI loop, artifacts,
1032
- triggers, evals, and learning.
1033
- - A2A card/server/token support.
1034
- - Rich hook event model.
1035
- - Plugin marketplace and bundled plugin system.
1036
- - Security audit, incident-response, compliance, and lab features.
1037
- - Local knowledge, semantic memory, project DNA, and code-index subsystems.
1038
- - Verifier and project gate logic.
1039
- - Multiple remote/background/daemon/server modes.
1040
- - MCP server mode that exposes UR tools to other clients.
1041
- - Feature-gated browser, Chrome, computer-use, voice, push, cron, and remote
1042
- features.