@indexnetwork/protocol 1.5.1 → 1.6.0-rc.146.1

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 (64) hide show
  1. package/dist/chat/chat.prompt.d.ts.map +1 -1
  2. package/dist/chat/chat.prompt.js +9 -8
  3. package/dist/chat/chat.prompt.js.map +1 -1
  4. package/dist/index.d.ts +9 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +5 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/intent/intent.indexer.d.ts +8 -2
  9. package/dist/intent/intent.indexer.d.ts.map +1 -1
  10. package/dist/intent/intent.indexer.js +18 -7
  11. package/dist/intent/intent.indexer.js.map +1 -1
  12. package/dist/mcp/mcp.server.d.ts +13 -0
  13. package/dist/mcp/mcp.server.d.ts.map +1 -1
  14. package/dist/mcp/mcp.server.js +63 -0
  15. package/dist/mcp/mcp.server.js.map +1 -1
  16. package/dist/network/indexer/indexer.graph.d.ts.map +1 -1
  17. package/dist/network/indexer/indexer.graph.js +12 -1
  18. package/dist/network/indexer/indexer.graph.js.map +1 -1
  19. package/dist/network/network.tools.d.ts.map +1 -1
  20. package/dist/network/network.tools.js +19 -2
  21. package/dist/network/network.tools.js.map +1 -1
  22. package/dist/opportunity/opportunity.evaluator.d.ts +14 -12
  23. package/dist/opportunity/opportunity.evaluator.d.ts.map +1 -1
  24. package/dist/opportunity/opportunity.evaluator.js +9 -1
  25. package/dist/opportunity/opportunity.evaluator.js.map +1 -1
  26. package/dist/opportunity/opportunity.graph.d.ts +1 -1
  27. package/dist/opportunity/opportunity.graph.d.ts.map +1 -1
  28. package/dist/opportunity/opportunity.graph.js +31 -0
  29. package/dist/opportunity/opportunity.graph.js.map +1 -1
  30. package/dist/questioner/questioner.agent.d.ts +29 -0
  31. package/dist/questioner/questioner.agent.d.ts.map +1 -0
  32. package/dist/questioner/questioner.agent.js +120 -0
  33. package/dist/questioner/questioner.agent.js.map +1 -0
  34. package/dist/questioner/questioner.presets.d.ts +21 -0
  35. package/dist/questioner/questioner.presets.d.ts.map +1 -0
  36. package/dist/questioner/questioner.presets.js +21 -0
  37. package/dist/questioner/questioner.presets.js.map +1 -0
  38. package/dist/questioner/questioner.types.d.ts +67 -0
  39. package/dist/questioner/questioner.types.d.ts.map +1 -0
  40. package/dist/questioner/questioner.types.js +2 -0
  41. package/dist/questioner/questioner.types.js.map +1 -0
  42. package/dist/shared/agent/model.config.d.ts +5 -0
  43. package/dist/shared/agent/model.config.d.ts.map +1 -1
  44. package/dist/shared/agent/model.config.js +1 -0
  45. package/dist/shared/agent/model.config.js.map +1 -1
  46. package/dist/shared/agent/tool.helpers.d.ts +3 -0
  47. package/dist/shared/agent/tool.helpers.d.ts.map +1 -1
  48. package/dist/shared/agent/tool.helpers.js +3 -0
  49. package/dist/shared/agent/tool.helpers.js.map +1 -1
  50. package/dist/shared/interfaces/database.interface.d.ts +11 -3
  51. package/dist/shared/interfaces/database.interface.d.ts.map +1 -1
  52. package/dist/shared/interfaces/questioner.interface.d.ts +40 -0
  53. package/dist/shared/interfaces/questioner.interface.d.ts.map +1 -0
  54. package/dist/shared/interfaces/questioner.interface.js +2 -0
  55. package/dist/shared/interfaces/questioner.interface.js.map +1 -0
  56. package/dist/shared/network/metadata.renderer.d.ts +15 -0
  57. package/dist/shared/network/metadata.renderer.d.ts.map +1 -0
  58. package/dist/shared/network/metadata.renderer.js +104 -0
  59. package/dist/shared/network/metadata.renderer.js.map +1 -0
  60. package/dist/shared/schemas/question.schema.d.ts +65 -0
  61. package/dist/shared/schemas/question.schema.d.ts.map +1 -1
  62. package/dist/shared/schemas/question.schema.js +37 -0
  63. package/dist/shared/schemas/question.schema.js.map +1 -1
  64. package/package.json +1 -1
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Protocol-level persistence contract for structured questions generated by
3
+ * the QuestionerAgent. Implementations live in the backend and are injected
4
+ * into ProtocolDeps.
5
+ */
6
+ import type { Question, QuestionMode, QuestionStrategy, QuestionDetection, QuestionActor, QuestionAnswer } from "../schemas/question.schema.js";
7
+ /** Shape accepted by `persist()` — everything needed to insert a question row. */
8
+ export interface PersistableQuestion {
9
+ detection: QuestionDetection;
10
+ actors: QuestionActor[];
11
+ payload: Question;
12
+ strategy: QuestionStrategy;
13
+ }
14
+ /** Shape returned by `findPending()` — a persisted question with its DB id and status. */
15
+ export interface PersistedQuestion {
16
+ id: string;
17
+ detection: QuestionDetection;
18
+ actors: QuestionActor[];
19
+ payload: Question;
20
+ status: "pending" | "answered" | "dismissed";
21
+ answer: QuestionAnswer | null;
22
+ createdAt: string;
23
+ }
24
+ /** Optional filters for `findPending()`. */
25
+ export interface QuestionFilters {
26
+ mode?: QuestionMode;
27
+ sourceType?: string;
28
+ sourceId?: string;
29
+ }
30
+ export interface QuestionerDatabase {
31
+ /** Persist a batch of generated questions (up to 3 per generation). */
32
+ persist(questions: PersistableQuestion[]): Promise<void>;
33
+ /** Find pending questions for a user, optionally filtered by mode/source. */
34
+ findPending(userId: string, filters?: QuestionFilters): Promise<PersistedQuestion[]>;
35
+ /** Record an answer for a question. Sets status to "answered". */
36
+ answer(questionId: string, answer: QuestionAnswer): Promise<void>;
37
+ /** Dismiss a question. Sets status to "dismissed". */
38
+ dismiss(questionId: string): Promise<void>;
39
+ }
40
+ //# sourceMappingURL=questioner.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questioner.interface.d.ts","sourceRoot":"","sources":["../../../src/shared/interfaces/questioner.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACf,MAAM,+BAA+B,CAAC;AAEvC,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,0FAA0F;AAC1F,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,OAAO,CAAC,SAAS,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD,6EAA6E;IAC7E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAErF,kEAAkE;IAClE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE,sDAAsD;IACtD,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=questioner.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questioner.interface.js","sourceRoot":"","sources":["../../../src/shared/interfaces/questioner.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ interface NetworkForRendering {
2
+ type: string;
3
+ title: string;
4
+ prompt?: string | null;
5
+ metadata: Record<string, unknown>;
6
+ }
7
+ /**
8
+ * Render a network's metadata as structured markdown for LLM context.
9
+ *
10
+ * @param network - The network to render, with type, title, optional prompt, and metadata.
11
+ * @returns Markdown string suitable for injection into an LLM prompt.
12
+ */
13
+ export declare function renderNetworkContext(network: NetworkForRendering): string;
14
+ export {};
15
+ //# sourceMappingURL=metadata.renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.renderer.d.ts","sourceRoot":"","sources":["../../../src/shared/network/metadata.renderer.ts"],"names":[],"mappings":"AAAA,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAmBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAQzE"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Render a network's metadata as structured markdown for LLM context.
3
+ *
4
+ * @param network - The network to render, with type, title, optional prompt, and metadata.
5
+ * @returns Markdown string suitable for injection into an LLM prompt.
6
+ */
7
+ export function renderNetworkContext(network) {
8
+ switch (network.type) {
9
+ case 'event':
10
+ return renderEventNetwork(network);
11
+ case 'community':
12
+ default:
13
+ return renderCommunityNetwork(network);
14
+ }
15
+ }
16
+ function renderCommunityNetwork(network) {
17
+ const lines = [`## ${network.title}`];
18
+ if (network.prompt) {
19
+ lines.push('', network.prompt);
20
+ }
21
+ return lines.join('\n');
22
+ }
23
+ function renderEventNetwork(network) {
24
+ const meta = network.metadata;
25
+ const startDate = typeof meta.startDate === 'string' ? meta.startDate : undefined;
26
+ const endDate = typeof meta.endDate === 'string' ? meta.endDate : undefined;
27
+ const location = typeof meta.location === 'string' ? meta.location : undefined;
28
+ const timezone = typeof meta.timezone === 'string' ? meta.timezone : undefined;
29
+ const themes = Array.isArray(meta.themes) ? meta.themes.filter((t) => typeof t === 'string') : [];
30
+ const events = Array.isArray(meta.events) ? normalizeEvents(meta.events) : [];
31
+ const lines = [`## ${network.title}`];
32
+ if (network.prompt) {
33
+ lines.push('', network.prompt);
34
+ }
35
+ lines.push('');
36
+ lines.push('- **Type:** Event');
37
+ const dateRange = startDate && endDate ? formatDateRange(startDate, endDate) : undefined;
38
+ if (dateRange) {
39
+ lines.push(`- **Dates:** ${dateRange}`);
40
+ }
41
+ if (location) {
42
+ lines.push(`- **Location:** ${location}`);
43
+ }
44
+ if (timezone) {
45
+ lines.push(`- **Timezone:** ${timezone}`);
46
+ }
47
+ if (themes.length > 0) {
48
+ lines.push(`- **Themes:** ${themes.join(', ')}`);
49
+ }
50
+ lines.push('');
51
+ const upcoming = getUpcomingEvents(events, 7);
52
+ if (upcoming.length === 0) {
53
+ lines.push('No upcoming events in the next 7 days.');
54
+ }
55
+ else {
56
+ lines.push('### Upcoming Events (next 7 days)');
57
+ lines.push('| Time | Event | Location |');
58
+ lines.push('|------|-------|----------|');
59
+ for (const evt of upcoming) {
60
+ const time = formatEventTime(evt.startTime);
61
+ const loc = escapeTableCell(evt.location ?? '');
62
+ const title = escapeTableCell(evt.title);
63
+ lines.push(`| ${time} | ${title} | ${loc} |`);
64
+ }
65
+ }
66
+ return lines.join('\n');
67
+ }
68
+ function formatDateRange(start, end) {
69
+ const s = new Date(start);
70
+ const e = new Date(end);
71
+ if (isNaN(s.getTime()) || isNaN(e.getTime()))
72
+ return undefined;
73
+ const opts = { month: 'long', day: 'numeric', year: 'numeric', timeZone: 'UTC' };
74
+ return `${s.toLocaleDateString('en-US', opts)} – ${e.toLocaleDateString('en-US', opts)}`;
75
+ }
76
+ function formatEventTime(iso) {
77
+ const d = new Date(iso);
78
+ if (isNaN(d.getTime()))
79
+ return iso;
80
+ return d.toLocaleDateString('en-US', { month: 'short', day: 'numeric', timeZone: 'UTC' }) +
81
+ ', ' +
82
+ d.toLocaleTimeString('en-US', { hour: 'numeric', minute: '2-digit', timeZone: 'UTC' });
83
+ }
84
+ function escapeTableCell(value) {
85
+ return value.replace(/\|/g, '\\|').replace(/\n/g, ' ');
86
+ }
87
+ function normalizeEvents(raw) {
88
+ return raw.filter((e) => {
89
+ if (typeof e !== 'object' || e === null)
90
+ return false;
91
+ const obj = e;
92
+ return typeof obj.title === 'string' && typeof obj.startTime === 'string' && typeof obj.endTime === 'string';
93
+ });
94
+ }
95
+ function getUpcomingEvents(events, windowDays) {
96
+ const now = Date.now();
97
+ const windowEnd = now + windowDays * 24 * 60 * 60 * 1000;
98
+ return events
99
+ .map((e) => ({ e, t: new Date(e.startTime).getTime() }))
100
+ .filter(({ t }) => !isNaN(t) && t >= now && t <= windowEnd)
101
+ .sort((a, b) => a.t - b.t)
102
+ .map(({ e }) => e);
103
+ }
104
+ //# sourceMappingURL=metadata.renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.renderer.js","sourceRoot":"","sources":["../../../src/shared/network/metadata.renderer.ts"],"names":[],"mappings":"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"}
@@ -179,4 +179,69 @@ export interface QuestionGenerationResult {
179
179
  questions: Question[];
180
180
  strategies: QuestionStrategy[];
181
181
  }
182
+ export declare const QuestionModeSchema: z.ZodEnum<["discovery", "intent", "profile", "negotiation"]>;
183
+ export declare const QuestionDetectionSchema: z.ZodObject<{
184
+ /** Which preset mode generated this question. */
185
+ mode: z.ZodEnum<["discovery", "intent", "profile", "negotiation"]>;
186
+ /** Entity type that triggered generation (e.g. "opportunity", "intent", "profile"). */
187
+ sourceType: z.ZodString;
188
+ /** ID of the triggering entity. */
189
+ sourceId: z.ZodString;
190
+ /** Optional intent ID that was the root cause. */
191
+ triggeredBy: z.ZodOptional<z.ZodString>;
192
+ /** ISO-8601 timestamp of generation. */
193
+ timestamp: z.ZodString;
194
+ }, "strip", z.ZodTypeAny, {
195
+ sourceType: string;
196
+ sourceId: string;
197
+ mode: "profile" | "intent" | "discovery" | "negotiation";
198
+ timestamp: string;
199
+ triggeredBy?: string | undefined;
200
+ }, {
201
+ sourceType: string;
202
+ sourceId: string;
203
+ mode: "profile" | "intent" | "discovery" | "negotiation";
204
+ timestamp: string;
205
+ triggeredBy?: string | undefined;
206
+ }>;
207
+ export declare const QuestionActorSchema: z.ZodObject<{
208
+ /** The user this question is for. */
209
+ userId: z.ZodString;
210
+ /** Optional network context. */
211
+ networkId: z.ZodOptional<z.ZodString>;
212
+ /** Actor's role in the question — currently always "subject". */
213
+ role: z.ZodLiteral<"subject">;
214
+ }, "strip", z.ZodTypeAny, {
215
+ userId: string;
216
+ role: "subject";
217
+ networkId?: string | undefined;
218
+ }, {
219
+ userId: string;
220
+ role: "subject";
221
+ networkId?: string | undefined;
222
+ }>;
223
+ export declare const QuestionAnswerSchema: z.ZodObject<{
224
+ /** Option labels the user selected. */
225
+ selectedOptions: z.ZodArray<z.ZodString, "many">;
226
+ /** Free-text input when the user chose "Other" or elaborated. */
227
+ freeText: z.ZodOptional<z.ZodString>;
228
+ /** User ID of the answerer. */
229
+ answeredBy: z.ZodString;
230
+ /** ISO-8601 timestamp of when the answer was submitted. */
231
+ answeredAt: z.ZodString;
232
+ }, "strip", z.ZodTypeAny, {
233
+ selectedOptions: string[];
234
+ answeredBy: string;
235
+ answeredAt: string;
236
+ freeText?: string | undefined;
237
+ }, {
238
+ selectedOptions: string[];
239
+ answeredBy: string;
240
+ answeredAt: string;
241
+ freeText?: string | undefined;
242
+ }>;
243
+ export type QuestionMode = z.infer<typeof QuestionModeSchema>;
244
+ export type QuestionDetection = z.infer<typeof QuestionDetectionSchema>;
245
+ export type QuestionActor = z.infer<typeof QuestionActorSchema>;
246
+ export type QuestionAnswer = z.infer<typeof QuestionAnswerSchema>;
182
247
  //# sourceMappingURL=question.schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"question.schema.d.ts","sourceRoot":"","sources":["../../../src/shared/schemas/question.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB;IAC/B,+EAA+E;;IAE/E,iFAAiF;;;;;;;;EAEjF,CAAC;AAEH,eAAO,MAAM,cAAc;IACzB,+EAA+E;;IAE/E,yDAAyD;;IAEzD,6EAA6E;;QAX7E,+EAA+E;;QAE/E,iFAAiF;;;;;;;;;IAWjF,0EAA0E;;;;;;;;;;;;;;;;;;EAE1E,CAAC;AAEH,eAAO,MAAM,sBAAsB,oIAMjC,CAAC;AAEH,eAAO,MAAM,0BAA0B;IAlBrC,+EAA+E;;IAE/E,yDAAyD;;IAEzD,6EAA6E;;QAX7E,+EAA+E;;QAE/E,iFAAiF;;;;;;;;;IAWjF,0EAA0E;;;;;;;;;;;;;;;;;;;;;;EAc1E,CAAC;AAEH,eAAO,MAAM,+BAA+B;;QAtB1C,+EAA+E;;QAE/E,yDAAyD;;QAEzD,6EAA6E;;YAX7E,+EAA+E;;YAE/E,iFAAiF;;;;;;;;;QAWjF,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB1E,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC"}
1
+ {"version":3,"file":"question.schema.d.ts","sourceRoot":"","sources":["../../../src/shared/schemas/question.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB;IAC/B,+EAA+E;;IAE/E,iFAAiF;;;;;;;;EAEjF,CAAC;AAEH,eAAO,MAAM,cAAc;IACzB,+EAA+E;;IAE/E,yDAAyD;;IAEzD,6EAA6E;;QAX7E,+EAA+E;;QAE/E,iFAAiF;;;;;;;;;IAWjF,0EAA0E;;;;;;;;;;;;;;;;;;EAE1E,CAAC;AAEH,eAAO,MAAM,sBAAsB,oIAMjC,CAAC;AAEH,eAAO,MAAM,0BAA0B;IAlBrC,+EAA+E;;IAE/E,yDAAyD;;IAEzD,6EAA6E;;QAX7E,+EAA+E;;QAE/E,iFAAiF;;;;;;;;;IAWjF,0EAA0E;;;;;;;;;;;;;;;;;;;;;;EAc1E,CAAC;AAEH,eAAO,MAAM,+BAA+B;;QAtB1C,+EAA+E;;QAE/E,yDAAyD;;QAEzD,6EAA6E;;YAX7E,+EAA+E;;YAE/E,iFAAiF;;;;;;;;;QAWjF,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB1E,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAID,eAAO,MAAM,kBAAkB,8DAK7B,CAAC;AAEH,eAAO,MAAM,uBAAuB;IAClC,iDAAiD;;IAEjD,uFAAuF;;IAEvF,mCAAmC;;IAEnC,kDAAkD;;IAElD,wCAAwC;;;;;;;;;;;;;;EAExC,CAAC;AAEH,eAAO,MAAM,mBAAmB;IAC9B,qCAAqC;;IAErC,gCAAgC;;IAEhC,iEAAiE;;;;;;;;;;EAEjE,CAAC;AAEH,eAAO,MAAM,oBAAoB;IAC/B,uCAAuC;;IAEvC,iEAAiE;;IAEjE,+BAA+B;;IAE/B,2DAA2D;;;;;;;;;;;;EAE3D,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -38,4 +38,41 @@ export const QuestionWithStrategySchema = QuestionSchema.extend({
38
38
  export const QuestionGeneratorResponseSchema = z.object({
39
39
  questions: z.array(QuestionWithStrategySchema).max(3),
40
40
  });
41
+ // ─── Persistence types (opportunity-style composable jsonb) ──────────────────
42
+ export const QuestionModeSchema = z.enum([
43
+ "discovery",
44
+ "intent",
45
+ "profile",
46
+ "negotiation",
47
+ ]);
48
+ export const QuestionDetectionSchema = z.object({
49
+ /** Which preset mode generated this question. */
50
+ mode: QuestionModeSchema,
51
+ /** Entity type that triggered generation (e.g. "opportunity", "intent", "profile"). */
52
+ sourceType: z.string().min(1),
53
+ /** ID of the triggering entity. */
54
+ sourceId: z.string().min(1),
55
+ /** Optional intent ID that was the root cause. */
56
+ triggeredBy: z.string().optional(),
57
+ /** ISO-8601 timestamp of generation. */
58
+ timestamp: z.string().min(1),
59
+ });
60
+ export const QuestionActorSchema = z.object({
61
+ /** The user this question is for. */
62
+ userId: z.string().min(1),
63
+ /** Optional network context. */
64
+ networkId: z.string().optional(),
65
+ /** Actor's role in the question — currently always "subject". */
66
+ role: z.literal("subject"),
67
+ });
68
+ export const QuestionAnswerSchema = z.object({
69
+ /** Option labels the user selected. */
70
+ selectedOptions: z.array(z.string()),
71
+ /** Free-text input when the user chose "Other" or elaborated. */
72
+ freeText: z.string().optional(),
73
+ /** User ID of the answerer. */
74
+ answeredBy: z.string().min(1),
75
+ /** ISO-8601 timestamp of when the answer was submitted. */
76
+ answeredAt: z.string().min(1),
77
+ });
41
78
  //# sourceMappingURL=question.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"question.schema.js","sourceRoot":"","sources":["../../../src/shared/schemas/question.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,+EAA+E;IAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC,iFAAiF;IACjF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACxC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,+EAA+E;IAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAChC,yDAAyD;IACzD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAClC,6EAA6E;IAC7E,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,0EAA0E;IAC1E,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,eAAe;IACf,wBAAwB;IACxB,sBAAsB;IACtB,oBAAoB;IACpB,4BAA4B;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CAAC,MAAM,CAAC;IAC9D,QAAQ,EAAE,sBAAsB;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACtD,CAAC,CAAC"}
1
+ {"version":3,"file":"question.schema.js","sourceRoot":"","sources":["../../../src/shared/schemas/question.schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indexnetwork/protocol",
3
- "version": "1.5.1",
3
+ "version": "1.6.0-rc.146.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",