@ironbee-ai/cli 0.7.3 → 0.8.0

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 (57) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +62 -3
  3. package/dist/clients/claude/index.d.ts +10 -0
  4. package/dist/clients/claude/index.d.ts.map +1 -1
  5. package/dist/clients/claude/index.js +102 -22
  6. package/dist/clients/claude/index.js.map +1 -1
  7. package/dist/clients/cursor/index.d.ts +8 -0
  8. package/dist/clients/cursor/index.d.ts.map +1 -1
  9. package/dist/clients/cursor/index.js +67 -9
  10. package/dist/clients/cursor/index.js.map +1 -1
  11. package/dist/clients/registry.d.ts +35 -6
  12. package/dist/clients/registry.d.ts.map +1 -1
  13. package/dist/clients/registry.js +73 -6
  14. package/dist/clients/registry.js.map +1 -1
  15. package/dist/commands/config.d.ts +79 -0
  16. package/dist/commands/config.d.ts.map +1 -0
  17. package/dist/commands/config.js +558 -0
  18. package/dist/commands/config.js.map +1 -0
  19. package/dist/commands/install.d.ts +14 -0
  20. package/dist/commands/install.d.ts.map +1 -1
  21. package/dist/commands/install.js +122 -16
  22. package/dist/commands/install.js.map +1 -1
  23. package/dist/commands/register.d.ts +24 -0
  24. package/dist/commands/register.d.ts.map +1 -0
  25. package/dist/commands/register.js +67 -0
  26. package/dist/commands/register.js.map +1 -0
  27. package/dist/commands/uninstall.d.ts +18 -0
  28. package/dist/commands/uninstall.d.ts.map +1 -1
  29. package/dist/commands/uninstall.js +160 -16
  30. package/dist/commands/uninstall.js.map +1 -1
  31. package/dist/commands/unregister.d.ts +23 -0
  32. package/dist/commands/unregister.d.ts.map +1 -0
  33. package/dist/commands/unregister.js +67 -0
  34. package/dist/commands/unregister.js.map +1 -0
  35. package/dist/import/claude/discovery.js +4 -4
  36. package/dist/import/claude/discovery.js.map +1 -1
  37. package/dist/import/claude/encoding.d.ts.map +1 -1
  38. package/dist/import/claude/encoding.js +102 -21
  39. package/dist/import/claude/encoding.js.map +1 -1
  40. package/dist/index.js +10 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/lib/config.d.ts.map +1 -1
  43. package/dist/lib/config.js +6 -1
  44. package/dist/lib/config.js.map +1 -1
  45. package/dist/lib/projects-registry.d.ts +102 -0
  46. package/dist/lib/projects-registry.d.ts.map +1 -0
  47. package/dist/lib/projects-registry.js +282 -0
  48. package/dist/lib/projects-registry.js.map +1 -0
  49. package/dist/lib/prompt.d.ts +40 -0
  50. package/dist/lib/prompt.d.ts.map +1 -0
  51. package/dist/lib/prompt.js +101 -0
  52. package/dist/lib/prompt.js.map +1 -0
  53. package/dist/lib/telemetry.d.ts +8 -0
  54. package/dist/lib/telemetry.d.ts.map +1 -1
  55. package/dist/lib/telemetry.js +44 -0
  56. package/dist/lib/telemetry.js.map +1 -1
  57. package/package.json +3 -3
@@ -1,20 +1,49 @@
1
1
  import { IClient } from "./base";
2
+ import { ProjectEntry } from "../lib/projects-registry";
2
3
  /** All registered clients. Add new clients here as they are implemented. */
3
4
  export declare const REGISTERED_CLIENTS: IClient[];
4
5
  export declare function findClient(name: string): IClient | undefined;
5
6
  export declare function detectClients(projectDir: string): IClient[];
6
7
  export declare function clientNames(): string;
7
8
  /**
8
- * Pick which clients a toggle command (enable/disable verification or backend)
9
- * should write to.
9
+ * Pick which clients a single-project command (toggle / config rerender /
10
+ * artifact write) should target.
10
11
  *
11
12
  * - `clientOpt === "all"` → every registered client.
12
13
  * - `clientOpt === <name>` → just that one (throws if unknown).
13
- * - `clientOpt === undefined` → detected clients; falls back to the first
14
- * registered client when nothing is detected (matches `install.ts`).
14
+ * - `clientOpt === undefined` → detected clients; falls back to the
15
+ * first registered client when nothing is detected.
15
16
  *
16
- * Same shape as `install.ts`'s client-selection block, lifted here so toggle
17
- * commands stay in sync.
17
+ * **Note**: `install.ts`'s single-project path no longer uses this fallback
18
+ * verbatim when no client is detected and stdin is a TTY it prompts the
19
+ * user instead, falling back here only on non-TTY (CI). Toggle / rerender
20
+ * paths stick with the unconditional fallback because they're called
21
+ * mid-flow with no chance to prompt.
18
22
  */
19
23
  export declare function resolveTargetClients(projectDir: string, clientOpt?: string): IClient[];
24
+ /**
25
+ * Active = the project dir exists, is a directory, AND
26
+ * (a) at least one of the **currently registered clients** detects
27
+ * itself in the project (disk state wins over the inventory's
28
+ * historical `entry.clients` — if a user deleted `.claude/` and
29
+ * added `.cursor/`, the project is still active), OR
30
+ * (b) the inventory entry references a client name we don't recognize
31
+ * (forward-compat: an older CLI version shouldn't hide projects
32
+ * registered by a newer version that added clients we don't ship).
33
+ *
34
+ * `entry.clients` is preserved as audit-only metadata; install /
35
+ * `install --all` decisions follow detection (`detectClients`).
36
+ *
37
+ * Lives in `clients/registry.ts` (not `lib/projects-registry.ts`) because
38
+ * it depends on per-client detection — `lib/` must not import `clients/`.
39
+ */
40
+ export declare function isProjectActive(entry: ProjectEntry): boolean;
41
+ /**
42
+ * Return registered projects whose path still resolves AND at least one
43
+ * of their registered clients still detects itself. Pure read — does NOT
44
+ * mutate the registry. Stale entries are filtered out on every call;
45
+ * users who want to permanently remove them can run
46
+ * `ironbee unregister -p <path>`.
47
+ */
48
+ export declare function listActiveProjects(): ProjectEntry[];
20
49
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/clients/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAIjC,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,EAAE,OAAO,EAKvC,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE,CAE3D;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAgBtF"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/clients/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGjC,OAAO,EAAgB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEtE,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,EAAE,OAAO,EAKvC,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE,CAE3D;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAgBtF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAS5D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,EAAE,CAEnD"}
@@ -5,8 +5,12 @@ exports.findClient = findClient;
5
5
  exports.detectClients = detectClients;
6
6
  exports.clientNames = clientNames;
7
7
  exports.resolveTargetClients = resolveTargetClients;
8
+ exports.isProjectActive = isProjectActive;
9
+ exports.listActiveProjects = listActiveProjects;
10
+ const fs_1 = require("fs");
8
11
  const claude_1 = require("./claude");
9
12
  const cursor_1 = require("./cursor");
13
+ const projects_registry_1 = require("../lib/projects-registry");
10
14
  /** All registered clients. Add new clients here as they are implemented. */
11
15
  exports.REGISTERED_CLIENTS = [
12
16
  new claude_1.ClaudeClient(),
@@ -24,16 +28,19 @@ function clientNames() {
24
28
  return exports.REGISTERED_CLIENTS.map((c) => c.name).join(", ");
25
29
  }
26
30
  /**
27
- * Pick which clients a toggle command (enable/disable verification or backend)
28
- * should write to.
31
+ * Pick which clients a single-project command (toggle / config rerender /
32
+ * artifact write) should target.
29
33
  *
30
34
  * - `clientOpt === "all"` → every registered client.
31
35
  * - `clientOpt === <name>` → just that one (throws if unknown).
32
- * - `clientOpt === undefined` → detected clients; falls back to the first
33
- * registered client when nothing is detected (matches `install.ts`).
36
+ * - `clientOpt === undefined` → detected clients; falls back to the
37
+ * first registered client when nothing is detected.
34
38
  *
35
- * Same shape as `install.ts`'s client-selection block, lifted here so toggle
36
- * commands stay in sync.
39
+ * **Note**: `install.ts`'s single-project path no longer uses this fallback
40
+ * verbatim when no client is detected and stdin is a TTY it prompts the
41
+ * user instead, falling back here only on non-TTY (CI). Toggle / rerender
42
+ * paths stick with the unconditional fallback because they're called
43
+ * mid-flow with no chance to prompt.
37
44
  */
38
45
  function resolveTargetClients(projectDir, clientOpt) {
39
46
  if (clientOpt === "all") {
@@ -52,4 +59,64 @@ function resolveTargetClients(projectDir, clientOpt) {
52
59
  }
53
60
  return [exports.REGISTERED_CLIENTS[0]];
54
61
  }
62
+ /**
63
+ * Active = the project dir exists, is a directory, AND
64
+ * (a) at least one of the **currently registered clients** detects
65
+ * itself in the project (disk state wins over the inventory's
66
+ * historical `entry.clients` — if a user deleted `.claude/` and
67
+ * added `.cursor/`, the project is still active), OR
68
+ * (b) the inventory entry references a client name we don't recognize
69
+ * (forward-compat: an older CLI version shouldn't hide projects
70
+ * registered by a newer version that added clients we don't ship).
71
+ *
72
+ * `entry.clients` is preserved as audit-only metadata; install /
73
+ * `install --all` decisions follow detection (`detectClients`).
74
+ *
75
+ * Lives in `clients/registry.ts` (not `lib/projects-registry.ts`) because
76
+ * it depends on per-client detection — `lib/` must not import `clients/`.
77
+ */
78
+ function isProjectActive(entry) {
79
+ if (!safeExists(entry.path) || !safeIsDir(entry.path)) {
80
+ return false;
81
+ }
82
+ if (exports.REGISTERED_CLIENTS.some((c) => safeDetect(c, entry.path))) {
83
+ return true;
84
+ }
85
+ // Forward-compat: don't prune what we can't recognize.
86
+ return entry.clients.some((name) => findClient(name) === undefined);
87
+ }
88
+ /**
89
+ * Return registered projects whose path still resolves AND at least one
90
+ * of their registered clients still detects itself. Pure read — does NOT
91
+ * mutate the registry. Stale entries are filtered out on every call;
92
+ * users who want to permanently remove them can run
93
+ * `ironbee unregister -p <path>`.
94
+ */
95
+ function listActiveProjects() {
96
+ return (0, projects_registry_1.listProjects)().filter(isProjectActive);
97
+ }
98
+ function safeDetect(client, path) {
99
+ try {
100
+ return client.detect(path);
101
+ }
102
+ catch {
103
+ return false;
104
+ }
105
+ }
106
+ function safeExists(path) {
107
+ try {
108
+ return (0, fs_1.existsSync)(path);
109
+ }
110
+ catch {
111
+ return false;
112
+ }
113
+ }
114
+ function safeIsDir(path) {
115
+ try {
116
+ return (0, fs_1.statSync)(path).isDirectory();
117
+ }
118
+ catch {
119
+ return false;
120
+ }
121
+ }
55
122
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/clients/registry.ts"],"names":[],"mappings":";;;AAYA,gCAEC;AAED,sCAEC;AAED,kCAEC;AAcD,oDAgBC;AAnDD,qCAAwC;AACxC,qCAAwC;AAExC,4EAA4E;AAC/D,QAAA,kBAAkB,GAAc;IACzC,IAAI,qBAAY,EAAE;IAClB,IAAI,qBAAY,EAAE;IAClB,wEAAwE;IACxE,qEAAqE;CACxE,CAAC;AAEF,SAAgB,UAAU,CAAC,IAAY;IACnC,OAAO,0BAAkB,CAAC,IAAI,CAAC,CAAC,CAAU,EAAW,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,SAAgB,aAAa,CAAC,UAAkB;IAC5C,OAAO,0BAAkB,CAAC,MAAM,CAAC,CAAC,CAAU,EAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,SAAgB,WAAW;IACvB,OAAO,0BAAkB,CAAC,GAAG,CAAC,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,oBAAoB,CAAC,UAAkB,EAAE,SAAkB;IACvE,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,0BAAkB,CAAC;IAC9B,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAwB,UAAU,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,oBAAoB,SAAS,iBAAiB,WAAW,EAAE,GAAG,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAc,aAAa,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,0BAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/clients/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * `ironbee config` — generic config reader / writer for project & global
3
+ * `<root>/.ironbee/config.json` files.
4
+ *
5
+ * Subcommands:
6
+ * - `config get <key>` — print the value at a dotted path. Default reads
7
+ * the merged effective value (global + project);
8
+ * `--global` / `--project` narrow to one source.
9
+ * - `config set <key> <value>` — write a value. Smart re-render: when the
10
+ * top-level key affects installed client artifacts
11
+ * (hooks, MCP servers, skill/rule md, permissions),
12
+ * the command runs `client.install(projectDir, mergedConfig)`
13
+ * BEFORE persisting the new config to disk so a
14
+ * failed artifact write leaves config in its old
15
+ * state (artifacts-before-config ordering, same as
16
+ * `applyVerificationToggle`).
17
+ * - `config unset <key>` — remove a key. Same rerender rules as `set`.
18
+ * - `config list` — print the whole config (merged / global / project).
19
+ * - `config path` — print the on-disk path of the targeted config file.
20
+ *
21
+ * Type coercion for `set`: tries `JSON.parse(value)` first (so `true`,
22
+ * `false`, `42`, `null`, `[…]`, `{…}` come through as their JSON types).
23
+ * Falls back to the raw string when JSON parse fails, which lets URLs,
24
+ * filesystem paths, and other non-JSON inputs pass through verbatim
25
+ * without quoting (`config set collector.url https://…`). `--json` forces
26
+ * strict JSON parsing — useful when the input would otherwise be
27
+ * misinterpreted (e.g. a string that happens to look like a number).
28
+ *
29
+ * Artifact-affecting top-level keys (the `ARTIFACT_AFFECTING_TOP_KEYS`
30
+ * registry below) are: `verification`, `collector`, `browser`, `backend`,
31
+ * `browserDevTools`, `nodeDevTools`. Changing anything else (e.g.
32
+ * `maxRetries`, `import.concurrency`, `recording`, `jobQueue`, `analytics`)
33
+ * is a pure config flip — runtime hooks read it on next session, no
34
+ * artifact regeneration needed.
35
+ */
36
+ import { Command } from "commander";
37
+ export interface SetOpts {
38
+ projectDir?: string;
39
+ global?: boolean;
40
+ client?: string;
41
+ rerender?: boolean;
42
+ json?: boolean;
43
+ /**
44
+ * Decision for the post-write "apply to other registered projects"
45
+ * prompt:
46
+ * - `true` → apply everywhere, no prompt (CLI: `--apply-all`)
47
+ * - `false` → skip everywhere, no prompt (CLI: `--no-apply-all`)
48
+ * - `undefined` → prompt on TTY; skip with hint on non-TTY
49
+ */
50
+ applyAll?: boolean;
51
+ }
52
+ export declare function runSet(key: string, rawValue: string, opts: SetOpts): Promise<void>;
53
+ export interface UnsetOpts {
54
+ projectDir?: string;
55
+ global?: boolean;
56
+ client?: string;
57
+ rerender?: boolean;
58
+ /** See `SetOpts.applyAll`. */
59
+ applyAll?: boolean;
60
+ }
61
+ export declare function runUnset(key: string, opts: UnsetOpts): Promise<void>;
62
+ export interface GetOpts {
63
+ projectDir?: string;
64
+ global?: boolean;
65
+ project?: boolean;
66
+ }
67
+ export declare function runGet(key: string, opts: GetOpts): void;
68
+ export declare function runList(opts: GetOpts): void;
69
+ export declare function runPath(opts: {
70
+ projectDir?: string;
71
+ global?: boolean;
72
+ }): void;
73
+ /**
74
+ * `ironbee config` parent command. Subcommands attached below; each one
75
+ * has its own `try/catch → process.exit(1)` so a single bad write doesn't
76
+ * surface as an unhandled rejection.
77
+ */
78
+ export declare const configCommand: Command;
79
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6XpC,MAAM,WAAW,OAAO;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCxF;AAED,MAAM,WAAW,SAAS;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC1E;AAED,MAAM,WAAW,OAAO;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAevD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAI3C;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAG7E;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,OACoI,CAAC"}