@open-agent-toolkit/cli 0.1.9 → 0.1.10

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.
@@ -101,7 +101,7 @@ For the full state model, repair semantics, and examples, see [Instruction Sync]
101
101
 
102
102
  ## Repo state helpers
103
103
 
104
- - `oat state refresh` - rebuild the `.oat/state.md` dashboard for the repo
104
+ - `oat state refresh` - rebuild the generated, gitignored `.oat/state.md` dashboard for the repo
105
105
  - `oat index init` - generate a lightweight `project-index.md` for orientation
106
106
 
107
107
  ## Internal helpers and diagnostics
@@ -45,6 +45,7 @@ Project scope is used for project workflows and repo-local sync state. User scop
45
45
  | ------------------------ | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------- |
46
46
  | `.oat/config.json` | Shared repo runtime config for non-sync settings | Includes `worktrees.root`, `projects.root`, `git.defaultBranch`, `archive.*`, and `documentation.*` |
47
47
  | `.oat/config.local.json` | Local per-developer runtime state | Gitignored; includes `activeProject`, `lastPausedProject`, `activeIdea` |
48
+ | `.oat/state.md` | Generated repo state dashboard | Gitignored; rebuilt with `oat state refresh` from config, project artifacts, and knowledge metadata |
48
49
  | `.oat/projects/` | OAT project artifacts | `shared`, `local`, `archived` scopes |
49
50
  | `.oat/ideas/` | Project-level ideas store | Often gitignored |
50
51
  | `.oat/sync/` | Interop sync state/config | See details below |
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.1.9",
3
- "docs-config": "0.1.9",
4
- "docs-theme": "0.1.9",
5
- "docs-transforms": "0.1.9"
2
+ "cli": "0.1.10",
3
+ "docs-config": "0.1.10",
4
+ "docs-theme": "0.1.10",
5
+ "docs-transforms": "0.1.10"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-complete
3
- version: 1.4.7
3
+ version: 1.4.8
4
4
  description: Use when all implementation work is finished and the project is ready to close. Marks the OAT project lifecycle as complete.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -519,7 +519,7 @@ Expected changes may include:
519
519
  - `{PROJECT_PATH}/implementation.md` (if touched earlier in the lifecycle closeout)
520
520
  - `{PROJECT_PATH}/plan.md` (if review receive just ran)
521
521
  - `{PROJECT_PATH}/pr/project-pr-*.md` (PR description artifact)
522
- - `.oat/state.md` (dashboard regenerated in Step 9)
522
+ - `.oat/state.md` is regenerated locally in Step 9 but should not be staged; it is generated dashboard state and normally gitignored.
523
523
  - `.oat/config.local.json` (if `activeProject` cleared)
524
524
  - Shared-project deletions under `{PROJECTS_ROOT}/{PROJECT_NAME}` (if archived)
525
525
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-implement
3
- version: 2.0.18
3
+ version: 2.0.19
4
4
  description: Use when plan.md is ready for execution. Dispatches phase-level subagents with bounded fix loops; supports plan-declared parallel phase groups with worktree-isolated execution and ordered fan-in.
5
5
  argument-hint: '[--retry-limit <N>] [--dry-run]'
6
6
  disable-model-invocation: true
@@ -23,10 +23,10 @@ Execute the implementation plan task-by-task with full state tracking.
23
23
  **Purpose:** Execute plan tasks with TDD discipline, track progress, handle blockers.
24
24
 
25
25
  **CRITICAL — Bookkeeping commits are mandatory, not optional.**
26
- After every code commit and after every phase/review-fix completion, you MUST commit the OAT tracking files (project: `implementation.md`, `state.md`, `plan.md`; repo dashboard: `.oat/state.md`) as a separate bookkeeping commit. Refresh the repo dashboard with `oat state refresh` immediately before staging so `.oat/state.md` reflects the just-completed phase/task. Do not defer, batch, or skip these commits under the reasoning that they "aren't related to the implementation." Skipping a bookkeeping commit (or skipping the dashboard refresh) is the primary cause of cross-session state drift and will cause the next implementation run to fail bookkeeping cross-checks. If bookkeeping commits feel frequent, that is the intended design — they are cheap and they prevent drift.
26
+ After every code commit and after every phase/review-fix completion, you MUST commit the OAT tracking files (project: `implementation.md`, `state.md`, `plan.md`) as a separate bookkeeping commit. Refresh the repo dashboard with `oat state refresh` before staging when available, but do not stage `.oat/state.md`; it is generated dashboard state and is normally gitignored. Do not defer, batch, or skip these commits under the reasoning that they "aren't related to the implementation." Skipping a bookkeeping commit is the primary cause of cross-session state drift and will cause the next implementation run to fail bookkeeping cross-checks. If bookkeeping commits feel frequent, that is the intended design — they are cheap and they prevent drift.
27
27
 
28
28
  **CRITICAL — Review boundaries require a committed artifact baseline.**
29
- Do not enter checkpoint review, final review, revise, or PR-final handoff with dirty core project artifacts (`discovery.md`, `spec.md`, `design.md`, `plan.md`, `implementation.md`, `state.md`, plus `.oat/state.md` when refreshed). If one of those boundaries is next and artifact bookkeeping is still uncommitted, stop and create the bookkeeping commit first.
29
+ Do not enter checkpoint review, final review, revise, or PR-final handoff with dirty core project artifacts (`discovery.md`, `spec.md`, `design.md`, `plan.md`, `implementation.md`, `state.md`). If one of those boundaries is next and artifact bookkeeping is still uncommitted, stop and create the bookkeeping commit first.
30
30
 
31
31
  **CRITICAL — Intentional artifact divergence must be recorded.**
32
32
  If implementation intentionally diverges from `spec.md`, `design.md`, or `plan.md`, record the delta in `implementation.md` before the next phase/review boundary. Include what diverged, why it diverged, whether the implementation or original artifact is now source of truth, and any follow-up artifact updates or explicit deferral. Do not leave accepted design drift only in chat, a review artifact, or code comments; final summary generation depends on `implementation.md` preserving the delta.
@@ -909,7 +909,7 @@ For each phase that completed:
909
909
 
910
910
  ```bash
911
911
  oat state refresh
912
- git add {PROJECT_PATH}/implementation.md {PROJECT_PATH}/state.md {PROJECT_PATH}/plan.md .oat/state.md
912
+ git add {PROJECT_PATH}/implementation.md {PROJECT_PATH}/state.md {PROJECT_PATH}/plan.md
913
913
  git commit -m "chore(oat): bookkeeping after {pNN} {pass|fail}"
914
914
  ```
915
915
 
@@ -990,15 +990,15 @@ When pausing:
990
990
 
991
991
  **DO NOT SKIP.** This commit prevents state drift across sessions.
992
992
 
993
- After phase summary and task pointer advancement, refresh the repo dashboard and commit all modified OAT tracking files:
993
+ After phase summary and task pointer advancement, refresh the repo dashboard when available and commit all modified project tracking files:
994
994
 
995
995
  ```bash
996
996
  oat state refresh
997
- git add "$PROJECT_PATH/implementation.md" "$PROJECT_PATH/state.md" "$PROJECT_PATH/plan.md" .oat/state.md
997
+ git add "$PROJECT_PATH/implementation.md" "$PROJECT_PATH/state.md" "$PROJECT_PATH/plan.md"
998
998
  git diff --cached --quiet || git commit -m "chore(oat): update tracking artifacts for {phase} completion"
999
999
  ```
1000
1000
 
1001
- Do not use `git add -A` or glob patterns. Only commit the four files listed above (three project artifacts plus the regenerated repo dashboard).
1001
+ Do not use `git add -A` or glob patterns. Only commit the three project artifacts listed above; `.oat/state.md` is a generated, gitignored dashboard.
1002
1002
 
1003
1003
  **Note on HiLL types:**
1004
1004
 
@@ -1124,15 +1124,15 @@ Implementation - Tasks complete; awaiting final review.
1124
1124
 
1125
1125
  **DO NOT SKIP.** This commit prevents state drift across sessions.
1126
1126
 
1127
- After updating state.md to reflect implementation completion, refresh the repo dashboard and commit all modified OAT tracking files:
1127
+ After updating state.md to reflect implementation completion, refresh the repo dashboard when available and commit all modified project tracking files:
1128
1128
 
1129
1129
  ```bash
1130
1130
  oat state refresh
1131
- git add "$PROJECT_PATH/implementation.md" "$PROJECT_PATH/state.md" "$PROJECT_PATH/plan.md" .oat/state.md
1131
+ git add "$PROJECT_PATH/implementation.md" "$PROJECT_PATH/state.md" "$PROJECT_PATH/plan.md"
1132
1132
  git diff --cached --quiet || git commit -m "chore(oat): update tracking artifacts for implementation complete"
1133
1133
  ```
1134
1134
 
1135
- Do not use `git add -A` or glob patterns. Only commit the four files listed above (three project artifacts plus the regenerated repo dashboard).
1135
+ Do not use `git add -A` or glob patterns. Only commit the three project artifacts listed above; `.oat/state.md` is a generated, gitignored dashboard.
1136
1136
 
1137
1137
  ### Step 13: Final Verification
1138
1138
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-import-plan
3
- version: 1.3.1
3
+ version: 1.3.2
4
4
  description: Use when you have an external markdown plan to execute with OAT. Preserves the source plan and normalizes it into canonical plan.md format.
5
5
  argument-hint: '<path-to-plan.md> [--provider codex|cursor|claude] [--project <name>]'
6
6
  disable-model-invocation: true
@@ -250,4 +250,4 @@ Report:
250
250
  - ✅ `oat_plan_hill_phases` left unset in frontmatter (deferred to `oat-project-implement` Step 2.5).
251
251
  - ✅ `## Planning Checklist` items left unchecked (HiLL configuration deferred to implementation).
252
252
  - ✅ `activeProject` in `.oat/config.local.json` points to the imported project.
253
- - ✅ `.oat/state.md` has been refreshed after pointer update.
253
+ - ✅ `.oat/state.md` has been refreshed locally after pointer update; it is not staged or committed.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-new
3
- version: 1.3.0
3
+ version: 1.3.1
4
4
  description: Use when starting a spec-driven OAT project from scratch. Scaffolds a new project under PROJECTS_ROOT and sets it active.
5
5
  argument-hint: '<project-name> [--force]'
6
6
  disable-model-invocation: true
@@ -77,7 +77,7 @@ Confirm to the user:
77
77
 
78
78
  - Project path created: `{PROJECTS_ROOT}/{project-name}`
79
79
  - Active project set in local config: `.oat/config.local.json` (`activeProject`)
80
- - Repo State Dashboard refreshed: `.oat/state.md` (if enabled)
80
+ - Repo State Dashboard refreshed locally: `.oat/state.md` (if enabled; generated and normally gitignored)
81
81
 
82
82
  Then explicitly instruct the user to run discovery next:
83
83
 
@@ -88,4 +88,4 @@ Then explicitly instruct the user to run discovery next:
88
88
  - ✅ `{PROJECTS_ROOT}/{project-name}/` exists
89
89
  - ✅ Standard artifacts exist in the project dir (copied from `.oat/templates/*.md`)
90
90
  - ✅ `activeProject` in `.oat/config.local.json` points at the project path
91
- - ✅ `.oat/state.md` is refreshed (unless disabled)
91
+ - ✅ `.oat/state.md` is refreshed locally unless disabled; it is not staged or committed.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-quick-start
3
- version: 2.1.2
3
+ version: 2.1.3
4
4
  description: Use when a task is small enough for quick mode or rapid iteration is preferred. Scaffolds a lightweight OAT project from discovery directly to a runnable plan, with optional brainstorming and lightweight design.
5
5
  argument-hint: '<project-name> ["project description"]'
6
6
  disable-model-invocation: true
@@ -70,7 +70,7 @@ When executing this skill, provide lightweight progress feedback so the user can
70
70
 
71
71
  - After any write to `discovery.md`, `design.md`, `plan.md`, `implementation.md`, or project `state.md`, ensure the artifact is saved immediately and remains tracked in git.
72
72
  - If the skill is about to pause for user input or stop after mutating artifacts, commit the changed artifacts before waiting. Do not leave discovery/design updates only in the working tree.
73
- - Quick-start handoff is not complete until the changed project artifacts and regenerated `.oat/state.md` dashboard have been committed.
73
+ - Quick-start handoff is not complete until the changed project artifacts have been committed. Refresh `.oat/state.md` when available, but do not stage it; the repo dashboard is generated and normally gitignored.
74
74
  - This applies to downstream lifecycle boundaries too: implementation, review, revise, and PR skills must inherit a committed artifact baseline, not an untracked project tree.
75
75
 
76
76
  ## Process
@@ -226,7 +226,7 @@ oat project complete-discovery "$PROJECT_PATH" --ready-for oat-project-design
226
226
  - Commit the promoted discovery/state artifacts before stopping:
227
227
 
228
228
  ```bash
229
- git add "$PROJECT_PATH/discovery.md" "$PROJECT_PATH/state.md" ".oat/state.md"
229
+ git add "$PROJECT_PATH/discovery.md" "$PROJECT_PATH/state.md"
230
230
  git diff --cached --quiet || git commit -m "chore(oat): promote quick-start discovery for {project-name}"
231
231
  ```
232
232
 
@@ -552,8 +552,7 @@ for path in \
552
552
  "$PROJECT_PATH/design.md" \
553
553
  "$PROJECT_PATH/plan.md" \
554
554
  "$PROJECT_PATH/implementation.md" \
555
- "$PROJECT_PATH/state.md" \
556
- ".oat/state.md"; do
555
+ "$PROJECT_PATH/state.md"; do
557
556
  [ -e "$path" ] && git add "$path"
558
557
  done
559
558
  git diff --cached --quiet || git commit -m "chore(oat): update quick-start artifacts for {project-name}"
@@ -569,7 +568,7 @@ Report:
569
568
  - execution shape summary (sequential or declared parallel groups)
570
569
  - next options:
571
570
  - `oat-project-implement`
572
- - dashboard location: `.oat/state.md` (confirm it was regenerated)
571
+ - dashboard location: `.oat/state.md` (confirm it was regenerated locally)
573
572
 
574
573
  ## Success Criteria
575
574
 
@@ -578,4 +577,4 @@ Report:
578
577
  - ✅ `discovery.md` contains synthesized or backfilled quick discovery decisions from the session context.
579
578
  - ✅ `plan.md` is complete and executable (`oat_ready_for: oat-project-implement`).
580
579
  - ✅ `implementation.md` is initialized for resumable execution.
581
- - ✅ Changed quick-start artifacts and refreshed `.oat/state.md` are committed before handoff or pause.
580
+ - ✅ Changed quick-start artifacts are committed before handoff or pause; `.oat/state.md` is refreshed locally when available.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-review-provide
3
- version: 1.3.4
3
+ version: 1.3.5
4
4
  description: Use when completed work in an active OAT project needs a quality gate before merge. Performs a lifecycle-scoped review after a task, phase, or full implementation, unlike oat-review-provide.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -234,7 +234,7 @@ Before gathering review context, inspect the core project artifacts:
234
234
  - `"$PROJECT_PATH/plan.md"`
235
235
  - `"$PROJECT_PATH/implementation.md"`
236
236
  - `"$PROJECT_PATH/state.md"`
237
- - `.oat/state.md` (when it exists and was refreshed as part of the project workflow)
237
+ - `.oat/state.md` is generated dashboard state; ignore it for committed artifact baseline checks.
238
238
 
239
239
  If any of those files are untracked or modified only because the previous workflow step did not finish its bookkeeping commit:
240
240
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-review-receive
3
- version: 1.4.2
3
+ version: 1.4.3
4
4
  description: Use when review findings from oat-project-review-provide need closure. Converts review artifacts into actionable plan tasks.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -450,7 +450,7 @@ git diff --cached --quiet || git commit -m "chore(oat): record review findings a
450
450
 
451
451
  Do not use `git add -A` or glob patterns that reach outside `"$PROJECT_PATH/reviews/"`. Do not include unrelated implementation or code files in this commit. Do not defer this commit without explicit user approval — if deferred, clearly state in the summary that bookkeeping is uncommitted so the original agent knows to commit on return.
452
452
 
453
- If the project itself is still untracked because earlier lifecycle steps never committed the initial artifact set, widen this bookkeeping commit to include the untracked core project artifacts (`discovery.md`, `spec.md`, `design.md`, `plan.md`, `implementation.md`, `state.md`, plus `.oat/state.md` when relevant). Do not leave the project tree partially tracked after receive-review finishes.
453
+ If the project itself is still untracked because earlier lifecycle steps never committed the initial artifact set, widen this bookkeeping commit to include the untracked core project artifacts (`discovery.md`, `spec.md`, `design.md`, `plan.md`, `implementation.md`, `state.md`). Do not stage `.oat/state.md`; it is generated dashboard state and normally gitignored. Do not leave the project tree partially tracked after receive-review finishes.
454
454
 
455
455
  **Note on archived review paths:** When `reviews/archived/` matches a `localPaths` pattern (the default setup), the archived file is gitignored and `git add "$PROJECT_PATH/reviews/"` will only stage the deletion of the original (now-moved) top-level review file. When `reviews/archived/` is tracked, both the deletion and the new archived location are staged. Both cases are safe — the command handles them uniformly.
456
456
 
@@ -1,6 +1,15 @@
1
1
  export interface ApplyOatCoreResult {
2
2
  action: 'created' | 'updated' | 'no-change';
3
3
  entries: string[];
4
+ stateDashboardIndexAction: 'untracked' | 'not-tracked' | 'not-git-repo';
4
5
  }
5
6
  export declare function applyOatCoreGitignore(repoRoot: string): Promise<ApplyOatCoreResult>;
7
+ /**
8
+ * Removes the generated repo dashboard from the git index once the OAT core
9
+ * ignore rule is present, while leaving the working-tree file intact.
10
+ *
11
+ * @param repoRoot Repository root where the OAT core gitignore section applies.
12
+ * @returns The index migration outcome for `.oat/state.md`.
13
+ */
14
+ export declare function untrackOatStateDashboard(repoRoot: string): Promise<ApplyOatCoreResult['stateDashboardIndexAction']>;
6
15
  //# sourceMappingURL=gitignore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../../src/commands/init/gitignore.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAMD,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CAgC7B"}
1
+ {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../../src/commands/init/gitignore.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB,EAAE,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;CACzE;AAMD,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CAgD7B;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,CAAC,CAyB1D"}
@@ -1,8 +1,12 @@
1
+ import { execFile } from 'node:child_process';
1
2
  import { readFile, writeFile } from 'node:fs/promises';
2
3
  import { join } from 'node:path';
4
+ import { promisify } from 'node:util';
3
5
  import { fileExists } from '../../fs/io.js';
4
6
  const SECTION_START = '# OAT core';
5
7
  const SECTION_END = '# END OAT core';
8
+ const OAT_STATE_DASHBOARD_PATH = '.oat/state.md';
9
+ const execFileAsync = promisify(execFile);
6
10
  const CORE_ENTRIES = [
7
11
  '.oat/config.local.json',
8
12
  '.oat/state.md',
@@ -20,7 +24,11 @@ export async function applyOatCoreGitignore(repoRoot) {
20
24
  const section = buildSection();
21
25
  if (!exists) {
22
26
  await writeFile(gitignorePath, `${section}\n`, 'utf8');
23
- return { action: 'created', entries: CORE_ENTRIES };
27
+ return {
28
+ action: 'created',
29
+ entries: CORE_ENTRIES,
30
+ stateDashboardIndexAction: await untrackOatStateDashboard(repoRoot),
31
+ };
24
32
  }
25
33
  const content = await readFile(gitignorePath, 'utf8');
26
34
  const startIdx = content.indexOf(SECTION_START);
@@ -28,14 +36,51 @@ export async function applyOatCoreGitignore(repoRoot) {
28
36
  if (startIdx !== -1 && endIdx !== -1) {
29
37
  const existingSection = content.slice(startIdx, endIdx + SECTION_END.length);
30
38
  if (existingSection === section) {
31
- return { action: 'no-change', entries: CORE_ENTRIES };
39
+ return {
40
+ action: 'no-change',
41
+ entries: CORE_ENTRIES,
42
+ stateDashboardIndexAction: await untrackOatStateDashboard(repoRoot),
43
+ };
32
44
  }
33
45
  const before = content.slice(0, startIdx);
34
46
  const after = content.slice(endIdx + SECTION_END.length);
35
47
  await writeFile(gitignorePath, `${before}${section}${after}`, 'utf8');
36
- return { action: 'updated', entries: CORE_ENTRIES };
48
+ return {
49
+ action: 'updated',
50
+ entries: CORE_ENTRIES,
51
+ stateDashboardIndexAction: await untrackOatStateDashboard(repoRoot),
52
+ };
37
53
  }
38
54
  const separator = content.endsWith('\n') ? '\n' : '\n\n';
39
55
  await writeFile(gitignorePath, `${content}${separator}${section}\n`, 'utf8');
40
- return { action: 'updated', entries: CORE_ENTRIES };
56
+ return {
57
+ action: 'updated',
58
+ entries: CORE_ENTRIES,
59
+ stateDashboardIndexAction: await untrackOatStateDashboard(repoRoot),
60
+ };
61
+ }
62
+ /**
63
+ * Removes the generated repo dashboard from the git index once the OAT core
64
+ * ignore rule is present, while leaving the working-tree file intact.
65
+ *
66
+ * @param repoRoot Repository root where the OAT core gitignore section applies.
67
+ * @returns The index migration outcome for `.oat/state.md`.
68
+ */
69
+ export async function untrackOatStateDashboard(repoRoot) {
70
+ try {
71
+ await execFileAsync('git', ['rev-parse', '--is-inside-work-tree'], {
72
+ cwd: repoRoot,
73
+ });
74
+ }
75
+ catch {
76
+ return 'not-git-repo';
77
+ }
78
+ try {
79
+ await execFileAsync('git', ['ls-files', '--error-unmatch', OAT_STATE_DASHBOARD_PATH], { cwd: repoRoot });
80
+ }
81
+ catch {
82
+ return 'not-tracked';
83
+ }
84
+ await execFileAsync('git', ['rm', '--cached', '--force', '--quiet', '--', OAT_STATE_DASHBOARD_PATH], { cwd: repoRoot });
85
+ return 'untracked';
41
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/tools/update/index.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAY,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAKvE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAE7B,MAAM,gBAAgB,CAAC;AAexB,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAA;CAAE,GAClD,MAAM,EAAE,CAUV;AAgCD,wBAAgB,wBAAwB,CACtC,YAAY,GAAE,uBAA6C,EAC3D,gBAAgB,GAAE,oBAA8C,GAC/D,OAAO,CAuJT;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAI7E;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,GACnB,OAAO,CAOT;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,GACd,MAAM,CAMR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/tools/update/index.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAY,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAKvE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAE7B,MAAM,gBAAgB,CAAC;AAexB,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAA;CAAE,GAClD,MAAM,EAAE,CAUV;AAgCD,wBAAgB,wBAAwB,CACtC,YAAY,GAAE,uBAA6C,EAC3D,gBAAgB,GAAE,oBAA8C,GAC/D,OAAO,CA4JT;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAI7E;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,GACnB,OAAO,CAOT;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,OAAO,GACd,MAAM,CAMR"}
@@ -92,6 +92,9 @@ export function createToolsUpdateCommand(dependencies = defaultDependencies, syn
92
92
  const verb = gitignoreResult.action === 'created' ? 'Created' : 'Updated';
93
93
  logger.info(`${verb} .gitignore OAT core section (${gitignoreResult.entries.length} entries).`);
94
94
  }
95
+ if (gitignoreResult.stateDashboardIndexAction === 'untracked') {
96
+ logger.info('Untracked generated dashboard from git index: .oat/state.md.');
97
+ }
95
98
  }
96
99
  // Refresh ~/.oat/docs/ when the core pack is explicitly updated or
97
100
  // reconciled through --all (D3 requirement).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-agent-toolkit/cli",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "private": false,
5
5
  "description": "Open Agent Toolkit CLI",
6
6
  "homepage": "https://github.com/voxmedia/open-agent-toolkit/tree/main/packages/cli",
@@ -33,7 +33,7 @@
33
33
  "ora": "^9.0.0",
34
34
  "yaml": "2.8.2",
35
35
  "zod": "^3.25.76",
36
- "@open-agent-toolkit/control-plane": "0.1.9"
36
+ "@open-agent-toolkit/control-plane": "0.1.10"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/node": "^22.10.0",