@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.
- package/dist/checkpoint-timer.test.d.ts +2 -0
- package/dist/checkpoint-timer.test.d.ts.map +1 -0
- package/dist/checkpoint-timer.test.js +77 -0
- package/dist/checkpoint-timer.test.js.map +1 -0
- package/dist/cli.js +15 -6
- package/dist/cli.js.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/git-sync.d.ts +1 -1
- package/dist/git-sync.d.ts.map +1 -1
- package/dist/git-sync.js +17 -29
- package/dist/git-sync.js.map +1 -1
- package/dist/git-sync.test.d.ts +2 -0
- package/dist/git-sync.test.d.ts.map +1 -0
- package/dist/git-sync.test.js +181 -0
- package/dist/git-sync.test.js.map +1 -0
- package/dist/lambda-microvm-entrypoint.js +22 -8
- package/dist/lambda-microvm-entrypoint.js.map +1 -1
- package/dist/lifecycle.test.d.ts +2 -0
- package/dist/lifecycle.test.d.ts.map +1 -0
- package/dist/lifecycle.test.js +46 -0
- package/dist/lifecycle.test.js.map +1 -0
- package/dist/link.d.ts.map +1 -1
- package/dist/link.js +6 -4
- package/dist/link.js.map +1 -1
- package/dist/protocol.d.ts +14 -4
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +7 -1
- package/dist/protocol.js.map +1 -1
- package/dist/protocol.test.js +6 -0
- package/dist/protocol.test.js.map +1 -1
- package/dist/research/filingramp-contract.d.ts +45 -0
- package/dist/research/filingramp-contract.d.ts.map +1 -0
- package/dist/research/filingramp-contract.js +277 -0
- package/dist/research/filingramp-contract.js.map +1 -0
- package/dist/research/filingramp-contract.test.d.ts +2 -0
- package/dist/research/filingramp-contract.test.d.ts.map +1 -0
- package/dist/research/filingramp-contract.test.js +76 -0
- package/dist/research/filingramp-contract.test.js.map +1 -0
- package/dist/research/filingramp-tools.d.ts +1 -1
- package/dist/research/filingramp-tools.d.ts.map +1 -1
- package/dist/research/filingramp-tools.js +158 -47
- package/dist/research/filingramp-tools.js.map +1 -1
- package/dist/research/filingramp-tools.test.d.ts +2 -0
- package/dist/research/filingramp-tools.test.d.ts.map +1 -0
- package/dist/research/filingramp-tools.test.js +99 -0
- package/dist/research/filingramp-tools.test.js.map +1 -0
- package/dist/research/prompt.d.ts +4 -0
- package/dist/research/prompt.d.ts.map +1 -1
- package/dist/research/prompt.js +15 -4
- package/dist/research/prompt.js.map +1 -1
- package/dist/research/scope.d.ts +22 -8
- package/dist/research/scope.d.ts.map +1 -1
- package/dist/research/scope.js +49 -15
- package/dist/research/scope.js.map +1 -1
- package/dist/research/scope.test.js +47 -6
- package/dist/research/scope.test.js.map +1 -1
- package/dist/runtime.d.ts +2 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +20 -3
- package/dist/runtime.js.map +1 -1
- package/dist/session.d.ts +6 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +103 -47
- package/dist/session.js.map +1 -1
- package/dist/tools/fs-tools.d.ts +1 -0
- package/dist/tools/fs-tools.d.ts.map +1 -1
- package/dist/tools/fs-tools.js +11 -2
- package/dist/tools/fs-tools.js.map +1 -1
- package/dist/tools/fs-tools.test.d.ts +2 -0
- package/dist/tools/fs-tools.test.d.ts.map +1 -0
- package/dist/tools/fs-tools.test.js +41 -0
- package/dist/tools/fs-tools.test.js.map +1 -0
- 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"}
|
package/dist/link.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"
|
|
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":";;
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -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
|
-
/**
|
|
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
|
-
|
|
99
|
-
|
|
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
|
|
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";
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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',
|
package/dist/protocol.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/protocol.test.js
CHANGED
|
@@ -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,
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"filingramp-contract.test.d.ts","sourceRoot":"","sources":["../../src/research/filingramp-contract.test.ts"],"names":[],"mappings":""}
|