devframe 0.9.1 → 0.9.3

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 (76) hide show
  1. package/dist/{_shared-DqbKCAew.d.mts → _shared-BPovvJW8.d.mts} +1 -1
  2. package/dist/adapters/build.d.mts +11 -2
  3. package/dist/adapters/build.mjs +46 -9
  4. package/dist/adapters/cac.d.mts +1 -1
  5. package/dist/adapters/cac.mjs +1 -1
  6. package/dist/adapters/dev.d.mts +4 -4
  7. package/dist/adapters/dev.mjs +1 -1
  8. package/dist/adapters/embedded.d.mts +1 -1
  9. package/dist/adapters/embedded.mjs +2 -1
  10. package/dist/adapters/initiate.d.mts +3 -3
  11. package/dist/adapters/initiate.mjs +1 -1
  12. package/dist/adapters/mcp.d.mts +1 -1
  13. package/dist/adapters/mcp.mjs +1 -1
  14. package/dist/cli/main.mjs +2 -2
  15. package/dist/client/index.d.mts +5 -5
  16. package/dist/client/index.mjs +2 -2
  17. package/dist/{context-CXhjygJU.mjs → context-BUJGvlje.mjs} +1 -1
  18. package/dist/{context-dqyXS6o3.d.mts → context-CO7eZHJy.d.mts} +1 -1
  19. package/dist/{context-Bdkakk8S.mjs → context-CQW0lSw8.mjs} +40 -20
  20. package/dist/{devframe-BlLEZR-x.d.mts → context-_i51nYOs.d.mts} +1033 -970
  21. package/dist/{dev-C8VHtuPP.mjs → dev-lpIvwagf.mjs} +10 -9
  22. package/dist/{diagnostics-Di8ytitn.mjs → diagnostics-BXWW3VK-.mjs} +3 -3
  23. package/dist/hash-DdPnc4k3.mjs +360 -0
  24. package/dist/{host-agent-BDdcOXhG.mjs → host-agent-B84av916.mjs} +1 -1
  25. package/dist/{http-BbHCU5Zs.mjs → http-BKiqHcXX.mjs} +6 -5
  26. package/dist/{index-BKFT9-jA.d.mts → index-CEvd-YXD.d.mts} +2 -2
  27. package/dist/{index-tdrk1bzV.d.mts → index-DOg4S5wk.d.mts} +1 -1
  28. package/dist/index.d.mts +6 -6
  29. package/dist/{instance-registry-CHunhMi5.mjs → instance-registry-BjlMQbFB.mjs} +1 -1
  30. package/dist/{instance-shell-DbDoozNM.mjs → instance-shell-B-uevnK-.mjs} +4 -4
  31. package/dist/{instance-shell-0iw-cQ5V.d.mts → instance-shell-BHvBIGP4.d.mts} +3 -3
  32. package/dist/internal/index.d.mts +8 -8
  33. package/dist/internal/index.mjs +5 -5
  34. package/dist/node/auth.d.mts +2 -2
  35. package/dist/node/hub-internals.d.mts +2 -2
  36. package/dist/node/hub-internals.mjs +1 -1
  37. package/dist/node/index.d.mts +12 -3
  38. package/dist/node/index.mjs +2 -2
  39. package/dist/recipes/common-rpc-functions.d.mts +13 -3
  40. package/dist/recipes/common-rpc-functions.mjs +10 -0
  41. package/dist/recipes/interactive-auth.d.mts +2 -2
  42. package/dist/recipes/interactive-auth.mjs +1 -1
  43. package/dist/{remote-assets-DRfY2RjX.mjs → remote-assets-DezQmPQU.mjs} +13 -3
  44. package/dist/rpc/dump.d.mts +1 -1
  45. package/dist/rpc/dump.mjs +1 -1
  46. package/dist/rpc/index.d.mts +2 -2
  47. package/dist/rpc/index.mjs +1 -1
  48. package/dist/rpc/transports/sse-client.d.mts +1 -1
  49. package/dist/rpc/transports/sse-server.d.mts +2 -2
  50. package/dist/rpc/transports/ws-bun.d.mts +2 -2
  51. package/dist/rpc/transports/ws-client.d.mts +1 -1
  52. package/dist/rpc/transports/ws-deno.d.mts +26 -0
  53. package/dist/rpc/transports/ws-deno.mjs +30 -0
  54. package/dist/rpc/transports/ws-server.d.mts +1 -1
  55. package/dist/{rpc-core-CR8o34O9.d.mts → rpc-core-CDZoGYiD.d.mts} +3 -3
  56. package/dist/{rpc-core-Dru9uoM0.mjs → rpc-core-DlHd276T.mjs} +3 -10
  57. package/dist/{shared-state-fRRbRUtD.mjs → shared-state-DoXutg_U.mjs} +1 -1
  58. package/dist/{sse-client-CFBOIaUi.d.mts → sse-client-CdGD_B8_.d.mts} +1 -1
  59. package/dist/{static-BPZ1_OPA.mjs → static-DV_qUSRS.mjs} +1 -1
  60. package/dist/{storage-D4a99Ung.mjs → storage-BXNVhKyR.mjs} +1 -1
  61. package/dist/types/index.d.mts +5 -5
  62. package/dist/{types-Djq7CBXh.d.mts → types-BBLeGfpt.d.mts} +1 -1
  63. package/dist/utils/events.d.mts +1 -1
  64. package/dist/utils/hash.mjs +1 -1
  65. package/dist/utils/remote-assets.d.mts +7 -1
  66. package/dist/utils/remote-assets.mjs +1 -1
  67. package/dist/utils/shared-state.d.mts +1 -1
  68. package/dist/utils/shared-state.mjs +1 -1
  69. package/dist/utils/streaming-channel.d.mts +1 -1
  70. package/dist/validation-YrZH6atx.mjs +311 -0
  71. package/dist/{ws-client-DhjNyQo3.d.mts → ws-client-Bo2t6hES.d.mts} +1 -1
  72. package/dist/{ws-server-D1d3QM9f.d.mts → ws-server-DLtEoLdR.d.mts} +1 -1
  73. package/package.json +4 -3
  74. package/skills/devframe/SKILL.md +1 -1
  75. package/dist/hash-KtDZYXDN.mjs +0 -266
  76. package/dist/validation-CpXFB6Dz.mjs +0 -266
@@ -1,10 +1,10 @@
1
1
  import { DEVFRAME_CONNECTION_META_FILENAME } from "./constants.mjs";
2
- import { t as diagnostics } from "./diagnostics-Di8ytitn.mjs";
3
- import { t as createHostContext } from "./context-Bdkakk8S.mjs";
4
- import { t as resolveStaticAssetsSource } from "./remote-assets-DRfY2RjX.mjs";
2
+ import { t as diagnostics } from "./diagnostics-BXWW3VK-.mjs";
3
+ import { t as createHostContext } from "./context-CQW0lSw8.mjs";
4
+ import { t as resolveStaticAssetsSource } from "./remote-assets-DezQmPQU.mjs";
5
5
  import { i as resolveMcpConnectionMeta, n as resolveBasePath, r as resolveDevServerPort, t as normalizeBasePath } from "./_shared-BM3PdYli.mjs";
6
6
  import { t as createH3DevframeHost } from "./host-h3-fRbF9yor.mjs";
7
- import { i as normalizeHttpServerUrl, n as resolveInstanceRegister, t as createInstanceShell } from "./instance-shell-DbDoozNM.mjs";
7
+ import { i as normalizeHttpServerUrl, n as resolveInstanceRegister, t as createInstanceShell } from "./instance-shell-B-uevnK-.mjs";
8
8
  import { open } from "./utils/open.mjs";
9
9
  import { mountStaticHandler } from "./utils/serve-static.mjs";
10
10
  import { createServer } from "node:http";
@@ -76,12 +76,13 @@ function initDevframe(def, options) {
76
76
  const context = await createHostContext({
77
77
  cwd: process.cwd(),
78
78
  mode: "dev",
79
- host: hostImpl
79
+ host: hostImpl,
80
+ importMetaUrl: def.importMetaUrl
80
81
  });
81
82
  const setupInfo = { flags: options.flags ?? {} };
82
- for (const input of def.services ?? []) context.services.install(input, { resolveFrom: def.packageName });
83
- await def.setup(context, setupInfo);
83
+ for (const input of def.services ?? []) context.services.install(input, { resolveFrom: def.importMetaUrl });
84
84
  await context.services.ready();
85
+ await def.setup(context, setupInfo);
85
86
  const mcpOption = options.mcp ?? def.cli?.mcp;
86
87
  const mcpMeta = resolveMcpConnectionMeta(def, mcpOption);
87
88
  let mcpDispose;
@@ -90,7 +91,7 @@ function initDevframe(def, options) {
90
91
  const mcpPath = joinURL(base, mcpMeta.path);
91
92
  let mountMcpHttp;
92
93
  try {
93
- ({mountMcpHttp} = await import("./http-BbHCU5Zs.mjs").then((n) => n.t));
94
+ ({mountMcpHttp} = await import("./http-BKiqHcXX.mjs").then((n) => n.t));
94
95
  } catch (error) {
95
96
  const reason = error instanceof Error ? error.message : String(error);
96
97
  throw diagnostics.DF0017({
@@ -115,7 +116,7 @@ function initDevframe(def, options) {
115
116
  mount(context, meta) {
116
117
  app.use(joinURL(base, DEVFRAME_CONNECTION_META_FILENAME), () => meta);
117
118
  if (distDir) {
118
- const source = resolveStaticAssetsSource(distDir, context.host.getStorageDir("project"));
119
+ const source = resolveStaticAssetsSource(distDir, context.host.getStorageDir("project"), def.importMetaUrl);
119
120
  mountStaticHandler(app, base, typeof source === "string" ? resolve(source) : source);
120
121
  }
121
122
  }
@@ -158,9 +158,9 @@ const diagnostics = defineDiagnostics({
158
158
  why: (p) => `Invalid service "${p.package}": ${p.reason}`,
159
159
  fix: "A service package's default export must be a factory returning a `DevframeServiceDefinition` — an object with `package`, `version`, `scope`, and a `setup` function."
160
160
  },
161
- DF0071: {
162
- why: (p) => `Deferred service installation failed while flushing on the first client connection: ${p.reason}`,
163
- fix: "Call `ctx.services.ready()` explicitly after every devframe's setup has run (the first-party adapters do) so installation errors surface at startup instead of at connect time."
161
+ DF0072: {
162
+ why: (p) => `\`rpc.snapshot\` names "${p.method}", but no RPC function is registered under that id — nothing to bake into the static build.`,
163
+ fix: "Check the method id, and ensure the service/plugin that registers it is installed (e.g. declared in `services`) before the build collects the dump."
164
164
  }
165
165
  }
166
166
  });
@@ -0,0 +1,360 @@
1
+ //#region ../../node_modules/.pnpm/ohash@2.0.12/node_modules/ohash/dist/_chunks/is-equal.mjs
2
+ function serialize(input) {
3
+ if (typeof input === "string") return `'${input}'`;
4
+ return new Serializer().serialize(input);
5
+ }
6
+ const asciiOrder = " _-,;:!?.'\"()[]{}@*/\\&#%`^+<=>|~$0123456789abcdefghijklmnopqrstuvwxyz";
7
+ const asciiWeights = /*@__PURE__*/ (function() {
8
+ const weights = /* @__PURE__ */ new Uint8Array(128);
9
+ for (let i = 0; i < 69; i++) weights[asciiOrder.charCodeAt(i)] = i + 1;
10
+ for (let code = 65; code <= 90; code++) weights[code] = weights[code + 32];
11
+ return weights;
12
+ })();
13
+ function compareStrings(a, b) {
14
+ if (a === b) return 0;
15
+ const length = Math.min(a.length, b.length);
16
+ let tieBreaker = 0;
17
+ for (let i = 0; i < length; i++) {
18
+ const codeA = a.charCodeAt(i);
19
+ const codeB = b.charCodeAt(i);
20
+ if (codeA === codeB) continue;
21
+ const weightA = codeA < 128 && asciiWeights[codeA] ? asciiWeights[codeA] : codeA + 128;
22
+ const weightB = codeB < 128 && asciiWeights[codeB] ? asciiWeights[codeB] : codeB + 128;
23
+ if (weightA !== weightB) return weightA < weightB ? -1 : 1;
24
+ if (tieBreaker === 0) tieBreaker = codeA > codeB ? -1 : 1;
25
+ }
26
+ if (a.length !== b.length) return a.length < b.length ? -1 : 1;
27
+ return tieBreaker;
28
+ }
29
+ const Serializer = /*@__PURE__*/ (function() {
30
+ class Serializer {
31
+ #context = /* @__PURE__ */ new Map();
32
+ compare(a, b) {
33
+ const typeA = typeof a;
34
+ const typeB = typeof b;
35
+ if (typeA === "string" && typeB === "string") return compareStrings(a, b);
36
+ if (typeA === "number" && typeB === "number") return a - b;
37
+ return compareStrings(this.serialize(a, true), this.serialize(b, true));
38
+ }
39
+ serialize(value, noQuotes) {
40
+ if (value === null) return "null";
41
+ switch (typeof value) {
42
+ case "string": return noQuotes ? value : `'${value}'`;
43
+ case "bigint": return `${value}n`;
44
+ case "object": return this.$object(value);
45
+ case "function": return this.$function(value);
46
+ }
47
+ return String(value);
48
+ }
49
+ serializeObject(object) {
50
+ const objString = Object.prototype.toString.call(object);
51
+ if (objString !== "[object Object]") return this.serializeBuiltInType(objString.length < 10 ? `unknown:${objString}` : objString.slice(8, -1), object);
52
+ const constructor = object.constructor;
53
+ const objName = constructor === Object || constructor === void 0 ? "" : constructor.name;
54
+ if (objName !== "" && globalThis[objName] === constructor) return this.serializeBuiltInType(objName, object);
55
+ if ("toJSON" in object && typeof object.toJSON === "function") {
56
+ const json = object.toJSON();
57
+ return objName + (json !== null && typeof json === "object" ? this.$object(json) : `(${this.serialize(json)})`);
58
+ }
59
+ const keys = Object.keys(object).sort(compareStrings);
60
+ let content = `${objName}{`;
61
+ for (let i = 0; i < keys.length; i++) {
62
+ const key = keys[i];
63
+ content += `${key}:${this.serialize(object[key])}`;
64
+ if (i < keys.length - 1) content += ",";
65
+ }
66
+ return content + "}";
67
+ }
68
+ serializeBuiltInType(type, object) {
69
+ const handler = this["$" + type];
70
+ if (handler) return handler.call(this, object);
71
+ if (typeof object.entries === "function") return this.serializeObjectEntries(type, object.entries());
72
+ throw new Error(`Cannot serialize ${type}`);
73
+ }
74
+ serializeObjectEntries(type, entries) {
75
+ const sortedEntries = Array.from(entries).sort((a, b) => this.compare(a[0], b[0]));
76
+ let content = `${type}{`;
77
+ for (let i = 0; i < sortedEntries.length; i++) {
78
+ const [key, value] = sortedEntries[i];
79
+ content += `${this.serialize(key, true)}:${this.serialize(value)}`;
80
+ if (i < sortedEntries.length - 1) content += ",";
81
+ }
82
+ return content + "}";
83
+ }
84
+ $object(object) {
85
+ let content = this.#context.get(object);
86
+ if (content === void 0) {
87
+ this.#context.set(object, `#${this.#context.size}`);
88
+ content = this.serializeObject(object);
89
+ this.#context.set(object, content);
90
+ }
91
+ return content;
92
+ }
93
+ $function(fn) {
94
+ const fnStr = Function.prototype.toString.call(fn);
95
+ if (fnStr.slice(-15) === "[native code] }") return `${fn.name || ""}()[native]`;
96
+ return `${fn.name}(${fn.length})${fnStr.replace(/\s*\n\s*/g, "")}`;
97
+ }
98
+ $Array(arr) {
99
+ let content = "[";
100
+ for (let i = 0; i < arr.length; i++) {
101
+ content += this.serialize(arr[i]);
102
+ if (i < arr.length - 1) content += ",";
103
+ }
104
+ return content + "]";
105
+ }
106
+ $Date(date) {
107
+ try {
108
+ return `Date(${date.toISOString()})`;
109
+ } catch {
110
+ return `Date(null)`;
111
+ }
112
+ }
113
+ $ArrayBuffer(arr) {
114
+ return `ArrayBuffer[${new Uint8Array(arr).join(",")}]`;
115
+ }
116
+ $Set(set) {
117
+ return `Set${this.$Array(Array.from(set).sort((a, b) => this.compare(a, b)))}`;
118
+ }
119
+ $Map(map) {
120
+ return this.serializeObjectEntries("Map", map.entries());
121
+ }
122
+ }
123
+ for (const type of [
124
+ "Error",
125
+ "RegExp",
126
+ "URL"
127
+ ]) Serializer.prototype["$" + type] = function(val) {
128
+ return `${type}(${val})`;
129
+ };
130
+ for (const type of [
131
+ "Int8Array",
132
+ "Uint8Array",
133
+ "Uint8ClampedArray",
134
+ "Int16Array",
135
+ "Uint16Array",
136
+ "Int32Array",
137
+ "Uint32Array",
138
+ "Float32Array",
139
+ "Float64Array"
140
+ ]) Serializer.prototype["$" + type] = function(arr) {
141
+ return `${type}[${arr.join(",")}]`;
142
+ };
143
+ for (const type of ["BigInt64Array", "BigUint64Array"]) Serializer.prototype["$" + type] = function(arr) {
144
+ return `${type}[${arr.join("n,")}${arr.length > 0 ? "n" : ""}]`;
145
+ };
146
+ return Serializer;
147
+ })();
148
+ //#endregion
149
+ //#region ../../node_modules/.pnpm/ohash@2.0.12/node_modules/ohash/dist/crypto/js/index.mjs
150
+ const H = [
151
+ 1779033703,
152
+ -1150833019,
153
+ 1013904242,
154
+ -1521486534,
155
+ 1359893119,
156
+ -1694144372,
157
+ 528734635,
158
+ 1541459225
159
+ ];
160
+ const K = [
161
+ 1116352408,
162
+ 1899447441,
163
+ -1245643825,
164
+ -373957723,
165
+ 961987163,
166
+ 1508970993,
167
+ -1841331548,
168
+ -1424204075,
169
+ -670586216,
170
+ 310598401,
171
+ 607225278,
172
+ 1426881987,
173
+ 1925078388,
174
+ -2132889090,
175
+ -1680079193,
176
+ -1046744716,
177
+ -459576895,
178
+ -272742522,
179
+ 264347078,
180
+ 604807628,
181
+ 770255983,
182
+ 1249150122,
183
+ 1555081692,
184
+ 1996064986,
185
+ -1740746414,
186
+ -1473132947,
187
+ -1341970488,
188
+ -1084653625,
189
+ -958395405,
190
+ -710438585,
191
+ 113926993,
192
+ 338241895,
193
+ 666307205,
194
+ 773529912,
195
+ 1294757372,
196
+ 1396182291,
197
+ 1695183700,
198
+ 1986661051,
199
+ -2117940946,
200
+ -1838011259,
201
+ -1564481375,
202
+ -1474664885,
203
+ -1035236496,
204
+ -949202525,
205
+ -778901479,
206
+ -694614492,
207
+ -200395387,
208
+ 275423344,
209
+ 430227734,
210
+ 506948616,
211
+ 659060556,
212
+ 883997877,
213
+ 958139571,
214
+ 1322822218,
215
+ 1537002063,
216
+ 1747873779,
217
+ 1955562222,
218
+ 2024104815,
219
+ -2067236844,
220
+ -1933114872,
221
+ -1866530822,
222
+ -1538233109,
223
+ -1090935817,
224
+ -965641998
225
+ ];
226
+ const base64KeyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
227
+ const W = [];
228
+ var SHA256 = class {
229
+ _data = new WordArray();
230
+ _hash = new WordArray([...H]);
231
+ _nDataBytes = 0;
232
+ _minBufferSize = 0;
233
+ finalize(messageUpdate) {
234
+ if (messageUpdate) this._append(messageUpdate);
235
+ const nBitsTotal = this._nDataBytes * 8;
236
+ const nBitsLeft = this._data.sigBytes * 8;
237
+ this._data.words[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
238
+ this._data.words[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 4294967296);
239
+ this._data.words[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;
240
+ this._data.sigBytes = this._data.words.length * 4;
241
+ this._process();
242
+ return this._hash;
243
+ }
244
+ _doProcessBlock(M, offset) {
245
+ const H = this._hash.words;
246
+ let a = H[0];
247
+ let b = H[1];
248
+ let c = H[2];
249
+ let d = H[3];
250
+ let e = H[4];
251
+ let f = H[5];
252
+ let g = H[6];
253
+ let h = H[7];
254
+ for (let i = 0; i < 64; i++) {
255
+ if (i < 16) W[i] = M[offset + i] | 0;
256
+ else {
257
+ const gamma0x = W[i - 15];
258
+ const gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;
259
+ const gamma1x = W[i - 2];
260
+ const gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;
261
+ W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
262
+ }
263
+ const ch = e & f ^ ~e & g;
264
+ const maj = a & b ^ a & c ^ b & c;
265
+ const sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);
266
+ const sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);
267
+ const t1 = h + sigma1 + ch + K[i] + W[i];
268
+ const t2 = sigma0 + maj;
269
+ h = g;
270
+ g = f;
271
+ f = e;
272
+ e = d + t1 | 0;
273
+ d = c;
274
+ c = b;
275
+ b = a;
276
+ a = t1 + t2 | 0;
277
+ }
278
+ H[0] = H[0] + a | 0;
279
+ H[1] = H[1] + b | 0;
280
+ H[2] = H[2] + c | 0;
281
+ H[3] = H[3] + d | 0;
282
+ H[4] = H[4] + e | 0;
283
+ H[5] = H[5] + f | 0;
284
+ H[6] = H[6] + g | 0;
285
+ H[7] = H[7] + h | 0;
286
+ }
287
+ _append(data) {
288
+ if (typeof data === "string") data = WordArray.fromUtf8(data);
289
+ this._data.concat(data);
290
+ this._nDataBytes += data.sigBytes;
291
+ }
292
+ _process(doFlush) {
293
+ let processedWords;
294
+ let nBlocksReady = this._data.sigBytes / 64;
295
+ if (doFlush) nBlocksReady = Math.ceil(nBlocksReady);
296
+ else nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
297
+ const nWordsReady = nBlocksReady * 16;
298
+ const nBytesReady = Math.min(nWordsReady * 4, this._data.sigBytes);
299
+ if (nWordsReady) {
300
+ for (let offset = 0; offset < nWordsReady; offset += 16) this._doProcessBlock(this._data.words, offset);
301
+ processedWords = this._data.words.splice(0, nWordsReady);
302
+ this._data.sigBytes -= nBytesReady;
303
+ }
304
+ return new WordArray(processedWords, nBytesReady);
305
+ }
306
+ };
307
+ var WordArray = class WordArray {
308
+ words;
309
+ sigBytes;
310
+ constructor(words, sigBytes) {
311
+ words = this.words = words || [];
312
+ this.sigBytes = sigBytes === void 0 ? words.length * 4 : sigBytes;
313
+ }
314
+ static fromUtf8(input) {
315
+ const str = unescape(encodeURIComponent(input));
316
+ const strlen = str.length;
317
+ const words = [];
318
+ for (let i = 0; i < strlen; i++) words[i >>> 2] |= (str.charCodeAt(i) & 255) << 24 - i % 4 * 8;
319
+ return new WordArray(words, strlen);
320
+ }
321
+ toBase64() {
322
+ const base64Chars = [];
323
+ for (let i = 0; i < this.sigBytes; i += 3) {
324
+ const byte1 = this.words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
325
+ const byte2 = this.words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255;
326
+ const byte3 = this.words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255;
327
+ const triplet = byte1 << 16 | byte2 << 8 | byte3;
328
+ for (let j = 0; j < 4 && i * 8 + j * 6 < this.sigBytes * 8; j++) base64Chars.push(base64KeyStr.charAt(triplet >>> 6 * (3 - j) & 63));
329
+ }
330
+ return base64Chars.join("");
331
+ }
332
+ concat(wordArray) {
333
+ this.words[this.sigBytes >>> 2] &= 4294967295 << 32 - this.sigBytes % 4 * 8;
334
+ this.words.length = Math.ceil(this.sigBytes / 4);
335
+ if (this.sigBytes % 4) for (let i = 0; i < wordArray.sigBytes; i++) {
336
+ const thatByte = wordArray.words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
337
+ this.words[this.sigBytes + i >>> 2] |= thatByte << 24 - (this.sigBytes + i) % 4 * 8;
338
+ }
339
+ else for (let j = 0; j < wordArray.sigBytes; j += 4) this.words[this.sigBytes + j >>> 2] = wordArray.words[j >>> 2];
340
+ this.sigBytes += wordArray.sigBytes;
341
+ }
342
+ };
343
+ function digest(message) {
344
+ return new SHA256().finalize(message).toBase64();
345
+ }
346
+ //#endregion
347
+ //#region ../../node_modules/.pnpm/ohash@2.0.12/node_modules/ohash/dist/index.mjs
348
+ function hash$1(input) {
349
+ return digest(serialize(input));
350
+ }
351
+ //#endregion
352
+ //#region src/utils/hash.ts
353
+ /**
354
+ * Stable, deterministic hash of any structured-cloneable value.
355
+ */
356
+ function hash(value) {
357
+ return hash$1(value);
358
+ }
359
+ //#endregion
360
+ export { hash as t };
@@ -1,5 +1,5 @@
1
1
  import { t as DEVFRAME_EVENTS } from "./events-DKfSmoTj.mjs";
2
- import { t as diagnostics } from "./diagnostics-Di8ytitn.mjs";
2
+ import { t as diagnostics } from "./diagnostics-BXWW3VK-.mjs";
3
3
  //#region src/utils/events.ts
4
4
  /**
5
5
  * Create event emitter.
@@ -2,8 +2,8 @@ import { n as __exportAll } from "./rolldown-runtime-B4iAMlE-.mjs";
2
2
  import { t as Diagnostic } from "./nostics-CzECRXpE.mjs";
3
3
  import { t as DEVFRAME_EVENTS } from "./events-DKfSmoTj.mjs";
4
4
  import { i as isAllowedOrigin } from "./ws-server-BdSLrhxE.mjs";
5
- import { t as diagnostics } from "./diagnostics-Di8ytitn.mjs";
6
- import { t as createHostContext } from "./context-Bdkakk8S.mjs";
5
+ import { t as diagnostics } from "./diagnostics-BXWW3VK-.mjs";
6
+ import { t as createHostContext } from "./context-CQW0lSw8.mjs";
7
7
  import { t as toAgentToolName } from "./agent-tool-name-EgfoFO8C.mjs";
8
8
  import { randomUUID } from "node:crypto";
9
9
  import process from "node:process";
@@ -209,11 +209,12 @@ async function createMcpServer(definition, options = {}) {
209
209
  if (scope === "project") return join(process.cwd(), `node_modules/.${definition.id}/devframe`);
210
210
  return join(homedir(), `.${definition.id}/devframe`);
211
211
  }
212
- }
212
+ },
213
+ importMetaUrl: definition.importMetaUrl
213
214
  });
214
- for (const input of definition.services ?? []) ctx.services.install(input, { resolveFrom: definition.packageName });
215
- await definition.setup(ctx);
215
+ for (const input of definition.services ?? []) ctx.services.install(input, { resolveFrom: definition.importMetaUrl });
216
216
  await ctx.services.ready();
217
+ await definition.setup(ctx);
217
218
  const { server, dispose } = buildMcpServerFromContext(ctx, {
218
219
  serverName: options.serverName ?? `${definition.id} (devframe)`,
219
220
  serverVersion: options.serverVersion ?? definition.version ?? "0.0.0",
@@ -1,5 +1,5 @@
1
- import { _ as DevframeNodeRpcSession, g as DevframeNodeContext, gt as SharedState } from "./devframe-BlLEZR-x.mjs";
2
- import { n as InternalAnonymousAuthStorage } from "./context-dqyXS6o3.mjs";
1
+ import { k as SharedState, o as DevframeNodeContext, s as DevframeNodeRpcSession } from "./context-_i51nYOs.mjs";
2
+ import { n as InternalAnonymousAuthStorage } from "./context-CO7eZHJy.mjs";
3
3
  //#region src/node/auth/revoke.d.ts
4
4
  /**
5
5
  * Flip `isTrusted` to false on any live WS clients connected with `token`
@@ -1,4 +1,4 @@
1
- import { C as RpcFunctionType, S as RpcFunctionSetupResult, T as RpcReturnSchema, _ as RpcFunctionDefinition, i as RpcArgsSchema, v as RpcFunctionDefinitionAny, w as RpcFunctionsCollector } from "./types-Djq7CBXh.mjs";
1
+ import { C as RpcFunctionType, S as RpcFunctionSetupResult, T as RpcReturnSchema, _ as RpcFunctionDefinition, i as RpcArgsSchema, v as RpcFunctionDefinitionAny, w as RpcFunctionsCollector } from "./types-BBLeGfpt.mjs";
2
2
  //#region src/rpc/cache.d.ts
3
3
  interface RpcCacheOptions {
4
4
  functions: string[];
package/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
1
- import { $ as DevframeStorageScope, A as DevframeServiceId, At as DevframeAgentHost, B as DevframeScopedNodeRpc, C as RpcStreamingChannelOptions, Ct as AgentResource, D as DevframeRpcSharedStates, Dt as AgentToolInput, E as DevframeRpcServerFunctions, Et as AgentTool, F as DevframeServicesHost, G as ScopedBroadcastOptions, H as DevframeSettings, I as DevframeServicesRegistry, J as ScopedServerFunctions, K as ScopedClientFunctions, L as DevframeServicesScopeRegistry, M as DevframeServiceMeta, Mt as EventEmitter, N as DevframeServiceOf, Nt as EventUnsubscribe, O as DevframeServiceDefinition, Ot as AgentToolProvider, P as DevframeServiceScopeOf, Pt as EventsMap, Q as DevframeHost, R as DevframeServicesState, S as RpcStreamingChannel, St as AgentManifest, T as DevframeRpcClientFunctions, Tt as AgentResourceInput, U as DevframeSettingsRegistry, V as DevframeScopedStreamingHost, W as DevframeSettingsStore, X as SettingsForNamespace, Y as ScopedSharedStates, Z as DevframeViewHost, _ as DevframeNodeRpcSession, a as DevframeDuplicationStrategy, b as RpcSharedStateGetOptions, c as DevframeWsOptions, d as ConnectionMeta, et as DevframeDiagnosticsHost, f as ConnectionMetaSse, g as DevframeNodeContext, h as DevframeConnectionConfigsRegistry, i as DevframeDockDefaults, j as DevframeServiceInput, jt as DevframeAgentHostEvents, k as DevframeServiceDescriptor, kt as AgentToolProviderHandle, l as McpRouteOptions, m as DevframeCapabilities, n as DevframeDefinition, o as DevframeSetupInfo, p as ConnectionMetaWebsocket, q as ScopedRpcFn, r as DevframeDeploymentKind, s as DevframeSseOptions, t as DevframeCliOptions, tt as DevframeDiagnosticsLogger, v as RpcBroadcastOptions, w as RpcStreamingHost, wt as AgentResourceContent, x as RpcSharedStateHost, xt as AgentHandle, y as RpcFunctionsHost, z as DevframeScopedNodeContext } from "./devframe-BlLEZR-x.mjs";
2
- import "./index-tdrk1bzV.mjs";
3
- import { C as RpcFunctionType, T as RpcReturnSchema, _ as RpcFunctionDefinition, g as RpcFunctionAgentOptions, i as RpcArgsSchema } from "./types-Djq7CBXh.mjs";
4
- import { d as DevframeRpcConnection, f as DevframeRpcConnectionRequest, p as DevframeRpcTransportKind, u as DevframeNodeRpcSessionMeta } from "./ws-server-D1d3QM9f.mjs";
5
- import { i as DevframeDefineDiagnosticsOptions } from "./nostics-SPGDgHEP.mjs";
1
+ import "./index-DOg4S5wk.mjs";
2
+ import { C as RpcFunctionType, T as RpcReturnSchema, _ as RpcFunctionDefinition, g as RpcFunctionAgentOptions, i as RpcArgsSchema } from "./types-BBLeGfpt.mjs";
3
+ import { d as DevframeRpcConnection, f as DevframeRpcConnectionRequest, p as DevframeRpcTransportKind, u as DevframeNodeRpcSessionMeta } from "./ws-server-DLtEoLdR.mjs";
4
+ import { $ as DevframeServicesHost, At as AgentResource, B as DevframeSetupInfo, Bt as EventUnsubscribe, F as DevframeDefinition, Ft as AgentToolProvider, G as McpRouteOptions, H as DevframeSnapshotRpcInputs, I as DevframeDeploymentKind, It as AgentToolProviderHandle, J as DevframeServiceId, K as DevframeServiceDefinition, L as DevframeDockDefaults, Lt as DevframeAgentHost, Mt as AgentResourceInput, Nt as AgentTool, Ot as AgentHandle, P as DevframeCliOptions, Pt as AgentToolInput, Q as DevframeServiceScopeOf, R as DevframeDuplicationStrategy, Rt as DevframeAgentHostEvents, St as DevframeDiagnosticsLogger, U as DevframeSseOptions, V as DevframeSnapshotRpcEntry, Vt as EventsMap, W as DevframeWsOptions, X as DevframeServiceMeta, Y as DevframeServiceInput, Z as DevframeServiceOf, _t as DevframeRpcServerFunctions, a as DevframeConnectionConfigsRegistry, at as DevframeScopedStreamingHost, bt as DevframeStorageScope, c as RpcBroadcastOptions, ct as DevframeSettingsStore, d as RpcSharedStateHost, dt as ScopedRpcFn, et as DevframeServicesRegistry, f as RpcStreamingChannel, ft as ScopedServerFunctions, gt as DevframeRpcClientFunctions, ht as DevframeViewHost, i as DevframeCapabilities, it as DevframeScopedNodeRpc, jt as AgentResourceContent, kt as AgentManifest, l as RpcFunctionsHost, lt as ScopedBroadcastOptions, m as RpcStreamingHost, mt as SettingsForNamespace, n as ConnectionMetaSse, nt as DevframeServicesState, o as DevframeNodeContext, ot as DevframeSettings, p as RpcStreamingChannelOptions, pt as ScopedSharedStates, q as DevframeServiceDescriptor, r as ConnectionMetaWebsocket, rt as DevframeScopedNodeContext, s as DevframeNodeRpcSession, st as DevframeSettingsRegistry, t as ConnectionMeta, tt as DevframeServicesScopeRegistry, u as RpcSharedStateGetOptions, ut as ScopedClientFunctions, vt as DevframeRpcSharedStates, xt as DevframeDiagnosticsHost, yt as DevframeHost, z as DevframeRpcOptions, zt as EventEmitter } from "./context-_i51nYOs.mjs";
6
5
  import { a as RemoteAssetsStore, i as RemoteAssetsProviderCustom, n as RemoteAssetsErrorMessage, o as StaticAssetsSource, r as RemoteAssetsProvider, t as RemoteAssets } from "./remote-assets-Bg4gCUZ_.mjs";
6
+ import { i as DevframeDefineDiagnosticsOptions } from "./nostics-SPGDgHEP.mjs";
7
7
  //#region src/define.d.ts
8
8
  declare const defineRpcFunction: <NAME extends string, TYPE extends RpcFunctionType, ARGS extends any[], RETURN = void, const AS extends RpcArgsSchema | undefined = undefined, const RS extends RpcReturnSchema | undefined = undefined>(definition: RpcFunctionDefinition<NAME, TYPE, ARGS, RETURN, AS, RS, DevframeNodeContext>) => RpcFunctionDefinition<NAME, TYPE, ARGS, RETURN, AS, RS, DevframeNodeContext>;
9
9
  /**
@@ -12,4 +12,4 @@ declare const defineRpcFunction: <NAME extends string, TYPE extends RpcFunctionT
12
12
  */
13
13
  declare function defineDevframe(d: DevframeDefinition): DevframeDefinition;
14
14
  //#endregion
15
- export { type AgentHandle, type AgentManifest, type AgentResource, type AgentResourceContent, type AgentResourceInput, type AgentTool, type AgentToolInput, type AgentToolProvider, type AgentToolProviderHandle, type ConnectionMeta, type ConnectionMetaSse, type ConnectionMetaWebsocket, type DevframeAgentHost, type DevframeAgentHostEvents, type DevframeCapabilities, type DevframeCliOptions, type DevframeConnectionConfigsRegistry, type DevframeDefineDiagnosticsOptions, type DevframeDefinition, type DevframeDeploymentKind, type DevframeDiagnosticsHost, type DevframeDiagnosticsLogger, type DevframeDockDefaults, type DevframeDuplicationStrategy, type DevframeHost, type DevframeNodeContext, type DevframeNodeRpcSession, type DevframeNodeRpcSessionMeta, type DevframeRpcClientFunctions, type DevframeRpcConnection, type DevframeRpcConnectionRequest, type DevframeRpcServerFunctions, type DevframeRpcSharedStates, type DevframeRpcTransportKind, type DevframeScopedNodeContext, type DevframeScopedNodeRpc, type DevframeScopedStreamingHost, type DevframeServiceDefinition, type DevframeServiceDescriptor, type DevframeServiceId, type DevframeServiceInput, type DevframeServiceMeta, type DevframeServiceOf, type DevframeServiceScopeOf, type DevframeServicesHost, type DevframeServicesRegistry, type DevframeServicesScopeRegistry, type DevframeServicesState, type DevframeSettings, type DevframeSettingsRegistry, type DevframeSettingsStore, type DevframeSetupInfo, type DevframeSseOptions, type DevframeStorageScope, type DevframeViewHost, type DevframeWsOptions, type EventEmitter, type EventUnsubscribe, type EventsMap, type McpRouteOptions, type RemoteAssets, type RemoteAssetsErrorMessage, type RemoteAssetsProvider, type RemoteAssetsProviderCustom, type RemoteAssetsStore, type RpcBroadcastOptions, type RpcFunctionAgentOptions, type RpcFunctionsHost, type RpcSharedStateGetOptions, type RpcSharedStateHost, type RpcStreamingChannel, type RpcStreamingChannelOptions, type RpcStreamingHost, type ScopedBroadcastOptions, type ScopedClientFunctions, type ScopedRpcFn, type ScopedServerFunctions, type ScopedSharedStates, type SettingsForNamespace, type StaticAssetsSource, defineDevframe, defineRpcFunction };
15
+ export { type AgentHandle, type AgentManifest, type AgentResource, type AgentResourceContent, type AgentResourceInput, type AgentTool, type AgentToolInput, type AgentToolProvider, type AgentToolProviderHandle, type ConnectionMeta, type ConnectionMetaSse, type ConnectionMetaWebsocket, type DevframeAgentHost, type DevframeAgentHostEvents, type DevframeCapabilities, type DevframeCliOptions, type DevframeConnectionConfigsRegistry, type DevframeDefineDiagnosticsOptions, type DevframeDefinition, type DevframeDeploymentKind, type DevframeDiagnosticsHost, type DevframeDiagnosticsLogger, type DevframeDockDefaults, type DevframeDuplicationStrategy, type DevframeHost, type DevframeNodeContext, type DevframeNodeRpcSession, type DevframeNodeRpcSessionMeta, type DevframeRpcClientFunctions, type DevframeRpcConnection, type DevframeRpcConnectionRequest, type DevframeRpcOptions, type DevframeRpcServerFunctions, type DevframeRpcSharedStates, type DevframeRpcTransportKind, type DevframeScopedNodeContext, type DevframeScopedNodeRpc, type DevframeScopedStreamingHost, type DevframeServiceDefinition, type DevframeServiceDescriptor, type DevframeServiceId, type DevframeServiceInput, type DevframeServiceMeta, type DevframeServiceOf, type DevframeServiceScopeOf, type DevframeServicesHost, type DevframeServicesRegistry, type DevframeServicesScopeRegistry, type DevframeServicesState, type DevframeSettings, type DevframeSettingsRegistry, type DevframeSettingsStore, type DevframeSetupInfo, type DevframeSnapshotRpcEntry, type DevframeSnapshotRpcInputs, type DevframeSseOptions, type DevframeStorageScope, type DevframeViewHost, type DevframeWsOptions, type EventEmitter, type EventUnsubscribe, type EventsMap, type McpRouteOptions, type RemoteAssets, type RemoteAssetsErrorMessage, type RemoteAssetsProvider, type RemoteAssetsProviderCustom, type RemoteAssetsStore, type RpcBroadcastOptions, type RpcFunctionAgentOptions, type RpcFunctionsHost, type RpcSharedStateGetOptions, type RpcSharedStateHost, type RpcStreamingChannel, type RpcStreamingChannelOptions, type RpcStreamingHost, type ScopedBroadcastOptions, type ScopedClientFunctions, type ScopedRpcFn, type ScopedServerFunctions, type ScopedSharedStates, type SettingsForNamespace, type StaticAssetsSource, defineDevframe, defineRpcFunction };
@@ -1,5 +1,5 @@
1
1
  import { n as __exportAll } from "./rolldown-runtime-B4iAMlE-.mjs";
2
- import { t as diagnostics } from "./diagnostics-Di8ytitn.mjs";
2
+ import { t as diagnostics } from "./diagnostics-BXWW3VK-.mjs";
3
3
  import process from "node:process";
4
4
  import { join } from "pathe";
5
5
  import { mkdirSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import "./constants.mjs";
2
- import { t as diagnostics } from "./diagnostics-Di8ytitn.mjs";
3
- import { t as getInternalContext } from "./context-CXhjygJU.mjs";
2
+ import { t as diagnostics } from "./diagnostics-BXWW3VK-.mjs";
3
+ import { t as getInternalContext } from "./context-BUJGvlje.mjs";
4
4
  import { createInteractiveAuth } from "./recipes/interactive-auth.mjs";
5
5
  import { createServer } from "node:http";
6
6
  import process from "node:process";
@@ -197,7 +197,7 @@ function createInstanceShell(options) {
197
197
  const origin = currentOrigin();
198
198
  if (!cfg || registerPromise || !origin || !meta) return;
199
199
  const resolvedMeta = meta;
200
- registerPromise = import("./instance-registry-CHunhMi5.mjs").then((n) => n.t).then(({ registerDevframeInstance }) => {
200
+ registerPromise = import("./instance-registry-BjlMQbFB.mjs").then((n) => n.t).then(({ registerDevframeInstance }) => {
201
201
  let port = 0;
202
202
  try {
203
203
  const url = new URL(origin);
@@ -257,7 +257,7 @@ function createInstanceShell(options) {
257
257
  let resolvedAuth = false;
258
258
  let corePromise;
259
259
  function ensureCore() {
260
- corePromise ??= import("./rpc-core-Dru9uoM0.mjs").then((n) => n.n).then(({ createContextRpcServer }) => createContextRpcServer({
260
+ corePromise ??= import("./rpc-core-DlHd276T.mjs").then((n) => n.n).then(({ createContextRpcServer }) => createContextRpcServer({
261
261
  context: ctx,
262
262
  auth: resolvedAuth,
263
263
  onPeerConnect: options.onPeerConnect,
@@ -1,6 +1,6 @@
1
- import { E as DevframeRpcServerFunctions, T as DevframeRpcClientFunctions, _ as DevframeNodeRpcSession, c as DevframeWsOptions, d as ConnectionMeta, g as DevframeNodeContext, s as DevframeSseOptions, u as DevframeAuthHandler } from "./devframe-BlLEZR-x.mjs";
2
- import { d as DevframeRpcConnection, n as WsOriginRegistry, u as DevframeNodeRpcSessionMeta } from "./ws-server-D1d3QM9f.mjs";
3
- import "./index-BKFT9-jA.mjs";
1
+ import { d as DevframeRpcConnection, n as WsOriginRegistry, u as DevframeNodeRpcSessionMeta } from "./ws-server-DLtEoLdR.mjs";
2
+ import { Ct as DevframeAuthHandler, U as DevframeSseOptions, W as DevframeWsOptions, _t as DevframeRpcServerFunctions, gt as DevframeRpcClientFunctions, o as DevframeNodeContext, s as DevframeNodeRpcSession, t as ConnectionMeta } from "./context-_i51nYOs.mjs";
3
+ import "./index-CEvd-YXD.mjs";
4
4
  import { BirpcGroup } from "birpc";
5
5
  import { NodeAdapter } from "crossws/adapters/node";
6
6
  import { Buffer } from "node:buffer";
@@ -1,9 +1,9 @@
1
- import { At as DevframeAgentHost$1, Ct as AgentResource, Dt as AgentToolInput, Et as AgentTool, Mt as EventEmitter, Ot as AgentToolProvider, Q as DevframeHost, St as AgentManifest, Tt as AgentResourceInput, g as DevframeNodeContext, jt as DevframeAgentHostEvents, kt as AgentToolProviderHandle, wt as AgentResourceContent, xt as AgentHandle } from "../devframe-BlLEZR-x.mjs";
2
- import { v as RpcFunctionDefinitionAny } from "../types-Djq7CBXh.mjs";
1
+ import { v as RpcFunctionDefinitionAny } from "../types-BBLeGfpt.mjs";
2
+ import { At as AgentResource, Ft as AgentToolProvider, It as AgentToolProviderHandle, Lt as DevframeAgentHost$1, Mt as AgentResourceInput, Nt as AgentTool, Ot as AgentHandle, Pt as AgentToolInput, Rt as DevframeAgentHostEvents, jt as AgentResourceContent, kt as AgentManifest, o as DevframeNodeContext, yt as DevframeHost, zt as EventEmitter } from "../context-_i51nYOs.mjs";
3
3
  import { a as RemoteAssetsStore } from "../remote-assets-Bg4gCUZ_.mjs";
4
- import { a as InstanceShellInit, c as StartedServer, d as samePath, f as DevframeInstanceRecord, h as registerDevframeInstance, i as InstanceShellApi, l as createInstanceShell, m as listLiveDevframeInstances, n as InstanceRegisterConfig, o as InstanceShellInternals, p as DevframeInstanceRegistration, r as InstanceShell, s as InstanceWsTier, t as CreateInstanceShellOptions, u as resolveInstanceRegister } from "../instance-shell-0iw-cQ5V.mjs";
5
- import { n as normalizeBasePath, r as resolveBasePath } from "../_shared-DqbKCAew.mjs";
6
- import { n as CreateContextRpcServerOptions, r as createContextRpcServer, t as ContextRpcServer } from "../rpc-core-CR8o34O9.mjs";
4
+ import { a as InstanceShellInit, c as StartedServer, d as samePath, f as DevframeInstanceRecord, h as registerDevframeInstance, i as InstanceShellApi, l as createInstanceShell, m as listLiveDevframeInstances, n as InstanceRegisterConfig, o as InstanceShellInternals, p as DevframeInstanceRegistration, r as InstanceShell, s as InstanceWsTier, t as CreateInstanceShellOptions, u as resolveInstanceRegister } from "../instance-shell-BHvBIGP4.mjs";
5
+ import { n as normalizeBasePath, r as resolveBasePath } from "../_shared-BPovvJW8.mjs";
6
+ import { n as CreateContextRpcServerOptions, r as createContextRpcServer, t as ContextRpcServer } from "../rpc-core-CDZoGYiD.mjs";
7
7
  //#region src/node/agent-args.d.ts
8
8
  /**
9
9
  * How {@link coerceAgentPositionalArgs} treats an args object that carries
@@ -316,11 +316,11 @@ declare const diagnostics: import("nostics").Diagnostics<{
316
316
  }) => string;
317
317
  readonly fix: "A service package's default export must be a factory returning a `DevframeServiceDefinition` — an object with `package`, `version`, `scope`, and a `setup` function.";
318
318
  };
319
- readonly DF0071: {
319
+ readonly DF0072: {
320
320
  readonly why: (p: {
321
- reason: string;
321
+ method: string;
322
322
  }) => string;
323
- readonly fix: "Call `ctx.services.ready()` explicitly after every devframe's setup has run (the first-party adapters do) so installation errors surface at startup instead of at connect time.";
323
+ readonly fix: "Check the method id, and ensure the service/plugin that registers it is installed (e.g. declared in `services`) before the build collects the dump.";
324
324
  };
325
325
  }, readonly [(d: import("nostics").Diagnostic, { method }?: {
326
326
  method?: "log" | "warn" | "error";
@@ -1,9 +1,9 @@
1
1
  import { n as peekRpcWireFrame, t as createRpcWireCodec } from "../wire-codec-0K-o5MYW.mjs";
2
- import { t as diagnostics } from "../diagnostics-Di8ytitn.mjs";
3
- import { n as coerceAgentPositionalArgs, t as DevframeAgentHost } from "../host-agent-BDdcOXhG.mjs";
2
+ import { t as diagnostics } from "../diagnostics-BXWW3VK-.mjs";
3
+ import { n as coerceAgentPositionalArgs, t as DevframeAgentHost } from "../host-agent-B84av916.mjs";
4
4
  import { n as resolveBasePath, t as normalizeBasePath } from "../_shared-BM3PdYli.mjs";
5
5
  import { t as createH3DevframeHost } from "../host-h3-fRbF9yor.mjs";
6
- import { i as registerDevframeInstance, n as listLiveDevframeInstances } from "../instance-registry-CHunhMi5.mjs";
7
- import { i as normalizeHttpServerUrl, n as resolveInstanceRegister, r as samePath, t as createInstanceShell } from "../instance-shell-DbDoozNM.mjs";
8
- import { t as createContextRpcServer } from "../rpc-core-Dru9uoM0.mjs";
6
+ import { i as registerDevframeInstance, n as listLiveDevframeInstances } from "../instance-registry-BjlMQbFB.mjs";
7
+ import { i as normalizeHttpServerUrl, n as resolveInstanceRegister, r as samePath, t as createInstanceShell } from "../instance-shell-B-uevnK-.mjs";
8
+ import { t as createContextRpcServer } from "../rpc-core-DlHd276T.mjs";
9
9
  export { DevframeAgentHost, coerceAgentPositionalArgs, createContextRpcServer, createH3DevframeHost, createInstanceShell, createRpcWireCodec, diagnostics, listLiveDevframeInstances, normalizeBasePath, normalizeHttpServerUrl, peekRpcWireFrame, registerDevframeInstance, resolveBasePath, resolveInstanceRegister, samePath };
@@ -1,3 +1,3 @@
1
- import { u as DevframeAuthHandler } from "../devframe-BlLEZR-x.mjs";
2
- import { a as verifyAuthToken, i as refreshTempAuthCode, n as exchangeTempAuthCode, o as revokeActiveConnectionsForToken, r as getTempAuthCode, s as revokeAuthToken, t as buildOtpAuthUrl } from "../index-BKFT9-jA.mjs";
1
+ import { Ct as DevframeAuthHandler } from "../context-_i51nYOs.mjs";
2
+ import { a as verifyAuthToken, i as refreshTempAuthCode, n as exchangeTempAuthCode, o as revokeActiveConnectionsForToken, r as getTempAuthCode, s as revokeAuthToken, t as buildOtpAuthUrl } from "../index-CEvd-YXD.mjs";
3
3
  export { DevframeAuthHandler, buildOtpAuthUrl, exchangeTempAuthCode, getTempAuthCode, refreshTempAuthCode, revokeActiveConnectionsForToken, revokeAuthToken, verifyAuthToken };
@@ -1,3 +1,3 @@
1
- import { a as internalContextMap, i as getInternalContext, n as InternalAnonymousAuthStorage, r as RemoteTokenRecord, t as DevframeInternalContext } from "../context-dqyXS6o3.mjs";
2
- import { n as normalizeBasePath, r as resolveBasePath } from "../_shared-DqbKCAew.mjs";
1
+ import { a as internalContextMap, i as getInternalContext, n as InternalAnonymousAuthStorage, r as RemoteTokenRecord, t as DevframeInternalContext } from "../context-CO7eZHJy.mjs";
2
+ import { n as normalizeBasePath, r as resolveBasePath } from "../_shared-BPovvJW8.mjs";
3
3
  export { type DevframeInternalContext, type InternalAnonymousAuthStorage, type RemoteTokenRecord, getInternalContext, internalContextMap, normalizeBasePath, resolveBasePath };
@@ -1,3 +1,3 @@
1
1
  import { n as resolveBasePath, t as normalizeBasePath } from "../_shared-BM3PdYli.mjs";
2
- import { n as internalContextMap, t as getInternalContext } from "../context-CXhjygJU.mjs";
2
+ import { n as internalContextMap, t as getInternalContext } from "../context-BUJGvlje.mjs";
3
3
  export { getInternalContext, internalContextMap, normalizeBasePath, resolveBasePath };