@moxxy/sdk 0.33.0 → 0.34.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 (90) hide show
  1. package/README.md +1 -1
  2. package/dist/audit-export.d.ts +51 -0
  3. package/dist/audit-export.d.ts.map +1 -0
  4. package/dist/audit-export.js +4 -0
  5. package/dist/audit-export.js.map +1 -0
  6. package/dist/audit.d.ts +86 -0
  7. package/dist/audit.d.ts.map +1 -0
  8. package/dist/audit.js +35 -0
  9. package/dist/audit.js.map +1 -0
  10. package/dist/define.d.ts +2 -0
  11. package/dist/define.d.ts.map +1 -1
  12. package/dist/define.js +1 -0
  13. package/dist/define.js.map +1 -1
  14. package/dist/egress.d.ts +109 -0
  15. package/dist/egress.d.ts.map +1 -0
  16. package/dist/egress.js +228 -0
  17. package/dist/egress.js.map +1 -0
  18. package/dist/events.d.ts +18 -0
  19. package/dist/events.d.ts.map +1 -1
  20. package/dist/fs-utils.d.ts +48 -0
  21. package/dist/fs-utils.d.ts.map +1 -1
  22. package/dist/fs-utils.js +114 -1
  23. package/dist/fs-utils.js.map +1 -1
  24. package/dist/hooks.d.ts +8 -0
  25. package/dist/hooks.d.ts.map +1 -1
  26. package/dist/index.d.ts +12 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +8 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/plugin.d.ts +10 -0
  31. package/dist/plugin.d.ts.map +1 -1
  32. package/dist/principal-os.d.ts +14 -0
  33. package/dist/principal-os.d.ts.map +1 -0
  34. package/dist/principal-os.js +48 -0
  35. package/dist/principal-os.js.map +1 -0
  36. package/dist/principal.d.ts +54 -0
  37. package/dist/principal.d.ts.map +1 -0
  38. package/dist/principal.js +18 -0
  39. package/dist/principal.js.map +1 -0
  40. package/dist/redact.d.ts +36 -0
  41. package/dist/redact.d.ts.map +1 -0
  42. package/dist/redact.js +88 -0
  43. package/dist/redact.js.map +1 -0
  44. package/dist/schemas.d.ts +18 -18
  45. package/dist/secret-provider.d.ts +60 -0
  46. package/dist/secret-provider.d.ts.map +1 -0
  47. package/dist/secret-provider.js +59 -0
  48. package/dist/secret-provider.js.map +1 -0
  49. package/dist/server.d.ts +3 -1
  50. package/dist/server.d.ts.map +1 -1
  51. package/dist/server.js +6 -1
  52. package/dist/server.js.map +1 -1
  53. package/dist/session-like.d.ts +3 -0
  54. package/dist/session-like.d.ts.map +1 -1
  55. package/dist/signature.d.ts +21 -0
  56. package/dist/signature.d.ts.map +1 -0
  57. package/dist/signature.js +32 -0
  58. package/dist/signature.js.map +1 -0
  59. package/dist/tool-icon.d.ts +22 -0
  60. package/dist/tool-icon.d.ts.map +1 -0
  61. package/dist/tool-icon.js +44 -0
  62. package/dist/tool-icon.js.map +1 -0
  63. package/dist/tool.d.ts +8 -0
  64. package/dist/tool.d.ts.map +1 -1
  65. package/package.json +11 -4
  66. package/src/audit-export.ts +57 -0
  67. package/src/audit.ts +137 -0
  68. package/src/cross-process-lock.test.ts +23 -14
  69. package/src/define.ts +3 -0
  70. package/src/egress.test.ts +238 -0
  71. package/src/egress.ts +274 -0
  72. package/src/events.ts +18 -0
  73. package/src/fs-utils.test.ts +98 -2
  74. package/src/fs-utils.ts +120 -1
  75. package/src/hooks.ts +8 -0
  76. package/src/host-credential.test.ts +39 -0
  77. package/src/index.ts +49 -0
  78. package/src/plugin.ts +10 -0
  79. package/src/principal-os.ts +48 -0
  80. package/src/principal.test.ts +47 -0
  81. package/src/principal.ts +60 -0
  82. package/src/redact.test.ts +91 -0
  83. package/src/redact.ts +91 -0
  84. package/src/secret-provider.ts +84 -0
  85. package/src/server.ts +17 -0
  86. package/src/session-like.ts +3 -0
  87. package/src/signature.ts +34 -0
  88. package/src/tool-icon.test.ts +46 -0
  89. package/src/tool-icon.ts +46 -0
  90. package/src/tool.ts +8 -0
package/dist/redact.js ADDED
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Secret redaction for anything that leaves the process: an audit record, a
3
+ * terminal prompt, a support paste.
4
+ *
5
+ * Two independent passes, because they catch different things and either alone
6
+ * leaves a real hole:
7
+ *
8
+ * - by KEY NAME, for `{ apiKey: 'sk-…' }`, where the value is opaque.
9
+ * - by VALUE SHAPE, for a secret embedded in an ordinary-looking field. The
10
+ * motivating case is a Bash tool call: its `command` is not a secret-named
11
+ * key, so a key-name pass alone prints
12
+ * `curl -H "Authorization: Bearer sk-ant-…"` verbatim.
13
+ *
14
+ * Deliberately NOT a guarantee. A redactor that claims completeness invites
15
+ * treating redacted output as safe to publish; treat it as reducing accidental
16
+ * exposure, not as sanitisation.
17
+ */
18
+ /** Field names whose VALUES are secret material regardless of shape. */
19
+ const SECRET_KEY = /(?:api[_-]?key|secret|token|password|passwd|passphrase|authorization|auth[_-]?token|bearer|credential|private[_-]?key|access[_-]?key)/i;
20
+ /**
21
+ * Value shapes that are secrets wherever they appear. Ordered vendor prefixes
22
+ * first (precise, no false positives) then generic bearer/assignment forms.
23
+ *
24
+ * Each pattern keeps any leading context in a capture group so the replacement
25
+ * can preserve it: masking `Authorization: Bearer X` down to just `[redacted]`
26
+ * would lose the fact that a header was there at all, which matters when the
27
+ * point is auditing what was attempted.
28
+ */
29
+ const SECRET_VALUE_PATTERNS = [
30
+ // Vendor-issued key formats.
31
+ [/\b(sk-ant-)[A-Za-z0-9_-]{8,}/g, '$1[redacted]'],
32
+ [/\b(sk-)[A-Za-z0-9_-]{16,}/g, '$1[redacted]'],
33
+ [/\b(gh[pousr]_)[A-Za-z0-9]{16,}/g, '$1[redacted]'],
34
+ [/\b(xox[baprs]-)[A-Za-z0-9-]{8,}/g, '$1[redacted]'],
35
+ [/\b(AKIA)[0-9A-Z]{12,}/g, '$1[redacted]'],
36
+ [/\b(AIza)[A-Za-z0-9_-]{20,}/g, '$1[redacted]'],
37
+ // JWTs: three base64url segments.
38
+ [/\b(ey[A-Za-z0-9_-]{8,})\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g, 'eyJ[redacted-jwt]'],
39
+ // `Authorization: Bearer <anything>` in a header or a shell command.
40
+ [/\b(authorization\s*[:=]\s*(?:bearer|basic|token)\s+)\S+/gi, '$1[redacted]'],
41
+ [/\b(bearer\s+)[A-Za-z0-9._~+/=-]{12,}/gi, '$1[redacted]'],
42
+ // `FOO_TOKEN=value` / `--api-key value` style assignments.
43
+ [
44
+ /\b([A-Za-z0-9_-]*(?:key|token|secret|password|passwd)[A-Za-z0-9_-]*\s*[:=]\s*)(?!\s)["']?[^\s"'&;|]{6,}["']?/gi,
45
+ '$1[redacted]',
46
+ ],
47
+ // Credentials embedded in a URL.
48
+ [/\b([a-z][a-z0-9+.-]*:\/\/[^\s:/@]+:)[^\s@]+(@)/gi, '$1[redacted]$2'],
49
+ ];
50
+ export const REDACTED_PLACEHOLDER = '[redacted]';
51
+ /** True when a field name reads as secret-bearing. */
52
+ export function isSecretKey(key) {
53
+ return SECRET_KEY.test(key);
54
+ }
55
+ /**
56
+ * Mask secret-shaped substrings inside a free-text value. This is the pass that
57
+ * covers shell commands, URLs, and headers, where the carrier field has an
58
+ * innocuous name.
59
+ */
60
+ export function redactSecretText(text) {
61
+ let out = text;
62
+ for (const [pattern, replacement] of SECRET_VALUE_PATTERNS) {
63
+ out = out.replace(pattern, replacement);
64
+ }
65
+ return out;
66
+ }
67
+ /**
68
+ * Redact a structured value: secret-named fields lose their value entirely,
69
+ * every other string is scanned for secret-shaped content.
70
+ *
71
+ * `maxDepth` bounds the walk so a pathologically nested input cannot blow the
72
+ * stack; anything deeper is returned unredacted, which is why callers that
73
+ * accept untrusted shapes should also cap size before display.
74
+ */
75
+ export function redactSecrets(value, maxDepth = 6, depth = 0) {
76
+ if (typeof value === 'string')
77
+ return redactSecretText(value);
78
+ if (depth >= maxDepth || value === null || typeof value !== 'object')
79
+ return value;
80
+ if (Array.isArray(value))
81
+ return value.map((v) => redactSecrets(v, maxDepth, depth + 1));
82
+ const out = {};
83
+ for (const [k, v] of Object.entries(value)) {
84
+ out[k] = SECRET_KEY.test(k) ? REDACTED_PLACEHOLDER : redactSecrets(v, maxDepth, depth + 1);
85
+ }
86
+ return out;
87
+ }
88
+ //# sourceMappingURL=redact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,wEAAwE;AACxE,MAAM,UAAU,GACd,wIAAwI,CAAC;AAE3I;;;;;;;;GAQG;AACH,MAAM,qBAAqB,GAA6C;IACtE,6BAA6B;IAC7B,CAAC,+BAA+B,EAAE,cAAc,CAAC;IACjD,CAAC,4BAA4B,EAAE,cAAc,CAAC;IAC9C,CAAC,iCAAiC,EAAE,cAAc,CAAC;IACnD,CAAC,kCAAkC,EAAE,cAAc,CAAC;IACpD,CAAC,wBAAwB,EAAE,cAAc,CAAC;IAC1C,CAAC,6BAA6B,EAAE,cAAc,CAAC;IAC/C,kCAAkC;IAClC,CAAC,gEAAgE,EAAE,mBAAmB,CAAC;IACvF,qEAAqE;IACrE,CAAC,2DAA2D,EAAE,cAAc,CAAC;IAC7E,CAAC,wCAAwC,EAAE,cAAc,CAAC;IAC1D,2DAA2D;IAC3D;QACE,gHAAgH;QAChH,cAAc;KACf;IACD,iCAAiC;IACjC,CAAC,kDAAkD,EAAE,gBAAgB,CAAC;CACvE,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAEjD,sDAAsD;AACtD,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,qBAAqB,EAAE,CAAC;QAC3D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9D,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACnF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/dist/schemas.d.ts CHANGED
@@ -177,18 +177,18 @@ export declare const pluginSetupFieldSchema: z.ZodObject<{
177
177
  key: string;
178
178
  kind: "string" | "boolean" | "secret" | "select";
179
179
  label: string;
180
+ description?: string | undefined;
180
181
  required?: boolean | undefined;
181
182
  options?: string[] | undefined;
182
- description?: string | undefined;
183
183
  vaultKey?: string | undefined;
184
184
  placeholder?: string | undefined;
185
185
  }, {
186
186
  key: string;
187
187
  kind: "string" | "boolean" | "secret" | "select";
188
188
  label: string;
189
+ description?: string | undefined;
189
190
  required?: boolean | undefined;
190
191
  options?: string[] | undefined;
191
- description?: string | undefined;
192
192
  vaultKey?: string | undefined;
193
193
  placeholder?: string | undefined;
194
194
  }>;
@@ -218,18 +218,18 @@ export declare const pluginSetupSchema: z.ZodObject<{
218
218
  key: string;
219
219
  kind: "string" | "boolean" | "secret" | "select";
220
220
  label: string;
221
+ description?: string | undefined;
221
222
  required?: boolean | undefined;
222
223
  options?: string[] | undefined;
223
- description?: string | undefined;
224
224
  vaultKey?: string | undefined;
225
225
  placeholder?: string | undefined;
226
226
  }, {
227
227
  key: string;
228
228
  kind: "string" | "boolean" | "secret" | "select";
229
229
  label: string;
230
+ description?: string | undefined;
230
231
  required?: boolean | undefined;
231
232
  options?: string[] | undefined;
232
- description?: string | undefined;
233
233
  vaultKey?: string | undefined;
234
234
  placeholder?: string | undefined;
235
235
  }>, "many">;
@@ -239,28 +239,28 @@ export declare const pluginSetupSchema: z.ZodObject<{
239
239
  key: string;
240
240
  kind: "string" | "boolean" | "secret" | "select";
241
241
  label: string;
242
+ description?: string | undefined;
242
243
  required?: boolean | undefined;
243
244
  options?: string[] | undefined;
244
- description?: string | undefined;
245
245
  vaultKey?: string | undefined;
246
246
  placeholder?: string | undefined;
247
247
  }[];
248
- required?: boolean | undefined;
249
248
  description?: string | undefined;
249
+ required?: boolean | undefined;
250
250
  }, {
251
251
  title: string;
252
252
  fields: {
253
253
  key: string;
254
254
  kind: "string" | "boolean" | "secret" | "select";
255
255
  label: string;
256
+ description?: string | undefined;
256
257
  required?: boolean | undefined;
257
258
  options?: string[] | undefined;
258
- description?: string | undefined;
259
259
  vaultKey?: string | undefined;
260
260
  placeholder?: string | undefined;
261
261
  }[];
262
- required?: boolean | undefined;
263
262
  description?: string | undefined;
263
+ required?: boolean | undefined;
264
264
  }>;
265
265
  export declare const moxxyPackageSchema: z.ZodObject<{
266
266
  plugin: z.ZodOptional<z.ZodObject<{
@@ -322,18 +322,18 @@ export declare const moxxyPackageSchema: z.ZodObject<{
322
322
  key: string;
323
323
  kind: "string" | "boolean" | "secret" | "select";
324
324
  label: string;
325
+ description?: string | undefined;
325
326
  required?: boolean | undefined;
326
327
  options?: string[] | undefined;
327
- description?: string | undefined;
328
328
  vaultKey?: string | undefined;
329
329
  placeholder?: string | undefined;
330
330
  }, {
331
331
  key: string;
332
332
  kind: "string" | "boolean" | "secret" | "select";
333
333
  label: string;
334
+ description?: string | undefined;
334
335
  required?: boolean | undefined;
335
336
  options?: string[] | undefined;
336
- description?: string | undefined;
337
337
  vaultKey?: string | undefined;
338
338
  placeholder?: string | undefined;
339
339
  }>, "many">;
@@ -343,28 +343,28 @@ export declare const moxxyPackageSchema: z.ZodObject<{
343
343
  key: string;
344
344
  kind: "string" | "boolean" | "secret" | "select";
345
345
  label: string;
346
+ description?: string | undefined;
346
347
  required?: boolean | undefined;
347
348
  options?: string[] | undefined;
348
- description?: string | undefined;
349
349
  vaultKey?: string | undefined;
350
350
  placeholder?: string | undefined;
351
351
  }[];
352
- required?: boolean | undefined;
353
352
  description?: string | undefined;
353
+ required?: boolean | undefined;
354
354
  }, {
355
355
  title: string;
356
356
  fields: {
357
357
  key: string;
358
358
  kind: "string" | "boolean" | "secret" | "select";
359
359
  label: string;
360
+ description?: string | undefined;
360
361
  required?: boolean | undefined;
361
362
  options?: string[] | undefined;
362
- description?: string | undefined;
363
363
  vaultKey?: string | undefined;
364
364
  placeholder?: string | undefined;
365
365
  }[];
366
- required?: boolean | undefined;
367
366
  description?: string | undefined;
367
+ required?: boolean | undefined;
368
368
  }>>;
369
369
  }, "strip", z.ZodTypeAny, {
370
370
  plugin?: {
@@ -387,14 +387,14 @@ export declare const moxxyPackageSchema: z.ZodObject<{
387
387
  key: string;
388
388
  kind: "string" | "boolean" | "secret" | "select";
389
389
  label: string;
390
+ description?: string | undefined;
390
391
  required?: boolean | undefined;
391
392
  options?: string[] | undefined;
392
- description?: string | undefined;
393
393
  vaultKey?: string | undefined;
394
394
  placeholder?: string | undefined;
395
395
  }[];
396
- required?: boolean | undefined;
397
396
  description?: string | undefined;
397
+ required?: boolean | undefined;
398
398
  } | undefined;
399
399
  }, {
400
400
  plugin?: {
@@ -417,14 +417,14 @@ export declare const moxxyPackageSchema: z.ZodObject<{
417
417
  key: string;
418
418
  kind: "string" | "boolean" | "secret" | "select";
419
419
  label: string;
420
+ description?: string | undefined;
420
421
  required?: boolean | undefined;
421
422
  options?: string[] | undefined;
422
- description?: string | undefined;
423
423
  vaultKey?: string | undefined;
424
424
  placeholder?: string | undefined;
425
425
  }[];
426
- required?: boolean | undefined;
427
426
  description?: string | undefined;
427
+ required?: boolean | undefined;
428
428
  } | undefined;
429
429
  }>;
430
430
  export type PluginSetupField = z.infer<typeof pluginSetupFieldSchema>;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Where a named secret comes from: a swappable block, like every other.
3
+ *
4
+ * The built-in vault (AES-256-GCM under `~/.moxxy/vault.json`, unlocked via the
5
+ * OS keychain) is a good design for one machine and unusable for a fleet: there
6
+ * is no central issuance, no rotation, and no way to revoke a single
7
+ * workstation. Every organisation already runs something that does those three
8
+ * things, so the answer is to let them plug it in rather than to reimplement it.
9
+ *
10
+ * Deliberately ONE block rather than two. A host-scoped credential (a token for
11
+ * an internal registry or a GitHub Enterprise host) is a named secret with a
12
+ * naming convention on top; splitting it into a second `CredentialProvider`
13
+ * registry would leave two overlapping abstractions to keep in sync for no
14
+ * gain.
15
+ */
16
+ export interface SecretProviderScope {
17
+ readonly cwd: string;
18
+ }
19
+ export interface SecretProviderSession {
20
+ /**
21
+ * Resolve a secret by name, or null when this provider does not hold it.
22
+ *
23
+ * Returning null rather than throwing is what makes providers composable: the
24
+ * host tries the active provider and falls back to the local vault, so
25
+ * adopting an external store does not require migrating every secret on day
26
+ * one.
27
+ *
28
+ * MUST NOT throw for an ordinary miss. A genuine failure (the store is
29
+ * unreachable, the token expired) SHOULD throw, because silently reporting
30
+ * "no such secret" for an outage would send the caller down a
31
+ * missing-credential path and hide the real cause.
32
+ */
33
+ get(name: string): Promise<string | null>;
34
+ close(): Promise<void>;
35
+ }
36
+ export interface SecretProviderDef {
37
+ readonly name: string;
38
+ readonly description?: string;
39
+ open(scope: SecretProviderScope): SecretProviderSession;
40
+ }
41
+ /** Freeze a secret-provider spec, mirroring the other `defineX` factories. */
42
+ export declare function defineSecretProvider(def: SecretProviderDef): SecretProviderDef;
43
+ /**
44
+ * The canonical secret name holding a credential for `host`.
45
+ *
46
+ * A host credential is a named secret plus a convention, which is exactly why
47
+ * there is no separate `CredentialProvider` registry: whatever store an
48
+ * organisation already plugged in for secrets serves these too.
49
+ *
50
+ * `github.example.com` becomes `MOXXY_CREDENTIAL_GITHUB_EXAMPLE_COM`. The
51
+ * derivation mirrors the provider-key convention (upper-snake, non-alphanumerics
52
+ * to `_`) so an operator who has seen one can predict the other, and a port is
53
+ * dropped because a credential belongs to the host, not to a socket.
54
+ *
55
+ * Accepts a bare host or a full URL; anything unparseable yields null rather
56
+ * than a name derived from garbage, so a caller cannot accidentally look up a
57
+ * secret keyed on a typo.
58
+ */
59
+ export declare function hostCredentialName(hostOrUrl: string): string | null;
60
+ //# sourceMappingURL=secret-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-provider.d.ts","sourceRoot":"","sources":["../src/secret-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,qBAAqB,CAAC;CACzD;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,GAAG,iBAAiB,CAE9E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBnE"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Where a named secret comes from: a swappable block, like every other.
3
+ *
4
+ * The built-in vault (AES-256-GCM under `~/.moxxy/vault.json`, unlocked via the
5
+ * OS keychain) is a good design for one machine and unusable for a fleet: there
6
+ * is no central issuance, no rotation, and no way to revoke a single
7
+ * workstation. Every organisation already runs something that does those three
8
+ * things, so the answer is to let them plug it in rather than to reimplement it.
9
+ *
10
+ * Deliberately ONE block rather than two. A host-scoped credential (a token for
11
+ * an internal registry or a GitHub Enterprise host) is a named secret with a
12
+ * naming convention on top; splitting it into a second `CredentialProvider`
13
+ * registry would leave two overlapping abstractions to keep in sync for no
14
+ * gain.
15
+ */
16
+ /** Freeze a secret-provider spec, mirroring the other `defineX` factories. */
17
+ export function defineSecretProvider(def) {
18
+ return Object.freeze({ ...def });
19
+ }
20
+ /**
21
+ * The canonical secret name holding a credential for `host`.
22
+ *
23
+ * A host credential is a named secret plus a convention, which is exactly why
24
+ * there is no separate `CredentialProvider` registry: whatever store an
25
+ * organisation already plugged in for secrets serves these too.
26
+ *
27
+ * `github.example.com` becomes `MOXXY_CREDENTIAL_GITHUB_EXAMPLE_COM`. The
28
+ * derivation mirrors the provider-key convention (upper-snake, non-alphanumerics
29
+ * to `_`) so an operator who has seen one can predict the other, and a port is
30
+ * dropped because a credential belongs to the host, not to a socket.
31
+ *
32
+ * Accepts a bare host or a full URL; anything unparseable yields null rather
33
+ * than a name derived from garbage, so a caller cannot accidentally look up a
34
+ * secret keyed on a typo.
35
+ */
36
+ export function hostCredentialName(hostOrUrl) {
37
+ const raw = hostOrUrl.trim();
38
+ if (raw.length === 0)
39
+ return null;
40
+ let host = raw;
41
+ if (raw.includes('://')) {
42
+ try {
43
+ host = new URL(raw).hostname;
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ }
49
+ else {
50
+ // Strip a port or a path if the caller passed `host:443/x`.
51
+ host = raw.split('/')[0].split(':')[0];
52
+ }
53
+ host = host.replace(/^\[|\]$/g, '').trim();
54
+ if (host.length === 0 || /\s/.test(host))
55
+ return null;
56
+ const slug = host.toUpperCase().replace(/[^A-Z0-9]+/g, '_').replace(/^_+|_+$/g, '');
57
+ return slug.length > 0 ? `MOXXY_CREDENTIAL_${slug}` : null;
58
+ }
59
+ //# sourceMappingURL=secret-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-provider.js","sourceRoot":"","sources":["../src/secret-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA8BH,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,GAAsB;IACzD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;SAAM,CAAC;QACN,4DAA4D;QAC5D,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IAC3C,CAAC;IACD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC"}
package/dist/server.d.ts CHANGED
@@ -14,7 +14,9 @@
14
14
  * on the main barrel because types are erased at build time and never reach a
15
15
  * bundle.
16
16
  */
17
- export { writeFileAtomic, writeFileAtomicSync, moxxyHome, moxxyPath, } from './fs-utils.js';
17
+ export { writeFileAtomic, writeFileAtomicSync, moxxyHome, moxxyPath, ensurePrivateDir, ensurePrivateFile, pruneStaleTempFiles, PRIVATE_DIR_MODE, PRIVATE_FILE_MODE, } from './fs-utils.js';
18
+ export { resolveOsPrincipal } from './principal-os.js';
19
+ export { installEgressProxy, readProxyEnv, parseNoProxy, shouldBypassProxy, redactProxyUrl, hasProxy, } from './egress.js';
18
20
  export { CrossProcessFireLock } from './cross-process-lock.js';
19
21
  export { readRequestBody, bearerTokenMatches } from './http-utils.js';
20
22
  export { channelStatusPath, writeChannelStatus, readChannelStatus, clearChannelStatus, } from './channel-status.js';
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,SAAS,GACV,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAItE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,QAAQ,GACT,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAItE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,mBAAmB,CAAC"}
package/dist/server.js CHANGED
@@ -14,7 +14,12 @@
14
14
  * on the main barrel because types are erased at build time and never reach a
15
15
  * bundle.
16
16
  */
17
- export { writeFileAtomic, writeFileAtomicSync, moxxyHome, moxxyPath, } from './fs-utils.js';
17
+ export { writeFileAtomic, writeFileAtomicSync, moxxyHome, moxxyPath, ensurePrivateDir, ensurePrivateFile, pruneStaleTempFiles, PRIVATE_DIR_MODE, PRIVATE_FILE_MODE, } from './fs-utils.js';
18
+ // The local OS account as a Principal (node:os). The type and its pure helpers
19
+ // ride the main barrel.
20
+ export { resolveOsPrincipal } from './principal-os.js';
21
+ // Outbound proxy support for global `fetch` (dynamic `undici` import). Node-only.
22
+ export { installEgressProxy, readProxyEnv, parseNoProxy, shouldBypassProxy, redactProxyUrl, hasProxy, } from './egress.js';
18
23
  // Cross-process "fire exactly once" lock (node:fs). Value lives here; its
19
24
  // options type is re-exported from the main barrel like other erased types.
20
25
  export { CrossProcessFireLock } from './cross-process-lock.js';
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,0EAA0E;AAC1E,4EAA4E;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtE,gFAAgF;AAChF,gFAAgF;AAChF,kFAAkF;AAClF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,4EAA4E;AAC5E,iFAAiF;AACjF,iFAAiF;AACjF,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,+EAA+E;AAC/E,wBAAwB;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,kFAAkF;AAClF,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,0EAA0E;AAC1E,4EAA4E;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtE,gFAAgF;AAChF,gFAAgF;AAChF,kFAAkF;AAClF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,4EAA4E;AAC5E,iFAAiF;AACjF,iFAAiF;AACjF,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,mBAAmB,CAAC"}
@@ -6,6 +6,7 @@ import type { ApprovalResolver, ModeBadge } from './mode.js';
6
6
  import type { PermissionResolver } from './permission.js';
7
7
  import type { ModelDescriptor, ProviderKeyValidation } from './provider.js';
8
8
  import type { PluginSetupSpec } from './schemas.js';
9
+ import type { ToolIcon } from './tool-icon.js';
9
10
  import type { ToolCompactPresentation } from './tool.js';
10
11
  /**
11
12
  * Options accepted by `SessionLike.runTurn`. Defined here (rather than in
@@ -75,6 +76,8 @@ export interface ToolInfo {
75
76
  readonly description: string;
76
77
  /** Compact presentation hint (plain data - crosses the wire intact). */
77
78
  readonly compact?: ToolCompactPresentation;
79
+ /** Declared icon, so a surface renders the tool's own choice, not a guess. */
80
+ readonly icon?: ToolIcon;
78
81
  }
79
82
  /** Serializable skill metadata. */
80
83
  export interface SkillInfo {
@@ -1 +1 @@
1
- {"version":3,"file":"session-like.d.ts","sourceRoot":"","sources":["../src/session-like.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-like.d.ts","sourceRoot":"","sources":["../src/session-like.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Ed25519 detached-signature verification over exact bytes.
3
+ *
4
+ * Lives in the SDK rather than beside its first caller because two different
5
+ * things now depend on it, and one of them is policy. Policy has to bind on a
6
+ * machine with no plugins installed at all, so the verifier it uses cannot sit
7
+ * inside a plugin: a control that a user can disable by uninstalling something
8
+ * is not a control.
9
+ *
10
+ * Verifies over the bytes as received, never over a re-serialisation of the
11
+ * parsed object. Canonicalising first would let two different documents share a
12
+ * signature whenever the parser and the serialiser disagree about anything,
13
+ * which is how signature-verification bypasses usually happen.
14
+ *
15
+ * Returns false rather than throwing on a malformed key or signature: to a
16
+ * caller "this did not verify" and "this could not be parsed" warrant the same
17
+ * response, and a throw here would tempt a try/catch that swallows both into a
18
+ * success path.
19
+ */
20
+ export declare function verifyEd25519(bytes: Uint8Array, signatureB64: string, publicKeyPem: string): boolean;
21
+ //# sourceMappingURL=signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAQT"}
@@ -0,0 +1,32 @@
1
+ import { createPublicKey, verify as cryptoVerify } from 'node:crypto';
2
+ /**
3
+ * Ed25519 detached-signature verification over exact bytes.
4
+ *
5
+ * Lives in the SDK rather than beside its first caller because two different
6
+ * things now depend on it, and one of them is policy. Policy has to bind on a
7
+ * machine with no plugins installed at all, so the verifier it uses cannot sit
8
+ * inside a plugin: a control that a user can disable by uninstalling something
9
+ * is not a control.
10
+ *
11
+ * Verifies over the bytes as received, never over a re-serialisation of the
12
+ * parsed object. Canonicalising first would let two different documents share a
13
+ * signature whenever the parser and the serialiser disagree about anything,
14
+ * which is how signature-verification bypasses usually happen.
15
+ *
16
+ * Returns false rather than throwing on a malformed key or signature: to a
17
+ * caller "this did not verify" and "this could not be parsed" warrant the same
18
+ * response, and a throw here would tempt a try/catch that swallows both into a
19
+ * success path.
20
+ */
21
+ export function verifyEd25519(bytes, signatureB64, publicKeyPem) {
22
+ if (!publicKeyPem || !signatureB64)
23
+ return false;
24
+ try {
25
+ const key = createPublicKey(publicKeyPem);
26
+ return cryptoVerify(null, Buffer.from(bytes), key, Buffer.from(signatureB64, 'base64'));
27
+ }
28
+ catch {
29
+ return false;
30
+ }
31
+ }
32
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AAEtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAiB,EACjB,YAAoB,EACpB,YAAoB;IAEpB,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QAC1C,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * What a tool looks like, as a semantic name rather than a glyph.
3
+ *
4
+ * A CLOSED vocabulary on purpose. Surfaces render wildly differently: the
5
+ * desktop draws SVG, the TUI prints a character, a future web surface might do
6
+ * something else again. If this were a free string, a plugin could name an icon
7
+ * no surface owns and every surface would have to guess, so in practice
8
+ * everything would fall back and the field would be decorative. A fixed set
9
+ * means each surface maps it exhaustively and a plugin's choice actually
10
+ * survives to the screen.
11
+ *
12
+ * The names describe WHAT THE TOOL TOUCHES, not what it looks like, so a
13
+ * surface is free to change its artwork without every plugin becoming wrong.
14
+ *
15
+ * Adding a member is a breaking change for surfaces (their maps stop being
16
+ * exhaustive and stop compiling), which is the intended cost: a new icon should
17
+ * be a deliberate decision across surfaces, not a silent fallback to a wrench.
18
+ */
19
+ export declare const TOOL_ICONS: readonly ["file", "folder", "search", "edit", "diff", "terminal", "globe", "chat", "workflow", "agent", "settings", "lock", "plug", "mic", "speaker", "smartphone", "workspace", "clipboard", "spark", "wrench"];
20
+ export type ToolIcon = (typeof TOOL_ICONS)[number];
21
+ export declare function isToolIcon(value: unknown): value is ToolIcon;
22
+ //# sourceMappingURL=tool-icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-icon.d.ts","sourceRoot":"","sources":["../src/tool-icon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU,kNAqBb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * What a tool looks like, as a semantic name rather than a glyph.
3
+ *
4
+ * A CLOSED vocabulary on purpose. Surfaces render wildly differently: the
5
+ * desktop draws SVG, the TUI prints a character, a future web surface might do
6
+ * something else again. If this were a free string, a plugin could name an icon
7
+ * no surface owns and every surface would have to guess, so in practice
8
+ * everything would fall back and the field would be decorative. A fixed set
9
+ * means each surface maps it exhaustively and a plugin's choice actually
10
+ * survives to the screen.
11
+ *
12
+ * The names describe WHAT THE TOOL TOUCHES, not what it looks like, so a
13
+ * surface is free to change its artwork without every plugin becoming wrong.
14
+ *
15
+ * Adding a member is a breaking change for surfaces (their maps stop being
16
+ * exhaustive and stop compiling), which is the intended cost: a new icon should
17
+ * be a deliberate decision across surfaces, not a silent fallback to a wrench.
18
+ */
19
+ export const TOOL_ICONS = [
20
+ 'file',
21
+ 'folder',
22
+ 'search',
23
+ 'edit',
24
+ 'diff',
25
+ 'terminal',
26
+ 'globe',
27
+ 'chat',
28
+ 'workflow',
29
+ 'agent',
30
+ 'settings',
31
+ 'lock',
32
+ 'plug',
33
+ 'mic',
34
+ 'speaker',
35
+ 'smartphone',
36
+ 'workspace',
37
+ 'clipboard',
38
+ 'spark',
39
+ 'wrench',
40
+ ];
41
+ export function isToolIcon(value) {
42
+ return typeof value === 'string' && TOOL_ICONS.includes(value);
43
+ }
44
+ //# sourceMappingURL=tool-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-icon.js","sourceRoot":"","sources":["../src/tool-icon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,UAAU;IACV,OAAO;IACP,UAAU;IACV,MAAM;IACN,MAAM;IACN,KAAK;IACL,SAAS;IACT,YAAY;IACZ,WAAW;IACX,WAAW;IACX,OAAO;IACP,QAAQ;CACA,CAAC;AAIX,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,UAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5F,CAAC"}