@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.
- package/README.md +578 -0
- package/dist/bin/aib.js +2 -0
- package/dist/bin/cli.js +3 -0
- package/dist/client/http-client.js +1 -0
- package/dist/client/transport-options.js +1 -0
- package/dist/client/websocket-client.js +1 -0
- package/dist/commands/add-missing-imports-preview-cache.js +2 -0
- package/dist/commands/add-missing-imports.js +2 -0
- package/dist/commands/apply-module-plan.js +3 -0
- package/dist/commands/captured-input.js +2 -0
- package/dist/commands/config-command.js +3 -0
- package/dist/commands/diagnostics-command.js +3 -0
- package/dist/commands/doctor.js +1 -0
- package/dist/commands/entity-resolution.js +1 -0
- package/dist/commands/execution-command.js +1 -0
- package/dist/commands/feedback-command.js +3 -0
- package/dist/commands/find-importers.js +1 -0
- package/dist/commands/find-unused-imports.js +1 -0
- package/dist/commands/generate-docs-command.js +6 -0
- package/dist/commands/help-command.js +3 -0
- package/dist/commands/imports-command.js +1 -0
- package/dist/commands/init-skill-usage.js +3 -0
- package/dist/commands/init-workspace.js +3 -0
- package/dist/commands/inspect-cycles.js +5 -0
- package/dist/commands/inspect-format.js +18 -0
- package/dist/commands/inspect-graph.js +9 -0
- package/dist/commands/inspect-imports.js +2 -0
- package/dist/commands/inspect-symbol-query.js +1 -0
- package/dist/commands/inspect-tree.js +5 -0
- package/dist/commands/inspect.js +16 -0
- package/dist/commands/json-file-input.js +1 -0
- package/dist/commands/list-instances.js +1 -0
- package/dist/commands/module-plan-cache.js +2 -0
- package/dist/commands/module-plan-command.js +1 -0
- package/dist/commands/module-plan-timeout.js +1 -0
- package/dist/commands/move-command.js +1 -0
- package/dist/commands/move-preview-cache.js +2 -0
- package/dist/commands/move-to-file.js +2 -0
- package/dist/commands/mutation-execution-cache.js +3 -0
- package/dist/commands/normalize-imports.js +4 -0
- package/dist/commands/observability-command.js +3 -0
- package/dist/commands/ping.js +1 -0
- package/dist/commands/print-config.js +1 -0
- package/dist/commands/quick-read.js +11 -0
- package/dist/commands/refactor-batch-builder.js +1 -0
- package/dist/commands/refactor-batch-execution-cache.js +1 -0
- package/dist/commands/refactor-batch-preview-cache.js +2 -0
- package/dist/commands/refactor-batch.js +4 -0
- package/dist/commands/refactor-command.js +1 -0
- package/dist/commands/rename-command.js +1 -0
- package/dist/commands/rename-entities.js +4 -0
- package/dist/commands/rename-execution-cache.js +1 -0
- package/dist/commands/rename-input.js +1 -0
- package/dist/commands/rename-preview-cache.js +2 -0
- package/dist/commands/result-view.js +6 -0
- package/dist/commands/runtime-command.js +4 -0
- package/dist/commands/runtime-info.js +1 -0
- package/dist/commands/session-workspace.js +31 -0
- package/dist/commands/shared.js +1 -0
- package/dist/commands/sync-command.js +2 -0
- package/dist/commands/validate-module-plan.js +2 -0
- package/dist/commands/workspace-cache.js +1 -0
- package/dist/compatibility/policy.js +1 -0
- package/dist/config/auto-start-ide.js +1 -0
- package/dist/config/defaults.js +1 -0
- package/dist/config/env-vars.js +1 -0
- package/dist/config/glob-match.js +1 -0
- package/dist/config/import-rules.js +1 -0
- package/dist/config/local-config.js +3 -0
- package/dist/config/mutation-comments.js +1 -0
- package/dist/config/path-aliases.js +1 -0
- package/dist/config/path-display.js +1 -0
- package/dist/config/product-storage.js +1 -0
- package/dist/config/resolve-command-alias.js +1 -0
- package/dist/config/resolve.js +1 -0
- package/dist/config/workspace-root.js +3 -0
- package/dist/config/workspace-state.js +1 -0
- package/dist/content/content-bundle.js +1 -0
- package/dist/diagnostics/module-plan-timeline.js +2 -0
- package/dist/diagnostics/readiness-text.js +8 -0
- package/dist/discovery/registry.js +1 -0
- package/dist/discovery/select-instance.js +1 -0
- package/dist/dsl/aib-dsl.js +1 -0
- package/dist/help/bootstrap.md +924 -0
- package/dist/help/diagnostics/doctor.json +70 -0
- package/dist/help/docs/basics.md +14 -0
- package/dist/help/docs/dsl.md +25 -0
- package/dist/help/docs/help-format.md +12 -0
- package/dist/help/docs/imports.normalize.md +36 -0
- package/dist/help/docs/inspect.code.md +29 -0
- package/dist/help/docs/inspect.deps.md +32 -0
- package/dist/help/docs/inspect.duplicates.md +72 -0
- package/dist/help/docs/inspect.exports.md +34 -0
- package/dist/help/docs/inspect.file.md +32 -0
- package/dist/help/docs/inspect.graph.md +112 -0
- package/dist/help/docs/inspect.imports.md +15 -0
- package/dist/help/docs/inspect.md +71 -0
- package/dist/help/docs/inspect.members.md +24 -0
- package/dist/help/docs/inspect.tree.md +30 -0
- package/dist/help/docs/inspect.usages.md +48 -0
- package/dist/help/docs/modulePlan.md +51 -0
- package/dist/help/docs/move.md +37 -0
- package/dist/help/docs/mutation.md +47 -0
- package/dist/help/docs/patterns.md +178 -0
- package/dist/help/docs/prefs.md +40 -0
- package/dist/help/docs/qr.md +33 -0
- package/dist/help/docs/refactor.batch.md +44 -0
- package/dist/help/docs/rename.md +39 -0
- package/dist/help/docs/selectors.md +23 -0
- package/dist/help/docs/session.md +61 -0
- package/dist/help/docs/view.md +30 -0
- package/dist/help/dsl/bootstrap.md +924 -0
- package/dist/help/dsl/docs/basics.md +14 -0
- package/dist/help/dsl/docs/dsl.md +25 -0
- package/dist/help/dsl/docs/help-format.md +12 -0
- package/dist/help/dsl/docs/imports.normalize.md +36 -0
- package/dist/help/dsl/docs/inspect.code.md +29 -0
- package/dist/help/dsl/docs/inspect.deps.md +32 -0
- package/dist/help/dsl/docs/inspect.duplicates.md +72 -0
- package/dist/help/dsl/docs/inspect.exports.md +34 -0
- package/dist/help/dsl/docs/inspect.file.md +32 -0
- package/dist/help/dsl/docs/inspect.graph.md +112 -0
- package/dist/help/dsl/docs/inspect.imports.md +15 -0
- package/dist/help/dsl/docs/inspect.md +71 -0
- package/dist/help/dsl/docs/inspect.members.md +24 -0
- package/dist/help/dsl/docs/inspect.tree.md +30 -0
- package/dist/help/dsl/docs/inspect.usages.md +48 -0
- package/dist/help/dsl/docs/modulePlan.md +51 -0
- package/dist/help/dsl/docs/move.md +37 -0
- package/dist/help/dsl/docs/mutation.md +47 -0
- package/dist/help/dsl/docs/patterns.md +178 -0
- package/dist/help/dsl/docs/prefs.md +40 -0
- package/dist/help/dsl/docs/qr.md +33 -0
- package/dist/help/dsl/docs/refactor.batch.md +44 -0
- package/dist/help/dsl/docs/rename.md +39 -0
- package/dist/help/dsl/docs/selectors.md +23 -0
- package/dist/help/dsl/docs/session.md +61 -0
- package/dist/help/dsl/docs/view.md +30 -0
- package/dist/help/dsl/full.md +924 -0
- package/dist/help/dsl/snippets/agents.md +14 -0
- package/dist/help/dsl/topics/basics.md +12 -0
- package/dist/help/dsl/topics/dsl.md +23 -0
- package/dist/help/dsl/topics/help-format.md +10 -0
- package/dist/help/dsl/topics/imports.normalize.md +34 -0
- package/dist/help/dsl/topics/inspect.code.md +27 -0
- package/dist/help/dsl/topics/inspect.deps.md +30 -0
- package/dist/help/dsl/topics/inspect.duplicates.md +43 -0
- package/dist/help/dsl/topics/inspect.exports.md +32 -0
- package/dist/help/dsl/topics/inspect.file.md +30 -0
- package/dist/help/dsl/topics/inspect.graph.md +110 -0
- package/dist/help/dsl/topics/inspect.imports.md +13 -0
- package/dist/help/dsl/topics/inspect.md +69 -0
- package/dist/help/dsl/topics/inspect.members.md +22 -0
- package/dist/help/dsl/topics/inspect.tree.md +20 -0
- package/dist/help/dsl/topics/inspect.usages.md +46 -0
- package/dist/help/dsl/topics/modulePlan.md +38 -0
- package/dist/help/dsl/topics/move.md +27 -0
- package/dist/help/dsl/topics/mutation.md +45 -0
- package/dist/help/dsl/topics/patterns.md +176 -0
- package/dist/help/dsl/topics/prefs.md +38 -0
- package/dist/help/dsl/topics/qr.md +31 -0
- package/dist/help/dsl/topics/refactor.batch.md +33 -0
- package/dist/help/dsl/topics/rename.md +25 -0
- package/dist/help/dsl/topics/selectors.md +21 -0
- package/dist/help/dsl/topics/session.md +59 -0
- package/dist/help/dsl/topics/view.md +28 -0
- package/dist/help/full.md +924 -0
- package/dist/help/help-meta.json +113 -0
- package/dist/help/index.md +167 -0
- package/dist/help/json/bootstrap.md +1074 -0
- package/dist/help/json/docs/basics.md +15 -0
- package/dist/help/json/docs/dsl.md +25 -0
- package/dist/help/json/docs/help-format.md +12 -0
- package/dist/help/json/docs/imports.normalize.md +47 -0
- package/dist/help/json/docs/inspect.code.md +41 -0
- package/dist/help/json/docs/inspect.deps.md +46 -0
- package/dist/help/json/docs/inspect.duplicates.md +65 -0
- package/dist/help/json/docs/inspect.exports.md +40 -0
- package/dist/help/json/docs/inspect.file.md +38 -0
- package/dist/help/json/docs/inspect.graph.md +139 -0
- package/dist/help/json/docs/inspect.imports.md +15 -0
- package/dist/help/json/docs/inspect.md +87 -0
- package/dist/help/json/docs/inspect.members.md +32 -0
- package/dist/help/json/docs/inspect.tree.md +30 -0
- package/dist/help/json/docs/inspect.usages.md +61 -0
- package/dist/help/json/docs/modulePlan.md +70 -0
- package/dist/help/json/docs/move.md +53 -0
- package/dist/help/json/docs/mutation.md +62 -0
- package/dist/help/json/docs/patterns.md +178 -0
- package/dist/help/json/docs/prefs.md +40 -0
- package/dist/help/json/docs/qr.md +33 -0
- package/dist/help/json/docs/refactor.batch.md +72 -0
- package/dist/help/json/docs/rename.md +47 -0
- package/dist/help/json/docs/selectors.md +23 -0
- package/dist/help/json/docs/session.md +77 -0
- package/dist/help/json/docs/view.md +30 -0
- package/dist/help/json/full.md +1074 -0
- package/dist/help/json/snippets/agents.md +14 -0
- package/dist/help/json/topics/basics.md +13 -0
- package/dist/help/json/topics/dsl.md +23 -0
- package/dist/help/json/topics/help-format.md +10 -0
- package/dist/help/json/topics/imports.normalize.md +45 -0
- package/dist/help/json/topics/inspect.code.md +39 -0
- package/dist/help/json/topics/inspect.deps.md +44 -0
- package/dist/help/json/topics/inspect.duplicates.md +37 -0
- package/dist/help/json/topics/inspect.exports.md +38 -0
- package/dist/help/json/topics/inspect.file.md +36 -0
- package/dist/help/json/topics/inspect.graph.md +137 -0
- package/dist/help/json/topics/inspect.imports.md +13 -0
- package/dist/help/json/topics/inspect.md +85 -0
- package/dist/help/json/topics/inspect.members.md +30 -0
- package/dist/help/json/topics/inspect.tree.md +20 -0
- package/dist/help/json/topics/inspect.usages.md +59 -0
- package/dist/help/json/topics/modulePlan.md +57 -0
- package/dist/help/json/topics/move.md +43 -0
- package/dist/help/json/topics/mutation.md +60 -0
- package/dist/help/json/topics/patterns.md +176 -0
- package/dist/help/json/topics/prefs.md +38 -0
- package/dist/help/json/topics/qr.md +31 -0
- package/dist/help/json/topics/refactor.batch.md +61 -0
- package/dist/help/json/topics/rename.md +42 -0
- package/dist/help/json/topics/selectors.md +21 -0
- package/dist/help/json/topics/session.md +59 -0
- package/dist/help/json/topics/view.md +28 -0
- package/dist/help/snippets/agents.md +14 -0
- package/dist/help/topics/basics.md +12 -0
- package/dist/help/topics/dsl.md +23 -0
- package/dist/help/topics/help-format.md +10 -0
- package/dist/help/topics/imports.normalize.md +34 -0
- package/dist/help/topics/inspect.code.md +27 -0
- package/dist/help/topics/inspect.deps.md +30 -0
- package/dist/help/topics/inspect.duplicates.md +43 -0
- package/dist/help/topics/inspect.exports.md +32 -0
- package/dist/help/topics/inspect.file.md +30 -0
- package/dist/help/topics/inspect.graph.md +110 -0
- package/dist/help/topics/inspect.imports.md +13 -0
- package/dist/help/topics/inspect.md +69 -0
- package/dist/help/topics/inspect.members.md +22 -0
- package/dist/help/topics/inspect.tree.md +20 -0
- package/dist/help/topics/inspect.usages.md +46 -0
- package/dist/help/topics/modulePlan.md +38 -0
- package/dist/help/topics/move.md +27 -0
- package/dist/help/topics/mutation.md +45 -0
- package/dist/help/topics/patterns.md +176 -0
- package/dist/help/topics/prefs.md +38 -0
- package/dist/help/topics/qr.md +31 -0
- package/dist/help/topics/refactor.batch.md +33 -0
- package/dist/help/topics/rename.md +25 -0
- package/dist/help/topics/selectors.md +21 -0
- package/dist/help/topics/session.md +59 -0
- package/dist/help/topics/view.md +28 -0
- package/dist/ide-launch/common.cjs +162 -0
- package/dist/managed-host/extension-vsix-resolver.js +1 -0
- package/dist/managed-host/manage-serve-web-host.cjs +141 -0
- package/dist/managed-host/serve-web-autostart.js +1 -0
- package/dist/managed-host/serve-web-host.cjs +1790 -0
- package/dist/metrics/central-metrics.js +2 -0
- package/dist/observability/config.js +1 -0
- package/dist/observability/context.js +1 -0
- package/dist/observability/failure-snapshot.js +2 -0
- package/dist/observability/recent.js +2 -0
- package/dist/payloads/read-stdin-json.js +1 -0
- package/dist/runtime/bundled-node.js +1 -0
- package/dist/runtime/input-source.js +1 -0
- package/dist/runtime/managed-runtime-provisioning.js +1 -0
- package/dist/runtime/run-command.js +1 -0
- package/dist/selectors/parse-entities.js +1 -0
- package/dist/session/client.js +1 -0
- package/dist/session/paths.js +1 -0
- package/dist/session/server.js +6 -0
- package/dist/shared/agent-text.js +1 -0
- package/dist/shared/diagnostic-catalog.js +1 -0
- package/dist/shared/diagnostics.js +1 -0
- package/dist/shared/errors.js +28 -0
- package/dist/shared/event-loop.js +1 -0
- package/dist/shared/hints.js +1 -0
- package/dist/shared/metrics.js +1 -0
- package/dist/shared/operations.js +1 -0
- package/dist/shared/presentation.js +4 -0
- package/dist/shared/protocol.js +1 -0
- package/dist/shared/routes.js +1 -0
- package/dist/shared/stdout.js +2 -0
- package/dist/shared/types.js +1 -0
- package/dist/tracing/config.js +2 -0
- package/dist/tracing/trace.js +3 -0
- package/extension/vscode-refactor-bridge-extension.vsix +0 -0
- package/package.json +39 -0
- package/runtimes/launcher/win-x64/aib.exe +0 -0
- package/scripts/install-windows-launcher.cjs +58 -0
- package/scripts/postinstall.cjs +28 -0
- package/scripts/provision-runtime.cjs +299 -0
|
@@ -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
|