@buoy-gg/agent-core 7.0.35 → 7.0.36

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 (174) hide show
  1. package/README.md +10 -7
  2. package/lib/commonjs/blocks/receipts.js +57 -1
  3. package/lib/commonjs/blocks/receipts.js.map +1 -1
  4. package/lib/commonjs/blocks/types.js +23 -2
  5. package/lib/commonjs/blocks/types.js.map +1 -1
  6. package/lib/commonjs/blocks/uiTool.js +423 -10
  7. package/lib/commonjs/blocks/uiTool.js.map +1 -1
  8. package/lib/commonjs/catalog/catalog.g.js +121 -43
  9. package/lib/commonjs/catalog/catalog.g.js.map +1 -1
  10. package/lib/commonjs/catalog/catalog.source.json +121 -45
  11. package/lib/commonjs/catalog/catalog.types.g.js +44 -0
  12. package/lib/commonjs/catalog/catalog.types.g.js.map +1 -0
  13. package/lib/commonjs/catalog/normalizeParams.js +333 -0
  14. package/lib/commonjs/catalog/normalizeParams.js.map +1 -0
  15. package/lib/commonjs/catalog/signature.js +68 -0
  16. package/lib/commonjs/catalog/signature.js.map +1 -0
  17. package/lib/commonjs/catalog/snapshotReads.js +13 -6
  18. package/lib/commonjs/catalog/snapshotReads.js.map +1 -1
  19. package/lib/commonjs/catalog/toProviderTools.js +41 -5
  20. package/lib/commonjs/catalog/toProviderTools.js.map +1 -1
  21. package/lib/commonjs/context/buildContextPack.js +367 -19
  22. package/lib/commonjs/context/buildContextPack.js.map +1 -1
  23. package/lib/commonjs/effects/digest.js +34 -0
  24. package/lib/commonjs/effects/digest.js.map +1 -0
  25. package/lib/commonjs/effects/ledger.js +85 -1
  26. package/lib/commonjs/effects/ledger.js.map +1 -1
  27. package/lib/commonjs/engine/askGate.js +287 -0
  28. package/lib/commonjs/engine/askGate.js.map +1 -0
  29. package/lib/commonjs/engine/effectFor.js +82 -1
  30. package/lib/commonjs/engine/effectFor.js.map +1 -1
  31. package/lib/commonjs/engine/historyBudget.js +260 -0
  32. package/lib/commonjs/engine/historyBudget.js.map +1 -0
  33. package/lib/commonjs/engine/runAgentTurn.js +924 -83
  34. package/lib/commonjs/engine/runAgentTurn.js.map +1 -1
  35. package/lib/commonjs/engine/systemPrompt.js +72 -8
  36. package/lib/commonjs/engine/systemPrompt.js.map +1 -1
  37. package/lib/commonjs/engine/textToolCalls.js +276 -0
  38. package/lib/commonjs/engine/textToolCalls.js.map +1 -0
  39. package/lib/commonjs/index.js +58 -0
  40. package/lib/commonjs/index.js.map +1 -1
  41. package/lib/commonjs/policy/labels.js +19 -3
  42. package/lib/commonjs/policy/labels.js.map +1 -1
  43. package/lib/commonjs/policy/policy.js +6 -1
  44. package/lib/commonjs/policy/policy.js.map +1 -1
  45. package/lib/commonjs/policy/redact.js +42 -5
  46. package/lib/commonjs/policy/redact.js.map +1 -1
  47. package/lib/commonjs/providers/anthropic.js +331 -208
  48. package/lib/commonjs/providers/anthropic.js.map +1 -1
  49. package/lib/commonjs/providers/openai.js +229 -103
  50. package/lib/commonjs/providers/openai.js.map +1 -1
  51. package/lib/commonjs/providers/sse.js +164 -29
  52. package/lib/commonjs/providers/sse.js.map +1 -1
  53. package/lib/commonjs/providers/streamTimer.js +123 -0
  54. package/lib/commonjs/providers/streamTimer.js.map +1 -0
  55. package/lib/commonjs/providers/transport.js +107 -0
  56. package/lib/commonjs/providers/transport.js.map +1 -0
  57. package/lib/commonjs/providers/xhrStream.js +209 -0
  58. package/lib/commonjs/providers/xhrStream.js.map +1 -0
  59. package/lib/commonjs/session.js +215 -58
  60. package/lib/commonjs/session.js.map +1 -1
  61. package/lib/module/blocks/receipts.js +57 -1
  62. package/lib/module/blocks/receipts.js.map +1 -1
  63. package/lib/module/blocks/types.js +23 -2
  64. package/lib/module/blocks/types.js.map +1 -1
  65. package/lib/module/blocks/uiTool.js +421 -10
  66. package/lib/module/blocks/uiTool.js.map +1 -1
  67. package/lib/module/catalog/catalog.g.js +121 -43
  68. package/lib/module/catalog/catalog.g.js.map +1 -1
  69. package/lib/module/catalog/catalog.source.json +121 -45
  70. package/lib/module/catalog/catalog.types.g.js +40 -0
  71. package/lib/module/catalog/catalog.types.g.js.map +1 -0
  72. package/lib/module/catalog/normalizeParams.js +327 -0
  73. package/lib/module/catalog/normalizeParams.js.map +1 -0
  74. package/lib/module/catalog/signature.js +63 -0
  75. package/lib/module/catalog/signature.js.map +1 -0
  76. package/lib/module/catalog/snapshotReads.js +13 -6
  77. package/lib/module/catalog/snapshotReads.js.map +1 -1
  78. package/lib/module/catalog/toProviderTools.js +41 -5
  79. package/lib/module/catalog/toProviderTools.js.map +1 -1
  80. package/lib/module/context/buildContextPack.js +366 -19
  81. package/lib/module/context/buildContextPack.js.map +1 -1
  82. package/lib/module/effects/digest.js +29 -0
  83. package/lib/module/effects/digest.js.map +1 -0
  84. package/lib/module/effects/ledger.js +85 -1
  85. package/lib/module/effects/ledger.js.map +1 -1
  86. package/lib/module/engine/askGate.js +280 -0
  87. package/lib/module/engine/askGate.js.map +1 -0
  88. package/lib/module/engine/effectFor.js +83 -1
  89. package/lib/module/engine/effectFor.js.map +1 -1
  90. package/lib/module/engine/historyBudget.js +251 -0
  91. package/lib/module/engine/historyBudget.js.map +1 -0
  92. package/lib/module/engine/runAgentTurn.js +920 -83
  93. package/lib/module/engine/runAgentTurn.js.map +1 -1
  94. package/lib/module/engine/systemPrompt.js +71 -8
  95. package/lib/module/engine/systemPrompt.js.map +1 -1
  96. package/lib/module/engine/textToolCalls.js +270 -0
  97. package/lib/module/engine/textToolCalls.js.map +1 -0
  98. package/lib/module/index.js +5 -3
  99. package/lib/module/index.js.map +1 -1
  100. package/lib/module/policy/labels.js +19 -3
  101. package/lib/module/policy/labels.js.map +1 -1
  102. package/lib/module/policy/policy.js +6 -1
  103. package/lib/module/policy/policy.js.map +1 -1
  104. package/lib/module/policy/redact.js +42 -5
  105. package/lib/module/policy/redact.js.map +1 -1
  106. package/lib/module/providers/anthropic.js +332 -209
  107. package/lib/module/providers/anthropic.js.map +1 -1
  108. package/lib/module/providers/openai.js +230 -104
  109. package/lib/module/providers/openai.js.map +1 -1
  110. package/lib/module/providers/sse.js +160 -29
  111. package/lib/module/providers/sse.js.map +1 -1
  112. package/lib/module/providers/streamTimer.js +118 -0
  113. package/lib/module/providers/streamTimer.js.map +1 -0
  114. package/lib/module/providers/transport.js +103 -0
  115. package/lib/module/providers/transport.js.map +1 -0
  116. package/lib/module/providers/xhrStream.js +204 -0
  117. package/lib/module/providers/xhrStream.js.map +1 -0
  118. package/lib/module/session.js +199 -60
  119. package/lib/module/session.js.map +1 -1
  120. package/lib/typescript/blocks/receipts.d.ts +5 -0
  121. package/lib/typescript/blocks/receipts.d.ts.map +1 -1
  122. package/lib/typescript/blocks/types.d.ts +23 -2
  123. package/lib/typescript/blocks/types.d.ts.map +1 -1
  124. package/lib/typescript/blocks/uiTool.d.ts +11 -2
  125. package/lib/typescript/blocks/uiTool.d.ts.map +1 -1
  126. package/lib/typescript/catalog/catalog.g.d.ts.map +1 -1
  127. package/lib/typescript/catalog/catalog.types.g.d.ts +40 -0
  128. package/lib/typescript/catalog/catalog.types.g.d.ts.map +1 -0
  129. package/lib/typescript/catalog/normalizeParams.d.ts +43 -0
  130. package/lib/typescript/catalog/normalizeParams.d.ts.map +1 -0
  131. package/lib/typescript/catalog/signature.d.ts +29 -0
  132. package/lib/typescript/catalog/signature.d.ts.map +1 -0
  133. package/lib/typescript/catalog/snapshotReads.d.ts.map +1 -1
  134. package/lib/typescript/catalog/toProviderTools.d.ts +28 -15
  135. package/lib/typescript/catalog/toProviderTools.d.ts.map +1 -1
  136. package/lib/typescript/context/buildContextPack.d.ts +24 -2
  137. package/lib/typescript/context/buildContextPack.d.ts.map +1 -1
  138. package/lib/typescript/effects/digest.d.ts +10 -0
  139. package/lib/typescript/effects/digest.d.ts.map +1 -0
  140. package/lib/typescript/effects/ledger.d.ts +55 -0
  141. package/lib/typescript/effects/ledger.d.ts.map +1 -1
  142. package/lib/typescript/engine/askGate.d.ts +29 -0
  143. package/lib/typescript/engine/askGate.d.ts.map +1 -0
  144. package/lib/typescript/engine/effectFor.d.ts +6 -1
  145. package/lib/typescript/engine/effectFor.d.ts.map +1 -1
  146. package/lib/typescript/engine/historyBudget.d.ts +92 -0
  147. package/lib/typescript/engine/historyBudget.d.ts.map +1 -0
  148. package/lib/typescript/engine/runAgentTurn.d.ts +83 -1
  149. package/lib/typescript/engine/runAgentTurn.d.ts.map +1 -1
  150. package/lib/typescript/engine/systemPrompt.d.ts +41 -0
  151. package/lib/typescript/engine/systemPrompt.d.ts.map +1 -1
  152. package/lib/typescript/engine/textToolCalls.d.ts +58 -0
  153. package/lib/typescript/engine/textToolCalls.d.ts.map +1 -0
  154. package/lib/typescript/index.d.ts +5 -3
  155. package/lib/typescript/index.d.ts.map +1 -1
  156. package/lib/typescript/policy/labels.d.ts.map +1 -1
  157. package/lib/typescript/policy/policy.d.ts.map +1 -1
  158. package/lib/typescript/policy/redact.d.ts.map +1 -1
  159. package/lib/typescript/providers/anthropic.d.ts.map +1 -1
  160. package/lib/typescript/providers/openai.d.ts +0 -16
  161. package/lib/typescript/providers/openai.d.ts.map +1 -1
  162. package/lib/typescript/providers/sse.d.ts +82 -1
  163. package/lib/typescript/providers/sse.d.ts.map +1 -1
  164. package/lib/typescript/providers/streamTimer.d.ts +59 -0
  165. package/lib/typescript/providers/streamTimer.d.ts.map +1 -0
  166. package/lib/typescript/providers/transport.d.ts +40 -0
  167. package/lib/typescript/providers/transport.d.ts.map +1 -0
  168. package/lib/typescript/providers/types.d.ts +91 -3
  169. package/lib/typescript/providers/types.d.ts.map +1 -1
  170. package/lib/typescript/providers/xhrStream.d.ts +43 -0
  171. package/lib/typescript/providers/xhrStream.d.ts.map +1 -0
  172. package/lib/typescript/session.d.ts +40 -2
  173. package/lib/typescript/session.d.ts.map +1 -1
  174. package/package.json +2 -2
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * GENERATED by scripts/gen-agent-catalog.mjs — do not edit.
5
+ * Source: packages/agent-core/src/catalog/catalog.source.json
6
+ *
7
+ * The catalog's tool ids and action names as types, so a wrong name fails
8
+ * at compile time. `catalog.g.ts` carries the data.
9
+ *
10
+ * 24 Buoy tools, 192 actions.
11
+ */
12
+
13
+ /** Action names per tool — the runtime mirror of {@link CatalogActionMap}. */
14
+ export const CATALOG_ACTIONS = {
15
+ "env": ["getSnapshot"],
16
+ "console": ["getSnapshot", "clearEntries"],
17
+ "sentry": ["getSnapshot", "clearEnvelopes"],
18
+ "jotai": ["listAtoms", "getAtomValue", "getChangeDetail", "setAtom", "clearEvents"],
19
+ "route-events": ["getSnapshot", "getCurrentRoute", "navigate", "stackGoBack", "stackNavigateToIndex", "stackPopToIndex", "stackPopToTop", "clearEvents"],
20
+ "debug-borders": ["cycleMode", "setMode"],
21
+ "zustand": ["listStores", "getStoreState", "getChangeDetail", "setState", "rehydrate", "clearEvents"],
22
+ "redux": ["getState", "getActionDetail", "dispatch", "clearEvents"],
23
+ "impersonate": ["searchUsers", "startImpersonation", "stopImpersonation", "pauseImpersonation", "resumeImpersonation", "updateSettings", "removeFromHistory", "clearHistory"],
24
+ "query": ["listQueries", "getQueryData", "refetch", "invalidate", "reset", "remove", "setQueryData", "triggerError", "restoreError", "triggerLoading", "restoreLoading", "clearQueryCache", "clearMutationCache", "setOnline"],
25
+ "events": ["exportEvents", "setEnabledSources", "clearEvents"],
26
+ "network": ["getSnapshot", "getCaptureStatus", "getEventBody", "setPinned", "setSaved", "removeSavedRecord", "clearSavedRequests", "clearPinnedRequests", "clearEvents", "listOverrideRules", "getOverrideRuleBody", "debugOverrides", "upsertOverrideRule", "setOverrideRuleEnabled", "setOverridesEnabled", "deleteOverrideRule", "clearOverrideRules"],
27
+ "js-top": ["sample", "getOriginDetail", "setEnabled", "pause", "resume", "clear"],
28
+ "app": ["ping", "reloadApp"],
29
+ "time-machine": ["list", "capture", "captureBaseline", "wipeAll", "restore", "preview", "inspect", "delete", "rename", "duplicate", "setExclusions", "setScope", "setRestoreRoute"],
30
+ "storage": ["async.getAllKeys", "async.multiGet", "async.getItem", "async.setItem", "async.removeItem", "async.multiRemove", "async.multiSet", "async.clear", "clearAppStorage", "getEventDetail", "clearEvents", "timeTravel.undo", "timeTravel.jump", "mmkv.snapshot", "mmkv.get", "mmkv.set", "mmkv.remove", "secure.keys", "secure.snapshot", "secure.get", "secure.set", "secure.delete"],
31
+ "highlight-updates": ["describeScreen", "tapElement", "waitFor", "beginMeasurement", "endMeasurement", "locateComponent", "getRenderDetail", "setEnabled", "toggle", "setSilentTracking", "toggleFreeze", "setSpotlight", "clearRenderCounts"],
32
+ "scenarios": ["listScenarios", "getScenario", "save", "acceptDraft", "discardDraft", "preview", "run", "deactivate", "delete", "setFolder", "listFolders", "getActive", "export"],
33
+ "perf-monitor": ["setEnabled", "startRecording", "stopRecording", "savePending", "discardPending", "mark", "startAutomation", "cancelAutomation", "acknowledgeAutomation", "refreshIndex", "getAutomationConfig", "setAutomationConfig", "loadReport", "deleteReport", "deleteBatch", "clearAll"],
34
+ "assets": ["list", "getDetail", "rescan", "measureSizes", "saveBaseline", "clearBaseline", "getDiff", "clearRecords", "getScanStatus"],
35
+ "tv-remote": ["arm", "getEventsSince", "setMenuCapture", "disarm", "clear"],
36
+ "focus-inspector": ["rescan", "focusElement", "setTracking", "clearHistory"],
37
+ "images": ["list", "getDetail", "getCaptureStatus", "retry", "flash", "proveSavings", "setOverride", "clearOverride", "setNetworkMode", "setBlankImages", "hardReload", "evictDisk", "massAction", "clearRecords", "clearExpoCaches"],
38
+ "ask-buoy": ["listChanges", "undoAll"]
39
+ };
40
+ //# sourceMappingURL=catalog.types.g.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CATALOG_ACTIONS"],"sourceRoot":"../../../src","sources":["catalog/catalog.types.g.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,327 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Parameter aliases — accept what models actually send.
5
+ *
6
+ * The provider sees ONE tool per Buoy tool with `params` as an open object
7
+ * (see toProviderTools.ts), so the per-action parameter names live in prose
8
+ * and every model has to reproduce them from memory. A sweep of 18 models
9
+ * against the live app showed the same handful of misses over and over, on
10
+ * cheap models AND on gpt-5 and Gemini 2.5 Pro:
11
+ *
12
+ * queryKey: [...] where the action wants queryHash (by far the #1 miss —
13
+ * the RIGHT NOW block shows keys as arrays, and
14
+ * setQueryData takes queryKey, so the model reuses it)
15
+ * requestId where network.getEventBody wants id
16
+ * newState/patch where zustand.setState wants state
17
+ * name where zustand wants storeName
18
+ * bodyPatch/body/… at the top level of upsertOverrideRule instead of inside `rule`
19
+ *
20
+ * A validation error names the right field, but a cheap model repeats the same
21
+ * wrong call or gives up, and the user sees "nothing happened". Every one of
22
+ * these is mechanically unambiguous, so it is fixed HERE, before validation,
23
+ * and the result carries a one-line note so the model learns the real name
24
+ * without failing the call. Nothing here guesses: an alias only fires when the
25
+ * canonical field is absent and the alias is present.
26
+ */
27
+
28
+ const isPlainObject = v => !!v && typeof v === "object" && !Array.isArray(v);
29
+
30
+ /**
31
+ * TanStack's default `hashKey`: JSON.stringify with plain-object keys sorted,
32
+ * so `["todos", {page:1, sort:"a"}]` hashes the same whatever order the model
33
+ * wrote the object in.
34
+ */
35
+ export function hashQueryKey(key) {
36
+ return JSON.stringify(key, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((acc, k) => {
37
+ acc[k] = val[k];
38
+ return acc;
39
+ }, {}) : val);
40
+ }
41
+
42
+ /** Rename `from` to `to` when `to` is absent and `from` is present. */
43
+ function alias(p, from, to, notes) {
44
+ if (p[to] !== undefined || p[from] === undefined) return false;
45
+ p[to] = p[from];
46
+ delete p[from];
47
+ notes.push(`Accepted \`${from}\` as \`${to}\` — the parameter is named \`${to}\`.`);
48
+ return true;
49
+ }
50
+ const QUERY_HASH_ACTIONS = new Set(["getQueryData", "refetch", "invalidate", "reset", "remove", "triggerError", "restoreError", "triggerLoading", "restoreLoading"]);
51
+
52
+ /** Fields that belong inside `rule` for network.upsertOverrideRule. */
53
+ const RULE_FIELDS = ["id", "urlPattern", "enabled", "name", "methods", "kind", "status", "statusText", "headers", "body", "bodyPatch", "bodyPath", "bodyValue", "failKind", "delayMs", "times", "alternate", "force", "bodyOmitted"];
54
+ function normalizeQuery(action, p, notes) {
55
+ if (QUERY_HASH_ACTIONS.has(action) && p.queryHash === undefined) {
56
+ // `filters: { queryKey }` — the TanStack client-API shape.
57
+ const filters = isPlainObject(p.filters) ? p.filters : undefined;
58
+ const key = p.queryKey ?? p.key ?? p.hash ?? filters?.queryKey ?? filters?.queryHash;
59
+ if (Array.isArray(key)) {
60
+ p.queryHash = hashQueryKey(key);
61
+ notes.push(`Accepted the queryKey array as the query's hash (${p.queryHash}) — the parameter is \`queryHash\`, the string from listQueries.`);
62
+ } else if (typeof key === "string") {
63
+ // A hash string under another name, or a loose "a,b,c" spelling the
64
+ // adapter resolves against the live cache.
65
+ p.queryHash = key;
66
+ notes.push(`Accepted it as \`queryHash\` — that is the parameter name.`);
67
+ }
68
+ delete p.queryKey;
69
+ delete p.key;
70
+ delete p.hash;
71
+ delete p.filters;
72
+ }
73
+ if (action === "setQueryData") {
74
+ // Models routinely tuck the write FLAGS inside `data` — `data: {item:{…},
75
+ // merge:true}` — which turns a merge into a replace and leaves a junk
76
+ // `merge`/`force` key in the cache. Lift a boolean flag out of `data` to
77
+ // the top level when the top level doesn't already set it. Guarded to
78
+ // booleans so a real data field named "merge" is never disturbed.
79
+ if (isPlainObject(p.data)) {
80
+ for (const flag of ["merge", "force"]) {
81
+ if (typeof p.data[flag] === "boolean" && p[flag] === undefined) {
82
+ p[flag] = p.data[flag];
83
+ delete p.data[flag];
84
+ notes.push(`Moved \`${flag}\` out of \`data\` to the top level — it is a write flag, not part of the value.`);
85
+ }
86
+ }
87
+ }
88
+ // `value` normally means "the patch, spelled differently". But alongside
89
+ // `path` it means the OPPOSITE — the single value that path is set to — so
90
+ // rewriting it there would turn `path:"item.name", value:"x"` into a
91
+ // top-level patch of `"x"`, silently. Only the path form reserves it.
92
+ alias(p, "newData", "data", notes) || p.path === undefined && alias(p, "value", "data", notes) || alias(p, "patch", "data", notes);
93
+ if (p.queryKey === undefined && typeof p.queryHash === "string") {
94
+ try {
95
+ const parsed = JSON.parse(p.queryHash);
96
+ if (Array.isArray(parsed)) {
97
+ p.queryKey = parsed;
98
+ notes.push("Accepted the queryHash as the key — setQueryData takes `queryKey`, the array.");
99
+ }
100
+ } catch {
101
+ /* leave it; validation will say what is missing */
102
+ }
103
+ }
104
+ if (p.patch !== undefined || p.merge === undefined) {
105
+ // A caller that said "patch" meant merge.
106
+ if (notes.some(n => n.includes("`patch`"))) p.merge = true;
107
+ }
108
+ }
109
+ }
110
+ function normalizeNetwork(action, p, notes) {
111
+ if (action === "getEventBody" || action === "setPinned" || action === "setSaved") {
112
+ alias(p, "requestId", "id", notes) || alias(p, "eventId", "id", notes);
113
+ }
114
+ if (action === "deleteOverrideRule" || action === "setOverrideRuleEnabled" || action === "getOverrideRuleBody") {
115
+ alias(p, "ruleId", "id", notes);
116
+ }
117
+ if (action === "upsertOverrideRule") {
118
+ const rule = isPlainObject(p.rule) ? {
119
+ ...p.rule
120
+ } : {};
121
+ // fromRequestId is a TOP-LEVEL field; models tuck it into the rule.
122
+ if (p.fromRequestId === undefined && typeof rule.fromRequestId === "string") {
123
+ p.fromRequestId = rule.fromRequestId;
124
+ notes.push("Accepted `rule.fromRequestId` — it is a top-level parameter, beside `rule`.");
125
+ }
126
+ delete rule.fromRequestId;
127
+ unwrapRuleSections(rule, notes);
128
+ ruleIntentWords(p, rule, notes);
129
+ // Rule fields sent flat at the top level move inside `rule`.
130
+ const moved = [];
131
+ for (const f of RULE_FIELDS) {
132
+ if (p[f] !== undefined && rule[f] === undefined) {
133
+ rule[f] = p[f];
134
+ moved.push(f);
135
+ }
136
+ delete p[f];
137
+ }
138
+ if (moved.length) notes.push(`Accepted ${moved.map(f => `\`${f}\``).join(", ")} at the top level — rule fields belong inside \`rule\`.`);
139
+ if (Object.keys(rule).length) p.rule = rule;
140
+ }
141
+ }
142
+
143
+ /**
144
+ * Flatten the `match` / `response` wrappers models borrow from other mocking
145
+ * libraries.
146
+ *
147
+ * Our rule is flat — `{urlPattern, methods, status, body, times}`. Nearly every
148
+ * HTTP-mocking library a model has read is not: msw, nock and WireMock all group
149
+ * the matcher and the reply into separate objects. So a model that has never
150
+ * seen our schema (and it has not — `params` is an unconstrained object) writes
151
+ * the convention it knows. Measured: Claude sent
152
+ * `{times: 1, match: {method, urlPattern}, response: {status, body}}` — every
153
+ * value correct, in the shape the rest of the world uses.
154
+ *
155
+ * Only these two wrapper names, and only fields that are really ours: an
156
+ * unrecognised key inside one is left where it is rather than hoisted, so this
157
+ * cannot quietly invent a rule field that does not exist.
158
+ */
159
+ function unwrapRuleSections(rule, notes) {
160
+ for (const [wrapper, fields] of [["match", ["urlPattern", "methods", "method", "url", "pattern", "urlContains", "contains"]], ["response", ["status", "statusText", "body", "headers", "bodyPatch"]]]) {
161
+ const inner = rule[wrapper];
162
+ if (!isPlainObject(inner)) continue;
163
+ const moved = [];
164
+ for (const f of fields) {
165
+ if (inner[f] === undefined) continue;
166
+ // `method` and `url` are that library's spelling of ours.
167
+ const target = f === "method" ? "methods" : f === "url" || f === "pattern" || f === "urlContains" || f === "contains" ? "urlPattern" : f;
168
+ if (rule[target] !== undefined) continue;
169
+ rule[target] = target === "methods" && !Array.isArray(inner[f]) ? [inner[f]] : inner[f];
170
+ delete inner[f];
171
+ moved.push(f);
172
+ }
173
+ if (!moved.length) continue;
174
+ // Everything recognised moved out; drop the wrapper only if nothing is left,
175
+ // so a leftover key still surfaces as a schema error rather than vanishing.
176
+ if (!Object.keys(inner).length) delete rule[wrapper];
177
+ notes.push(`Read \`rule.${wrapper}.{${moved.join(", ")}}\` as top-level rule fields — this rule is flat, unlike msw/nock-style mocks.`);
178
+ }
179
+ }
180
+
181
+ /**
182
+ * The words models reach for when describing an override rule, mapped to the
183
+ * fields the rule actually has.
184
+ *
185
+ * MEASURED, not invented. On `api-sim/next-call-fails-once` — "make the next
186
+ * menu request fail, just the next one" — every model that acted picked the
187
+ * right tool and explained the right reason, then wrote the rule like this:
188
+ *
189
+ * grok ×3 {fail: true, once: true}
190
+ * composer {fail: true} and {maxHits: 1, fail: true}
191
+ * opus {status: 500, enabled: true}
192
+ *
193
+ * The schema wants `{kind: "fail", times: 1}`. Ten of fourteen attempts on that
194
+ * case graded `acceptable` rather than `best` for no reason except this — the
195
+ * budget was expressed as `once`/`maxHits` and silently dropped, leaving a rule
196
+ * that never expires.
197
+ *
198
+ * It is NOT a missing instruction. `times` is documented as "Use 1 for 'make the
199
+ * next call fail' so it cannot linger" — very nearly the user's own sentence —
200
+ * and every model read past it. That is the same finding as the nesting-depth
201
+ * work: the fix has to be structural, not a better sentence.
202
+ *
203
+ * Each mapping only ever makes a rule NARROWER (a budget where there was none,
204
+ * a transport failure where the kind was unstated), so a misread costs a rule
205
+ * that stops too early rather than one that runs forever.
206
+ */
207
+ function ruleIntentWords(p, rule, notes) {
208
+ // `path`/`value` is what the state tools call this, and a model that learned
209
+ // it on `zustand.setState` or `query.setQueryData` writes the same words here.
210
+ // A rule has no other meaning for either name, so accept them.
211
+ if (rule.bodyPath === undefined && typeof rule.path === "string") {
212
+ rule.bodyPath = rule.path;
213
+ if (rule.bodyValue === undefined && rule.value !== undefined) rule.bodyValue = rule.value;
214
+ delete rule.path;
215
+ delete rule.value;
216
+ notes.push("Read `path`/`value` as `bodyPath`/`bodyValue` — on a rule they address the response body.");
217
+ }
218
+ const read = key => rule[key] !== undefined ? rule[key] : p[key];
219
+ const drop = key => {
220
+ delete rule[key];
221
+ delete p[key];
222
+ };
223
+
224
+ // `mode` is the other library's name for `kind`, and models use it verbatim:
225
+ // measured on `api-sim/api-down`, alongside `match.urlContains`.
226
+ const mode = read("mode");
227
+ if (typeof mode === "string" && ["respond", "fail", "delay"].includes(mode) && rule.kind === undefined) {
228
+ rule.kind = mode;
229
+ notes.push(`Read \`mode: "${mode}"\` as \`kind: "${mode}"\`.`);
230
+ }
231
+ drop("mode");
232
+
233
+ // "fail" as a flag, rather than kind:"fail".
234
+ if (read("fail") === true && rule.kind === undefined) {
235
+ rule.kind = "fail";
236
+ notes.push("Read `fail: true` as `kind: \"fail\"` — a transport failure, as if offline.");
237
+ }
238
+ drop("fail");
239
+
240
+ // "just once" / "only the next one", in the several ways it gets written.
241
+ if (read("failOnce") === true) {
242
+ if (rule.kind === undefined) rule.kind = "fail";
243
+ if (rule.times === undefined) rule.times = 1;
244
+ notes.push("Read `failOnce: true` as `kind: \"fail\"` with `times: 1` — it fires once, then the rule disables itself.");
245
+ }
246
+ drop("failOnce");
247
+ if (read("once") === true && rule.times === undefined) {
248
+ rule.times = 1;
249
+ notes.push("Read `once: true` as `times: 1` — the rule auto-disables after one match.");
250
+ }
251
+ drop("once");
252
+
253
+ // A numeric budget under any of its other names. `limit` is deliberately NOT
254
+ // here: it means "how many to list" on half the actions in this catalog, and
255
+ // a wrong guess about a budget is a rule that stops early on a request the
256
+ // caller still needed.
257
+ for (const key of ["maxHits", "hits", "count", "maxTimes", "applyTimes"]) {
258
+ const v = read(key);
259
+ if (typeof v === "number" && Number.isFinite(v) && v > 0 && rule.times === undefined) {
260
+ rule.times = v;
261
+ notes.push(`Read \`${key}: ${v}\` as \`times: ${v}\` — the rule auto-disables after ${v} match(es).`);
262
+ }
263
+ drop(key);
264
+ }
265
+ }
266
+ function normalizeZustand(action, p, notes) {
267
+ alias(p, "name", "storeName", notes) || alias(p, "store", "storeName", notes);
268
+ if (action === "setState") {
269
+ alias(p, "statePatch", "state", notes) || alias(p, "partial", "state", notes) || alias(p, "patch", "state", notes) || alias(p, "newState", "state", notes) || alias(p, "nextState", "state", notes) ||
270
+ // See the same guard on setQueryData: with `path`, `value` is the value
271
+ // being set, not another spelling of the patch.
272
+ p.path === undefined && alias(p, "value", "state", notes);
273
+ // ALWAYS merge, never replace, unless the caller explicitly said replace.
274
+ // The adapter defaults replace:true, which throws away everything not sent
275
+ // — including the store's ACTION FUNCTIONS (setQty, removeLine, …), which
276
+ // can't cross the JSON wire, so a remote caller never has them to re-send.
277
+ // The data then looks right but the buttons that call those methods crash.
278
+ // A merge (replace:false) shallow-merges the fields sent and keeps the
279
+ // functions and untouched keys intact.
280
+ if (p.replace === undefined) {
281
+ p.replace = false;
282
+ notes.push("Applied replace:false (merge) — a store keeps action functions that can't be re-sent, and replacing would wipe them (the buttons that call them would then crash). Send replace:true only to deliberately reset the whole store.");
283
+ }
284
+ }
285
+ }
286
+ function normalizeRoutes(action, p, notes) {
287
+ if (action === "navigate") {
288
+ alias(p, "route", "path", notes) || alias(p, "to", "path", notes) || alias(p, "url", "path", notes) || alias(p, "pathname", "path", notes);
289
+ }
290
+ }
291
+
292
+ /**
293
+ * Fix the unambiguous parameter-name misses before validation. Returns the
294
+ * same object shape validation expects plus the notes to append to the result.
295
+ */
296
+ export function normalizeParams(toolId, action, raw) {
297
+ const p = {
298
+ ...raw
299
+ };
300
+ const notes = [];
301
+ switch (toolId) {
302
+ case "query":
303
+ normalizeQuery(action, p, notes);
304
+ break;
305
+ case "network":
306
+ normalizeNetwork(action, p, notes);
307
+ break;
308
+ case "zustand":
309
+ normalizeZustand(action, p, notes);
310
+ break;
311
+ case "route-events":
312
+ normalizeRoutes(action, p, notes);
313
+ break;
314
+ default:
315
+ break;
316
+ }
317
+ return {
318
+ params: p,
319
+ notes
320
+ };
321
+ }
322
+
323
+ /** The one-line trailer appended to a tool result when aliases fired. */
324
+ export function aliasNote(notes) {
325
+ return notes.length ? `\n\n[Buoy] ${notes.join(" ")}` : "";
326
+ }
327
+ //# sourceMappingURL=normalizeParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isPlainObject","v","Array","isArray","hashQueryKey","key","JSON","stringify","_","val","Object","keys","sort","reduce","acc","k","alias","p","from","to","notes","undefined","push","QUERY_HASH_ACTIONS","Set","RULE_FIELDS","normalizeQuery","action","has","queryHash","filters","queryKey","hash","data","flag","path","parsed","parse","patch","merge","some","n","includes","normalizeNetwork","rule","fromRequestId","unwrapRuleSections","ruleIntentWords","moved","f","length","map","join","wrapper","fields","inner","target","bodyPath","bodyValue","value","read","drop","mode","kind","times","Number","isFinite","normalizeZustand","replace","normalizeRoutes","normalizeParams","toolId","raw","params","aliasNote"],"sourceRoot":"../../../src","sources":["catalog/normalizeParams.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Rendering a JSON Schema as the one-line signature a model reads.
5
+ *
6
+ * Lifted out of `blocks/uiTool.ts`, where it was written for `buoy_ui` and
7
+ * where its own comment records the result that justifies using it everywhere:
8
+ *
9
+ * > `uiProviderTool` used to send `params: { type: "object" }` and 26 lines
10
+ * > of prose about what each kind is FOR — and not one field name. The model
11
+ * > was being asked to guess `images` vs `items` and `chips` vs `options`,
12
+ * > and it guessed wrong three rounds running.
13
+ *
14
+ * The other 24 tools still send exactly that: an open `params` object and a
15
+ * sentence promising the error will explain the shape. `normalizeParams.ts`
16
+ * exists to catch the five misses that produced most often. This renders the
17
+ * field names instead, from the SAME schema `validateParams` enforces, so what
18
+ * the model reads can never drift from what the validator accepts.
19
+ */
20
+
21
+ /** `{ url*, alt?, caption? }` — `*` marks required. */
22
+ export function signature(schema, depth = 0) {
23
+ if (!schema || typeof schema !== "object") return "any";
24
+ const s = schema;
25
+ if (Array.isArray(s.anyOf)) {
26
+ return s.anyOf.map(b => signature(b, depth)).join(" | ");
27
+ }
28
+ if (s.type === "array") {
29
+ const cap = typeof s.maxItems === "number" ? ` ≤${s.maxItems}` : "";
30
+ return `[${signature(s.items, depth + 1)}${cap}]`;
31
+ }
32
+ if (s.type === "object" || s.properties) {
33
+ const props = s.properties ?? {};
34
+ const names = Object.keys(props);
35
+ if (!names.length) return "{…}";
36
+ // Three levels is every field a model has to name; below that lives the
37
+ // action's `dispatch`, which the prose already describes.
38
+ if (depth >= 3) return "{…}";
39
+ const required = new Set(s.required ?? []);
40
+ const fields = names.map(name => {
41
+ const inner = signature(props[name], depth + 1);
42
+ const mark = required.has(name) ? "*" : "";
43
+ return inner === "any" ? `${name}${mark}` : `${name}${mark}: ${inner}`;
44
+ });
45
+ return `{ ${fields.join(", ")} }`;
46
+ }
47
+ if (Array.isArray(s.enum)) return s.enum.map(v => `"${String(v)}"`).join("|");
48
+ return typeof s.type === "string" ? s.type : "any";
49
+ }
50
+
51
+ /**
52
+ * The `params:` line under an action, or "" when the action takes none.
53
+ *
54
+ * Actions with no declared properties (71 of 192) get nothing rather than an
55
+ * empty `{}` — a line that says the action takes no arguments is already said
56
+ * by its absence, and 71 of them would be pure noise.
57
+ */
58
+ export function paramsLine(schema) {
59
+ const props = schema?.properties;
60
+ if (!props || Object.keys(props).length === 0) return "";
61
+ return `params: ${signature(schema)}`;
62
+ }
63
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["signature","schema","depth","s","Array","isArray","anyOf","map","b","join","type","cap","maxItems","items","properties","props","names","Object","keys","length","required","Set","fields","name","inner","mark","has","enum","v","String","paramsLine"],"sourceRoot":"../../../src","sources":["catalog/signature.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA,OAAO,SAASA,SAASA,CAACC,MAA8B,EAAEC,KAAK,GAAG,CAAC,EAAU;EAC3E,IAAI,CAACD,MAAM,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE,OAAO,KAAK;EACvD,MAAME,CAAC,GAAGF,MAAiC;EAE3C,IAAIG,KAAK,CAACC,OAAO,CAACF,CAAC,CAACG,KAAK,CAAC,EAAE;IAC1B,OAAQH,CAAC,CAACG,KAAK,CAAkBC,GAAG,CAAEC,CAAC,IAAKR,SAAS,CAACQ,CAAC,EAAEN,KAAK,CAAC,CAAC,CAACO,IAAI,CAAC,KAAK,CAAC;EAC9E;EAEA,IAAIN,CAAC,CAACO,IAAI,KAAK,OAAO,EAAE;IACtB,MAAMC,GAAG,GAAG,OAAOR,CAAC,CAACS,QAAQ,KAAK,QAAQ,GAAG,KAAKT,CAAC,CAACS,QAAQ,EAAE,GAAG,EAAE;IACnE,OAAO,IAAIZ,SAAS,CAACG,CAAC,CAACU,KAAK,EAAgBX,KAAK,GAAG,CAAC,CAAC,GAAGS,GAAG,GAAG;EACjE;EAEA,IAAIR,CAAC,CAACO,IAAI,KAAK,QAAQ,IAAIP,CAAC,CAACW,UAAU,EAAE;IACvC,MAAMC,KAAK,GAAIZ,CAAC,CAACW,UAAU,IAAI,CAAC,CAAgC;IAChE,MAAME,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACH,KAAK,CAAC;IAChC,IAAI,CAACC,KAAK,CAACG,MAAM,EAAE,OAAO,KAAK;IAC/B;IACA;IACA,IAAIjB,KAAK,IAAI,CAAC,EAAE,OAAO,KAAK;IAC5B,MAAMkB,QAAQ,GAAG,IAAIC,GAAG,CAAElB,CAAC,CAACiB,QAAQ,IAA6B,EAAE,CAAC;IACpE,MAAME,MAAM,GAAGN,KAAK,CAACT,GAAG,CAAEgB,IAAI,IAAK;MACjC,MAAMC,KAAK,GAAGxB,SAAS,CAACe,KAAK,CAACQ,IAAI,CAAC,EAAErB,KAAK,GAAG,CAAC,CAAC;MAC/C,MAAMuB,IAAI,GAAGL,QAAQ,CAACM,GAAG,CAACH,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;MAC1C,OAAOC,KAAK,KAAK,KAAK,GAAG,GAAGD,IAAI,GAAGE,IAAI,EAAE,GAAG,GAAGF,IAAI,GAAGE,IAAI,KAAKD,KAAK,EAAE;IACxE,CAAC,CAAC;IACF,OAAO,KAAKF,MAAM,CAACb,IAAI,CAAC,IAAI,CAAC,IAAI;EACnC;EAEA,IAAIL,KAAK,CAACC,OAAO,CAACF,CAAC,CAACwB,IAAI,CAAC,EAAE,OAAQxB,CAAC,CAACwB,IAAI,CAAepB,GAAG,CAAEqB,CAAC,IAAK,IAAIC,MAAM,CAACD,CAAC,CAAC,GAAG,CAAC,CAACnB,IAAI,CAAC,GAAG,CAAC;EAC9F,OAAO,OAAON,CAAC,CAACO,IAAI,KAAK,QAAQ,GAAGP,CAAC,CAACO,IAAI,GAAG,KAAK;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASoB,UAAUA,CAAC7B,MAA8B,EAAU;EACjE,MAAMc,KAAK,GAAId,MAAM,EAA2Da,UAAU;EAC1F,IAAI,CAACC,KAAK,IAAIE,MAAM,CAACC,IAAI,CAACH,KAAK,CAAC,CAACI,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;EACxD,OAAO,WAAWnB,SAAS,CAACC,MAAM,CAAC,EAAE;AACvC","ignoreList":[]}
@@ -54,9 +54,16 @@ function num(value, fallback) {
54
54
  return typeof value === "number" && value > 0 ? value : fallback;
55
55
  }
56
56
 
57
- /** Newest N, matching the way every Buoy store appends. */
58
- function tail(items, limit) {
59
- return items.length <= limit ? items : items.slice(items.length - limit);
57
+ /**
58
+ * The newest N. Every Buoy event store (BaseEventStore, which network,
59
+ * console, sentry and route events all sit on) PREPENDS, so the list arrives
60
+ * newest-FIRST and the newest N are the first N. An earlier version took the
61
+ * LAST N here — the oldest — so once more than N were captured, RIGHT NOW
62
+ * showed the stalest requests and a crash that had just happened fell out of
63
+ * the console projection. Order is preserved: newest first.
64
+ */
65
+ function newest(items, limit) {
66
+ return items.length <= limit ? items : items.slice(0, limit);
60
67
  }
61
68
  function projectConsole(payload, params) {
62
69
  const entries = asArray(rec(payload).entries);
@@ -69,7 +76,7 @@ function projectConsole(payload, params) {
69
76
  if (!pattern) return true;
70
77
  return String(e.message ?? "").toLowerCase().includes(pattern);
71
78
  });
72
- const shown = tail(matched, num(params.limit, 40));
79
+ const shown = newest(matched, num(params.limit, 40));
73
80
  return {
74
81
  totalCaptured: entries.length,
75
82
  shown: shown.length,
@@ -101,7 +108,7 @@ function projectNetwork(payload, params) {
101
108
  if (!pattern) return true;
102
109
  return String(e.url ?? "").toLowerCase().includes(pattern);
103
110
  });
104
- const shown = tail(matched, num(params.limit, 25));
111
+ const shown = newest(matched, num(params.limit, 25));
105
112
  return {
106
113
  totalCaptured: events.length,
107
114
  shown: shown.length,
@@ -204,7 +211,7 @@ function projectSentry(payload, params) {
204
211
  if (!pattern) return true;
205
212
  return items.some(i => String(i.summary ?? "").toLowerCase().includes(pattern));
206
213
  });
207
- const shown = tail(matched, num(params.limit, 10));
214
+ const shown = newest(matched, num(params.limit, 10));
208
215
  return {
209
216
  status: p.status,
210
217
  totalCaptured: envelopes.length,
@@ -1 +1 @@
1
- {"version":3,"names":["isSelfTraffic","SNAPSHOT_ACTION","SEVERITY","verbose","debug","trace","log","info","warn","warning","error","asArray","value","Array","isArray","rec","num","fallback","tail","items","limit","length","slice","projectConsole","payload","params","entries","minSeverity","level","pattern","toLowerCase","undefined","matched","filter","raw","e","String","message","includes","shown","totalCaptured","map","at","timestamp","projectNetwork","p","events","url","failedOnly","status","requests","id","method","durationMs","duration","overridden","override","hint","flattenRoutes","nodes","out","cap","node","isInternal","path","push","children","projectRoutes","sitemap","stackRaw","stack","eventsRaw","s","name","pathname","focused","isFocused","recentNavigations","from","previousPathname","to","find","currentRoute","source","routes","sitemapSource","projectEnv","env","variables","requiredEnvVars","projectSentry","envelopes","typeFilter","type","some","i","summary","origin","eventId","totalBytes","spanCount","bytes","projectSnapshot","toolId"],"sourceRoot":"../../../src","sources":["catalog/snapshotReads.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isSelfTraffic","SNAPSHOT_ACTION","SEVERITY","verbose","debug","trace","log","info","warn","warning","error","asArray","value","Array","isArray","rec","num","fallback","newest","items","limit","length","slice","projectConsole","payload","params","entries","minSeverity","level","pattern","toLowerCase","undefined","matched","filter","raw","e","String","message","includes","shown","totalCaptured","map","at","timestamp","projectNetwork","p","events","url","failedOnly","status","requests","id","method","durationMs","duration","overridden","override","hint","flattenRoutes","nodes","out","cap","node","isInternal","path","push","children","projectRoutes","sitemap","stackRaw","stack","eventsRaw","s","name","pathname","focused","isFocused","recentNavigations","from","previousPathname","to","find","currentRoute","source","routes","sitemapSource","projectEnv","env","variables","requiredEnvVars","projectSentry","envelopes","typeFilter","type","some","i","summary","origin","eventId","totalBytes","spanCount","bytes","projectSnapshot","toolId"],"sourceRoot":"../../../src","sources":["catalog/snapshotReads.ts"],"mappings":"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","ignoreList":[]}