@pellux/goodvibes-sdk 0.34.1 → 0.35.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/contracts/artifacts/operator-contract.json +4 -1
- package/dist/platform/agents/orchestrator-runner.d.ts.map +1 -1
- package/dist/platform/agents/orchestrator-runner.js +17 -3
- package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-controller.js +10 -4
- package/dist/platform/automation/manager-runtime-delivery.d.ts +1 -1
- package/dist/platform/automation/manager-runtime-delivery.d.ts.map +1 -1
- package/dist/platform/automation/manager-runtime-delivery.js +4 -3
- package/dist/platform/channels/policy-manager.d.ts +8 -0
- package/dist/platform/channels/policy-manager.d.ts.map +1 -1
- package/dist/platform/channels/policy-manager.js +43 -1
- package/dist/platform/companion/companion-chat-manager.d.ts +1 -0
- package/dist/platform/companion/companion-chat-manager.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-manager.js +10 -0
- package/dist/platform/companion/companion-chat-routes.js +1 -0
- package/dist/platform/companion/companion-chat-types.d.ts +1 -0
- package/dist/platform/companion/companion-chat-types.d.ts.map +1 -1
- package/dist/platform/control-plane/approval-broker.d.ts +7 -0
- package/dist/platform/control-plane/approval-broker.d.ts.map +1 -1
- package/dist/platform/control-plane/approval-broker.js +30 -0
- package/dist/platform/control-plane/method-catalog-channels.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-channels.js +2 -0
- package/dist/platform/control-plane/method-catalog-email.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-email.js +1 -0
- package/dist/platform/core/compaction-sections.d.ts +0 -2
- package/dist/platform/core/compaction-sections.d.ts.map +1 -1
- package/dist/platform/core/compaction-sections.js +16 -8
- package/dist/platform/core/compaction-types.d.ts +7 -1
- package/dist/platform/core/compaction-types.d.ts.map +1 -1
- package/dist/platform/core/compaction-types.js +6 -0
- package/dist/platform/core/context-compaction.d.ts +20 -4
- package/dist/platform/core/context-compaction.d.ts.map +1 -1
- package/dist/platform/core/context-compaction.js +36 -8
- package/dist/platform/core/conversation-utils.js +1 -1
- package/dist/platform/core/conversation.js +1 -1
- package/dist/platform/core/orchestrator-context-runtime.js +1 -1
- package/dist/platform/core/orchestrator-tool-runtime.js +1 -1
- package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-turn-loop.js +4 -2
- package/dist/platform/core/orchestrator.d.ts +12 -0
- package/dist/platform/core/orchestrator.d.ts.map +1 -1
- package/dist/platform/core/orchestrator.js +36 -8
- package/dist/platform/daemon/http/home-graph-routes.d.ts.map +1 -1
- package/dist/platform/daemon/http/home-graph-routes.js +2 -1
- package/dist/platform/daemon/http/project-planning-routes.d.ts.map +1 -1
- package/dist/platform/daemon/http/project-planning-routes.js +2 -1
- package/dist/platform/hooks/dispatcher.d.ts.map +1 -1
- package/dist/platform/hooks/dispatcher.js +4 -0
- package/dist/platform/hooks/runners/command.d.ts.map +1 -1
- package/dist/platform/hooks/runners/command.js +11 -2
- package/dist/platform/integrations/delivery.d.ts.map +1 -1
- package/dist/platform/integrations/delivery.js +0 -2
- package/dist/platform/intelligence/import-graph.d.ts.map +1 -1
- package/dist/platform/intelligence/import-graph.js +8 -0
- package/dist/platform/knowledge/extractors.d.ts.map +1 -1
- package/dist/platform/knowledge/extractors.js +30 -4
- package/dist/platform/mcp/client.d.ts +2 -0
- package/dist/platform/mcp/client.d.ts.map +1 -1
- package/dist/platform/mcp/client.js +17 -3
- package/dist/platform/mcp/registry.d.ts.map +1 -1
- package/dist/platform/mcp/registry.js +4 -0
- package/dist/platform/media/builtin-generation-providers.d.ts.map +1 -1
- package/dist/platform/media/builtin-generation-providers.js +2 -3
- package/dist/platform/media/provider-registry.d.ts.map +1 -1
- package/dist/platform/media/provider-registry.js +3 -1
- package/dist/platform/multimodal/service.d.ts.map +1 -1
- package/dist/platform/multimodal/service.js +18 -3
- package/dist/platform/providers/anthropic-sse-assembler.d.ts.map +1 -1
- package/dist/platform/providers/anthropic-sse-assembler.js +24 -0
- package/dist/platform/providers/capabilities.d.ts +6 -0
- package/dist/platform/providers/capabilities.d.ts.map +1 -1
- package/dist/platform/providers/capabilities.js +20 -1
- package/dist/platform/providers/gemini.d.ts.map +1 -1
- package/dist/platform/providers/gemini.js +55 -46
- package/dist/platform/providers/index.d.ts +1 -0
- package/dist/platform/providers/index.d.ts.map +1 -1
- package/dist/platform/providers/index.js +1 -0
- package/dist/platform/providers/model-limits.d.ts.map +1 -1
- package/dist/platform/providers/model-limits.js +14 -2
- package/dist/platform/runtime/store/domains/conversation.d.ts +0 -2
- package/dist/platform/runtime/store/domains/conversation.d.ts.map +1 -1
- package/dist/platform/runtime/store/domains/conversation.js +0 -1
- package/dist/platform/runtime/store/helpers/reducers/conversation.d.ts.map +1 -1
- package/dist/platform/runtime/store/helpers/reducers/conversation.js +20 -2
- package/dist/platform/runtime/store/helpers/reducers/lifecycle.d.ts.map +1 -1
- package/dist/platform/runtime/store/helpers/reducers/lifecycle.js +3 -0
- package/dist/platform/runtime/store/helpers/reducers/sync.d.ts.map +1 -1
- package/dist/platform/runtime/store/helpers/reducers/sync.js +7 -1
- package/dist/platform/runtime/ui-read-models-core.d.ts.map +1 -1
- package/dist/platform/runtime/ui-read-models-core.js +4 -1
- package/dist/platform/tools/agent/index.d.ts +1 -0
- package/dist/platform/tools/agent/index.d.ts.map +1 -1
- package/dist/platform/tools/agent/index.js +1 -0
- package/dist/platform/tools/agent/predicates.d.ts +15 -0
- package/dist/platform/tools/agent/predicates.d.ts.map +1 -0
- package/dist/platform/tools/agent/predicates.js +15 -0
- package/dist/platform/utils/error-display.d.ts.map +1 -1
- package/dist/platform/utils/error-display.js +14 -6
- package/dist/platform/version.js +1 -1
- package/dist/platform/voice/providers/shared.d.ts.map +1 -1
- package/dist/platform/voice/providers/shared.js +2 -3
- package/package.json +9 -9
|
@@ -97,8 +97,6 @@ export interface ConversationDomainState {
|
|
|
97
97
|
sessionUsage: TurnUsage;
|
|
98
98
|
/** Estimated token count of the current context window. */
|
|
99
99
|
estimatedContextTokens: number;
|
|
100
|
-
/** Whether a context warning threshold has been crossed. */
|
|
101
|
-
contextWarningActive: boolean;
|
|
102
100
|
/** Message count in the current session conversation. */
|
|
103
101
|
messageCount: number;
|
|
104
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../src/platform/runtime/store/domains/conversation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../src/platform/runtime/store/domains/conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../../src/platform/runtime/store/helpers/reducers/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../../src/platform/runtime/store/helpers/reducers/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAiD,MAAM,+BAA+B,CAAC;AAwB5H,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,SAAS,GAAG,SAAS,GAC3B,uBAAuB,CA0NzB"}
|
|
@@ -5,6 +5,18 @@ function formatToolArgs(event) {
|
|
|
5
5
|
}
|
|
6
6
|
return '{}';
|
|
7
7
|
}
|
|
8
|
+
function makeEmptyUsage() {
|
|
9
|
+
return { inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0, reasoningTokens: 0 };
|
|
10
|
+
}
|
|
11
|
+
function addUsage(usage, event) {
|
|
12
|
+
return {
|
|
13
|
+
inputTokens: usage.inputTokens + event.inputTokens,
|
|
14
|
+
outputTokens: usage.outputTokens + event.outputTokens,
|
|
15
|
+
cacheReadTokens: usage.cacheReadTokens + (event.cacheReadTokens ?? 0),
|
|
16
|
+
cacheWriteTokens: usage.cacheWriteTokens + (event.cacheWriteTokens ?? 0),
|
|
17
|
+
reasoningTokens: usage.reasoningTokens,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
8
20
|
export function updateConversationState(domain, event) {
|
|
9
21
|
const source = event.type;
|
|
10
22
|
if ('callId' in event) {
|
|
@@ -76,6 +88,8 @@ export function updateConversationState(domain, event) {
|
|
|
76
88
|
activeToolCalls: new Map(),
|
|
77
89
|
toolCallsThisTurn: 0,
|
|
78
90
|
lastToolReconciliation: undefined,
|
|
91
|
+
currentTurnUsage: makeEmptyUsage(),
|
|
92
|
+
messageCount: domain.messageCount + 1,
|
|
79
93
|
};
|
|
80
94
|
case 'PREFLIGHT_OK':
|
|
81
95
|
if (!isCurrentTurnEvent(domain, event.turnId) || domain.turnState !== 'preflight')
|
|
@@ -140,14 +154,17 @@ export function updateConversationState(domain, event) {
|
|
|
140
154
|
return {
|
|
141
155
|
...updateDomainMetadata(domain, source),
|
|
142
156
|
currentTurnId: event.turnId,
|
|
157
|
+
currentTurnUsage: addUsage(domain.currentTurnUsage, event),
|
|
158
|
+
sessionUsage: addUsage(domain.sessionUsage, event),
|
|
159
|
+
estimatedContextTokens: event.inputTokens,
|
|
143
160
|
};
|
|
144
161
|
case 'TOOL_BATCH_READY':
|
|
145
|
-
if (!isCurrentTurnEvent(domain, event.turnId) || domain.turnState !== '
|
|
162
|
+
if (!isCurrentTurnEvent(domain, event.turnId) || domain.turnState !== 'streaming')
|
|
146
163
|
return domain;
|
|
147
164
|
return {
|
|
148
165
|
...updateDomainMetadata(domain, source),
|
|
149
166
|
currentTurnId: event.turnId,
|
|
150
|
-
turnState: '
|
|
167
|
+
turnState: 'tool_dispatch',
|
|
151
168
|
};
|
|
152
169
|
case 'TOOLS_DONE':
|
|
153
170
|
if (!isCurrentTurnEvent(domain, event.turnId) || domain.turnState !== 'tool_dispatch')
|
|
@@ -189,6 +206,7 @@ export function updateConversationState(domain, event) {
|
|
|
189
206
|
turnState: 'completed',
|
|
190
207
|
turnEndedAt: now(),
|
|
191
208
|
totalTurns: domain.totalTurns + 1,
|
|
209
|
+
messageCount: domain.messageCount + 1,
|
|
192
210
|
lastTurnResponse: event.response,
|
|
193
211
|
lastTurnStopReason: event.stopReason,
|
|
194
212
|
stream: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../../../src/platform/runtime/store/helpers/reducers/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAChH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,gCAAgC,CAAC;AA+BxC,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,eAAe,GACrB,kBAAkB,CAyBpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,eAAe,GACrB,qBAAqB,CAmCvB;AAiCD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,GAAG,eAAe,CA0D1F;AAED,iBAAS,0BAA0B,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAQ/G;AAED,iBAAS,0BAA0B,CACjC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,EACvC,MAAM,EAAE,MAAM,GACb,eAAe,CAIjB;AAkED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,GAAG,gBAAgB,CAgF9F;AAED,iBAAS,2BAA2B,CAClC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,GACb,gBAAgB,CAYlB;
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../../../src/platform/runtime/store/helpers/reducers/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAChH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,gCAAgC,CAAC;AA+BxC,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,eAAe,GACrB,kBAAkB,CAyBpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,eAAe,GACrB,qBAAqB,CAmCvB;AAiCD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,GAAG,eAAe,CA0D1F;AAED,iBAAS,0BAA0B,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAQ/G;AAED,iBAAS,0BAA0B,CACjC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,EACvC,MAAM,EAAE,MAAM,GACb,eAAe,CAIjB;AAkED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,GAAG,gBAAgB,CAgF9F;AAED,iBAAS,2BAA2B,CAClC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,GACb,gBAAgB,CAYlB;AAmBD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,kBAAkB,GACxB,wBAAwB,CA4G1B;AAED,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,CAAC"}
|
|
@@ -340,6 +340,9 @@ function orchestrationGraphStatus(graph) {
|
|
|
340
340
|
if (nodes.every((node) => node.status === 'pending' || node.status === 'ready')) {
|
|
341
341
|
return nodes.some((node) => node.status === 'ready') ? 'ready' : 'planning';
|
|
342
342
|
}
|
|
343
|
+
if (nodes.every((node) => node.status === 'completed' || node.status === 'cancelled')) {
|
|
344
|
+
return nodes.some((node) => node.status === 'completed') ? 'completed' : 'cancelled';
|
|
345
|
+
}
|
|
343
346
|
return 'running';
|
|
344
347
|
}
|
|
345
348
|
export function updateOrchestrationState(domain, event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../../../src/platform/runtime/store/helpers/reducers/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAqB,MAAM,+BAA+B,CAAC;AAClH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AACxG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,KAAK,EAAE,wBAAwB,EAA8B,MAAM,gCAAgC,CAAC;AAC3G,OAAO,KAAK,EAAE,iBAAiB,EAAuC,MAAM,0BAA0B,CAAC;AACvG,OAAO,KAAK,EAAE,cAAc,EAA4C,MAAM,sBAAsB,CAAC;AACrG,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGnE,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,kBAAkB,GACxB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../../../src/platform/runtime/store/helpers/reducers/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,9 +33,15 @@ export function updateCommunicationState(domain, event) {
|
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
const recentRecordIds = uniq([event.messageId, ...domain.recentRecordIds]).slice(0, 200);
|
|
36
|
+
const retainedRecords = new Map();
|
|
37
|
+
for (const id of recentRecordIds) {
|
|
38
|
+
const record = records.get(id);
|
|
39
|
+
if (record)
|
|
40
|
+
retainedRecords.set(id, record);
|
|
41
|
+
}
|
|
36
42
|
return {
|
|
37
43
|
...updateDomainMetadata(domain, event.type),
|
|
38
|
-
records,
|
|
44
|
+
records: retainedRecords,
|
|
39
45
|
recentRecordIds,
|
|
40
46
|
totalSent: domain.totalSent + (event.type === 'COMMUNICATION_SENT' ? 1 : 0),
|
|
41
47
|
totalDelivered: domain.totalDelivered + (event.type === 'COMMUNICATION_DELIVERED' ? 1 : 0),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-read-models-core.d.ts","sourceRoot":"","sources":["../../../src/platform/runtime/ui-read-models-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-read-models-core.d.ts","sourceRoot":"","sources":["../../../src/platform/runtime/ui-read-models-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK5D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;CAC9C;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,eAAe,GAAG,gBAAgB,CAmDvF"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { createStoreBackedReadModel, listProviderIds, projectRecords, projectValues } from './ui-read-model-helpers.js';
|
|
2
|
+
/** Fraction of the model context window at which the context-warning flag activates. */
|
|
3
|
+
const CONTEXT_WARNING_THRESHOLD = 0.85;
|
|
2
4
|
export function createCoreReadModels(runtimeServices) {
|
|
3
5
|
const { runtimeStore } = runtimeServices;
|
|
4
6
|
return {
|
|
@@ -22,7 +24,8 @@ export function createCoreReadModels(runtimeServices) {
|
|
|
22
24
|
contextWindow: state.model.tokenLimits.contextWindow,
|
|
23
25
|
turnState: state.conversation.turnState,
|
|
24
26
|
streamToolPreview: state.conversation.stream.partialToolPreview,
|
|
25
|
-
contextWarningActive: state.
|
|
27
|
+
contextWarningActive: state.model.tokenLimits.contextWindow > 0 &&
|
|
28
|
+
state.conversation.estimatedContextTokens >= state.model.tokenLimits.contextWindow * CONTEXT_WARNING_THRESHOLD,
|
|
26
29
|
pendingApproval: state.permissions.awaitingDecision,
|
|
27
30
|
denialCount: state.permissions.denialCount,
|
|
28
31
|
};
|
|
@@ -6,6 +6,7 @@ import type { WrfcController } from '../../agents/wrfc-controller.js';
|
|
|
6
6
|
import { AgentManager } from './manager.js';
|
|
7
7
|
export type { AgentExecutor, AgentRecord } from './manager.js';
|
|
8
8
|
export { AGENT_TEMPLATES, AgentManager } from './manager.js';
|
|
9
|
+
export { isActiveAgent } from './predicates.js';
|
|
9
10
|
export declare function createAgentTool(config: {
|
|
10
11
|
manager: AgentManager;
|
|
11
12
|
messageBus: Pick<AgentMessageBus, 'getMessages' | 'send'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platform/tools/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAmB,YAAY,EAAoB,MAAM,cAAc,CAAC;AAK/E,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platform/tools/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAmB,YAAY,EAAoB,MAAM,cAAc,CAAC;AAK/E,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAiHhD,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,GAAG,MAAM,CAAC,CAAC;IAC1D,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,GAAG,SAAS,CAAC;IAChE,eAAe,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,SAAS,CAAC;IACrE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;CAC3C,GAAG,IAAI,CAwlBP"}
|
|
@@ -7,6 +7,7 @@ import { summarizeError } from '../../utils/error-display.js';
|
|
|
7
7
|
import { toRecord } from '../../utils/record-coerce.js';
|
|
8
8
|
import { evaluateWrfcBatchPolicy } from './wrfc-batch-policy.js';
|
|
9
9
|
export { AGENT_TEMPLATES, AgentManager } from './manager.js';
|
|
10
|
+
export { isActiveAgent } from './predicates.js';
|
|
10
11
|
// ---------------------------------------------------------------------------
|
|
11
12
|
// Tool implementation
|
|
12
13
|
// ---------------------------------------------------------------------------
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
|
|
2
|
+
import type { AgentRecord } from './manager.js';
|
|
3
|
+
/**
|
|
4
|
+
* Returns true when an agent is active (running or pending).
|
|
5
|
+
*
|
|
6
|
+
* Pure predicate with no runtime dependencies — intentionally a leaf module so
|
|
7
|
+
* core/orchestrator code can share it without importing the heavier
|
|
8
|
+
* `compaction-sections` module. Importing the predicate from `compaction-sections`
|
|
9
|
+
* previously pulled that module into the orchestrator turn-loop graph, creating a
|
|
10
|
+
* circular import that left the tool-loop circuit-breaker threshold constant in
|
|
11
|
+
* its temporal dead zone (undefined) at runtime, so the breaker never tripped and
|
|
12
|
+
* all-failed tool turns looped forever.
|
|
13
|
+
*/
|
|
14
|
+
export declare function isActiveAgent(a: Pick<AgentRecord, 'status'>): boolean;
|
|
15
|
+
//# sourceMappingURL=predicates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predicates.d.ts","sourceRoot":"","sources":["../../../../src/platform/tools/agent/predicates.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,OAAO,CAErE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
|
|
2
|
+
/**
|
|
3
|
+
* Returns true when an agent is active (running or pending).
|
|
4
|
+
*
|
|
5
|
+
* Pure predicate with no runtime dependencies — intentionally a leaf module so
|
|
6
|
+
* core/orchestrator code can share it without importing the heavier
|
|
7
|
+
* `compaction-sections` module. Importing the predicate from `compaction-sections`
|
|
8
|
+
* previously pulled that module into the orchestrator turn-loop graph, creating a
|
|
9
|
+
* circular import that left the tool-loop circuit-breaker threshold constant in
|
|
10
|
+
* its temporal dead zone (undefined) at runtime, so the breaker never tripped and
|
|
11
|
+
* all-failed tool turns looped forever.
|
|
12
|
+
*/
|
|
13
|
+
export function isActiveAgent(a) {
|
|
14
|
+
return a.status === 'running' || a.status === 'pending';
|
|
15
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-display.d.ts","sourceRoot":"","sources":["../../../src/platform/utils/error-display.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,aAAa,EAAE,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9I,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"error-display.d.ts","sourceRoot":"","sources":["../../../src/platform/utils/error-display.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,aAAa,EAAE,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9I,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AA8BnF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CACnD;AAED,MAAM,WAAW,iCAAkC,SAAQ,oBAAoB;IAC7E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/C;AAoJD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE3D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,eAAe,CA6CvG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,MAAM,CAE9F;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,MAAM,CAU3F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,yBAA8B,GAAG,yBAAyB,CAkBzH;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iCAAsC,GAAG,aAAa,CA0D9G;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnF"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { AppError, ProviderError } from '../types/errors.js';
|
|
2
2
|
import { redactSensitiveData } from './redaction.js';
|
|
3
3
|
const MAX_ERROR_LENGTH = 240;
|
|
4
|
+
// NOTE: The error classifier below (NETWORK_ERROR_PATTERNS, inferCategory, inferHint,
|
|
5
|
+
// buildSummary, getNetworkErrorMessage) is intentionally duplicated from
|
|
6
|
+
// packages/daemon-sdk/src/error-response.ts. The two copies operate on different error
|
|
7
|
+
// hierarchies (platform AppError/NormalizedError vs daemon GoodVibesSdkError) and are
|
|
8
|
+
// deliberately NOT extracted into @pellux/goodvibes-errors in this patch to avoid a
|
|
9
|
+
// risky cross-package move in a published library. Keep this classifier in sync with
|
|
10
|
+
// that twin so the two cannot drift further.
|
|
4
11
|
const NETWORK_ERROR_PATTERNS = [
|
|
5
12
|
{
|
|
6
13
|
pattern: /ECONNREFUSED/i,
|
|
@@ -8,7 +15,7 @@ const NETWORK_ERROR_PATTERNS = [
|
|
|
8
15
|
message: (provider) => `Cannot connect to ${provider ?? 'the provider'}. Check whether the service is reachable.`,
|
|
9
16
|
},
|
|
10
17
|
{
|
|
11
|
-
pattern: /ETIMEDOUT|ECONNABORTED
|
|
18
|
+
pattern: /ETIMEDOUT|ECONNABORTED/i,
|
|
12
19
|
category: 'timeout',
|
|
13
20
|
message: () => 'Connection timed out before the request completed.',
|
|
14
21
|
},
|
|
@@ -79,7 +86,7 @@ function inferCategory(message, statusCode) {
|
|
|
79
86
|
return 'authorization';
|
|
80
87
|
if (statusCode === 404)
|
|
81
88
|
return 'not_found';
|
|
82
|
-
if (statusCode === 408)
|
|
89
|
+
if (statusCode === 408 || statusCode === 504)
|
|
83
90
|
return 'timeout';
|
|
84
91
|
if (statusCode === 429)
|
|
85
92
|
return 'rate_limit';
|
|
@@ -87,7 +94,8 @@ function inferCategory(message, statusCode) {
|
|
|
87
94
|
return 'bad_request';
|
|
88
95
|
if (statusCode !== undefined && statusCode >= 500)
|
|
89
96
|
return 'service';
|
|
90
|
-
|
|
97
|
+
// Word boundaries avoid false positives on "authorization"/"author"/"authority" (matches the daemon-sdk twin).
|
|
98
|
+
if (/api[_\s-]?key|\bauth\b|\btoken\b|credential|\bjwt\b|unauthoriz/.test(msg))
|
|
91
99
|
return 'authentication';
|
|
92
100
|
if (/forbidden|access denied|permission denied|not allowed/.test(msg))
|
|
93
101
|
return 'authorization';
|
|
@@ -112,9 +120,9 @@ function inferHint(category, statusCode) {
|
|
|
112
120
|
case 'rate_limit':
|
|
113
121
|
return 'The caller may retry automatically. If this persists, wait, lower request volume, or switch models/providers.';
|
|
114
122
|
case 'authentication':
|
|
115
|
-
return 'Possible causes
|
|
123
|
+
return 'The provider rejected authentication. Possible causes include invalid or expired credentials, missing account/session state, account restrictions, or the wrong provider/endpoint receiving the request.';
|
|
116
124
|
case 'authorization':
|
|
117
|
-
return 'Possible causes
|
|
125
|
+
return 'Possible causes include missing model access, account permissions, safety/policy restrictions, or provider routing to a service that does not expose this model.';
|
|
118
126
|
case 'billing':
|
|
119
127
|
return 'Check credits, subscription status, usage limits, or account entitlements.';
|
|
120
128
|
case 'timeout':
|
|
@@ -310,7 +318,7 @@ export function toProviderError(error, options = {}) {
|
|
|
310
318
|
...(options.requestId ?? normalized.requestId ? { requestId: options.requestId ?? normalized.requestId } : {}),
|
|
311
319
|
...(options.providerCode ?? normalized.providerCode ? { providerCode: options.providerCode ?? normalized.providerCode } : {}),
|
|
312
320
|
...(options.providerType ?? normalized.providerType ? { providerType: options.providerType ?? normalized.providerType } : {}),
|
|
313
|
-
...(options.retryAfterMs ?? normalized.retryAfterMs !== undefined
|
|
321
|
+
...((options.retryAfterMs ?? normalized.retryAfterMs) !== undefined
|
|
314
322
|
? { retryAfterMs: options.retryAfterMs ?? normalized.retryAfterMs }
|
|
315
323
|
: {}),
|
|
316
324
|
...(options.rawMessage
|
package/dist/platform/version.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
let version = '0.
|
|
3
|
+
let version = '0.35.0';
|
|
4
4
|
try {
|
|
5
5
|
const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
|
|
6
6
|
version = pkg.version ?? version;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/platform/voice/providers/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACpB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/platform/voice/providers/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAIrB,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAElE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAE5E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAMtE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG3F;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBnD;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,EAC3C,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,mBAAmB,CAUrB;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiB1D;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CASrE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKpF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAe7D;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAInF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { instrumentedFetch } from '../../utils/fetch-with-timeout.js';
|
|
2
|
+
import { isRecord } from '../../utils/record-coerce.js';
|
|
2
3
|
export function trimToUndefined(value) {
|
|
3
4
|
return typeof value === 'string' && value.trim().length > 0 ? value.trim() : undefined;
|
|
4
5
|
}
|
|
@@ -6,9 +7,7 @@ export function asFiniteNumber(value) {
|
|
|
6
7
|
return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
|
|
7
8
|
}
|
|
8
9
|
export function asRecord(value) {
|
|
9
|
-
return
|
|
10
|
-
? value
|
|
11
|
-
: undefined;
|
|
10
|
+
return isRecord(value) ? value : undefined;
|
|
12
11
|
}
|
|
13
12
|
export function readFirstEnv(envVars) {
|
|
14
13
|
for (const envVar of envVars) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pellux/goodvibes-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"description": "TypeScript SDK for building GoodVibes operator, peer, web, mobile, and daemon-connected apps with typed contracts, auth, realtime events, and transport layers.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"goodvibes",
|
|
@@ -453,14 +453,14 @@
|
|
|
453
453
|
"sideEffects": false,
|
|
454
454
|
"type": "module",
|
|
455
455
|
"dependencies": {
|
|
456
|
-
"@pellux/goodvibes-contracts": "0.
|
|
457
|
-
"@pellux/goodvibes-daemon-sdk": "0.
|
|
458
|
-
"@pellux/goodvibes-errors": "0.
|
|
459
|
-
"@pellux/goodvibes-operator-sdk": "0.
|
|
460
|
-
"@pellux/goodvibes-peer-sdk": "0.
|
|
461
|
-
"@pellux/goodvibes-transport-core": "0.
|
|
462
|
-
"@pellux/goodvibes-transport-http": "0.
|
|
463
|
-
"@pellux/goodvibes-transport-realtime": "0.
|
|
456
|
+
"@pellux/goodvibes-contracts": "0.35.0",
|
|
457
|
+
"@pellux/goodvibes-daemon-sdk": "0.35.0",
|
|
458
|
+
"@pellux/goodvibes-errors": "0.35.0",
|
|
459
|
+
"@pellux/goodvibes-operator-sdk": "0.35.0",
|
|
460
|
+
"@pellux/goodvibes-peer-sdk": "0.35.0",
|
|
461
|
+
"@pellux/goodvibes-transport-core": "0.35.0",
|
|
462
|
+
"@pellux/goodvibes-transport-http": "0.35.0",
|
|
463
|
+
"@pellux/goodvibes-transport-realtime": "0.35.0"
|
|
464
464
|
},
|
|
465
465
|
"optionalDependencies": {
|
|
466
466
|
"@agentclientprotocol/sdk": "^0.21.0",
|