opencodekit 0.11.1 → 0.12.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.
package/dist/index.js CHANGED
@@ -750,7 +750,7 @@ var cac = (name = "") => new CAC(name);
750
750
  // package.json
751
751
  var package_default = {
752
752
  name: "opencodekit",
753
- version: "0.11.1",
753
+ version: "0.12.1",
754
754
  description: "CLI tool for bootstrapping and managing OpenCodeKit projects",
755
755
  type: "module",
756
756
  repository: {
@@ -3133,6 +3133,8 @@ async function copyOpenCodeOnly(templateRoot, targetDir) {
3133
3133
  return true;
3134
3134
  }
3135
3135
  async function initCommand(options = {}) {
3136
+ if (process.argv.includes("--quiet"))
3137
+ return;
3136
3138
  const targetDir = process.cwd();
3137
3139
  const mode = detectMode(targetDir);
3138
3140
  oe(import_picocolors7.default.bgCyan(import_picocolors7.default.black(" OpenCodeKit ")));
@@ -3203,9 +3205,9 @@ version: 1
3203
3205
  }
3204
3206
 
3205
3207
  // src/commands/menu.ts
3208
+ import { existsSync as existsSync6, lstatSync as lstatSync3, readdirSync as readdirSync5 } from "node:fs";
3209
+ import { basename as basename2, join as join6 } from "node:path";
3206
3210
  var import_picocolors10 = __toESM(require_picocolors(), 1);
3207
- import { existsSync as existsSync6, readdirSync as readdirSync5, lstatSync as lstatSync3 } from "node:fs";
3208
- import { join as join6, basename as basename2 } from "node:path";
3209
3211
 
3210
3212
  // src/commands/skill.ts
3211
3213
  import { join as join4 } from "node:path";
@@ -3367,16 +3369,16 @@ async function viewSkill(opencodePath, skillName) {
3367
3369
  }
3368
3370
 
3369
3371
  // src/commands/upgrade.ts
3370
- import { join as join5, dirname as dirname2 } from "node:path";
3371
- import { fileURLToPath as fileURLToPath2 } from "node:url";
3372
3372
  import {
3373
+ copyFileSync,
3373
3374
  existsSync as existsSync5,
3375
+ mkdirSync as mkdirSync3,
3374
3376
  readFileSync as readFileSync5,
3375
- writeFileSync as writeFileSync4,
3376
3377
  readdirSync as readdirSync4,
3377
- mkdirSync as mkdirSync3,
3378
- copyFileSync
3378
+ writeFileSync as writeFileSync4
3379
3379
  } from "node:fs";
3380
+ import { dirname as dirname2, join as join5 } from "node:path";
3381
+ import { fileURLToPath as fileURLToPath2 } from "node:url";
3380
3382
  var import_picocolors9 = __toESM(require_picocolors(), 1);
3381
3383
  var PRESERVE_FILES = [
3382
3384
  "opencode.json"
@@ -3495,6 +3497,8 @@ function copyDirPreserveExisting(src, dest) {
3495
3497
  return { updated, preserved };
3496
3498
  }
3497
3499
  async function upgradeCommand(options = {}) {
3500
+ if (process.argv.includes("--quiet"))
3501
+ return;
3498
3502
  const cwd = process.cwd();
3499
3503
  const opencodeDir = join5(cwd, ".opencode");
3500
3504
  if (!existsSync5(opencodeDir)) {
@@ -3610,6 +3614,8 @@ async function interactiveMenu(version) {
3610
3614
  }
3611
3615
  }
3612
3616
  async function doctorCommand() {
3617
+ if (process.argv.includes("--quiet"))
3618
+ return;
3613
3619
  const cwd = process.cwd();
3614
3620
  const opencodeDir = join6(cwd, ".opencode");
3615
3621
  const checks = [];
@@ -3662,6 +3668,8 @@ async function doctorCommand() {
3662
3668
  }
3663
3669
  }
3664
3670
  async function statusCommand() {
3671
+ if (process.argv.includes("--quiet"))
3672
+ return;
3665
3673
  const cwd = process.cwd();
3666
3674
  const opencodeDir = join6(cwd, ".opencode");
3667
3675
  if (!existsSync6(opencodeDir)) {
@@ -3715,18 +3723,38 @@ async function statusCommand() {
3715
3723
  // src/utils/logger.ts
3716
3724
  var import_picocolors11 = __toESM(require_picocolors(), 1);
3717
3725
  var logger = {
3718
- log: (message) => console.log(message),
3719
- info: (message) => console.log(import_picocolors11.default.blue(`[i] ${message}`)),
3720
- success: (message) => console.log(import_picocolors11.default.green(`[+] ${message}`)),
3721
- warn: (message) => console.warn(import_picocolors11.default.yellow(`[!] ${message}`)),
3722
- error: (message) => console.error(import_picocolors11.default.red(`[x] ${message}`)),
3726
+ log: (message) => {
3727
+ if (!process.argv.includes("--quiet")) {
3728
+ console.log(message);
3729
+ }
3730
+ },
3731
+ info: (message) => {
3732
+ if (!process.argv.includes("--quiet")) {
3733
+ console.log(import_picocolors11.default.blue(`[i] ${message}`));
3734
+ }
3735
+ },
3736
+ success: (message) => {
3737
+ if (!process.argv.includes("--quiet")) {
3738
+ console.log(import_picocolors11.default.green(`[+] ${message}`));
3739
+ }
3740
+ },
3741
+ warn: (message) => {
3742
+ if (!process.argv.includes("--quiet")) {
3743
+ console.warn(import_picocolors11.default.yellow(`[!] ${message}`));
3744
+ }
3745
+ },
3746
+ error: (message) => {
3747
+ if (!process.argv.includes("--quiet")) {
3748
+ console.error(import_picocolors11.default.red(`[x] ${message}`));
3749
+ }
3750
+ },
3723
3751
  debug: (message) => {
3724
- if (process.env.DEBUG || process.argv.includes("--verbose")) {
3752
+ if ((process.env.DEBUG || process.argv.includes("--verbose")) && !process.argv.includes("--quiet")) {
3725
3753
  console.log(import_picocolors11.default.dim(`[DEBUG] ${message}`));
3726
3754
  }
3727
3755
  },
3728
3756
  verbose: (message) => {
3729
- if (process.argv.includes("--verbose")) {
3757
+ if (process.argv.includes("--verbose") && !process.argv.includes("--quiet")) {
3730
3758
  console.log(import_picocolors11.default.dim(message));
3731
3759
  }
3732
3760
  }
@@ -401,6 +401,16 @@ read_session("today") # Today's first session
401
401
  read_session("ses_abc123", focus="file changes") # Specific aspect
402
402
  ```
403
403
 
404
+ **`search_session`** - Full-text search across sessions
405
+
406
+ ```
407
+ search_session(query="auth bug") # Search all sessions
408
+ search_session(query="OAuth", session_id="ses_abc") # Search specific session
409
+ search_session(query="error", limit=10) # Limit results
410
+ ```
411
+
412
+ Use to find past discussions, decisions, or work on a topic before starting new work.
413
+
404
414
  **`summarize_session`** - Generate AI summary of a session
405
415
 
406
416
  ```
@@ -499,9 +509,9 @@ Run `bd_cleanup` periodically to remove old closed issues. Use `bd_doctor` to ch
499
509
 
500
510
  **Analysis Tools**
501
511
 
502
- Call `bd_insights` for graph analysis showing bottlenecks and high-priority keystones. Use `bd_plan` to see a parallel execution plan with tasks grouped by priority tracks.
512
+ Use `bd_blocked` to see tasks with unresolved dependencies. Use `bd_dep` with action "tree" to visualize dependency chains.
503
513
 
504
- Get `bd_priority` recommendations for what to work on next based on graph analysis. Use `bd_diff` to compare issue changes between git revisions.
514
+ Use `bd_diff` to compare issue changes between git revisions.
505
515
 
506
516
  ### Rules
507
517
 
@@ -2,26 +2,26 @@
2
2
  description: Primary development agent with full codebase access. Use this agent for implementing features, writing code, running tests, and completing development tasks autonomously.
3
3
  mode: primary
4
4
  temperature: 0.1
5
- tools:
6
- bash: true
7
- edit: true
8
- write: true
9
- patch: true
10
- glob: true
11
- grep: true
12
- read: true
13
- list: true
14
- webfetch: true
15
- websearch: true
16
- codesearch: true
17
- ast-grep*: true
18
- lsp*: true
19
- context7*: true
20
- gh_grep*: true
21
- memory-read: true
22
- memory-update: true
23
- memory-search: true
24
- observation: true
5
+ permission:
6
+ bash: allow
7
+ edit: allow
8
+ write: allow
9
+ patch: allow
10
+ glob: allow
11
+ grep: allow
12
+ read: allow
13
+ list: allow
14
+ webfetch: allow
15
+ websearch: allow
16
+ codesearch: allow
17
+ ast-grep*: allow
18
+ lsp*: allow
19
+ context7*: allow
20
+ gh_grep*: allow
21
+ memory-read: allow
22
+ memory-update: allow
23
+ memory-search: allow
24
+ observation: allow
25
25
  ---
26
26
 
27
27
  # Build Agent
@@ -2,19 +2,19 @@
2
2
  description: Fast codebase search specialist. Use this agent to find files by patterns, search code for keywords, or understand how the codebase works. Specify thoroughness level - "quick" for simple lookups, "medium" for moderate exploration, "very thorough" for comprehensive analysis.
3
3
  mode: subagent
4
4
  temperature: 0.1
5
- tools:
6
- bash: true
7
- edit: false
8
- write: false
9
- patch: false
10
- glob: true
11
- grep: true
12
- read: true
13
- list: true
14
- todoread: false
15
- todowrite: false
16
- ast-grep*: true
17
- lsp*: true
5
+ permission:
6
+ bash: allow
7
+ edit: deny
8
+ write: deny
9
+ patch: deny
10
+ glob: allow
11
+ grep: allow
12
+ read: allow
13
+ list: allow
14
+ todoread: deny
15
+ todowrite: deny
16
+ ast-grep*: allow
17
+ lsp*: allow
18
18
  ---
19
19
 
20
20
  # Explore Agent
@@ -2,26 +2,26 @@
2
2
  description: Strategic planning agent for architecture and design decisions. Use this agent for tasks with 3+ phases, complex coordination, or when you need to break down work into actionable steps with agent assignments.
3
3
  mode: subagent
4
4
  temperature: 0.2
5
- tools:
6
- bash: false
7
- edit: true
8
- write: true
9
- patch: false
10
- glob: true
11
- grep: true
12
- read: true
13
- list: true
14
- webfetch: true
15
- websearch: true
16
- task: true
17
- todowrite: true
18
- todoread: true
19
- context7*: true
20
- codesearch: true
21
- gh_grep*: true
22
- memory-read: true
23
- memory-update: true
24
- bd_*: true
5
+ permission:
6
+ bash: deny
7
+ edit: allow
8
+ write: allow
9
+ patch: deny
10
+ glob: allow
11
+ grep: allow
12
+ read: allow
13
+ list: allow
14
+ webfetch: allow
15
+ websearch: allow
16
+ task: allow
17
+ todowrite: allow
18
+ todoread: allow
19
+ context7*: allow
20
+ codesearch: allow
21
+ gh_grep*: allow
22
+ memory-read: allow
23
+ memory-update: allow
24
+ bd_*: allow
25
25
  ---
26
26
 
27
27
  # Plan Agent
@@ -2,24 +2,24 @@
2
2
  description: Code review, debugging, and security audit specialist. Use this agent for critical analysis, complex debugging, architecture decisions, or when you need evidence-based recommendations.
3
3
  mode: subagent
4
4
  temperature: 0.1
5
- tools:
6
- bash: true
7
- edit: false
8
- write: false
9
- patch: false
10
- glob: true
11
- grep: true
12
- read: true
13
- list: true
14
- webfetch: true
15
- websearch: true
16
- context7*: true
17
- gh_grep*: true
18
- codesearch: true
19
- memory-read: true
20
- memory-update: true
21
- ast-grep*: true
22
- lsp*: true
5
+ permission:
6
+ bash: allow
7
+ edit: deny
8
+ write: deny
9
+ patch: deny
10
+ glob: allow
11
+ grep: allow
12
+ read: allow
13
+ list: allow
14
+ webfetch: allow
15
+ websearch: allow
16
+ context7*: allow
17
+ gh_grep*: allow
18
+ codesearch: allow
19
+ memory-read: allow
20
+ memory-update: allow
21
+ ast-grep*: allow
22
+ lsp*: allow
23
23
  ---
24
24
 
25
25
  # Review Agent
@@ -2,26 +2,26 @@
2
2
  description: Fast primary agent for small, well-defined tasks. Use this agent when speed matters more than depth, or for straightforward edits and commands.
3
3
  mode: primary
4
4
  temperature: 0.1
5
- tools:
6
- bash: true
7
- edit: true
8
- write: true
9
- patch: true
10
- glob: true
11
- grep: true
12
- read: true
13
- list: true
14
- webfetch: true
15
- websearch: true
16
- ast-grep*: true
17
- lsp*: true
18
- context7*: true
19
- gh_grep*: true
20
- codesearch: true
21
- memory-read: true
22
- memory-update: true
23
- memory-search: true
24
- observation: true
5
+ permission:
6
+ bash: allow
7
+ edit: allow
8
+ write: allow
9
+ patch: allow
10
+ glob: allow
11
+ grep: allow
12
+ read: allow
13
+ list: allow
14
+ webfetch: allow
15
+ websearch: allow
16
+ ast-grep*: allow
17
+ lsp*: allow
18
+ context7*: allow
19
+ gh_grep*: allow
20
+ codesearch: allow
21
+ memory-read: allow
22
+ memory-update: allow
23
+ memory-search: allow
24
+ observation: allow
25
25
  ---
26
26
 
27
27
  # Rush Agent
@@ -2,22 +2,22 @@
2
2
  description: External research specialist for library docs, GitHub patterns, and framework analysis. Use this agent when you need API references, real-world code examples, or best practices from external sources.
3
3
  mode: subagent
4
4
  temperature: 0.3
5
- tools:
6
- bash: false
7
- edit: false
8
- write: false
9
- patch: false
10
- glob: false
11
- grep: false
12
- read: false
13
- list: false
14
- webfetch: true
15
- websearch: true
16
- context7*: true
17
- gh_grep*: true
18
- codesearch: true
19
- memory-read: true
20
- memory-update: false
5
+ permission:
6
+ bash: deny
7
+ edit: deny
8
+ write: deny
9
+ patch: deny
10
+ glob: deny
11
+ grep: deny
12
+ read: deny
13
+ list: deny
14
+ webfetch: allow
15
+ websearch: allow
16
+ context7*: allow
17
+ gh_grep*: allow
18
+ codesearch: allow
19
+ memory-read: allow
20
+ memory-update: deny
21
21
  ---
22
22
 
23
23
  # Scout Agent
@@ -2,25 +2,25 @@
2
2
  description: Visual content specialist for multimodal analysis, mockups, PDFs, diagrams, and UI/UX guidance. Use this agent for image analysis, accessibility audits, and anti-AI-slop design recommendations.
3
3
  mode: subagent
4
4
  temperature: 0.3
5
- tools:
6
- bash: true
7
- edit: false
8
- write: false
9
- patch: false
10
- glob: true
11
- grep: true
12
- read: true
13
- list: true
14
- webfetch: true
15
- websearch: true
16
- task: true
17
- todowrite: true
18
- todoread: true
19
- context7*: true
20
- codesearch: true
21
- gh_grep*: true
22
- memory-read: true
23
- memory-update: true
5
+ permission:
6
+ bash: allow
7
+ edit: deny
8
+ write: deny
9
+ patch: deny
10
+ glob: allow
11
+ grep: allow
12
+ read: allow
13
+ list: allow
14
+ webfetch: allow
15
+ websearch: allow
16
+ task: allow
17
+ todowrite: allow
18
+ todoread: allow
19
+ context7*: allow
20
+ codesearch: allow
21
+ gh_grep*: allow
22
+ memory-read: allow
23
+ memory-update: allow
24
24
  ---
25
25
 
26
26
  # Vision Agent
@@ -410,7 +410,7 @@ Ready to start: bd-a3f8.1 (first unblocked task)
410
410
  Next steps:
411
411
  ├── /implement bd-a3f8.1 (start first task)
412
412
  ├── bd ready (see all ready work)
413
- └── bd_plan() (see parallel execution plan)
413
+ └── bd_blocked() (see blocked tasks)
414
414
 
415
415
  For parallel agents:
416
416
  ├── Agent 1: /implement bd-a3f8.1
@@ -311,7 +311,7 @@ Created:
311
311
  Next Steps:
312
312
  ├── View ready tasks: bd_ls({ status: "ready" })
313
313
  ├── Start first task: /implement bd-task-001
314
- └── View dependencies: bd_insights()
314
+ └── View dependencies: bd_dep({ action: "tree", child: "<id>" })
315
315
  ```
316
316
 
317
317
  ---
@@ -14,11 +14,14 @@ skill({ name: "beads" });
14
14
 
15
15
  ## Phase 1: Check for Duplicates
16
16
 
17
- Before creating, search for existing beads:
17
+ Before creating, search for existing similar beads:
18
18
 
19
19
  ```typescript
20
+ // Search for similar issues
21
+ bd_search({ query: "[keywords from issue title]" });
22
+
23
+ // Or list recent beads
20
24
  bd_ls({ status: "all", limit: 20 });
21
- memory - search({ query: "[keywords from issue title]" });
22
25
  ```
23
26
 
24
27
  If similar bead exists:
@@ -479,7 +479,7 @@ Artifacts:
479
479
  Next Steps:
480
480
  ├── Start first task: /implement <bead>.1
481
481
  ├── See ready work: bd ready
482
- └── See parallel plan: bd_plan()
482
+ └── See blocked tasks: bd_blocked()
483
483
 
484
484
  For parallel agents:
485
485
  ├── Agent 1 (backend): claim <bead>.1
@@ -39,6 +39,10 @@ bd_reserve({
39
39
  **Check for previous research:**
40
40
 
41
41
  ```typescript
42
+ // Search for past research on this topic
43
+ search_session({ query: "<topic keywords>" });
44
+
45
+ // Also check recent sessions
42
46
  list_sessions({ project: "current", since: "this week", limit: 5 });
43
47
  ```
44
48
 
@@ -94,13 +94,22 @@ Options:
94
94
 
95
95
  ## Phase 4: Load Previous Session Context
96
96
 
97
- ### Step 1: Find Related Sessions
97
+ ### Step 1: Search for Related Work
98
+
99
+ ```typescript
100
+ // Search past sessions for work on this bead
101
+ search_session({ query: "$ARGUMENTS" });
102
+ ```
103
+
104
+ This finds all sessions that discussed or worked on this bead.
105
+
106
+ ### Step 2: Find Related Sessions
98
107
 
99
108
  ```typescript
100
109
  list_sessions({ project: "current", limit: 10, _: true });
101
110
  ```
102
111
 
103
- ### Step 2: Identify Relevant Session
112
+ ### Step 3: Identify Relevant Session
104
113
 
105
114
  Look for sessions that:
106
115
 
@@ -348,7 +348,7 @@ bd_msg({
348
348
  });
349
349
 
350
350
  // Optionally close or re-open bead
351
- bd_update({ id: "[bead-id]", status: "open" });
351
+ bd_reopen({ id: "[bead-id]" });
352
352
  ```
353
353
 
354
354
  ---
@@ -30,6 +30,9 @@ bd_reservations({ reason: "Check file locks" });
30
30
  // Sessions
31
31
  list_sessions({ project: "current", since: "today", limit: 5, _: true });
32
32
 
33
+ // Search for recent activity on current work (if bead in progress)
34
+ search_session({ query: "<current-bead-id>", limit: 5 });
35
+
33
36
  // Git state
34
37
  bash("git status --porcelain");
35
38
  bash("git branch --show-current");
@@ -29,6 +29,9 @@ bd_status({ include_agents: true });
29
29
  bd_ls({ status: "open", limit: 50, offset: 0 });
30
30
  bd_reservations({ reason: "Check active file locks" });
31
31
  bd_inbox({ n: 10, unread: true, global: true });
32
+
33
+ // Search for past discussions on recurring issues
34
+ search_session({ query: "blocked OR regression OR urgent", limit: 10 });
32
35
  ```
33
36
 
34
37
  Capture:
@@ -38,13 +41,15 @@ Capture:
38
41
  - Active agents
39
42
  - File locks
40
43
  - Pending messages
44
+ - Past context on recurring issues
45
+
46
+ ## Phase 3: Analyze Dependencies
41
47
 
42
- ## Phase 3: Run Graph Analysis
48
+ Use `bd dep tree` to understand blocking relationships:
43
49
 
44
50
  ```typescript
45
- bd_insights({ reason: "Triage analysis" });
46
- bd_priority({ limit: 10 });
47
- bd_plan({ reason: "Parallel execution plan" });
51
+ // For each high-priority open task, check its dependency tree
52
+ bd_dep({ action: "tree", child: "<task-id>", type: "blocks" });
48
53
  ```
49
54
 
50
55
  This provides:
@@ -52,8 +57,6 @@ This provides:
52
57
  - **Bottlenecks**: Tasks blocking the most downstream work
53
58
  - **Keystones**: High-impact tasks that unlock multiple paths
54
59
  - **Cycles**: Circular dependencies (must break)
55
- - **PageRank**: Importance score based on graph centrality
56
- - **Parallel Tracks**: Independent work streams
57
60
 
58
61
  ## Phase 4: Priority Classification
59
62
 
@@ -86,7 +89,7 @@ This provides:
86
89
  ### Impact Scoring Formula
87
90
 
88
91
  ```
89
- Impact Score = (Downstream Count × 2) + PageRank + (Priority Weight × 3)
92
+ Impact Score = (Downstream Count × 2) + (Priority Weight × 3)
90
93
 
91
94
  Where Priority Weight:
92
95
  P0 = 5, P1 = 4, P2 = 3, P3 = 2, P4 = 1
@@ -186,11 +189,11 @@ P0 │ bd-abc12 │ Database migration │ 24 │ AT_RISK
186
189
  P1 │ bd-def34 │ API authentication │ 18 │ OK
187
190
  P2 │ bd-ghi56 │ Config refactor │ 12 │ OK
188
191
 
189
- PARALLEL TRACKS
190
- ━━━━━━━━━━━━━━━
191
- Track A (Frontend): bd-xyz11, bd-xyz22 [can start now]
192
- Track B (Backend): bd-xyz33, bd-xyz44 [can start now]
193
- Track C (Infra): bd-xyz55 [blocked by bd-abc12]
192
+ READY TASKS
193
+ ━━━━━━━━━━━
194
+ bd-xyz11 - "Frontend auth" - can start now
195
+ bd-xyz22 - "API endpoints" - can start now
196
+ bd-xyz33 - "Config update" - blocked by bd-abc12
194
197
 
195
198
  AGENT WORKLOAD
196
199
  ━━━━━━━━━━━━━━