@nookplot/runtime 0.5.146 → 0.5.147

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 (151) hide show
  1. package/dist/__tests__/apiMarketplace.test.js +2 -189
  2. package/dist/__tests__/apiMarketplace.test.js.map +1 -1
  3. package/dist/__tests__/autonomous.dedup.test.js +0 -11
  4. package/dist/__tests__/autonomous.dedup.test.js.map +1 -1
  5. package/dist/__tests__/autonomous.getAvailableActions.test.js +1 -13
  6. package/dist/__tests__/autonomous.getAvailableActions.test.js.map +1 -1
  7. package/dist/__tests__/bdAgentPack.test.js +1 -1
  8. package/dist/__tests__/bdAgentPack.test.js.map +1 -1
  9. package/dist/__tests__/bounties.test.js +0 -12
  10. package/dist/__tests__/bounties.test.js.map +1 -1
  11. package/dist/__tests__/codegen-drift.test.js +1 -3
  12. package/dist/__tests__/codegen-drift.test.js.map +1 -1
  13. package/dist/__tests__/conversation/modelThresholdsParity.test.js +14 -19
  14. package/dist/__tests__/conversation/modelThresholdsParity.test.js.map +1 -1
  15. package/dist/__tests__/economy.frontierInference.test.d.ts +2 -0
  16. package/dist/__tests__/economy.frontierInference.test.d.ts.map +1 -0
  17. package/dist/__tests__/economy.frontierInference.test.js +61 -0
  18. package/dist/__tests__/economy.frontierInference.test.js.map +1 -0
  19. package/dist/__tests__/economy.surplusBranch.test.js +2 -66
  20. package/dist/__tests__/economy.surplusBranch.test.js.map +1 -1
  21. package/dist/__tests__/helpers/mockRuntime.d.ts.map +1 -1
  22. package/dist/__tests__/helpers/mockRuntime.js +0 -7
  23. package/dist/__tests__/helpers/mockRuntime.js.map +1 -1
  24. package/dist/__tests__/pack.test.js +14 -14
  25. package/dist/__tests__/packLoader.test.js +4 -4
  26. package/dist/__tests__/presetLoader.test.js +42 -42
  27. package/dist/__tests__/sandbox.test.js +24 -24
  28. package/dist/__tests__/surplusInference.test.js +54 -8
  29. package/dist/__tests__/surplusInference.test.js.map +1 -1
  30. package/dist/actionCatalog.d.ts.map +1 -1
  31. package/dist/actionCatalog.generated.d.ts +1 -1
  32. package/dist/actionCatalog.generated.d.ts.map +1 -1
  33. package/dist/actionCatalog.generated.js +26 -151
  34. package/dist/actionCatalog.generated.js.map +1 -1
  35. package/dist/actionCatalog.js +10 -0
  36. package/dist/actionCatalog.js.map +1 -1
  37. package/dist/api-marketplace.d.ts +0 -146
  38. package/dist/api-marketplace.d.ts.map +1 -1
  39. package/dist/api-marketplace.js +0 -218
  40. package/dist/api-marketplace.js.map +1 -1
  41. package/dist/autonomous.d.ts +9 -16
  42. package/dist/autonomous.d.ts.map +1 -1
  43. package/dist/autonomous.js +59 -276
  44. package/dist/autonomous.js.map +1 -1
  45. package/dist/bounties.d.ts +0 -8
  46. package/dist/bounties.d.ts.map +1 -1
  47. package/dist/bounties.js +0 -2
  48. package/dist/bounties.js.map +1 -1
  49. package/dist/contentSafety.d.ts +1 -1
  50. package/dist/contentSafety.d.ts.map +1 -1
  51. package/dist/contentSafety.js +2 -6
  52. package/dist/contentSafety.js.map +1 -1
  53. package/dist/conversation/modelLimits.js +17 -17
  54. package/dist/discovery.js +1 -1
  55. package/dist/discovery.js.map +1 -1
  56. package/dist/economy.d.ts +15 -10
  57. package/dist/economy.d.ts.map +1 -1
  58. package/dist/economy.js +29 -16
  59. package/dist/economy.js.map +1 -1
  60. package/dist/frontierPass.d.ts +30 -0
  61. package/dist/frontierPass.d.ts.map +1 -0
  62. package/dist/frontierPass.js +42 -0
  63. package/dist/frontierPass.js.map +1 -0
  64. package/dist/identity.d.ts +0 -51
  65. package/dist/identity.d.ts.map +1 -1
  66. package/dist/identity.js +0 -50
  67. package/dist/identity.js.map +1 -1
  68. package/dist/index.d.ts +3 -18
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +2 -15
  71. package/dist/index.js.map +1 -1
  72. package/dist/inference/surplusInference.d.ts +29 -1
  73. package/dist/inference/surplusInference.d.ts.map +1 -1
  74. package/dist/inference/surplusInference.js +132 -15
  75. package/dist/inference/surplusInference.js.map +1 -1
  76. package/dist/signalActionMap.d.ts.map +1 -1
  77. package/dist/signalActionMap.js +5 -15
  78. package/dist/signalActionMap.js.map +1 -1
  79. package/dist/swarms.d.ts +0 -13
  80. package/dist/swarms.d.ts.map +1 -1
  81. package/dist/swarms.js +0 -4
  82. package/dist/swarms.js.map +1 -1
  83. package/dist/tools.js +1 -1
  84. package/dist/tools.js.map +1 -1
  85. package/dist/types.d.ts +1 -22
  86. package/dist/types.d.ts.map +1 -1
  87. package/package.json +75 -75
  88. package/dist/__tests__/autonomous.goalBootstrap.test.d.ts +0 -2
  89. package/dist/__tests__/autonomous.goalBootstrap.test.d.ts.map +0 -1
  90. package/dist/__tests__/autonomous.goalBootstrap.test.js +0 -148
  91. package/dist/__tests__/autonomous.goalBootstrap.test.js.map +0 -1
  92. package/dist/__tests__/autonomous.miningTrack.test.d.ts +0 -2
  93. package/dist/__tests__/autonomous.miningTrack.test.d.ts.map +0 -1
  94. package/dist/__tests__/autonomous.miningTrack.test.js +0 -38
  95. package/dist/__tests__/autonomous.miningTrack.test.js.map +0 -1
  96. package/dist/__tests__/autonomous.payApi.test.d.ts +0 -2
  97. package/dist/__tests__/autonomous.payApi.test.d.ts.map +0 -1
  98. package/dist/__tests__/autonomous.payApi.test.js +0 -73
  99. package/dist/__tests__/autonomous.payApi.test.js.map +0 -1
  100. package/dist/__tests__/autonomous.workspaceOpportunity.test.d.ts +0 -2
  101. package/dist/__tests__/autonomous.workspaceOpportunity.test.d.ts.map +0 -1
  102. package/dist/__tests__/autonomous.workspaceOpportunity.test.js +0 -212
  103. package/dist/__tests__/autonomous.workspaceOpportunity.test.js.map +0 -1
  104. package/dist/__tests__/goalLoop.test.d.ts +0 -2
  105. package/dist/__tests__/goalLoop.test.d.ts.map +0 -1
  106. package/dist/__tests__/goalLoop.test.js +0 -358
  107. package/dist/__tests__/goalLoop.test.js.map +0 -1
  108. package/dist/__tests__/loadProfile.test.d.ts +0 -8
  109. package/dist/__tests__/loadProfile.test.d.ts.map +0 -1
  110. package/dist/__tests__/loadProfile.test.js +0 -134
  111. package/dist/__tests__/loadProfile.test.js.map +0 -1
  112. package/dist/__tests__/mining.test.d.ts +0 -2
  113. package/dist/__tests__/mining.test.d.ts.map +0 -1
  114. package/dist/__tests__/mining.test.js +0 -306
  115. package/dist/__tests__/mining.test.js.map +0 -1
  116. package/dist/__tests__/signalActionMap.test.d.ts +0 -17
  117. package/dist/__tests__/signalActionMap.test.d.ts.map +0 -1
  118. package/dist/__tests__/signalActionMap.test.js +0 -165
  119. package/dist/__tests__/signalActionMap.test.js.map +0 -1
  120. package/dist/__tests__/usdcBudget.test.d.ts +0 -2
  121. package/dist/__tests__/usdcBudget.test.d.ts.map +0 -1
  122. package/dist/__tests__/usdcBudget.test.js +0 -128
  123. package/dist/__tests__/usdcBudget.test.js.map +0 -1
  124. package/dist/__tests__/x402.test.d.ts +0 -2
  125. package/dist/__tests__/x402.test.d.ts.map +0 -1
  126. package/dist/__tests__/x402.test.js +0 -117
  127. package/dist/__tests__/x402.test.js.map +0 -1
  128. package/dist/goal/goalLoop.d.ts +0 -78
  129. package/dist/goal/goalLoop.d.ts.map +0 -1
  130. package/dist/goal/goalLoop.js +0 -388
  131. package/dist/goal/goalLoop.js.map +0 -1
  132. package/dist/goal/goalPrompts.d.ts +0 -20
  133. package/dist/goal/goalPrompts.d.ts.map +0 -1
  134. package/dist/goal/goalPrompts.js +0 -54
  135. package/dist/goal/goalPrompts.js.map +0 -1
  136. package/dist/goal/types.d.ts +0 -102
  137. package/dist/goal/types.d.ts.map +0 -1
  138. package/dist/goal/types.js +0 -7
  139. package/dist/goal/types.js.map +0 -1
  140. package/dist/loadProfile.d.ts +0 -100
  141. package/dist/loadProfile.d.ts.map +0 -1
  142. package/dist/loadProfile.js +0 -221
  143. package/dist/loadProfile.js.map +0 -1
  144. package/dist/usdcBudget.d.ts +0 -90
  145. package/dist/usdcBudget.d.ts.map +0 -1
  146. package/dist/usdcBudget.js +0 -155
  147. package/dist/usdcBudget.js.map +0 -1
  148. package/dist/x402.d.ts +0 -69
  149. package/dist/x402.d.ts.map +0 -1
  150. package/dist/x402.js +0 -139
  151. package/dist/x402.js.map +0 -1
@@ -1,306 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from "vitest";
2
- import { MiningManager, trackOf } from "../mining.js";
3
- // ─── Mock builders ────────────────────────────────────────────────────
4
- function createMockConnection() {
5
- return {
6
- request: vi.fn(),
7
- gatewayUrl: "https://gateway.nookplot.com",
8
- apiKey: "test-api-key",
9
- };
10
- }
11
- function createMockEconomy() {
12
- return {
13
- inference: vi.fn().mockResolvedValue({ content: "x".repeat(200) }),
14
- };
15
- }
16
- function setupResponses(connection, knowledgeIds, rlmIds = [], embedIds = []) {
17
- connection.request.mockImplementation(async (method, path) => {
18
- if (method === "GET" && path.startsWith("/v1/mining/earnings-preview")) {
19
- return {
20
- tracks: [
21
- { track: "knowledge", openCount: knowledgeIds.length },
22
- { track: "embedding", openCount: embedIds.length },
23
- { track: "rlm", openCount: rlmIds.length },
24
- ],
25
- };
26
- }
27
- if (method === "GET" && path.startsWith("/v1/mining/challenges?status=open&sourceType=rlm_trajectory")) {
28
- return {
29
- challenges: rlmIds.map((id, i) => ({
30
- id, title: `RLM ${i}`, difficulty: "medium",
31
- estimatedRewardNook: 50_000, sourceType: "rlm_trajectory", closesAt: "2030-01-01T00:00:00Z",
32
- })),
33
- };
34
- }
35
- if (method === "GET" && path.startsWith("/v1/mining/challenges?status=open")) {
36
- return {
37
- challenges: knowledgeIds.map((id, i) => ({
38
- id, title: `Knowledge ${i}`, difficulty: i === 0 ? "expert" : "easy",
39
- estimatedRewardNook: 100_000 - i * 1000, sourceType: "agent_authored",
40
- closesAt: "2030-01-01T00:00:00Z",
41
- })),
42
- };
43
- }
44
- if (method === "GET" && path.startsWith("/v1/mining/embedding-challenges?status=open")) {
45
- return {
46
- challenges: embedIds.map((id, i) => ({
47
- id, title: `Embedding ${i}`, difficulty: "easy",
48
- estimatedRewardNook: 5_000, sourceType: "embedding_generation", closesAt: "2030-01-01T00:00:00Z",
49
- })),
50
- };
51
- }
52
- if (method === "GET" && path.startsWith("/v1/mining/embedding-challenges/")) {
53
- return { prompts: ["a", "b"], dimensions: 768 };
54
- }
55
- if (method === "POST" && path.startsWith("/v1/mining/submissions/")) {
56
- return { submissionId: `sub-${path.split("/").pop()}` };
57
- }
58
- if (method === "POST" && path.includes("/v1/mining/embedding-challenges/") && path.endsWith("/submit")) {
59
- return { submissionId: `embed-sub` };
60
- }
61
- throw new Error(`Unmocked request: ${method} ${path}`);
62
- });
63
- }
64
- // ─── Tests ────────────────────────────────────────────────────────────
65
- describe("trackOf", () => {
66
- it("classifies known source types", () => {
67
- expect(trackOf("embedding_generation")).toBe("embedding");
68
- expect(trackOf("rlm_trajectory")).toBe("rlm");
69
- expect(trackOf("rlm_audit")).toBe("rlm");
70
- expect(trackOf("agent_authored")).toBe("knowledge");
71
- expect(trackOf("paper_reproduction")).toBe("knowledge");
72
- });
73
- });
74
- describe("MiningManager.runOnce", () => {
75
- let connection;
76
- let economy;
77
- let manager;
78
- beforeEach(() => {
79
- connection = createMockConnection();
80
- economy = createMockEconomy();
81
- manager = new MiningManager(connection, economy);
82
- });
83
- it("submits the highest-ranked challenge across enabled tracks", async () => {
84
- setupResponses(connection, ["k1", "k2"], [], []);
85
- const results = await manager.runOnce({ tracks: ["knowledge"] });
86
- expect(results).toHaveLength(1);
87
- expect(results[0].track).toBe("knowledge");
88
- expect(results[0].status).toBe("submitted");
89
- // k1 is "expert" difficulty so it ranks above k2.
90
- expect(results[0].challengeId).toBe("k1");
91
- expect(economy.inference).toHaveBeenCalledOnce();
92
- });
93
- it("dry-run does not submit", async () => {
94
- setupResponses(connection, ["k1"], [], []);
95
- const results = await manager.runOnce({ tracks: ["knowledge"], dryRun: true });
96
- expect(results[0].status).toBe("skipped");
97
- expect(results[0].reason).toBe("dry-run");
98
- // No POST.
99
- const posts = connection.request.mock.calls.filter((c) => c[0] === "POST");
100
- expect(posts).toHaveLength(0);
101
- });
102
- it("returns empty array when no tracks have open challenges", async () => {
103
- setupResponses(connection, [], [], []);
104
- const results = await manager.runOnce({ tracks: ["knowledge", "embedding", "rlm"] });
105
- expect(results).toEqual([]);
106
- });
107
- it("isolates per-track discovery failures (one track erroring does not poison others)", async () => {
108
- connection.request.mockImplementation(async (method, path) => {
109
- if (method === "GET" && path.startsWith("/v1/mining/embedding-challenges?")) {
110
- throw new Error("embedding endpoint exploded");
111
- }
112
- if (method === "GET" && path.startsWith("/v1/mining/challenges?status=open&sourceType=rlm_trajectory")) {
113
- return { challenges: [] };
114
- }
115
- if (method === "GET" && path.startsWith("/v1/mining/challenges?status=open")) {
116
- return {
117
- challenges: [{
118
- id: "k1", title: "K", difficulty: "easy",
119
- estimatedRewardNook: 1000, sourceType: "agent_authored", closesAt: "2030-01-01T00:00:00Z",
120
- }],
121
- };
122
- }
123
- if (method === "POST" && path.startsWith("/v1/mining/submissions/")) {
124
- return { submissionId: "sub-k1" };
125
- }
126
- throw new Error(`unexpected ${method} ${path}`);
127
- });
128
- const results = await manager.runOnce({ tracks: ["knowledge", "embedding"] });
129
- expect(results).toHaveLength(1);
130
- expect(results[0].track).toBe("knowledge");
131
- expect(results[0].status).toBe("submitted");
132
- });
133
- it("auto-resolves tracks via earnings-preview when tracks: 'auto'", async () => {
134
- setupResponses(connection, ["k1"], [], []);
135
- const results = await manager.runOnce({ tracks: "auto" });
136
- expect(results[0].track).toBe("knowledge");
137
- const previewCall = connection.request.mock.calls.find((c) => typeof c[1] === "string" && c[1].startsWith("/v1/mining/earnings-preview"));
138
- expect(previewCall).toBeTruthy();
139
- });
140
- it("skips embedding when no generateEmbeddings callback is provided", async () => {
141
- setupResponses(connection, [], [], ["e1"]);
142
- const results = await manager.runOnce({ tracks: ["embedding"] });
143
- expect(results[0].track).toBe("embedding");
144
- expect(results[0].status).toBe("skipped");
145
- expect(results[0].reason).toMatch(/generateEmbeddings/);
146
- });
147
- it("submits embedding via callback when provided", async () => {
148
- setupResponses(connection, [], [], ["e1"]);
149
- const generateEmbeddings = vi.fn().mockResolvedValue([Array(768).fill(0.1), Array(768).fill(0.2)]);
150
- const results = await manager.runOnce({ tracks: ["embedding"], generateEmbeddings });
151
- expect(results[0].status).toBe("submitted");
152
- expect(generateEmbeddings).toHaveBeenCalledWith(["a", "b"], 768);
153
- });
154
- it("skips RLM by default with a deferred reason; uses solveRlm callback when provided", async () => {
155
- setupResponses(connection, [], ["r1"], []);
156
- const defaultResults = await manager.runOnce({ tracks: ["rlm"] });
157
- expect(defaultResults[0].status).toBe("skipped");
158
- expect(defaultResults[0].reason).toMatch(/RLM/);
159
- const solveRlm = vi.fn().mockResolvedValue({
160
- track: "rlm", challengeId: "r1", status: "submitted",
161
- submissionId: "rlm-sub",
162
- });
163
- const customResults = await manager.runOnce({ tracks: ["rlm"], solveRlm });
164
- expect(customResults[0].status).toBe("submitted");
165
- expect(solveRlm).toHaveBeenCalledOnce();
166
- });
167
- });
168
- describe("MiningManager.start", () => {
169
- let connection;
170
- let economy;
171
- let manager;
172
- beforeEach(() => {
173
- connection = createMockConnection();
174
- economy = createMockEconomy();
175
- manager = new MiningManager(connection, economy);
176
- });
177
- it("once mode runs until queue drains and then resolves done", async () => {
178
- let calls = 0;
179
- connection.request.mockImplementation(async (method, path) => {
180
- if (method === "GET" && path.startsWith("/v1/mining/challenges?status=open&sourceType=rlm_trajectory")) {
181
- return { challenges: [] };
182
- }
183
- if (method === "GET" && path.startsWith("/v1/mining/challenges?status=open")) {
184
- calls++;
185
- if (calls === 1) {
186
- return {
187
- challenges: [{
188
- id: "k1", title: "K", difficulty: "easy",
189
- estimatedRewardNook: 1000, sourceType: "agent_authored", closesAt: "2030-01-01T00:00:00Z",
190
- }],
191
- };
192
- }
193
- return { challenges: [] };
194
- }
195
- if (method === "POST" && path.startsWith("/v1/mining/submissions/")) {
196
- return { submissionId: "sub-k1" };
197
- }
198
- throw new Error(`unexpected ${method} ${path}`);
199
- });
200
- const session = await manager.start({ tracks: ["knowledge"], once: true, tickIntervalMs: 5 });
201
- await session.done;
202
- const stats = session.stats();
203
- expect(stats.submitted).toBe(1);
204
- expect(stats.byTrack.knowledge.submitted).toBe(1);
205
- });
206
- it("respects maxCredits — stops when budget is exhausted", async () => {
207
- let challengeIdx = 0;
208
- connection.request.mockImplementation(async (method, path) => {
209
- if (method === "GET" && path.startsWith("/v1/mining/challenges?status=open&sourceType=rlm_trajectory")) {
210
- return { challenges: [] };
211
- }
212
- if (method === "GET" && path.startsWith("/v1/mining/challenges?status=open")) {
213
- return {
214
- challenges: [{
215
- id: `k${challengeIdx++}`, title: "K", difficulty: "easy",
216
- estimatedRewardNook: 1000, sourceType: "agent_authored", closesAt: "2030-01-01T00:00:00Z",
217
- }],
218
- };
219
- }
220
- if (method === "POST" && path.startsWith("/v1/mining/submissions/")) {
221
- return { submissionId: "sub" };
222
- }
223
- throw new Error(`unexpected ${method} ${path}`);
224
- });
225
- const session = await manager.start({
226
- tracks: ["knowledge"],
227
- maxCredits: 100, // each knowledge solve charges 50 → loop should stop after 2 solves
228
- tickIntervalMs: 5,
229
- });
230
- // Wait briefly for the loop to spin and then stop on budget.
231
- await new Promise((r) => setTimeout(r, 80));
232
- await session.stop();
233
- const stats = session.stats();
234
- expect(stats.creditsSpent).toBeGreaterThanOrEqual(100);
235
- expect(stats.submitted).toBeGreaterThanOrEqual(2);
236
- });
237
- it("rejects a second start() while a session is active", async () => {
238
- setupResponses(connection, [], [], []);
239
- const session = await manager.start({ tracks: ["knowledge"], tickIntervalMs: 5 });
240
- await expect(manager.start({ tracks: ["knowledge"] })).rejects.toThrow(/already active/);
241
- await session.stop();
242
- });
243
- it("dry-run skips count separately from real skips in stats.dryRun", async () => {
244
- // Drains after one tick: discover returns k1 the first time, then [].
245
- // (Real gateway moves a claimed challenge out of the open list; the mock
246
- // simulates that so once-mode doesn't loop on the same challenge forever.)
247
- let knowledgeCalls = 0;
248
- connection.request.mockImplementation(async (method, path) => {
249
- if (method === "GET" && path.startsWith("/v1/mining/challenges?status=open&sourceType=rlm_trajectory")) {
250
- return { challenges: [] };
251
- }
252
- if (method === "GET" && path.startsWith("/v1/mining/challenges?status=open")) {
253
- knowledgeCalls++;
254
- if (knowledgeCalls === 1) {
255
- return { challenges: [{
256
- id: "k1", title: "K", difficulty: "easy",
257
- estimatedRewardNook: 1000, sourceType: "agent_authored",
258
- closesAt: "2030-01-01T00:00:00Z",
259
- }] };
260
- }
261
- return { challenges: [] };
262
- }
263
- throw new Error(`unexpected ${method} ${path}`);
264
- });
265
- const session = await manager.start({
266
- tracks: ["knowledge"],
267
- dryRun: true,
268
- once: true,
269
- tickIntervalMs: 5,
270
- });
271
- await session.done;
272
- const stats = session.stats();
273
- expect(stats.dryRun).toBe(1);
274
- expect(stats.skipped).toBe(0);
275
- expect(stats.submitted).toBe(0);
276
- });
277
- });
278
- describe("MiningManager.runOnce — explain mode", () => {
279
- it("logs scoring math when explain: true", async () => {
280
- const connection = createMockConnection();
281
- const economy = createMockEconomy();
282
- const logs = [];
283
- const manager = new MiningManager(connection, economy);
284
- setupResponses(connection, ["k1", "k2", "k3"]);
285
- await manager.runOnce({
286
- tracks: ["knowledge"],
287
- explain: true,
288
- log: (m) => logs.push(m),
289
- });
290
- const rankLines = logs.filter((l) => l.startsWith("[mining][rank]"));
291
- expect(rankLines.length).toBeGreaterThan(0);
292
- expect(rankLines[0]).toMatch(/score=/);
293
- });
294
- });
295
- // Type sanity check
296
- describe("ChallengeSummary type", () => {
297
- it("compiles with expected fields", () => {
298
- const s = {
299
- id: "x", track: "knowledge", title: "t", difficulty: "easy",
300
- estimatedRewardNook: 0, domainTags: [], sourceType: "agent_authored",
301
- closesAt: "2030-01-01T00:00:00Z",
302
- };
303
- expect(s.track).toBe("knowledge");
304
- });
305
- });
306
- //# sourceMappingURL=mining.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mining.test.js","sourceRoot":"","sources":["../../src/__tests__/mining.test.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * SignalActionMap — unit tests for getAvailableActionsFromMap + TS↔Py parity.
3
- *
4
- * Asserts (post-§4.3 collapse):
5
- * - api_listings appears for buyer-side "I have work to do" signals
6
- * (task_assigned, bounty_claimed, mining_opportunity) without browse_tools.
7
- * - api_listings does NOT leak into unrelated signals (e.g. xmtp_message).
8
- * - Provider-only api actions (api_endpoint, api_usage) stay category-gated —
9
- * only reachable via browse_tools("marketplace").
10
- *
11
- * Cross-language parity (Phase 6.0):
12
- * Parses SIGNAL_CONTEXT_ACTIONS from runtime-py/.../signal_action_map.py and
13
- * diffs against this file's TS export. Catches future drift where one side
14
- * adds a signal key or action without the other.
15
- */
16
- export {};
17
- //# sourceMappingURL=signalActionMap.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signalActionMap.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/signalActionMap.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
@@ -1,165 +0,0 @@
1
- /**
2
- * SignalActionMap — unit tests for getAvailableActionsFromMap + TS↔Py parity.
3
- *
4
- * Asserts (post-§4.3 collapse):
5
- * - api_listings appears for buyer-side "I have work to do" signals
6
- * (task_assigned, bounty_claimed, mining_opportunity) without browse_tools.
7
- * - api_listings does NOT leak into unrelated signals (e.g. xmtp_message).
8
- * - Provider-only api actions (api_endpoint, api_usage) stay category-gated —
9
- * only reachable via browse_tools("marketplace").
10
- *
11
- * Cross-language parity (Phase 6.0):
12
- * Parses SIGNAL_CONTEXT_ACTIONS from runtime-py/.../signal_action_map.py and
13
- * diffs against this file's TS export. Catches future drift where one side
14
- * adds a signal key or action without the other.
15
- */
16
- import { describe, it, expect } from "vitest";
17
- import { readFileSync } from "node:fs";
18
- import { fileURLToPath } from "node:url";
19
- import { dirname, join } from "node:path";
20
- import { CORE_ACTIONS, SIGNAL_CONTEXT_ACTIONS, getAvailableActionsFromMap, } from "../signalActionMap.js";
21
- const __dirname = dirname(fileURLToPath(import.meta.url));
22
- const REPO_ROOT = join(__dirname, "..", "..", "..");
23
- const PROVIDER_ONLY_API_ACTIONS = [
24
- "api_endpoint",
25
- "api_usage",
26
- ];
27
- describe("getAvailableActionsFromMap — api_listings discoverability (G1)", () => {
28
- it("includes api_listings on task_assigned without loading marketplace category", () => {
29
- const actions = getAvailableActionsFromMap("task_assigned", new Set());
30
- expect(actions).toContain("api_listings");
31
- });
32
- it("includes api_listings on bounty_claimed without loading marketplace category", () => {
33
- const actions = getAvailableActionsFromMap("bounty_claimed", new Set());
34
- expect(actions).toContain("api_listings");
35
- });
36
- it("includes api_listings on mining_opportunity without loading marketplace category", () => {
37
- const actions = getAvailableActionsFromMap("mining_opportunity", new Set());
38
- expect(actions).toContain("api_listings");
39
- });
40
- it("does NOT include api_listings on xmtp_message (unrelated signal)", () => {
41
- const actions = getAvailableActionsFromMap("xmtp_message", new Set());
42
- expect(actions).not.toContain("api_listings");
43
- });
44
- it("provider-only api actions stay category-gated (not in any SIGNAL_CONTEXT_ACTIONS entry)", () => {
45
- for (const action of PROVIDER_ONLY_API_ACTIONS) {
46
- for (const [signal, list] of Object.entries(SIGNAL_CONTEXT_ACTIONS)) {
47
- expect(list, `${action} leaked into ${signal}`).not.toContain(action);
48
- }
49
- expect(CORE_ACTIONS, `${action} must not be in CORE_ACTIONS`).not.toContain(action);
50
- }
51
- });
52
- it("api_listings itself is not in CORE_ACTIONS (avoids bloating every prompt)", () => {
53
- expect(CORE_ACTIONS).not.toContain("api_listings");
54
- });
55
- it("includes pay_api alongside api_listings on the 3 work-bearing signals", () => {
56
- for (const signal of ["task_assigned", "bounty_claimed", "mining_opportunity"]) {
57
- const actions = getAvailableActionsFromMap(signal, new Set());
58
- expect(actions, `${signal} should offer pay_api`).toContain("pay_api");
59
- }
60
- });
61
- it("does NOT include pay_api on xmtp_message (money action stays scoped)", () => {
62
- expect(getAvailableActionsFromMap("xmtp_message", new Set())).not.toContain("pay_api");
63
- });
64
- it("pay_api is not in CORE_ACTIONS (signal-scoped, not always-on)", () => {
65
- expect(CORE_ACTIONS).not.toContain("pay_api");
66
- });
67
- it("includes api_onboard on the service signal (agent-first listing creation)", () => {
68
- const actions = getAvailableActionsFromMap("service", new Set());
69
- expect(actions).toContain("api_onboard");
70
- });
71
- it("does NOT include api_onboard on unrelated signals (xmtp_message)", () => {
72
- expect(getAvailableActionsFromMap("xmtp_message", new Set())).not.toContain("api_onboard");
73
- });
74
- it("api_onboard is not in CORE_ACTIONS (signal-scoped seller action)", () => {
75
- expect(CORE_ACTIONS).not.toContain("api_onboard");
76
- });
77
- });
78
- // ──────────────────────────────────────────────────────────────────────────
79
- // TS ↔ Python SIGNAL_CONTEXT_ACTIONS parity (Phase 6.0)
80
- // ──────────────────────────────────────────────────────────────────────────
81
- /**
82
- * Parse SIGNAL_CONTEXT_ACTIONS dict from the Python source file.
83
- *
84
- * Pattern: each top-level entry follows
85
- * "<signal_name>": [<comma-separated string list, possibly multi-line>],
86
- *
87
- * Lightweight regex-based parser — same approach as codegen-drift.test.ts.
88
- * Tolerates trailing commas, inline `# ...` comments, and multi-line lists.
89
- */
90
- function loadPythonSignalContextActions() {
91
- const path = join(REPO_ROOT, "runtime-py", "nookplot_runtime", "signal_action_map.py");
92
- const raw = readFileSync(path, "utf-8").replace(/\r\n/g, "\n");
93
- // Slice out the SIGNAL_CONTEXT_ACTIONS body between its opening `{` and the
94
- // line that closes it (`}` at column 0). The first match of
95
- // `SIGNAL_CONTEXT_ACTIONS: dict[str, list[str]] = {` is the start anchor.
96
- const start = raw.indexOf("SIGNAL_CONTEXT_ACTIONS:");
97
- if (start === -1)
98
- throw new Error("SIGNAL_CONTEXT_ACTIONS not found in Python source");
99
- const braceStart = raw.indexOf("{", start);
100
- if (braceStart === -1)
101
- throw new Error("Opening brace not found");
102
- // Find matching closing brace by depth-tracking.
103
- let depth = 0;
104
- let braceEnd = -1;
105
- for (let i = braceStart; i < raw.length; i++) {
106
- const ch = raw[i];
107
- if (ch === "{")
108
- depth++;
109
- else if (ch === "}") {
110
- depth--;
111
- if (depth === 0) {
112
- braceEnd = i;
113
- break;
114
- }
115
- }
116
- }
117
- if (braceEnd === -1)
118
- throw new Error("Closing brace not found");
119
- const body = raw.slice(braceStart + 1, braceEnd);
120
- // Strip Python `#` comments to end of line — they could otherwise contain
121
- // stray punctuation that confuses the entry regex.
122
- const noComments = body.replace(/(^|\s)#[^\n]*/g, "$1");
123
- const map = new Map();
124
- // Match "key": [ ... ] across multi-line lists.
125
- const entryRe = /"([a-z_][a-z0-9_]*)"\s*:\s*\[([\s\S]*?)\]\s*,/g;
126
- let match;
127
- while ((match = entryRe.exec(noComments)) !== null) {
128
- const key = match[1];
129
- const listBody = match[2];
130
- const actions = [];
131
- const actionRe = /"([^"]+)"/g;
132
- let am;
133
- while ((am = actionRe.exec(listBody)) !== null) {
134
- actions.push(am[1]);
135
- }
136
- map.set(key, actions);
137
- }
138
- return map;
139
- }
140
- describe("SIGNAL_CONTEXT_ACTIONS — TS ↔ Python parity (Phase 6.0)", () => {
141
- const pyMap = loadPythonSignalContextActions();
142
- const tsKeys = new Set(Object.keys(SIGNAL_CONTEXT_ACTIONS));
143
- const pyKeys = new Set(pyMap.keys());
144
- it("both sides export the same set of signal keys", () => {
145
- const tsOnly = [...tsKeys].filter((k) => !pyKeys.has(k)).sort();
146
- const pyOnly = [...pyKeys].filter((k) => !tsKeys.has(k)).sort();
147
- expect({ tsOnly, pyOnly }).toEqual({ tsOnly: [], pyOnly: [] });
148
- });
149
- it("each signal key has the same action set on both sides", () => {
150
- const drifts = [];
151
- for (const key of tsKeys) {
152
- if (!pyKeys.has(key))
153
- continue; // covered by previous test
154
- const tsList = new Set(SIGNAL_CONTEXT_ACTIONS[key]);
155
- const pyList = new Set(pyMap.get(key));
156
- const tsOnly = [...tsList].filter((a) => !pyList.has(a)).sort();
157
- const pyOnly = [...pyList].filter((a) => !tsList.has(a)).sort();
158
- if (tsOnly.length || pyOnly.length) {
159
- drifts.push({ signal: key, tsOnly, pyOnly });
160
- }
161
- }
162
- expect(drifts).toEqual([]);
163
- });
164
- });
165
- //# sourceMappingURL=signalActionMap.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signalActionMap.test.js","sourceRoot":"","sources":["../../src/__tests__/signalActionMap.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=usdcBudget.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usdcBudget.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/usdcBudget.test.ts"],"names":[],"mappings":""}