@tangle-network/agent-runtime 0.266.0 → 0.273.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/{activation-BERiJjx5.js → activation-Cx2dKA_l.js} +2 -2
  2. package/dist/{activation-BERiJjx5.js.map → activation-Cx2dKA_l.js.map} +1 -1
  3. package/dist/{activation-VpxSbDKJ.d.ts → activation-IfDlhR3J.d.ts} +4 -4
  4. package/dist/agent.d.ts +2 -2
  5. package/dist/agent.js +2 -2
  6. package/dist/candidate-execution/index.js +2 -2
  7. package/dist/{coordination-driver-DdZ-nh_4.js → coordination-driver-CkcW4dxU.js} +173 -92
  8. package/dist/coordination-driver-CkcW4dxU.js.map +1 -0
  9. package/dist/{delegate-Ajx_PVyu.js → delegate-Dvb1-mE-.js} +2 -2
  10. package/dist/{delegate-Ajx_PVyu.js.map → delegate-Dvb1-mE-.js.map} +1 -1
  11. package/dist/durable.d.ts +3 -571
  12. package/dist/durable.js +93 -19
  13. package/dist/durable.js.map +1 -1
  14. package/dist/{graph-CK50N9vG.js → graph-C69Uxtzt.js} +17 -8
  15. package/dist/graph-C69Uxtzt.js.map +1 -0
  16. package/dist/{improvement-cycle-GRPoHLm1.js → improvement-cycle-CO2HRCQq.js} +10 -10
  17. package/dist/improvement-cycle-CO2HRCQq.js.map +1 -0
  18. package/dist/{index-CU2mlMfc.d.ts → index-D2ipSqkP.d.ts} +4335 -3055
  19. package/dist/index.d.ts +7 -451
  20. package/dist/index.js +14 -11
  21. package/dist/index.js.map +1 -1
  22. package/dist/intelligence.d.ts +9 -3
  23. package/dist/intelligence.js +13 -7
  24. package/dist/intelligence.js.map +1 -1
  25. package/dist/kernel.d.ts +4 -4
  26. package/dist/kernel.js +9 -9
  27. package/dist/{loop-runner-bin-cC16EPUq.js → loop-runner-bin-B9MIq9O7.js} +3 -3
  28. package/dist/{loop-runner-bin-cC16EPUq.js.map → loop-runner-bin-B9MIq9O7.js.map} +1 -1
  29. package/dist/{loop-runner-bin-XKZXM08Q.d.ts → loop-runner-bin-ThlwVkvo.d.ts} +3 -3
  30. package/dist/loop-runner-bin.d.ts +1 -1
  31. package/dist/loop-runner-bin.js +1 -1
  32. package/dist/mcp/bin.js +3 -3
  33. package/dist/mcp/index.d.ts +12 -6
  34. package/dist/mcp/index.js +7 -7
  35. package/dist/mcp/memory-bin.js +1 -1
  36. package/dist/{memory-server-Cn8LbAxO.js → memory-server-DXQ8IxGR.js} +2 -2
  37. package/dist/{memory-server-Cn8LbAxO.js.map → memory-server-DXQ8IxGR.js.map} +1 -1
  38. package/dist/{openai-tools-D3ajI_D2.d.ts → openai-tools-Bb0mAr5z.d.ts} +2 -2
  39. package/dist/{prepare-oHUQdC5-.js → prepare-DVlvGP7V.js} +2 -2
  40. package/dist/{prepare-oHUQdC5-.js.map → prepare-DVlvGP7V.js.map} +1 -1
  41. package/dist/profiles.d.ts +2 -2
  42. package/dist/{protected-model-port-DqF0qDU6.js → protected-model-port-BrWgsCnl.js} +2 -2
  43. package/dist/{protected-model-port-DqF0qDU6.js.map → protected-model-port-BrWgsCnl.js.map} +1 -1
  44. package/dist/{protected-redaction--F3v1oo8.js → protected-redaction-DylCC_ot.js} +14 -20
  45. package/dist/protected-redaction-DylCC_ot.js.map +1 -0
  46. package/dist/{provision-supervisor-Bf_bPaCv.js → provision-supervisor-BKAvsDtP.js} +3 -3
  47. package/dist/{provision-supervisor-Bf_bPaCv.js.map → provision-supervisor-BKAvsDtP.js.map} +1 -1
  48. package/dist/{runtime-hOLlAc1i.js → runtime-CHxXrUeZ.js} +1714 -854
  49. package/dist/runtime-CHxXrUeZ.js.map +1 -0
  50. package/dist/{server-DOb67ohd.js → server-2OeFrEVG.js} +4 -4
  51. package/dist/{server-DOb67ohd.js.map → server-2OeFrEVG.js.map} +1 -1
  52. package/dist/{stream-agent-turn-Gw9hLpBn.d.ts → stream-agent-turn-ewm3BZAp.d.ts} +34 -17
  53. package/dist/{structural-rollout-DV9YoQF6.js → structural-rollout-DCUprNpH.js} +2 -2
  54. package/dist/{structural-rollout-DV9YoQF6.js.map → structural-rollout-DCUprNpH.js.map} +1 -1
  55. package/dist/{substrate-CLt9S9ym.d.ts → substrate-VKjmrksz.d.ts} +2 -2
  56. package/dist/{supervise--njTtSL3.js → supervise-Dej5aSDa.js} +220 -52
  57. package/dist/supervise-Dej5aSDa.js.map +1 -0
  58. package/dist/{supervisor-B8UMAXya.js → supervisor-DdKPGluv.js} +1233 -303
  59. package/dist/supervisor-DdKPGluv.js.map +1 -0
  60. package/dist/testing.d.ts +2 -2
  61. package/dist/testing.js +62 -62
  62. package/dist/testing.js.map +1 -1
  63. package/dist/{tool-server-x9NEhvHZ.js → tool-server-Dqer2M4_.js} +30 -12
  64. package/dist/tool-server-Dqer2M4_.js.map +1 -0
  65. package/dist/tui/index.d.ts +1 -1
  66. package/dist/tui/index.js +1 -1
  67. package/dist/{types-CrnwLVYQ.d.ts → types-DMRc3jru.d.ts} +463 -105
  68. package/package.json +6 -5
  69. package/dist/coordination-driver-DdZ-nh_4.js.map +0 -1
  70. package/dist/graph-CK50N9vG.js.map +0 -1
  71. package/dist/improvement-cycle-GRPoHLm1.js.map +0 -1
  72. package/dist/protected-redaction--F3v1oo8.js.map +0 -1
  73. package/dist/runtime-hOLlAc1i.js.map +0 -1
  74. package/dist/supervise--njTtSL3.js.map +0 -1
  75. package/dist/supervisor-B8UMAXya.js.map +0 -1
  76. package/dist/tool-server-x9NEhvHZ.js.map +0 -1
package/dist/testing.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { $a as SuperviseTestOptions, Ao as supervisorAgentWithTestBrain, Tn as driverAgent, Zt as RunGraphTestOptions, tn as runGraphWithTestBrain, to as superviseWithTestBrain, wn as DriverAgentOptions, xo as SupervisorAgentTestDeps } from "./index-CU2mlMfc.js";
2
- import { Hn as ToolLoopChat, Vn as ToolLoopCallContext } from "./stream-agent-turn-Gw9hLpBn.js";
1
+ import { Ic as SuperviseTestOptions, Rc as superviseWithTestBrain, Tl as supervisorAgentWithTestBrain, Tn as driverAgent, Zt as RunGraphTestOptions, gl as SupervisorAgentTestDeps, tn as runGraphWithTestBrain, wn as DriverAgentOptions } from "./index-D2ipSqkP.js";
2
+ import { Hn as ToolLoopChat, Vn as ToolLoopCallContext } from "./stream-agent-turn-ewm3BZAp.js";
3
3
  import { AgentImprovementProposal, AgentProfile, AgentProfileImprovementMeasuredComparison, SandboxSizePreset } from "@tangle-network/agent-interface";
4
4
  //#region src/testing/index.d.ts
5
5
  /** A proposal produced by Runtime's opaque profile-improvement path. */
package/dist/testing.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { C as canonicalCandidateDigest$1, D as immutableCandidateValue } from "./workspace-archive-C9lgf77y.js";
2
- import { f as verifyAgentImprovementProposal } from "./improvement-cycle-GRPoHLm1.js";
2
+ import { f as verifyAgentImprovementProposal } from "./improvement-cycle-CO2HRCQq.js";
3
3
  import { i as applyExactAgentProfileDiff, p as parseExactAgentProfile } from "./profile-D3eXNBQV.js";
4
- import { r as driverAgent } from "./coordination-driver-DdZ-nh_4.js";
5
- import { a as superviseWithTestBrain, h as supervisorAgentWithTestBrain } from "./supervise--njTtSL3.js";
6
- import { i as runGraphWithTestBrain } from "./graph-CK50N9vG.js";
7
- import { SANDBOX_SIZE_PRESET_NAMES } from "@tangle-network/agent-interface";
4
+ import { r as driverAgent } from "./coordination-driver-CkcW4dxU.js";
5
+ import { a as superviseWithTestBrain, h as supervisorAgentWithTestBrain } from "./supervise-Dej5aSDa.js";
6
+ import { i as runGraphWithTestBrain } from "./graph-C69Uxtzt.js";
7
+ import { SANDBOX_SIZE_PRESET_NAMES, canonicalAgentProfileDigest } from "@tangle-network/agent-interface";
8
8
  //#region src/testing/fixtures/agent-improvement-proposal.json
9
9
  var agent_improvement_proposal_default = {
10
10
  changedSurfaces: ["prompt"],
11
- digest: "sha256:b4ce9950c510d96ecccbb6b3134cca32fe0dcf821aef326e0b34010471dc5fc1",
11
+ digest: "sha256:8ee6610047e3709888b628a8936cac32d54e55e2a5df0727cdb934bb22140944",
12
12
  evaluation: {
13
13
  "decision": {
14
14
  "contributingChecks": [
@@ -270,7 +270,7 @@ var agent_improvement_proposal_default = {
270
270
  "measurements": [
271
271
  {
272
272
  "baseline": {
273
- "digest": "sha256:b3a5437797879c8766146a006572877da90b009b9d55c8635163ac838783172c",
273
+ "digest": "sha256:fbacc6e713b0deb85aa0a336aa4880a13021ddcb2b16db4f9f406442f2b433fe",
274
274
  "kind": "agent-candidate-execution-evidence",
275
275
  "materializationReceipt": {
276
276
  "benchmark": {
@@ -505,7 +505,7 @@ var agent_improvement_proposal_default = {
505
505
  }
506
506
  },
507
507
  "bundleDigest": "sha256:5c21ee53e513fc604cb09754e21c392b24a424da0ef37dbf8f1ee4a8a0b08f09",
508
- "digest": "sha256:9ca1e624a6074877e1021b92f2074ff47f7eb834a941a649b6cef7b48247a242",
508
+ "digest": "sha256:c05733903e032c464d212712ade999cbfa72afd79181ce9e5c96afe793c82b3f",
509
509
  "digestAlgorithm": "rfc8785-sha256",
510
510
  "executionPlanDigest": "sha256:ef70b720a2e555d904d3f5686efa53be9e553be796630631e72bd383c9629da9",
511
511
  "executorCapture": {
@@ -607,10 +607,10 @@ var agent_improvement_proposal_default = {
607
607
  "byteLength": 748,
608
608
  "locator": {
609
609
  "bucket": "candidate-test-artifacts",
610
- "key": "trace/42871899ea82701183e4f778b5a024287ad4796707badd25ab0939da203efab8",
610
+ "key": "trace/f50a3549e6601fa22c4922fbab702012038adca774db3331f5e9767de67fe14c",
611
611
  "kind": "s3"
612
612
  },
613
- "sha256": "sha256:42871899ea82701183e4f778b5a024287ad4796707badd25ab0939da203efab8"
613
+ "sha256": "sha256:f50a3549e6601fa22c4922fbab702012038adca774db3331f5e9767de67fe14c"
614
614
  },
615
615
  "eventCount": 1,
616
616
  "modelCallCount": 0
@@ -618,7 +618,7 @@ var agent_improvement_proposal_default = {
618
618
  }
619
619
  },
620
620
  "candidate": {
621
- "digest": "sha256:a5078d446e512afff58387423b8992c6b425584ee1031be25afbf541a3fc499a",
621
+ "digest": "sha256:4e879404ab7d063135eca80e0df97e56de6c55c5599b79e7b5f85be4f29e173f",
622
622
  "kind": "agent-candidate-execution-evidence",
623
623
  "materializationReceipt": {
624
624
  "benchmark": {
@@ -873,7 +873,7 @@ var agent_improvement_proposal_default = {
873
873
  }
874
874
  },
875
875
  "bundleDigest": "sha256:60fcbb1c728194bd51d7d19cb732d1c3f1881dce7e0a6266b41c8b98cfd65693",
876
- "digest": "sha256:012b1d92c9d2d24a8dac8dccfaafc22b05ca02e6d315dc24144b6b3139042b40",
876
+ "digest": "sha256:378a379f7e3b8f15f78a6ac7778e6654b66eae9dad9a9d93b2dd40476d26d3a6",
877
877
  "digestAlgorithm": "rfc8785-sha256",
878
878
  "executionPlanDigest": "sha256:489e13fa167a7c696c413760abc19e8e21e19a3f50788aca78c8209f716fde34",
879
879
  "executorCapture": {
@@ -975,10 +975,10 @@ var agent_improvement_proposal_default = {
975
975
  "byteLength": 750,
976
976
  "locator": {
977
977
  "bucket": "candidate-test-artifacts",
978
- "key": "trace/3847f036355e0a5b7bffd992e52dc5091d466c7c82427214e1d24b107a38d9f5",
978
+ "key": "trace/d76a2355bf902d487797606e2877422d637eeb526cc4951823b44da4005335e4",
979
979
  "kind": "s3"
980
980
  },
981
- "sha256": "sha256:3847f036355e0a5b7bffd992e52dc5091d466c7c82427214e1d24b107a38d9f5"
981
+ "sha256": "sha256:d76a2355bf902d487797606e2877422d637eeb526cc4951823b44da4005335e4"
982
982
  },
983
983
  "eventCount": 1,
984
984
  "modelCallCount": 0
@@ -988,7 +988,7 @@ var agent_improvement_proposal_default = {
988
988
  },
989
989
  {
990
990
  "baseline": {
991
- "digest": "sha256:1b1c0b2e34f33a96536c416527f8f1cb69d8a931f8ffca9046a225e88d212d80",
991
+ "digest": "sha256:2d9a5b25dd9052e2c5810e73f62146ace5d164ff7f0fbb08d4e89a060be6bbb2",
992
992
  "kind": "agent-candidate-execution-evidence",
993
993
  "materializationReceipt": {
994
994
  "benchmark": {
@@ -1223,7 +1223,7 @@ var agent_improvement_proposal_default = {
1223
1223
  }
1224
1224
  },
1225
1225
  "bundleDigest": "sha256:5c21ee53e513fc604cb09754e21c392b24a424da0ef37dbf8f1ee4a8a0b08f09",
1226
- "digest": "sha256:d952c9eb67fe01c35d6b4286eea18bee5e47d38dbfd7b1bfed287c1d6c4b0f81",
1226
+ "digest": "sha256:00e6fbc780c7d85dfff56d7b2dffc8b31f4beb37c9f09c0e9e4a3f562deaabc9",
1227
1227
  "digestAlgorithm": "rfc8785-sha256",
1228
1228
  "executionPlanDigest": "sha256:48f94432fd5383bd2c05cf534d7069c352d3e4410194ec6d1d29e10a7dc510d3",
1229
1229
  "executorCapture": {
@@ -1325,10 +1325,10 @@ var agent_improvement_proposal_default = {
1325
1325
  "byteLength": 748,
1326
1326
  "locator": {
1327
1327
  "bucket": "candidate-test-artifacts",
1328
- "key": "trace/0d61e0c1c63751d49623db2a8d2d309350df5060b75ab45c8668031dae427c07",
1328
+ "key": "trace/053c603e38fb4d46012ed5e865c1a194f856e74ab3cb262af3ee2c29cd1d7b72",
1329
1329
  "kind": "s3"
1330
1330
  },
1331
- "sha256": "sha256:0d61e0c1c63751d49623db2a8d2d309350df5060b75ab45c8668031dae427c07"
1331
+ "sha256": "sha256:053c603e38fb4d46012ed5e865c1a194f856e74ab3cb262af3ee2c29cd1d7b72"
1332
1332
  },
1333
1333
  "eventCount": 1,
1334
1334
  "modelCallCount": 0
@@ -1336,7 +1336,7 @@ var agent_improvement_proposal_default = {
1336
1336
  }
1337
1337
  },
1338
1338
  "candidate": {
1339
- "digest": "sha256:8fd575f7c49eb313b76be8d5234a79bb18a77b19ebf55d97a3ddd35039897dda",
1339
+ "digest": "sha256:a50d9694c994a0183361f04ebb0812d7167878c31b04cd48d22f1ec2044cd661",
1340
1340
  "kind": "agent-candidate-execution-evidence",
1341
1341
  "materializationReceipt": {
1342
1342
  "benchmark": {
@@ -1591,7 +1591,7 @@ var agent_improvement_proposal_default = {
1591
1591
  }
1592
1592
  },
1593
1593
  "bundleDigest": "sha256:60fcbb1c728194bd51d7d19cb732d1c3f1881dce7e0a6266b41c8b98cfd65693",
1594
- "digest": "sha256:f284f122d25449c44cc659f731a8342bb754f1f31317758e5f340f023d64444a",
1594
+ "digest": "sha256:00ecd3ae39d510a74766b914b54b1587875e5cb0ef9911bb10c331d493ca31a4",
1595
1595
  "digestAlgorithm": "rfc8785-sha256",
1596
1596
  "executionPlanDigest": "sha256:bf79aa55ba7e7212d867b3a9dbb06e6f9f28db8eea797bd191b8d09448777582",
1597
1597
  "executorCapture": {
@@ -1693,10 +1693,10 @@ var agent_improvement_proposal_default = {
1693
1693
  "byteLength": 750,
1694
1694
  "locator": {
1695
1695
  "bucket": "candidate-test-artifacts",
1696
- "key": "trace/fd985ad70af05d307b3459ff6210ed0882af8f0ed32efb3af74110a991635186",
1696
+ "key": "trace/e56eb3fa7c5c32269da34500d7a6e13bde52d7153ad958baf26b75d4502ee96f",
1697
1697
  "kind": "s3"
1698
1698
  },
1699
- "sha256": "sha256:fd985ad70af05d307b3459ff6210ed0882af8f0ed32efb3af74110a991635186"
1699
+ "sha256": "sha256:e56eb3fa7c5c32269da34500d7a6e13bde52d7153ad958baf26b75d4502ee96f"
1700
1700
  },
1701
1701
  "eventCount": 1,
1702
1702
  "modelCallCount": 0
@@ -1706,7 +1706,7 @@ var agent_improvement_proposal_default = {
1706
1706
  },
1707
1707
  {
1708
1708
  "baseline": {
1709
- "digest": "sha256:fa596f6f3b32e3b176873a4220424c69c2dda16ba2f1649f6285c4905222ca21",
1709
+ "digest": "sha256:089bb4d00139b808174f106bdb3cee8ad848006feddc7b3b0d08f25cd96d3a5c",
1710
1710
  "kind": "agent-candidate-execution-evidence",
1711
1711
  "materializationReceipt": {
1712
1712
  "benchmark": {
@@ -1941,7 +1941,7 @@ var agent_improvement_proposal_default = {
1941
1941
  }
1942
1942
  },
1943
1943
  "bundleDigest": "sha256:5c21ee53e513fc604cb09754e21c392b24a424da0ef37dbf8f1ee4a8a0b08f09",
1944
- "digest": "sha256:1e2d8ff778637019537910e0f7e53432fcd22dc598163cc01a26e3dd95e14f2e",
1944
+ "digest": "sha256:e485159f0875004e67cb3d92ca56f37ee8f1ddcffb5ef085deaecbf80ecc6668",
1945
1945
  "digestAlgorithm": "rfc8785-sha256",
1946
1946
  "executionPlanDigest": "sha256:2f85735fb92bfc5804b84651fc6cf1d22f96167d3519b7b1cc47f448326adc8f",
1947
1947
  "executorCapture": {
@@ -2043,10 +2043,10 @@ var agent_improvement_proposal_default = {
2043
2043
  "byteLength": 748,
2044
2044
  "locator": {
2045
2045
  "bucket": "candidate-test-artifacts",
2046
- "key": "trace/140fc47984b83d1174ce2091c09172c153345117174df0e7f0f2fcb0171cb6db",
2046
+ "key": "trace/ea784e8317bae0866c52f809c91a5896dd8769874872b29e9151d4bc8ccadb01",
2047
2047
  "kind": "s3"
2048
2048
  },
2049
- "sha256": "sha256:140fc47984b83d1174ce2091c09172c153345117174df0e7f0f2fcb0171cb6db"
2049
+ "sha256": "sha256:ea784e8317bae0866c52f809c91a5896dd8769874872b29e9151d4bc8ccadb01"
2050
2050
  },
2051
2051
  "eventCount": 1,
2052
2052
  "modelCallCount": 0
@@ -2054,7 +2054,7 @@ var agent_improvement_proposal_default = {
2054
2054
  }
2055
2055
  },
2056
2056
  "candidate": {
2057
- "digest": "sha256:6cdb30cf0938a43b3af9164fc5bdf0be982f40f6ed7856c5cb23d7f05bfb18bd",
2057
+ "digest": "sha256:bf08a20a19839b89f04be814a46b7bfcd1f5a8d5fc4018b7b220652f9e7768a8",
2058
2058
  "kind": "agent-candidate-execution-evidence",
2059
2059
  "materializationReceipt": {
2060
2060
  "benchmark": {
@@ -2309,7 +2309,7 @@ var agent_improvement_proposal_default = {
2309
2309
  }
2310
2310
  },
2311
2311
  "bundleDigest": "sha256:60fcbb1c728194bd51d7d19cb732d1c3f1881dce7e0a6266b41c8b98cfd65693",
2312
- "digest": "sha256:b1b4193a60ba6e6a97d073981d291ba4edfaa1e845cd004bbfd5a8dd1182261d",
2312
+ "digest": "sha256:6e06bc30f28b7d18adf6ac8ebebe612d20f55d99b0963eca63c0d35e9fbde914",
2313
2313
  "digestAlgorithm": "rfc8785-sha256",
2314
2314
  "executionPlanDigest": "sha256:008935e8b1c07669bb7791bde0a4037751a29f7af0dd1e0346da0ca23b36e0c6",
2315
2315
  "executorCapture": {
@@ -2411,10 +2411,10 @@ var agent_improvement_proposal_default = {
2411
2411
  "byteLength": 750,
2412
2412
  "locator": {
2413
2413
  "bucket": "candidate-test-artifacts",
2414
- "key": "trace/8e814f15b6330473958a5747a7724e3d3f4406cedb6ea06dabe38e3e403ea7cc",
2414
+ "key": "trace/4850abf8c523dd63eaecdc763b5f2b429d98df5f52ebc94bc6ed9ce8ee76d4d0",
2415
2415
  "kind": "s3"
2416
2416
  },
2417
- "sha256": "sha256:8e814f15b6330473958a5747a7724e3d3f4406cedb6ea06dabe38e3e403ea7cc"
2417
+ "sha256": "sha256:4850abf8c523dd63eaecdc763b5f2b429d98df5f52ebc94bc6ed9ce8ee76d4d0"
2418
2418
  },
2419
2419
  "eventCount": 1,
2420
2420
  "modelCallCount": 0
@@ -2424,7 +2424,7 @@ var agent_improvement_proposal_default = {
2424
2424
  },
2425
2425
  {
2426
2426
  "baseline": {
2427
- "digest": "sha256:9ffbfa7a0e300cceefcc2426f708bb0c5ab67dcbe0f4f541fc1b68f56ef0a810",
2427
+ "digest": "sha256:2b48d4bef6082838689e7f383ee26d4e8db343f1025600f350c3b1144e823ae8",
2428
2428
  "kind": "agent-candidate-execution-evidence",
2429
2429
  "materializationReceipt": {
2430
2430
  "benchmark": {
@@ -2659,7 +2659,7 @@ var agent_improvement_proposal_default = {
2659
2659
  }
2660
2660
  },
2661
2661
  "bundleDigest": "sha256:5c21ee53e513fc604cb09754e21c392b24a424da0ef37dbf8f1ee4a8a0b08f09",
2662
- "digest": "sha256:b5bfa0daf21252967fbc0ef6c2ee79a24f002b80c66f62988c472c0ce2ba9cc3",
2662
+ "digest": "sha256:dae5e4a63e7116fbb4ba3220d4ba7d5b4694cbaedb57056cf4d9bcc941b19641",
2663
2663
  "digestAlgorithm": "rfc8785-sha256",
2664
2664
  "executionPlanDigest": "sha256:a25e4c57b90cc470f75794d91d545977003bf298c89916af598befa868cbccf4",
2665
2665
  "executorCapture": {
@@ -2761,10 +2761,10 @@ var agent_improvement_proposal_default = {
2761
2761
  "byteLength": 748,
2762
2762
  "locator": {
2763
2763
  "bucket": "candidate-test-artifacts",
2764
- "key": "trace/80d0585a66279da08fa677e0cd73b61f464027a41e0d89b039257e78fcd5564c",
2764
+ "key": "trace/4797188b10413f0e0fad2fe0a62685519a016f5f557a3e16a5e4c5156ccc38c2",
2765
2765
  "kind": "s3"
2766
2766
  },
2767
- "sha256": "sha256:80d0585a66279da08fa677e0cd73b61f464027a41e0d89b039257e78fcd5564c"
2767
+ "sha256": "sha256:4797188b10413f0e0fad2fe0a62685519a016f5f557a3e16a5e4c5156ccc38c2"
2768
2768
  },
2769
2769
  "eventCount": 1,
2770
2770
  "modelCallCount": 0
@@ -2772,7 +2772,7 @@ var agent_improvement_proposal_default = {
2772
2772
  }
2773
2773
  },
2774
2774
  "candidate": {
2775
- "digest": "sha256:6e83fc086b841e423809f31ea42266dad239347ddfe5188e07f40532c55cc86e",
2775
+ "digest": "sha256:4da3058fc2c744328413b1119717eeb31d0e8939fc08e6e69cef1f6130741081",
2776
2776
  "kind": "agent-candidate-execution-evidence",
2777
2777
  "materializationReceipt": {
2778
2778
  "benchmark": {
@@ -3027,7 +3027,7 @@ var agent_improvement_proposal_default = {
3027
3027
  }
3028
3028
  },
3029
3029
  "bundleDigest": "sha256:60fcbb1c728194bd51d7d19cb732d1c3f1881dce7e0a6266b41c8b98cfd65693",
3030
- "digest": "sha256:8f55a6598bb698e0d392a3a8f028302a183d4b5a0e42e20db50a719e6f8b36b0",
3030
+ "digest": "sha256:b48ab84e5c8bf7e88b046e413157268e2fe6ae453ab8bc1dc9b398632dac64ec",
3031
3031
  "digestAlgorithm": "rfc8785-sha256",
3032
3032
  "executionPlanDigest": "sha256:d1b0950aecb0ee8b297a28bbda937eb1c3bbec4ef2fdee996d6b5a1aefc2296f",
3033
3033
  "executorCapture": {
@@ -3129,10 +3129,10 @@ var agent_improvement_proposal_default = {
3129
3129
  "byteLength": 750,
3130
3130
  "locator": {
3131
3131
  "bucket": "candidate-test-artifacts",
3132
- "key": "trace/09f4f980763e5ab5d235691b5f39af3752fcb4c1f7de41b23c9b2135cd27a559",
3132
+ "key": "trace/311e938e7a575c6ca3c1d6cda1ef883bd4687bf5c40a3934ad29f6cd65b3501c",
3133
3133
  "kind": "s3"
3134
3134
  },
3135
- "sha256": "sha256:09f4f980763e5ab5d235691b5f39af3752fcb4c1f7de41b23c9b2135cd27a559"
3135
+ "sha256": "sha256:311e938e7a575c6ca3c1d6cda1ef883bd4687bf5c40a3934ad29f6cd65b3501c"
3136
3136
  },
3137
3137
  "eventCount": 1,
3138
3138
  "modelCallCount": 0
@@ -3142,7 +3142,7 @@ var agent_improvement_proposal_default = {
3142
3142
  },
3143
3143
  {
3144
3144
  "baseline": {
3145
- "digest": "sha256:565b454b163151394aa48872cd67cf6a49b1ce634b319497d1ae0ad9a47822b5",
3145
+ "digest": "sha256:5e3c07e6b08edb064e7449d07e1bf368d168e8ffa08c2e2d5a8c429402a2d87c",
3146
3146
  "kind": "agent-candidate-execution-evidence",
3147
3147
  "materializationReceipt": {
3148
3148
  "benchmark": {
@@ -3377,7 +3377,7 @@ var agent_improvement_proposal_default = {
3377
3377
  }
3378
3378
  },
3379
3379
  "bundleDigest": "sha256:5c21ee53e513fc604cb09754e21c392b24a424da0ef37dbf8f1ee4a8a0b08f09",
3380
- "digest": "sha256:6e7f4ce27be2d32516d8dfa10b631eadf2e7ea443821d12f323660572519642e",
3380
+ "digest": "sha256:f16e683a5c5cd637f7e1adb7cc86ce89f7348af484fe2d275b9202226c5194f5",
3381
3381
  "digestAlgorithm": "rfc8785-sha256",
3382
3382
  "executionPlanDigest": "sha256:77184474b3a762f797d232866f84234a0c132da1bf432ca923a6e0c9de0cee8d",
3383
3383
  "executorCapture": {
@@ -3479,10 +3479,10 @@ var agent_improvement_proposal_default = {
3479
3479
  "byteLength": 748,
3480
3480
  "locator": {
3481
3481
  "bucket": "candidate-test-artifacts",
3482
- "key": "trace/da4d638b4eb3fb55bee9c6c41eeb5e793c1e785f37f2c73bd5c7f91c1d78b3a0",
3482
+ "key": "trace/acdea8ac43f7eb0b7449ab5ec7e57a3300bafc6d291e90edbb6217f0f5a21688",
3483
3483
  "kind": "s3"
3484
3484
  },
3485
- "sha256": "sha256:da4d638b4eb3fb55bee9c6c41eeb5e793c1e785f37f2c73bd5c7f91c1d78b3a0"
3485
+ "sha256": "sha256:acdea8ac43f7eb0b7449ab5ec7e57a3300bafc6d291e90edbb6217f0f5a21688"
3486
3486
  },
3487
3487
  "eventCount": 1,
3488
3488
  "modelCallCount": 0
@@ -3490,7 +3490,7 @@ var agent_improvement_proposal_default = {
3490
3490
  }
3491
3491
  },
3492
3492
  "candidate": {
3493
- "digest": "sha256:732823eae5d0c1a99ff22a95fa1af6d66e91d2e9ff22f6b03e4929321acffeeb",
3493
+ "digest": "sha256:cb0e27d7c164e3403469d4c10e2aa732f8dc607589d6aa7fc2417725200a9c3d",
3494
3494
  "kind": "agent-candidate-execution-evidence",
3495
3495
  "materializationReceipt": {
3496
3496
  "benchmark": {
@@ -3745,7 +3745,7 @@ var agent_improvement_proposal_default = {
3745
3745
  }
3746
3746
  },
3747
3747
  "bundleDigest": "sha256:60fcbb1c728194bd51d7d19cb732d1c3f1881dce7e0a6266b41c8b98cfd65693",
3748
- "digest": "sha256:8adf399e1a3c0d59207aedf164f823bf03da29945703f82bc5faae9994db9786",
3748
+ "digest": "sha256:e2bb2c36aa985c6b5b656fc5ac23841f569606b65cc626126be48d0d13c032d0",
3749
3749
  "digestAlgorithm": "rfc8785-sha256",
3750
3750
  "executionPlanDigest": "sha256:52941d27e3ea167aa1e56dd2ed99000648032752132535a90ca0d0cfb1a36f26",
3751
3751
  "executorCapture": {
@@ -3847,10 +3847,10 @@ var agent_improvement_proposal_default = {
3847
3847
  "byteLength": 750,
3848
3848
  "locator": {
3849
3849
  "bucket": "candidate-test-artifacts",
3850
- "key": "trace/754ef1d9659f6ae446d200c02b6932614acf977f6ac906ed4057d686dd0c41fc",
3850
+ "key": "trace/ca725eebb3091dfe9f51c2e36174cdebbb5b194f115beb0793d282988eb685f5",
3851
3851
  "kind": "s3"
3852
3852
  },
3853
- "sha256": "sha256:754ef1d9659f6ae446d200c02b6932614acf977f6ac906ed4057d686dd0c41fc"
3853
+ "sha256": "sha256:ca725eebb3091dfe9f51c2e36174cdebbb5b194f115beb0793d282988eb685f5"
3854
3854
  },
3855
3855
  "eventCount": 1,
3856
3856
  "modelCallCount": 0
@@ -3860,7 +3860,7 @@ var agent_improvement_proposal_default = {
3860
3860
  },
3861
3861
  {
3862
3862
  "baseline": {
3863
- "digest": "sha256:28f1766cd4ab896d1375456f1d241ed212d65c3e94033370826677bd2ace0564",
3863
+ "digest": "sha256:70e469b772bd85290433be93150c58cae301383b62713a17f2296d885af10626",
3864
3864
  "kind": "agent-candidate-execution-evidence",
3865
3865
  "materializationReceipt": {
3866
3866
  "benchmark": {
@@ -4095,7 +4095,7 @@ var agent_improvement_proposal_default = {
4095
4095
  }
4096
4096
  },
4097
4097
  "bundleDigest": "sha256:5c21ee53e513fc604cb09754e21c392b24a424da0ef37dbf8f1ee4a8a0b08f09",
4098
- "digest": "sha256:0c899f2106c69af3b210b46c526cc0ecf7ee5204f5c1ec3f822bcb5ac61c1b3c",
4098
+ "digest": "sha256:c8526efb87ca12a65b4ddb7175d985c7714e14ed78920f404c25dc4657ff8f51",
4099
4099
  "digestAlgorithm": "rfc8785-sha256",
4100
4100
  "executionPlanDigest": "sha256:7ddfacb9cc7a5cec624f442e224490304a8003f16165947df2a5728c4acb67f1",
4101
4101
  "executorCapture": {
@@ -4197,10 +4197,10 @@ var agent_improvement_proposal_default = {
4197
4197
  "byteLength": 748,
4198
4198
  "locator": {
4199
4199
  "bucket": "candidate-test-artifacts",
4200
- "key": "trace/5dc0d28b408c85001efbb6c86437f9fe829f3d4e367fb84c4365755ad5858fef",
4200
+ "key": "trace/b75be64b3008cf5a30516d54e9ac0adc0823c86e812d909e18263f934586a30b",
4201
4201
  "kind": "s3"
4202
4202
  },
4203
- "sha256": "sha256:5dc0d28b408c85001efbb6c86437f9fe829f3d4e367fb84c4365755ad5858fef"
4203
+ "sha256": "sha256:b75be64b3008cf5a30516d54e9ac0adc0823c86e812d909e18263f934586a30b"
4204
4204
  },
4205
4205
  "eventCount": 1,
4206
4206
  "modelCallCount": 0
@@ -4208,7 +4208,7 @@ var agent_improvement_proposal_default = {
4208
4208
  }
4209
4209
  },
4210
4210
  "candidate": {
4211
- "digest": "sha256:fba35c0eb790e984513b35467d3759a51269f66ac77db5f8e89e2911654020af",
4211
+ "digest": "sha256:1446b98468da28195e8e6340d1d81996114624a594cab7c8b404f8d89c60512a",
4212
4212
  "kind": "agent-candidate-execution-evidence",
4213
4213
  "materializationReceipt": {
4214
4214
  "benchmark": {
@@ -4463,7 +4463,7 @@ var agent_improvement_proposal_default = {
4463
4463
  }
4464
4464
  },
4465
4465
  "bundleDigest": "sha256:60fcbb1c728194bd51d7d19cb732d1c3f1881dce7e0a6266b41c8b98cfd65693",
4466
- "digest": "sha256:2508ec94d7738f64cac9428f48474ff25993b165be9c6888d8a1beb0b3a182d9",
4466
+ "digest": "sha256:24715c189989282778740286cc02ea785b76267ff73c456aeee37e8eeab66089",
4467
4467
  "digestAlgorithm": "rfc8785-sha256",
4468
4468
  "executionPlanDigest": "sha256:6f55ca46fec25104581965551a60cd5014c26cd24909c0475b03eb078652418d",
4469
4469
  "executorCapture": {
@@ -4565,10 +4565,10 @@ var agent_improvement_proposal_default = {
4565
4565
  "byteLength": 750,
4566
4566
  "locator": {
4567
4567
  "bucket": "candidate-test-artifacts",
4568
- "key": "trace/f6d1c1e1e6e8c5a961dad666c3fe70574a9229f67f5e71e2a72e99ebbb1948f0",
4568
+ "key": "trace/9fda1a0c05cd44698859d153b2caea55c9779434cd9d8de11e468694204dfd37",
4569
4569
  "kind": "s3"
4570
4570
  },
4571
- "sha256": "sha256:f6d1c1e1e6e8c5a961dad666c3fe70574a9229f67f5e71e2a72e99ebbb1948f0"
4571
+ "sha256": "sha256:9fda1a0c05cd44698859d153b2caea55c9779434cd9d8de11e468694204dfd37"
4572
4572
  },
4573
4573
  "eventCount": 1,
4574
4574
  "modelCallCount": 0
@@ -4579,7 +4579,7 @@ var agent_improvement_proposal_default = {
4579
4579
  ],
4580
4580
  "metadata": {
4581
4581
  "fixture": "agent-improvement-proposal",
4582
- "runtimeVersion": "0.266.0"
4582
+ "runtimeVersion": "0.273.3"
4583
4583
  },
4584
4584
  "objectives": [
4585
4585
  {
@@ -4690,8 +4690,8 @@ var agent_improvement_proposal_default = {
4690
4690
  "baselineContentHash": "sha256:5c21ee53e513fc604cb09754e21c392b24a424da0ef37dbf8f1ee4a8a0b08f09",
4691
4691
  "candidateContentHash": "sha256:60fcbb1c728194bd51d7d19cb732d1c3f1881dce7e0a6266b41c8b98cfd65693",
4692
4692
  "kind": "agent-eval-loop",
4693
- "recordDigest": "sha256:38b07934c181f4f92d397194fd50a1ddf303fe599d53feccced96ee75e3f0299",
4694
- "runId": "agent-runtime-0.266.0-proposal-fixture",
4693
+ "recordDigest": "sha256:fba1e33508f2dd37bdaa90616df90ab7cca135745bb2eb8a1f65f1a5918c9332",
4694
+ "runId": "agent-runtime-0.273.3-proposal-fixture",
4695
4695
  "schema": "agent-candidate-experiment"
4696
4696
  }
4697
4697
  },
@@ -4714,13 +4714,13 @@ var agent_improvement_proposal_default = {
4714
4714
  }],
4715
4715
  kind: "agent-improvement-proposal",
4716
4716
  proposedAt: "2026-07-10T01:00:00.000Z",
4717
- runId: "agent-runtime-0.266.0-proposal-fixture"
4717
+ runId: "agent-runtime-0.273.3-proposal-fixture"
4718
4718
  };
4719
4719
  //#endregion
4720
4720
  //#region src/testing/fixtures/agent-profile-improvement-proposal.json
4721
4721
  var agent_profile_improvement_proposal_default = {
4722
4722
  changedSurfaces: ["prompt", "skills"],
4723
- digest: "sha256:6320cd1100f5e0b06dd69176b4aa65ca738ab573b79edef05673db16357a4547",
4723
+ digest: "sha256:9b06ba83e1366a6e4a6ee88952712cc1dfc2d665a8eae995156f27f7d34149bf",
4724
4724
  evaluation: {
4725
4725
  "decision": {
4726
4726
  "contributingChecks": [
@@ -6354,7 +6354,7 @@ var agent_profile_improvement_proposal_default = {
6354
6354
  ],
6355
6355
  "metadata": {
6356
6356
  "fixture": "agent-profile-improvement-proposal",
6357
- "runtimeVersion": "0.266.0"
6357
+ "runtimeVersion": "0.273.3"
6358
6358
  },
6359
6359
  "objectives": [
6360
6360
  {
@@ -6465,7 +6465,7 @@ var agent_profile_improvement_proposal_default = {
6465
6465
  "baselineContentHash": "sha256:21c495a37c418c10bde64fbaa188beddeed31f1f051ea60a6a6582a9ee0db704",
6466
6466
  "candidateContentHash": "sha256:103f77bc8481601eef1ad5fe6ba84a40dffabc3a44f421f8c8559121edab84e9",
6467
6467
  "kind": "agent-eval-loop",
6468
- "recordDigest": "sha256:76a0368ba73c6f3e5e4c18daab0019ef6b95e634fcffc4601d2436c4c8471db6",
6468
+ "recordDigest": "sha256:750908dd26259ffbc76a30fea348222d299ce34968e2fa07995cc77aedf60e58",
6469
6469
  "runId": "profile-improvement-1",
6470
6470
  "schema": "agent-profile-improvement-experiment"
6471
6471
  }
@@ -6521,7 +6521,7 @@ function loadAgentProfileImprovementFixture() {
6521
6521
  const baselineStateDigest = profileStateDigest(state.baselineProfile, state.recommendedSize);
6522
6522
  const candidateStateDigest = profileStateDigest(state.candidateProfile, state.recommendedSize);
6523
6523
  if (baselineStateDigest !== experiment.baseline.stateDigest || candidateStateDigest !== experiment.candidate.stateDigest) throw new Error("profile improvement fixture state does not match its proposal");
6524
- if (canonicalCandidateDigest$1(experiment.change.reduce((profile, change, index) => applyExactAgentProfileDiff(profile, change, `profile improvement fixture change ${index}`), state.baselineProfile)) !== canonicalCandidateDigest$1(state.candidateProfile)) throw new Error("profile improvement fixture candidate does not match its proposal changes");
6524
+ if (canonicalAgentProfileDigest(experiment.change.reduce((profile, change, index) => applyExactAgentProfileDiff(profile, change, `profile improvement fixture change ${index}`), state.baselineProfile)) !== canonicalAgentProfileDigest(state.candidateProfile)) throw new Error("profile improvement fixture candidate does not match its proposal changes");
6525
6525
  return immutableCandidateValue({
6526
6526
  proposal,
6527
6527
  ...state
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","names":["canonicalAgentImprovementProposalFixture","canonicalAgentProfileImprovementProposalFixture","canonicalAgentProfileImprovementStateFixture","canonicalCandidateDigest"],"sources":["../src/testing/fixtures/agent-improvement-proposal.json","../src/testing/fixtures/agent-profile-improvement-proposal.json","../src/testing/fixtures/agent-profile-improvement-state.json","../src/testing/index.ts"],"sourcesContent":["","","","import {\n type AgentImprovementProposal,\n type AgentProfile,\n type AgentProfileImprovementMeasuredComparison,\n SANDBOX_SIZE_PRESET_NAMES,\n type SandboxSizePreset,\n} from '@tangle-network/agent-interface'\n\nimport { canonicalCandidateDigest, immutableCandidateValue } from '../candidate-execution/digest'\nimport { applyExactAgentProfileDiff, parseExactAgentProfile } from '../candidate-execution/profile'\nimport { verifyAgentImprovementProposal } from '../intelligence/improvement-cycle'\nimport canonicalAgentImprovementProposalFixture from './fixtures/agent-improvement-proposal.json'\nimport canonicalAgentProfileImprovementProposalFixture from './fixtures/agent-profile-improvement-proposal.json'\nimport canonicalAgentProfileImprovementStateFixture from './fixtures/agent-profile-improvement-state.json'\n\nexport {\n type DriverAgentOptions,\n driverAgent,\n} from '../runtime/supervise/coordination-driver'\nexport {\n type RunGraphTestOptions,\n runGraphWithTestBrain,\n} from '../runtime/supervise/graph'\nexport {\n type SuperviseTestOptions,\n superviseWithTestBrain,\n} from '../runtime/supervise/supervise'\nexport {\n type SupervisorAgentTestDeps,\n supervisorAgentWithTestBrain,\n} from '../runtime/supervise/supervisor-agent'\nexport type { ToolLoopCallContext, ToolLoopChat } from '../runtime/tool-loop'\n\nconst serializedAgentImprovementProposalFixture = JSON.stringify(\n canonicalAgentImprovementProposalFixture,\n)\nconst serializedAgentProfileImprovementProposalFixture = JSON.stringify(\n canonicalAgentProfileImprovementProposalFixture,\n)\nconst serializedAgentProfileImprovementStateFixture = JSON.stringify(\n canonicalAgentProfileImprovementStateFixture,\n)\n\n/** A proposal produced by Runtime's opaque profile-improvement path. */\nexport type AgentProfileImprovementProposalFixture = Omit<\n AgentImprovementProposal,\n 'evaluation'\n> & {\n evaluation: AgentProfileImprovementMeasuredComparison\n}\n\n/** Complete private state for exercising profile activation and restore in consumer tests. */\nexport interface AgentProfileImprovementFixture {\n proposal: AgentProfileImprovementProposalFixture\n baselineProfile: AgentProfile\n candidateProfile: AgentProfile\n recommendedSize: SandboxSizePreset\n}\n\n/** Load an isolated, production-validated Runtime proposal for consumer tests. */\nexport function loadAgentImprovementProposalFixture(): AgentImprovementProposal {\n return verifyAgentImprovementProposal(JSON.parse(serializedAgentImprovementProposalFixture))\n}\n\n/** Load an isolated profile proposal and its private activation state for consumer tests. */\nexport function loadAgentProfileImprovementFixture(): AgentProfileImprovementFixture {\n const proposal = loadAgentProfileImprovementProposal()\n const state = parseAgentProfileImprovementState(\n JSON.parse(serializedAgentProfileImprovementStateFixture),\n )\n const experiment = proposal.evaluation.experiment\n const baselineStateDigest = profileStateDigest(state.baselineProfile, state.recommendedSize)\n const candidateStateDigest = profileStateDigest(state.candidateProfile, state.recommendedSize)\n if (\n baselineStateDigest !== experiment.baseline.stateDigest ||\n candidateStateDigest !== experiment.candidate.stateDigest\n ) {\n throw new Error('profile improvement fixture state does not match its proposal')\n }\n const appliedCandidate = experiment.change.reduce(\n (profile, change, index) =>\n applyExactAgentProfileDiff(profile, change, `profile improvement fixture change ${index}`),\n state.baselineProfile,\n )\n if (\n canonicalCandidateDigest(appliedCandidate) !== canonicalCandidateDigest(state.candidateProfile)\n ) {\n throw new Error('profile improvement fixture candidate does not match its proposal changes')\n }\n return immutableCandidateValue({ proposal, ...state })\n}\n\nfunction loadAgentProfileImprovementProposal(): AgentProfileImprovementProposalFixture {\n const proposal = verifyAgentImprovementProposal(\n JSON.parse(serializedAgentProfileImprovementProposalFixture),\n )\n if (proposal.evaluation.kind !== 'agent-profile-improvement-measured-comparison') {\n throw new Error('profile improvement fixture contains a sealed candidate comparison')\n }\n return { ...proposal, evaluation: proposal.evaluation }\n}\n\nfunction parseAgentProfileImprovementState(\n input: unknown,\n): Omit<AgentProfileImprovementFixture, 'proposal'> {\n if (typeof input !== 'object' || input === null || Array.isArray(input)) {\n throw new Error('profile improvement fixture state must be an object')\n }\n const record = input as Record<string, unknown>\n const fields = Object.keys(record).sort()\n const expectedFields = ['baselineProfile', 'candidateProfile', 'recommendedSize']\n if (\n fields.length !== expectedFields.length ||\n fields.some((field, i) => field !== expectedFields[i])\n ) {\n throw new Error('profile improvement fixture state contains unsupported fields')\n }\n const recommendedSize = SANDBOX_SIZE_PRESET_NAMES.find((size) => size === record.recommendedSize)\n if (!recommendedSize) {\n throw new Error('profile improvement fixture has an invalid recommended size')\n }\n return {\n baselineProfile: parseExactAgentProfile(\n record.baselineProfile,\n 'profile improvement fixture baseline',\n ),\n candidateProfile: parseExactAgentProfile(\n record.candidateProfile,\n 'profile improvement fixture candidate',\n ),\n recommendedSize,\n }\n}\n\nfunction profileStateDigest(\n profile: AgentProfile,\n recommendedSize: SandboxSizePreset,\n): ReturnType<typeof canonicalCandidateDigest> {\n return canonicalCandidateDigest({ definition: profile, recommendedSize })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AGiCA,MAAM,4CAA4C,KAAK,UACrDA,kCACF;AACA,MAAM,mDAAmD,KAAK,UAC5DC,0CACF;AACA,MAAM,gDAAgD,KAAK,UACzDC,uCACF;;AAmBA,SAAgB,sCAAgE;CAC9E,OAAO,+BAA+B,KAAK,MAAM,yCAAyC,CAAC;AAC7F;;AAGA,SAAgB,qCAAqE;CACnF,MAAM,WAAW,oCAAoC;CACrD,MAAM,QAAQ,kCACZ,KAAK,MAAM,6CAA6C,CAC1D;CACA,MAAM,aAAa,SAAS,WAAW;CACvC,MAAM,sBAAsB,mBAAmB,MAAM,iBAAiB,MAAM,eAAe;CAC3F,MAAM,uBAAuB,mBAAmB,MAAM,kBAAkB,MAAM,eAAe;CAC7F,IACE,wBAAwB,WAAW,SAAS,eAC5C,yBAAyB,WAAW,UAAU,aAE9C,MAAM,IAAI,MAAM,+DAA+D;CAOjF,IACEC,2BANuB,WAAW,OAAO,QACxC,SAAS,QAAQ,UAChB,2BAA2B,SAAS,QAAQ,sCAAsC,OAAO,GAC3F,MAAM,eAGkC,CAAC,MAAMA,2BAAyB,MAAM,gBAAgB,GAE9F,MAAM,IAAI,MAAM,2EAA2E;CAE7F,OAAO,wBAAwB;EAAE;EAAU,GAAG;CAAM,CAAC;AACvD;AAEA,SAAS,sCAA8E;CACrF,MAAM,WAAW,+BACf,KAAK,MAAM,gDAAgD,CAC7D;CACA,IAAI,SAAS,WAAW,SAAS,iDAC/B,MAAM,IAAI,MAAM,oEAAoE;CAEtF,OAAO;EAAE,GAAG;EAAU,YAAY,SAAS;CAAW;AACxD;AAEA,SAAS,kCACP,OACkD;CAClD,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,QAAQ,KAAK,GACpE,MAAM,IAAI,MAAM,qDAAqD;CAEvE,MAAM,SAAS;CACf,MAAM,SAAS,OAAO,KAAK,MAAM,CAAC,CAAC,KAAK;CACxC,MAAM,iBAAiB;EAAC;EAAmB;EAAoB;CAAiB;CAChF,IACE,OAAO,WAAW,eAAe,UACjC,OAAO,MAAM,OAAO,MAAM,UAAU,eAAe,EAAE,GAErD,MAAM,IAAI,MAAM,+DAA+D;CAEjF,MAAM,kBAAkB,0BAA0B,MAAM,SAAS,SAAS,OAAO,eAAe;CAChG,IAAI,CAAC,iBACH,MAAM,IAAI,MAAM,6DAA6D;CAE/E,OAAO;EACL,iBAAiB,uBACf,OAAO,iBACP,sCACF;EACA,kBAAkB,uBAChB,OAAO,kBACP,uCACF;EACA;CACF;AACF;AAEA,SAAS,mBACP,SACA,iBAC6C;CAC7C,OAAOA,2BAAyB;EAAE,YAAY;EAAS;CAAgB,CAAC;AAC1E"}
1
+ {"version":3,"file":"testing.js","names":["canonicalAgentImprovementProposalFixture","canonicalAgentProfileImprovementProposalFixture","canonicalAgentProfileImprovementStateFixture","canonicalCandidateDigest"],"sources":["../src/testing/fixtures/agent-improvement-proposal.json","../src/testing/fixtures/agent-profile-improvement-proposal.json","../src/testing/fixtures/agent-profile-improvement-state.json","../src/testing/index.ts"],"sourcesContent":["","","","import {\n type AgentImprovementProposal,\n type AgentProfile,\n type AgentProfileImprovementMeasuredComparison,\n canonicalAgentProfileDigest,\n SANDBOX_SIZE_PRESET_NAMES,\n type SandboxSizePreset,\n} from '@tangle-network/agent-interface'\n\nimport { canonicalCandidateDigest, immutableCandidateValue } from '../candidate-execution/digest'\nimport { applyExactAgentProfileDiff, parseExactAgentProfile } from '../candidate-execution/profile'\nimport { verifyAgentImprovementProposal } from '../intelligence/improvement-cycle'\nimport canonicalAgentImprovementProposalFixture from './fixtures/agent-improvement-proposal.json'\nimport canonicalAgentProfileImprovementProposalFixture from './fixtures/agent-profile-improvement-proposal.json'\nimport canonicalAgentProfileImprovementStateFixture from './fixtures/agent-profile-improvement-state.json'\n\nexport {\n type DriverAgentOptions,\n driverAgent,\n} from '../runtime/supervise/coordination-driver'\nexport {\n type RunGraphTestOptions,\n runGraphWithTestBrain,\n} from '../runtime/supervise/graph'\nexport {\n type SuperviseTestOptions,\n superviseWithTestBrain,\n} from '../runtime/supervise/supervise'\nexport {\n type SupervisorAgentTestDeps,\n supervisorAgentWithTestBrain,\n} from '../runtime/supervise/supervisor-agent'\nexport type { ToolLoopCallContext, ToolLoopChat } from '../runtime/tool-loop'\n\nconst serializedAgentImprovementProposalFixture = JSON.stringify(\n canonicalAgentImprovementProposalFixture,\n)\nconst serializedAgentProfileImprovementProposalFixture = JSON.stringify(\n canonicalAgentProfileImprovementProposalFixture,\n)\nconst serializedAgentProfileImprovementStateFixture = JSON.stringify(\n canonicalAgentProfileImprovementStateFixture,\n)\n\n/** A proposal produced by Runtime's opaque profile-improvement path. */\nexport type AgentProfileImprovementProposalFixture = Omit<\n AgentImprovementProposal,\n 'evaluation'\n> & {\n evaluation: AgentProfileImprovementMeasuredComparison\n}\n\n/** Complete private state for exercising profile activation and restore in consumer tests. */\nexport interface AgentProfileImprovementFixture {\n proposal: AgentProfileImprovementProposalFixture\n baselineProfile: AgentProfile\n candidateProfile: AgentProfile\n recommendedSize: SandboxSizePreset\n}\n\n/** Load an isolated, production-validated Runtime proposal for consumer tests. */\nexport function loadAgentImprovementProposalFixture(): AgentImprovementProposal {\n return verifyAgentImprovementProposal(JSON.parse(serializedAgentImprovementProposalFixture))\n}\n\n/** Load an isolated profile proposal and its private activation state for consumer tests. */\nexport function loadAgentProfileImprovementFixture(): AgentProfileImprovementFixture {\n const proposal = loadAgentProfileImprovementProposal()\n const state = parseAgentProfileImprovementState(\n JSON.parse(serializedAgentProfileImprovementStateFixture),\n )\n const experiment = proposal.evaluation.experiment\n const baselineStateDigest = profileStateDigest(state.baselineProfile, state.recommendedSize)\n const candidateStateDigest = profileStateDigest(state.candidateProfile, state.recommendedSize)\n if (\n baselineStateDigest !== experiment.baseline.stateDigest ||\n candidateStateDigest !== experiment.candidate.stateDigest\n ) {\n throw new Error('profile improvement fixture state does not match its proposal')\n }\n const appliedCandidate = experiment.change.reduce(\n (profile, change, index) =>\n applyExactAgentProfileDiff(profile, change, `profile improvement fixture change ${index}`),\n state.baselineProfile,\n )\n if (\n canonicalAgentProfileDigest(appliedCandidate) !==\n canonicalAgentProfileDigest(state.candidateProfile)\n ) {\n throw new Error('profile improvement fixture candidate does not match its proposal changes')\n }\n return immutableCandidateValue({ proposal, ...state })\n}\n\nfunction loadAgentProfileImprovementProposal(): AgentProfileImprovementProposalFixture {\n const proposal = verifyAgentImprovementProposal(\n JSON.parse(serializedAgentProfileImprovementProposalFixture),\n )\n if (proposal.evaluation.kind !== 'agent-profile-improvement-measured-comparison') {\n throw new Error('profile improvement fixture contains a sealed candidate comparison')\n }\n return { ...proposal, evaluation: proposal.evaluation }\n}\n\nfunction parseAgentProfileImprovementState(\n input: unknown,\n): Omit<AgentProfileImprovementFixture, 'proposal'> {\n if (typeof input !== 'object' || input === null || Array.isArray(input)) {\n throw new Error('profile improvement fixture state must be an object')\n }\n const record = input as Record<string, unknown>\n const fields = Object.keys(record).sort()\n const expectedFields = ['baselineProfile', 'candidateProfile', 'recommendedSize']\n if (\n fields.length !== expectedFields.length ||\n fields.some((field, i) => field !== expectedFields[i])\n ) {\n throw new Error('profile improvement fixture state contains unsupported fields')\n }\n const recommendedSize = SANDBOX_SIZE_PRESET_NAMES.find((size) => size === record.recommendedSize)\n if (!recommendedSize) {\n throw new Error('profile improvement fixture has an invalid recommended size')\n }\n return {\n baselineProfile: parseExactAgentProfile(\n record.baselineProfile,\n 'profile improvement fixture baseline',\n ),\n candidateProfile: parseExactAgentProfile(\n record.candidateProfile,\n 'profile improvement fixture candidate',\n ),\n recommendedSize,\n }\n}\n\nfunction profileStateDigest(\n profile: AgentProfile,\n recommendedSize: SandboxSizePreset,\n): ReturnType<typeof canonicalCandidateDigest> {\n return canonicalCandidateDigest({ definition: profile, recommendedSize })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AGkCA,MAAM,4CAA4C,KAAK,UACrDA,kCACF;AACA,MAAM,mDAAmD,KAAK,UAC5DC,0CACF;AACA,MAAM,gDAAgD,KAAK,UACzDC,uCACF;;AAmBA,SAAgB,sCAAgE;CAC9E,OAAO,+BAA+B,KAAK,MAAM,yCAAyC,CAAC;AAC7F;;AAGA,SAAgB,qCAAqE;CACnF,MAAM,WAAW,oCAAoC;CACrD,MAAM,QAAQ,kCACZ,KAAK,MAAM,6CAA6C,CAC1D;CACA,MAAM,aAAa,SAAS,WAAW;CACvC,MAAM,sBAAsB,mBAAmB,MAAM,iBAAiB,MAAM,eAAe;CAC3F,MAAM,uBAAuB,mBAAmB,MAAM,kBAAkB,MAAM,eAAe;CAC7F,IACE,wBAAwB,WAAW,SAAS,eAC5C,yBAAyB,WAAW,UAAU,aAE9C,MAAM,IAAI,MAAM,+DAA+D;CAOjF,IACE,4BANuB,WAAW,OAAO,QACxC,SAAS,QAAQ,UAChB,2BAA2B,SAAS,QAAQ,sCAAsC,OAAO,GAC3F,MAAM,eAGqC,CAAC,MAC5C,4BAA4B,MAAM,gBAAgB,GAElD,MAAM,IAAI,MAAM,2EAA2E;CAE7F,OAAO,wBAAwB;EAAE;EAAU,GAAG;CAAM,CAAC;AACvD;AAEA,SAAS,sCAA8E;CACrF,MAAM,WAAW,+BACf,KAAK,MAAM,gDAAgD,CAC7D;CACA,IAAI,SAAS,WAAW,SAAS,iDAC/B,MAAM,IAAI,MAAM,oEAAoE;CAEtF,OAAO;EAAE,GAAG;EAAU,YAAY,SAAS;CAAW;AACxD;AAEA,SAAS,kCACP,OACkD;CAClD,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,QAAQ,KAAK,GACpE,MAAM,IAAI,MAAM,qDAAqD;CAEvE,MAAM,SAAS;CACf,MAAM,SAAS,OAAO,KAAK,MAAM,CAAC,CAAC,KAAK;CACxC,MAAM,iBAAiB;EAAC;EAAmB;EAAoB;CAAiB;CAChF,IACE,OAAO,WAAW,eAAe,UACjC,OAAO,MAAM,OAAO,MAAM,UAAU,eAAe,EAAE,GAErD,MAAM,IAAI,MAAM,+DAA+D;CAEjF,MAAM,kBAAkB,0BAA0B,MAAM,SAAS,SAAS,OAAO,eAAe;CAChG,IAAI,CAAC,iBACH,MAAM,IAAI,MAAM,6DAA6D;CAE/E,OAAO;EACL,iBAAiB,uBACf,OAAO,iBACP,sCACF;EACA,kBAAkB,uBAChB,OAAO,kBACP,uCACF;EACA;CACF;AACF;AAEA,SAAS,mBACP,SACA,iBAC6C;CAC7C,OAAOC,2BAAyB;EAAE,YAAY;EAAS;CAAgB,CAAC;AAC1E"}
@@ -4,7 +4,9 @@ import { createInterface } from "node:readline";
4
4
  /**
5
5
  * `createStdioToolServer` — the generic newline-delimited JSON-RPC 2.0 MCP
6
6
  * server core: `initialize` / `notifications/initialized` / `tools/list` /
7
- * `tools/call` over a stdio-shaped transport, protocol 2024-11-05.
7
+ * `ping` / `tools/call` over a stdio-shaped transport. It answers the
8
+ * client's protocol version when listed in `SUPPORTED_PROTOCOL_VERSIONS`,
9
+ * else 2024-11-05, and publishes tool annotations when a tool declares them.
8
10
  *
9
11
  * Extracted from `createMcpServer` (server.ts) so every in-repo MCP server —
10
12
  * the delegation server, the memory server — serves the ONE wire protocol the
@@ -15,6 +17,17 @@ import { createInterface } from "node:readline";
15
17
  * @experimental
16
18
  */
17
19
  const PROTOCOL_VERSION = "2024-11-05";
20
+ /**
21
+ * Protocol versions this server speaks, newest first. `initialize` answers with
22
+ * the client's requested version when it is listed here, and otherwise with
23
+ * `PROTOCOL_VERSION` (2024-11-05), which every client that speaks 2024-11-05 accepts.
24
+ */
25
+ const SUPPORTED_PROTOCOL_VERSIONS = [
26
+ "2025-11-25",
27
+ "2025-06-18",
28
+ "2025-03-26",
29
+ PROTOCOL_VERSION
30
+ ];
18
31
  /** Build the generic stdio JSON-RPC tool server. */
19
32
  function createStdioToolServer(options) {
20
33
  const tools = /* @__PURE__ */ new Map();
@@ -26,19 +39,24 @@ function createStdioToolServer(options) {
26
39
  let activeReadline;
27
40
  async function handle(message) {
28
41
  if (stopped) return rpcError(message.id ?? null, -32099, "server stopped");
29
- if (message.method === "initialize") return rpcResult(message.id ?? null, {
30
- protocolVersion: PROTOCOL_VERSION,
31
- capabilities: { tools: {} },
32
- serverInfo: {
33
- name: options.serverName,
34
- version: options.serverVersion
35
- }
36
- });
42
+ if (message.method === "initialize") {
43
+ const requested = message.params?.protocolVersion;
44
+ return rpcResult(message.id ?? null, {
45
+ protocolVersion: typeof requested === "string" && SUPPORTED_PROTOCOL_VERSIONS.includes(requested) ? requested : PROTOCOL_VERSION,
46
+ capabilities: { tools: {} },
47
+ serverInfo: {
48
+ name: options.serverName,
49
+ version: options.serverVersion
50
+ }
51
+ });
52
+ }
37
53
  if (message.method === "notifications/initialized") return null;
54
+ if (message.method === "ping") return rpcResult(message.id ?? null, {});
38
55
  if (message.method === "tools/list") return rpcResult(message.id ?? null, { tools: [...tools.values()].map((tool) => ({
39
56
  name: tool.name,
40
57
  description: tool.description,
41
- inputSchema: tool.inputSchema
58
+ inputSchema: tool.inputSchema,
59
+ ...tool.annotations ? { annotations: tool.annotations } : {}
42
60
  })) });
43
61
  if (message.method === "tools/call") {
44
62
  const params = message.params ?? {};
@@ -149,6 +167,6 @@ function writeResponse(output, response) {
149
167
  output.write(`${JSON.stringify(response)}\n`);
150
168
  }
151
169
  //#endregion
152
- export { createStdioToolServer as n, PROTOCOL_VERSION as t };
170
+ export { SUPPORTED_PROTOCOL_VERSIONS as n, createStdioToolServer as r, PROTOCOL_VERSION as t };
153
171
 
154
- //# sourceMappingURL=tool-server-x9NEhvHZ.js.map
172
+ //# sourceMappingURL=tool-server-Dqer2M4_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-server-Dqer2M4_.js","names":[],"sources":["../src/mcp/tool-server.ts"],"sourcesContent":["/**\n * `createStdioToolServer` — the generic newline-delimited JSON-RPC 2.0 MCP\n * server core: `initialize` / `notifications/initialized` / `tools/list` /\n * `ping` / `tools/call` over a stdio-shaped transport. It answers the\n * client's protocol version when listed in `SUPPORTED_PROTOCOL_VERSIONS`,\n * else 2024-11-05, and publishes tool annotations when a tool declares them.\n *\n * Extracted from `createMcpServer` (server.ts) so every in-repo MCP server —\n * the delegation server, the memory server — serves the ONE wire protocol the\n * same-host client (`connectStdioMcp`, runtime/stdio-mcp-client.ts) speaks.\n * A second hand-rolled serve loop could drift from what the client expects;\n * this core makes that impossible by construction.\n *\n * @experimental\n */\n\nimport { createInterface, type Interface as ReadlineInterface } from 'node:readline'\nimport { ValidationError } from '../errors'\nimport type { JsonRpcMessage, JsonRpcResponse, McpToolDescriptor, McpTransport } from './protocol'\n\nexport type {\n JsonRpcMessage,\n JsonRpcResponse,\n McpToolAnnotations,\n McpToolDescriptor,\n McpTransport,\n} from './protocol'\n\nexport const PROTOCOL_VERSION = '2024-11-05'\n\n/**\n * Protocol versions this server speaks, newest first. `initialize` answers with\n * the client's requested version when it is listed here, and otherwise with\n * `PROTOCOL_VERSION` (2024-11-05), which every client that speaks 2024-11-05 accepts.\n */\nexport const SUPPORTED_PROTOCOL_VERSIONS: readonly string[] = [\n '2025-11-25',\n '2025-06-18',\n '2025-03-26',\n PROTOCOL_VERSION,\n]\n\n/** @experimental */\nexport interface StdioToolServerOptions {\n /** Server display name surfaced via `initialize`. */\n serverName: string\n /** Server version surfaced via `initialize`. */\n serverVersion: string\n /** The tools to serve. Duplicate names throw — a silent shadow would hide a tool. */\n tools: readonly McpToolDescriptor[]\n}\n\n/** @experimental */\nexport interface StdioToolServer {\n /** Tools currently registered, keyed by name. */\n readonly tools: ReadonlyMap<string, McpToolDescriptor>\n /** Handle a single parsed JSON-RPC message. Returns the response object (or `null` for notifications). */\n handle(message: JsonRpcMessage): Promise<JsonRpcResponse | null>\n /** Drive the server on a stdio-shaped transport until `stop()` is called. */\n serve(transport?: McpTransport): Promise<void>\n /** Stop a `serve` call. Subsequent requests are rejected. */\n stop(): void\n}\n\n/** Build the generic stdio JSON-RPC tool server. */\nexport function createStdioToolServer(options: StdioToolServerOptions): StdioToolServer {\n const tools = new Map<string, McpToolDescriptor>()\n for (const tool of options.tools) {\n if (tools.has(tool.name)) {\n throw new ValidationError(`createStdioToolServer: duplicate tool name \"${tool.name}\"`)\n }\n tools.set(tool.name, tool)\n }\n\n let stopped = false\n let activeReadline: ReadlineInterface | undefined\n\n async function handle(message: JsonRpcMessage): Promise<JsonRpcResponse | null> {\n if (stopped) {\n return rpcError(message.id ?? null, -32099, 'server stopped')\n }\n if (message.method === 'initialize') {\n const requested = (message.params as { protocolVersion?: unknown } | undefined)\n ?.protocolVersion\n return rpcResult(message.id ?? null, {\n protocolVersion:\n typeof requested === 'string' && SUPPORTED_PROTOCOL_VERSIONS.includes(requested)\n ? requested\n : PROTOCOL_VERSION,\n capabilities: { tools: {} },\n serverInfo: { name: options.serverName, version: options.serverVersion },\n })\n }\n if (message.method === 'notifications/initialized') {\n // MCP clients send this after the handshake; it has no id and expects\n // no response.\n return null\n }\n if (message.method === 'ping') {\n return rpcResult(message.id ?? null, {})\n }\n if (message.method === 'tools/list') {\n return rpcResult(message.id ?? null, {\n tools: [...tools.values()].map((tool) => ({\n name: tool.name,\n description: tool.description,\n inputSchema: tool.inputSchema,\n ...(tool.annotations ? { annotations: tool.annotations } : {}),\n })),\n })\n }\n if (message.method === 'tools/call') {\n const params = (message.params ?? {}) as { name?: unknown; arguments?: unknown }\n const name = typeof params.name === 'string' ? params.name : ''\n const tool = tools.get(name)\n if (!tool) {\n return rpcError(message.id ?? null, -32601, `unknown tool: ${name}`)\n }\n try {\n const output = await tool.handler(params.arguments ?? {})\n return rpcResult(message.id ?? null, toolCallResult(output))\n } catch (err) {\n const reason = err instanceof Error ? err.message : String(err)\n const code = err instanceof TypeError || err instanceof RangeError ? -32602 : -32000\n return rpcError(message.id ?? null, code, reason)\n }\n }\n if (message.id === undefined || message.id === null) return null\n return rpcError(message.id, -32601, `unknown method: ${message.method}`)\n }\n\n async function serve(transport?: McpTransport): Promise<void> {\n const input = transport?.input ?? process.stdin\n const output = transport?.output ?? process.stdout\n const rl = createInterface({ input, crlfDelay: Number.POSITIVE_INFINITY })\n activeReadline = rl\n return new Promise<void>((resolve, reject) => {\n rl.on('line', (line) => {\n const trimmed = line.trim()\n if (!trimmed) return\n let parsed: JsonRpcMessage | undefined\n try {\n parsed = JSON.parse(trimmed) as JsonRpcMessage\n } catch (err) {\n writeResponse(output, rpcError(null, -32700, `parse error: ${(err as Error).message}`))\n return\n }\n if (parsed?.jsonrpc !== '2.0' || typeof parsed.method !== 'string') {\n writeResponse(output, rpcError(parsed?.id ?? null, -32600, 'invalid request'))\n return\n }\n void handle(parsed).then((response) => {\n if (response) writeResponse(output, response)\n })\n })\n rl.on('close', () => resolve())\n rl.on('error', (err) => reject(err))\n if (stopped) {\n rl.close()\n resolve()\n }\n })\n }\n\n function stop(): void {\n stopped = true\n activeReadline?.close()\n activeReadline = undefined\n }\n\n return { tools, handle, serve, stop }\n}\n\nfunction toolCallResult(output: unknown): {\n content: [{ type: 'text'; text: string }]\n structuredContent?: Record<string, unknown>\n isError: false\n} {\n let json: string | undefined\n try {\n json = JSON.stringify(output)\n } catch (err) {\n const reason = err instanceof Error ? `: ${err.message}` : ''\n throw new TypeError(`MCP tool result must be JSON-serializable${reason}`, { cause: err })\n }\n if (json === undefined) {\n throw new TypeError('MCP tool result must be JSON-serializable')\n }\n\n const serialized = JSON.parse(json) as unknown\n // Preserve string content verbatim. MCP clients pass this text directly to the calling agent.\n const result: {\n content: [{ type: 'text'; text: string }]\n structuredContent?: Record<string, unknown>\n isError: false\n } = {\n content: [{ type: 'text', text: typeof serialized === 'string' ? serialized : json }],\n isError: false,\n }\n if (serialized !== null && typeof serialized === 'object' && !Array.isArray(serialized)) {\n result.structuredContent = serialized as Record<string, unknown>\n }\n return result\n}\n\nfunction rpcResult(id: number | string | null, result: unknown): JsonRpcResponse {\n return { jsonrpc: '2.0', id, result }\n}\n\nfunction rpcError(\n id: number | string | null,\n code: number,\n message: string,\n data?: unknown,\n): JsonRpcResponse {\n return {\n jsonrpc: '2.0',\n id,\n error: data === undefined ? { code, message } : { code, message, data },\n }\n}\n\nfunction writeResponse(output: NodeJS.WritableStream, response: JsonRpcResponse): void {\n output.write(`${JSON.stringify(response)}\\n`)\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Ct as ProvisionSupervisorConnection, Dt as provisionSupervisor, Et as SupervisorCleanupReceipt, Tt as ProvisionedSupervisor, wt as ProvisionSupervisorRequest } from "../index-CU2mlMfc.js";
1
+ import { Ct as ProvisionSupervisorConnection, Dt as provisionSupervisor, Et as SupervisorCleanupReceipt, Tt as ProvisionedSupervisor, wt as ProvisionSupervisorRequest } from "../index-D2ipSqkP.js";
2
2
  //#region src/tui/top-app.d.ts
3
3
  /**
4
4
  * The interactive side of the supervisor-run TUI: a keypress/mouse loop over the frames