@alistigo/claude-storage-plugin 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,9 +1,22 @@
1
- function le(d) {
1
+ function le() {
2
+ try {
3
+ return new URL(document.baseURI).pathname;
4
+ } catch {
5
+ return "";
6
+ }
7
+ }
8
+ function ue() {
9
+ if (window.claudeArtifactStatus === "published")
10
+ return { published: !0, artifactId: null };
11
+ const d = le().match(/^\/artifact\/([0-9a-f-]{36})/i);
12
+ return { published: !!d, artifactId: d?.[1] ?? null };
13
+ }
14
+ function ce(d) {
2
15
  return d && d.__esModule && Object.prototype.hasOwnProperty.call(d, "default") ? d.default : d;
3
16
  }
4
- var V = { exports: {} }, U, Z;
5
- function ce() {
6
- if (Z) return U;
17
+ var F = { exports: {} }, G, Z;
18
+ function fe() {
19
+ if (Z) return G;
7
20
  Z = 1;
8
21
  function d(i) {
9
22
  try {
@@ -12,91 +25,91 @@ function ce() {
12
25
  return '"[Circular]"';
13
26
  }
14
27
  }
15
- U = s;
16
- function s(i, c, m) {
17
- var E = m && m.stringify || d, q = 1;
28
+ G = s;
29
+ function s(i, u, m) {
30
+ var E = m && m.stringify || d, V = 1;
18
31
  if (typeof i == "object" && i !== null) {
19
- var z = c.length + q;
32
+ var z = u.length + V;
20
33
  if (z === 1) return i;
21
34
  var C = new Array(z);
22
35
  C[0] = E(i);
23
36
  for (var k = 1; k < z; k++)
24
- C[k] = E(c[k]);
37
+ C[k] = E(u[k]);
25
38
  return C.join(" ");
26
39
  }
27
40
  if (typeof i != "string")
28
41
  return i;
29
- var w = c.length;
42
+ var w = u.length;
30
43
  if (w === 0) return i;
31
- for (var v = "", h = 1 - q, u = -1, j = i && i.length || 0, l = 0; l < j; ) {
44
+ for (var v = "", h = 1 - V, c = -1, j = i && i.length || 0, l = 0; l < j; ) {
32
45
  if (i.charCodeAt(l) === 37 && l + 1 < j) {
33
- switch (u = u > -1 ? u : 0, i.charCodeAt(l + 1)) {
46
+ switch (c = c > -1 ? c : 0, i.charCodeAt(l + 1)) {
34
47
  case 100:
35
48
  // 'd'
36
49
  case 102:
37
- if (h >= w || c[h] == null) break;
38
- u < l && (v += i.slice(u, l)), v += Number(c[h]), u = l + 2, l++;
50
+ if (h >= w || u[h] == null) break;
51
+ c < l && (v += i.slice(c, l)), v += Number(u[h]), c = l + 2, l++;
39
52
  break;
40
53
  case 105:
41
- if (h >= w || c[h] == null) break;
42
- u < l && (v += i.slice(u, l)), v += Math.floor(Number(c[h])), u = l + 2, l++;
54
+ if (h >= w || u[h] == null) break;
55
+ c < l && (v += i.slice(c, l)), v += Math.floor(Number(u[h])), c = l + 2, l++;
43
56
  break;
44
57
  case 79:
45
58
  // 'O'
46
59
  case 111:
47
60
  // 'o'
48
61
  case 106:
49
- if (h >= w || c[h] === void 0) break;
50
- u < l && (v += i.slice(u, l));
51
- var M = typeof c[h];
52
- if (M === "string") {
53
- v += "'" + c[h] + "'", u = l + 2, l++;
62
+ if (h >= w || u[h] === void 0) break;
63
+ c < l && (v += i.slice(c, l));
64
+ var R = typeof u[h];
65
+ if (R === "string") {
66
+ v += "'" + u[h] + "'", c = l + 2, l++;
54
67
  break;
55
68
  }
56
- if (M === "function") {
57
- v += c[h].name || "<anonymous>", u = l + 2, l++;
69
+ if (R === "function") {
70
+ v += u[h].name || "<anonymous>", c = l + 2, l++;
58
71
  break;
59
72
  }
60
- v += E(c[h]), u = l + 2, l++;
73
+ v += E(u[h]), c = l + 2, l++;
61
74
  break;
62
75
  case 115:
63
76
  if (h >= w)
64
77
  break;
65
- u < l && (v += i.slice(u, l)), v += String(c[h]), u = l + 2, l++;
78
+ c < l && (v += i.slice(c, l)), v += String(u[h]), c = l + 2, l++;
66
79
  break;
67
80
  case 37:
68
- u < l && (v += i.slice(u, l)), v += "%", u = l + 2, l++, h--;
81
+ c < l && (v += i.slice(c, l)), v += "%", c = l + 2, l++, h--;
69
82
  break;
70
83
  }
71
84
  ++h;
72
85
  }
73
86
  ++l;
74
87
  }
75
- return u === -1 ? i : (u < j && (v += i.slice(u)), v);
88
+ return c === -1 ? i : (c < j && (v += i.slice(c)), v);
76
89
  }
77
- return U;
90
+ return G;
78
91
  }
79
92
  var ee;
80
- function ue() {
81
- if (ee) return V.exports;
93
+ function de() {
94
+ if (ee) return F.exports;
82
95
  ee = 1;
83
- const d = ce();
84
- V.exports = w;
96
+ const d = fe();
97
+ F.exports = w;
85
98
  const s = oe().console || {}, i = {
86
- mapHttpRequest: R,
87
- mapHttpResponse: R,
88
- wrapRequestSerializer: D,
89
- wrapResponseSerializer: D,
90
- wrapErrorSerializer: D,
91
- req: R,
92
- res: R,
99
+ mapHttpRequest: I,
100
+ mapHttpResponse: I,
101
+ wrapRequestSerializer: N,
102
+ wrapResponseSerializer: N,
103
+ wrapErrorSerializer: N,
104
+ req: I,
105
+ res: I,
93
106
  err: J,
94
107
  errWithCause: J
95
108
  };
96
- function c(e, t) {
109
+ function u(e, t) {
97
110
  return e === "silent" ? 1 / 0 : t.levels.values[e];
98
111
  }
99
- const m = /* @__PURE__ */ Symbol("pino.logFuncs"), E = /* @__PURE__ */ Symbol("pino.hierarchy"), q = {
112
+ const m = /* @__PURE__ */ Symbol("pino.logFuncs"), E = /* @__PURE__ */ Symbol("pino.hierarchy"), V = {
100
113
  error: "log",
101
114
  fatal: "error",
102
115
  warn: "error",
@@ -114,7 +127,7 @@ function ue() {
114
127
  function C(e, t, n) {
115
128
  const a = {};
116
129
  t.forEach((o) => {
117
- a[o] = n[o] ? n[o] : s[o] || s[q[o] || "log"] || L;
130
+ a[o] = n[o] ? n[o] : s[o] || s[V[o] || "log"] || L;
118
131
  }), e[m] = a;
119
132
  }
120
133
  function k(e, t) {
@@ -132,15 +145,15 @@ function ue() {
132
145
  const a = e.serializers || {}, o = k(e.browser.serialize, a);
133
146
  let g = e.browser.serialize;
134
147
  Array.isArray(e.browser.serialize) && e.browser.serialize.indexOf("!stdSerializers.err") > -1 && (g = !1);
135
- const p = Object.keys(e.customLevels || {}), f = ["error", "fatal", "warn", "info", "debug", "trace"].concat(p);
136
- typeof n == "function" && f.forEach(function(O) {
137
- n[O] = n;
148
+ const O = Object.keys(e.customLevels || {}), f = ["error", "fatal", "warn", "info", "debug", "trace"].concat(O);
149
+ typeof n == "function" && f.forEach(function(p) {
150
+ n[p] = n;
138
151
  }), (e.enabled === !1 || e.browser.disabled) && (e.level = "silent");
139
152
  const y = e.level || "info", r = Object.create(n);
140
153
  r.log || (r.log = L), C(r, f, n), z({}, r), Object.defineProperty(r, "levelVal", {
141
154
  get: S
142
155
  }), Object.defineProperty(r, "level", {
143
- get: G,
156
+ get: D,
144
157
  set: x
145
158
  });
146
159
  const b = {
@@ -154,43 +167,43 @@ function ue() {
154
167
  messageKey: e.messageKey || "msg",
155
168
  onChild: e.onChild || L
156
169
  };
157
- r.levels = v(e), r.level = y, r.isLevelEnabled = function(O) {
158
- return this.levels.values[O] ? this.levels.values[O] >= this.levels.values[this.level] : !1;
159
- }, r.setMaxListeners = r.getMaxListeners = r.emit = r.addListener = r.on = r.prependListener = r.once = r.prependOnceListener = r.removeListener = r.removeAllListeners = r.listeners = r.listenerCount = r.eventNames = r.write = r.flush = L, r.serializers = a, r._serialize = o, r._stdErrSerialize = g, r.child = function(...O) {
160
- return Q.call(this, b, ...O);
161
- }, t && (r._logEvent = N());
170
+ r.levels = v(e), r.level = y, r.isLevelEnabled = function(p) {
171
+ return this.levels.values[p] ? this.levels.values[p] >= this.levels.values[this.level] : !1;
172
+ }, r.setMaxListeners = r.getMaxListeners = r.emit = r.addListener = r.on = r.prependListener = r.once = r.prependOnceListener = r.removeListener = r.removeAllListeners = r.listeners = r.listenerCount = r.eventNames = r.write = r.flush = L, r.serializers = a, r._serialize = o, r._stdErrSerialize = g, r.child = function(...p) {
173
+ return Q.call(this, b, ...p);
174
+ }, t && (r._logEvent = K());
162
175
  function S() {
163
- return c(this.level, this);
176
+ return u(this.level, this);
164
177
  }
165
- function G() {
178
+ function D() {
166
179
  return this._level;
167
180
  }
168
- function x(O) {
169
- if (O !== "silent" && !this.levels.values[O])
170
- throw Error("unknown level " + O);
171
- this._level = O, j(this, b, r, "error"), j(this, b, r, "fatal"), j(this, b, r, "warn"), j(this, b, r, "info"), j(this, b, r, "debug"), j(this, b, r, "trace"), p.forEach((_) => {
181
+ function x(p) {
182
+ if (p !== "silent" && !this.levels.values[p])
183
+ throw Error("unknown level " + p);
184
+ this._level = p, j(this, b, r, "error"), j(this, b, r, "fatal"), j(this, b, r, "warn"), j(this, b, r, "info"), j(this, b, r, "debug"), j(this, b, r, "trace"), O.forEach((_) => {
172
185
  j(this, b, r, _);
173
186
  });
174
187
  }
175
- function Q(O, _, A) {
188
+ function Q(p, _, A) {
176
189
  if (!_)
177
190
  throw new Error("missing bindings for child Pino");
178
191
  A = A || {}, o && _.serializers && (A.serializers = _.serializers);
179
192
  const $ = A.serializers;
180
193
  if (o && $) {
181
194
  var B = Object.assign({}, a, $), X = e.browser.serialize === !0 ? Object.keys(B) : o;
182
- delete _.serializers, K([_], X, B, this._stdErrSerialize);
195
+ delete _.serializers, U([_], X, B, this._stdErrSerialize);
183
196
  }
184
- function Y(I) {
185
- this._childLevel = (I._childLevel | 0) + 1, this.bindings = _, B && (this.serializers = B, this._serialize = X), t && (this._logEvent = N(
186
- [].concat(I._logEvent.bindings, _)
197
+ function Y(M) {
198
+ this._childLevel = (M._childLevel | 0) + 1, this.bindings = _, B && (this.serializers = B, this._serialize = X), t && (this._logEvent = K(
199
+ [].concat(M._logEvent.bindings, _)
187
200
  ));
188
201
  }
189
202
  Y.prototype = this;
190
- const F = new Y(this);
191
- return z(this, F), F.child = function(...I) {
192
- return Q.call(this, O, ...I);
193
- }, F.level = A.level || this.level, O.onChild(F), F;
203
+ const P = new Y(this);
204
+ return z(this, P), P.child = function(...M) {
205
+ return Q.call(this, p, ...M);
206
+ }, P.level = A.level || this.level, p.onChild(P), P;
194
207
  }
195
208
  return r;
196
209
  }
@@ -225,7 +238,7 @@ function ue() {
225
238
  60: "fatal"
226
239
  }
227
240
  }, w.stdSerializers = i, w.stdTimeFunctions = Object.assign({}, { nullTime: W, epochTime: H, unixTime: se, isoTime: ae });
228
- function u(e) {
241
+ function c(e) {
229
242
  const t = [];
230
243
  e.bindings && t.push(e.bindings);
231
244
  let n = e[E];
@@ -235,17 +248,17 @@ function ue() {
235
248
  }
236
249
  function j(e, t, n, a) {
237
250
  if (Object.defineProperty(e, a, {
238
- value: c(e.level, n) > c(a, n) ? L : n[m][a],
251
+ value: u(e.level, n) > u(a, n) ? L : n[m][a],
239
252
  writable: !0,
240
253
  enumerable: !0,
241
254
  configurable: !0
242
255
  }), e[a] === L) {
243
256
  if (!t.transmit) return;
244
- const g = t.transmit.level || e.level, p = c(g, n);
245
- if (c(a, n) < p) return;
257
+ const g = t.transmit.level || e.level, O = u(g, n);
258
+ if (u(a, n) < O) return;
246
259
  }
247
- e[a] = M(e, t, n, a);
248
- const o = u(e);
260
+ e[a] = R(e, t, n, a);
261
+ const o = c(e);
249
262
  o.length !== 0 && (e[a] = l(o, e[a]));
250
263
  }
251
264
  function l(e, t) {
@@ -253,22 +266,22 @@ function ue() {
253
266
  return t.apply(this, [...e, ...arguments]);
254
267
  };
255
268
  }
256
- function M(e, t, n, a) {
269
+ function R(e, t, n, a) {
257
270
  return /* @__PURE__ */ (function(o) {
258
271
  return function() {
259
- const p = t.timestamp(), f = new Array(arguments.length), y = Object.getPrototypeOf && Object.getPrototypeOf(this) === s ? s : this;
272
+ const O = t.timestamp(), f = new Array(arguments.length), y = Object.getPrototypeOf && Object.getPrototypeOf(this) === s ? s : this;
260
273
  for (var r = 0; r < f.length; r++) f[r] = arguments[r];
261
274
  var b = !1;
262
- if (t.serialize && (K(f, this._serialize, this.serializers, this._stdErrSerialize), b = !0), t.asObject || t.formatters ? o.call(y, ...re(this, a, f, p, t)) : o.apply(y, f), t.transmit) {
263
- const S = t.transmit.level || e._level, G = c(S, n), x = c(a, n);
264
- if (x < G) return;
275
+ if (t.serialize && (U(f, this._serialize, this.serializers, this._stdErrSerialize), b = !0), t.asObject || t.formatters ? o.call(y, ...re(this, a, f, O, t)) : o.apply(y, f), t.transmit) {
276
+ const S = t.transmit.level || e._level, D = u(S, n), x = u(a, n);
277
+ if (x < D) return;
265
278
  ne(this, {
266
- ts: p,
279
+ ts: O,
267
280
  methodLevel: a,
268
281
  methodValue: x,
269
282
  transmitValue: n.levels.values[t.transmit.level || e._level],
270
283
  send: t.transmit.send,
271
- val: c(e._level, n)
284
+ val: u(e._level, n)
272
285
  }, f, b);
273
286
  }
274
287
  };
@@ -277,7 +290,7 @@ function ue() {
277
290
  function re(e, t, n, a, o) {
278
291
  const {
279
292
  level: g,
280
- log: p = (S) => S
293
+ log: O = (S) => S
281
294
  } = o.formatters || {}, f = n.slice();
282
295
  let y = f[0];
283
296
  const r = {};
@@ -291,17 +304,17 @@ function ue() {
291
304
  if (y !== null && typeof y == "object")
292
305
  for (; b-- && typeof f[0] == "object"; )
293
306
  Object.assign(r, f.shift());
294
- return [p(r), ...f];
307
+ return [O(r), ...f];
295
308
  } else {
296
309
  if (y !== null && typeof y == "object") {
297
310
  for (; b-- && typeof f[0] == "object"; )
298
311
  Object.assign(r, f.shift());
299
312
  y = f.length ? d(f.shift(), f) : void 0;
300
313
  } else typeof y == "string" && (y = d(f.shift(), f));
301
- return y !== void 0 && (r[o.messageKey] = y), [p(r)];
314
+ return y !== void 0 && (r[o.messageKey] = y), [O(r)];
302
315
  }
303
316
  }
304
- function K(e, t, n, a) {
317
+ function U(e, t, n, a) {
305
318
  for (const o in e)
306
319
  if (a && e[o] instanceof Error)
307
320
  e[o] = w.stdSerializers.err(e[o]);
@@ -310,17 +323,17 @@ function ue() {
310
323
  t.indexOf(g) > -1 && g in n && (e[o][g] = n[g](e[o][g]));
311
324
  }
312
325
  function ne(e, t, n, a = !1) {
313
- const o = t.send, g = t.ts, p = t.methodLevel, f = t.methodValue, y = t.val, r = e._logEvent.bindings;
314
- a || K(
326
+ const o = t.send, g = t.ts, O = t.methodLevel, f = t.methodValue, y = t.val, r = e._logEvent.bindings;
327
+ a || U(
315
328
  n,
316
329
  e._serialize || Object.keys(e.serializers),
317
330
  e.serializers,
318
331
  e._stdErrSerialize === void 0 ? !0 : e._stdErrSerialize
319
332
  ), e._logEvent.ts = g, e._logEvent.messages = n.filter(function(b) {
320
333
  return r.indexOf(b) === -1;
321
- }), e._logEvent.level.label = p, e._logEvent.level.value = f, o(p, e._logEvent, y), e._logEvent = N(r);
334
+ }), e._logEvent.level.label = O, e._logEvent.level.value = f, o(O, e._logEvent, y), e._logEvent = K(r);
322
335
  }
323
- function N(e) {
336
+ function K(e) {
324
337
  return {
325
338
  ts: 0,
326
339
  messages: [],
@@ -341,10 +354,10 @@ function ue() {
341
354
  function ie(e) {
342
355
  return typeof e.timestamp == "function" ? e.timestamp : e.timestamp === !1 ? W : H;
343
356
  }
344
- function R() {
357
+ function I() {
345
358
  return {};
346
359
  }
347
- function D(e) {
360
+ function N(e) {
348
361
  return e;
349
362
  }
350
363
  function L() {
@@ -376,14 +389,14 @@ function ue() {
376
389
  return e(self) || e(window) || e(this) || {};
377
390
  }
378
391
  }
379
- return V.exports.default = w, V.exports.pino = w, V.exports;
392
+ return F.exports.default = w, F.exports.pino = w, F.exports;
380
393
  }
381
- var fe = ue();
382
- const de = /* @__PURE__ */ le(fe), he = de({
394
+ var he = de();
395
+ const be = /* @__PURE__ */ ce(he), me = be({
383
396
  level: "silent",
384
397
  browser: { asObject: !0 }
385
- }), te = (d, s) => he.child({ module: d, ...s }), be = te("alistigo:claude-storage:retry"), me = 1e3, ve = 3;
386
- function ge(d, s) {
398
+ }), te = (d, s) => me.child({ module: d, ...s }), ve = te("alistigo:claude-storage:retry"), ge = 1e3, ye = 3;
399
+ function we(d, s) {
387
400
  return Promise.race([
388
401
  d().then((i) => ({ tag: "ok", value: i })).catch((i) => ({ tag: "error", err: i })),
389
402
  new Promise(
@@ -391,17 +404,17 @@ function ge(d, s) {
391
404
  )
392
405
  ]);
393
406
  }
394
- async function T(d, s = me, i = ve) {
395
- for (let c = 0; c <= i; c++) {
396
- const m = await ge(d, s);
407
+ async function T(d, s = ge, i = ye) {
408
+ for (let u = 0; u <= i; u++) {
409
+ const m = await we(d, s);
397
410
  if (m.tag === "ok") return m.value;
398
411
  if (m.tag === "error") throw m.err;
399
- c < i && be.debug({ attempt: c }, "claude storage timed out, retrying");
412
+ u < i && ve.debug({ attempt: u }, "claude storage timed out, retrying");
400
413
  }
401
414
  throw new Error(`Claude storage timed out after ${i + 1} attempts`);
402
415
  }
403
- const P = te("alistigo:claude-storage");
404
- class ye {
416
+ const q = te("alistigo:claude-storage");
417
+ class pe {
405
418
  get storage() {
406
419
  const s = window.storage;
407
420
  if (!s)
@@ -410,45 +423,53 @@ class ye {
410
423
  );
411
424
  return s;
412
425
  }
426
+ requirePublished() {
427
+ if (!ue().published)
428
+ throw new Error(
429
+ "Storage is unavailable in draft mode — publish the artifact and open it via its public URL."
430
+ );
431
+ }
413
432
  async get(s) {
433
+ this.requirePublished();
414
434
  try {
415
- P.debug({ key: s }, "get");
435
+ q.debug({ key: s }, "get");
416
436
  const i = await T(() => this.storage.get(s));
417
437
  return JSON.parse(i.value);
418
438
  } catch (i) {
419
- P.debug({ key: s, err: i }, "get returned nothing (key may not exist)");
439
+ q.debug({ key: s, err: i }, "get returned nothing (key may not exist)");
420
440
  return;
421
441
  }
422
442
  }
423
443
  async set(s, i) {
424
- P.debug({ key: s }, "set"), await T(() => this.storage.set(s, JSON.stringify(i)));
444
+ this.requirePublished(), q.debug({ key: s }, "set"), await T(() => this.storage.set(s, JSON.stringify(i)));
425
445
  }
426
446
  async del(s) {
427
- P.debug({ key: s }, "del"), await T(() => this.storage.delete(s));
447
+ this.requirePublished(), q.debug({ key: s }, "del"), await T(() => this.storage.delete(s));
428
448
  }
429
449
  async list(s = "") {
450
+ this.requirePublished();
430
451
  try {
431
- return P.debug({ prefix: s }, "list"), (await T(() => this.storage.list(s)))?.keys ?? [];
452
+ return q.debug({ prefix: s }, "list"), (await T(() => this.storage.list(s)))?.keys ?? [];
432
453
  } catch {
433
454
  return [];
434
455
  }
435
456
  }
436
457
  }
437
- function we() {
458
+ function Oe() {
438
459
  return typeof window < "u" && typeof window.claude?.complete == "function";
439
460
  }
440
- const Oe = "0.3.0", pe = {
441
- version: Oe
442
- }, je = {
461
+ const je = "0.4.1", Ee = {
462
+ version: je
463
+ }, Se = {
443
464
  name: "@alistigo/claude-storage-plugin",
444
- version: pe.version,
465
+ version: Ee.version,
445
466
  type: "storage",
446
467
  storage: {
447
468
  isAvailable() {
448
- return we();
469
+ return Oe();
449
470
  },
450
471
  createStore() {
451
- return new ye();
472
+ return new pe();
452
473
  },
453
474
  async listKeys(d = "") {
454
475
  const s = window.storage;
@@ -472,9 +493,9 @@ const Oe = "0.3.0", pe = {
472
493
  }
473
494
  };
474
495
  export {
475
- ye as ClaudeKeyValueStore,
476
- je as default,
477
- we as isClaudeArtifactContext,
496
+ pe as ClaudeKeyValueStore,
497
+ Se as default,
498
+ Oe as isClaudeArtifactContext,
478
499
  T as withStorageRetry
479
500
  };
480
501
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../node_modules/.pnpm/pino@9.14.0/node_modules/pino/browser.js","../../logger/dist/index.js","../src/retry.ts","../src/claude-key-value-store.ts","../src/claude-storage-plugin.ts"],"sourcesContent":["'use strict'\nfunction tryStringify (o) {\n try { return JSON.stringify(o) } catch(e) { return '\"[Circular]\"' }\n}\n\nmodule.exports = format\n\nfunction format(f, args, opts) {\n var ss = (opts && opts.stringify) || tryStringify\n var offset = 1\n if (typeof f === 'object' && f !== null) {\n var len = args.length + offset\n if (len === 1) return f\n var objects = new Array(len)\n objects[0] = ss(f)\n for (var index = 1; index < len; index++) {\n objects[index] = ss(args[index])\n }\n return objects.join(' ')\n }\n if (typeof f !== 'string') {\n return f\n }\n var argLen = args.length\n if (argLen === 0) return f\n var str = ''\n var a = 1 - offset\n var lastPos = -1\n var flen = (f && f.length) || 0\n for (var i = 0; i < flen;) {\n if (f.charCodeAt(i) === 37 && i + 1 < flen) {\n lastPos = lastPos > -1 ? lastPos : 0\n switch (f.charCodeAt(i + 1)) {\n case 100: // 'd'\n case 102: // 'f'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Number(args[a])\n lastPos = i + 2\n i++\n break\n case 105: // 'i'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Math.floor(Number(args[a]))\n lastPos = i + 2\n i++\n break\n case 79: // 'O'\n case 111: // 'o'\n case 106: // 'j'\n if (a >= argLen)\n break\n if (args[a] === undefined) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n var type = typeof args[a]\n if (type === 'string') {\n str += '\\'' + args[a] + '\\''\n lastPos = i + 2\n i++\n break\n }\n if (type === 'function') {\n str += args[a].name || '<anonymous>'\n lastPos = i + 2\n i++\n break\n }\n str += ss(args[a])\n lastPos = i + 2\n i++\n break\n case 115: // 's'\n if (a >= argLen)\n break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += String(args[a])\n lastPos = i + 2\n i++\n break\n case 37: // '%'\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += '%'\n lastPos = i + 2\n i++\n a--\n break\n }\n ++a\n }\n ++i\n }\n if (lastPos === -1)\n return f\n else if (lastPos < flen) {\n str += f.slice(lastPos)\n }\n\n return str\n}\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue,\n errWithCause: asErrValue\n}\nfunction levelToValue (level, logger) {\n return level === 'silent'\n ? Infinity\n : logger.levels.values[level]\n}\nconst baseLogFunctionSymbol = Symbol('pino.logFuncs')\nconst hierarchySymbol = Symbol('pino.hierarchy')\n\nconst logFallbackMap = {\n error: 'log',\n fatal: 'error',\n warn: 'error',\n info: 'log',\n debug: 'log',\n trace: 'log'\n}\n\nfunction appendChildLogger (parentLogger, childLogger) {\n const newEntry = {\n logger: childLogger,\n parent: parentLogger[hierarchySymbol]\n }\n childLogger[hierarchySymbol] = newEntry\n}\n\nfunction setupBaseLogFunctions (logger, levels, proto) {\n const logFunctions = {}\n levels.forEach(level => {\n logFunctions[level] = proto[level] ? proto[level] : (_console[level] || _console[logFallbackMap[level] || 'log'] || noop)\n })\n logger[baseLogFunctionSymbol] = logFunctions\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const customLevels = Object.keys(opts.customLevels || {})\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace'].concat(customLevels)\n\n if (typeof proto === 'function') {\n levels.forEach(function (level) {\n proto[level] = proto\n })\n }\n if (opts.enabled === false || opts.browser.disabled) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n setupBaseLogFunctions(logger, levels, proto)\n // setup root hierarchy entry\n appendChildLogger({}, logger)\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n asObjectBindingsOnly: opts.browser.asObjectBindingsOnly,\n formatters: opts.browser.formatters,\n levels,\n timestamp: getTimeFunction(opts),\n messageKey: opts.messageKey || 'msg',\n onChild: opts.onChild || noop\n }\n logger.levels = getLevels(opts)\n logger.level = level\n\n logger.isLevelEnabled = function (level) {\n if (!this.levels.values[level]) {\n return false\n }\n\n return this.levels.values[level] >= this.levels.values[this.level]\n }\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = function (...args) { return child.call(this, setOpts, ...args) }\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return levelToValue(this.level, this)\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(this, setOpts, logger, 'error') // <-- must stay first\n set(this, setOpts, logger, 'fatal')\n set(this, setOpts, logger, 'warn')\n set(this, setOpts, logger, 'info')\n set(this, setOpts, logger, 'debug')\n set(this, setOpts, logger, 'trace')\n\n customLevels.forEach((level) => {\n set(this, setOpts, logger, level)\n })\n }\n\n function child (setOpts, bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n\n // make sure bindings are available in the `set` function\n this.bindings = bindings\n\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n const newLogger = new Child(this)\n\n // must happen before the level is assigned\n appendChildLogger(this, newLogger)\n newLogger.child = function (...args) { return child.call(this, setOpts, ...args) }\n // required to actually initialize the logger functions for any given child\n newLogger.level = childOptions.level || this.level // allow level to be set by childOptions\n setOpts.onChild(newLogger)\n\n return newLogger\n }\n return logger\n}\n\nfunction getLevels (opts) {\n const customLevels = opts.customLevels || {}\n\n const values = Object.assign({}, pino.levels.values, customLevels)\n const labels = Object.assign({}, pino.levels.labels, invertObject(customLevels))\n\n return {\n values,\n labels\n }\n}\n\nfunction invertObject (obj) {\n const inverted = {}\n Object.keys(obj).forEach(function (key) {\n inverted[obj[key]] = key\n })\n return inverted\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction getBindingChain (logger) {\n const bindings = []\n if (logger.bindings) {\n bindings.push(logger.bindings)\n }\n\n // traverse up the tree to get all bindings\n let hierarchy = logger[hierarchySymbol]\n while (hierarchy.parent) {\n hierarchy = hierarchy.parent\n if (hierarchy.logger.bindings) {\n bindings.push(hierarchy.logger.bindings)\n }\n }\n\n return bindings.reverse()\n}\n\nfunction set (self, opts, rootLogger, level) {\n // override the current log functions with either `noop` or the base log function\n Object.defineProperty(self, level, {\n value: (levelToValue(self.level, rootLogger) > levelToValue(level, rootLogger)\n ? noop\n : rootLogger[baseLogFunctionSymbol][level]),\n writable: true,\n enumerable: true,\n configurable: true\n })\n\n if (self[level] === noop) {\n if (!opts.transmit) return\n\n const transmitLevel = opts.transmit.level || self.level\n const transmitValue = levelToValue(transmitLevel, rootLogger)\n const methodValue = levelToValue(level, rootLogger)\n if (methodValue < transmitValue) return\n }\n\n // make sure the log format is correct\n self[level] = createWrap(self, opts, rootLogger, level)\n\n // prepend bindings if it is not the root logger\n const bindings = getBindingChain(self)\n if (bindings.length === 0) {\n // early exit in case for rootLogger\n return\n }\n self[level] = prependBindingsInArguments(bindings, self[level])\n}\n\nfunction prependBindingsInArguments (bindings, logFunc) {\n return function () {\n return logFunc.apply(this, [...bindings, ...arguments])\n }\n}\n\nfunction createWrap (self, opts, rootLogger, level) {\n return (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n var argsIsSerialized = false\n if (opts.serialize) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n argsIsSerialized = true\n }\n if (opts.asObject || opts.formatters) {\n write.call(proto, ...asObject(this, level, args, ts, opts))\n } else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || self._level\n const transmitValue = levelToValue(transmitLevel, rootLogger)\n const methodValue = levelToValue(level, rootLogger)\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: rootLogger.levels.values[opts.transmit.level || self._level],\n send: opts.transmit.send,\n val: levelToValue(self._level, rootLogger)\n }, args, argsIsSerialized)\n }\n }\n })(self[baseLogFunctionSymbol][level])\n}\n\nfunction asObject (logger, level, args, ts, opts) {\n const {\n level: levelFormatter,\n log: logObjectFormatter = (obj) => obj\n } = opts.formatters || {}\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const logObject = {}\n\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n\n if (ts) {\n logObject.time = ts\n }\n\n if (levelFormatter) {\n const formattedLevel = levelFormatter(level, logger.levels.values[level])\n Object.assign(logObject, formattedLevel)\n } else {\n logObject.level = logger.levels.values[level]\n }\n\n if (opts.asObjectBindingsOnly) {\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(logObject, argsCloned.shift())\n }\n }\n\n const formattedLogObject = logObjectFormatter(logObject)\n return [formattedLogObject, ...argsCloned]\n } else {\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(logObject, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) logObject[opts.messageKey] = msg\n\n const formattedLogObject = logObjectFormatter(logObject)\n return [formattedLogObject]\n }\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i]) && serialize) {\n for (const k in args[i]) {\n if (serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction transmit (logger, opts, args, argsIsSerialized = false) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n if (!argsIsSerialized) {\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n }\n\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n\nmodule.exports.default = pino\nmodule.exports.pino = pino\n","import pino from \"pino\";\n// Root logger — starts silent. App entry points call setLogLevel() before rendering.\n// Changing root.level propagates to all child loggers at write time (pino checks the\n// root level before forwarding to its transport).\nconst root = pino({\n level: \"silent\",\n browser: { asObject: true },\n});\nexport const setLogLevel = (level) => {\n root.level = level;\n};\n// Creates a child logger with a bound `module` field on every log entry.\n// Optionally accepts additional static context (e.g. { listId }).\nexport const createLogger = (module, ctx) => root.child({ module, ...ctx });\n//# sourceMappingURL=index.js.map","import { createLogger } from \"@alistigo/logger\";\n\nconst log = createLogger(\"alistigo:claude-storage:retry\");\n\nconst STORAGE_TIMEOUT_MS = 1000;\nconst STORAGE_MAX_RETRIES = 3;\n\ntype AttemptResult<T> =\n | { tag: \"ok\"; value: T }\n | { tag: \"timeout\" }\n | { tag: \"error\"; err: unknown };\n\nfunction attemptWithTimeout<T>(\n factory: () => Promise<T>,\n timeoutMs: number,\n): Promise<AttemptResult<T>> {\n return Promise.race([\n factory()\n .then((value): AttemptResult<T> => ({ tag: \"ok\", value }))\n .catch((err): AttemptResult<T> => ({ tag: \"error\", err })),\n new Promise<AttemptResult<T>>((resolve) =>\n setTimeout(() => resolve({ tag: \"timeout\" }), timeoutMs),\n ),\n ]);\n}\n\n/**\n * Calls `factory()` and waits up to `timeoutMs` (default 1 s). On timeout retries up to\n * `maxRetries` (default 3) times. Non-timeout errors are re-thrown immediately.\n * After all attempts time out, throws a descriptive error.\n */\nexport async function withStorageRetry<T>(\n factory: () => Promise<T>,\n timeoutMs = STORAGE_TIMEOUT_MS,\n maxRetries = STORAGE_MAX_RETRIES,\n): Promise<T> {\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n const result = await attemptWithTimeout(factory, timeoutMs);\n if (result.tag === \"ok\") return result.value;\n if (result.tag === \"error\") throw result.err;\n if (attempt < maxRetries) {\n log.debug({ attempt }, \"claude storage timed out, retrying\");\n }\n }\n throw new Error(`Claude storage timed out after ${maxRetries + 1} attempts`);\n}\n","import type { KeyValueStore } from \"@alistigo/artifact-plugin-api\";\nimport type { ClaudeStorage } from \"@alistigo/claude-artifact-api\";\nimport { createLogger } from \"@alistigo/logger\";\nimport { withStorageRetry } from \"./retry.js\";\n\nconst log = createLogger(\"alistigo:claude-storage\");\n\nexport class ClaudeKeyValueStore implements KeyValueStore {\n private get storage(): ClaudeStorage {\n const s = (window as Window).storage;\n if (!s)\n throw new Error(\n \"ClaudeKeyValueStore requires window.storage — check isClaudeArtifactContext() first\",\n );\n return s;\n }\n\n async get(key: string): Promise<unknown> {\n try {\n log.debug({ key }, \"get\");\n const result = await withStorageRetry(() => this.storage.get(key));\n return JSON.parse(result.value) as unknown;\n } catch (err) {\n log.debug({ key, err }, \"get returned nothing (key may not exist)\");\n return undefined;\n }\n }\n\n async set(key: string, value: unknown): Promise<void> {\n log.debug({ key }, \"set\");\n await withStorageRetry(() => this.storage.set(key, JSON.stringify(value)));\n }\n\n async del(key: string): Promise<void> {\n log.debug({ key }, \"del\");\n await withStorageRetry(() => this.storage.delete(key));\n }\n\n async list(prefix = \"\"): Promise<string[]> {\n try {\n log.debug({ prefix }, \"list\");\n const result = await withStorageRetry(() => this.storage.list(prefix));\n return result?.keys ?? [];\n } catch {\n return [];\n }\n }\n}\n\n/** Returns true when running inside a Claude artifact that exposes window.claude */\nexport function isClaudeArtifactContext(): boolean {\n return typeof window !== \"undefined\" && typeof window.claude?.complete === \"function\";\n}\n","import type { AlistigoPlugin } from \"@alistigo/artifact-plugin-api\";\nimport pkg from \"../package.json\" with { type: \"json\" };\nimport { ClaudeKeyValueStore, isClaudeArtifactContext } from \"./claude-key-value-store.js\";\nimport { withStorageRetry } from \"./retry.js\";\n\nconst claudeStoragePlugin: AlistigoPlugin = {\n name: \"@alistigo/claude-storage-plugin\",\n version: pkg.version,\n type: \"storage\",\n storage: {\n isAvailable(): boolean {\n return isClaudeArtifactContext();\n },\n createStore() {\n return new ClaudeKeyValueStore();\n },\n async listKeys(prefix = \"\"): Promise<Array<{ key: string; value: string }>> {\n const storage = window.storage;\n if (!storage) return [];\n try {\n const result = await withStorageRetry(() => storage.list(prefix));\n if (!result) return [];\n const entries = await Promise.all(\n result.keys.map(async (key) => {\n try {\n const item = await withStorageRetry(() => storage.get(key));\n return { key, value: item.value };\n } catch {\n return null;\n }\n }),\n );\n return entries.filter((e): e is { key: string; value: string } => e !== null);\n } catch {\n return [];\n }\n },\n },\n};\n\nexport default claudeStoragePlugin;\n"],"names":["tryStringify","o","quickFormatUnescaped","format","f","args","opts","ss","offset","len","objects","index","argLen","str","a","lastPos","flen","i","type","require$$0","browserModule","pino","_console","pfGlobalThisOrFallback","stdSerializers","mock","passthrough","asErrValue","levelToValue","level","logger","baseLogFunctionSymbol","hierarchySymbol","logFallbackMap","appendChildLogger","parentLogger","childLogger","newEntry","setupBaseLogFunctions","levels","proto","logFunctions","noop","shouldSerialize","serialize","serializers","k","transmit","stdErrSerialize","customLevels","getLevelVal","getLevel","setLevel","setOpts","getTimeFunction","getLevels","child","createLogEventShape","set","bindings","childOptions","childOptionsSerializers","childSerializers","childSerialize","applySerializers","Child","parent","newLogger","values","labels","invertObject","obj","inverted","key","nullTime","epochTime","unixTime","isoTime","getBindingChain","hierarchy","self","rootLogger","transmitLevel","transmitValue","createWrap","prependBindingsInArguments","logFunc","write","ts","argsIsSerialized","asObject","methodValue","levelFormatter","logObjectFormatter","argsCloned","msg","logObject","lvl","formattedLevel","send","methodLevel","val","arg","err","defd","root","createLogger","module","ctx","log","STORAGE_TIMEOUT_MS","STORAGE_MAX_RETRIES","attemptWithTimeout","factory","timeoutMs","value","resolve","withStorageRetry","maxRetries","attempt","result","ClaudeKeyValueStore","prefix","isClaudeArtifactContext","claudeStoragePlugin","pkg","storage","item","e"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"index.js","sources":["../../claude-artifact-api/src/index.ts","../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../node_modules/.pnpm/pino@9.14.0/node_modules/pino/browser.js","../../logger/dist/index.js","../src/retry.ts","../src/claude-key-value-store.ts","../src/claude-storage-plugin.ts"],"sourcesContent":["export interface ClaudeStorageGetResult {\n key: string;\n value: string;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorageSetResult {\n key: string;\n value: string;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorageDeleteResult {\n key: string;\n deleted: boolean;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorageListResult {\n keys: string[];\n prefix: string;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorage {\n /** Rejects (never resolves) when the key does not exist. */\n get(key: string, shared?: boolean): Promise<ClaudeStorageGetResult>;\n set(key: string, value: string, shared?: boolean): Promise<ClaudeStorageSetResult>;\n /** Rejects (never resolves) when the key does not exist. */\n delete(key: string, shared?: boolean): Promise<ClaudeStorageDeleteResult>;\n list(prefix?: string, shared?: boolean): Promise<ClaudeStorageListResult>;\n}\n\nexport interface ClaudeApi {\n complete(prompt: string): Promise<string>;\n}\n\ndeclare global {\n interface Window {\n storage?: ClaudeStorage;\n claude?: ClaudeApi;\n /** Dev-mode override injected by the playground — supersedes URL-based detection in artifactContext(). */\n claudeArtifactStatus?: \"published\";\n }\n}\n\nexport interface ArtifactContext {\n /** True only when the artifact is accessed via its published public URL. */\n published: boolean;\n /** The artifact UUID extracted from the public URL, or null in draft mode. */\n artifactId: string | null;\n}\n\n/**\n * Detects whether the artifact is running in draft (AI preview panel) or\n * published (public URL) mode by inspecting document.baseURI.\n *\n * Draft: https://www.claudeusercontent.com/?domain=… → published: false\n * Published: https://www.claudeusercontent.com/artifact/<uuid> → published: true\n */\nfunction baseURIPath(): string {\n try {\n return new URL(document.baseURI).pathname;\n } catch {\n return \"\";\n }\n}\n\nexport function artifactContext(): ArtifactContext {\n // Playground injects window.claudeArtifactStatus = \"published\" to simulate published mode.\n if (window.claudeArtifactStatus === \"published\") {\n return { published: true, artifactId: null };\n }\n const m = baseURIPath().match(/^\\/artifact\\/([0-9a-f-]{36})/i);\n return { published: Boolean(m), artifactId: m?.[1] ?? null };\n}\n","'use strict'\nfunction tryStringify (o) {\n try { return JSON.stringify(o) } catch(e) { return '\"[Circular]\"' }\n}\n\nmodule.exports = format\n\nfunction format(f, args, opts) {\n var ss = (opts && opts.stringify) || tryStringify\n var offset = 1\n if (typeof f === 'object' && f !== null) {\n var len = args.length + offset\n if (len === 1) return f\n var objects = new Array(len)\n objects[0] = ss(f)\n for (var index = 1; index < len; index++) {\n objects[index] = ss(args[index])\n }\n return objects.join(' ')\n }\n if (typeof f !== 'string') {\n return f\n }\n var argLen = args.length\n if (argLen === 0) return f\n var str = ''\n var a = 1 - offset\n var lastPos = -1\n var flen = (f && f.length) || 0\n for (var i = 0; i < flen;) {\n if (f.charCodeAt(i) === 37 && i + 1 < flen) {\n lastPos = lastPos > -1 ? lastPos : 0\n switch (f.charCodeAt(i + 1)) {\n case 100: // 'd'\n case 102: // 'f'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Number(args[a])\n lastPos = i + 2\n i++\n break\n case 105: // 'i'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Math.floor(Number(args[a]))\n lastPos = i + 2\n i++\n break\n case 79: // 'O'\n case 111: // 'o'\n case 106: // 'j'\n if (a >= argLen)\n break\n if (args[a] === undefined) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n var type = typeof args[a]\n if (type === 'string') {\n str += '\\'' + args[a] + '\\''\n lastPos = i + 2\n i++\n break\n }\n if (type === 'function') {\n str += args[a].name || '<anonymous>'\n lastPos = i + 2\n i++\n break\n }\n str += ss(args[a])\n lastPos = i + 2\n i++\n break\n case 115: // 's'\n if (a >= argLen)\n break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += String(args[a])\n lastPos = i + 2\n i++\n break\n case 37: // '%'\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += '%'\n lastPos = i + 2\n i++\n a--\n break\n }\n ++a\n }\n ++i\n }\n if (lastPos === -1)\n return f\n else if (lastPos < flen) {\n str += f.slice(lastPos)\n }\n\n return str\n}\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue,\n errWithCause: asErrValue\n}\nfunction levelToValue (level, logger) {\n return level === 'silent'\n ? Infinity\n : logger.levels.values[level]\n}\nconst baseLogFunctionSymbol = Symbol('pino.logFuncs')\nconst hierarchySymbol = Symbol('pino.hierarchy')\n\nconst logFallbackMap = {\n error: 'log',\n fatal: 'error',\n warn: 'error',\n info: 'log',\n debug: 'log',\n trace: 'log'\n}\n\nfunction appendChildLogger (parentLogger, childLogger) {\n const newEntry = {\n logger: childLogger,\n parent: parentLogger[hierarchySymbol]\n }\n childLogger[hierarchySymbol] = newEntry\n}\n\nfunction setupBaseLogFunctions (logger, levels, proto) {\n const logFunctions = {}\n levels.forEach(level => {\n logFunctions[level] = proto[level] ? proto[level] : (_console[level] || _console[logFallbackMap[level] || 'log'] || noop)\n })\n logger[baseLogFunctionSymbol] = logFunctions\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const customLevels = Object.keys(opts.customLevels || {})\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace'].concat(customLevels)\n\n if (typeof proto === 'function') {\n levels.forEach(function (level) {\n proto[level] = proto\n })\n }\n if (opts.enabled === false || opts.browser.disabled) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n setupBaseLogFunctions(logger, levels, proto)\n // setup root hierarchy entry\n appendChildLogger({}, logger)\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n asObjectBindingsOnly: opts.browser.asObjectBindingsOnly,\n formatters: opts.browser.formatters,\n levels,\n timestamp: getTimeFunction(opts),\n messageKey: opts.messageKey || 'msg',\n onChild: opts.onChild || noop\n }\n logger.levels = getLevels(opts)\n logger.level = level\n\n logger.isLevelEnabled = function (level) {\n if (!this.levels.values[level]) {\n return false\n }\n\n return this.levels.values[level] >= this.levels.values[this.level]\n }\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = function (...args) { return child.call(this, setOpts, ...args) }\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return levelToValue(this.level, this)\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(this, setOpts, logger, 'error') // <-- must stay first\n set(this, setOpts, logger, 'fatal')\n set(this, setOpts, logger, 'warn')\n set(this, setOpts, logger, 'info')\n set(this, setOpts, logger, 'debug')\n set(this, setOpts, logger, 'trace')\n\n customLevels.forEach((level) => {\n set(this, setOpts, logger, level)\n })\n }\n\n function child (setOpts, bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n\n // make sure bindings are available in the `set` function\n this.bindings = bindings\n\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n const newLogger = new Child(this)\n\n // must happen before the level is assigned\n appendChildLogger(this, newLogger)\n newLogger.child = function (...args) { return child.call(this, setOpts, ...args) }\n // required to actually initialize the logger functions for any given child\n newLogger.level = childOptions.level || this.level // allow level to be set by childOptions\n setOpts.onChild(newLogger)\n\n return newLogger\n }\n return logger\n}\n\nfunction getLevels (opts) {\n const customLevels = opts.customLevels || {}\n\n const values = Object.assign({}, pino.levels.values, customLevels)\n const labels = Object.assign({}, pino.levels.labels, invertObject(customLevels))\n\n return {\n values,\n labels\n }\n}\n\nfunction invertObject (obj) {\n const inverted = {}\n Object.keys(obj).forEach(function (key) {\n inverted[obj[key]] = key\n })\n return inverted\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction getBindingChain (logger) {\n const bindings = []\n if (logger.bindings) {\n bindings.push(logger.bindings)\n }\n\n // traverse up the tree to get all bindings\n let hierarchy = logger[hierarchySymbol]\n while (hierarchy.parent) {\n hierarchy = hierarchy.parent\n if (hierarchy.logger.bindings) {\n bindings.push(hierarchy.logger.bindings)\n }\n }\n\n return bindings.reverse()\n}\n\nfunction set (self, opts, rootLogger, level) {\n // override the current log functions with either `noop` or the base log function\n Object.defineProperty(self, level, {\n value: (levelToValue(self.level, rootLogger) > levelToValue(level, rootLogger)\n ? noop\n : rootLogger[baseLogFunctionSymbol][level]),\n writable: true,\n enumerable: true,\n configurable: true\n })\n\n if (self[level] === noop) {\n if (!opts.transmit) return\n\n const transmitLevel = opts.transmit.level || self.level\n const transmitValue = levelToValue(transmitLevel, rootLogger)\n const methodValue = levelToValue(level, rootLogger)\n if (methodValue < transmitValue) return\n }\n\n // make sure the log format is correct\n self[level] = createWrap(self, opts, rootLogger, level)\n\n // prepend bindings if it is not the root logger\n const bindings = getBindingChain(self)\n if (bindings.length === 0) {\n // early exit in case for rootLogger\n return\n }\n self[level] = prependBindingsInArguments(bindings, self[level])\n}\n\nfunction prependBindingsInArguments (bindings, logFunc) {\n return function () {\n return logFunc.apply(this, [...bindings, ...arguments])\n }\n}\n\nfunction createWrap (self, opts, rootLogger, level) {\n return (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n var argsIsSerialized = false\n if (opts.serialize) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n argsIsSerialized = true\n }\n if (opts.asObject || opts.formatters) {\n write.call(proto, ...asObject(this, level, args, ts, opts))\n } else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || self._level\n const transmitValue = levelToValue(transmitLevel, rootLogger)\n const methodValue = levelToValue(level, rootLogger)\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: rootLogger.levels.values[opts.transmit.level || self._level],\n send: opts.transmit.send,\n val: levelToValue(self._level, rootLogger)\n }, args, argsIsSerialized)\n }\n }\n })(self[baseLogFunctionSymbol][level])\n}\n\nfunction asObject (logger, level, args, ts, opts) {\n const {\n level: levelFormatter,\n log: logObjectFormatter = (obj) => obj\n } = opts.formatters || {}\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const logObject = {}\n\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n\n if (ts) {\n logObject.time = ts\n }\n\n if (levelFormatter) {\n const formattedLevel = levelFormatter(level, logger.levels.values[level])\n Object.assign(logObject, formattedLevel)\n } else {\n logObject.level = logger.levels.values[level]\n }\n\n if (opts.asObjectBindingsOnly) {\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(logObject, argsCloned.shift())\n }\n }\n\n const formattedLogObject = logObjectFormatter(logObject)\n return [formattedLogObject, ...argsCloned]\n } else {\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(logObject, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) logObject[opts.messageKey] = msg\n\n const formattedLogObject = logObjectFormatter(logObject)\n return [formattedLogObject]\n }\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i]) && serialize) {\n for (const k in args[i]) {\n if (serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction transmit (logger, opts, args, argsIsSerialized = false) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n if (!argsIsSerialized) {\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n }\n\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n\nmodule.exports.default = pino\nmodule.exports.pino = pino\n","import pino from \"pino\";\n// Root logger — starts silent. App entry points call setLogLevel() before rendering.\n// Changing root.level propagates to all child loggers at write time (pino checks the\n// root level before forwarding to its transport).\nconst root = pino({\n level: \"silent\",\n browser: { asObject: true },\n});\nexport const setLogLevel = (level) => {\n root.level = level;\n};\n// Creates a child logger with a bound `module` field on every log entry.\n// Optionally accepts additional static context (e.g. { listId }).\nexport const createLogger = (module, ctx) => root.child({ module, ...ctx });\n//# sourceMappingURL=index.js.map","import { createLogger } from \"@alistigo/logger\";\n\nconst log = createLogger(\"alistigo:claude-storage:retry\");\n\nconst STORAGE_TIMEOUT_MS = 1000;\nconst STORAGE_MAX_RETRIES = 3;\n\ntype AttemptResult<T> =\n | { tag: \"ok\"; value: T }\n | { tag: \"timeout\" }\n | { tag: \"error\"; err: unknown };\n\nfunction attemptWithTimeout<T>(\n factory: () => Promise<T>,\n timeoutMs: number,\n): Promise<AttemptResult<T>> {\n return Promise.race([\n factory()\n .then((value): AttemptResult<T> => ({ tag: \"ok\", value }))\n .catch((err): AttemptResult<T> => ({ tag: \"error\", err })),\n new Promise<AttemptResult<T>>((resolve) =>\n setTimeout(() => resolve({ tag: \"timeout\" }), timeoutMs),\n ),\n ]);\n}\n\n/**\n * Calls `factory()` and waits up to `timeoutMs` (default 1 s). On timeout retries up to\n * `maxRetries` (default 3) times. Non-timeout errors are re-thrown immediately.\n * After all attempts time out, throws a descriptive error.\n */\nexport async function withStorageRetry<T>(\n factory: () => Promise<T>,\n timeoutMs = STORAGE_TIMEOUT_MS,\n maxRetries = STORAGE_MAX_RETRIES,\n): Promise<T> {\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n const result = await attemptWithTimeout(factory, timeoutMs);\n if (result.tag === \"ok\") return result.value;\n if (result.tag === \"error\") throw result.err;\n if (attempt < maxRetries) {\n log.debug({ attempt }, \"claude storage timed out, retrying\");\n }\n }\n throw new Error(`Claude storage timed out after ${maxRetries + 1} attempts`);\n}\n","import type { KeyValueStore } from \"@alistigo/artifact-plugin-api\";\nimport { artifactContext, type ClaudeStorage } from \"@alistigo/claude-artifact-api\";\nimport { createLogger } from \"@alistigo/logger\";\nimport { withStorageRetry } from \"./retry.js\";\n\nconst log = createLogger(\"alistigo:claude-storage\");\n\nexport class ClaudeKeyValueStore implements KeyValueStore {\n private get storage(): ClaudeStorage {\n const s = (window as Window).storage;\n if (!s)\n throw new Error(\n \"ClaudeKeyValueStore requires window.storage — check isClaudeArtifactContext() first\",\n );\n return s;\n }\n\n private requirePublished(): void {\n if (!artifactContext().published) {\n throw new Error(\n \"Storage is unavailable in draft mode — publish the artifact and open it via its public URL.\",\n );\n }\n }\n\n async get(key: string): Promise<unknown> {\n this.requirePublished();\n try {\n log.debug({ key }, \"get\");\n const result = await withStorageRetry(() => this.storage.get(key));\n return JSON.parse(result.value) as unknown;\n } catch (err) {\n log.debug({ key, err }, \"get returned nothing (key may not exist)\");\n return undefined;\n }\n }\n\n async set(key: string, value: unknown): Promise<void> {\n this.requirePublished();\n log.debug({ key }, \"set\");\n await withStorageRetry(() => this.storage.set(key, JSON.stringify(value)));\n }\n\n async del(key: string): Promise<void> {\n this.requirePublished();\n log.debug({ key }, \"del\");\n await withStorageRetry(() => this.storage.delete(key));\n }\n\n async list(prefix = \"\"): Promise<string[]> {\n this.requirePublished();\n try {\n log.debug({ prefix }, \"list\");\n const result = await withStorageRetry(() => this.storage.list(prefix));\n return result?.keys ?? [];\n } catch {\n return [];\n }\n }\n}\n\n/** Returns true when running inside a Claude artifact that exposes window.claude */\nexport function isClaudeArtifactContext(): boolean {\n return typeof window !== \"undefined\" && typeof window.claude?.complete === \"function\";\n}\n","import type { AlistigoPlugin } from \"@alistigo/artifact-plugin-api\";\nimport pkg from \"../package.json\" with { type: \"json\" };\nimport { ClaudeKeyValueStore, isClaudeArtifactContext } from \"./claude-key-value-store.js\";\nimport { withStorageRetry } from \"./retry.js\";\n\nconst claudeStoragePlugin: AlistigoPlugin = {\n name: \"@alistigo/claude-storage-plugin\",\n version: pkg.version,\n type: \"storage\",\n storage: {\n isAvailable(): boolean {\n return isClaudeArtifactContext();\n },\n createStore() {\n return new ClaudeKeyValueStore();\n },\n async listKeys(prefix = \"\"): Promise<Array<{ key: string; value: string }>> {\n const storage = window.storage;\n if (!storage) return [];\n try {\n const result = await withStorageRetry(() => storage.list(prefix));\n if (!result) return [];\n const entries = await Promise.all(\n result.keys.map(async (key) => {\n try {\n const item = await withStorageRetry(() => storage.get(key));\n return { key, value: item.value };\n } catch {\n return null;\n }\n }),\n );\n return entries.filter((e): e is { key: string; value: string } => e !== null);\n } catch {\n return [];\n }\n },\n },\n};\n\nexport default claudeStoragePlugin;\n"],"names":["baseURIPath","artifactContext","m","tryStringify","o","quickFormatUnescaped","format","f","args","opts","ss","offset","len","objects","index","argLen","str","a","lastPos","flen","i","type","require$$0","browserModule","pino","_console","pfGlobalThisOrFallback","stdSerializers","mock","passthrough","asErrValue","levelToValue","level","logger","baseLogFunctionSymbol","hierarchySymbol","logFallbackMap","appendChildLogger","parentLogger","childLogger","newEntry","setupBaseLogFunctions","levels","proto","logFunctions","noop","shouldSerialize","serialize","serializers","k","transmit","stdErrSerialize","customLevels","getLevelVal","getLevel","setLevel","setOpts","getTimeFunction","getLevels","child","createLogEventShape","set","bindings","childOptions","childOptionsSerializers","childSerializers","childSerialize","applySerializers","Child","parent","newLogger","values","labels","invertObject","obj","inverted","key","nullTime","epochTime","unixTime","isoTime","getBindingChain","hierarchy","self","rootLogger","transmitLevel","transmitValue","createWrap","prependBindingsInArguments","logFunc","write","ts","argsIsSerialized","asObject","methodValue","levelFormatter","logObjectFormatter","argsCloned","msg","logObject","lvl","formattedLevel","send","methodLevel","val","arg","err","defd","root","createLogger","module","ctx","log","STORAGE_TIMEOUT_MS","STORAGE_MAX_RETRIES","attemptWithTimeout","factory","timeoutMs","value","resolve","withStorageRetry","maxRetries","attempt","result","ClaudeKeyValueStore","prefix","isClaudeArtifactContext","claudeStoragePlugin","pkg","storage","item","e"],"mappings":"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","x_google_ignoreList":[1,2]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alistigo/claude-storage-plugin",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "Window.storage-backed AlistigoPlugin (type: storage) implementation for the Claude artifact runtime.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -42,9 +42,9 @@
42
42
  "access": "public"
43
43
  },
44
44
  "dependencies": {
45
- "@alistigo/claude-artifact-api": "0.2.1",
46
- "@alistigo/logger": "0.2.15",
47
- "@alistigo/artifact-plugin-api": "0.3.0"
45
+ "@alistigo/artifact-plugin-api": "0.3.2",
46
+ "@alistigo/logger": "0.2.17",
47
+ "@alistigo/claude-artifact-api": "0.2.3"
48
48
  },
49
49
  "devDependencies": {
50
50
  "vite": "^7.0.0"