@multiplayer-app/agent 0.1.5 → 0.1.7

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 (74) hide show
  1. package/dist/checkpoint-timer.test.d.ts +2 -0
  2. package/dist/checkpoint-timer.test.d.ts.map +1 -0
  3. package/dist/checkpoint-timer.test.js +77 -0
  4. package/dist/checkpoint-timer.test.js.map +1 -0
  5. package/dist/cli.js +15 -6
  6. package/dist/cli.js.map +1 -1
  7. package/dist/config.js +2 -2
  8. package/dist/config.js.map +1 -1
  9. package/dist/git-sync.d.ts +1 -1
  10. package/dist/git-sync.d.ts.map +1 -1
  11. package/dist/git-sync.js +17 -29
  12. package/dist/git-sync.js.map +1 -1
  13. package/dist/git-sync.test.d.ts +2 -0
  14. package/dist/git-sync.test.d.ts.map +1 -0
  15. package/dist/git-sync.test.js +181 -0
  16. package/dist/git-sync.test.js.map +1 -0
  17. package/dist/lambda-microvm-entrypoint.js +22 -8
  18. package/dist/lambda-microvm-entrypoint.js.map +1 -1
  19. package/dist/lifecycle.test.d.ts +2 -0
  20. package/dist/lifecycle.test.d.ts.map +1 -0
  21. package/dist/lifecycle.test.js +46 -0
  22. package/dist/lifecycle.test.js.map +1 -0
  23. package/dist/link.d.ts.map +1 -1
  24. package/dist/link.js +6 -4
  25. package/dist/link.js.map +1 -1
  26. package/dist/protocol.d.ts +14 -4
  27. package/dist/protocol.d.ts.map +1 -1
  28. package/dist/protocol.js +7 -1
  29. package/dist/protocol.js.map +1 -1
  30. package/dist/protocol.test.js +6 -0
  31. package/dist/protocol.test.js.map +1 -1
  32. package/dist/research/filingramp-contract.d.ts +45 -0
  33. package/dist/research/filingramp-contract.d.ts.map +1 -0
  34. package/dist/research/filingramp-contract.js +277 -0
  35. package/dist/research/filingramp-contract.js.map +1 -0
  36. package/dist/research/filingramp-contract.test.d.ts +2 -0
  37. package/dist/research/filingramp-contract.test.d.ts.map +1 -0
  38. package/dist/research/filingramp-contract.test.js +76 -0
  39. package/dist/research/filingramp-contract.test.js.map +1 -0
  40. package/dist/research/filingramp-tools.d.ts +1 -1
  41. package/dist/research/filingramp-tools.d.ts.map +1 -1
  42. package/dist/research/filingramp-tools.js +158 -47
  43. package/dist/research/filingramp-tools.js.map +1 -1
  44. package/dist/research/filingramp-tools.test.d.ts +2 -0
  45. package/dist/research/filingramp-tools.test.d.ts.map +1 -0
  46. package/dist/research/filingramp-tools.test.js +99 -0
  47. package/dist/research/filingramp-tools.test.js.map +1 -0
  48. package/dist/research/prompt.d.ts +4 -0
  49. package/dist/research/prompt.d.ts.map +1 -1
  50. package/dist/research/prompt.js +15 -4
  51. package/dist/research/prompt.js.map +1 -1
  52. package/dist/research/scope.d.ts +22 -8
  53. package/dist/research/scope.d.ts.map +1 -1
  54. package/dist/research/scope.js +49 -15
  55. package/dist/research/scope.js.map +1 -1
  56. package/dist/research/scope.test.js +47 -6
  57. package/dist/research/scope.test.js.map +1 -1
  58. package/dist/runtime.d.ts +2 -0
  59. package/dist/runtime.d.ts.map +1 -1
  60. package/dist/runtime.js +20 -3
  61. package/dist/runtime.js.map +1 -1
  62. package/dist/session.d.ts +6 -1
  63. package/dist/session.d.ts.map +1 -1
  64. package/dist/session.js +103 -47
  65. package/dist/session.js.map +1 -1
  66. package/dist/tools/fs-tools.d.ts +1 -0
  67. package/dist/tools/fs-tools.d.ts.map +1 -1
  68. package/dist/tools/fs-tools.js +11 -2
  69. package/dist/tools/fs-tools.js.map +1 -1
  70. package/dist/tools/fs-tools.test.d.ts +2 -0
  71. package/dist/tools/fs-tools.test.d.ts.map +1 -0
  72. package/dist/tools/fs-tools.test.js +41 -0
  73. package/dist/tools/fs-tools.test.js.map +1 -0
  74. package/package.json +1 -1
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const strict_1 = __importDefault(require("node:assert/strict"));
7
+ const node_test_1 = require("node:test");
8
+ const runtime_1 = require("./runtime");
9
+ (0, node_test_1.describe)('Lambda suspend/terminate checkpoint', () => {
10
+ for (const hook of ['suspend', 'terminate']) {
11
+ (0, node_test_1.it)(`waits for both startup and Git before completing ${hook}`, async () => {
12
+ let started;
13
+ let pushed;
14
+ let finished = false;
15
+ const startup = new Promise((resolve) => {
16
+ started = resolve;
17
+ });
18
+ const push = new Promise((resolve) => {
19
+ pushed = resolve;
20
+ });
21
+ const request = (0, runtime_1.checkpointBeforeFreeze)(startup, hook).then(() => {
22
+ finished = true;
23
+ });
24
+ await Promise.resolve();
25
+ strict_1.default.equal(finished, false);
26
+ started({ session: { checkpoint: async (reason) => {
27
+ strict_1.default.equal(reason, hook);
28
+ await push;
29
+ } } });
30
+ await Promise.resolve();
31
+ strict_1.default.equal(finished, false);
32
+ pushed();
33
+ await request;
34
+ strict_1.default.equal(finished, true);
35
+ });
36
+ }
37
+ (0, node_test_1.it)('rejects the lifecycle request if startup or the Git push fails', async () => {
38
+ await strict_1.default.rejects((0, runtime_1.checkpointBeforeFreeze)(undefined, 'suspend'), /has not started/);
39
+ await strict_1.default.rejects((0, runtime_1.checkpointBeforeFreeze)(Promise.reject(new Error('restore failed')), 'suspend'), /restore failed/);
40
+ const agent = { session: { checkpoint: async () => {
41
+ throw new Error('push failed');
42
+ } } };
43
+ await strict_1.default.rejects((0, runtime_1.checkpointBeforeFreeze)(Promise.resolve(agent), 'terminate'), /push failed/);
44
+ });
45
+ });
46
+ //# sourceMappingURL=lifecycle.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.test.js","sourceRoot":"","sources":["../src/lifecycle.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAuC;AACvC,yCAAwC;AACxC,uCAAqE;AAErE,IAAA,oBAAQ,EAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;QAC5C,IAAA,cAAE,EAAC,oDAAoD,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;YACxE,IAAI,OAAuC,CAAA;YAC3C,IAAI,MAAmB,CAAA;YACvB,IAAI,QAAQ,GAAG,KAAK,CAAA;YACpB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,EAAE;gBACpD,OAAO,GAAG,OAAO,CAAA;YACnB,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACzC,MAAM,GAAG,OAAO,CAAA;YAClB,CAAC,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,IAAA,gCAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC9D,QAAQ,GAAG,IAAI,CAAA;YACjB,CAAC,CAAC,CAAA;YACF,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;YACvB,gBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAC7B,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;wBACxD,gBAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;wBAC1B,MAAM,IAAI,CAAA;oBACZ,CAAC,EAAE,EAA6B,CAAC,CAAA;YACjC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;YACvB,gBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAC7B,MAAM,EAAE,CAAA;YACR,MAAM,OAAO,CAAA;YACb,gBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAA,cAAE,EAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,gBAAM,CAAC,OAAO,CAAC,IAAA,gCAAsB,EAAC,SAAS,EAAE,SAAS,CAAC,EAAE,iBAAiB,CAAC,CAAA;QACrF,MAAM,gBAAM,CAAC,OAAO,CAAC,IAAA,gCAAsB,EAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,gBAAgB,CAAC,CAAA;QACtH,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE;oBAChD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;gBAChC,CAAC,EAAE,EAA6B,CAAA;QAChC,MAAM,gBAAM,CAAC,OAAO,CAAC,IAAA,gCAAsB,EAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,CAAA;IAClG,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,mBAAmB,EAExB,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAA;AAMnB,MAAM,MAAM,aAAa,GAAG,iBAAiB,SAAS,MAAM,CAAC,GACzD,CAAC,SAAS;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7D,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,WAAW,CAAC,GAC1C,KAAK,GACP,KAAK,CAAA;AAET,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAEnF,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;IAChC,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IACxC,2FAA2F;IAC3F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAMD,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,WAAW,CAoEb"}
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,mBAAmB,EAExB,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAA;AAMnB,MAAM,MAAM,aAAa,GAAG,iBAAiB,SAAS,MAAM,CAAC,GACzD,CAAC,SAAS;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7D,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,WAAW,CAAC,GAC1C,KAAK,GACP,KAAK,CAAA;AAET,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAEnF,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;IAChC,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IACxC,2FAA2F;IAC3F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAMD,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,WAAW,CAqEb"}
package/dist/link.js CHANGED
@@ -7,20 +7,22 @@ exports.createSessionLink = createSessionLink;
7
7
  // standalone; a flaky connection never fails the work — socket.io buffers emits across
8
8
  // reconnects and losing a progress event is a lesser problem than aborting a research run.
9
9
  const socket_io_client_1 = require("socket.io-client");
10
+ const crypto_1 = require("crypto");
10
11
  const protocol_1 = require("./protocol");
11
12
  // Grace period before disconnecting in close(), so the last emit (the 'done'/'error' event)
12
13
  // actually reaches the gateway before the process exits.
13
14
  const CLOSE_GRACE_MS = 200;
14
- function stamp(sessionId, seq, event) {
15
- return { ...event, sessionId, seq, timestamp: new Date().toISOString() };
15
+ function stamp(sessionId, instanceId, seq, event) {
16
+ return { ...event, sessionId, instanceId, seq, timestamp: new Date().toISOString() };
16
17
  }
17
18
  function createSessionLink(sessionId, socketUrl, socketToken) {
18
19
  let seq = 0;
20
+ const instanceId = (0, crypto_1.randomUUID)();
19
21
  let handler;
20
22
  if (!socketUrl) {
21
23
  return {
22
24
  send(event) {
23
- console.log('[link]', JSON.stringify(stamp(sessionId, ++seq, event)));
25
+ console.log('[link]', JSON.stringify(stamp(sessionId, instanceId, ++seq, event)));
24
26
  },
25
27
  onCommand(next) {
26
28
  handler = next;
@@ -65,7 +67,7 @@ function createSessionLink(sessionId, socketUrl, socketToken) {
65
67
  });
66
68
  return {
67
69
  send(event) {
68
- socket.emit(protocol_1.AGENT_SESSION_EVENT, stamp(sessionId, ++seq, event));
70
+ socket.emit(protocol_1.AGENT_SESSION_EVENT, stamp(sessionId, instanceId, ++seq, event));
69
71
  },
70
72
  onCommand(next) {
71
73
  handler = next;
package/dist/link.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":";;AAuCA,8CAyEC;AAhHD,2FAA2F;AAC3F,qFAAqF;AACrF,2FAA2F;AAC3F,uFAAuF;AACvF,2FAA2F;AAC3F,uDAA8D;AAC9D,mCAAmC;AACnC,yCAMmB;AAEnB,4FAA4F;AAC5F,yDAAyD;AACzD,MAAM,cAAc,GAAG,GAAG,CAAA;AAkB1B,SAAS,KAAK,CAAC,SAAiB,EAAE,UAAkB,EAAE,GAAW,EAAE,KAAoB;IACrF,OAAO,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAuB,CAAA;AAC3G,CAAC;AAED,SAAgB,iBAAiB,CAC/B,SAAiB,EACjB,SAA6B,EAC7B,WAA+B;IAE/B,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,MAAM,UAAU,GAAG,IAAA,mBAAU,GAAE,CAAA;IAC/B,IAAI,OAAmC,CAAA;IAEvC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;YACL,IAAI,CAAC,KAAK;gBACR,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;YACnF,CAAC;YACD,SAAS,CAAC,IAAI;gBACZ,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;YACD,KAAK,CAAC,KAAK,KAAI,CAAC;YAChB,KAAK,CAAC,KAAK,KAAI,CAAC;SACjB,CAAA;IACH,CAAC;IAED,6EAA6E;IAC7E,2FAA2F;IAC3F,sDAAsD;IACtD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,YAAY,CAAA;IAChE,MAAM,MAAM,GAAW,IAAA,qBAAQ,EAAC,MAAM,CAAC,MAAM,EAAE;QAC7C,IAAI;QACJ,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE;QACvC,YAAY,EAAE,IAAI;QAClB,oBAAoB,EAAE,KAAM;KAC7B,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC9C,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QACvC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAY,EAAE,EAAE;YAC5C,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;YAC7D,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IACnG,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAA;IAEjF,MAAM,CAAC,EAAE,CAAC,gCAAqB,EAAE,CAAC,OAA4B,EAAE,GAA6C,EAAE,EAAE;QAC/G,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QACD,OAAO,CAAC,OAAO,EAAE;aACd,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,OAAO,CAAC,CAAC;aAC9B,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;aAC/B,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;YAChD,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,CAAC,KAAK;YACR,MAAM,CAAC,IAAI,CAAC,8BAAmB,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAC9E,CAAC;QACD,SAAS,CAAC,IAAI;YACZ,OAAO,GAAG,IAAI,CAAA;QAChB,CAAC;QACD,KAAK;YACH,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,KAAK,CAAC,KAAK;YACT,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAA;YACnE,MAAM,CAAC,UAAU,EAAE,CAAA;QACrB,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -40,6 +40,8 @@ export type AgentSessionCommand =
40
40
  /** Flush conversation + workspace to the git server now (before suspend / stop). */
41
41
  | {
42
42
  type: 'checkpoint';
43
+ requestId?: string;
44
+ waitForTurn?: boolean;
43
45
  };
44
46
  export interface AgentSessionCommandAck {
45
47
  ok: boolean;
@@ -47,6 +49,8 @@ export interface AgentSessionCommandAck {
47
49
  }
48
50
  interface BaseEvent {
49
51
  sessionId: string;
52
+ /** Unique per guest process, so a replacement VM can restart its sequence at one. */
53
+ instanceId?: string;
50
54
  /** Monotonic per process; lets the receiver de-duplicate and order events across replicas. */
51
55
  seq: number;
52
56
  timestamp: string;
@@ -91,12 +95,16 @@ export type AgentSessionEvent = BaseEvent & (
91
95
  toolCallId?: string;
92
96
  steps: AgentProgressStep[];
93
97
  }
94
- /** The agent needs the user before it can continue (confirm a large population, pick a scope). */
98
+ /**
99
+ * The request_clarification call `toolCallId` needs the user before the agent can continue.
100
+ * The platform turns that call into a pending user action and sends the answer back as the
101
+ * next `message` command.
102
+ */
95
103
  | {
96
104
  type: 'question';
97
105
  messageId: string;
98
- text: string;
99
- options?: string[];
106
+ toolCallId: string;
107
+ question: string;
100
108
  } | {
101
109
  type: 'usage';
102
110
  messageId: string;
@@ -112,6 +120,7 @@ export type AgentSessionEvent = BaseEvent & (
112
120
  | {
113
121
  type: 'checkpointed';
114
122
  commit?: string;
123
+ requestId?: string;
115
124
  } | {
116
125
  type: 'done';
117
126
  messageId: string;
@@ -130,6 +139,7 @@ export type AgentSessionEvent = BaseEvent & (
130
139
  text: string;
131
140
  });
132
141
  export type AgentSessionEventType = AgentSessionEvent['type'];
142
+ export declare function agentSessionEventKey(event: AgentSessionEvent): string;
133
143
  export declare const AGENT_SESSION_EVENT_TYPES: readonly AgentSessionEventType[];
134
144
  export declare function isAgentSessionEvent(value: unknown): value is AgentSessionEvent;
135
145
  export declare const AGENT_ENV: {
@@ -163,7 +173,7 @@ export declare const AGENT_ENV: {
163
173
  /** 'true' when the account may query industry (public) filings. */
164
174
  readonly FILINGRAMP_INDUSTRY_DATA: "FILINGRAMP_INDUSTRY_DATA";
165
175
  /** JSON ResearchScope the session was created with. */
166
- readonly RESEARCH_SCOPE_JSON: "RESEARCH_SCOPE_JSON";
176
+ readonly FILINGRAMP_RESEARCH_SCOPE_JSON: "FILINGRAMP_RESEARCH_SCOPE_JSON";
167
177
  readonly GIT_SERVER_URL: "GIT_SERVER_URL";
168
178
  readonly GIT_REPOSITORY: "GIT_REPOSITORY";
169
179
  readonly GIT_REPOSITORY_DIR: "GIT_REPOSITORY_DIR";
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,mBAAmB,EAAG,qBAA8B,CAAA;AACjE,eAAO,MAAM,qBAAqB,EAAG,uBAAgC,CAAA;AAErE,kGAAkG;AAClG,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,gGAAgG;AAChG,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;IAChD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,oGAAoG;AACpG,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,mBAAmB;AAC7B,0FAA0F;AACxF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAA;CAAE;AAC9F,wFAAwF;GACtF;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE;AACnB,oFAAoF;GAClF;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAA;AAE1B,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,UAAU,SAAS;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,8FAA8F;IAC9F,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,iBAAiB,GAAG,SAAS,GACvC;AACE,4EAA4E;AAC1E;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AACjF,mDAAmD;GACjD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACpG;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;AACvG,8FAA8F;GAC5F;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,iBAAiB,EAAE,CAAA;CAAE;AAC1F,kGAAkG;GAChG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE;AACzD,gDAAgD;GAC9C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAAE;AAClE,4DAA4D;GAC1D;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAEtD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CACpC,CAAA;AAEH,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;AAE7D,eAAO,MAAM,yBAAyB,EAAE,SAAS,qBAAqB,EAgBrE,CAAA;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAQ9E;AAOD,eAAO,MAAM,SAAS;;IAEpB,uFAAuF;;IAEvF,wCAAwC;;;;IAIxC,6DAA6D;;IAE7D,wFAAwF;;;;IAIxF,aAAa;;IAEb,gDAAgD;;;IAGhD,2CAA2C;;;IAG3C,wFAAwF;;IAExF,qFAAqF;;IAErF,aAAa;;IAEb,mEAAmE;;IAEnE,uDAAuD;;;;;IAKvD,oFAAoF;;IAEpF,aAAa;;CAEL,CAAA;AAEV,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAQlD,CAAA"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/dist/protocol.js CHANGED
@@ -11,6 +11,7 @@
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.AGENT_SECRET_ENV_KEYS = exports.AGENT_ENV = exports.AGENT_SESSION_EVENT_TYPES = exports.AGENT_SESSION_COMMAND = exports.AGENT_SESSION_EVENT = void 0;
13
13
  exports.agentSessionRoom = agentSessionRoom;
14
+ exports.agentSessionEventKey = agentSessionEventKey;
14
15
  exports.isAgentSessionEvent = isAgentSessionEvent;
15
16
  exports.AGENT_SESSION_EVENT = 'agent-session:event';
16
17
  exports.AGENT_SESSION_COMMAND = 'agent-session:command';
@@ -18,6 +19,11 @@ exports.AGENT_SESSION_COMMAND = 'agent-session:command';
18
19
  function agentSessionRoom(sessionId) {
19
20
  return `agent-session:${sessionId}`;
20
21
  }
22
+ function agentSessionEventKey(event) {
23
+ var _a;
24
+ // Timestamp fallback also supports guest images built before instanceId was added.
25
+ return `agent-session:evt:${event.sessionId}:${(_a = event.instanceId) !== null && _a !== void 0 ? _a : event.timestamp}:${event.seq}`;
26
+ }
21
27
  exports.AGENT_SESSION_EVENT_TYPES = [
22
28
  'ready',
23
29
  'turn_start',
@@ -78,7 +84,7 @@ exports.AGENT_ENV = {
78
84
  /** 'true' when the account may query industry (public) filings. */
79
85
  FILINGRAMP_INDUSTRY_DATA: 'FILINGRAMP_INDUSTRY_DATA',
80
86
  /** JSON ResearchScope the session was created with. */
81
- RESEARCH_SCOPE_JSON: 'RESEARCH_SCOPE_JSON',
87
+ FILINGRAMP_RESEARCH_SCOPE_JSON: 'FILINGRAMP_RESEARCH_SCOPE_JSON',
82
88
  GIT_SERVER_URL: 'GIT_SERVER_URL',
83
89
  GIT_REPOSITORY: 'GIT_REPOSITORY',
84
90
  GIT_REPOSITORY_DIR: 'GIT_REPOSITORY_DIR',
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":";AAAA,yFAAyF;AACzF,6FAA6F;AAC7F,wFAAwF;AACxF,8FAA8F;AAC9F,wEAAwE;AACxE,EAAE;AACF,8CAA8C;AAC9C,kFAAkF;AAClF,6DAA6D;;;AAM7D,4CAEC;AA+FD,kDAQC;AA7GY,QAAA,mBAAmB,GAAG,qBAA8B,CAAA;AACpD,QAAA,qBAAqB,GAAG,uBAAgC,CAAA;AAErE,kGAAkG;AAClG,SAAgB,gBAAgB,CAAC,SAAiB;IAChD,OAAO,iBAAiB,SAAS,EAAE,CAAA;AACrC,CAAC;AA6EY,QAAA,yBAAyB,GAAqC;IACzE,OAAO;IACP,YAAY;IACZ,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,UAAU;IACV,UAAU;IACV,OAAO;IACP,OAAO;IACP,cAAc;IACd,MAAM;IACN,OAAO;IACP,WAAW;IACX,SAAS;CACV,CAAA;AAED,SAAgB,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACrD,MAAM,KAAK,GAAG,KAAmC,CAAA;IACjD,OAAO,CACL,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC7B,iCAA+C,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CACtE,CAAA;AACH,CAAC;AAED,8FAA8F;AAC9F,8FAA8F;AAC9F,+FAA+F;AAC/F,iDAAiD;AAEpC,QAAA,SAAS,GAAG;IACvB,UAAU,EAAE,YAAY;IACxB,uFAAuF;IACvF,UAAU,EAAE,YAAY;IACxB,wCAAwC;IACxC,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,6DAA6D;IAC7D,sBAAsB,EAAE,wBAAwB;IAChD,wFAAwF;IACxF,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,gBAAgB,EAAE,kBAAkB;IACpC,aAAa;IACb,kBAAkB,EAAE,oBAAoB;IACxC,gDAAgD;IAChD,kBAAkB,EAAE,oBAAoB;IACxC,iBAAiB,EAAE,mBAAmB;IACtC,2CAA2C;IAC3C,gBAAgB,EAAE,kBAAkB;IACpC,uBAAuB,EAAE,yBAAyB;IAClD,wFAAwF;IACxF,qBAAqB,EAAE,uBAAuB;IAC9C,qFAAqF;IACrF,oBAAoB,EAAE,sBAAsB;IAC5C,aAAa;IACb,wBAAwB,EAAE,0BAA0B;IACpD,mEAAmE;IACnE,wBAAwB,EAAE,0BAA0B;IACpD,uDAAuD;IACvD,mBAAmB,EAAE,qBAAqB;IAC1C,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,oBAAoB;IACxC,oFAAoF;IACpF,UAAU,EAAE,YAAY;IACxB,aAAa;IACb,gBAAgB,EAAE,kBAAkB;CAC5B,CAAA;AAEG,QAAA,qBAAqB,GAAsB;IACtD,iBAAS,CAAC,kBAAkB;IAC5B,iBAAS,CAAC,kBAAkB;IAC5B,iBAAS,CAAC,iBAAiB;IAC3B,iBAAS,CAAC,qBAAqB;IAC/B,iBAAS,CAAC,wBAAwB;IAClC,iBAAS,CAAC,gBAAgB;IAC1B,iBAAS,CAAC,gBAAgB;CAC3B,CAAA"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":";AAAA,yFAAyF;AACzF,6FAA6F;AAC7F,wFAAwF;AACxF,8FAA8F;AAC9F,wEAAwE;AACxE,EAAE;AACF,8CAA8C;AAC9C,kFAAkF;AAClF,6DAA6D;;;AAM7D,4CAEC;AAmFD,oDAGC;AAoBD,kDAQC;AAxHY,QAAA,mBAAmB,GAAG,qBAA8B,CAAA;AACpD,QAAA,qBAAqB,GAAG,uBAAgC,CAAA;AAErE,kGAAkG;AAClG,SAAgB,gBAAgB,CAAC,SAAiB;IAChD,OAAO,iBAAiB,SAAS,EAAE,CAAA;AACrC,CAAC;AAmFD,SAAgB,oBAAoB,CAAC,KAAwB;;IAC3D,mFAAmF;IACnF,OAAO,qBAAqB,KAAK,CAAC,SAAS,IAAI,MAAA,KAAK,CAAC,UAAU,mCAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,CAAA;AACnG,CAAC;AAEY,QAAA,yBAAyB,GAAqC;IACzE,OAAO;IACP,YAAY;IACZ,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,UAAU;IACV,UAAU;IACV,OAAO;IACP,OAAO;IACP,cAAc;IACd,MAAM;IACN,OAAO;IACP,WAAW;IACX,SAAS;CACV,CAAA;AAED,SAAgB,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACrD,MAAM,KAAK,GAAG,KAAmC,CAAA;IACjD,OAAO,CACL,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;QACnC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC7B,iCAA+C,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CACtE,CAAA;AACH,CAAC;AAED,8FAA8F;AAC9F,8FAA8F;AAC9F,+FAA+F;AAC/F,iDAAiD;AAEpC,QAAA,SAAS,GAAG;IACvB,UAAU,EAAE,YAAY;IACxB,uFAAuF;IACvF,UAAU,EAAE,YAAY;IACxB,wCAAwC;IACxC,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,6DAA6D;IAC7D,sBAAsB,EAAE,wBAAwB;IAChD,wFAAwF;IACxF,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,gBAAgB,EAAE,kBAAkB;IACpC,aAAa;IACb,kBAAkB,EAAE,oBAAoB;IACxC,gDAAgD;IAChD,kBAAkB,EAAE,oBAAoB;IACxC,iBAAiB,EAAE,mBAAmB;IACtC,2CAA2C;IAC3C,gBAAgB,EAAE,kBAAkB;IACpC,uBAAuB,EAAE,yBAAyB;IAClD,wFAAwF;IACxF,qBAAqB,EAAE,uBAAuB;IAC9C,qFAAqF;IACrF,oBAAoB,EAAE,sBAAsB;IAC5C,aAAa;IACb,wBAAwB,EAAE,0BAA0B;IACpD,mEAAmE;IACnE,wBAAwB,EAAE,0BAA0B;IACpD,uDAAuD;IACvD,8BAA8B,EAAE,gCAAgC;IAChE,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,oBAAoB;IACxC,oFAAoF;IACpF,UAAU,EAAE,YAAY;IACxB,aAAa;IACb,gBAAgB,EAAE,kBAAkB;CAC5B,CAAA;AAEG,QAAA,qBAAqB,GAAsB;IACtD,iBAAS,CAAC,kBAAkB;IAC5B,iBAAS,CAAC,kBAAkB;IAC5B,iBAAS,CAAC,iBAAiB;IAC3B,iBAAS,CAAC,qBAAqB;IAC/B,iBAAS,CAAC,wBAAwB;IAClC,iBAAS,CAAC,gBAAgB;IAC1B,iBAAS,CAAC,gBAAgB;CAC3B,CAAA"}
@@ -7,6 +7,12 @@ const strict_1 = __importDefault(require("node:assert/strict"));
7
7
  const node_test_1 = require("node:test");
8
8
  const protocol_1 = require("./protocol");
9
9
  (0, node_test_1.describe)('agent session protocol', () => {
10
+ (0, node_test_1.it)('deduplicates retransmissions but accepts a replacement guest restarting its sequence', () => {
11
+ const event = { sessionId: 's1', instanceId: 'vm-process-1', seq: 1, timestamp: 't1', type: 'ready', mode: 'session', profile: 'research', restored: true };
12
+ strict_1.default.equal((0, protocol_1.agentSessionEventKey)(event), (0, protocol_1.agentSessionEventKey)({ ...event }));
13
+ strict_1.default.notEqual((0, protocol_1.agentSessionEventKey)(event), (0, protocol_1.agentSessionEventKey)({ ...event, instanceId: 'vm-process-2' }));
14
+ strict_1.default.notEqual((0, protocol_1.agentSessionEventKey)({ ...event, instanceId: undefined }), (0, protocol_1.agentSessionEventKey)({ ...event, instanceId: undefined, timestamp: 't2' }));
15
+ });
10
16
  (0, node_test_1.it)('recognizes well-formed events and rejects the rest', () => {
11
17
  strict_1.default.equal((0, protocol_1.isAgentSessionEvent)({ sessionId: 's1', type: 'text_delta', seq: 1, timestamp: 't', messageId: 'm', text: 'x' }), true);
12
18
  strict_1.default.equal((0, protocol_1.isAgentSessionEvent)({ sessionId: 's1', type: 'bogus' }), false);
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.test.js","sourceRoot":"","sources":["../src/protocol.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAuC;AACvC,yCAAwC;AACxC,yCAAoG;AAEpG,IAAA,oBAAQ,EAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAA,cAAE,EAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,gBAAM,CAAC,KAAK,CAAC,IAAA,8BAAmB,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QACnI,gBAAM,CAAC,KAAK,CAAC,IAAA,8BAAmB,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QAC5E,gBAAM,CAAC,KAAK,CAAC,IAAA,8BAAmB,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QAC1D,gBAAM,CAAC,KAAK,CAAC,IAAA,8BAAmB,EAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,IAAA,cAAE,EAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,gBAAM,CAAC,KAAK,CAAC,IAAA,2BAAgB,EAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,IAAA,cAAE,EAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,KAAK,MAAM,GAAG,IAAI,CAAC,oBAAS,CAAC,wBAAwB,EAAE,oBAAS,CAAC,gBAAgB,EAAE,oBAAS,CAAC,kBAAkB,EAAE,oBAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/I,gBAAM,CAAC,EAAE,CAAC,gCAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,mBAAmB,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"protocol.test.js","sourceRoot":"","sources":["../src/protocol.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAuC;AACvC,yCAAwC;AACxC,yCAAkJ;AAElJ,IAAA,oBAAQ,EAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAA,cAAE,EAAC,sFAAsF,EAAE,GAAG,EAAE;QAC9F,MAAM,KAAK,GAAsB,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QAC9K,gBAAM,CAAC,KAAK,CAAC,IAAA,+BAAoB,EAAC,KAAK,CAAC,EAAE,IAAA,+BAAoB,EAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;QAC7E,gBAAM,CAAC,QAAQ,CAAC,IAAA,+BAAoB,EAAC,KAAK,CAAC,EAAE,IAAA,+BAAoB,EAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,CAAA;QAC5G,gBAAM,CAAC,QAAQ,CAAC,IAAA,+BAAoB,EAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,IAAA,+BAAoB,EAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACxJ,CAAC,CAAC,CAAA;IACF,IAAA,cAAE,EAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,gBAAM,CAAC,KAAK,CAAC,IAAA,8BAAmB,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QACnI,gBAAM,CAAC,KAAK,CAAC,IAAA,8BAAmB,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QAC5E,gBAAM,CAAC,KAAK,CAAC,IAAA,8BAAmB,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QAC1D,gBAAM,CAAC,KAAK,CAAC,IAAA,8BAAmB,EAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,IAAA,cAAE,EAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,gBAAM,CAAC,KAAK,CAAC,IAAA,2BAAgB,EAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,IAAA,cAAE,EAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,KAAK,MAAM,GAAG,IAAI,CAAC,oBAAS,CAAC,wBAAwB,EAAE,oBAAS,CAAC,gBAAgB,EAAE,oBAAS,CAAC,kBAAkB,EAAE,oBAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/I,gBAAM,CAAC,EAAE,CAAC,gCAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,mBAAmB,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,45 @@
1
+ export interface FilingsFilter {
2
+ field: string;
3
+ comparisonOperator: string;
4
+ value: unknown;
5
+ }
6
+ /** What the model may pass: operator optional (the field decides), scalar or list values. */
7
+ export interface FilterInput {
8
+ field: string;
9
+ comparisonOperator?: string;
10
+ value: unknown;
11
+ }
12
+ /** Filing records and summary groupBy use singular names; the filter contract uses plurals. */
13
+ export declare const FILING_FILTER_ALIASES: Record<string, string>;
14
+ export type FilingsEndpoint = 'search' | 'count' | 'summary' | 'objections';
15
+ /** Summary groupBy values (singular), with the plural filter names accepted as aliases. */
16
+ export declare const SUMMARY_GROUP_FIELDS: readonly ["businessType", "company", "createdMonth", "dispositionMonth", "filingType", "source", "state", "statusId", "submittedMonth", "subTypeOfInsurance", "typeOfInsurance"];
17
+ export declare function normalizeSummaryGroupBy(groupBy: string[] | undefined): string[] | undefined;
18
+ /**
19
+ * Filings filters as the API accepts them. Plural names, one array per list field, the operator
20
+ * the field takes; unknown fields and mismatched date/boolean operators fail with the accepted
21
+ * values, so the model corrects the call instead of guessing again.
22
+ */
23
+ export declare function normalizeFilingsFilters(filters: FilterInput[] | undefined, endpoint: FilingsEndpoint): FilingsFilter[];
24
+ export declare const DOCUMENT_INDEXES: readonly ["filings", "objections", "responses", "library_forms", "library_rates", "circulars"];
25
+ export type DocumentIndex = (typeof DOCUMENT_INDEXES)[number];
26
+ /** Resource types a document hit can carry (OpenSearchEnum.Resource.Type in ramp-schemas). */
27
+ export declare const DOCUMENT_RESOURCE_TYPES: readonly ["FILING", "FILING_ATTACHMENT", "FILING_DISPOSITION", "FILING_FORM", "FILING_RATE", "FILING_SUPPORTING", "OBJECTION", "OBJECTION_LETTER", "RESPONSE", "RESPONSE_LETTER", "LIBRARY_FORM_ATTACHMENT", "LIBRARY_RATE_ATTACHMENT", "CIRCULAR_ATTACHMENT", "CIRCULAR_FORM", "CIRCULAR_RATE"];
28
+ export interface DocumentIndexGroup {
29
+ indexes: DocumentIndex[];
30
+ /** Filter fields every index in the group accepts. */
31
+ fields: readonly string[];
32
+ }
33
+ /** One request per set of indexes that share a filter vocabulary (objections and responses do). */
34
+ export declare function documentIndexGroups(indexes: readonly DocumentIndex[]): DocumentIndexGroup[];
35
+ export declare function documentFilterField(field: string): string;
36
+ /**
37
+ * Document filters for one index group. Filters on fields the group does not accept are
38
+ * returned separately instead of failing the request: the model usually means them for the
39
+ * filing indexes in the same call.
40
+ */
41
+ export declare function normalizeDocumentFilters(filters: FilterInput[] | undefined, group: DocumentIndexGroup): {
42
+ filters: FilingsFilter[];
43
+ ignored: string[];
44
+ };
45
+ //# sourceMappingURL=filingramp-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filingramp-contract.d.ts","sourceRoot":"","sources":["../../src/research/filingramp-contract.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,kBAAkB,EAAE,MAAM,CAAA;IAC1B,KAAK,EAAE,OAAO,CAAA;CACf;AAED,6FAA6F;AAC7F,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,KAAK,EAAE,OAAO,CAAA;CACf;AAkBD,+FAA+F;AAC/F,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqBxD,CAAA;AA0CD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAAA;AAsB3E,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,kLAGvB,CAAA;AAeV,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAQ3F;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,eAAe,GAAG,aAAa,EAAE,CAWtH;AAMD,eAAO,MAAM,gBAAgB,gGAAiG,CAAA;AAC9H,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE7D,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,kSAI1B,CAAA;AAwCV,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,sDAAsD;IACtD,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAC1B;AAED,mGAAmG;AACnG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,kBAAkB,EAAE,CAU3F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,WAAW,EAAE,GAAG,SAAS,EAClC,KAAK,EAAE,kBAAkB,GACxB;IAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAYjD"}
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+ // The FilingRamp request contract, enforced before any HTTP call. The filings part mirrors the
3
+ // FilingsFilters card in services/api/src/lib/filingramp-skill-document.ts (the catalog the
4
+ // orchestrator's workers get); the document-search part mirrors ramp-web-api's
5
+ // search.schema.js for POST /content-search/global. Both APIs reject a request outright on one
6
+ // wrong operator or field name, and their Joi messages name positions, not fixes — so the
7
+ // tools normalize what has a single right answer (plural field names, one value instead of a
8
+ // list, the operator a field accepts) and fail early with the accepted values for the rest.
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.DOCUMENT_RESOURCE_TYPES = exports.DOCUMENT_INDEXES = exports.SUMMARY_GROUP_FIELDS = exports.FILING_FILTER_ALIASES = void 0;
11
+ exports.normalizeSummaryGroupBy = normalizeSummaryGroupBy;
12
+ exports.normalizeFilingsFilters = normalizeFilingsFilters;
13
+ exports.documentIndexGroups = documentIndexGroups;
14
+ exports.documentFilterField = documentFilterField;
15
+ exports.normalizeDocumentFilters = normalizeDocumentFilters;
16
+ const list = (defaultOperator) => ({ kind: 'list', operators: ['cn', 'in'], defaultOperator });
17
+ const date = { kind: 'date', operators: ['eq', 'gt', 'gte', 'lt', 'lte'], defaultOperator: 'eq' };
18
+ // ---------------------------------------------------------------------------------------------
19
+ // Filings endpoints: /v2/search/filings, /count, /summary and /objections.
20
+ // ---------------------------------------------------------------------------------------------
21
+ /** Filing records and summary groupBy use singular names; the filter contract uses plurals. */
22
+ exports.FILING_FILTER_ALIASES = {
23
+ state: 'states',
24
+ typeOfInsurance: 'typeOfInsurances',
25
+ subTypeOfInsurance: 'subTypeOfInsurances',
26
+ filingType: 'filingTypes',
27
+ statusId: 'statusIds',
28
+ status: 'statuses',
29
+ company: 'companies',
30
+ businessType: 'businessTypes',
31
+ trackingNumber: 'trackingNumbers',
32
+ author: 'authors',
33
+ reviewer: 'reviewers',
34
+ productName: 'productNames',
35
+ projectName: 'projectNames',
36
+ projectNumber: 'projectNumbers',
37
+ customTrackingNumber: 'customTrackingNumbers',
38
+ stateTrackingNumber: 'stateTrackingNumbers',
39
+ line: 'typeOfInsurances',
40
+ lines: 'typeOfInsurances',
41
+ subLine: 'subTypeOfInsurances',
42
+ subLines: 'subTypeOfInsurances',
43
+ };
44
+ const FILINGS_FIELD_RULES = {
45
+ // Names and labels: "cn" (contains) unless the user asked for an exact match.
46
+ authors: list('cn'),
47
+ companies: list('cn'),
48
+ contacts: list('cn'),
49
+ reviewers: list('cn'),
50
+ primaryReviewers: list('cn'),
51
+ productNames: list('cn'),
52
+ projectNames: list('cn'),
53
+ typeOfInsurances: list('cn'),
54
+ subTypeOfInsurances: list('cn'),
55
+ 'form.formNumbers': list('cn'),
56
+ 'form.formNames': list('cn'),
57
+ 'rate.ruleNumbers': list('cn'),
58
+ 'rate.rateNames': list('cn'),
59
+ 'generalInformation.companyTrackingNumbers': list('cn'),
60
+ // Codes and identifiers: exact.
61
+ states: list('in'),
62
+ statusIds: list('in'),
63
+ statuses: list('in'),
64
+ filingTypes: list('in'),
65
+ businessTypes: list('in'),
66
+ trackingNumbers: list('in'),
67
+ customTrackingNumbers: list('in'),
68
+ stateTrackingNumbers: list('in'),
69
+ projectNumbers: list('in'),
70
+ rampProjectNumbers: list('in'),
71
+ productIds: list('in'),
72
+ projectIds: list('in'),
73
+ workspaceIds: list('in'),
74
+ createdAt: date,
75
+ updatedAt: date,
76
+ dateSubmitted: date,
77
+ 'disposition.dispositionDate': date,
78
+ 'objection.letterDate': { kind: 'date', operators: ['gte', 'lte'], defaultOperator: 'gte' },
79
+ 'objection.respondByDate': { kind: 'date', operators: ['gte', 'lte'], defaultOperator: 'gte' },
80
+ hasObjection: { kind: 'boolean', operators: ['ex'], defaultOperator: 'ex' },
81
+ 'objection.isHidden': { kind: 'boolean', operators: ['eq'], defaultOperator: 'eq' },
82
+ };
83
+ const SEARCH_FIELDS = [
84
+ 'authors', 'companies', 'contacts', 'reviewers', 'primaryReviewers', 'productNames', 'projectNames', 'typeOfInsurances',
85
+ 'subTypeOfInsurances', 'form.formNumbers', 'form.formNames', 'rate.ruleNumbers', 'rate.rateNames',
86
+ 'generalInformation.companyTrackingNumbers', 'states', 'statusIds', 'statuses', 'filingTypes', 'businessTypes',
87
+ 'trackingNumbers', 'customTrackingNumbers', 'stateTrackingNumbers', 'projectNumbers', 'rampProjectNumbers', 'productIds',
88
+ 'projectIds', 'workspaceIds', 'createdAt', 'updatedAt', 'dateSubmitted', 'hasObjection',
89
+ ];
90
+ const FILINGS_ENDPOINT_FIELDS = {
91
+ search: SEARCH_FIELDS,
92
+ count: SEARCH_FIELDS,
93
+ summary: [...SEARCH_FIELDS, 'disposition.dispositionDate'],
94
+ objections: [
95
+ 'authors', 'contacts', 'filingTypes', 'generalInformation.companyTrackingNumbers', 'objection.isHidden',
96
+ 'objection.letterDate', 'objection.respondByDate', 'productIds', 'productNames', 'projectIds', 'projectNames',
97
+ 'projectNumbers', 'rampProjectNumbers', 'reviewers', 'states', 'subTypeOfInsurances', 'trackingNumbers',
98
+ 'typeOfInsurances', 'workspaceIds',
99
+ ],
100
+ };
101
+ /** Summary groupBy values (singular), with the plural filter names accepted as aliases. */
102
+ exports.SUMMARY_GROUP_FIELDS = [
103
+ 'businessType', 'company', 'createdMonth', 'dispositionMonth', 'filingType', 'source', 'state', 'statusId',
104
+ 'submittedMonth', 'subTypeOfInsurance', 'typeOfInsurance',
105
+ ];
106
+ const SUMMARY_GROUP_ALIASES = {
107
+ states: 'state',
108
+ typeOfInsurances: 'typeOfInsurance',
109
+ subTypeOfInsurances: 'subTypeOfInsurance',
110
+ filingTypes: 'filingType',
111
+ statusIds: 'statusId',
112
+ companies: 'company',
113
+ businessTypes: 'businessType',
114
+ sources: 'source',
115
+ line: 'typeOfInsurance',
116
+ subLine: 'subTypeOfInsurance',
117
+ };
118
+ function normalizeSummaryGroupBy(groupBy) {
119
+ if (!(groupBy === null || groupBy === void 0 ? void 0 : groupBy.length))
120
+ return undefined;
121
+ const out = groupBy.map((name) => { var _a; return (_a = SUMMARY_GROUP_ALIASES[name.trim()]) !== null && _a !== void 0 ? _a : name.trim(); });
122
+ const unknown = out.filter((name) => !exports.SUMMARY_GROUP_FIELDS.includes(name));
123
+ if (unknown.length) {
124
+ throw new Error(`summarize_filings groupBy accepts ${exports.SUMMARY_GROUP_FIELDS.join(', ')}; not ${unknown.join(', ')}.`);
125
+ }
126
+ return [...new Set(out)];
127
+ }
128
+ /**
129
+ * Filings filters as the API accepts them. Plural names, one array per list field, the operator
130
+ * the field takes; unknown fields and mismatched date/boolean operators fail with the accepted
131
+ * values, so the model corrects the call instead of guessing again.
132
+ */
133
+ function normalizeFilingsFilters(filters, endpoint) {
134
+ if (!(filters === null || filters === void 0 ? void 0 : filters.length))
135
+ return [];
136
+ const allowed = FILINGS_ENDPOINT_FIELDS[endpoint];
137
+ return filters.map((filter) => {
138
+ var _a;
139
+ const field = (_a = exports.FILING_FILTER_ALIASES[filter.field.trim()]) !== null && _a !== void 0 ? _a : filter.field.trim();
140
+ const rule = FILINGS_FIELD_RULES[field];
141
+ if (!rule || !allowed.includes(field)) {
142
+ throw new Error(`"${filter.field}" is not a filter field here. Accepted: ${allowed.join(', ')}.`);
143
+ }
144
+ return normalizeWithRule({ ...filter, field }, rule);
145
+ });
146
+ }
147
+ // ---------------------------------------------------------------------------------------------
148
+ // Document search: POST /v1/content-search/global (OpenSearch).
149
+ // ---------------------------------------------------------------------------------------------
150
+ exports.DOCUMENT_INDEXES = ['filings', 'objections', 'responses', 'library_forms', 'library_rates', 'circulars'];
151
+ /** Resource types a document hit can carry (OpenSearchEnum.Resource.Type in ramp-schemas). */
152
+ exports.DOCUMENT_RESOURCE_TYPES = [
153
+ 'FILING', 'FILING_ATTACHMENT', 'FILING_DISPOSITION', 'FILING_FORM', 'FILING_RATE', 'FILING_SUPPORTING',
154
+ 'OBJECTION', 'OBJECTION_LETTER', 'RESPONSE', 'RESPONSE_LETTER', 'LIBRARY_FORM_ATTACHMENT', 'LIBRARY_RATE_ATTACHMENT',
155
+ 'CIRCULAR_ATTACHMENT', 'CIRCULAR_FORM', 'CIRCULAR_RATE',
156
+ ];
157
+ const COMMON_RECORD_FIELDS = ['accountIds', 'archived', 'createdAt', 'updatedAt', 'productIds', 'projectIds', 'workspaceIds', 'resourceTypes'];
158
+ const FILING_RECORD_FIELDS = [...COMMON_RECORD_FIELDS, 'authors', 'contacts', 'projectNumbers', 'states', 'statuses', 'subTypeOfInsurance', 'typeOfInsurance'];
159
+ /** Filter fields each index accepts; a filter outside the set fails the whole request. */
160
+ const DOCUMENT_INDEX_FIELDS = {
161
+ filings: [...FILING_RECORD_FIELDS, 'dateSubmitted', 'filingTypes', 'reviewers'],
162
+ objections: [...FILING_RECORD_FIELDS, 'respondByDate', 'submitterNames'],
163
+ responses: [...FILING_RECORD_FIELDS, 'respondByDate', 'submitterNames'],
164
+ circulars: ['archived', 'createdAt', 'updatedAt', 'resourceTypes', 'bureauActions', 'bureaus', 'circularNumbers', 'dates', 'entityTypes', 'isPublished', 'linesOfBusiness', 'titles', 'types'],
165
+ library_forms: ['resourceTypes', 'editionDates', 'formNumbers'],
166
+ library_rates: ['resourceTypes'],
167
+ };
168
+ const DOCUMENT_DATE_FIELDS = new Set(['createdAt', 'dates', 'dateSubmitted', 'respondByDate', 'updatedAt']);
169
+ const DOCUMENT_BOOLEAN_FIELDS = new Set(['archived', 'isPublished']);
170
+ const DOCUMENT_PARTIAL_FIELDS = new Set(['authors', 'contacts', 'projectNumbers', 'reviewers', 'submitterNames', 'titles']);
171
+ /** The filings API's plurals and record names, mapped onto OpenSearch's vocabulary. */
172
+ const DOCUMENT_FILTER_ALIASES = {
173
+ typeOfInsurances: 'typeOfInsurance',
174
+ subTypeOfInsurances: 'subTypeOfInsurance',
175
+ line: 'typeOfInsurance',
176
+ lines: 'typeOfInsurance',
177
+ state: 'states',
178
+ status: 'statuses',
179
+ filingType: 'filingTypes',
180
+ resourceType: 'resourceTypes',
181
+ productId: 'productIds',
182
+ projectId: 'projectIds',
183
+ };
184
+ function documentFieldRule(field) {
185
+ if (DOCUMENT_BOOLEAN_FIELDS.has(field))
186
+ return { kind: 'boolean', operators: ['eq'], defaultOperator: 'eq' };
187
+ if (DOCUMENT_DATE_FIELDS.has(field))
188
+ return date;
189
+ if (DOCUMENT_PARTIAL_FIELDS.has(field))
190
+ return { kind: 'list', operators: ['cn'], defaultOperator: 'cn' };
191
+ return { kind: 'list', operators: ['in'], defaultOperator: 'in' };
192
+ }
193
+ /** One request per set of indexes that share a filter vocabulary (objections and responses do). */
194
+ function documentIndexGroups(indexes) {
195
+ const groups = new Map();
196
+ for (const index of indexes) {
197
+ const fields = DOCUMENT_INDEX_FIELDS[index];
198
+ const key = fields.join('|');
199
+ const group = groups.get(key);
200
+ if (group)
201
+ group.indexes.push(index);
202
+ else
203
+ groups.set(key, { indexes: [index], fields });
204
+ }
205
+ return [...groups.values()];
206
+ }
207
+ function documentFilterField(field) {
208
+ var _a;
209
+ const trimmed = field.trim();
210
+ return (_a = DOCUMENT_FILTER_ALIASES[trimmed]) !== null && _a !== void 0 ? _a : trimmed;
211
+ }
212
+ /**
213
+ * Document filters for one index group. Filters on fields the group does not accept are
214
+ * returned separately instead of failing the request: the model usually means them for the
215
+ * filing indexes in the same call.
216
+ */
217
+ function normalizeDocumentFilters(filters, group) {
218
+ const out = [];
219
+ const ignored = [];
220
+ for (const filter of filters !== null && filters !== void 0 ? filters : []) {
221
+ const field = documentFilterField(filter.field);
222
+ if (!group.fields.includes(field)) {
223
+ ignored.push(filter.field);
224
+ continue;
225
+ }
226
+ out.push(normalizeWithRule({ ...filter, field }, documentFieldRule(field)));
227
+ }
228
+ return { filters: out, ignored };
229
+ }
230
+ // ---------------------------------------------------------------------------------------------
231
+ function normalizeWithRule(filter, rule) {
232
+ var _a;
233
+ const requested = (_a = filter.comparisonOperator) === null || _a === void 0 ? void 0 : _a.trim();
234
+ switch (rule.kind) {
235
+ case 'list': {
236
+ const raw = Array.isArray(filter.value) ? filter.value : [filter.value];
237
+ let value = raw.map((item) => (item === undefined || item === null ? '' : String(item).trim())).filter(Boolean);
238
+ if (filter.field === 'states')
239
+ value = value.map((state) => state.toUpperCase());
240
+ if (!value.length)
241
+ throw new Error(`"${filter.field}" needs at least one value (a string array).`);
242
+ // "eq" on a list field means an exact match; anything else the field does not take falls
243
+ // back to its default, so a slip in the operator never costs a round trip.
244
+ const operator = requested && rule.operators.includes(requested) ? requested : requested === 'eq' && rule.operators.includes('in') ? 'in' : rule.defaultOperator;
245
+ return { field: filter.field, comparisonOperator: operator, value: [...new Set(value)] };
246
+ }
247
+ case 'date': {
248
+ const operator = requested || rule.defaultOperator;
249
+ if (!rule.operators.includes(operator)) {
250
+ throw new Error(`"${filter.field}" takes one date string with ${rule.operators.join('/')}, not "${operator}".`);
251
+ }
252
+ const value = Array.isArray(filter.value) ? filter.value[0] : filter.value;
253
+ if (typeof value !== 'string' || !value.trim())
254
+ throw new Error(`"${filter.field}" needs one date string (YYYY-MM-DD).`);
255
+ return { field: filter.field, comparisonOperator: operator, value: value.trim() };
256
+ }
257
+ case 'boolean': {
258
+ const operator = requested || rule.defaultOperator;
259
+ if (!rule.operators.includes(operator)) {
260
+ throw new Error(`"${filter.field}" takes a boolean with "${rule.defaultOperator}", not "${operator}".`);
261
+ }
262
+ const value = Array.isArray(filter.value) ? filter.value[0] : filter.value;
263
+ const bool = typeof value === 'boolean' ? value : value === 'true' ? true : value === 'false' ? false : undefined;
264
+ if (bool === undefined)
265
+ throw new Error(`"${filter.field}" needs a boolean value.`);
266
+ return { field: filter.field, comparisonOperator: operator, value: bool };
267
+ }
268
+ case 'number': {
269
+ const operator = requested || rule.defaultOperator;
270
+ const value = Number(Array.isArray(filter.value) ? filter.value[0] : filter.value);
271
+ if (!Number.isFinite(value))
272
+ throw new Error(`"${filter.field}" needs a number.`);
273
+ return { field: filter.field, comparisonOperator: operator, value };
274
+ }
275
+ }
276
+ }
277
+ //# sourceMappingURL=filingramp-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filingramp-contract.js","sourceRoot":"","sources":["../../src/research/filingramp-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=filingramp-contract.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filingramp-contract.test.d.ts","sourceRoot":"","sources":["../../src/research/filingramp-contract.test.ts"],"names":[],"mappings":""}