@datalayer/agent-runtimes 1.0.9 → 1.0.10
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/lib/chat/base/ChatBase.js +39 -1
- package/lib/client/AgentsMixin.d.ts +4 -4
- package/lib/client/AgentsMixin.js +7 -7
- package/lib/components/ToolApprovalCard.js +13 -3
- package/lib/config/AgentConfiguration.d.ts +2 -2
- package/lib/config/index.d.ts +1 -1
- package/lib/examples/AgentCheckpointsExample.js +12 -12
- package/lib/examples/AgentEvalsExample.js +3 -3
- package/lib/examples/AgentGuardrailsExample.js +5 -5
- package/lib/examples/AgentHooksExample.js +3 -3
- package/lib/examples/AgentInferenceProviderExample.js +5 -5
- package/lib/examples/AgentMCPExample.js +2 -2
- package/lib/examples/AgentMemoryExample.js +2 -2
- package/lib/examples/AgentMonitoringExample.js +2 -2
- package/lib/examples/AgentNotificationsExample.js +2 -2
- package/lib/examples/AgentOtelExample.js +5 -5
- package/lib/examples/AgentOutputsExample.js +2 -2
- package/lib/examples/AgentParametersExample.js +4 -4
- package/lib/examples/AgentSandboxExample.js +2 -2
- package/lib/examples/AgentSkillsExample.js +2 -2
- package/lib/examples/AgentSubagentsExample.js +2 -2
- package/lib/examples/AgentToolApprovalsExample.js +33 -7
- package/lib/examples/AgentTriggersExample.js +4 -4
- package/lib/examples/ChatExample.js +3 -3
- package/lib/hooks/useAgentRuntimes.js +2 -2
- package/lib/hooks/useAgentsCatalog.d.ts +3 -3
- package/lib/hooks/useAgentsCatalog.js +4 -4
- package/lib/hooks/useCheckpoints.js +2 -2
- package/lib/hooks/useToolApprovals.d.ts +8 -0
- package/lib/hooks/useToolApprovals.js +20 -1
- package/lib/index.d.ts +1 -1
- package/lib/specs/agents/agents.d.ts +51 -50
- package/lib/specs/agents/agents.js +154 -141
- package/lib/specs/agents/index.d.ts +5 -5
- package/lib/specs/agents/index.js +9 -9
- package/lib/types/agents.d.ts +3 -3
- package/lib/types/agentspecs.d.ts +5 -3
- package/lib/types/teams.d.ts +2 -2
- package/package.json +7 -7
- package/scripts/codegen/generate_agents.py +75 -57
- package/scripts/codegen/generate_teams.py +4 -4
- package/scripts/codegen/__pycache__/generate_agents.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_benchmarks.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_evals.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_events.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
|
@@ -32,7 +32,7 @@ import { SANDBOX_STATUS_COLORS, SANDBOX_STATUS_LABELS } from '../types/sandbox';
|
|
|
32
32
|
// ─── Constants ─────────────────────────────────────────────────────────────
|
|
33
33
|
const queryClient = new QueryClient();
|
|
34
34
|
const AGENT_NAME = 'sandbox-example-agent';
|
|
35
|
-
const
|
|
35
|
+
const AGENTSPEC_ID = 'example-full';
|
|
36
36
|
const DEFAULT_LOCAL_BASE_URL = import.meta.env.VITE_BASE_URL || 'http://localhost:8765';
|
|
37
37
|
let _logId = 0;
|
|
38
38
|
function tsNow() {
|
|
@@ -120,7 +120,7 @@ const AgentSandboxInner = ({ onLogout, }) => {
|
|
|
120
120
|
description: 'Agent with sandbox code execution',
|
|
121
121
|
agent_library: 'pydantic-ai',
|
|
122
122
|
transport: 'vercel-ai',
|
|
123
|
-
agent_spec_id:
|
|
123
|
+
agent_spec_id: AGENTSPEC_ID,
|
|
124
124
|
system_prompt: 'You are a helpful AI assistant with a Python execution sandbox. ' +
|
|
125
125
|
'When asked to run code, count, loop, assign variables, compute, or ' +
|
|
126
126
|
'perform any programming task, use the execute_code tool to run ' +
|
|
@@ -17,7 +17,7 @@ import { Chat } from '../chat';
|
|
|
17
17
|
import { useSkills, useSkillActions } from '../hooks';
|
|
18
18
|
const queryClient = new QueryClient();
|
|
19
19
|
const AGENT_NAME = 'skills-example-agent';
|
|
20
|
-
const
|
|
20
|
+
const AGENTSPEC_ID = 'example-skills';
|
|
21
21
|
const DEFAULT_LOCAL_BASE_URL = import.meta.env.VITE_BASE_URL || 'http://localhost:8765';
|
|
22
22
|
const SkillCard = ({ skill, onToggle, onToggleApproval }) => {
|
|
23
23
|
const [showDefinition, setShowDefinition] = useState(false);
|
|
@@ -120,7 +120,7 @@ const AgentSkillsInner = ({ onLogout }) => {
|
|
|
120
120
|
description: 'Agent with skills example - module, package and file based skills',
|
|
121
121
|
agent_library: 'pydantic-ai',
|
|
122
122
|
transport: 'vercel-ai',
|
|
123
|
-
agent_spec_id:
|
|
123
|
+
agent_spec_id: AGENTSPEC_ID,
|
|
124
124
|
enable_skills: true,
|
|
125
125
|
tools: [],
|
|
126
126
|
}),
|
|
@@ -25,7 +25,7 @@ import { uniqueAgentId } from './utils/agentId';
|
|
|
25
25
|
import { useSimpleAuthStore } from '@datalayer/core/lib/views/otel';
|
|
26
26
|
import { Chat } from '../chat';
|
|
27
27
|
const AGENT_NAME = 'subagents-example-agent';
|
|
28
|
-
const
|
|
28
|
+
const AGENTSPEC_ID = 'example-subagents';
|
|
29
29
|
const DEFAULT_LOCAL_BASE_URL = import.meta.env.VITE_BASE_URL || 'http://localhost:8765';
|
|
30
30
|
const SUBAGENTS = [
|
|
31
31
|
{
|
|
@@ -76,7 +76,7 @@ const AgentSubagentsInner = ({ onLogout, }) => {
|
|
|
76
76
|
description: 'Subagents example – multi-agent delegation with researcher and writer',
|
|
77
77
|
agent_library: 'pydantic-ai',
|
|
78
78
|
transport: 'vercel-ai',
|
|
79
|
-
agent_spec_id:
|
|
79
|
+
agent_spec_id: AGENTSPEC_ID,
|
|
80
80
|
enable_skills: true,
|
|
81
81
|
tools: [],
|
|
82
82
|
}),
|
|
@@ -17,9 +17,9 @@ import { Chat } from '../chat';
|
|
|
17
17
|
import { useAgentRuntimeApprovals } from '../stores/agentRuntimeStore';
|
|
18
18
|
const queryClient = new QueryClient();
|
|
19
19
|
const AGENT_NAME_PREFIX = 'tool-approval-example-agent';
|
|
20
|
-
const
|
|
20
|
+
const DEFAULT_AGENTSPEC_ID = 'example-tool-approvals';
|
|
21
21
|
const DEFAULT_LOCAL_BASE_URL = import.meta.env.VITE_BASE_URL || 'http://localhost:8765';
|
|
22
|
-
const
|
|
22
|
+
const getSelectedAgentspecIdFromUi = () => {
|
|
23
23
|
const params = new URLSearchParams(window.location.search);
|
|
24
24
|
const directKeys = [
|
|
25
25
|
'agent_spec_id',
|
|
@@ -41,7 +41,7 @@ const getSelectedAgentSpecIdFromUi = () => {
|
|
|
41
41
|
return specId;
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
return
|
|
44
|
+
return DEFAULT_AGENTSPEC_ID;
|
|
45
45
|
};
|
|
46
46
|
const buildAgentNameForSpec = (specId) => {
|
|
47
47
|
const slug = specId
|
|
@@ -52,10 +52,19 @@ const buildAgentNameForSpec = (specId) => {
|
|
|
52
52
|
const base = slug ? `${AGENT_NAME_PREFIX}-${slug}` : AGENT_NAME_PREFIX;
|
|
53
53
|
return uniqueAgentId(base);
|
|
54
54
|
};
|
|
55
|
+
const parseDisableToolApprovalsFromUi = () => {
|
|
56
|
+
const params = new URLSearchParams(window.location.search);
|
|
57
|
+
const raw = params.get('disable_tool_approvals') ??
|
|
58
|
+
params.get('disableToolApprovals') ??
|
|
59
|
+
'';
|
|
60
|
+
const normalized = raw.trim().toLowerCase();
|
|
61
|
+
return ['1', 'true', 'yes', 'on'].includes(normalized);
|
|
62
|
+
};
|
|
55
63
|
const AgentToolApprovalsInner = ({ onLogout, }) => {
|
|
56
64
|
const { token } = useSimpleAuthStore();
|
|
57
|
-
const [selectedSpecId] = useState(() =>
|
|
58
|
-
const
|
|
65
|
+
const [selectedSpecId] = useState(() => getSelectedAgentspecIdFromUi());
|
|
66
|
+
const [disableToolApprovals, setDisableToolApprovals] = useState(() => parseDisableToolApprovalsFromUi());
|
|
67
|
+
const agentName = useMemo(() => buildAgentNameForSpec(`${selectedSpecId}-${disableToolApprovals ? 'no-approvals' : 'approvals'}`), [selectedSpecId, disableToolApprovals]);
|
|
59
68
|
const [runtimeStatus, setRuntimeStatus] = useState('launching');
|
|
60
69
|
const [isReady, setIsReady] = useState(false);
|
|
61
70
|
const [hookError, setHookError] = useState(null);
|
|
@@ -68,6 +77,9 @@ const AgentToolApprovalsInner = ({ onLogout, }) => {
|
|
|
68
77
|
const pendingApprovalCount = useMemo(() => approvals.filter(approval => approval.status === 'pending' &&
|
|
69
78
|
(!agentId || approval.agent_id === agentId)).length, [approvals, agentId]);
|
|
70
79
|
const createAttemptedRef = useRef(false);
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
createAttemptedRef.current = false;
|
|
82
|
+
}, [agentName]);
|
|
71
83
|
const authFetch = useCallback((url, opts = {}) => fetch(url, {
|
|
72
84
|
...opts,
|
|
73
85
|
headers: {
|
|
@@ -99,6 +111,7 @@ const AgentToolApprovalsInner = ({ onLogout, }) => {
|
|
|
99
111
|
enable_skills: false,
|
|
100
112
|
skills: [],
|
|
101
113
|
tools: ['runtime-echo', 'runtime-sensitive-echo'],
|
|
114
|
+
disableToolApprovals: disableToolApprovals,
|
|
102
115
|
}),
|
|
103
116
|
});
|
|
104
117
|
let resolvedAgentId = agentName;
|
|
@@ -145,7 +158,13 @@ const AgentToolApprovalsInner = ({ onLogout, }) => {
|
|
|
145
158
|
return () => {
|
|
146
159
|
isCancelled = true;
|
|
147
160
|
};
|
|
148
|
-
}, [
|
|
161
|
+
}, [
|
|
162
|
+
agentBaseUrl,
|
|
163
|
+
authFetch,
|
|
164
|
+
agentName,
|
|
165
|
+
disableToolApprovals,
|
|
166
|
+
selectedSpecId,
|
|
167
|
+
]);
|
|
149
168
|
if (!isReady && runtimeStatus !== 'error') {
|
|
150
169
|
return (_jsxs(Box, { sx: {
|
|
151
170
|
display: 'flex',
|
|
@@ -169,7 +188,14 @@ const AgentToolApprovalsInner = ({ onLogout, }) => {
|
|
|
169
188
|
py: 1,
|
|
170
189
|
borderBottom: '1px solid',
|
|
171
190
|
borderColor: 'border.default',
|
|
172
|
-
}, children: _jsx(Text, { sx: { color: 'fg.muted', fontSize: 0 }, children: "Agent already running - reconnected." }) })), _jsx(Box, { sx: { flex: 1, minHeight: 0, display: 'flex' }, children: _jsx(Box, { sx: { flex: 1, minWidth: 0 }, children: _jsx(Chat, { protocol: "vercel-ai", baseUrl: agentBaseUrl, agentId: agentId, authToken: chatAuthToken, title: `Tool Approval Agent - ${podName}`, brandIcon: _jsx(CheckCircleIcon, { size: 16 }), placeholder: "Ask for actions that require approval...", showHeader: true, showNewChatButton: true, showClearButton: false, showTokenUsage: true, autoFocus: true, height: "100%", runtimeId: agentId, historyEndpoint: `${agentBaseUrl}/api/v1/history`, headerActions:
|
|
191
|
+
}, children: _jsx(Text, { sx: { color: 'fg.muted', fontSize: 0 }, children: "Agent already running - reconnected." }) })), _jsx(Box, { sx: { flex: 1, minHeight: 0, display: 'flex' }, children: _jsx(Box, { sx: { flex: 1, minWidth: 0 }, children: _jsx(Chat, { protocol: "vercel-ai", baseUrl: agentBaseUrl, agentId: agentId, authToken: chatAuthToken, title: `Tool Approval Agent - ${podName}`, brandIcon: _jsx(CheckCircleIcon, { size: 16 }), placeholder: "Ask for actions that require approval...", showHeader: true, showNewChatButton: true, showClearButton: false, showTokenUsage: true, autoFocus: true, height: "100%", runtimeId: agentId, historyEndpoint: `${agentBaseUrl}/api/v1/history`, headerActions: _jsxs(Box, { sx: { display: 'flex', alignItems: 'center', gap: 2 }, children: [_jsxs(Text, { sx: { color: 'fg.muted', fontSize: 1 }, children: ["Pending: ", pendingApprovalCount] }), _jsxs("label", { style: {
|
|
192
|
+
display: 'flex',
|
|
193
|
+
alignItems: 'center',
|
|
194
|
+
gap: 6,
|
|
195
|
+
color: 'var(--fgColor-muted)',
|
|
196
|
+
fontSize: 12,
|
|
197
|
+
cursor: 'pointer',
|
|
198
|
+
}, children: [_jsx("input", { type: "checkbox", checked: disableToolApprovals, onChange: event => setDisableToolApprovals(event.currentTarget.checked) }), "Disable tool approvals"] })] }), suggestions: [
|
|
173
199
|
{
|
|
174
200
|
title: 'List your tools',
|
|
175
201
|
message: 'list your tools',
|
|
@@ -33,9 +33,9 @@ import { createUserMessage } from '../types/messages';
|
|
|
33
33
|
const queryClient = new QueryClient();
|
|
34
34
|
// ─── Constants ─────────────────────────────────────────────────────────────
|
|
35
35
|
const AGENT_NAME = 'trigger-example-agent';
|
|
36
|
-
const
|
|
36
|
+
const AGENTSPEC_ID = 'example-one-trigger';
|
|
37
37
|
const APPROVAL_AGENT_NAME = 'trigger-approval-example-agent';
|
|
38
|
-
const
|
|
38
|
+
const APPROVAL_AGENTSPEC_ID = 'example-one-trigger-approval';
|
|
39
39
|
const ONCE_TRIGGER_PROMPT = "List the user's top 3 public and top 3 private GitHub repositories, ranked by recent activity, and provide a brief summary of each. Execute exactly two tool calls: run_skill_script(skill_name='github', script_name='list_repos', kwargs={visibility:'public', sort:'updated', limit:3, format:'json'}) and run_skill_script(skill_name='github', script_name='list_repos', kwargs={visibility:'private', sort:'updated', limit:3, format:'json'}). Do not call list_skills/load_skill/read_skill_resource. Do not retry. If a tool call fails, report failure_reason/error/stderr exactly as returned.";
|
|
40
40
|
const ONCE_TRIGGER_APPROVAL_PROMPT = 'Use the runtime_sensitive_echo tool once.';
|
|
41
41
|
const DEFAULT_LOCAL_BASE_URL = import.meta.env.VITE_BASE_URL || 'http://localhost:8765';
|
|
@@ -232,7 +232,7 @@ const AgentTriggerInner = ({ onLogout, }) => {
|
|
|
232
232
|
description: 'Agent with cron, webhook, event, and manual triggers',
|
|
233
233
|
agent_library: 'pydantic-ai',
|
|
234
234
|
transport: 'vercel-ai',
|
|
235
|
-
agent_spec_id:
|
|
235
|
+
agent_spec_id: AGENTSPEC_ID,
|
|
236
236
|
}),
|
|
237
237
|
});
|
|
238
238
|
let resolvedAgentId = agentName;
|
|
@@ -390,7 +390,7 @@ const AgentTriggerInner = ({ onLogout, }) => {
|
|
|
390
390
|
description: 'Agent with once trigger and tool approval',
|
|
391
391
|
agent_library: 'pydantic-ai',
|
|
392
392
|
transport: 'vercel-ai',
|
|
393
|
-
agent_spec_id:
|
|
393
|
+
agent_spec_id: APPROVAL_AGENTSPEC_ID,
|
|
394
394
|
enable_codemode: false,
|
|
395
395
|
}),
|
|
396
396
|
});
|
|
@@ -24,7 +24,7 @@ import { useExampleAgentRuntimesUrl } from './utils/useExampleAgentRuntimesUrl';
|
|
|
24
24
|
import { ErrorView } from './components';
|
|
25
25
|
import { Chat } from '../chat';
|
|
26
26
|
setupPrimerPortals();
|
|
27
|
-
const
|
|
27
|
+
const AGENTSPEC_ID = 'example-simple';
|
|
28
28
|
const AGENT_NAME = 'simple';
|
|
29
29
|
const AgentRuntimeChatExample = () => {
|
|
30
30
|
const baseUrl = useExampleAgentRuntimesUrl();
|
|
@@ -43,7 +43,7 @@ const AgentRuntimeChatExample = () => {
|
|
|
43
43
|
headers: { 'Content-Type': 'application/json' },
|
|
44
44
|
body: JSON.stringify({
|
|
45
45
|
name,
|
|
46
|
-
agent_spec_id:
|
|
46
|
+
agent_spec_id: AGENTSPEC_ID,
|
|
47
47
|
transport: 'ag-ui',
|
|
48
48
|
}),
|
|
49
49
|
});
|
|
@@ -81,7 +81,7 @@ const AgentRuntimeChatExample = () => {
|
|
|
81
81
|
height: '100vh',
|
|
82
82
|
gap: 3,
|
|
83
83
|
bg: 'canvas.default',
|
|
84
|
-
}, children: [_jsx(Spinner, { size: "large" }), _jsxs(Text, { sx: { color: 'fg.muted' }, children: ["Creating agent from ",
|
|
84
|
+
}, children: [_jsx(Spinner, { size: "large" }), _jsxs(Text, { sx: { color: 'fg.muted' }, children: ["Creating agent from ", AGENTSPEC_ID, "..."] })] }) }));
|
|
85
85
|
}
|
|
86
86
|
// Error state
|
|
87
87
|
if (error || !agentId) {
|
|
@@ -338,9 +338,9 @@ export function useAgentRuntimes(options = {}) {
|
|
|
338
338
|
if (!agentSpecId) {
|
|
339
339
|
return true;
|
|
340
340
|
}
|
|
341
|
-
const
|
|
341
|
+
const runtimeAgentspecId = rt
|
|
342
342
|
.agent_spec_id;
|
|
343
|
-
return
|
|
343
|
+
return runtimeAgentspecId === agentSpecId;
|
|
344
344
|
});
|
|
345
345
|
const latestRuntime = aiAgentRuntimes.slice().sort((a, b) => {
|
|
346
346
|
const aTs = Number(a.started_at || 0);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { AgentRuntimeData,
|
|
1
|
+
import type { AgentRuntimeData, Agentspec } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* Centralised Zustand store for agents.
|
|
4
4
|
*
|
|
5
5
|
* Two collections are maintained:
|
|
6
6
|
*
|
|
7
|
-
* 1. **
|
|
7
|
+
* 1. **agentspecs** – the static catalogue of available agent blueprints
|
|
8
8
|
* (from `@datalayer/agent-runtimes/lib/specs`).
|
|
9
9
|
* Populated once at import time; call `refreshSpecs()` to re-read.
|
|
10
10
|
*
|
|
@@ -14,7 +14,7 @@ import type { AgentRuntimeData, AgentSpec } from '../types';
|
|
|
14
14
|
*/
|
|
15
15
|
export type AgentCatalogStoreState = {
|
|
16
16
|
/** Static catalogue of agent blueprints. */
|
|
17
|
-
|
|
17
|
+
agentspecs: Agentspec[];
|
|
18
18
|
/** Live agent runtimes (running / starting). */
|
|
19
19
|
runningAgents: AgentRuntimeData[];
|
|
20
20
|
/** Re-read agent specs from the config. */
|
|
@@ -10,18 +10,18 @@
|
|
|
10
10
|
* @module hooks/useAgentsCatalog
|
|
11
11
|
*/
|
|
12
12
|
import { create } from 'zustand';
|
|
13
|
-
import {
|
|
13
|
+
import { listAgentspecs } from '../specs';
|
|
14
14
|
export const useAgentCatalogStore = create()(set => ({
|
|
15
|
-
|
|
15
|
+
agentspecs: listAgentspecs(),
|
|
16
16
|
runningAgents: [],
|
|
17
|
-
refreshSpecs: () => set({
|
|
17
|
+
refreshSpecs: () => set({ agentspecs: listAgentspecs() }),
|
|
18
18
|
setRunningAgents: agents => set(state => ({
|
|
19
19
|
runningAgents: agents.map(agent => {
|
|
20
20
|
if (agent.agentSpec)
|
|
21
21
|
return agent;
|
|
22
22
|
if (!agent.agent_spec_id)
|
|
23
23
|
return agent;
|
|
24
|
-
const spec = state.
|
|
24
|
+
const spec = state.agentspecs.find(s => s.id === agent.agent_spec_id);
|
|
25
25
|
return spec ? { ...agent, agentSpec: spec } : agent;
|
|
26
26
|
}),
|
|
27
27
|
})),
|
|
@@ -341,9 +341,9 @@ export function useAgentLifecycle(options) {
|
|
|
341
341
|
if (!agentSpecId) {
|
|
342
342
|
return true;
|
|
343
343
|
}
|
|
344
|
-
const
|
|
344
|
+
const runtimeAgentspecId = rt
|
|
345
345
|
.agent_spec_id;
|
|
346
|
-
return
|
|
346
|
+
return runtimeAgentspecId === agentSpecId;
|
|
347
347
|
});
|
|
348
348
|
const latestRuntime = aiAgentRuntimes.slice().sort((a, b) => {
|
|
349
349
|
const aTs = Number(a.started_at || 0);
|
|
@@ -18,6 +18,14 @@ export type ApprovalRecord = {
|
|
|
18
18
|
toolArgs: Record<string, unknown>;
|
|
19
19
|
status: string;
|
|
20
20
|
note?: string | null;
|
|
21
|
+
requester_uid?: string;
|
|
22
|
+
requesterUid?: string;
|
|
23
|
+
requested_by?: string;
|
|
24
|
+
requestedBy?: string;
|
|
25
|
+
resolved_by?: string;
|
|
26
|
+
resolvedBy?: string;
|
|
27
|
+
resolved_at?: string;
|
|
28
|
+
resolvedAt?: string;
|
|
21
29
|
created_at: string;
|
|
22
30
|
createdAt: string;
|
|
23
31
|
updated_at?: string;
|
|
@@ -42,6 +42,17 @@ function normalizeApproval(raw) {
|
|
|
42
42
|
{};
|
|
43
43
|
const created = str(rec.created_at ?? rec.createdAt);
|
|
44
44
|
const updated = str(rec.updated_at ?? rec.updatedAt);
|
|
45
|
+
const resolvedBy = str(rec.resolved_by ?? rec.resolvedBy);
|
|
46
|
+
const requesterUid = str(rec.requester_uid ?? rec.requesterUid);
|
|
47
|
+
const requestedBy = str(rec.requested_by ?? rec.requestedBy);
|
|
48
|
+
const resolvedAtRaw = str(rec.resolved_at ?? rec.resolvedAt);
|
|
49
|
+
const status = str(rec.status ?? 'pending');
|
|
50
|
+
// Keep reviewer metadata from WS payloads. If this is dropped during
|
|
51
|
+
// normalization, downstream pages receive status=approved/rejected but no
|
|
52
|
+
// reviewer/timestamp context and can incorrectly render "review pending".
|
|
53
|
+
// Some producers only set updated_at on decision; for non-pending statuses,
|
|
54
|
+
// fall back to updated_at so UI can still show a decision time.
|
|
55
|
+
const resolvedAt = resolvedAtRaw || (status !== 'pending' ? updated || undefined : undefined);
|
|
45
56
|
return {
|
|
46
57
|
id,
|
|
47
58
|
agent_id: agent,
|
|
@@ -54,12 +65,20 @@ function normalizeApproval(raw) {
|
|
|
54
65
|
toolCallId: typeof toolCall === 'string' ? toolCall : undefined,
|
|
55
66
|
tool_args: args,
|
|
56
67
|
toolArgs: args,
|
|
57
|
-
status
|
|
68
|
+
status,
|
|
58
69
|
note: typeof rec.note === 'string'
|
|
59
70
|
? rec.note
|
|
60
71
|
: rec.note === null
|
|
61
72
|
? null
|
|
62
73
|
: undefined,
|
|
74
|
+
requester_uid: requesterUid || undefined,
|
|
75
|
+
requesterUid: requesterUid || undefined,
|
|
76
|
+
requested_by: requestedBy || undefined,
|
|
77
|
+
requestedBy: requestedBy || undefined,
|
|
78
|
+
resolved_by: resolvedBy || undefined,
|
|
79
|
+
resolvedBy: resolvedBy || undefined,
|
|
80
|
+
resolved_at: resolvedAt,
|
|
81
|
+
resolvedAt: resolvedAt,
|
|
63
82
|
created_at: created,
|
|
64
83
|
createdAt: created,
|
|
65
84
|
updated_at: updated || undefined,
|
package/lib/index.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ export * from './stores';
|
|
|
6
6
|
export * from './identity';
|
|
7
7
|
export * from './config';
|
|
8
8
|
export * from './specs';
|
|
9
|
-
export type { AgentRuntimeData,
|
|
9
|
+
export type { AgentRuntimeData, Agentspec, BenchmarkSpec, ChatCommonProps, TeamSpec, GuardrailSpec, EvalSpec, TriggerSpec, OutputSpec, NotificationChannelSpec, MCPServer, SkillSpec, SkillInfo, SkillStatus, EnvvarSpec, ToolCallStartContext, ToolCallCompleteContext, } from './types';
|
|
@@ -5,67 +5,68 @@
|
|
|
5
5
|
* THIS FILE IS AUTO-GENERATED. DO NOT EDIT MANUALLY.
|
|
6
6
|
* Generated from YAML specifications in specs/agents/
|
|
7
7
|
*/
|
|
8
|
-
import type {
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const
|
|
13
|
-
export declare const
|
|
14
|
-
export declare const
|
|
15
|
-
export declare const
|
|
16
|
-
export declare const
|
|
17
|
-
export declare const
|
|
18
|
-
export declare const
|
|
19
|
-
export declare const
|
|
20
|
-
export declare const
|
|
21
|
-
export declare const
|
|
22
|
-
export declare const
|
|
23
|
-
export declare const
|
|
24
|
-
export declare const
|
|
25
|
-
export declare const
|
|
26
|
-
export declare const
|
|
27
|
-
export declare const
|
|
28
|
-
export declare const
|
|
29
|
-
export declare const
|
|
30
|
-
export declare const
|
|
31
|
-
export declare const
|
|
32
|
-
export declare const
|
|
33
|
-
export declare const
|
|
34
|
-
export declare const
|
|
35
|
-
export declare const
|
|
36
|
-
export declare const
|
|
37
|
-
export declare const
|
|
38
|
-
export declare const
|
|
39
|
-
export declare const
|
|
40
|
-
export declare const
|
|
41
|
-
export declare const
|
|
42
|
-
export declare const
|
|
43
|
-
export declare const
|
|
44
|
-
export declare const
|
|
45
|
-
export declare const
|
|
46
|
-
export declare const
|
|
47
|
-
export declare const
|
|
48
|
-
export declare const
|
|
49
|
-
export declare const
|
|
50
|
-
export declare const
|
|
51
|
-
export declare const
|
|
52
|
-
export declare const
|
|
53
|
-
export declare const
|
|
54
|
-
export declare const
|
|
8
|
+
import type { Agentspec } from '../../types';
|
|
9
|
+
export declare const ANALYZE_CAMPAIGN_PERFORMANCE_AGENTSPEC_0_0_1: Agentspec;
|
|
10
|
+
export declare const ANALYZE_SUPPORT_TICKETS_AGENTSPEC_0_0_1: Agentspec;
|
|
11
|
+
export declare const AUDIT_INVENTORY_LEVELS_AGENTSPEC_0_0_1: Agentspec;
|
|
12
|
+
export declare const AUTOMATE_REGULATORY_REPORTING_AGENTSPEC_0_0_1: Agentspec;
|
|
13
|
+
export declare const CLASSIFY_ROUTE_EMAILS_AGENTSPEC_0_0_1: Agentspec;
|
|
14
|
+
export declare const COMPREHENSIVE_SALES_ANALYTICS_AGENTSPEC_0_0_1: Agentspec;
|
|
15
|
+
export declare const CRAWLER_AGENTSPEC_0_0_1: Agentspec;
|
|
16
|
+
export declare const DATA_ACQUISITION_AGENTSPEC_0_0_1: Agentspec;
|
|
17
|
+
export declare const DEMO_OUTPUTS_AGENTSPEC_0_0_1: Agentspec;
|
|
18
|
+
export declare const END_OF_MONTH_SALES_PERFORMANCE_AGENTSPEC_0_0_1: Agentspec;
|
|
19
|
+
export declare const EVAL_EXPERIMENT_RUNNER_AGENTSPEC_0_0_1: Agentspec;
|
|
20
|
+
export declare const EXAMPLE_CODEMODE_AGENTSPEC_0_0_1: Agentspec;
|
|
21
|
+
export declare const EXAMPLE_EVALS_NOCODEMODE_AGENTSPEC_0_0_1: Agentspec;
|
|
22
|
+
export declare const EXAMPLE_EVALS_AGENTSPEC_0_0_1: Agentspec;
|
|
23
|
+
export declare const EXAMPLE_FULL_AGENTSPEC_0_0_1: Agentspec;
|
|
24
|
+
export declare const EXAMPLE_GUARDRAILS_AGENTSPEC_0_0_1: Agentspec;
|
|
25
|
+
export declare const EXAMPLE_HOOKS_AGENTSPEC_0_0_1: Agentspec;
|
|
26
|
+
export declare const EXAMPLE_INFERENCE_AGENTSPEC_0_0_1: Agentspec;
|
|
27
|
+
export declare const EXAMPLE_MCP_AGENTSPEC_0_0_1: Agentspec;
|
|
28
|
+
export declare const EXAMPLE_MEMORY_AGENTSPEC_0_0_1: Agentspec;
|
|
29
|
+
export declare const EXAMPLE_MONITORING_AGENTSPEC_0_0_1: Agentspec;
|
|
30
|
+
export declare const EXAMPLE_NO_CODEMODE_AGENTSPEC_0_0_1: Agentspec;
|
|
31
|
+
export declare const EXAMPLE_NOTIFICATIONS_AGENTSPEC_0_0_1: Agentspec;
|
|
32
|
+
export declare const EXAMPLE_ONE_TRIGGER_APPROVAL_AGENTSPEC_0_0_1: Agentspec;
|
|
33
|
+
export declare const EXAMPLE_ONE_TRIGGER_AGENTSPEC_0_0_1: Agentspec;
|
|
34
|
+
export declare const EXAMPLE_OTEL_AGENTSPEC_0_0_1: Agentspec;
|
|
35
|
+
export declare const EXAMPLE_PARAMETERS_AGENTSPEC_0_0_1: Agentspec;
|
|
36
|
+
export declare const EXAMPLE_SIMPLE_AGENTSPEC_0_0_1: Agentspec;
|
|
37
|
+
export declare const EXAMPLE_SKILLS_AGENTSPEC_0_0_1: Agentspec;
|
|
38
|
+
export declare const EXAMPLE_SUBAGENTS_AGENTSPEC_0_0_1: Agentspec;
|
|
39
|
+
export declare const EXAMPLE_TOOL_APPROVALS_AGENTSPEC_0_0_1: Agentspec;
|
|
40
|
+
export declare const EXTRACT_DATA_FROM_FILES_AGENTSPEC_0_0_1: Agentspec;
|
|
41
|
+
export declare const FINANCIAL_VIZ_AGENTSPEC_0_0_1: Agentspec;
|
|
42
|
+
export declare const FINANCIAL_AGENTSPEC_0_0_1: Agentspec;
|
|
43
|
+
export declare const GENERATE_WEEKLY_REPORTS_AGENTSPEC_0_0_1: Agentspec;
|
|
44
|
+
export declare const GITHUB_AGENT_SPEC_0_0_1: Agentspec;
|
|
45
|
+
export declare const INFORMATION_ROUTING_AGENTSPEC_0_0_1: Agentspec;
|
|
46
|
+
export declare const MONITOR_SALES_KPIS_AGENTSPEC_0_0_1: Agentspec;
|
|
47
|
+
export declare const OPTIMIZE_DYNAMIC_PRICING_AGENTSPEC_0_0_1: Agentspec;
|
|
48
|
+
export declare const OPTIMIZE_GRID_OPERATIONS_AGENTSPEC_0_0_1: Agentspec;
|
|
49
|
+
export declare const PROCESS_CITIZEN_REQUESTS_AGENTSPEC_0_0_1: Agentspec;
|
|
50
|
+
export declare const PROCESS_CLINICAL_TRIAL_DATA_AGENTSPEC_0_0_1: Agentspec;
|
|
51
|
+
export declare const PROCESS_FINANCIAL_TRANSACTIONS_AGENTSPEC_0_0_1: Agentspec;
|
|
52
|
+
export declare const SPATIAL_DATA_ANALYSIS_AGENTSPEC_0_0_1: Agentspec;
|
|
53
|
+
export declare const SUMMARIZE_DOCUMENTS_AGENTSPEC_0_0_1: Agentspec;
|
|
54
|
+
export declare const SYNC_CRM_CONTACTS_AGENTSPEC_0_0_1: Agentspec;
|
|
55
|
+
export declare const AGENTSPECS: Record<string, Agentspec>;
|
|
55
56
|
/**
|
|
56
57
|
* Get an agent specification by ID.
|
|
57
58
|
*/
|
|
58
|
-
export declare function
|
|
59
|
+
export declare function getAgentspecs(agentId: string): Agentspec | undefined;
|
|
59
60
|
/**
|
|
60
61
|
* List all available agent specifications.
|
|
61
62
|
*
|
|
62
63
|
* @param prefix - If provided, only return specs whose ID starts with this prefix.
|
|
63
64
|
*/
|
|
64
|
-
export declare function
|
|
65
|
+
export declare function listAgentspecs(prefix?: string): Agentspec[];
|
|
65
66
|
/**
|
|
66
67
|
* Collect all required environment variables for an agent spec.
|
|
67
68
|
*
|
|
68
69
|
* Iterates over the spec's MCP servers and skills and returns the
|
|
69
70
|
* deduplicated union of their `requiredEnvVars` arrays.
|
|
70
71
|
*/
|
|
71
|
-
export declare function
|
|
72
|
+
export declare function getAgentspecRequiredEnvVars(spec: Agentspec): string[];
|