@open-agent-toolkit/cli 0.2.40 → 0.2.45

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.
Files changed (213) hide show
  1. package/assets/agents/oat-codebase-mapper.md +15 -3
  2. package/assets/agents/oat-phase-implementer.md +34 -9
  3. package/assets/agents/oat-reviewer.md +2 -2
  4. package/assets/bundle-metadata.json +1 -1
  5. package/assets/docs/cli-utilities/configuration.md +11 -1
  6. package/assets/docs/cli-utilities/tool-packs.md +8 -0
  7. package/assets/docs/contributing/skills.md +67 -14
  8. package/assets/docs/quickstart.md +9 -0
  9. package/assets/docs/reference/cli-reference.md +56 -1
  10. package/assets/docs/reference/file-locations.md +18 -1
  11. package/assets/docs/reference/oat-directory-structure.md +20 -4
  12. package/assets/docs/workflows/projects/artifacts.md +27 -1
  13. package/assets/docs/workflows/projects/implementation-execution.md +22 -0
  14. package/assets/docs/workflows/projects/index.md +6 -0
  15. package/assets/docs/workflows/projects/lifecycle.md +19 -5
  16. package/assets/docs/workflows/projects/picking-up-projects.md +75 -0
  17. package/assets/docs/workflows/projects/pr-flow.md +22 -1
  18. package/assets/docs/workflows/projects/reviewing-oat-prs.md +60 -0
  19. package/assets/public-package-versions.json +4 -4
  20. package/assets/skills/analyze/SKILL.md +13 -5
  21. package/assets/skills/compare/SKILL.md +11 -2
  22. package/assets/skills/oat-brainstorm/SKILL.md +135 -32
  23. package/assets/skills/oat-brainstorm/references/destinations.md +9 -6
  24. package/assets/skills/oat-cursor-cloud-projects/SKILL.md +11 -1
  25. package/assets/skills/oat-dispatch-subagents/SKILL.md +19 -6
  26. package/assets/skills/oat-doctor/SKILL.md +8 -1
  27. package/assets/skills/oat-project-autonomous/SKILL.md +45 -1
  28. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +8 -8
  29. package/assets/skills/oat-project-capture/SKILL.md +29 -9
  30. package/assets/skills/oat-project-complete/SKILL.md +610 -38
  31. package/assets/skills/oat-project-complete/scripts/parse-completion-retry-fields.mjs +265 -0
  32. package/assets/skills/oat-project-complete/scripts/recover-completion-receipts.mjs +764 -0
  33. package/assets/skills/oat-project-complete/scripts/resolve-completion-retry.mjs +134 -0
  34. package/assets/skills/oat-project-complete/scripts/validate-nonarchive-lifecycle-receipt.mjs +160 -0
  35. package/assets/skills/oat-project-design/SKILL.md +33 -9
  36. package/assets/skills/oat-project-discover/SKILL.md +16 -3
  37. package/assets/skills/oat-project-document/SKILL.md +10 -4
  38. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +8 -8
  39. package/assets/skills/oat-project-implement/SKILL.md +14 -3
  40. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +18 -6
  41. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +8 -8
  42. package/assets/skills/oat-project-implement/references/phase-execution.md +9 -3
  43. package/assets/skills/oat-project-implement/references/plan-and-resume.md +3 -0
  44. package/assets/skills/oat-project-import-plan/SKILL.md +15 -9
  45. package/assets/skills/oat-project-new/SKILL.md +7 -5
  46. package/assets/skills/oat-project-next/SKILL.md +32 -10
  47. package/assets/skills/oat-project-plan/SKILL.md +18 -3
  48. package/assets/skills/oat-project-pr-final/SKILL.md +23 -2
  49. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +8 -8
  50. package/assets/skills/oat-project-pr-progress/SKILL.md +23 -2
  51. package/assets/skills/oat-project-progress/SKILL.md +23 -9
  52. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +20 -2
  53. package/assets/skills/oat-project-quick-start/SKILL.md +48 -18
  54. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +8 -8
  55. package/assets/skills/oat-project-reconcile/SKILL.md +14 -10
  56. package/assets/skills/oat-project-retro/SKILL.md +3 -3
  57. package/assets/skills/oat-project-retro/references/apply-procedure.md +102 -6
  58. package/assets/skills/oat-project-retro-file/SKILL.md +57 -6
  59. package/assets/skills/oat-project-review-provide/SKILL.md +56 -6
  60. package/assets/skills/oat-project-review-receive/SKILL.md +16 -7
  61. package/assets/skills/oat-project-review-receive-remote/SKILL.md +9 -3
  62. package/assets/skills/oat-project-revise/SKILL.md +12 -3
  63. package/assets/skills/oat-project-spec/SKILL.md +16 -3
  64. package/assets/skills/oat-project-summary/SKILL.md +113 -13
  65. package/assets/skills/oat-repo-improve/SKILL.md +18 -7
  66. package/assets/skills/oat-review-provide-remote/SKILL.md +11 -2
  67. package/assets/skills/oat-wave-execute/SKILL.md +34 -2
  68. package/assets/skills/oat-worktree-bootstrap/SKILL.md +13 -1
  69. package/assets/skills/oat-worktree-bootstrap-auto/SKILL.md +13 -1
  70. package/dist/commands/config/index.d.ts +1 -0
  71. package/dist/commands/config/index.d.ts.map +1 -1
  72. package/dist/commands/config/index.js +30 -2
  73. package/dist/commands/doctor/index.d.ts +2 -0
  74. package/dist/commands/doctor/index.d.ts.map +1 -1
  75. package/dist/commands/doctor/index.js +27 -3
  76. package/dist/commands/doctor/synced-projects.d.ts +12 -0
  77. package/dist/commands/doctor/synced-projects.d.ts.map +1 -0
  78. package/dist/commands/doctor/synced-projects.js +208 -0
  79. package/dist/commands/init/gitattributes.d.ts +4 -0
  80. package/dist/commands/init/gitattributes.d.ts.map +1 -0
  81. package/dist/commands/init/gitattributes.js +12 -0
  82. package/dist/commands/init/gitignore.d.ts +8 -1
  83. package/dist/commands/init/gitignore.d.ts.map +1 -1
  84. package/dist/commands/init/gitignore.js +146 -41
  85. package/dist/commands/init/index.d.ts +2 -0
  86. package/dist/commands/init/index.d.ts.map +1 -1
  87. package/dist/commands/init/index.js +3 -0
  88. package/dist/commands/init/managed-block.d.ts +10 -0
  89. package/dist/commands/init/managed-block.d.ts.map +1 -0
  90. package/dist/commands/init/managed-block.js +40 -0
  91. package/dist/commands/init/tools/workflows/install-workflows.js +1 -1
  92. package/dist/commands/local/index.d.ts.map +1 -1
  93. package/dist/commands/local/index.js +5 -1
  94. package/dist/commands/local/sync.d.ts +4 -0
  95. package/dist/commands/local/sync.d.ts.map +1 -1
  96. package/dist/commands/local/sync.js +123 -2
  97. package/dist/commands/pjm/adoption.d.ts +2 -0
  98. package/dist/commands/pjm/adoption.d.ts.map +1 -1
  99. package/dist/commands/pjm/adoption.js +1 -1
  100. package/dist/commands/project/archive/archive-utils.d.ts +24 -0
  101. package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
  102. package/dist/commands/project/archive/archive-utils.js +349 -22
  103. package/dist/commands/project/archive/index.d.ts.map +1 -1
  104. package/dist/commands/project/archive/index.js +1 -0
  105. package/dist/commands/project/archive/push-runner.d.ts +5 -1
  106. package/dist/commands/project/archive/push-runner.d.ts.map +1 -1
  107. package/dist/commands/project/archive/push-runner.js +33 -4
  108. package/dist/commands/project/complete-state/index.d.ts.map +1 -1
  109. package/dist/commands/project/complete-state/index.js +3 -1
  110. package/dist/commands/project/index.d.ts.map +1 -1
  111. package/dist/commands/project/index.js +12 -0
  112. package/dist/commands/project/links/compute.d.ts +9 -0
  113. package/dist/commands/project/links/compute.d.ts.map +1 -0
  114. package/dist/commands/project/links/compute.js +27 -0
  115. package/dist/commands/project/links/index.d.ts +17 -0
  116. package/dist/commands/project/links/index.d.ts.map +1 -0
  117. package/dist/commands/project/links/index.js +72 -0
  118. package/dist/commands/project/links/refresh.d.ts +26 -0
  119. package/dist/commands/project/links/refresh.d.ts.map +1 -0
  120. package/dist/commands/project/links/refresh.js +92 -0
  121. package/dist/commands/project/links/render.d.ts +24 -0
  122. package/dist/commands/project/links/render.d.ts.map +1 -0
  123. package/dist/commands/project/links/render.js +68 -0
  124. package/dist/commands/project/list.d.ts +5 -0
  125. package/dist/commands/project/list.d.ts.map +1 -1
  126. package/dist/commands/project/list.js +182 -9
  127. package/dist/commands/project/migrate/index.d.ts +22 -0
  128. package/dist/commands/project/migrate/index.d.ts.map +1 -0
  129. package/dist/commands/project/migrate/index.js +79 -0
  130. package/dist/commands/project/new/index.d.ts +2 -0
  131. package/dist/commands/project/new/index.d.ts.map +1 -1
  132. package/dist/commands/project/new/index.js +14 -2
  133. package/dist/commands/project/new/scaffold.d.ts +22 -1
  134. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  135. package/dist/commands/project/new/scaffold.js +287 -69
  136. package/dist/commands/project/open/index.d.ts +16 -0
  137. package/dist/commands/project/open/index.d.ts.map +1 -1
  138. package/dist/commands/project/open/index.js +151 -19
  139. package/dist/commands/project/pause/index.d.ts +8 -0
  140. package/dist/commands/project/pause/index.d.ts.map +1 -1
  141. package/dist/commands/project/pause/index.js +129 -19
  142. package/dist/commands/project/prune/index.d.ts +21 -0
  143. package/dist/commands/project/prune/index.d.ts.map +1 -0
  144. package/dist/commands/project/prune/index.js +95 -0
  145. package/dist/commands/project/pull/index.d.ts +28 -0
  146. package/dist/commands/project/pull/index.d.ts.map +1 -0
  147. package/dist/commands/project/pull/index.js +157 -0
  148. package/dist/commands/project/push/index.d.ts +22 -0
  149. package/dist/commands/project/push/index.d.ts.map +1 -0
  150. package/dist/commands/project/push/index.js +100 -0
  151. package/dist/commands/project/scope/index.d.ts +17 -0
  152. package/dist/commands/project/scope/index.d.ts.map +1 -0
  153. package/dist/commands/project/scope/index.js +107 -0
  154. package/dist/commands/project/split/run.d.ts +4 -0
  155. package/dist/commands/project/split/run.d.ts.map +1 -1
  156. package/dist/commands/project/split/run.js +48 -10
  157. package/dist/commands/project/sync/git.d.ts +18 -0
  158. package/dist/commands/project/sync/git.d.ts.map +1 -0
  159. package/dist/commands/project/sync/git.js +60 -0
  160. package/dist/commands/project/sync/record.d.ts +22 -0
  161. package/dist/commands/project/sync/record.d.ts.map +1 -0
  162. package/dist/commands/project/sync/record.js +133 -0
  163. package/dist/commands/project/sync/ref-sync.d.ts +120 -0
  164. package/dist/commands/project/sync/ref-sync.d.ts.map +1 -0
  165. package/dist/commands/project/sync/ref-sync.js +962 -0
  166. package/dist/commands/project/sync/resolve-target.d.ts +27 -0
  167. package/dist/commands/project/sync/resolve-target.d.ts.map +1 -0
  168. package/dist/commands/project/sync/resolve-target.js +159 -0
  169. package/dist/commands/shared/oat-paths.d.ts +4 -1
  170. package/dist/commands/shared/oat-paths.d.ts.map +1 -1
  171. package/dist/commands/shared/oat-paths.js +2 -2
  172. package/dist/commands/shared/project-scope.d.ts +23 -0
  173. package/dist/commands/shared/project-scope.d.ts.map +1 -0
  174. package/dist/commands/shared/project-scope.js +106 -0
  175. package/dist/commands/tools/migrate/index.js +1 -1
  176. package/dist/commands/tools/shared/pack-inventory.d.ts.map +1 -1
  177. package/dist/commands/tools/shared/pack-inventory.js +11 -0
  178. package/dist/commands/tools/shared/pack-lifecycle.js +1 -1
  179. package/dist/commands/tools/shared/pack-reconcile.d.ts.map +1 -1
  180. package/dist/commands/tools/shared/pack-reconcile.js +4 -1
  181. package/dist/commands/tools/update/index.d.ts.map +1 -1
  182. package/dist/commands/tools/update/index.js +20 -10
  183. package/dist/commands/tools/update/update-tools.d.ts +2 -0
  184. package/dist/commands/tools/update/update-tools.d.ts.map +1 -1
  185. package/dist/config/oat-config.d.ts +6 -3
  186. package/dist/config/oat-config.d.ts.map +1 -1
  187. package/dist/config/oat-config.js +41 -7
  188. package/dist/config/resolve.d.ts.map +1 -1
  189. package/dist/config/resolve.js +2 -1
  190. package/dist/fs/io.d.ts +2 -1
  191. package/dist/fs/io.d.ts.map +1 -1
  192. package/dist/fs/io.js +5 -2
  193. package/dist/projects/split/finalize.d.ts.map +1 -1
  194. package/dist/projects/split/finalize.js +55 -2
  195. package/dist/projects/split/resume.d.ts +3 -0
  196. package/dist/projects/split/resume.d.ts.map +1 -1
  197. package/dist/projects/split/resume.js +34 -7
  198. package/dist/projects/split/seed-children.d.ts.map +1 -1
  199. package/dist/projects/split/seed-children.js +6 -0
  200. package/dist/projects/split/write-parent.d.ts +7 -0
  201. package/dist/projects/split/write-parent.d.ts.map +1 -1
  202. package/dist/projects/split/write-parent.js +7 -4
  203. package/dist/release/public-package-contract.d.ts.map +1 -1
  204. package/dist/release/public-package-contract.js +1 -0
  205. package/dist/validation/skills.d.ts.map +1 -1
  206. package/dist/validation/skills.js +434 -0
  207. package/package.json +4 -4
  208. package/dist/__tests__/skills/split-flow-fixtures.d.ts +0 -50
  209. package/dist/__tests__/skills/split-flow-fixtures.d.ts.map +0 -1
  210. package/dist/__tests__/skills/split-flow-fixtures.js +0 -161
  211. package/dist/commands/__tests__/helpers.d.ts +0 -12
  212. package/dist/commands/__tests__/helpers.d.ts.map +0 -1
  213. package/dist/commands/__tests__/helpers.js +0 -36
@@ -1,161 +0,0 @@
1
- import { buildSplitPlanDocument, } from '../../projects/split/child-plan.js';
2
- import { evaluateSignals } from '../../projects/split/signals.js';
3
- export const SPLIT_HANDOFF_TARGET = {
4
- skill: 'oat-project-split',
5
- hookCreatesProjects: false,
6
- responsibilities: [
7
- 'normalize-split-plan',
8
- 'write-coordination-parent',
9
- 'scaffold-children',
10
- 'activate-initial-child',
11
- ],
12
- };
13
- class AskUserQuestionStub {
14
- responses;
15
- asked = [];
16
- constructor(responses) {
17
- this.responses = responses;
18
- }
19
- ask(id, prompt, options) {
20
- const response = this.responses[id];
21
- if (!response) {
22
- throw new Error(`Missing stubbed response for AskUserQuestion ${id}`);
23
- }
24
- this.asked.push({ id, prompt, options, response });
25
- return response;
26
- }
27
- }
28
- function transcriptText(transcript) {
29
- return transcript.map((turn) => `${turn.speaker}: ${turn.text}`).join('\n');
30
- }
31
- export function inferSplitSignals(transcript) {
32
- const text = transcriptText(transcript).toLowerCase();
33
- const signals = new Set();
34
- if (text.includes('independently shippable') ||
35
- text.includes('ship independently')) {
36
- signals.add('independently-shippable');
37
- }
38
- if (text.includes('no shared design surface') ||
39
- text.includes('separate design surfaces')) {
40
- signals.add('no-shared-design-surface');
41
- }
42
- if (text.includes('separate pr') || text.includes('separate pull request')) {
43
- signals.add('expect-separate-prs');
44
- }
45
- if (text.includes('distinct subsystem') ||
46
- text.includes('different package') ||
47
- text.includes('different packages')) {
48
- signals.add('distinct-subsystems');
49
- }
50
- return [...signals];
51
- }
52
- export function runDiscoverDetectionFixture(fixture, responses) {
53
- const evaluation = evaluateSignals({
54
- fired: inferSplitSignals(fixture.transcript),
55
- });
56
- const askUser = new AskUserQuestionStub(responses);
57
- if (!evaluation.triggered) {
58
- return {
59
- asked: askUser.asked,
60
- confidence: evaluation.confidence,
61
- triggered: false,
62
- };
63
- }
64
- const prompt = evaluation.confidence === 'high'
65
- ? 'This looks like multiple independent projects. Split now, do one round of broad cross-cutting discovery first, or keep this as one project?'
66
- : 'This may be multiple projects. Split, do one round of broad cross-cutting discovery first, or keep it as one project?';
67
- const decision = askUser.ask('discover-split-offer', prompt, [
68
- 'split-now',
69
- 'broad-first',
70
- 'keep-one-project',
71
- ]);
72
- if (decision !== 'split-now') {
73
- return {
74
- asked: askUser.asked,
75
- confidence: evaluation.confidence,
76
- decision,
77
- triggered: true,
78
- };
79
- }
80
- const payload = {
81
- origin: 'detected-mid-stream',
82
- interactive: true,
83
- inferredChildren: fixture.children,
84
- priorDiscovery: {
85
- path: fixture.discoveryPath ?? `.oat/projects/shared/${fixture.parentSlug}`,
86
- inheritedContext: fixture.inheritedContext,
87
- integrationSketch: fixture.integrationSketch,
88
- },
89
- };
90
- return {
91
- asked: askUser.asked,
92
- confidence: evaluation.confidence,
93
- decision,
94
- document: buildSplitPlanDocument(payload),
95
- payload,
96
- triggered: true,
97
- };
98
- }
99
- export function runDeclaredBrainstormFixture(fixture, responses) {
100
- const text = transcriptText(fixture.transcript).toLowerCase();
101
- const declared = text.includes('multiple projects') ||
102
- text.includes('umbrella project') ||
103
- text.includes('several sub-projects');
104
- if (!declared) {
105
- return { asked: [], handoffTarget: SPLIT_HANDOFF_TARGET };
106
- }
107
- const askUser = new AskUserQuestionStub(responses);
108
- const decision = askUser.ask('declared-brainstorm-boundary', 'Do you already know the child projects, or should we decompose the scope together?', ['children-known', 'decompose-children']);
109
- if (decision !== 'children-known') {
110
- return { asked: askUser.asked, handoffTarget: SPLIT_HANDOFF_TARGET };
111
- }
112
- const payload = {
113
- origin: 'declared',
114
- parentSlug: fixture.parentSlug,
115
- declaredChildren: fixture.children,
116
- interactive: true,
117
- integrationSketch: fixture.integrationSketch,
118
- };
119
- return {
120
- asked: askUser.asked,
121
- document: buildSplitPlanDocument(payload),
122
- handoffTarget: SPLIT_HANDOFF_TARGET,
123
- payload,
124
- };
125
- }
126
- export function runBrainstormPickerFixture(fixture, responses) {
127
- const evaluation = evaluateSignals({
128
- fired: inferSplitSignals(fixture.transcript),
129
- });
130
- const options = ['inline-only', 'doc-to-path', 'promote-to-new-oat-project'];
131
- if (evaluation.triggered) {
132
- options.push('promote-n-projects');
133
- }
134
- const askUser = new AskUserQuestionStub(responses);
135
- const decision = askUser.ask('brainstorm-terminal-state', 'Where should this brainstorm land?', options);
136
- if (decision !== 'promote-n-projects' || !evaluation.triggered) {
137
- return {
138
- asked: askUser.asked,
139
- handoffTarget: SPLIT_HANDOFF_TARGET,
140
- options,
141
- };
142
- }
143
- const payload = {
144
- origin: 'brainstorm-picker',
145
- parentSlug: fixture.parentSlug,
146
- inferredChildren: fixture.children,
147
- interactive: true,
148
- priorDiscovery: {
149
- path: `brainstorm/${fixture.parentSlug}`,
150
- inheritedContext: fixture.inheritedContext,
151
- integrationSketch: fixture.integrationSketch,
152
- },
153
- };
154
- return {
155
- asked: askUser.asked,
156
- document: buildSplitPlanDocument(payload),
157
- handoffTarget: SPLIT_HANDOFF_TARGET,
158
- options,
159
- payload,
160
- };
161
- }
@@ -1,12 +0,0 @@
1
- import type { CliLogger } from '../../ui/logger.js';
2
- export interface LoggerCapture {
3
- info: string[];
4
- warn: string[];
5
- error: string[];
6
- success: string[];
7
- debug: string[];
8
- jsonPayloads: unknown[];
9
- logger: CliLogger;
10
- }
11
- export declare function createLoggerCapture(): LoggerCapture;
12
- //# sourceMappingURL=helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/__tests__/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAoCnD"}
@@ -1,36 +0,0 @@
1
- export function createLoggerCapture() {
2
- const info = [];
3
- const warn = [];
4
- const error = [];
5
- const success = [];
6
- const debug = [];
7
- const jsonPayloads = [];
8
- return {
9
- info,
10
- warn,
11
- error,
12
- success,
13
- debug,
14
- jsonPayloads,
15
- logger: {
16
- debug(message) {
17
- debug.push(message);
18
- },
19
- info(message) {
20
- info.push(message);
21
- },
22
- warn(message) {
23
- warn.push(message);
24
- },
25
- error(message) {
26
- error.push(message);
27
- },
28
- success(message) {
29
- success.push(message);
30
- },
31
- json(payload) {
32
- jsonPayloads.push(payload);
33
- },
34
- },
35
- };
36
- }