@genesislcap/foundation-ai 14.452.0 → 14.452.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.
- package/dist/dts/index.d.ts +1 -1
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/transports/anthropic-transport.d.ts.map +1 -1
- package/dist/dts/transports/gemini-transport.d.ts.map +1 -1
- package/dist/dts/types/chat.types.d.ts +50 -3
- package/dist/dts/types/chat.types.d.ts.map +1 -1
- package/dist/esm/transports/anthropic-transport.js +10 -1
- package/dist/esm/transports/gemini-transport.js +9 -1
- package/dist/foundation-ai.api.json +64 -2
- package/dist/foundation-ai.d.ts +51 -3
- package/package.json +11 -11
package/dist/dts/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { GeminiTransport, MalformedFunctionCallError } from './transports/gemini
|
|
|
7
7
|
export { AI_FEATURE_FLAG, isAIFeatureEnabled } from './utils/feature-flags';
|
|
8
8
|
export { SUPPORTED_ANTHROPIC_MODEL_IDS, SUPPORTED_GEMINI_MODEL_IDS } from './types';
|
|
9
9
|
export type { AIConfig, AIStatus, AIProviderType, AnthropicAIConfig, AnthropicModelId, ChromeAIConfig, ChromeAvailability, GeminiAIConfig, GeminiModelId, ServerAIConfig, } from './types';
|
|
10
|
-
export type { AgentPickerMode, ChatAgentConfig, ChatAgentPickerConfig, ChatAnimationsConfig, ChatAttachment, ChatConfig, ChatDriverResult, ChatInputDuringExecutionMode, ChatMessage, ChatInteraction, ChatRequestOptions, ChatRole, ChatStreamChunk, ChatToolCall, ChatToolCallUnknown, ChatToolDefinition, ChatToolHandlers, ChatToolResult, ChatUiConfig, ChatSuggestionsConfig, InteractionRequestOptions, InteractionResult, SubAgentRequestOptions, } from './types/chat.types';
|
|
10
|
+
export type { AgentPickerMode, ChatAgentConfig, ChatAgentPickerConfig, ChatAnimationsConfig, ChatAttachment, ChatConfig, ChatDriverResult, ChatInputDuringExecutionMode, ChatMessage, ChatInteraction, ChatRequestOptions, ChatRole, ChatStreamChunk, ChatToolCall, ChatToolCallUnknown, ChatToolDefinition, ChatToolHandlers, ChatToolResult, ChatUiConfig, ChatSuggestionsConfig, InteractionRequestOptions, InteractionResult, SubAgentFailureReason, SubAgentRequestOptions, } from './types/chat.types';
|
|
11
11
|
export { isChatToolCallUnknown } from './types/chat.types';
|
|
12
12
|
export type { ChatTransport } from './types/chat-transport.types';
|
|
13
13
|
export type { CostReportingTransport } from './types/transports.types';
|
package/dist/dts/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,UAAU,EACV,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACpF,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1E,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,UAAU,EACV,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACpF,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1E,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-transport.d.ts","sourceRoot":"","sources":["../../../src/transports/anthropic-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAEV,WAAW,EACX,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AAmD7B,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6DD;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,YAAW,WAAW,EAAE,aAAa,EAAE,sBAAsB;IAC3F,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAK;gBAEhB,MAAM,GAAE,wBAA6B;IAmBjD,SAAS,IAAI;QAAE,QAAQ,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,gBAAgB,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAQrF,iGAAiG;IACjG,eAAe,IAAI,MAAM;IAIzB,oFAAoF;IACpF,iBAAiB,IAAI,IAAI;IAMnB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgDvE,eAAe,CACnB,OAAO,EAAE,WAAW,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic-transport.d.ts","sourceRoot":"","sources":["../../../src/transports/anthropic-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAEV,WAAW,EACX,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AAmD7B,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6DD;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,YAAW,WAAW,EAAE,aAAa,EAAE,sBAAsB;IAC3F,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAK;gBAEhB,MAAM,GAAE,wBAA6B;IAmBjD,SAAS,IAAI;QAAE,QAAQ,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,gBAAgB,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAQrF,iGAAiG;IACjG,eAAe,IAAI,MAAM;IAIzB,oFAAoF;IACpF,iBAAiB,IAAI,IAAI;IAMnB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgDvE,eAAe,CACnB,OAAO,EAAE,WAAW,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAiCvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAa;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;IAEhD;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA0BrB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAkE3B,OAAO,CAAC,qBAAqB;IAkD7B,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAO;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAO;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAO;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAIxC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAQ;YAEjC,IAAI;CA+CnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-transport.d.ts","sourceRoot":"","sources":["../../../src/transports/gemini-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAEV,WAAW,EACX,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AA0C7B,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAUD;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM;gBAAtB,aAAa,CAAC,EAAE,MAAM;CAI5C;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAgB,YAAW,WAAW,EAAE,aAAa,EAAE,sBAAsB;IACxF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAK;gBAEhB,MAAM,GAAE,qBAA0B;IAmB9C,SAAS,IAAI;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,aAAa,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAQ/E,iGAAiG;IACjG,eAAe,IAAI,MAAM;IAIzB,oFAAoF;IACpF,iBAAiB,IAAI,IAAI;IAMnB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBvE,eAAe,CACnB,OAAO,EAAE,WAAW,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini-transport.d.ts","sourceRoot":"","sources":["../../../src/transports/gemini-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAEV,WAAW,EACX,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AA0C7B,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAUD;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM;gBAAtB,aAAa,CAAC,EAAE,MAAM;CAI5C;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAgB,YAAW,WAAW,EAAE,aAAa,EAAE,sBAAsB;IACxF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAK;gBAEhB,MAAM,GAAE,qBAA0B;IAmB9C,SAAS,IAAI;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,aAAa,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAQ/E,iGAAiG;IACjG,eAAe,IAAI,MAAM;IAIzB,oFAAoF;IACpF,iBAAiB,IAAI,IAAI;IAMnB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBvE,eAAe,CACnB,OAAO,EAAE,WAAW,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAsCvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAa;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;IAEhD;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,gBAAgB;IAwDxB,OAAO,CAAC,kBAAkB;IA0E1B,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAO;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAO;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAGxC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAQ;YAEjC,IAAI;IAiDlB,OAAO,CAAC,eAAe;CAexB"}
|
|
@@ -210,6 +210,24 @@ export interface InteractionRequestOptions {
|
|
|
210
210
|
*/
|
|
211
211
|
chatInputDuringExecution?: ChatInputDuringExecutionMode;
|
|
212
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Why a sub-agent run ended without producing a structured result via
|
|
215
|
+
* `completeSubAgent`. Surfaced on the `{ ok: false }` branch of
|
|
216
|
+
* `requestSubAgent` so the parent tool handler can decide how to recover.
|
|
217
|
+
*
|
|
218
|
+
* - `max_iterations` — the sub-agent's tool loop ended without calling its
|
|
219
|
+
* completion tool (hit the iteration cap, or — defensively — a provider
|
|
220
|
+
* ignored forced tool use and returned a free-text turn).
|
|
221
|
+
* - `malformed_tool_call` — the provider repeatedly returned an unparseable
|
|
222
|
+
* tool call (e.g. Gemini `MALFORMED_FUNCTION_CALL`) after retries.
|
|
223
|
+
* - `empty_response` — the model repeatedly returned an empty response after
|
|
224
|
+
* retries.
|
|
225
|
+
* - `unknown_tool_limit` — the model repeatedly called tools that aren't
|
|
226
|
+
* available to it.
|
|
227
|
+
*
|
|
228
|
+
* @beta
|
|
229
|
+
*/
|
|
230
|
+
export type SubAgentFailureReason = 'max_iterations' | 'malformed_tool_call' | 'empty_response' | 'unknown_tool_limit';
|
|
213
231
|
/**
|
|
214
232
|
* Map of tool name to async handler function.
|
|
215
233
|
*
|
|
@@ -236,10 +254,25 @@ export type ChatToolHandlers<TSubAgent extends {
|
|
|
236
254
|
requestInteraction: <T = unknown>(componentName: string, data: any, options?: InteractionRequestOptions) => Promise<T>;
|
|
237
255
|
/**
|
|
238
256
|
* Delegate to a named sub-agent declared on the parent agent config.
|
|
239
|
-
*
|
|
240
|
-
*
|
|
257
|
+
*
|
|
258
|
+
* Resolves to a discriminated union:
|
|
259
|
+
* - `{ ok: true, result }` — the sub-agent called `completeSubAgent(result)`.
|
|
260
|
+
* - `{ ok: false, reason }` — the run ended without completing (see
|
|
261
|
+
* {@link SubAgentFailureReason}). The parent handler decides how to
|
|
262
|
+
* recover — typically by returning the issue info to its own agent.
|
|
263
|
+
*
|
|
264
|
+
* Sub-agents run with tool use forced, so they can no longer end on a
|
|
265
|
+
* free-text turn; the previous string fallback has been removed.
|
|
241
266
|
*/
|
|
242
|
-
requestSubAgent?: <T = never>(name: TSubAgent['name'], options?: SubAgentRequestOptions) => Promise<
|
|
267
|
+
requestSubAgent?: <T = never>(name: TSubAgent['name'], options?: SubAgentRequestOptions) => Promise<{
|
|
268
|
+
ok: true;
|
|
269
|
+
result: T;
|
|
270
|
+
reason?: never;
|
|
271
|
+
} | {
|
|
272
|
+
ok: false;
|
|
273
|
+
result?: never;
|
|
274
|
+
reason: SubAgentFailureReason;
|
|
275
|
+
}>;
|
|
243
276
|
/**
|
|
244
277
|
* Signal explicit completion from within a sub-agent tool handler.
|
|
245
278
|
* The resolved value is returned to the parent handler as the structured result of
|
|
@@ -267,6 +300,20 @@ export interface ChatRequestOptions {
|
|
|
267
300
|
tools?: ChatToolDefinition[];
|
|
268
301
|
attachments?: ChatAttachment[];
|
|
269
302
|
signal?: AbortSignal;
|
|
303
|
+
/**
|
|
304
|
+
* Whether the model MAY call a tool (`'auto'`, the default when omitted) or
|
|
305
|
+
* MUST call one (`'required'`). `'required'` maps to Anthropic
|
|
306
|
+
* `tool_choice: { type: 'any' }` and Gemini
|
|
307
|
+
* `functionCallingConfig.mode: 'ANY'`. Used by sub-agent loops so a sub-agent
|
|
308
|
+
* can only end a turn by calling a tool (e.g. its completion tool), never by
|
|
309
|
+
* emitting a free-text answer.
|
|
310
|
+
*
|
|
311
|
+
* NOTE: `'required'` is incompatible with Anthropic extended/adaptive
|
|
312
|
+
* thinking — a request must not enable both.
|
|
313
|
+
*
|
|
314
|
+
* @beta
|
|
315
|
+
*/
|
|
316
|
+
toolChoice?: 'auto' | 'required';
|
|
270
317
|
}
|
|
271
318
|
/**
|
|
272
319
|
* The result returned by a driver after processing a user turn.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.types.d.ts","sourceRoot":"","sources":["../../../src/types/chat.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chat.types.d.ts","sourceRoot":"","sources":["../../../src/types/chat.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -132,7 +132,7 @@ export class AnthropicTransport {
|
|
|
132
132
|
// ── ChatTransport (multi-turn chat) ────────────────────────────────────
|
|
133
133
|
sendChatMessage(history, userMessage, options) {
|
|
134
134
|
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
-
var _a;
|
|
135
|
+
var _a, _b;
|
|
136
136
|
const messages = this.toAnthropicMessages(history, userMessage, options === null || options === void 0 ? void 0 : options.attachments);
|
|
137
137
|
const body = {
|
|
138
138
|
model: this.model,
|
|
@@ -148,6 +148,15 @@ export class AnthropicTransport {
|
|
|
148
148
|
input_schema: t.parameters,
|
|
149
149
|
}));
|
|
150
150
|
}
|
|
151
|
+
// `toolChoice: 'required'` forces the model to call one of the provided
|
|
152
|
+
// tools instead of answering with text — used by sub-agent loops so the
|
|
153
|
+
// turn can only end via a tool call. Only meaningful when tools exist.
|
|
154
|
+
// NOTE: Anthropic rejects forced tool use when extended/adaptive thinking
|
|
155
|
+
// is enabled; this transport never sets `thinking` on the chat path, so the
|
|
156
|
+
// two never collide. Keep that invariant if `thinking` is ever added here.
|
|
157
|
+
if ((options === null || options === void 0 ? void 0 : options.toolChoice) === 'required' && ((_b = body.tools) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
158
|
+
body.tool_choice = { type: 'any' };
|
|
159
|
+
}
|
|
151
160
|
const response = yield this.post(body, options === null || options === void 0 ? void 0 : options.signal);
|
|
152
161
|
return this.fromAnthropicResponse(response);
|
|
153
162
|
});
|
|
@@ -125,7 +125,15 @@ export class GeminiTransport {
|
|
|
125
125
|
const systemInstruction = (options === null || options === void 0 ? void 0 : options.systemPrompt)
|
|
126
126
|
? { role: 'system', parts: [{ text: options.systemPrompt }] }
|
|
127
127
|
: undefined;
|
|
128
|
-
|
|
128
|
+
// `toolChoice: 'required'` forces a function call (`mode: 'ANY'`) instead of
|
|
129
|
+
// a text answer — used by sub-agent loops so the turn can only end via a
|
|
130
|
+
// tool call. Only meaningful when functions are declared. Forcing ANY can
|
|
131
|
+
// make the model batch calls in Python-ish syntax → `MALFORMED_FUNCTION_CALL`,
|
|
132
|
+
// which `fromGeminiResponse` already detects and the caller retries.
|
|
133
|
+
const toolConfig = (options === null || options === void 0 ? void 0 : options.toolChoice) === 'required' && tools
|
|
134
|
+
? { functionCallingConfig: { mode: 'ANY' } }
|
|
135
|
+
: undefined;
|
|
136
|
+
const response = yield this.post({ model: this.model, contents, tools, systemInstruction, toolConfig }, options === null || options === void 0 ? void 0 : options.signal);
|
|
129
137
|
return this.fromGeminiResponse(response);
|
|
130
138
|
});
|
|
131
139
|
}
|
|
@@ -3529,6 +3529,33 @@
|
|
|
3529
3529
|
"endIndex": 2
|
|
3530
3530
|
}
|
|
3531
3531
|
},
|
|
3532
|
+
{
|
|
3533
|
+
"kind": "PropertySignature",
|
|
3534
|
+
"canonicalReference": "@genesislcap/foundation-ai!ChatRequestOptions#toolChoice:member",
|
|
3535
|
+
"docComment": "/**\n * Whether the model MAY call a tool (`'auto'`, the default when omitted) or MUST call one (`'required'`). `'required'` maps to Anthropic `tool_choice: { type: 'any' }` and Gemini `functionCallingConfig.mode: 'ANY'`. Used by sub-agent loops so a sub-agent can only end a turn by calling a tool (e.g. its completion tool), never by emitting a free-text answer.\n *\n * NOTE: `'required'` is incompatible with Anthropic extended/adaptive thinking — a request must not enable both.\n *\n * @beta\n */\n",
|
|
3536
|
+
"excerptTokens": [
|
|
3537
|
+
{
|
|
3538
|
+
"kind": "Content",
|
|
3539
|
+
"text": "toolChoice?: "
|
|
3540
|
+
},
|
|
3541
|
+
{
|
|
3542
|
+
"kind": "Content",
|
|
3543
|
+
"text": "'auto' | 'required'"
|
|
3544
|
+
},
|
|
3545
|
+
{
|
|
3546
|
+
"kind": "Content",
|
|
3547
|
+
"text": ";"
|
|
3548
|
+
}
|
|
3549
|
+
],
|
|
3550
|
+
"isReadonly": false,
|
|
3551
|
+
"isOptional": true,
|
|
3552
|
+
"releaseTag": "Beta",
|
|
3553
|
+
"name": "toolChoice",
|
|
3554
|
+
"propertyTypeTokenRange": {
|
|
3555
|
+
"startIndex": 1,
|
|
3556
|
+
"endIndex": 2
|
|
3557
|
+
}
|
|
3558
|
+
},
|
|
3532
3559
|
{
|
|
3533
3560
|
"kind": "PropertySignature",
|
|
3534
3561
|
"canonicalReference": "@genesislcap/foundation-ai!ChatRequestOptions#tools:member",
|
|
@@ -3968,7 +3995,16 @@
|
|
|
3968
3995
|
},
|
|
3969
3996
|
{
|
|
3970
3997
|
"kind": "Content",
|
|
3971
|
-
"text": "<
|
|
3998
|
+
"text": "<{\n ok: true;\n result: T;\n reason?: never;\n } | {\n ok: false;\n result?: never;\n reason: "
|
|
3999
|
+
},
|
|
4000
|
+
{
|
|
4001
|
+
"kind": "Reference",
|
|
4002
|
+
"text": "SubAgentFailureReason",
|
|
4003
|
+
"canonicalReference": "@genesislcap/foundation-ai!SubAgentFailureReason:type"
|
|
4004
|
+
},
|
|
4005
|
+
{
|
|
4006
|
+
"kind": "Content",
|
|
4007
|
+
"text": ";\n }>;\n completeSubAgent?: (result: unknown) => void;\n releaseAgent?: () => void;\n}) => "
|
|
3972
4008
|
},
|
|
3973
4009
|
{
|
|
3974
4010
|
"kind": "Reference",
|
|
@@ -4002,7 +4038,7 @@
|
|
|
4002
4038
|
],
|
|
4003
4039
|
"typeTokenRange": {
|
|
4004
4040
|
"startIndex": 5,
|
|
4005
|
-
"endIndex":
|
|
4041
|
+
"endIndex": 21
|
|
4006
4042
|
}
|
|
4007
4043
|
},
|
|
4008
4044
|
{
|
|
@@ -6932,6 +6968,32 @@
|
|
|
6932
6968
|
],
|
|
6933
6969
|
"name": "startSpeechRecognition"
|
|
6934
6970
|
},
|
|
6971
|
+
{
|
|
6972
|
+
"kind": "TypeAlias",
|
|
6973
|
+
"canonicalReference": "@genesislcap/foundation-ai!SubAgentFailureReason:type",
|
|
6974
|
+
"docComment": "/**\n * Why a sub-agent run ended without producing a structured result via `completeSubAgent`. Surfaced on the `{ ok: false }` branch of `requestSubAgent` so the parent tool handler can decide how to recover.\n *\n * - `max_iterations` — the sub-agent's tool loop ended without calling its completion tool (hit the iteration cap, or — defensively — a provider ignored forced tool use and returned a free-text turn). - `malformed_tool_call` — the provider repeatedly returned an unparseable tool call (e.g. Gemini `MALFORMED_FUNCTION_CALL`) after retries. - `empty_response` — the model repeatedly returned an empty response after retries. - `unknown_tool_limit` — the model repeatedly called tools that aren't available to it.\n *\n * @beta\n */\n",
|
|
6975
|
+
"excerptTokens": [
|
|
6976
|
+
{
|
|
6977
|
+
"kind": "Content",
|
|
6978
|
+
"text": "export type SubAgentFailureReason = "
|
|
6979
|
+
},
|
|
6980
|
+
{
|
|
6981
|
+
"kind": "Content",
|
|
6982
|
+
"text": "'max_iterations' | 'malformed_tool_call' | 'empty_response' | 'unknown_tool_limit'"
|
|
6983
|
+
},
|
|
6984
|
+
{
|
|
6985
|
+
"kind": "Content",
|
|
6986
|
+
"text": ";"
|
|
6987
|
+
}
|
|
6988
|
+
],
|
|
6989
|
+
"fileUrlPath": "src/types/chat.types.ts",
|
|
6990
|
+
"releaseTag": "Beta",
|
|
6991
|
+
"name": "SubAgentFailureReason",
|
|
6992
|
+
"typeTokenRange": {
|
|
6993
|
+
"startIndex": 1,
|
|
6994
|
+
"endIndex": 2
|
|
6995
|
+
}
|
|
6996
|
+
},
|
|
6935
6997
|
{
|
|
6936
6998
|
"kind": "Interface",
|
|
6937
6999
|
"canonicalReference": "@genesislcap/foundation-ai!SubAgentRequestOptions:interface",
|
package/dist/foundation-ai.d.ts
CHANGED
|
@@ -524,6 +524,20 @@ export declare interface ChatRequestOptions {
|
|
|
524
524
|
tools?: ChatToolDefinition[];
|
|
525
525
|
attachments?: ChatAttachment[];
|
|
526
526
|
signal?: AbortSignal;
|
|
527
|
+
/**
|
|
528
|
+
* Whether the model MAY call a tool (`'auto'`, the default when omitted) or
|
|
529
|
+
* MUST call one (`'required'`). `'required'` maps to Anthropic
|
|
530
|
+
* `tool_choice: { type: 'any' }` and Gemini
|
|
531
|
+
* `functionCallingConfig.mode: 'ANY'`. Used by sub-agent loops so a sub-agent
|
|
532
|
+
* can only end a turn by calling a tool (e.g. its completion tool), never by
|
|
533
|
+
* emitting a free-text answer.
|
|
534
|
+
*
|
|
535
|
+
* NOTE: `'required'` is incompatible with Anthropic extended/adaptive
|
|
536
|
+
* thinking — a request must not enable both.
|
|
537
|
+
*
|
|
538
|
+
* @beta
|
|
539
|
+
*/
|
|
540
|
+
toolChoice?: 'auto' | 'required';
|
|
527
541
|
}
|
|
528
542
|
|
|
529
543
|
/**
|
|
@@ -667,10 +681,25 @@ export declare type ChatToolHandlers<TSubAgent extends {
|
|
|
667
681
|
requestInteraction: <T = unknown>(componentName: string, data: any, options?: InteractionRequestOptions) => Promise<T>;
|
|
668
682
|
/**
|
|
669
683
|
* Delegate to a named sub-agent declared on the parent agent config.
|
|
670
|
-
*
|
|
671
|
-
*
|
|
684
|
+
*
|
|
685
|
+
* Resolves to a discriminated union:
|
|
686
|
+
* - `{ ok: true, result }` — the sub-agent called `completeSubAgent(result)`.
|
|
687
|
+
* - `{ ok: false, reason }` — the run ended without completing (see
|
|
688
|
+
* {@link SubAgentFailureReason}). The parent handler decides how to
|
|
689
|
+
* recover — typically by returning the issue info to its own agent.
|
|
690
|
+
*
|
|
691
|
+
* Sub-agents run with tool use forced, so they can no longer end on a
|
|
692
|
+
* free-text turn; the previous string fallback has been removed.
|
|
672
693
|
*/
|
|
673
|
-
requestSubAgent?: <T = never>(name: TSubAgent['name'], options?: SubAgentRequestOptions) => Promise<
|
|
694
|
+
requestSubAgent?: <T = never>(name: TSubAgent['name'], options?: SubAgentRequestOptions) => Promise<{
|
|
695
|
+
ok: true;
|
|
696
|
+
result: T;
|
|
697
|
+
reason?: never;
|
|
698
|
+
} | {
|
|
699
|
+
ok: false;
|
|
700
|
+
result?: never;
|
|
701
|
+
reason: SubAgentFailureReason;
|
|
702
|
+
}>;
|
|
674
703
|
/**
|
|
675
704
|
* Signal explicit completion from within a sub-agent tool handler.
|
|
676
705
|
* The resolved value is returned to the parent handler as the structured result of
|
|
@@ -1184,6 +1213,25 @@ declare interface StructuredPromptOptions {
|
|
|
1184
1213
|
responseSchema?: object;
|
|
1185
1214
|
}
|
|
1186
1215
|
|
|
1216
|
+
/**
|
|
1217
|
+
* Why a sub-agent run ended without producing a structured result via
|
|
1218
|
+
* `completeSubAgent`. Surfaced on the `{ ok: false }` branch of
|
|
1219
|
+
* `requestSubAgent` so the parent tool handler can decide how to recover.
|
|
1220
|
+
*
|
|
1221
|
+
* - `max_iterations` — the sub-agent's tool loop ended without calling its
|
|
1222
|
+
* completion tool (hit the iteration cap, or — defensively — a provider
|
|
1223
|
+
* ignored forced tool use and returned a free-text turn).
|
|
1224
|
+
* - `malformed_tool_call` — the provider repeatedly returned an unparseable
|
|
1225
|
+
* tool call (e.g. Gemini `MALFORMED_FUNCTION_CALL`) after retries.
|
|
1226
|
+
* - `empty_response` — the model repeatedly returned an empty response after
|
|
1227
|
+
* retries.
|
|
1228
|
+
* - `unknown_tool_limit` — the model repeatedly called tools that aren't
|
|
1229
|
+
* available to it.
|
|
1230
|
+
*
|
|
1231
|
+
* @beta
|
|
1232
|
+
*/
|
|
1233
|
+
export declare type SubAgentFailureReason = 'max_iterations' | 'malformed_tool_call' | 'empty_response' | 'unknown_tool_limit';
|
|
1234
|
+
|
|
1187
1235
|
/**
|
|
1188
1236
|
* Options passed to `requestSubAgent` at call time.
|
|
1189
1237
|
*
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genesislcap/foundation-ai",
|
|
3
3
|
"description": "Genesis Foundation AI - Provider-agnostic AI configuration and shared utilities",
|
|
4
|
-
"version": "14.452.
|
|
4
|
+
"version": "14.452.1",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"license": "SEE LICENSE IN license.txt",
|
|
7
7
|
"main": "dist/esm/index.js",
|
|
@@ -51,17 +51,17 @@
|
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@genesislcap/foundation-testing": "14.452.
|
|
55
|
-
"@genesislcap/genx": "14.452.
|
|
56
|
-
"@genesislcap/rollup-builder": "14.452.
|
|
57
|
-
"@genesislcap/ts-builder": "14.452.
|
|
58
|
-
"@genesislcap/uvu-playwright-builder": "14.452.
|
|
59
|
-
"@genesislcap/vite-builder": "14.452.
|
|
60
|
-
"@genesislcap/webpack-builder": "14.452.
|
|
54
|
+
"@genesislcap/foundation-testing": "14.452.1",
|
|
55
|
+
"@genesislcap/genx": "14.452.1",
|
|
56
|
+
"@genesislcap/rollup-builder": "14.452.1",
|
|
57
|
+
"@genesislcap/ts-builder": "14.452.1",
|
|
58
|
+
"@genesislcap/uvu-playwright-builder": "14.452.1",
|
|
59
|
+
"@genesislcap/vite-builder": "14.452.1",
|
|
60
|
+
"@genesislcap/webpack-builder": "14.452.1"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@genesislcap/foundation-logger": "14.452.
|
|
64
|
-
"@genesislcap/foundation-utils": "14.452.
|
|
63
|
+
"@genesislcap/foundation-logger": "14.452.1",
|
|
64
|
+
"@genesislcap/foundation-utils": "14.452.1",
|
|
65
65
|
"@microsoft/fast-foundation": "2.50.0"
|
|
66
66
|
},
|
|
67
67
|
"repository": {
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"publishConfig": {
|
|
73
73
|
"access": "public"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "57cd7afd42c9a1554432603c66e4e5f750c3dc08"
|
|
76
76
|
}
|