@genesislcap/ai-assistant 14.489.1-alpha-2e2874541.0 → 14.490.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.
- package/dist/custom-elements.json +150 -150
- package/dist/dts/components/chat-driver/chat-driver.d.ts.map +1 -1
- package/dist/esm/components/chat-driver/chat-driver.js +11 -4
- package/dist/esm/components/chat-driver/chat-driver.test.js +47 -0
- package/package.json +17 -17
- package/src/components/chat-driver/chat-driver.test.ts +59 -0
- package/src/components/chat-driver/chat-driver.ts +11 -5
|
@@ -361,156 +361,6 @@
|
|
|
361
361
|
"declarations": [],
|
|
362
362
|
"exports": []
|
|
363
363
|
},
|
|
364
|
-
{
|
|
365
|
-
"kind": "javascript-module",
|
|
366
|
-
"path": "src/config/config.ts",
|
|
367
|
-
"declarations": [
|
|
368
|
-
{
|
|
369
|
-
"kind": "function",
|
|
370
|
-
"name": "defineAgent",
|
|
371
|
-
"description": "Identity helper that infers the narrowest possible type for an agent config,\npreserving string literal types (including `name`) without requiring `as const`.\n\nUse this when you need `typeof myAgent` to carry the literal `name` type —\nfor example, when wiring `ChatToolHandlers<typeof myAgent>`.\n\n```ts\nconst myAgent = defineAgent({ name: 'my_agent', ... });\ntype Handlers = ChatToolHandlers<typeof myAgent>;\n// requestSubAgent name param is now typed as 'my_agent'\n```"
|
|
372
|
-
}
|
|
373
|
-
],
|
|
374
|
-
"exports": [
|
|
375
|
-
{
|
|
376
|
-
"kind": "js",
|
|
377
|
-
"name": "CachePolicy",
|
|
378
|
-
"declaration": {
|
|
379
|
-
"name": "CachePolicy",
|
|
380
|
-
"module": "src/config/config.ts"
|
|
381
|
-
}
|
|
382
|
-
},
|
|
383
|
-
{
|
|
384
|
-
"kind": "js",
|
|
385
|
-
"name": "ChatInputDuringExecutionMode",
|
|
386
|
-
"declaration": {
|
|
387
|
-
"name": "ChatInputDuringExecutionMode",
|
|
388
|
-
"module": "src/config/config.ts"
|
|
389
|
-
}
|
|
390
|
-
},
|
|
391
|
-
{
|
|
392
|
-
"kind": "js",
|
|
393
|
-
"name": "ChatToolChoice",
|
|
394
|
-
"declaration": {
|
|
395
|
-
"name": "ChatToolChoice",
|
|
396
|
-
"module": "src/config/config.ts"
|
|
397
|
-
}
|
|
398
|
-
},
|
|
399
|
-
{
|
|
400
|
-
"kind": "js",
|
|
401
|
-
"name": "defineAgent",
|
|
402
|
-
"declaration": {
|
|
403
|
-
"name": "defineAgent",
|
|
404
|
-
"module": "src/config/config.ts"
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
]
|
|
408
|
-
},
|
|
409
|
-
{
|
|
410
|
-
"kind": "javascript-module",
|
|
411
|
-
"path": "src/config/define-stateful-agent.ts",
|
|
412
|
-
"declarations": [
|
|
413
|
-
{
|
|
414
|
-
"kind": "function",
|
|
415
|
-
"name": "defineStatefulAgent",
|
|
416
|
-
"return": {
|
|
417
|
-
"type": {
|
|
418
|
-
"text": "AgentConfig"
|
|
419
|
-
}
|
|
420
|
-
},
|
|
421
|
-
"parameters": [
|
|
422
|
-
{
|
|
423
|
-
"name": "opts",
|
|
424
|
-
"type": {
|
|
425
|
-
"text": "StatefulAgentInit<S>"
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
],
|
|
429
|
-
"description": "Build an `AgentConfig` whose `systemPrompt`, `toolDefinitions`, and tool\nhandlers all close over a long-lived state object created on activation.\n\nThe framework wires the lifecycle: `init` on `onActivate`, `dispose` on\n`onDeactivate`. State is held inside the helper's closure — never exposed on\nthe resulting `AgentConfig` — so the redux serializer doesn't see it."
|
|
430
|
-
}
|
|
431
|
-
],
|
|
432
|
-
"exports": [
|
|
433
|
-
{
|
|
434
|
-
"kind": "js",
|
|
435
|
-
"name": "defineStatefulAgent",
|
|
436
|
-
"declaration": {
|
|
437
|
-
"name": "defineStatefulAgent",
|
|
438
|
-
"module": "src/config/define-stateful-agent.ts"
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
]
|
|
442
|
-
},
|
|
443
|
-
{
|
|
444
|
-
"kind": "javascript-module",
|
|
445
|
-
"path": "src/config/fallback-agents.ts",
|
|
446
|
-
"declarations": [
|
|
447
|
-
{
|
|
448
|
-
"kind": "variable",
|
|
449
|
-
"name": "friendlyFallbackAgent",
|
|
450
|
-
"type": {
|
|
451
|
-
"text": "FallbackAgentConfig"
|
|
452
|
-
},
|
|
453
|
-
"default": "{\n name: 'Assistant',\n fallback: true,\n systemPrompt: `You are a warm, friendly assistant. For general conversation like \"Hi\" or \"How are you\", you can have a friendly chat. For anything more complex, you cannot directly help, but you can explain what specialists are available. The available specialists are:\\n\\n{{agents}}\\n\\nPolitely let the user know what you can help with and invite them to rephrase their request if it is outside your scope.`,\n}",
|
|
454
|
-
"description": "A warm, conversational fallback agent. Acknowledges it can't help directly,\nexplains what the available specialists can do, and invites the user to retry.\n\nThe system prompt is generated at runtime by `OrchestratingDriver` from the\nspecialist list — no manual authoring required."
|
|
455
|
-
},
|
|
456
|
-
{
|
|
457
|
-
"kind": "variable",
|
|
458
|
-
"name": "strictFallbackAgent",
|
|
459
|
-
"type": {
|
|
460
|
-
"text": "FallbackAgentConfig"
|
|
461
|
-
},
|
|
462
|
-
"default": "{\n name: 'Assistant',\n fallback: true,\n systemPrompt: `You are a concise assistant. The user's request is outside your scope. Respond with a single short sentence stating what you can assist with. Do not elaborate. The available specialists are: {{agents}}.`,\n}",
|
|
463
|
-
"description": "A brief, professional fallback agent. States what is available without\nelaboration. The `{{agents}}` placeholder is replaced at runtime by\n`OrchestratingDriver` with the generated specialist list."
|
|
464
|
-
}
|
|
465
|
-
],
|
|
466
|
-
"exports": [
|
|
467
|
-
{
|
|
468
|
-
"kind": "js",
|
|
469
|
-
"name": "friendlyFallbackAgent",
|
|
470
|
-
"declaration": {
|
|
471
|
-
"name": "friendlyFallbackAgent",
|
|
472
|
-
"module": "src/config/fallback-agents.ts"
|
|
473
|
-
}
|
|
474
|
-
},
|
|
475
|
-
{
|
|
476
|
-
"kind": "js",
|
|
477
|
-
"name": "strictFallbackAgent",
|
|
478
|
-
"declaration": {
|
|
479
|
-
"name": "strictFallbackAgent",
|
|
480
|
-
"module": "src/config/fallback-agents.ts"
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
]
|
|
484
|
-
},
|
|
485
|
-
{
|
|
486
|
-
"kind": "javascript-module",
|
|
487
|
-
"path": "src/config/index.ts",
|
|
488
|
-
"declarations": [],
|
|
489
|
-
"exports": [
|
|
490
|
-
{
|
|
491
|
-
"kind": "js",
|
|
492
|
-
"name": "*",
|
|
493
|
-
"declaration": {
|
|
494
|
-
"name": "*",
|
|
495
|
-
"package": "./config"
|
|
496
|
-
}
|
|
497
|
-
},
|
|
498
|
-
{
|
|
499
|
-
"kind": "js",
|
|
500
|
-
"name": "*",
|
|
501
|
-
"declaration": {
|
|
502
|
-
"name": "*",
|
|
503
|
-
"package": "./fallback-agents"
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
]
|
|
507
|
-
},
|
|
508
|
-
{
|
|
509
|
-
"kind": "javascript-module",
|
|
510
|
-
"path": "src/config/validate-providers.ts",
|
|
511
|
-
"declarations": [],
|
|
512
|
-
"exports": []
|
|
513
|
-
},
|
|
514
364
|
{
|
|
515
365
|
"kind": "javascript-module",
|
|
516
366
|
"path": "src/components/flowing-waves-indicator.ts",
|
|
@@ -991,6 +841,156 @@
|
|
|
991
841
|
}
|
|
992
842
|
]
|
|
993
843
|
},
|
|
844
|
+
{
|
|
845
|
+
"kind": "javascript-module",
|
|
846
|
+
"path": "src/config/config.ts",
|
|
847
|
+
"declarations": [
|
|
848
|
+
{
|
|
849
|
+
"kind": "function",
|
|
850
|
+
"name": "defineAgent",
|
|
851
|
+
"description": "Identity helper that infers the narrowest possible type for an agent config,\npreserving string literal types (including `name`) without requiring `as const`.\n\nUse this when you need `typeof myAgent` to carry the literal `name` type —\nfor example, when wiring `ChatToolHandlers<typeof myAgent>`.\n\n```ts\nconst myAgent = defineAgent({ name: 'my_agent', ... });\ntype Handlers = ChatToolHandlers<typeof myAgent>;\n// requestSubAgent name param is now typed as 'my_agent'\n```"
|
|
852
|
+
}
|
|
853
|
+
],
|
|
854
|
+
"exports": [
|
|
855
|
+
{
|
|
856
|
+
"kind": "js",
|
|
857
|
+
"name": "CachePolicy",
|
|
858
|
+
"declaration": {
|
|
859
|
+
"name": "CachePolicy",
|
|
860
|
+
"module": "src/config/config.ts"
|
|
861
|
+
}
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
"kind": "js",
|
|
865
|
+
"name": "ChatInputDuringExecutionMode",
|
|
866
|
+
"declaration": {
|
|
867
|
+
"name": "ChatInputDuringExecutionMode",
|
|
868
|
+
"module": "src/config/config.ts"
|
|
869
|
+
}
|
|
870
|
+
},
|
|
871
|
+
{
|
|
872
|
+
"kind": "js",
|
|
873
|
+
"name": "ChatToolChoice",
|
|
874
|
+
"declaration": {
|
|
875
|
+
"name": "ChatToolChoice",
|
|
876
|
+
"module": "src/config/config.ts"
|
|
877
|
+
}
|
|
878
|
+
},
|
|
879
|
+
{
|
|
880
|
+
"kind": "js",
|
|
881
|
+
"name": "defineAgent",
|
|
882
|
+
"declaration": {
|
|
883
|
+
"name": "defineAgent",
|
|
884
|
+
"module": "src/config/config.ts"
|
|
885
|
+
}
|
|
886
|
+
}
|
|
887
|
+
]
|
|
888
|
+
},
|
|
889
|
+
{
|
|
890
|
+
"kind": "javascript-module",
|
|
891
|
+
"path": "src/config/define-stateful-agent.ts",
|
|
892
|
+
"declarations": [
|
|
893
|
+
{
|
|
894
|
+
"kind": "function",
|
|
895
|
+
"name": "defineStatefulAgent",
|
|
896
|
+
"return": {
|
|
897
|
+
"type": {
|
|
898
|
+
"text": "AgentConfig"
|
|
899
|
+
}
|
|
900
|
+
},
|
|
901
|
+
"parameters": [
|
|
902
|
+
{
|
|
903
|
+
"name": "opts",
|
|
904
|
+
"type": {
|
|
905
|
+
"text": "StatefulAgentInit<S>"
|
|
906
|
+
}
|
|
907
|
+
}
|
|
908
|
+
],
|
|
909
|
+
"description": "Build an `AgentConfig` whose `systemPrompt`, `toolDefinitions`, and tool\nhandlers all close over a long-lived state object created on activation.\n\nThe framework wires the lifecycle: `init` on `onActivate`, `dispose` on\n`onDeactivate`. State is held inside the helper's closure — never exposed on\nthe resulting `AgentConfig` — so the redux serializer doesn't see it."
|
|
910
|
+
}
|
|
911
|
+
],
|
|
912
|
+
"exports": [
|
|
913
|
+
{
|
|
914
|
+
"kind": "js",
|
|
915
|
+
"name": "defineStatefulAgent",
|
|
916
|
+
"declaration": {
|
|
917
|
+
"name": "defineStatefulAgent",
|
|
918
|
+
"module": "src/config/define-stateful-agent.ts"
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
]
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
"kind": "javascript-module",
|
|
925
|
+
"path": "src/config/fallback-agents.ts",
|
|
926
|
+
"declarations": [
|
|
927
|
+
{
|
|
928
|
+
"kind": "variable",
|
|
929
|
+
"name": "friendlyFallbackAgent",
|
|
930
|
+
"type": {
|
|
931
|
+
"text": "FallbackAgentConfig"
|
|
932
|
+
},
|
|
933
|
+
"default": "{\n name: 'Assistant',\n fallback: true,\n systemPrompt: `You are a warm, friendly assistant. For general conversation like \"Hi\" or \"How are you\", you can have a friendly chat. For anything more complex, you cannot directly help, but you can explain what specialists are available. The available specialists are:\\n\\n{{agents}}\\n\\nPolitely let the user know what you can help with and invite them to rephrase their request if it is outside your scope.`,\n}",
|
|
934
|
+
"description": "A warm, conversational fallback agent. Acknowledges it can't help directly,\nexplains what the available specialists can do, and invites the user to retry.\n\nThe system prompt is generated at runtime by `OrchestratingDriver` from the\nspecialist list — no manual authoring required."
|
|
935
|
+
},
|
|
936
|
+
{
|
|
937
|
+
"kind": "variable",
|
|
938
|
+
"name": "strictFallbackAgent",
|
|
939
|
+
"type": {
|
|
940
|
+
"text": "FallbackAgentConfig"
|
|
941
|
+
},
|
|
942
|
+
"default": "{\n name: 'Assistant',\n fallback: true,\n systemPrompt: `You are a concise assistant. The user's request is outside your scope. Respond with a single short sentence stating what you can assist with. Do not elaborate. The available specialists are: {{agents}}.`,\n}",
|
|
943
|
+
"description": "A brief, professional fallback agent. States what is available without\nelaboration. The `{{agents}}` placeholder is replaced at runtime by\n`OrchestratingDriver` with the generated specialist list."
|
|
944
|
+
}
|
|
945
|
+
],
|
|
946
|
+
"exports": [
|
|
947
|
+
{
|
|
948
|
+
"kind": "js",
|
|
949
|
+
"name": "friendlyFallbackAgent",
|
|
950
|
+
"declaration": {
|
|
951
|
+
"name": "friendlyFallbackAgent",
|
|
952
|
+
"module": "src/config/fallback-agents.ts"
|
|
953
|
+
}
|
|
954
|
+
},
|
|
955
|
+
{
|
|
956
|
+
"kind": "js",
|
|
957
|
+
"name": "strictFallbackAgent",
|
|
958
|
+
"declaration": {
|
|
959
|
+
"name": "strictFallbackAgent",
|
|
960
|
+
"module": "src/config/fallback-agents.ts"
|
|
961
|
+
}
|
|
962
|
+
}
|
|
963
|
+
]
|
|
964
|
+
},
|
|
965
|
+
{
|
|
966
|
+
"kind": "javascript-module",
|
|
967
|
+
"path": "src/config/index.ts",
|
|
968
|
+
"declarations": [],
|
|
969
|
+
"exports": [
|
|
970
|
+
{
|
|
971
|
+
"kind": "js",
|
|
972
|
+
"name": "*",
|
|
973
|
+
"declaration": {
|
|
974
|
+
"name": "*",
|
|
975
|
+
"package": "./config"
|
|
976
|
+
}
|
|
977
|
+
},
|
|
978
|
+
{
|
|
979
|
+
"kind": "js",
|
|
980
|
+
"name": "*",
|
|
981
|
+
"declaration": {
|
|
982
|
+
"name": "*",
|
|
983
|
+
"package": "./fallback-agents"
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
]
|
|
987
|
+
},
|
|
988
|
+
{
|
|
989
|
+
"kind": "javascript-module",
|
|
990
|
+
"path": "src/config/validate-providers.ts",
|
|
991
|
+
"declarations": [],
|
|
992
|
+
"exports": []
|
|
993
|
+
},
|
|
994
994
|
{
|
|
995
995
|
"kind": "javascript-module",
|
|
996
996
|
"path": "src/main/index.ts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-driver.d.ts","sourceRoot":"","sources":["../../../../src/components/chat-driver/chat-driver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chat-driver.d.ts","sourceRoot":"","sources":["../../../../src/components/chat-driver/chat-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1757,11 +1757,18 @@ export class ChatDriver extends EventTarget {
|
|
|
1757
1757
|
provider: this.lastResolvedProviderName,
|
|
1758
1758
|
name: e.name,
|
|
1759
1759
|
message: e.message,
|
|
1760
|
+
isSubAgent: this.isSubAgent,
|
|
1760
1761
|
});
|
|
1761
|
-
this.
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
}
|
|
1762
|
+
if (this.isSubAgent) {
|
|
1763
|
+
// Bubble a typed failure to the parent instead of speaking to the user.
|
|
1764
|
+
this.failSubAgent('timeout');
|
|
1765
|
+
}
|
|
1766
|
+
else {
|
|
1767
|
+
this.appendToHistory({
|
|
1768
|
+
role: 'assistant',
|
|
1769
|
+
content: 'The request timed out. You can ask me to try again, or break this into a smaller step.',
|
|
1770
|
+
});
|
|
1771
|
+
}
|
|
1765
1772
|
return { reason: 'done' };
|
|
1766
1773
|
}
|
|
1767
1774
|
// The request was aborted: either a user cancel (turnController) or a
|
|
@@ -773,6 +773,53 @@ subagent('times out (without hanging) when the sub-agent is parked on a user int
|
|
|
773
773
|
assert.equal(outcome, { ok: false, reason: 'timeout' });
|
|
774
774
|
assert.ok(getMetaEvents(sessionKey).some((e) => { var _a; return e.type === 'subagent.failed' && ((_a = e.detail) === null || _a === void 0 ? void 0 : _a.reason) === 'timeout'; }), 'subagent.failed (timeout) should be recorded — proving it neither hung nor skipped logging');
|
|
775
775
|
}));
|
|
776
|
+
subagent('fails the sub-agent with reason "timeout" (no apology text) on a transport TimeoutError', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
777
|
+
const sessionKey = 'subagent-transport-timeout-test';
|
|
778
|
+
clearMetaEventRegistry();
|
|
779
|
+
let outcome;
|
|
780
|
+
const worker = agent({
|
|
781
|
+
name: 'worker',
|
|
782
|
+
toolDefinitions: [def('finish')],
|
|
783
|
+
toolHandlers: {
|
|
784
|
+
finish: (_args, ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
785
|
+
var _a;
|
|
786
|
+
(_a = ctx.completeSubAgent) === null || _a === void 0 ? void 0 : _a.call(ctx, { ok: true });
|
|
787
|
+
return 'finished';
|
|
788
|
+
}),
|
|
789
|
+
},
|
|
790
|
+
});
|
|
791
|
+
const parent = delegatingParent(worker, (o) => {
|
|
792
|
+
outcome = o;
|
|
793
|
+
});
|
|
794
|
+
// Call 0: parent delegates. Call 1: the worker's request times out at the
|
|
795
|
+
// transport (tagged TimeoutError). Call 2: the parent wraps up.
|
|
796
|
+
let call = 0;
|
|
797
|
+
const provider = {
|
|
798
|
+
chat: () => {
|
|
799
|
+
const n = call;
|
|
800
|
+
call += 1;
|
|
801
|
+
if (n === 0)
|
|
802
|
+
return Promise.resolve(callsTool('delegate', 'd1'));
|
|
803
|
+
if (n === 1) {
|
|
804
|
+
return Promise.reject(new DOMException('Anthropic request timed out', 'TimeoutError'));
|
|
805
|
+
}
|
|
806
|
+
return Promise.resolve({ role: 'assistant', content: 'done' });
|
|
807
|
+
},
|
|
808
|
+
};
|
|
809
|
+
const driver = makeDriver(parent, provider, sessionKey);
|
|
810
|
+
yield driver.sendMessage('go');
|
|
811
|
+
// The parent gets a typed timeout — not the wrong max_iterations default it
|
|
812
|
+
// used to see when the child answered with the user-facing apology instead.
|
|
813
|
+
assert.equal(outcome, { ok: false, reason: 'timeout' });
|
|
814
|
+
assert.ok(getMetaEvents(sessionKey).some((e) => {
|
|
815
|
+
var _a, _b;
|
|
816
|
+
return e.type === 'subagent.failed' &&
|
|
817
|
+
((_a = e.detail) === null || _a === void 0 ? void 0 : _a.agent) === 'worker' &&
|
|
818
|
+
((_b = e.detail) === null || _b === void 0 ? void 0 : _b.reason) === 'timeout';
|
|
819
|
+
}), 'a subagent.failed meta event with reason "timeout" should be recorded');
|
|
820
|
+
// The child must not speak to the user.
|
|
821
|
+
assert.not.ok(driver.getHistory().some((m) => { var _a; return (_a = m.content) === null || _a === void 0 ? void 0 : _a.includes('The request timed out'); }), 'the sub-agent must not append the user-facing timeout apology');
|
|
822
|
+
}));
|
|
776
823
|
subagent.run();
|
|
777
824
|
// ---------------------------------------------------------------------------
|
|
778
825
|
// cost / token attribution on the thinking-step split (GENC-1410)
|
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": "14.
|
|
4
|
+
"version": "14.490.0",
|
|
5
5
|
"license": "SEE LICENSE IN license.txt",
|
|
6
6
|
"main": "dist/esm/index.js",
|
|
7
7
|
"types": "dist/ai-assistant.d.ts",
|
|
@@ -64,25 +64,25 @@
|
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@genesislcap/foundation-testing": "14.
|
|
68
|
-
"@genesislcap/genx": "14.
|
|
69
|
-
"@genesislcap/rollup-builder": "14.
|
|
70
|
-
"@genesislcap/ts-builder": "14.
|
|
71
|
-
"@genesislcap/uvu-playwright-builder": "14.
|
|
72
|
-
"@genesislcap/vite-builder": "14.
|
|
73
|
-
"@genesislcap/webpack-builder": "14.
|
|
67
|
+
"@genesislcap/foundation-testing": "14.490.0",
|
|
68
|
+
"@genesislcap/genx": "14.490.0",
|
|
69
|
+
"@genesislcap/rollup-builder": "14.490.0",
|
|
70
|
+
"@genesislcap/ts-builder": "14.490.0",
|
|
71
|
+
"@genesislcap/uvu-playwright-builder": "14.490.0",
|
|
72
|
+
"@genesislcap/vite-builder": "14.490.0",
|
|
73
|
+
"@genesislcap/webpack-builder": "14.490.0",
|
|
74
74
|
"@types/dompurify": "^3.0.5",
|
|
75
75
|
"@types/marked": "^5.0.2"
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@genesislcap/foundation-ai": "14.
|
|
79
|
-
"@genesislcap/foundation-logger": "14.
|
|
80
|
-
"@genesislcap/foundation-notifications": "14.
|
|
81
|
-
"@genesislcap/foundation-redux": "14.
|
|
82
|
-
"@genesislcap/foundation-ui": "14.
|
|
83
|
-
"@genesislcap/foundation-utils": "14.
|
|
84
|
-
"@genesislcap/rapid-design-system": "14.
|
|
85
|
-
"@genesislcap/web-core": "14.
|
|
78
|
+
"@genesislcap/foundation-ai": "14.490.0",
|
|
79
|
+
"@genesislcap/foundation-logger": "14.490.0",
|
|
80
|
+
"@genesislcap/foundation-notifications": "14.490.0",
|
|
81
|
+
"@genesislcap/foundation-redux": "14.490.0",
|
|
82
|
+
"@genesislcap/foundation-ui": "14.490.0",
|
|
83
|
+
"@genesislcap/foundation-utils": "14.490.0",
|
|
84
|
+
"@genesislcap/rapid-design-system": "14.490.0",
|
|
85
|
+
"@genesislcap/web-core": "14.490.0",
|
|
86
86
|
"dompurify": "^3.3.1",
|
|
87
87
|
"marked": "^17.0.3"
|
|
88
88
|
},
|
|
@@ -95,5 +95,5 @@
|
|
|
95
95
|
"access": "public"
|
|
96
96
|
},
|
|
97
97
|
"customElements": "dist/custom-elements.json",
|
|
98
|
-
"gitHead": "
|
|
98
|
+
"gitHead": "2c5e250d11742abd582e39a370b003ef8d04a5fb"
|
|
99
99
|
}
|
|
@@ -1080,6 +1080,65 @@ subagent(
|
|
|
1080
1080
|
},
|
|
1081
1081
|
);
|
|
1082
1082
|
|
|
1083
|
+
subagent(
|
|
1084
|
+
'fails the sub-agent with reason "timeout" (no apology text) on a transport TimeoutError',
|
|
1085
|
+
async () => {
|
|
1086
|
+
const sessionKey = 'subagent-transport-timeout-test';
|
|
1087
|
+
clearMetaEventRegistry();
|
|
1088
|
+
|
|
1089
|
+
let outcome: unknown;
|
|
1090
|
+
const worker = agent({
|
|
1091
|
+
name: 'worker',
|
|
1092
|
+
toolDefinitions: [def('finish')],
|
|
1093
|
+
toolHandlers: {
|
|
1094
|
+
finish: async (_args, ctx) => {
|
|
1095
|
+
ctx.completeSubAgent?.({ ok: true });
|
|
1096
|
+
return 'finished';
|
|
1097
|
+
},
|
|
1098
|
+
},
|
|
1099
|
+
});
|
|
1100
|
+
const parent = delegatingParent(worker, (o) => {
|
|
1101
|
+
outcome = o;
|
|
1102
|
+
});
|
|
1103
|
+
|
|
1104
|
+
// Call 0: parent delegates. Call 1: the worker's request times out at the
|
|
1105
|
+
// transport (tagged TimeoutError). Call 2: the parent wraps up.
|
|
1106
|
+
let call = 0;
|
|
1107
|
+
const provider: AIProvider = {
|
|
1108
|
+
chat: (): Promise<ChatMessage> => {
|
|
1109
|
+
const n = call;
|
|
1110
|
+
call += 1;
|
|
1111
|
+
if (n === 0) return Promise.resolve(callsTool('delegate', 'd1'));
|
|
1112
|
+
if (n === 1) {
|
|
1113
|
+
return Promise.reject(new DOMException('Anthropic request timed out', 'TimeoutError'));
|
|
1114
|
+
}
|
|
1115
|
+
return Promise.resolve({ role: 'assistant', content: 'done' });
|
|
1116
|
+
},
|
|
1117
|
+
};
|
|
1118
|
+
|
|
1119
|
+
const driver = makeDriver(parent, provider, sessionKey);
|
|
1120
|
+
await driver.sendMessage('go');
|
|
1121
|
+
|
|
1122
|
+
// The parent gets a typed timeout — not the wrong max_iterations default it
|
|
1123
|
+
// used to see when the child answered with the user-facing apology instead.
|
|
1124
|
+
assert.equal(outcome, { ok: false, reason: 'timeout' });
|
|
1125
|
+
assert.ok(
|
|
1126
|
+
getMetaEvents(sessionKey).some(
|
|
1127
|
+
(e) =>
|
|
1128
|
+
e.type === 'subagent.failed' &&
|
|
1129
|
+
e.detail?.agent === 'worker' &&
|
|
1130
|
+
e.detail?.reason === 'timeout',
|
|
1131
|
+
),
|
|
1132
|
+
'a subagent.failed meta event with reason "timeout" should be recorded',
|
|
1133
|
+
);
|
|
1134
|
+
// The child must not speak to the user.
|
|
1135
|
+
assert.not.ok(
|
|
1136
|
+
driver.getHistory().some((m) => m.content?.includes('The request timed out')),
|
|
1137
|
+
'the sub-agent must not append the user-facing timeout apology',
|
|
1138
|
+
);
|
|
1139
|
+
},
|
|
1140
|
+
);
|
|
1141
|
+
|
|
1083
1142
|
subagent.run();
|
|
1084
1143
|
|
|
1085
1144
|
// ---------------------------------------------------------------------------
|
|
@@ -2217,12 +2217,18 @@ export class ChatDriver extends EventTarget implements AiDriver {
|
|
|
2217
2217
|
provider: this.lastResolvedProviderName,
|
|
2218
2218
|
name: e.name,
|
|
2219
2219
|
message: e.message,
|
|
2220
|
+
isSubAgent: this.isSubAgent,
|
|
2220
2221
|
});
|
|
2221
|
-
this.
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2222
|
+
if (this.isSubAgent) {
|
|
2223
|
+
// Bubble a typed failure to the parent instead of speaking to the user.
|
|
2224
|
+
this.failSubAgent('timeout');
|
|
2225
|
+
} else {
|
|
2226
|
+
this.appendToHistory({
|
|
2227
|
+
role: 'assistant',
|
|
2228
|
+
content:
|
|
2229
|
+
'The request timed out. You can ask me to try again, or break this into a smaller step.',
|
|
2230
|
+
});
|
|
2231
|
+
}
|
|
2226
2232
|
return { reason: 'done' };
|
|
2227
2233
|
}
|
|
2228
2234
|
// The request was aborted: either a user cancel (turnController) or a
|