@burtson-labs/host-kit 0.3.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 (79) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +55 -0
  3. package/dist/backgroundTasks.d.ts +113 -0
  4. package/dist/backgroundTasks.d.ts.map +1 -0
  5. package/dist/backgroundTasks.js +137 -0
  6. package/dist/backgroundTasks.js.map +1 -0
  7. package/dist/checkpoints.d.ts +99 -0
  8. package/dist/checkpoints.d.ts.map +1 -0
  9. package/dist/checkpoints.js +227 -0
  10. package/dist/checkpoints.js.map +1 -0
  11. package/dist/hooks.d.ts +51 -0
  12. package/dist/hooks.d.ts.map +1 -0
  13. package/dist/hooks.js +152 -0
  14. package/dist/hooks.js.map +1 -0
  15. package/dist/index.d.ts +19 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +95 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/insights.d.ts +398 -0
  20. package/dist/insights.d.ts.map +1 -0
  21. package/dist/insights.js +1933 -0
  22. package/dist/insights.js.map +1 -0
  23. package/dist/mcp.d.ts +60 -0
  24. package/dist/mcp.d.ts.map +1 -0
  25. package/dist/mcp.js +281 -0
  26. package/dist/mcp.js.map +1 -0
  27. package/dist/mcpConnectors.d.ts +108 -0
  28. package/dist/mcpConnectors.d.ts.map +1 -0
  29. package/dist/mcpConnectors.js +217 -0
  30. package/dist/mcpConnectors.js.map +1 -0
  31. package/dist/mcpToolCache.d.ts +43 -0
  32. package/dist/mcpToolCache.d.ts.map +1 -0
  33. package/dist/mcpToolCache.js +150 -0
  34. package/dist/mcpToolCache.js.map +1 -0
  35. package/dist/mcpTrust.d.ts +22 -0
  36. package/dist/mcpTrust.d.ts.map +1 -0
  37. package/dist/mcpTrust.js +104 -0
  38. package/dist/mcpTrust.js.map +1 -0
  39. package/dist/memory.d.ts +38 -0
  40. package/dist/memory.d.ts.map +1 -0
  41. package/dist/memory.js +151 -0
  42. package/dist/memory.js.map +1 -0
  43. package/dist/memoryIndex.d.ts +38 -0
  44. package/dist/memoryIndex.d.ts.map +1 -0
  45. package/dist/memoryIndex.js +142 -0
  46. package/dist/memoryIndex.js.map +1 -0
  47. package/dist/mentions.d.ts +33 -0
  48. package/dist/mentions.d.ts.map +1 -0
  49. package/dist/mentions.js +126 -0
  50. package/dist/mentions.js.map +1 -0
  51. package/dist/ollamaModels.d.ts +36 -0
  52. package/dist/ollamaModels.d.ts.map +1 -0
  53. package/dist/ollamaModels.js +83 -0
  54. package/dist/ollamaModels.js.map +1 -0
  55. package/dist/permissions.d.ts +72 -0
  56. package/dist/permissions.d.ts.map +1 -0
  57. package/dist/permissions.js +271 -0
  58. package/dist/permissions.js.map +1 -0
  59. package/dist/tools/extraTools.d.ts +80 -0
  60. package/dist/tools/extraTools.d.ts.map +1 -0
  61. package/dist/tools/extraTools.js +471 -0
  62. package/dist/tools/extraTools.js.map +1 -0
  63. package/dist/tools/readMemoryTool.d.ts +3 -0
  64. package/dist/tools/readMemoryTool.d.ts.map +1 -0
  65. package/dist/tools/readMemoryTool.js +115 -0
  66. package/dist/tools/readMemoryTool.js.map +1 -0
  67. package/dist/tools/taskTool.d.ts +119 -0
  68. package/dist/tools/taskTool.d.ts.map +1 -0
  69. package/dist/tools/taskTool.js +466 -0
  70. package/dist/tools/taskTool.js.map +1 -0
  71. package/dist/tools/testRunTool.d.ts +59 -0
  72. package/dist/tools/testRunTool.d.ts.map +1 -0
  73. package/dist/tools/testRunTool.js +308 -0
  74. package/dist/tools/testRunTool.js.map +1 -0
  75. package/dist/turnLog.d.ts +89 -0
  76. package/dist/turnLog.d.ts.map +1 -0
  77. package/dist/turnLog.js +469 -0
  78. package/dist/turnLog.js.map +1 -0
  79. package/package.json +35 -0
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ /**
3
+ * Checkpoint store — snapshots every tool-driven file edit so the user
4
+ * can rewind after the fact. One entry per successful write_file /
5
+ * apply_edit; stores the full `before` text (plus metadata about the
6
+ * edit) under `.bandit/checkpoints/<turnId>/<id>.json`, and maintains
7
+ * a small flat index at `.bandit/checkpoints/index.json` for fast
8
+ * listing without walking the directory.
9
+ *
10
+ * Honest scope:
11
+ * - Only reverts edits the agent made through write_file / apply_edit / replace_range / apply_patch.
12
+ * Manual saves the user made between turns are NOT captured.
13
+ * - Not a replacement for git. Meant for in-session undo when an
14
+ * edit goes sideways and the user wants the previous state back
15
+ * without hand-unwinding.
16
+ *
17
+ * Storage format is deliberately simple (plain JSON, one file per
18
+ * checkpoint) so it's inspectable with cat/jq when debugging.
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
33
+ }) : function(o, v) {
34
+ o["default"] = v;
35
+ });
36
+ var __importStar = (this && this.__importStar) || (function () {
37
+ var ownKeys = function(o) {
38
+ ownKeys = Object.getOwnPropertyNames || function (o) {
39
+ var ar = [];
40
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
41
+ return ar;
42
+ };
43
+ return ownKeys(o);
44
+ };
45
+ return function (mod) {
46
+ if (mod && mod.__esModule) return mod;
47
+ var result = {};
48
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
49
+ __setModuleDefault(result, mod);
50
+ return result;
51
+ };
52
+ })();
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.CheckpointStore = void 0;
55
+ const fs = __importStar(require("fs"));
56
+ const path = __importStar(require("path"));
57
+ const INDEX_FILE = 'index.json';
58
+ const DEFAULT_MAX_INDEX = 200;
59
+ function lineCountDiff(before, after) {
60
+ if (before === after)
61
+ return { plus: 0, minus: 0 };
62
+ const a = before.split('\n');
63
+ const b = after.split('\n');
64
+ const m = a.length;
65
+ const n = b.length;
66
+ // Bounded LCS — same algorithm the extension uses for diff summaries.
67
+ if (m * n > 40000) {
68
+ // Fallback: approximate as full replacement. Rare in practice.
69
+ return { plus: b.length, minus: a.length };
70
+ }
71
+ const table = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));
72
+ for (let i = 1; i <= m; i++) {
73
+ for (let j = 1; j <= n; j++) {
74
+ table[i][j] = a[i - 1] === b[j - 1] ? table[i - 1][j - 1] + 1 : Math.max(table[i - 1][j], table[i][j - 1]);
75
+ }
76
+ }
77
+ let i = m;
78
+ let j = n;
79
+ let plus = 0;
80
+ let minus = 0;
81
+ while (i > 0 && j > 0) {
82
+ if (a[i - 1] === b[j - 1]) {
83
+ i--;
84
+ j--;
85
+ }
86
+ else if (table[i][j - 1] >= table[i - 1][j]) {
87
+ plus++;
88
+ j--;
89
+ }
90
+ else {
91
+ minus++;
92
+ i--;
93
+ }
94
+ }
95
+ plus += j;
96
+ minus += i;
97
+ return { plus, minus };
98
+ }
99
+ function describeEdit(entry) {
100
+ if (entry.isNewFile)
101
+ return '(new file)';
102
+ // First non-empty line that differs — a reasonable hint of what the
103
+ // edit did. Guards against blank leading lines throwing the heading.
104
+ const afterLines = entry.after.split('\n');
105
+ const beforeLines = entry.before.split('\n');
106
+ for (let i = 0; i < afterLines.length; i++) {
107
+ if (afterLines[i] !== beforeLines[i]) {
108
+ const raw = (afterLines[i] ?? '').trim();
109
+ if (raw)
110
+ return raw.length > 80 ? raw.slice(0, 77) + '…' : raw;
111
+ }
112
+ }
113
+ return '(whitespace-only edit)';
114
+ }
115
+ class CheckpointStore {
116
+ constructor(options) {
117
+ this.counter = 0;
118
+ this.workspaceRoot = options.workspaceRoot;
119
+ this.dir = path.join(options.workspaceRoot, '.bandit', 'checkpoints');
120
+ this.maxIndexEntries = options.maxIndexEntries ?? DEFAULT_MAX_INDEX;
121
+ }
122
+ /** Create a checkpoint entry, persist it, and update the index. */
123
+ async create(input) {
124
+ await fs.promises.mkdir(path.join(this.dir, input.turnId), { recursive: true });
125
+ this.counter++;
126
+ const id = `chk-${input.turnId.split('-').pop() ?? 'x'}-${String(this.counter).padStart(3, '0')}`;
127
+ const relPath = path.relative(this.workspaceRoot, input.absolutePath) || input.absolutePath;
128
+ const isNewFile = input.before.length === 0;
129
+ const entry = {
130
+ id,
131
+ turnId: input.turnId,
132
+ timestamp: Date.now(),
133
+ tool: input.tool,
134
+ path: input.absolutePath,
135
+ relPath,
136
+ before: input.before,
137
+ after: input.after,
138
+ isNewFile,
139
+ iteration: input.iteration,
140
+ description: describeEdit({ before: input.before, after: input.after, isNewFile })
141
+ };
142
+ const entryFile = path.join(this.dir, input.turnId, `${id}.json`);
143
+ await fs.promises.writeFile(entryFile, JSON.stringify(entry, null, 2));
144
+ await this.appendToIndex(entry);
145
+ return entry;
146
+ }
147
+ /** Return the most recent N index entries (newest first). */
148
+ async list(limit = 20) {
149
+ const index = await this.readIndex();
150
+ return index.slice(0, limit);
151
+ }
152
+ /** Load a full checkpoint by id. Returns null when not found. */
153
+ async get(id) {
154
+ const index = await this.readIndex();
155
+ const hit = index.find((e) => e.id === id);
156
+ if (!hit)
157
+ return null;
158
+ const file = path.join(this.dir, hit.turnId, `${id}.json`);
159
+ try {
160
+ const raw = await fs.promises.readFile(file, 'utf-8');
161
+ return JSON.parse(raw);
162
+ }
163
+ catch {
164
+ return null;
165
+ }
166
+ }
167
+ /**
168
+ * Restore the file to its pre-edit state. Returns the resolved entry
169
+ * on success, or null when the id wasn't found / couldn't be applied.
170
+ * New-file checkpoints are handled by unlinking the file (the file
171
+ * DIDN'T exist before, so that's the correct reverse operation).
172
+ */
173
+ async rewind(id) {
174
+ const entry = await this.get(id);
175
+ if (!entry)
176
+ return null;
177
+ try {
178
+ if (entry.isNewFile) {
179
+ await fs.promises.unlink(entry.path).catch(() => undefined);
180
+ }
181
+ else {
182
+ await fs.promises.mkdir(path.dirname(entry.path), { recursive: true });
183
+ await fs.promises.writeFile(entry.path, entry.before);
184
+ }
185
+ return entry;
186
+ }
187
+ catch {
188
+ return null;
189
+ }
190
+ }
191
+ async readIndex() {
192
+ const file = path.join(this.dir, INDEX_FILE);
193
+ try {
194
+ const raw = await fs.promises.readFile(file, 'utf-8');
195
+ const parsed = JSON.parse(raw);
196
+ return Array.isArray(parsed) ? parsed : [];
197
+ }
198
+ catch {
199
+ return [];
200
+ }
201
+ }
202
+ async writeIndex(entries) {
203
+ await fs.promises.mkdir(this.dir, { recursive: true });
204
+ const file = path.join(this.dir, INDEX_FILE);
205
+ await fs.promises.writeFile(file, JSON.stringify(entries, null, 2));
206
+ }
207
+ async appendToIndex(entry) {
208
+ const { plus, minus } = lineCountDiff(entry.before, entry.after);
209
+ const indexEntry = {
210
+ id: entry.id,
211
+ turnId: entry.turnId,
212
+ timestamp: entry.timestamp,
213
+ tool: entry.tool,
214
+ relPath: entry.relPath,
215
+ iteration: entry.iteration,
216
+ description: entry.description,
217
+ plus,
218
+ minus
219
+ };
220
+ const current = await this.readIndex();
221
+ current.unshift(indexEntry);
222
+ const trimmed = current.slice(0, this.maxIndexEntries);
223
+ await this.writeIndex(trimmed);
224
+ }
225
+ }
226
+ exports.CheckpointStore = CheckpointStore;
227
+ //# sourceMappingURL=checkpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoints.js","sourceRoot":"","sources":["../src/checkpoints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Hooks — shell commands triggered at specific points in the agent lifecycle.
3
+ *
4
+ * Config format (.bandit/settings.json):
5
+ * {
6
+ * "hooks": {
7
+ * "PreToolUse": [{ "match": "write_file", "command": "./scripts/guard.sh {{name}}" }],
8
+ * "PostToolUse": [{ "match": ".*", "command": "echo ${name} took ${duration}ms" }],
9
+ * "Stop": [{ "command": "./scripts/notify-done.sh" }]
10
+ * }
11
+ * }
12
+ *
13
+ * - `match` is a regex applied against the tool name. Omit to match all.
14
+ * - `{{placeholder}}` tokens in `command` are substituted at runtime.
15
+ * PreToolUse / PostToolUse provide: name, primary (first param value), duration (ms, Post only).
16
+ * - A non-zero exit code from a PreToolUse hook aborts the tool call.
17
+ */
18
+ export type HookEvent = 'PreToolUse' | 'PostToolUse' | 'Stop';
19
+ export interface HookRule {
20
+ match?: string;
21
+ command: string;
22
+ timeout?: number;
23
+ }
24
+ export interface PermissionsBlock {
25
+ allow?: string[];
26
+ deny?: string[];
27
+ ask?: string[];
28
+ }
29
+ export interface HookSettings {
30
+ hooks?: Partial<Record<HookEvent, HookRule[]>>;
31
+ permissions?: PermissionsBlock;
32
+ }
33
+ export declare function loadHookSettings(cwd: string): Promise<HookSettings>;
34
+ /**
35
+ * Persist an entry in the workspace settings.json permissions.allow list.
36
+ * Called when the user picks "Always allow" in a permission prompt and wants
37
+ * the choice to survive restarts. Creates .bandit/settings.json if missing.
38
+ */
39
+ export declare function persistAllowEntry(cwd: string, entry: string): Promise<void>;
40
+ export interface HookContext {
41
+ toolName?: string;
42
+ primary?: string;
43
+ durationMs?: number;
44
+ }
45
+ export interface HookResult {
46
+ exitCode: number;
47
+ stdout: string;
48
+ stderr: string;
49
+ }
50
+ export declare function runHooks(event: HookEvent, settings: HookSettings, ctx: HookContext, cwd: string): Promise<HookResult[]>;
51
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAID,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAyBzE;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjF;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,YAAY,EACtB,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,EAAE,CAAC,CAYvB"}
package/dist/hooks.js ADDED
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ /**
3
+ * Hooks — shell commands triggered at specific points in the agent lifecycle.
4
+ *
5
+ * Config format (.bandit/settings.json):
6
+ * {
7
+ * "hooks": {
8
+ * "PreToolUse": [{ "match": "write_file", "command": "./scripts/guard.sh {{name}}" }],
9
+ * "PostToolUse": [{ "match": ".*", "command": "echo ${name} took ${duration}ms" }],
10
+ * "Stop": [{ "command": "./scripts/notify-done.sh" }]
11
+ * }
12
+ * }
13
+ *
14
+ * - `match` is a regex applied against the tool name. Omit to match all.
15
+ * - `{{placeholder}}` tokens in `command` are substituted at runtime.
16
+ * PreToolUse / PostToolUse provide: name, primary (first param value), duration (ms, Post only).
17
+ * - A non-zero exit code from a PreToolUse hook aborts the tool call.
18
+ */
19
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ var desc = Object.getOwnPropertyDescriptor(m, k);
22
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
23
+ desc = { enumerable: true, get: function() { return m[k]; } };
24
+ }
25
+ Object.defineProperty(o, k2, desc);
26
+ }) : (function(o, m, k, k2) {
27
+ if (k2 === undefined) k2 = k;
28
+ o[k2] = m[k];
29
+ }));
30
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
31
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
32
+ }) : function(o, v) {
33
+ o["default"] = v;
34
+ });
35
+ var __importStar = (this && this.__importStar) || (function () {
36
+ var ownKeys = function(o) {
37
+ ownKeys = Object.getOwnPropertyNames || function (o) {
38
+ var ar = [];
39
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
40
+ return ar;
41
+ };
42
+ return ownKeys(o);
43
+ };
44
+ return function (mod) {
45
+ if (mod && mod.__esModule) return mod;
46
+ var result = {};
47
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
48
+ __setModuleDefault(result, mod);
49
+ return result;
50
+ };
51
+ })();
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ exports.loadHookSettings = loadHookSettings;
54
+ exports.persistAllowEntry = persistAllowEntry;
55
+ exports.runHooks = runHooks;
56
+ const cp = __importStar(require("child_process"));
57
+ const fs = __importStar(require("fs"));
58
+ const path = __importStar(require("path"));
59
+ const DEFAULT_TIMEOUT_MS = 10000;
60
+ async function loadHookSettings(cwd) {
61
+ const candidates = [
62
+ path.resolve(cwd, '.bandit/settings.json'),
63
+ path.resolve(cwd, '.bandit/settings.local.json')
64
+ ];
65
+ const merged = { hooks: {}, permissions: { allow: [], deny: [], ask: [] } };
66
+ for (const p of candidates) {
67
+ try {
68
+ const raw = await fs.promises.readFile(p, 'utf-8');
69
+ const parsed = JSON.parse(raw);
70
+ if (parsed.hooks) {
71
+ for (const ev of Object.keys(parsed.hooks)) {
72
+ merged.hooks[ev] = [...(merged.hooks[ev] ?? []), ...(parsed.hooks[ev] ?? [])];
73
+ }
74
+ }
75
+ if (parsed.permissions) {
76
+ merged.permissions.allow = [...(merged.permissions.allow ?? []), ...(parsed.permissions.allow ?? [])];
77
+ merged.permissions.deny = [...(merged.permissions.deny ?? []), ...(parsed.permissions.deny ?? [])];
78
+ merged.permissions.ask = [...(merged.permissions.ask ?? []), ...(parsed.permissions.ask ?? [])];
79
+ }
80
+ }
81
+ catch {
82
+ // Missing / invalid — skip silently.
83
+ }
84
+ }
85
+ return merged;
86
+ }
87
+ /**
88
+ * Persist an entry in the workspace settings.json permissions.allow list.
89
+ * Called when the user picks "Always allow" in a permission prompt and wants
90
+ * the choice to survive restarts. Creates .bandit/settings.json if missing.
91
+ */
92
+ async function persistAllowEntry(cwd, entry) {
93
+ const dir = path.resolve(cwd, '.bandit');
94
+ const file = path.resolve(dir, 'settings.json');
95
+ await fs.promises.mkdir(dir, { recursive: true });
96
+ let existing = {};
97
+ try {
98
+ const raw = await fs.promises.readFile(file, 'utf-8');
99
+ existing = JSON.parse(raw);
100
+ }
101
+ catch {
102
+ // File didn't exist or was invalid — start fresh.
103
+ }
104
+ existing.permissions = existing.permissions ?? {};
105
+ existing.permissions.allow = existing.permissions.allow ?? [];
106
+ if (!existing.permissions.allow.includes(entry)) {
107
+ existing.permissions.allow.push(entry);
108
+ }
109
+ await fs.promises.writeFile(file, JSON.stringify(existing, null, 2) + '\n', 'utf-8');
110
+ }
111
+ async function runHooks(event, settings, ctx, cwd) {
112
+ const rules = settings.hooks?.[event] ?? [];
113
+ if (rules.length === 0)
114
+ return [];
115
+ const results = [];
116
+ for (const rule of rules) {
117
+ if (rule.match && ctx.toolName && !new RegExp(rule.match).test(ctx.toolName)) {
118
+ continue;
119
+ }
120
+ const cmd = expand(rule.command, ctx);
121
+ results.push(await runShell(cmd, cwd, rule.timeout ?? DEFAULT_TIMEOUT_MS));
122
+ }
123
+ return results;
124
+ }
125
+ function expand(template, ctx) {
126
+ return template
127
+ .replace(/\{\{\s*name\s*\}\}/g, shellEscape(ctx.toolName ?? ''))
128
+ .replace(/\{\{\s*primary\s*\}\}/g, shellEscape(ctx.primary ?? ''))
129
+ .replace(/\{\{\s*duration\s*\}\}/g, String(ctx.durationMs ?? ''));
130
+ }
131
+ function shellEscape(value) {
132
+ return `'${value.replace(/'/g, `'\\''`)}'`;
133
+ }
134
+ function runShell(command, cwd, timeoutMs) {
135
+ return new Promise((resolve) => {
136
+ let stdout = '';
137
+ let stderr = '';
138
+ const proc = cp.spawn(command, { cwd, shell: true, env: { ...process.env } });
139
+ const timer = setTimeout(() => { proc.kill('SIGTERM'); }, timeoutMs);
140
+ proc.stdout?.on('data', d => { stdout += d.toString(); });
141
+ proc.stderr?.on('data', d => { stderr += d.toString(); });
142
+ proc.on('close', code => {
143
+ clearTimeout(timer);
144
+ resolve({ exitCode: code ?? 0, stdout, stderr });
145
+ });
146
+ proc.on('error', err => {
147
+ clearTimeout(timer);
148
+ resolve({ exitCode: 1, stdout: '', stderr: err.message });
149
+ });
150
+ });
151
+ }
152
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export { loadMemory, loadCombinedMemory, appendMemory, type MemoryBundle } from './memory';
2
+ export { loadMemoryIndex, renderMemoryIndexBlock, MAX_INDEX_BYTES, MAX_MEMORY_FILE_BYTES, MEMORY_DIR, MEMORY_INDEX_FILE, type MemoryIndex, type MemoryIndexEntry, type MemoryWarnFn } from './memoryIndex';
3
+ export { buildReadMemoryTool } from './tools/readMemoryTool';
4
+ export { loadMcpServersConfig, registerMcpServersFromDisk, globalMcpServersPath, persistMcpActivation, addMcpServerToConfig } from './mcp';
5
+ export { buildGitHubServerConfig, looksLikeGitHubToken, buildSlackServerConfig, looksLikeSlackToken, looksLikeSlackTeamId, buildGitLabServerConfig, looksLikeGitLabToken, buildGmailServerConfig, looksLikeGmailCredentialsPath, buildCustomServerConfig } from './mcpConnectors';
6
+ export { loadApprovedMcpFingerprints, approveMcpFingerprint, revokeMcpFingerprint, mcpTrustPath } from './mcpTrust';
7
+ export { loadMcpToolCache, saveMcpToolEntry, pruneMcpToolCache, mcpToolCachePath } from './mcpToolCache';
8
+ export { loadHookSettings, persistAllowEntry, runHooks, type HookEvent, type HookRule, type HookSettings, type HookContext, type HookResult, type PermissionsBlock } from './hooks';
9
+ export { expandMentions, type ExpandedPrompt } from './mentions';
10
+ export { TodoStore, buildTodoWriteTool, buildWebFetchTool, buildWebSearchTool, type WebSearchToolOptions, buildRememberTool } from './tools/extraTools';
11
+ export { buildTaskTool, buildCheckTaskTool, buildListTasksTool, type TaskToolOptions } from './tools/taskTool';
12
+ export { buildTestRunTool, detectTestFramework, buildTestCommand, parseTestOutput, type TestFramework, type ParsedTestSummary } from './tools/testRunTool';
13
+ export { computeInsights, renderInsightsHtml, writeInsightsReport, buildAiInput, buildInsightsAiCallback, type InsightsData, type WorkHighlight, type WorkTheme, type AiSummary, type AiSummaryInput, type AiSummaryFn, type OneShotChatFn } from './insights';
14
+ export { InMemoryBackgroundTaskStore, type BackgroundTaskStore, type BackgroundTaskRecord, type BackgroundTaskStatus, type BackgroundTaskProgress } from './backgroundTasks';
15
+ export { evaluatePermission, emptyPolicy, mergePolicies, SessionPermissionStore, type PermissionPolicy, type PermissionDecision } from './permissions';
16
+ export { openTurnLog, previewText, listTurnTraceFiles, listTurnTraces, readTurnTrace, readTurnTraceById, parseTurnLog, summarizeTurnTrace, formatTurnTraceMarkdown, type TurnLogger, type TurnLogEvent, type TurnTrace, type TurnTraceSummary, type TurnTraceListOptions, type TurnTraceScope } from './turnLog';
17
+ export { listInstalledOllamaModels, suggestOllamaMatch, isChatCapable, type OllamaModelInfo } from './ollamaModels';
18
+ export { CheckpointStore, type CheckpointEntry, type CheckpointIndexEntry, type CheckpointStoreOptions } from './checkpoints';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeInsights = exports.parseTestOutput = exports.buildTestCommand = exports.detectTestFramework = exports.buildTestRunTool = exports.buildListTasksTool = exports.buildCheckTaskTool = exports.buildTaskTool = exports.buildRememberTool = exports.buildWebSearchTool = exports.buildWebFetchTool = exports.buildTodoWriteTool = exports.TodoStore = exports.expandMentions = exports.runHooks = exports.persistAllowEntry = exports.loadHookSettings = exports.mcpToolCachePath = exports.pruneMcpToolCache = exports.saveMcpToolEntry = exports.loadMcpToolCache = exports.mcpTrustPath = exports.revokeMcpFingerprint = exports.approveMcpFingerprint = exports.loadApprovedMcpFingerprints = exports.buildCustomServerConfig = exports.looksLikeGmailCredentialsPath = exports.buildGmailServerConfig = exports.looksLikeGitLabToken = exports.buildGitLabServerConfig = exports.looksLikeSlackTeamId = exports.looksLikeSlackToken = exports.buildSlackServerConfig = exports.looksLikeGitHubToken = exports.buildGitHubServerConfig = exports.addMcpServerToConfig = exports.persistMcpActivation = exports.globalMcpServersPath = exports.registerMcpServersFromDisk = exports.loadMcpServersConfig = exports.buildReadMemoryTool = exports.MEMORY_INDEX_FILE = exports.MEMORY_DIR = exports.MAX_MEMORY_FILE_BYTES = exports.MAX_INDEX_BYTES = exports.renderMemoryIndexBlock = exports.loadMemoryIndex = exports.appendMemory = exports.loadCombinedMemory = exports.loadMemory = void 0;
4
+ exports.CheckpointStore = exports.isChatCapable = exports.suggestOllamaMatch = exports.listInstalledOllamaModels = exports.formatTurnTraceMarkdown = exports.summarizeTurnTrace = exports.parseTurnLog = exports.readTurnTraceById = exports.readTurnTrace = exports.listTurnTraces = exports.listTurnTraceFiles = exports.previewText = exports.openTurnLog = exports.SessionPermissionStore = exports.mergePolicies = exports.emptyPolicy = exports.evaluatePermission = exports.InMemoryBackgroundTaskStore = exports.buildInsightsAiCallback = exports.buildAiInput = exports.writeInsightsReport = exports.renderInsightsHtml = void 0;
5
+ var memory_1 = require("./memory");
6
+ Object.defineProperty(exports, "loadMemory", { enumerable: true, get: function () { return memory_1.loadMemory; } });
7
+ Object.defineProperty(exports, "loadCombinedMemory", { enumerable: true, get: function () { return memory_1.loadCombinedMemory; } });
8
+ Object.defineProperty(exports, "appendMemory", { enumerable: true, get: function () { return memory_1.appendMemory; } });
9
+ var memoryIndex_1 = require("./memoryIndex");
10
+ Object.defineProperty(exports, "loadMemoryIndex", { enumerable: true, get: function () { return memoryIndex_1.loadMemoryIndex; } });
11
+ Object.defineProperty(exports, "renderMemoryIndexBlock", { enumerable: true, get: function () { return memoryIndex_1.renderMemoryIndexBlock; } });
12
+ Object.defineProperty(exports, "MAX_INDEX_BYTES", { enumerable: true, get: function () { return memoryIndex_1.MAX_INDEX_BYTES; } });
13
+ Object.defineProperty(exports, "MAX_MEMORY_FILE_BYTES", { enumerable: true, get: function () { return memoryIndex_1.MAX_MEMORY_FILE_BYTES; } });
14
+ Object.defineProperty(exports, "MEMORY_DIR", { enumerable: true, get: function () { return memoryIndex_1.MEMORY_DIR; } });
15
+ Object.defineProperty(exports, "MEMORY_INDEX_FILE", { enumerable: true, get: function () { return memoryIndex_1.MEMORY_INDEX_FILE; } });
16
+ var readMemoryTool_1 = require("./tools/readMemoryTool");
17
+ Object.defineProperty(exports, "buildReadMemoryTool", { enumerable: true, get: function () { return readMemoryTool_1.buildReadMemoryTool; } });
18
+ var mcp_1 = require("./mcp");
19
+ Object.defineProperty(exports, "loadMcpServersConfig", { enumerable: true, get: function () { return mcp_1.loadMcpServersConfig; } });
20
+ Object.defineProperty(exports, "registerMcpServersFromDisk", { enumerable: true, get: function () { return mcp_1.registerMcpServersFromDisk; } });
21
+ Object.defineProperty(exports, "globalMcpServersPath", { enumerable: true, get: function () { return mcp_1.globalMcpServersPath; } });
22
+ Object.defineProperty(exports, "persistMcpActivation", { enumerable: true, get: function () { return mcp_1.persistMcpActivation; } });
23
+ Object.defineProperty(exports, "addMcpServerToConfig", { enumerable: true, get: function () { return mcp_1.addMcpServerToConfig; } });
24
+ var mcpConnectors_1 = require("./mcpConnectors");
25
+ Object.defineProperty(exports, "buildGitHubServerConfig", { enumerable: true, get: function () { return mcpConnectors_1.buildGitHubServerConfig; } });
26
+ Object.defineProperty(exports, "looksLikeGitHubToken", { enumerable: true, get: function () { return mcpConnectors_1.looksLikeGitHubToken; } });
27
+ Object.defineProperty(exports, "buildSlackServerConfig", { enumerable: true, get: function () { return mcpConnectors_1.buildSlackServerConfig; } });
28
+ Object.defineProperty(exports, "looksLikeSlackToken", { enumerable: true, get: function () { return mcpConnectors_1.looksLikeSlackToken; } });
29
+ Object.defineProperty(exports, "looksLikeSlackTeamId", { enumerable: true, get: function () { return mcpConnectors_1.looksLikeSlackTeamId; } });
30
+ Object.defineProperty(exports, "buildGitLabServerConfig", { enumerable: true, get: function () { return mcpConnectors_1.buildGitLabServerConfig; } });
31
+ Object.defineProperty(exports, "looksLikeGitLabToken", { enumerable: true, get: function () { return mcpConnectors_1.looksLikeGitLabToken; } });
32
+ Object.defineProperty(exports, "buildGmailServerConfig", { enumerable: true, get: function () { return mcpConnectors_1.buildGmailServerConfig; } });
33
+ Object.defineProperty(exports, "looksLikeGmailCredentialsPath", { enumerable: true, get: function () { return mcpConnectors_1.looksLikeGmailCredentialsPath; } });
34
+ Object.defineProperty(exports, "buildCustomServerConfig", { enumerable: true, get: function () { return mcpConnectors_1.buildCustomServerConfig; } });
35
+ var mcpTrust_1 = require("./mcpTrust");
36
+ Object.defineProperty(exports, "loadApprovedMcpFingerprints", { enumerable: true, get: function () { return mcpTrust_1.loadApprovedMcpFingerprints; } });
37
+ Object.defineProperty(exports, "approveMcpFingerprint", { enumerable: true, get: function () { return mcpTrust_1.approveMcpFingerprint; } });
38
+ Object.defineProperty(exports, "revokeMcpFingerprint", { enumerable: true, get: function () { return mcpTrust_1.revokeMcpFingerprint; } });
39
+ Object.defineProperty(exports, "mcpTrustPath", { enumerable: true, get: function () { return mcpTrust_1.mcpTrustPath; } });
40
+ var mcpToolCache_1 = require("./mcpToolCache");
41
+ Object.defineProperty(exports, "loadMcpToolCache", { enumerable: true, get: function () { return mcpToolCache_1.loadMcpToolCache; } });
42
+ Object.defineProperty(exports, "saveMcpToolEntry", { enumerable: true, get: function () { return mcpToolCache_1.saveMcpToolEntry; } });
43
+ Object.defineProperty(exports, "pruneMcpToolCache", { enumerable: true, get: function () { return mcpToolCache_1.pruneMcpToolCache; } });
44
+ Object.defineProperty(exports, "mcpToolCachePath", { enumerable: true, get: function () { return mcpToolCache_1.mcpToolCachePath; } });
45
+ var hooks_1 = require("./hooks");
46
+ Object.defineProperty(exports, "loadHookSettings", { enumerable: true, get: function () { return hooks_1.loadHookSettings; } });
47
+ Object.defineProperty(exports, "persistAllowEntry", { enumerable: true, get: function () { return hooks_1.persistAllowEntry; } });
48
+ Object.defineProperty(exports, "runHooks", { enumerable: true, get: function () { return hooks_1.runHooks; } });
49
+ var mentions_1 = require("./mentions");
50
+ Object.defineProperty(exports, "expandMentions", { enumerable: true, get: function () { return mentions_1.expandMentions; } });
51
+ var extraTools_1 = require("./tools/extraTools");
52
+ Object.defineProperty(exports, "TodoStore", { enumerable: true, get: function () { return extraTools_1.TodoStore; } });
53
+ Object.defineProperty(exports, "buildTodoWriteTool", { enumerable: true, get: function () { return extraTools_1.buildTodoWriteTool; } });
54
+ Object.defineProperty(exports, "buildWebFetchTool", { enumerable: true, get: function () { return extraTools_1.buildWebFetchTool; } });
55
+ Object.defineProperty(exports, "buildWebSearchTool", { enumerable: true, get: function () { return extraTools_1.buildWebSearchTool; } });
56
+ Object.defineProperty(exports, "buildRememberTool", { enumerable: true, get: function () { return extraTools_1.buildRememberTool; } });
57
+ var taskTool_1 = require("./tools/taskTool");
58
+ Object.defineProperty(exports, "buildTaskTool", { enumerable: true, get: function () { return taskTool_1.buildTaskTool; } });
59
+ Object.defineProperty(exports, "buildCheckTaskTool", { enumerable: true, get: function () { return taskTool_1.buildCheckTaskTool; } });
60
+ Object.defineProperty(exports, "buildListTasksTool", { enumerable: true, get: function () { return taskTool_1.buildListTasksTool; } });
61
+ var testRunTool_1 = require("./tools/testRunTool");
62
+ Object.defineProperty(exports, "buildTestRunTool", { enumerable: true, get: function () { return testRunTool_1.buildTestRunTool; } });
63
+ Object.defineProperty(exports, "detectTestFramework", { enumerable: true, get: function () { return testRunTool_1.detectTestFramework; } });
64
+ Object.defineProperty(exports, "buildTestCommand", { enumerable: true, get: function () { return testRunTool_1.buildTestCommand; } });
65
+ Object.defineProperty(exports, "parseTestOutput", { enumerable: true, get: function () { return testRunTool_1.parseTestOutput; } });
66
+ var insights_1 = require("./insights");
67
+ Object.defineProperty(exports, "computeInsights", { enumerable: true, get: function () { return insights_1.computeInsights; } });
68
+ Object.defineProperty(exports, "renderInsightsHtml", { enumerable: true, get: function () { return insights_1.renderInsightsHtml; } });
69
+ Object.defineProperty(exports, "writeInsightsReport", { enumerable: true, get: function () { return insights_1.writeInsightsReport; } });
70
+ Object.defineProperty(exports, "buildAiInput", { enumerable: true, get: function () { return insights_1.buildAiInput; } });
71
+ Object.defineProperty(exports, "buildInsightsAiCallback", { enumerable: true, get: function () { return insights_1.buildInsightsAiCallback; } });
72
+ var backgroundTasks_1 = require("./backgroundTasks");
73
+ Object.defineProperty(exports, "InMemoryBackgroundTaskStore", { enumerable: true, get: function () { return backgroundTasks_1.InMemoryBackgroundTaskStore; } });
74
+ var permissions_1 = require("./permissions");
75
+ Object.defineProperty(exports, "evaluatePermission", { enumerable: true, get: function () { return permissions_1.evaluatePermission; } });
76
+ Object.defineProperty(exports, "emptyPolicy", { enumerable: true, get: function () { return permissions_1.emptyPolicy; } });
77
+ Object.defineProperty(exports, "mergePolicies", { enumerable: true, get: function () { return permissions_1.mergePolicies; } });
78
+ Object.defineProperty(exports, "SessionPermissionStore", { enumerable: true, get: function () { return permissions_1.SessionPermissionStore; } });
79
+ var turnLog_1 = require("./turnLog");
80
+ Object.defineProperty(exports, "openTurnLog", { enumerable: true, get: function () { return turnLog_1.openTurnLog; } });
81
+ Object.defineProperty(exports, "previewText", { enumerable: true, get: function () { return turnLog_1.previewText; } });
82
+ Object.defineProperty(exports, "listTurnTraceFiles", { enumerable: true, get: function () { return turnLog_1.listTurnTraceFiles; } });
83
+ Object.defineProperty(exports, "listTurnTraces", { enumerable: true, get: function () { return turnLog_1.listTurnTraces; } });
84
+ Object.defineProperty(exports, "readTurnTrace", { enumerable: true, get: function () { return turnLog_1.readTurnTrace; } });
85
+ Object.defineProperty(exports, "readTurnTraceById", { enumerable: true, get: function () { return turnLog_1.readTurnTraceById; } });
86
+ Object.defineProperty(exports, "parseTurnLog", { enumerable: true, get: function () { return turnLog_1.parseTurnLog; } });
87
+ Object.defineProperty(exports, "summarizeTurnTrace", { enumerable: true, get: function () { return turnLog_1.summarizeTurnTrace; } });
88
+ Object.defineProperty(exports, "formatTurnTraceMarkdown", { enumerable: true, get: function () { return turnLog_1.formatTurnTraceMarkdown; } });
89
+ var ollamaModels_1 = require("./ollamaModels");
90
+ Object.defineProperty(exports, "listInstalledOllamaModels", { enumerable: true, get: function () { return ollamaModels_1.listInstalledOllamaModels; } });
91
+ Object.defineProperty(exports, "suggestOllamaMatch", { enumerable: true, get: function () { return ollamaModels_1.suggestOllamaMatch; } });
92
+ Object.defineProperty(exports, "isChatCapable", { enumerable: true, get: function () { return ollamaModels_1.isChatCapable; } });
93
+ var checkpoints_1 = require("./checkpoints");
94
+ Object.defineProperty(exports, "CheckpointStore", { enumerable: true, get: function () { return checkpoints_1.CheckpointStore; } });
95
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,mCAA2F;AAAlF,oGAAA,UAAU,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,sGAAA,YAAY,OAAA;AACrD,6CAUuB;AATrB,8GAAA,eAAe,OAAA;AACf,qHAAA,sBAAsB,OAAA;AACtB,8GAAA,eAAe,OAAA;AACf,oHAAA,qBAAqB,OAAA;AACrB,yGAAA,UAAU,OAAA;AACV,gHAAA,iBAAiB,OAAA;AAKnB,yDAA6D;AAApD,qHAAA,mBAAmB,OAAA;AAC5B,6BAMe;AALb,2GAAA,oBAAoB,OAAA;AACpB,iHAAA,0BAA0B,OAAA;AAC1B,2GAAA,oBAAoB,OAAA;AACpB,2GAAA,oBAAoB,OAAA;AACpB,2GAAA,oBAAoB,OAAA;AAEtB,iDAWyB;AAVvB,wHAAA,uBAAuB,OAAA;AACvB,qHAAA,oBAAoB,OAAA;AACpB,uHAAA,sBAAsB,OAAA;AACtB,oHAAA,mBAAmB,OAAA;AACnB,qHAAA,oBAAoB,OAAA;AACpB,wHAAA,uBAAuB,OAAA;AACvB,qHAAA,oBAAoB,OAAA;AACpB,uHAAA,sBAAsB,OAAA;AACtB,8HAAA,6BAA6B,OAAA;AAC7B,wHAAA,uBAAuB,OAAA;AAEzB,uCAKoB;AAJlB,uHAAA,2BAA2B,OAAA;AAC3B,iHAAA,qBAAqB,OAAA;AACrB,gHAAA,oBAAoB,OAAA;AACpB,wGAAA,YAAY,OAAA;AAEd,+CAKwB;AAJtB,gHAAA,gBAAgB,OAAA;AAChB,gHAAA,gBAAgB,OAAA;AAChB,iHAAA,iBAAiB,OAAA;AACjB,gHAAA,gBAAgB,OAAA;AAElB,iCAUiB;AATf,yGAAA,gBAAgB,OAAA;AAChB,0GAAA,iBAAiB,OAAA;AACjB,iGAAA,QAAQ,OAAA;AAQV,uCAAiE;AAAxD,0GAAA,cAAc,OAAA;AACvB,iDAO4B;AAN1B,uGAAA,SAAS,OAAA;AACT,gHAAA,kBAAkB,OAAA;AAClB,+GAAA,iBAAiB,OAAA;AACjB,gHAAA,kBAAkB,OAAA;AAElB,+GAAA,iBAAiB,OAAA;AAEnB,6CAA+G;AAAtG,yGAAA,aAAa,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAC9D,mDAO6B;AAN3B,+GAAA,gBAAgB,OAAA;AAChB,kHAAA,mBAAmB,OAAA;AACnB,+GAAA,gBAAgB,OAAA;AAChB,8GAAA,eAAe,OAAA;AAIjB,uCAaoB;AAZlB,2GAAA,eAAe,OAAA;AACf,8GAAA,kBAAkB,OAAA;AAClB,+GAAA,mBAAmB,OAAA;AACnB,wGAAA,YAAY,OAAA;AACZ,mHAAA,uBAAuB,OAAA;AASzB,qDAM2B;AALzB,8HAAA,2BAA2B,OAAA;AAM7B,6CAOuB;AANrB,iHAAA,kBAAkB,OAAA;AAClB,0GAAA,WAAW,OAAA;AACX,4GAAA,aAAa,OAAA;AACb,qHAAA,sBAAsB,OAAA;AAIxB,qCAgBmB;AAfjB,sGAAA,WAAW,OAAA;AACX,sGAAA,WAAW,OAAA;AACX,6GAAA,kBAAkB,OAAA;AAClB,yGAAA,cAAc,OAAA;AACd,wGAAA,aAAa,OAAA;AACb,4GAAA,iBAAiB,OAAA;AACjB,uGAAA,YAAY,OAAA;AACZ,6GAAA,kBAAkB,OAAA;AAClB,kHAAA,uBAAuB,OAAA;AAQzB,+CAKwB;AAJtB,yHAAA,yBAAyB,OAAA;AACzB,kHAAA,kBAAkB,OAAA;AAClB,6GAAA,aAAa,OAAA;AAGf,6CAKuB;AAJrB,8GAAA,eAAe,OAAA"}