@genesislcap/ai-assistant 15.58.2 → 15.60.0

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 (79) hide show
  1. package/dist/ai-assistant.api.json +10096 -6986
  2. package/dist/ai-assistant.d.ts +562 -101
  3. package/dist/chat-driver.cjs +624 -207
  4. package/dist/chat-driver.cjs.map +4 -4
  5. package/dist/chat-driver.mjs +624 -207
  6. package/dist/chat-driver.mjs.map +4 -4
  7. package/dist/custom-elements.json +5426 -3570
  8. package/dist/dts/components/agent-session/agent-session.d.ts +19 -3
  9. package/dist/dts/components/agent-session/agent-session.d.ts.map +1 -1
  10. package/dist/dts/components/ai-driver/ai-driver.d.ts +120 -10
  11. package/dist/dts/components/ai-driver/ai-driver.d.ts.map +1 -1
  12. package/dist/dts/components/ai-driver/base-driver-decorator.d.ts +103 -0
  13. package/dist/dts/components/ai-driver/base-driver-decorator.d.ts.map +1 -0
  14. package/dist/dts/components/ai-driver/index.d.ts +3 -1
  15. package/dist/dts/components/ai-driver/index.d.ts.map +1 -1
  16. package/dist/dts/components/chat-driver/chat-driver.d.ts +84 -8
  17. package/dist/dts/components/chat-driver/chat-driver.d.ts.map +1 -1
  18. package/dist/dts/components/chat-driver/interaction-controller.d.ts +37 -3
  19. package/dist/dts/components/chat-driver/interaction-controller.d.ts.map +1 -1
  20. package/dist/dts/components/message-feedback/index.d.ts +2 -0
  21. package/dist/dts/components/message-feedback/index.d.ts.map +1 -0
  22. package/dist/dts/components/message-feedback/message-feedback.d.ts +61 -0
  23. package/dist/dts/components/message-feedback/message-feedback.d.ts.map +1 -0
  24. package/dist/dts/components/message-feedback/message-feedback.styles.d.ts +2 -0
  25. package/dist/dts/components/message-feedback/message-feedback.styles.d.ts.map +1 -0
  26. package/dist/dts/components/message-feedback/message-feedback.template.d.ts +4 -0
  27. package/dist/dts/components/message-feedback/message-feedback.template.d.ts.map +1 -0
  28. package/dist/dts/components/orchestrating-driver/orchestrating-driver.d.ts +30 -93
  29. package/dist/dts/components/orchestrating-driver/orchestrating-driver.d.ts.map +1 -1
  30. package/dist/dts/index.d.ts +4 -1
  31. package/dist/dts/index.d.ts.map +1 -1
  32. package/dist/dts/main/main.d.ts +21 -5
  33. package/dist/dts/main/main.d.ts.map +1 -1
  34. package/dist/dts/main/main.styles.d.ts.map +1 -1
  35. package/dist/dts/main/main.template.d.ts.map +1 -1
  36. package/dist/dts/react.d.ts +10 -0
  37. package/dist/dts/state/debug-event-log.d.ts +1 -1
  38. package/dist/dts/state/debug-event-log.d.ts.map +1 -1
  39. package/dist/dts/state/interaction-context.d.ts +7 -1
  40. package/dist/dts/state/interaction-context.d.ts.map +1 -1
  41. package/dist/dts/state/persistence/session-persister.d.ts.map +1 -1
  42. package/dist/dts/suggestions/generate-suggestions.d.ts.map +1 -1
  43. package/dist/dts/types/handler-capability.d.ts +28 -0
  44. package/dist/dts/types/handler-capability.d.ts.map +1 -0
  45. package/dist/dts/types/interaction-context.d.ts +16 -0
  46. package/dist/dts/types/interaction-context.d.ts.map +1 -1
  47. package/dist/dts/types/interaction-interceptor.d.ts +109 -0
  48. package/dist/dts/types/interaction-interceptor.d.ts.map +1 -0
  49. package/dist/dts/utils/delegated-message.d.ts +52 -0
  50. package/dist/dts/utils/delegated-message.d.ts.map +1 -0
  51. package/dist/dts/utils/history-transform.d.ts.map +1 -1
  52. package/dist/esm/components/agent-session/agent-session.js +17 -0
  53. package/dist/esm/components/ai-driver/ai-driver.js +21 -1
  54. package/dist/esm/components/ai-driver/base-driver-decorator.js +211 -0
  55. package/dist/esm/components/ai-driver/index.js +2 -1
  56. package/dist/esm/components/chat-driver/chat-driver.js +195 -14
  57. package/dist/esm/components/chat-driver/interaction-controller.js +168 -14
  58. package/dist/esm/components/message-feedback/index.js +1 -0
  59. package/dist/esm/components/message-feedback/message-feedback.js +241 -0
  60. package/dist/esm/components/message-feedback/message-feedback.styles.js +94 -0
  61. package/dist/esm/components/message-feedback/message-feedback.template.js +80 -0
  62. package/dist/esm/components/orchestrating-driver/orchestrating-driver.js +72 -196
  63. package/dist/esm/index.js +1 -0
  64. package/dist/esm/main/main.js +123 -78
  65. package/dist/esm/main/main.styles.js +27 -0
  66. package/dist/esm/main/main.template.js +13 -0
  67. package/dist/esm/state/debug-event-log.js +7 -2
  68. package/dist/esm/state/interaction-context.js +11 -0
  69. package/dist/esm/state/persistence/session-persister.js +5 -6
  70. package/dist/esm/suggestions/generate-suggestions.js +8 -1
  71. package/dist/esm/types/handler-capability.js +1 -0
  72. package/dist/esm/types/interaction-interceptor.js +1 -0
  73. package/dist/esm/utils/delegated-message.js +25 -0
  74. package/dist/esm/utils/history-transform.js +12 -1
  75. package/dist/react.cjs +7 -0
  76. package/dist/react.mjs +6 -0
  77. package/package.json +17 -17
  78. package/sandbox/README.md +1 -1
  79. package/sandbox/sandbox.ts +35 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/ai-assistant",
3
3
  "description": "Genesis AI Assistant micro-frontend",
4
- "version": "15.58.2",
4
+ "version": "15.60.0",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "main": "dist/esm/index.js",
7
7
  "types": "dist/ai-assistant.d.ts",
@@ -92,31 +92,31 @@
92
92
  }
93
93
  },
94
94
  "devDependencies": {
95
- "@genesislcap/foundation-comms": "15.58.2",
96
- "@genesislcap/foundation-testing": "15.58.2",
97
- "@genesislcap/genx": "15.58.2",
98
- "@genesislcap/ts-builder": "15.58.2",
99
- "@genesislcap/uvu-playwright-builder": "15.58.2",
100
- "@genesislcap/vite-builder": "15.58.2",
101
- "@genesislcap/webpack-builder": "15.58.2",
95
+ "@genesislcap/foundation-comms": "15.60.0",
96
+ "@genesislcap/foundation-testing": "15.60.0",
97
+ "@genesislcap/genx": "15.60.0",
98
+ "@genesislcap/ts-builder": "15.60.0",
99
+ "@genesislcap/uvu-playwright-builder": "15.60.0",
100
+ "@genesislcap/vite-builder": "15.60.0",
101
+ "@genesislcap/webpack-builder": "15.60.0",
102
102
  "@types/dompurify": "^3.0.5",
103
103
  "@types/marked": "^5.0.2",
104
104
  "esbuild": "0.25.12"
105
105
  },
106
106
  "dependencies": {
107
- "@genesislcap/foundation-ai": "15.58.2",
108
- "@genesislcap/foundation-logger": "15.58.2",
109
- "@genesislcap/foundation-notifications": "15.58.2",
110
- "@genesislcap/foundation-redux": "15.58.2",
111
- "@genesislcap/foundation-ui": "15.58.2",
112
- "@genesislcap/foundation-utils": "15.58.2",
113
- "@genesislcap/rapid-design-system": "15.58.2",
114
- "@genesislcap/web-core": "15.58.2",
107
+ "@genesislcap/foundation-ai": "15.60.0",
108
+ "@genesislcap/foundation-logger": "15.60.0",
109
+ "@genesislcap/foundation-notifications": "15.60.0",
110
+ "@genesislcap/foundation-redux": "15.60.0",
111
+ "@genesislcap/foundation-ui": "15.60.0",
112
+ "@genesislcap/foundation-utils": "15.60.0",
113
+ "@genesislcap/rapid-design-system": "15.60.0",
114
+ "@genesislcap/web-core": "15.60.0",
115
115
  "dompurify": "^3.3.1",
116
116
  "marked": "^17.0.3"
117
117
  },
118
118
  "peerDependencies": {
119
- "@genesislcap/foundation-comms": "^15.58.2"
119
+ "@genesislcap/foundation-comms": "^15.60.0"
120
120
  },
121
121
  "peerDependenciesMeta": {
122
122
  "@genesislcap/foundation-comms": {
package/sandbox/README.md CHANGED
@@ -31,7 +31,7 @@ The panel covers, roughly in the order you'll want them:
31
31
  | **Context window** | **Jump to state** (the four gate states in one click), the simulated window and fill, `chatConfig.context`, a flow-in-progress toggle, live readouts of the gate / thresholds / compaction plan, and Compact |
32
32
  | **Simulated state** | Forces `idle` / busy / cancelling / blocked / compacting / restoring onto the element |
33
33
  | **Transcript** | Seeds an empty, short, tool-and-markdown-heavy, 28-turn, ~20k-token, or ~22k-token tool-loop conversation, and how far back to shift its timestamps |
34
- | **Chrome** | Header title, popout mode, suggestions, the tool-call / reasoning / narration toggles, the timestamp mode, animations |
34
+ | **Chrome** | Header title, popout mode, suggestions, the tool-call / reasoning / narration toggles, the timestamp mode, animations, per-reply thumbs (`messageFeedback`, with a stub send that succeeds or fails) |
35
35
  | **Stage** | Frame size (floored at 400px — see below), light/dark, remount, full reset |
36
36
 
37
37
  Panel state persists in `localStorage`, so a reload picks up where you left off. **Reset sandbox**
@@ -137,6 +137,7 @@ interface SandboxState {
137
137
  showNarration: boolean;
138
138
  showTimestamps: TimestampDisplay;
139
139
  animations: boolean;
140
+ messageFeedback: 'off' | 'succeeds' | 'fails';
140
141
  // Context window (GENC-1567)
141
142
  contextPreset: ContextPresetName | typeof CUSTOM_PRESET;
142
143
  contextWindow: number;
@@ -182,6 +183,7 @@ const DEFAULT_STATE: SandboxState = {
182
183
  showNarration: true,
183
184
  showTimestamps: 'always',
184
185
  animations: true,
186
+ messageFeedback: 'succeeds',
185
187
  // Chosen so the `huge` (~20k) and `loop` (~22k) seeds actually clear the tail
186
188
  // budget these produce (~12.8k) and so have something to compact. Verified, not
187
189
  // guessed — a slightly roomier pairing leaves the tail larger than either seed,
@@ -334,6 +336,9 @@ const ACCEPTED_FILES: Record<SandboxState['attachments'], string | undefined> =
334
336
  images: 'image/png,image/jpeg,image/gif,image/webp,.txt,.md,.csv,.json,text/*',
335
337
  };
336
338
 
339
+ /** Long enough to see the thumbs' Sending… state. */
340
+ const STUB_FEEDBACK_SEND_MS = 600;
341
+
337
342
  const buildChatConfig = (s: SandboxState): ChatConfig => ({
338
343
  ui: {
339
344
  acceptedFiles: ACCEPTED_FILES[s.attachments],
@@ -348,6 +353,25 @@ const buildChatConfig = (s: SandboxState): ChatConfig => ({
348
353
  // `undefined` disables the feature outright (no cog control, nothing enabled);
349
354
  // `userConfigurable` turns the defaults on and adds the multiselect to the cog.
350
355
  animations: s.animations ? { userConfigurable: true } : undefined,
356
+ messageFeedback:
357
+ s.messageFeedback === 'off'
358
+ ? undefined
359
+ : {
360
+ send: async ({ rating, reply, replyKey, message, filename, getLogJson }) => {
361
+ await new Promise((resolve) => {
362
+ setTimeout(resolve, STUB_FEEDBACK_SEND_MS);
363
+ });
364
+ console.info('[sandbox] message feedback', {
365
+ rating,
366
+ reply: reply.content,
367
+ replyKey,
368
+ note: message,
369
+ filename,
370
+ logBytes: (await getLogJson()).length,
371
+ });
372
+ if (s.messageFeedback === 'fails') throw new Error('Sandbox transport refused');
373
+ },
374
+ },
351
375
  },
352
376
  context: {
353
377
  enabled: s.contextGateEnabled,
@@ -969,6 +993,17 @@ const GROUPS: ReadonlyArray<ControlGroup<SandboxState>> = [
969
993
  hint: 'Also settable from the cog. Whichever you moved last wins; moving other panel controls will not disturb a cog choice.',
970
994
  },
971
995
  { kind: 'toggle', key: 'animations', label: 'Animations' },
996
+ {
997
+ kind: 'select',
998
+ key: 'messageFeedback',
999
+ label: 'Message feedback',
1000
+ options: [
1001
+ { value: 'off', label: 'Off' },
1002
+ { value: 'succeeds', label: 'Send succeeds' },
1003
+ { value: 'fails', label: 'Send fails' },
1004
+ ],
1005
+ hint: 'chatConfig.ui.messageFeedback — thumbs on each reply; the stub send logs to the console.',
1006
+ },
972
1007
  ],
973
1008
  },
974
1009
  {