@automaton-labs/aib 0.0.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.
Files changed (291) hide show
  1. package/README.md +578 -0
  2. package/dist/bin/aib.js +2 -0
  3. package/dist/bin/cli.js +3 -0
  4. package/dist/client/http-client.js +1 -0
  5. package/dist/client/transport-options.js +1 -0
  6. package/dist/client/websocket-client.js +1 -0
  7. package/dist/commands/add-missing-imports-preview-cache.js +2 -0
  8. package/dist/commands/add-missing-imports.js +2 -0
  9. package/dist/commands/apply-module-plan.js +3 -0
  10. package/dist/commands/captured-input.js +2 -0
  11. package/dist/commands/config-command.js +3 -0
  12. package/dist/commands/diagnostics-command.js +3 -0
  13. package/dist/commands/doctor.js +1 -0
  14. package/dist/commands/entity-resolution.js +1 -0
  15. package/dist/commands/execution-command.js +1 -0
  16. package/dist/commands/feedback-command.js +3 -0
  17. package/dist/commands/find-importers.js +1 -0
  18. package/dist/commands/find-unused-imports.js +1 -0
  19. package/dist/commands/generate-docs-command.js +6 -0
  20. package/dist/commands/help-command.js +3 -0
  21. package/dist/commands/imports-command.js +1 -0
  22. package/dist/commands/init-skill-usage.js +3 -0
  23. package/dist/commands/init-workspace.js +3 -0
  24. package/dist/commands/inspect-cycles.js +5 -0
  25. package/dist/commands/inspect-format.js +18 -0
  26. package/dist/commands/inspect-graph.js +9 -0
  27. package/dist/commands/inspect-imports.js +2 -0
  28. package/dist/commands/inspect-symbol-query.js +1 -0
  29. package/dist/commands/inspect-tree.js +5 -0
  30. package/dist/commands/inspect.js +16 -0
  31. package/dist/commands/json-file-input.js +1 -0
  32. package/dist/commands/list-instances.js +1 -0
  33. package/dist/commands/module-plan-cache.js +2 -0
  34. package/dist/commands/module-plan-command.js +1 -0
  35. package/dist/commands/module-plan-timeout.js +1 -0
  36. package/dist/commands/move-command.js +1 -0
  37. package/dist/commands/move-preview-cache.js +2 -0
  38. package/dist/commands/move-to-file.js +2 -0
  39. package/dist/commands/mutation-execution-cache.js +3 -0
  40. package/dist/commands/normalize-imports.js +4 -0
  41. package/dist/commands/observability-command.js +3 -0
  42. package/dist/commands/ping.js +1 -0
  43. package/dist/commands/print-config.js +1 -0
  44. package/dist/commands/quick-read.js +11 -0
  45. package/dist/commands/refactor-batch-builder.js +1 -0
  46. package/dist/commands/refactor-batch-execution-cache.js +1 -0
  47. package/dist/commands/refactor-batch-preview-cache.js +2 -0
  48. package/dist/commands/refactor-batch.js +4 -0
  49. package/dist/commands/refactor-command.js +1 -0
  50. package/dist/commands/rename-command.js +1 -0
  51. package/dist/commands/rename-entities.js +4 -0
  52. package/dist/commands/rename-execution-cache.js +1 -0
  53. package/dist/commands/rename-input.js +1 -0
  54. package/dist/commands/rename-preview-cache.js +2 -0
  55. package/dist/commands/result-view.js +6 -0
  56. package/dist/commands/runtime-command.js +4 -0
  57. package/dist/commands/runtime-info.js +1 -0
  58. package/dist/commands/session-workspace.js +31 -0
  59. package/dist/commands/shared.js +1 -0
  60. package/dist/commands/sync-command.js +2 -0
  61. package/dist/commands/validate-module-plan.js +2 -0
  62. package/dist/commands/workspace-cache.js +1 -0
  63. package/dist/compatibility/policy.js +1 -0
  64. package/dist/config/auto-start-ide.js +1 -0
  65. package/dist/config/defaults.js +1 -0
  66. package/dist/config/env-vars.js +1 -0
  67. package/dist/config/glob-match.js +1 -0
  68. package/dist/config/import-rules.js +1 -0
  69. package/dist/config/local-config.js +3 -0
  70. package/dist/config/mutation-comments.js +1 -0
  71. package/dist/config/path-aliases.js +1 -0
  72. package/dist/config/path-display.js +1 -0
  73. package/dist/config/product-storage.js +1 -0
  74. package/dist/config/resolve-command-alias.js +1 -0
  75. package/dist/config/resolve.js +1 -0
  76. package/dist/config/workspace-root.js +3 -0
  77. package/dist/config/workspace-state.js +1 -0
  78. package/dist/content/content-bundle.js +1 -0
  79. package/dist/diagnostics/module-plan-timeline.js +2 -0
  80. package/dist/diagnostics/readiness-text.js +8 -0
  81. package/dist/discovery/registry.js +1 -0
  82. package/dist/discovery/select-instance.js +1 -0
  83. package/dist/dsl/aib-dsl.js +1 -0
  84. package/dist/help/bootstrap.md +924 -0
  85. package/dist/help/diagnostics/doctor.json +70 -0
  86. package/dist/help/docs/basics.md +14 -0
  87. package/dist/help/docs/dsl.md +25 -0
  88. package/dist/help/docs/help-format.md +12 -0
  89. package/dist/help/docs/imports.normalize.md +36 -0
  90. package/dist/help/docs/inspect.code.md +29 -0
  91. package/dist/help/docs/inspect.deps.md +32 -0
  92. package/dist/help/docs/inspect.duplicates.md +72 -0
  93. package/dist/help/docs/inspect.exports.md +34 -0
  94. package/dist/help/docs/inspect.file.md +32 -0
  95. package/dist/help/docs/inspect.graph.md +112 -0
  96. package/dist/help/docs/inspect.imports.md +15 -0
  97. package/dist/help/docs/inspect.md +71 -0
  98. package/dist/help/docs/inspect.members.md +24 -0
  99. package/dist/help/docs/inspect.tree.md +30 -0
  100. package/dist/help/docs/inspect.usages.md +48 -0
  101. package/dist/help/docs/modulePlan.md +51 -0
  102. package/dist/help/docs/move.md +37 -0
  103. package/dist/help/docs/mutation.md +47 -0
  104. package/dist/help/docs/patterns.md +178 -0
  105. package/dist/help/docs/prefs.md +40 -0
  106. package/dist/help/docs/qr.md +33 -0
  107. package/dist/help/docs/refactor.batch.md +44 -0
  108. package/dist/help/docs/rename.md +39 -0
  109. package/dist/help/docs/selectors.md +23 -0
  110. package/dist/help/docs/session.md +61 -0
  111. package/dist/help/docs/view.md +30 -0
  112. package/dist/help/dsl/bootstrap.md +924 -0
  113. package/dist/help/dsl/docs/basics.md +14 -0
  114. package/dist/help/dsl/docs/dsl.md +25 -0
  115. package/dist/help/dsl/docs/help-format.md +12 -0
  116. package/dist/help/dsl/docs/imports.normalize.md +36 -0
  117. package/dist/help/dsl/docs/inspect.code.md +29 -0
  118. package/dist/help/dsl/docs/inspect.deps.md +32 -0
  119. package/dist/help/dsl/docs/inspect.duplicates.md +72 -0
  120. package/dist/help/dsl/docs/inspect.exports.md +34 -0
  121. package/dist/help/dsl/docs/inspect.file.md +32 -0
  122. package/dist/help/dsl/docs/inspect.graph.md +112 -0
  123. package/dist/help/dsl/docs/inspect.imports.md +15 -0
  124. package/dist/help/dsl/docs/inspect.md +71 -0
  125. package/dist/help/dsl/docs/inspect.members.md +24 -0
  126. package/dist/help/dsl/docs/inspect.tree.md +30 -0
  127. package/dist/help/dsl/docs/inspect.usages.md +48 -0
  128. package/dist/help/dsl/docs/modulePlan.md +51 -0
  129. package/dist/help/dsl/docs/move.md +37 -0
  130. package/dist/help/dsl/docs/mutation.md +47 -0
  131. package/dist/help/dsl/docs/patterns.md +178 -0
  132. package/dist/help/dsl/docs/prefs.md +40 -0
  133. package/dist/help/dsl/docs/qr.md +33 -0
  134. package/dist/help/dsl/docs/refactor.batch.md +44 -0
  135. package/dist/help/dsl/docs/rename.md +39 -0
  136. package/dist/help/dsl/docs/selectors.md +23 -0
  137. package/dist/help/dsl/docs/session.md +61 -0
  138. package/dist/help/dsl/docs/view.md +30 -0
  139. package/dist/help/dsl/full.md +924 -0
  140. package/dist/help/dsl/snippets/agents.md +14 -0
  141. package/dist/help/dsl/topics/basics.md +12 -0
  142. package/dist/help/dsl/topics/dsl.md +23 -0
  143. package/dist/help/dsl/topics/help-format.md +10 -0
  144. package/dist/help/dsl/topics/imports.normalize.md +34 -0
  145. package/dist/help/dsl/topics/inspect.code.md +27 -0
  146. package/dist/help/dsl/topics/inspect.deps.md +30 -0
  147. package/dist/help/dsl/topics/inspect.duplicates.md +43 -0
  148. package/dist/help/dsl/topics/inspect.exports.md +32 -0
  149. package/dist/help/dsl/topics/inspect.file.md +30 -0
  150. package/dist/help/dsl/topics/inspect.graph.md +110 -0
  151. package/dist/help/dsl/topics/inspect.imports.md +13 -0
  152. package/dist/help/dsl/topics/inspect.md +69 -0
  153. package/dist/help/dsl/topics/inspect.members.md +22 -0
  154. package/dist/help/dsl/topics/inspect.tree.md +20 -0
  155. package/dist/help/dsl/topics/inspect.usages.md +46 -0
  156. package/dist/help/dsl/topics/modulePlan.md +38 -0
  157. package/dist/help/dsl/topics/move.md +27 -0
  158. package/dist/help/dsl/topics/mutation.md +45 -0
  159. package/dist/help/dsl/topics/patterns.md +176 -0
  160. package/dist/help/dsl/topics/prefs.md +38 -0
  161. package/dist/help/dsl/topics/qr.md +31 -0
  162. package/dist/help/dsl/topics/refactor.batch.md +33 -0
  163. package/dist/help/dsl/topics/rename.md +25 -0
  164. package/dist/help/dsl/topics/selectors.md +21 -0
  165. package/dist/help/dsl/topics/session.md +59 -0
  166. package/dist/help/dsl/topics/view.md +28 -0
  167. package/dist/help/full.md +924 -0
  168. package/dist/help/help-meta.json +113 -0
  169. package/dist/help/index.md +167 -0
  170. package/dist/help/json/bootstrap.md +1074 -0
  171. package/dist/help/json/docs/basics.md +15 -0
  172. package/dist/help/json/docs/dsl.md +25 -0
  173. package/dist/help/json/docs/help-format.md +12 -0
  174. package/dist/help/json/docs/imports.normalize.md +47 -0
  175. package/dist/help/json/docs/inspect.code.md +41 -0
  176. package/dist/help/json/docs/inspect.deps.md +46 -0
  177. package/dist/help/json/docs/inspect.duplicates.md +65 -0
  178. package/dist/help/json/docs/inspect.exports.md +40 -0
  179. package/dist/help/json/docs/inspect.file.md +38 -0
  180. package/dist/help/json/docs/inspect.graph.md +139 -0
  181. package/dist/help/json/docs/inspect.imports.md +15 -0
  182. package/dist/help/json/docs/inspect.md +87 -0
  183. package/dist/help/json/docs/inspect.members.md +32 -0
  184. package/dist/help/json/docs/inspect.tree.md +30 -0
  185. package/dist/help/json/docs/inspect.usages.md +61 -0
  186. package/dist/help/json/docs/modulePlan.md +70 -0
  187. package/dist/help/json/docs/move.md +53 -0
  188. package/dist/help/json/docs/mutation.md +62 -0
  189. package/dist/help/json/docs/patterns.md +178 -0
  190. package/dist/help/json/docs/prefs.md +40 -0
  191. package/dist/help/json/docs/qr.md +33 -0
  192. package/dist/help/json/docs/refactor.batch.md +72 -0
  193. package/dist/help/json/docs/rename.md +47 -0
  194. package/dist/help/json/docs/selectors.md +23 -0
  195. package/dist/help/json/docs/session.md +77 -0
  196. package/dist/help/json/docs/view.md +30 -0
  197. package/dist/help/json/full.md +1074 -0
  198. package/dist/help/json/snippets/agents.md +14 -0
  199. package/dist/help/json/topics/basics.md +13 -0
  200. package/dist/help/json/topics/dsl.md +23 -0
  201. package/dist/help/json/topics/help-format.md +10 -0
  202. package/dist/help/json/topics/imports.normalize.md +45 -0
  203. package/dist/help/json/topics/inspect.code.md +39 -0
  204. package/dist/help/json/topics/inspect.deps.md +44 -0
  205. package/dist/help/json/topics/inspect.duplicates.md +37 -0
  206. package/dist/help/json/topics/inspect.exports.md +38 -0
  207. package/dist/help/json/topics/inspect.file.md +36 -0
  208. package/dist/help/json/topics/inspect.graph.md +137 -0
  209. package/dist/help/json/topics/inspect.imports.md +13 -0
  210. package/dist/help/json/topics/inspect.md +85 -0
  211. package/dist/help/json/topics/inspect.members.md +30 -0
  212. package/dist/help/json/topics/inspect.tree.md +20 -0
  213. package/dist/help/json/topics/inspect.usages.md +59 -0
  214. package/dist/help/json/topics/modulePlan.md +57 -0
  215. package/dist/help/json/topics/move.md +43 -0
  216. package/dist/help/json/topics/mutation.md +60 -0
  217. package/dist/help/json/topics/patterns.md +176 -0
  218. package/dist/help/json/topics/prefs.md +38 -0
  219. package/dist/help/json/topics/qr.md +31 -0
  220. package/dist/help/json/topics/refactor.batch.md +61 -0
  221. package/dist/help/json/topics/rename.md +42 -0
  222. package/dist/help/json/topics/selectors.md +21 -0
  223. package/dist/help/json/topics/session.md +59 -0
  224. package/dist/help/json/topics/view.md +28 -0
  225. package/dist/help/snippets/agents.md +14 -0
  226. package/dist/help/topics/basics.md +12 -0
  227. package/dist/help/topics/dsl.md +23 -0
  228. package/dist/help/topics/help-format.md +10 -0
  229. package/dist/help/topics/imports.normalize.md +34 -0
  230. package/dist/help/topics/inspect.code.md +27 -0
  231. package/dist/help/topics/inspect.deps.md +30 -0
  232. package/dist/help/topics/inspect.duplicates.md +43 -0
  233. package/dist/help/topics/inspect.exports.md +32 -0
  234. package/dist/help/topics/inspect.file.md +30 -0
  235. package/dist/help/topics/inspect.graph.md +110 -0
  236. package/dist/help/topics/inspect.imports.md +13 -0
  237. package/dist/help/topics/inspect.md +69 -0
  238. package/dist/help/topics/inspect.members.md +22 -0
  239. package/dist/help/topics/inspect.tree.md +20 -0
  240. package/dist/help/topics/inspect.usages.md +46 -0
  241. package/dist/help/topics/modulePlan.md +38 -0
  242. package/dist/help/topics/move.md +27 -0
  243. package/dist/help/topics/mutation.md +45 -0
  244. package/dist/help/topics/patterns.md +176 -0
  245. package/dist/help/topics/prefs.md +38 -0
  246. package/dist/help/topics/qr.md +31 -0
  247. package/dist/help/topics/refactor.batch.md +33 -0
  248. package/dist/help/topics/rename.md +25 -0
  249. package/dist/help/topics/selectors.md +21 -0
  250. package/dist/help/topics/session.md +59 -0
  251. package/dist/help/topics/view.md +28 -0
  252. package/dist/ide-launch/common.cjs +162 -0
  253. package/dist/managed-host/extension-vsix-resolver.js +1 -0
  254. package/dist/managed-host/manage-serve-web-host.cjs +141 -0
  255. package/dist/managed-host/serve-web-autostart.js +1 -0
  256. package/dist/managed-host/serve-web-host.cjs +1790 -0
  257. package/dist/metrics/central-metrics.js +2 -0
  258. package/dist/observability/config.js +1 -0
  259. package/dist/observability/context.js +1 -0
  260. package/dist/observability/failure-snapshot.js +2 -0
  261. package/dist/observability/recent.js +2 -0
  262. package/dist/payloads/read-stdin-json.js +1 -0
  263. package/dist/runtime/bundled-node.js +1 -0
  264. package/dist/runtime/input-source.js +1 -0
  265. package/dist/runtime/managed-runtime-provisioning.js +1 -0
  266. package/dist/runtime/run-command.js +1 -0
  267. package/dist/selectors/parse-entities.js +1 -0
  268. package/dist/session/client.js +1 -0
  269. package/dist/session/paths.js +1 -0
  270. package/dist/session/server.js +6 -0
  271. package/dist/shared/agent-text.js +1 -0
  272. package/dist/shared/diagnostic-catalog.js +1 -0
  273. package/dist/shared/diagnostics.js +1 -0
  274. package/dist/shared/errors.js +28 -0
  275. package/dist/shared/event-loop.js +1 -0
  276. package/dist/shared/hints.js +1 -0
  277. package/dist/shared/metrics.js +1 -0
  278. package/dist/shared/operations.js +1 -0
  279. package/dist/shared/presentation.js +4 -0
  280. package/dist/shared/protocol.js +1 -0
  281. package/dist/shared/routes.js +1 -0
  282. package/dist/shared/stdout.js +2 -0
  283. package/dist/shared/types.js +1 -0
  284. package/dist/tracing/config.js +2 -0
  285. package/dist/tracing/trace.js +3 -0
  286. package/extension/vscode-refactor-bridge-extension.vsix +0 -0
  287. package/package.json +39 -0
  288. package/runtimes/launcher/win-x64/aib.exe +0 -0
  289. package/scripts/install-windows-launcher.cjs +58 -0
  290. package/scripts/postinstall.cjs +28 -0
  291. package/scripts/provision-runtime.cjs +299 -0
@@ -0,0 +1,51 @@
1
+ # Module Plan
2
+
3
+ Modes: preview/apply or execute.
4
+ Use execute for routine changes.
5
+ Use preview/apply when learning a mutation command or inspecting a large multi-step request before writing files.
6
+
7
+ If a name is ambiguous, use selectors.
8
+ Run help selectors to refresh selector syntax.
9
+
10
+ modulePlan is for splitting large files into smaller modules.
11
+ Use it when a large file should be refactored into several target files.
12
+
13
+ modulePlan orchestrates semantic moves and updates affected references/imports.
14
+
15
+ Use +expectEmpty when your modulePlan intent is to move all declarations out of the source file.
16
+ It does not change the move behavior; it only asks output to report remaining source declarations if any remain.
17
+ Use it only when remaining declarations would mean the split did not match your intent.
18
+ Do not use it for partial extractions.
19
+
20
+ Plan:
21
+ modulePlan preview --stdin
22
+ modulePlan execute --stdin
23
+ modulePlan apply <planId>
24
+
25
+ Use preview/apply when you want to inspect the plan before writing files.
26
+ Use execute when you want to preview and apply immediately.
27
+
28
+ Split one large source file into several targets:
29
+ Run:
30
+ aib modulePlan execute --stdin
31
+
32
+ Input:
33
+ @source src/large-service.ts +expectEmpty
34
+ module src/large-service.types.ts: ServiceOptions ServiceMode
35
+ module src/large-service.core.ts: LargeService createLargeService
36
+
37
+ How inheritance works above:
38
+ @source sets the source file once.
39
+ +expectEmpty says no declarations should remain in the source after the plan.
40
+ Each module line declares one target and the entities that should move there.
41
+
42
+ modulePlan is better than many separate move requests when one large source file should be split into several target files.
43
+
44
+ Preferred DSL fields:
45
+ @source file being split
46
+ module target group
47
+ target output file after module
48
+ entities symbols listed after the colon
49
+
50
+ Target files are created when needed.
51
+ The order in the request describes intent; rely on TS/IDE refactors for reference and import updates.
@@ -0,0 +1,37 @@
1
+ # Move
2
+
3
+ Modes: preview/apply or execute.
4
+ Use execute for routine changes.
5
+ Use preview/apply when learning a mutation command or inspecting a large multi-step request before writing files.
6
+
7
+ If a name is ambiguous, use selectors.
8
+ Run help selectors to refresh selector syntax.
9
+
10
+ Move transfers one or more symbols from one file to another.
11
+ Move is semantic; it moves supported declarations and updates affected imports/references.
12
+ Use it for focused extraction into a single target file.
13
+ For large file splitting across several target files, use modulePlan.
14
+
15
+ Move to file:
16
+ move toFile preview --stdin
17
+ move toFile execute --stdin
18
+ move toFile apply <previewId>
19
+
20
+ Use preview/apply when you want to inspect the planned change before writing files.
21
+ Use execute when you want to write immediately.
22
+
23
+ Move several entities into one target:
24
+ Run:
25
+ aib move toFile execute --stdin
26
+
27
+ Input:
28
+ @source src/service.ts
29
+ move src/service.helpers.ts: oldHelper OtherHelper
30
+
31
+ Move creates the target file when needed.
32
+ The target can already exist.
33
+
34
+ The request means:
35
+ take entities from sourceFile and move them into targetFile.
36
+
37
+ Use refactor batch when the same workflow needs both rename and move steps.
@@ -0,0 +1,47 @@
1
+ # Mutation
2
+
3
+ Mutation commands change code through TS/IDE refactors.
4
+ Successful mutations update affected references and imports.
5
+
6
+ After a successful mutation, do not manually patch the same imports unless aib reports a follow-up or checks show a real issue.
7
+
8
+ AIB mutations are designed to reduce manual checking.
9
+ Your job is to express the intent in DSL.
10
+ AIB's job is to convert that intent into code changes.
11
+
12
+ Do not read all changed files just because a mutation touched them.
13
+ That defeats the purpose of using AIB for mechanical refactors.
14
+
15
+ If the command succeeds, the requested mechanical change was applied.
16
+ After failure or partial success, use the output to decide the next request.
17
+
18
+ When running mutation commands, set the harness timeout to 3 minutes.
19
+ If the harness stops waiting before final output appears, recover with:
20
+
21
+ aib execution status last
22
+
23
+ Modes:
24
+ preview inspect planned edits, then apply by id
25
+ apply write a previewed change
26
+ execute write immediately
27
+
28
+ Use execute for routine rename/move/modulePlan requests.
29
+
30
+ Use preview/apply when you are learning a mutation command, or when one request contains a large multi-step change that you want to inspect before writing files.
31
+ Typical examples: a huge modulePlan or refactor batch.
32
+
33
+ preview/apply uses more tool calls and more output tokens.
34
+ preview validates input and planned edits, but writing files can still hit a TS/IDE refactor error.
35
+ execute writes immediately and reports what changed.
36
+
37
+ If a mutation cannot be completed, aib reports the failed part.
38
+
39
+ Prefer batch DSL for related mutations.
40
+ One request can describe several related changes.
41
+
42
+ When a batch mutation partly fails, split the next request by failure type.
43
+
44
+ If the failure is wrong input, fix the selector/entity/file and run the corrected remaining intent.
45
+ If TS/IDE cannot apply one part of the batch, do not treat the whole intent as failed.
46
+ Run the next request without the failed part and let aib report any later failures.
47
+ Then decide whether failed parts need smaller requests or manual fallback.
@@ -0,0 +1,178 @@
1
+ # Working Patterns
2
+
3
+ Use aib before broad file reads when the question is about TS/JS structure, references, dependencies, or focused code.
4
+ Use normal text search when the question is just text.
5
+
6
+ For a first pass in a new codebase, map directories before reading files:
7
+
8
+ tree src depth=5 +onlyDirs limit=200
9
+
10
+ Start compact for broad scans.
11
+ Use summary, locations, or local graph views first when output could be large.
12
+ Expand to code or wider graph views only for the parts that matter now.
13
+ If output hides data and shows `view: aib:res_<id>`, use `aib view ...` to fetch only the hidden part instead of repeating the original request.
14
+
15
+ Compact output is a starting point, not a substitute for needed code.
16
+ Fetch exact code when correctness depends on implementation details.
17
+
18
+ Use prefs when the current phase repeats the same output shape.
19
+ Turn details off when they stop helping.
20
+ Turn them back on when they matter.
21
+
22
+ Use @file only when several following operations share the same file.
23
+ For independent one-off file requests, pass the path directly:
24
+ file @svc/a.ts
25
+ code @svc/b.ts ServiceB
26
+
27
+ AIB mutations are designed to reduce manual checking.
28
+ Your job is to express the intent in DSL.
29
+ AIB's job is to convert that intent into code changes.
30
+
31
+ Do not read all changed files just because a mutation touched them.
32
+ That defeats the purpose of using AIB for mechanical refactors.
33
+
34
+ If the command succeeds, the requested mechanical change was applied.
35
+ After failure or partial success, use the output to decide the next request.
36
+
37
+ For mutation commands, set the shell/tool harness timeout to 3 minutes.
38
+
39
+ If a mutation command times out or returns no final output, use:
40
+
41
+ aib execution status last
42
+
43
+ This is an escape hatch for recovering the latest mutation status/result.
44
+
45
+ Before repeated mutation work, check aib config:
46
+
47
+ aib config
48
+
49
+ Set pathAliases for repeated request paths.
50
+ Set importRules so move/modulePlan create imports in the project style.
51
+
52
+ This avoids repeating long paths in requests and avoids manual import cleanup after mutations.
53
+ Do this before large move/modulePlan work, not after cleanup becomes repetitive.
54
+
55
+ Example aib.json config:
56
+
57
+ {
58
+ "pathAliases": {
59
+ "svc": "src/services",
60
+ "cli": "packages/cli/src",
61
+ "ext": "packages/extension/src"
62
+ },
63
+ "importRules": [
64
+ {
65
+ "scope": ".",
66
+ "specifier": "shortest",
67
+ "ending": "auto",
68
+ "builtin": "bare",
69
+ "unusedImports": "remove"
70
+ }
71
+ ],
72
+ "importNormalize": [
73
+ {
74
+ "scope": "src",
75
+ "to": "shortestAlias",
76
+ "exclude": ["src/generated"]
77
+ }
78
+ ],
79
+ "inspect.graph.exclude": [
80
+ "**/* copy.ts"
81
+ ]
82
+ }
83
+
84
+ pathAliases define short request aliases for paths agents repeat in aib commands.
85
+ Use them to reduce input tokens for repeated inspect and mutation work.
86
+
87
+ Aliases are for aib request paths. They do not change TypeScript imports by themselves.
88
+ For import style after mutations, use importRules.
89
+
90
+ importRules control imports created or expanded by move/modulePlan mutation cleanup.
91
+ They do not rewrite the whole project.
92
+
93
+ AIB starts from IDE/TS import preferences.
94
+ For mutation cleanup, matching importRules in aib.json take priority.
95
+
96
+ Do not assume IDE/TS defaults match the repo style.
97
+ Set importRules before large move/modulePlan work so imports do not need manual cleanup.
98
+
99
+ Fields:
100
+ scope repo-relative file or directory scope; most specific scope wins
101
+ specifier relative|shortest|project-relative|non-relative
102
+ ending auto|minimal|index|js
103
+ builtin node|bare
104
+ unusedImports remove|preserve
105
+
106
+ Defaults:
107
+ specifier omitted IDE/TS decides
108
+ ending omitted IDE/TS decides
109
+ builtin omitted keep TS/project builtin style
110
+ unusedImports omitted keep unused imports
111
+
112
+ specifier:
113
+ relative best for local relative imports
114
+ shortest best for shortest valid alias/path output
115
+ project-relative best for root-relative project imports
116
+ non-relative best for package or alias imports
117
+
118
+ ending:
119
+ minimal best for extensionless TS imports
120
+ js best for ESM-style TS projects that require .js
121
+ auto leaves the decision to TypeScript
122
+ index best for explicit index import style
123
+
124
+ builtin:
125
+ node path -> node:path; best for explicit Node builtin imports
126
+ bare node:path -> path; best for bare Node builtin imports
127
+ omit field keeps TypeScript/project output; add builtin if agents keep fixing this manually
128
+
129
+ unusedImports:
130
+ remove clean unused imports in mutation-touched files
131
+ preserve keep unused imports
132
+ omit same as preserve
133
+
134
+ Mutation-touched files are files where TS produced edits: source/target files and any reference/update files TS changed.
135
+ Recommended value: remove
136
+
137
+ importNormalize defines reusable defaults for aib imports normalize.
138
+ Use it when the same normalize request would otherwise be repeated.
139
+
140
+ It affects explicit import normalize commands only.
141
+ It does not run automatically during move/modulePlan; use importRules for mutation-time cleanup.
142
+
143
+ Fields:
144
+ scope repo-relative file or directory scope; most specific scope wins
145
+ to relative|alias|shortestAlias
146
+ preferAlias tsconfig paths pattern used when to=alias
147
+ exclude files, directories, or glob-like patterns to skip
148
+
149
+ to:
150
+ relative rewrite resolved local imports to relative paths
151
+ alias rewrite resolved local imports to a matching tsconfig alias
152
+ shortestAlias rewrite to the shortest valid alias specifier
153
+
154
+ preferAlias:
155
+ @shared/* prefer one alias pattern when several aliases can resolve the same file
156
+
157
+ inspect.graph.exclude skips files before graph builds the model.
158
+ Use it for generated files, backups, local copies, or other paths that make graph output noisy.
159
+
160
+ Excluded files do not affect graph counts, hubs, entrypoints, leaves, edges, imports, importedBy, or saved graph files.
161
+
162
+ Leave feedback while working.
163
+
164
+ aib is built for agents. Agent feedback is the main signal for improving output, docs, mutations, and token efficiency.
165
+
166
+ Use feedback when something is wrong, unclear, noisy, or could be more efficient.
167
+
168
+ Format:
169
+ feedback "kind | message"
170
+ feedback "kind | topic | message"
171
+
172
+ Kinds:
173
+ bug, confusion, friction, idea, other
174
+
175
+ Topic is optional. Choose any short topic that helps classify the feedback.
176
+
177
+ Example:
178
+ feedback "friction | imports | normalize required manual cleanup"
@@ -0,0 +1,40 @@
1
+ # Prefs
2
+
3
+ Prefs change defaults for the active session.
4
+ Use them when you want repeated CLI behavior without repeating request fields.
5
+
6
+ Set prefs:
7
+ session prefs set <name> <value> [<name> <value>...]
8
+
9
+ Example:
10
+ session prefs set inspect.graph.hubs false inspect.graph.leaves false
11
+
12
+ Show prefs:
13
+ session prefs get [prefix] [--all]
14
+
15
+ By default, get shows session overrides.
16
+ --all includes defaults.
17
+ prefix filters keys.
18
+
19
+ boolean = true|false
20
+ N = integer
21
+
22
+ Available prefs:
23
+ inspect.code.maxNonEmptyLines N
24
+ inspect.usages.maxLocations N
25
+ inspect.usages.maxCodeBlocks N
26
+ inspect.members.maxItems N
27
+ inspect.members.all boolean
28
+ inspect.graph.hubs boolean
29
+ inspect.graph.entrypoints boolean
30
+ inspect.graph.leaves boolean
31
+ inspect.graph.edges boolean
32
+ inspect.graph.symbols boolean
33
+ inspect.graph.symbolUsage boolean
34
+
35
+ Use prefs to reduce repeated request fields and avoid unnecessary output.
36
+
37
+ If graph output is too noisy:
38
+ session prefs set inspect.graph.hubs false inspect.graph.leaves false
39
+
40
+ Change prefs while working. Turn details back on when you need them.
@@ -0,0 +1,33 @@
1
+ # Quick Read
2
+
3
+ Use qr to read arbitrary text files with compact, cross-platform line windows.
4
+ qr supports AIB path aliases.
5
+
6
+ qr is not a replacement for inspect.
7
+ Use it as a token-efficient way to read text data when semantic inspect is not needed.
8
+
9
+ Controls:
10
+ -h N head; first N lines
11
+ -t N tail; last N lines
12
+ -o N offset; starting line, 1-based
13
+ -l N limit; line count for offset reads
14
+ -a all; whole file
15
+
16
+ If no window is provided, qr uses -h 80.
17
+ If -a is present, it wins over other window flags.
18
+
19
+ Run:
20
+ aib qr --stdin
21
+
22
+ Input:
23
+ qr @scripts/a.txt h=80
24
+ qr @scripts/b.py o=300 l=50
25
+ qr @scripts/c.md t=120
26
+ qr @logs/app.log all
27
+
28
+ Inline:
29
+ aib qr @scripts/a.txt -h 80
30
+ aib qr @scripts/b.py -o 300 -l 50
31
+ aib qr @logs/app.log -a
32
+
33
+ Use stdin for several reads.
@@ -0,0 +1,44 @@
1
+ # Refactor Batch
2
+
3
+ Modes: preview/apply or execute.
4
+ Use execute for routine changes.
5
+ Use preview/apply when learning a mutation command or inspecting a large multi-step request before writing files.
6
+
7
+ If a name is ambiguous, use selectors.
8
+ Run help selectors to refresh selector syntax.
9
+
10
+ refactor batch runs related mutation requests together.
11
+ Use it when one workflow needs ordered steps, such as rename plus move.
12
+
13
+ Use modulePlan when the main intent is only to split one large file into target modules.
14
+ Use refactor batch when the split also includes coordinated renames or mixed mutation steps.
15
+
16
+ refactor batch preview --stdin
17
+ refactor batch execute --stdin
18
+ refactor batch apply --stdin
19
+
20
+ Use preview/apply when you want to inspect a large mixed plan before writing files.
21
+ Use execute when you want to write immediately.
22
+
23
+ Example: rename and move in one request
24
+
25
+ Run:
26
+ aib refactor batch execute --stdin
27
+
28
+ Input:
29
+ @source src/service.ts
30
+ rename oldHelper->newHelper oldType->newType
31
+ move src/service.helpers.ts: newHelper
32
+ move src/service.types.ts: newType
33
+
34
+ This keeps related mutation intent together:
35
+ rename first, then move the renamed symbols.
36
+
37
+ Use top-level sourceFile when requests operate on the same file.
38
+ Override file/sourceFile inside a request when one request targets another file.
39
+
40
+ Supported request kinds:
41
+ rename
42
+ move
43
+
44
+ Use separate command help when the workflow only needs one mutation kind.
@@ -0,0 +1,39 @@
1
+ # Rename
2
+
3
+ Modes: preview/apply or execute.
4
+ Use execute for routine changes.
5
+ Use preview/apply when learning a mutation command or inspecting a large multi-step request before writing files.
6
+
7
+ If a name is ambiguous, use selectors.
8
+ Run help selectors to refresh selector syntax.
9
+
10
+ Rename is for semantic symbol renames.
11
+ It follows TypeScript references.
12
+ It is not plain-text replacement.
13
+
14
+ Single rename:
15
+ rename preview <file> <entity> <newName>
16
+ rename execute <file> <entity> <newName>
17
+ rename apply <previewId>
18
+
19
+ Use preview/apply when you want to inspect the planned change before writing files.
20
+ Use execute when you want to write immediately.
21
+
22
+ Run:
23
+ aib rename execute --stdin
24
+
25
+ Input:
26
+ @file src/service.ts
27
+ rename oldName->newName OldService->NewService
28
+
29
+ Rename can use plain names or selectors.
30
+ For methods and properties, use parent-qualified syntax when needed:
31
+ rename Service.oldMethod->newMethod
32
+
33
+ Single rename:
34
+ rename preview <file> <entity> <newName>
35
+ rename execute <file> <entity> <newName>
36
+ rename apply <previewId>
37
+
38
+ Use preview/apply when you want to inspect the planned change before writing files.
39
+ Use execute when you want to write immediately.
@@ -0,0 +1,23 @@
1
+ # Selectors
2
+
3
+ Selectors identify symbols when names are ambiguous.
4
+ Use plain names when they are unambiguous.
5
+ Use selectors when aib reports ambiguity or when different symbol kinds share a name.
6
+
7
+ Example:
8
+ type WsOptions
9
+ class WsOptions
10
+
11
+ If aib needs the exact entity, use:
12
+ t-WsOptions
13
+ c-WsOptions
14
+
15
+ Selectors list:
16
+ f-name function
17
+ c-Name class
18
+ i-Name interface
19
+ t-Name type
20
+ v-name variable
21
+ e-Name enum
22
+ m-name method, usually with parent
23
+ p-name property, usually with parent
@@ -0,0 +1,61 @@
1
+ # Session
2
+
3
+ Start by creating or selecting your session.
4
+ Create it once, then reuse it.
5
+ Do not create a new session for every command or subtask.
6
+
7
+ Session stores saved artifacts, aliases, and prefs.
8
+
9
+ Prefer short session names:
10
+ aa, tr, qa, a2
11
+
12
+ Create:
13
+ session init --name <name>
14
+
15
+ Follow the command output.
16
+ If aib says multiple sessions exist, use the session you created explicitly:
17
+ aib -s <name> <command>
18
+
19
+ Or bind this shell:
20
+ AIB=<name>
21
+
22
+ If you want to prune session data, use:
23
+ session clear
24
+
25
+ After clear, keep using the same session.
26
+
27
+ Check:
28
+ session status
29
+
30
+ Handles:
31
+ Commands may return handles for hidden output or reusable indexes.
32
+
33
+ Hidden output:
34
+ aib:res_<id>
35
+
36
+ Use view to fetch only the hidden part without repeating the original request:
37
+ aib view aib:res_<id>
38
+
39
+ Reusable indexes:
40
+ aib:usages:<name>
41
+ aib:graph:<name>
42
+
43
+ Usages and graph handles store computed indexes.
44
+ Use them with --from-file to focus or expand the saved result:
45
+
46
+ inspect usages --from-file aib:usages:service-usages --focus createService --detail code
47
+ inspect graph --from-file aib:graph:services-graph --focus src/service.ts
48
+
49
+ Escape hatch for latest mutation status/result:
50
+ aib execution status last
51
+
52
+ Prefs are stored in the session.
53
+ Use prefs when you want repeated CLI behavior without repeating request fields.
54
+
55
+ Set several prefs:
56
+ session prefs set inspect.graph.hubs false inspect.graph.leaves false
57
+
58
+ Show current overrides:
59
+ session prefs get
60
+
61
+ See help prefs for the full list.
@@ -0,0 +1,30 @@
1
+ # View Hidden Output
2
+
3
+ AIB keeps large outputs compact.
4
+ When part of a result is hidden, output may include:
5
+
6
+ view: aib:res_<id>
7
+
8
+ Use view to fetch the hidden part without repeating what you already saw.
9
+
10
+ When a batch has several hidden results of the same kind, output may include:
11
+
12
+ view all code: aib:res_<id>
13
+ view all members: aib:res_<id>
14
+
15
+ A `view all` handle covers hidden parts from all results of that kind.
16
+
17
+ For code views, narrow what you fetch:
18
+ only show only these hidden code entities
19
+ except show all hidden code except these entities
20
+
21
+ Run:
22
+ aib view --stdin
23
+
24
+ Input:
25
+ view aib:res_<id_1> only=[ClassA.{bigA,bigB},bigQ,ClassB.bigB]
26
+ view aib:res_<id_2> except=[ClassC.bigC]
27
+
28
+ Inline:
29
+ aib view aib:res_<id_1> --only bigQ --only "ClassA.{bigA,bigB}"
30
+ aib view aib:res_<id_2> --except ClassB.bigB --except ClassC.bigC