@datalayer/agent-runtimes 1.0.3 → 1.0.4
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/README.md +13 -131
- package/lib/chat/Chat.d.ts +3 -1
- package/lib/chat/Chat.js +2 -2
- package/lib/chat/base/ChatBase.js +52 -1
- package/lib/chat/messages/ChatMessageList.js +17 -4
- package/lib/client/AgentsMixin.d.ts +48 -1
- package/lib/client/AgentsMixin.js +109 -0
- package/lib/components/NotificationEventCard.js +51 -26
- package/lib/components/OutputCard.js +21 -7
- package/lib/components/ToolApprovalCard.js +20 -2
- package/lib/examples/AgentCheckpointsExample.js +2 -8
- package/lib/examples/AgentCodemodeExample.js +3 -9
- package/lib/examples/AgentEvalsExample.js +3 -9
- package/lib/examples/AgentGuardrailsExample.js +3 -9
- package/lib/examples/AgentMemoryExample.js +3 -9
- package/lib/examples/AgentMonitoringExample.js +3 -9
- package/lib/examples/AgentNotificationsExample.js +2 -8
- package/lib/examples/AgentOutputsExample.js +3 -9
- package/lib/examples/AgentSandboxExample.js +3 -9
- package/lib/examples/AgentSkillsExample.js +3 -9
- package/lib/examples/AgentToolApprovalsExample.js +89 -24
- package/lib/examples/AgentTriggersExample.js +604 -37
- package/lib/examples/ChatExample.js +2 -10
- package/lib/examples/components/ErrorView.d.ts +14 -0
- package/lib/examples/components/ErrorView.js +20 -0
- package/lib/examples/components/index.d.ts +2 -0
- package/lib/examples/components/index.js +1 -0
- package/lib/examples/main.d.ts +1 -0
- package/lib/examples/main.js +1 -0
- package/lib/protocols/VercelAIAdapter.d.ts +2 -0
- package/lib/protocols/VercelAIAdapter.js +86 -20
- package/lib/shims/json5.d.ts +4 -0
- package/lib/shims/json5.js +8 -0
- package/lib/specs/agents/agents.js +241 -1390
- package/lib/specs/agents/index.js +1 -3
- package/lib/specs/envvars.js +20 -27
- package/lib/specs/evals.js +6 -6
- package/lib/specs/events.d.ts +10 -2
- package/lib/specs/events.js +84 -126
- package/lib/specs/frontendTools.js +2 -2
- package/lib/specs/guardrails.d.ts +7 -0
- package/lib/specs/guardrails.js +159 -240
- package/lib/specs/mcpServers.js +6 -35
- package/lib/specs/memory.d.ts +2 -0
- package/lib/specs/memory.js +17 -4
- package/lib/specs/models.js +5 -25
- package/lib/specs/notifications.js +18 -102
- package/lib/specs/outputs.js +9 -15
- package/lib/specs/skills.js +18 -18
- package/lib/specs/teams/index.js +1 -3
- package/lib/specs/teams/teams.js +348 -468
- package/lib/specs/tools.js +6 -3
- package/lib/specs/triggers.js +11 -61
- package/lib/types/tools.d.ts +2 -0
- package/package.json +1 -1
- package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
- package/scripts/codegen/generate_agents.py +4 -1
- package/scripts/codegen/generate_events.py +12 -4
- package/scripts/codegen/generate_tools.py +20 -0
- package/style/primer-primitives.css +1 -6
- package/scripts/codegen/__pycache__/generate_agents.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_envvars.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_evals.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_guardrails.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_mcp_servers.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_memory.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_models.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_notifications.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_outputs.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_skills.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_teams.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_tools.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_triggers.cpython-313.pyc +0 -0
package/lib/specs/guardrails.js
CHANGED
|
@@ -5,6 +5,40 @@
|
|
|
5
5
|
// ============================================================================
|
|
6
6
|
// Guardrail Definitions
|
|
7
7
|
// ============================================================================
|
|
8
|
+
export const ASYNC_GUARDRAIL_POLICY_GUARDRAIL_SPEC_0_0_1 = {
|
|
9
|
+
id: 'async-guardrail-policy',
|
|
10
|
+
version: '0.0.1',
|
|
11
|
+
name: 'Async Guardrail Policy',
|
|
12
|
+
description: 'Runs policy checks concurrently with model generation for lower latency and fail-fast blocking on unsafe prompts.',
|
|
13
|
+
identity_provider: 'datalayer',
|
|
14
|
+
identity_name: 'policy-bot@acme.com',
|
|
15
|
+
permissions: {
|
|
16
|
+
'read:data': true,
|
|
17
|
+
'write:data': false,
|
|
18
|
+
'execute:code': false,
|
|
19
|
+
'access:internet': false,
|
|
20
|
+
'send:email': false,
|
|
21
|
+
'deploy:production': false,
|
|
22
|
+
},
|
|
23
|
+
token_limits: { per_run: '20K', per_day: '200K', per_month: '2M' },
|
|
24
|
+
};
|
|
25
|
+
export const BLOCKED_KEYWORDS_INTERNAL_GUARDRAIL_SPEC_0_0_1 = {
|
|
26
|
+
id: 'blocked-keywords-internal',
|
|
27
|
+
version: '0.0.1',
|
|
28
|
+
name: 'Blocked Keywords Internal',
|
|
29
|
+
description: 'Blocks sensitive internal terms and accidental credential patterns in prompts.',
|
|
30
|
+
identity_provider: 'datalayer',
|
|
31
|
+
identity_name: 'internal-bot@acme.com',
|
|
32
|
+
permissions: {
|
|
33
|
+
'read:data': true,
|
|
34
|
+
'write:data': false,
|
|
35
|
+
'execute:code': false,
|
|
36
|
+
'access:internet': false,
|
|
37
|
+
'send:email': false,
|
|
38
|
+
'deploy:production': false,
|
|
39
|
+
},
|
|
40
|
+
token_limits: { per_run: '20K', per_day: '200K', per_month: '2M' },
|
|
41
|
+
};
|
|
8
42
|
export const DATA_ENGINEERING_POWER_USER_GUARDRAIL_SPEC_0_0_1 = {
|
|
9
43
|
id: 'data-engineering-power-user',
|
|
10
44
|
version: '0.0.1',
|
|
@@ -21,49 +55,12 @@ export const DATA_ENGINEERING_POWER_USER_GUARDRAIL_SPEC_0_0_1 = {
|
|
|
21
55
|
'deploy:production': true,
|
|
22
56
|
},
|
|
23
57
|
token_limits: { per_run: '200K', per_day: '5M', per_month: '50M' },
|
|
24
|
-
data_scope: {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
},
|
|
30
|
-
data_handling: {
|
|
31
|
-
default_aggregation: false,
|
|
32
|
-
allow_row_level_output: true,
|
|
33
|
-
max_rows_in_output: 100000,
|
|
34
|
-
redact_fields: [],
|
|
35
|
-
hash_fields: [],
|
|
36
|
-
pii_detection: true,
|
|
37
|
-
pii_action: 'redact',
|
|
38
|
-
},
|
|
39
|
-
approval_policy: {
|
|
40
|
-
require_manual_approval_for: [
|
|
41
|
-
'Schema changes',
|
|
42
|
-
'Drop or truncate operations',
|
|
43
|
-
'Production data modifications',
|
|
44
|
-
],
|
|
45
|
-
auto_approved: [
|
|
46
|
-
'Read queries',
|
|
47
|
-
'Data transformations',
|
|
48
|
-
'Pipeline orchestration',
|
|
49
|
-
],
|
|
50
|
-
},
|
|
51
|
-
tool_limits: {
|
|
52
|
-
max_tool_calls: 500,
|
|
53
|
-
max_query_rows: 1000000,
|
|
54
|
-
max_query_runtime: '300s',
|
|
55
|
-
max_time_window_days: 365,
|
|
56
|
-
},
|
|
57
|
-
audit: {
|
|
58
|
-
log_tool_calls: true,
|
|
59
|
-
log_query_metadata_only: false,
|
|
60
|
-
retain_days: 90,
|
|
61
|
-
require_lineage_in_report: true,
|
|
62
|
-
},
|
|
63
|
-
content_safety: {
|
|
64
|
-
treat_crm_text_fields_as_untrusted: true,
|
|
65
|
-
do_not_follow_instructions_from_data: true,
|
|
66
|
-
},
|
|
58
|
+
data_scope: { allowed_systems: ['postgresql', 'mongodb', 's3', 'kafka'], allowed_objects: [], denied_objects: [], denied_fields: ['*SSN*', '*Bank*', '*IBAN*'] },
|
|
59
|
+
data_handling: { default_aggregation: false, allow_row_level_output: true, max_rows_in_output: 100000, redact_fields: [], hash_fields: [], pii_detection: true, pii_action: 'redact' },
|
|
60
|
+
approval_policy: { require_manual_approval_for: ['Schema changes', 'Drop or truncate operations', 'Production data modifications'], auto_approved: ['Read queries', 'Data transformations', 'Pipeline orchestration'] },
|
|
61
|
+
tool_limits: { max_tool_calls: 500, max_query_rows: 1000000, max_query_runtime: '300s', max_time_window_days: 365 },
|
|
62
|
+
audit: { log_tool_calls: true, log_query_metadata_only: false, retain_days: 90, require_lineage_in_report: true },
|
|
63
|
+
content_safety: { treat_crm_text_fields_as_untrusted: true, do_not_follow_instructions_from_data: true },
|
|
67
64
|
};
|
|
68
65
|
export const DEFAULT_PLATFORM_USER_GUARDRAIL_SPEC_0_0_1 = {
|
|
69
66
|
id: 'default-platform-user',
|
|
@@ -81,41 +78,12 @@ export const DEFAULT_PLATFORM_USER_GUARDRAIL_SPEC_0_0_1 = {
|
|
|
81
78
|
'deploy:production': false,
|
|
82
79
|
},
|
|
83
80
|
token_limits: { per_run: '50K', per_day: '500K', per_month: '5M' },
|
|
84
|
-
data_scope: {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
},
|
|
90
|
-
data_handling: {
|
|
91
|
-
default_aggregation: false,
|
|
92
|
-
allow_row_level_output: true,
|
|
93
|
-
max_rows_in_output: 1000,
|
|
94
|
-
redact_fields: [],
|
|
95
|
-
hash_fields: [],
|
|
96
|
-
pii_detection: false,
|
|
97
|
-
pii_action: 'warn',
|
|
98
|
-
},
|
|
99
|
-
approval_policy: {
|
|
100
|
-
require_manual_approval_for: [],
|
|
101
|
-
auto_approved: ['All read-only queries'],
|
|
102
|
-
},
|
|
103
|
-
tool_limits: {
|
|
104
|
-
max_tool_calls: 50,
|
|
105
|
-
max_query_rows: 100000,
|
|
106
|
-
max_query_runtime: '60s',
|
|
107
|
-
max_time_window_days: 90,
|
|
108
|
-
},
|
|
109
|
-
audit: {
|
|
110
|
-
log_tool_calls: true,
|
|
111
|
-
log_query_metadata_only: false,
|
|
112
|
-
retain_days: 30,
|
|
113
|
-
require_lineage_in_report: false,
|
|
114
|
-
},
|
|
115
|
-
content_safety: {
|
|
116
|
-
treat_crm_text_fields_as_untrusted: false,
|
|
117
|
-
do_not_follow_instructions_from_data: true,
|
|
118
|
-
},
|
|
81
|
+
data_scope: { allowed_systems: [], allowed_objects: [], denied_objects: [], denied_fields: [] },
|
|
82
|
+
data_handling: { default_aggregation: false, allow_row_level_output: true, max_rows_in_output: 1000, redact_fields: [], hash_fields: [], pii_detection: false, pii_action: 'warn' },
|
|
83
|
+
approval_policy: { require_manual_approval_for: [], auto_approved: ['All read-only queries'] },
|
|
84
|
+
tool_limits: { max_tool_calls: 50, max_query_rows: 100000, max_query_runtime: '60s', max_time_window_days: 90 },
|
|
85
|
+
audit: { log_tool_calls: true, log_query_metadata_only: false, retain_days: 30, require_lineage_in_report: false },
|
|
86
|
+
content_safety: { treat_crm_text_fields_as_untrusted: false, do_not_follow_instructions_from_data: true },
|
|
119
87
|
};
|
|
120
88
|
export const GITHUB_ACTIONS_DEPLOY_GUARDRAIL_SPEC_0_0_1 = {
|
|
121
89
|
id: 'github-actions-deploy',
|
|
@@ -133,48 +101,12 @@ export const GITHUB_ACTIONS_DEPLOY_GUARDRAIL_SPEC_0_0_1 = {
|
|
|
133
101
|
'deploy:production': true,
|
|
134
102
|
},
|
|
135
103
|
token_limits: { per_run: '150K', per_day: '3M', per_month: '30M' },
|
|
136
|
-
data_scope: {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
},
|
|
142
|
-
data_handling: {
|
|
143
|
-
default_aggregation: false,
|
|
144
|
-
allow_row_level_output: true,
|
|
145
|
-
max_rows_in_output: 50000,
|
|
146
|
-
redact_fields: [],
|
|
147
|
-
hash_fields: [],
|
|
148
|
-
pii_detection: false,
|
|
149
|
-
pii_action: 'warn',
|
|
150
|
-
},
|
|
151
|
-
approval_policy: {
|
|
152
|
-
require_manual_approval_for: [
|
|
153
|
-
'Production environment changes',
|
|
154
|
-
'Infrastructure scaling beyond limits',
|
|
155
|
-
],
|
|
156
|
-
auto_approved: [
|
|
157
|
-
'Staging deployments',
|
|
158
|
-
'Test environment operations',
|
|
159
|
-
'Build and package operations',
|
|
160
|
-
],
|
|
161
|
-
},
|
|
162
|
-
tool_limits: {
|
|
163
|
-
max_tool_calls: 300,
|
|
164
|
-
max_query_rows: 500000,
|
|
165
|
-
max_query_runtime: '180s',
|
|
166
|
-
max_time_window_days: 365,
|
|
167
|
-
},
|
|
168
|
-
audit: {
|
|
169
|
-
log_tool_calls: true,
|
|
170
|
-
log_query_metadata_only: false,
|
|
171
|
-
retain_days: 180,
|
|
172
|
-
require_lineage_in_report: true,
|
|
173
|
-
},
|
|
174
|
-
content_safety: {
|
|
175
|
-
treat_crm_text_fields_as_untrusted: false,
|
|
176
|
-
do_not_follow_instructions_from_data: true,
|
|
177
|
-
},
|
|
104
|
+
data_scope: { allowed_systems: ['github', 'kubernetes', 'docker', 'terraform'], allowed_objects: [], denied_objects: [], denied_fields: [] },
|
|
105
|
+
data_handling: { default_aggregation: false, allow_row_level_output: true, max_rows_in_output: 50000, redact_fields: [], hash_fields: [], pii_detection: false, pii_action: 'warn' },
|
|
106
|
+
approval_policy: { require_manual_approval_for: ['Production environment changes', 'Infrastructure scaling beyond limits'], auto_approved: ['Staging deployments', 'Test environment operations', 'Build and package operations'] },
|
|
107
|
+
tool_limits: { max_tool_calls: 300, max_query_rows: 500000, max_query_runtime: '180s', max_time_window_days: 365 },
|
|
108
|
+
audit: { log_tool_calls: true, log_query_metadata_only: false, retain_days: 180, require_lineage_in_report: true },
|
|
109
|
+
content_safety: { treat_crm_text_fields_as_untrusted: false, do_not_follow_instructions_from_data: true },
|
|
178
110
|
};
|
|
179
111
|
export const GITHUB_CI_BOT_GUARDRAIL_SPEC_0_0_1 = {
|
|
180
112
|
id: 'github-ci-bot',
|
|
@@ -192,48 +124,12 @@ export const GITHUB_CI_BOT_GUARDRAIL_SPEC_0_0_1 = {
|
|
|
192
124
|
'deploy:production': false,
|
|
193
125
|
},
|
|
194
126
|
token_limits: { per_run: '100K', per_day: '2M', per_month: '20M' },
|
|
195
|
-
data_scope: {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
},
|
|
201
|
-
data_handling: {
|
|
202
|
-
default_aggregation: false,
|
|
203
|
-
allow_row_level_output: true,
|
|
204
|
-
max_rows_in_output: 10000,
|
|
205
|
-
redact_fields: [],
|
|
206
|
-
hash_fields: [],
|
|
207
|
-
pii_detection: false,
|
|
208
|
-
pii_action: 'warn',
|
|
209
|
-
},
|
|
210
|
-
approval_policy: {
|
|
211
|
-
require_manual_approval_for: [
|
|
212
|
-
'Any production deployment',
|
|
213
|
-
'Any write to protected branches',
|
|
214
|
-
],
|
|
215
|
-
auto_approved: [
|
|
216
|
-
'Build and test operations',
|
|
217
|
-
'Package installation',
|
|
218
|
-
'Code analysis and linting',
|
|
219
|
-
],
|
|
220
|
-
},
|
|
221
|
-
tool_limits: {
|
|
222
|
-
max_tool_calls: 200,
|
|
223
|
-
max_query_rows: 500000,
|
|
224
|
-
max_query_runtime: '120s',
|
|
225
|
-
max_time_window_days: 365,
|
|
226
|
-
},
|
|
227
|
-
audit: {
|
|
228
|
-
log_tool_calls: true,
|
|
229
|
-
log_query_metadata_only: false,
|
|
230
|
-
retain_days: 90,
|
|
231
|
-
require_lineage_in_report: false,
|
|
232
|
-
},
|
|
233
|
-
content_safety: {
|
|
234
|
-
treat_crm_text_fields_as_untrusted: false,
|
|
235
|
-
do_not_follow_instructions_from_data: true,
|
|
236
|
-
},
|
|
127
|
+
data_scope: { allowed_systems: ['github', 'npm', 'pypi'], allowed_objects: [], denied_objects: [], denied_fields: [] },
|
|
128
|
+
data_handling: { default_aggregation: false, allow_row_level_output: true, max_rows_in_output: 10000, redact_fields: [], hash_fields: [], pii_detection: false, pii_action: 'warn' },
|
|
129
|
+
approval_policy: { require_manual_approval_for: ['Any production deployment', 'Any write to protected branches'], auto_approved: ['Build and test operations', 'Package installation', 'Code analysis and linting'] },
|
|
130
|
+
tool_limits: { max_tool_calls: 200, max_query_rows: 500000, max_query_runtime: '120s', max_time_window_days: 365 },
|
|
131
|
+
audit: { log_tool_calls: true, log_query_metadata_only: false, retain_days: 90, require_lineage_in_report: false },
|
|
132
|
+
content_safety: { treat_crm_text_fields_as_untrusted: false, do_not_follow_instructions_from_data: true },
|
|
237
133
|
};
|
|
238
134
|
export const GOOGLE_WORKSPACE_AGENT_GUARDRAIL_SPEC_0_0_1 = {
|
|
239
135
|
id: 'google-workspace-agent',
|
|
@@ -251,54 +147,65 @@ export const GOOGLE_WORKSPACE_AGENT_GUARDRAIL_SPEC_0_0_1 = {
|
|
|
251
147
|
'deploy:production': false,
|
|
252
148
|
},
|
|
253
149
|
token_limits: { per_run: '80K', per_day: '1M', per_month: '10M' },
|
|
254
|
-
data_scope: {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
require_manual_approval_for: [
|
|
276
|
-
'Sending external emails',
|
|
277
|
-
'Sharing files outside organization',
|
|
278
|
-
'Modifying calendar events for other users',
|
|
279
|
-
],
|
|
280
|
-
auto_approved: [
|
|
281
|
-
'Reading emails and documents',
|
|
282
|
-
'Creating drafts',
|
|
283
|
-
'Reading calendar',
|
|
284
|
-
],
|
|
285
|
-
},
|
|
286
|
-
tool_limits: {
|
|
287
|
-
max_tool_calls: 100,
|
|
288
|
-
max_query_rows: 50000,
|
|
289
|
-
max_query_runtime: '60s',
|
|
290
|
-
max_time_window_days: 180,
|
|
150
|
+
data_scope: { allowed_systems: ['gmail', 'google-drive', 'google-sheets', 'google-calendar'], allowed_objects: [], denied_objects: [], denied_fields: [] },
|
|
151
|
+
data_handling: { default_aggregation: false, allow_row_level_output: true, max_rows_in_output: 5000, redact_fields: [], hash_fields: [], pii_detection: true, pii_action: 'warn' },
|
|
152
|
+
approval_policy: { require_manual_approval_for: ['Sending external emails', 'Sharing files outside organization', 'Modifying calendar events for other users'], auto_approved: ['Reading emails and documents', 'Creating drafts', 'Reading calendar'] },
|
|
153
|
+
tool_limits: { max_tool_calls: 100, max_query_rows: 50000, max_query_runtime: '60s', max_time_window_days: 180 },
|
|
154
|
+
audit: { log_tool_calls: true, log_query_metadata_only: false, retain_days: 60, require_lineage_in_report: false },
|
|
155
|
+
content_safety: { treat_crm_text_fields_as_untrusted: true, do_not_follow_instructions_from_data: true },
|
|
156
|
+
};
|
|
157
|
+
export const NO_REFUSALS_GUARDRAIL_SPEC_0_0_1 = {
|
|
158
|
+
id: 'no-refusals',
|
|
159
|
+
version: '0.0.1',
|
|
160
|
+
name: 'No Refusals',
|
|
161
|
+
description: 'Prevents pure refusal responses for fulfillment-oriented internal assistants.',
|
|
162
|
+
identity_provider: 'datalayer',
|
|
163
|
+
identity_name: 'fulfillment-bot@acme.com',
|
|
164
|
+
permissions: {
|
|
165
|
+
'read:data': true,
|
|
166
|
+
'write:data': true,
|
|
167
|
+
'execute:code': true,
|
|
168
|
+
'access:internet': true,
|
|
169
|
+
'send:email': false,
|
|
170
|
+
'deploy:production': false,
|
|
291
171
|
},
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
172
|
+
token_limits: { per_run: '60K', per_day: '600K', per_month: '6M' },
|
|
173
|
+
};
|
|
174
|
+
export const PII_PROTECTION_GUARDRAIL_SPEC_0_0_1 = {
|
|
175
|
+
id: 'pii-protection',
|
|
176
|
+
version: '0.0.1',
|
|
177
|
+
name: 'PII Protection',
|
|
178
|
+
description: 'Blocks user prompts containing high-risk personally identifiable information.',
|
|
179
|
+
identity_provider: 'datalayer',
|
|
180
|
+
identity_name: 'privacy-bot@acme.com',
|
|
181
|
+
permissions: {
|
|
182
|
+
'read:data': true,
|
|
183
|
+
'write:data': false,
|
|
184
|
+
'execute:code': false,
|
|
185
|
+
'access:internet': false,
|
|
186
|
+
'send:email': false,
|
|
187
|
+
'deploy:production': false,
|
|
297
188
|
},
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
189
|
+
token_limits: { per_run: '20K', per_day: '200K', per_month: '2M' },
|
|
190
|
+
data_handling: { pii_detection: true, pii_action: 'block' },
|
|
191
|
+
};
|
|
192
|
+
export const PROMPT_INJECTION_STRICT_GUARDRAIL_SPEC_0_0_1 = {
|
|
193
|
+
id: 'prompt-injection-strict',
|
|
194
|
+
version: '0.0.1',
|
|
195
|
+
name: 'Prompt Injection Strict',
|
|
196
|
+
description: 'Strict prompt injection protection profile for externally exposed agents.',
|
|
197
|
+
identity_provider: 'datalayer',
|
|
198
|
+
identity_name: 'security-bot@acme.com',
|
|
199
|
+
permissions: {
|
|
200
|
+
'read:data': true,
|
|
201
|
+
'write:data': false,
|
|
202
|
+
'execute:code': false,
|
|
203
|
+
'access:internet': false,
|
|
204
|
+
'send:email': false,
|
|
205
|
+
'deploy:production': false,
|
|
301
206
|
},
|
|
207
|
+
token_limits: { per_run: '25K', per_day: '250K', per_month: '2M' },
|
|
208
|
+
content_safety: { treat_crm_text_fields_as_untrusted: true, do_not_follow_instructions_from_data: true },
|
|
302
209
|
};
|
|
303
210
|
export const RESTRICTED_VIEWER_GUARDRAIL_SPEC_0_0_1 = {
|
|
304
211
|
id: 'restricted-viewer',
|
|
@@ -316,52 +223,64 @@ export const RESTRICTED_VIEWER_GUARDRAIL_SPEC_0_0_1 = {
|
|
|
316
223
|
'deploy:production': false,
|
|
317
224
|
},
|
|
318
225
|
token_limits: { per_run: '10K', per_day: '50K', per_month: '500K' },
|
|
319
|
-
data_scope: {
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
},
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
max_query_rows: 10000,
|
|
341
|
-
max_query_runtime: '15s',
|
|
342
|
-
max_time_window_days: 30,
|
|
343
|
-
},
|
|
344
|
-
audit: {
|
|
345
|
-
log_tool_calls: true,
|
|
346
|
-
log_query_metadata_only: true,
|
|
347
|
-
retain_days: 90,
|
|
348
|
-
require_lineage_in_report: false,
|
|
226
|
+
data_scope: { allowed_systems: [], allowed_objects: [], denied_objects: [], denied_fields: ['*SSN*', '*Bank*', '*IBAN*', '*Password*', '*Secret*'] },
|
|
227
|
+
data_handling: { default_aggregation: true, allow_row_level_output: false, max_rows_in_output: 0, redact_fields: [], hash_fields: [], pii_detection: true, pii_action: 'redact' },
|
|
228
|
+
approval_policy: { require_manual_approval_for: ['Any operation beyond read'], auto_approved: ['Aggregated read-only queries'] },
|
|
229
|
+
tool_limits: { max_tool_calls: 10, max_query_rows: 10000, max_query_runtime: '15s', max_time_window_days: 30 },
|
|
230
|
+
audit: { log_tool_calls: true, log_query_metadata_only: true, retain_days: 90, require_lineage_in_report: false },
|
|
231
|
+
content_safety: { treat_crm_text_fields_as_untrusted: true, do_not_follow_instructions_from_data: true },
|
|
232
|
+
};
|
|
233
|
+
export const SECRET_REDACTION_GUARDRAIL_SPEC_0_0_1 = {
|
|
234
|
+
id: 'secret-redaction',
|
|
235
|
+
version: '0.0.1',
|
|
236
|
+
name: 'Secret Redaction',
|
|
237
|
+
description: 'Blocks leaked credentials and private keys in assistant output.',
|
|
238
|
+
identity_provider: 'datalayer',
|
|
239
|
+
identity_name: 'platform-bot@acme.com',
|
|
240
|
+
permissions: {
|
|
241
|
+
'read:data': true,
|
|
242
|
+
'write:data': false,
|
|
243
|
+
'execute:code': true,
|
|
244
|
+
'access:internet': true,
|
|
245
|
+
'send:email': false,
|
|
246
|
+
'deploy:production': false,
|
|
349
247
|
},
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
248
|
+
token_limits: { per_run: '40K', per_day: '400K', per_month: '4M' },
|
|
249
|
+
};
|
|
250
|
+
export const TOOL_GUARD_STRICT_GUARDRAIL_SPEC_0_0_1 = {
|
|
251
|
+
id: 'tool-guard-strict',
|
|
252
|
+
version: '0.0.1',
|
|
253
|
+
name: 'Tool Guard Strict',
|
|
254
|
+
description: 'Restrictive tool policy that hides dangerous tools and enforces approval for writes.',
|
|
255
|
+
identity_provider: 'datalayer',
|
|
256
|
+
identity_name: 'ops-bot@acme.com',
|
|
257
|
+
permissions: {
|
|
258
|
+
'read:data': true,
|
|
259
|
+
'write:data': true,
|
|
260
|
+
'execute:code': false,
|
|
261
|
+
'access:internet': true,
|
|
262
|
+
'send:email': false,
|
|
263
|
+
'deploy:production': false,
|
|
353
264
|
},
|
|
265
|
+
token_limits: { per_run: '30K', per_day: '300K', per_month: '3M' },
|
|
354
266
|
};
|
|
355
267
|
// ============================================================================
|
|
356
268
|
// Guardrail Catalog
|
|
357
269
|
// ============================================================================
|
|
358
270
|
export const GUARDRAIL_CATALOG = {
|
|
271
|
+
'async-guardrail-policy': ASYNC_GUARDRAIL_POLICY_GUARDRAIL_SPEC_0_0_1,
|
|
272
|
+
'blocked-keywords-internal': BLOCKED_KEYWORDS_INTERNAL_GUARDRAIL_SPEC_0_0_1,
|
|
359
273
|
'data-engineering-power-user': DATA_ENGINEERING_POWER_USER_GUARDRAIL_SPEC_0_0_1,
|
|
360
274
|
'default-platform-user': DEFAULT_PLATFORM_USER_GUARDRAIL_SPEC_0_0_1,
|
|
361
275
|
'github-actions-deploy': GITHUB_ACTIONS_DEPLOY_GUARDRAIL_SPEC_0_0_1,
|
|
362
276
|
'github-ci-bot': GITHUB_CI_BOT_GUARDRAIL_SPEC_0_0_1,
|
|
363
277
|
'google-workspace-agent': GOOGLE_WORKSPACE_AGENT_GUARDRAIL_SPEC_0_0_1,
|
|
278
|
+
'no-refusals': NO_REFUSALS_GUARDRAIL_SPEC_0_0_1,
|
|
279
|
+
'pii-protection': PII_PROTECTION_GUARDRAIL_SPEC_0_0_1,
|
|
280
|
+
'prompt-injection-strict': PROMPT_INJECTION_STRICT_GUARDRAIL_SPEC_0_0_1,
|
|
364
281
|
'restricted-viewer': RESTRICTED_VIEWER_GUARDRAIL_SPEC_0_0_1,
|
|
282
|
+
'secret-redaction': SECRET_REDACTION_GUARDRAIL_SPEC_0_0_1,
|
|
283
|
+
'tool-guard-strict': TOOL_GUARD_STRICT_GUARDRAIL_SPEC_0_0_1,
|
|
365
284
|
};
|
|
366
285
|
/**
|
|
367
286
|
* Map identity provider to an icon key for the UI.
|
package/lib/specs/mcpServers.js
CHANGED
|
@@ -94,14 +94,7 @@ export const GITHUB_MCP_SERVER_0_0_1 = {
|
|
|
94
94
|
emoji: '🐙 - git - collaboration',
|
|
95
95
|
url: '',
|
|
96
96
|
command: 'docker',
|
|
97
|
-
args: [
|
|
98
|
-
'run',
|
|
99
|
-
'-i',
|
|
100
|
-
'--rm',
|
|
101
|
-
'-e',
|
|
102
|
-
'GITHUB_PERSONAL_ACCESS_TOKEN',
|
|
103
|
-
'ghcr.io/github/github-mcp-server',
|
|
104
|
-
],
|
|
97
|
+
args: ['run', '-i', '--rm', '-e', 'GITHUB_PERSONAL_ACCESS_TOKEN', 'ghcr.io/github/github-mcp-server'],
|
|
105
98
|
transport: 'stdio',
|
|
106
99
|
enabled: true,
|
|
107
100
|
isAvailable: false,
|
|
@@ -122,10 +115,7 @@ export const GOOGLE_WORKSPACE_MCP_SERVER_0_0_1 = {
|
|
|
122
115
|
enabled: true,
|
|
123
116
|
isAvailable: false,
|
|
124
117
|
tools: [],
|
|
125
|
-
requiredEnvVars: [
|
|
126
|
-
'GOOGLE_OAUTH_CLIENT_ID:0.0.1',
|
|
127
|
-
'GOOGLE_OAUTH_CLIENT_SECRET:0.0.1',
|
|
128
|
-
],
|
|
118
|
+
requiredEnvVars: ['GOOGLE_OAUTH_CLIENT_ID:0.0.1', 'GOOGLE_OAUTH_CLIENT_SECRET:0.0.1'],
|
|
129
119
|
};
|
|
130
120
|
export const HUGGINGFACE_MCP_SERVER_0_0_1 = {
|
|
131
121
|
id: 'huggingface',
|
|
@@ -136,13 +126,7 @@ export const HUGGINGFACE_MCP_SERVER_0_0_1 = {
|
|
|
136
126
|
emoji: '🤗',
|
|
137
127
|
url: '',
|
|
138
128
|
command: 'npx',
|
|
139
|
-
args: [
|
|
140
|
-
'-y',
|
|
141
|
-
'mcp-remote',
|
|
142
|
-
'https://huggingface.co/mcp',
|
|
143
|
-
'--header',
|
|
144
|
-
'Authorization: Bearer ${HF_TOKEN}',
|
|
145
|
-
],
|
|
129
|
+
args: ['-y', 'mcp-remote', 'https://huggingface.co/mcp', '--header', 'Authorization: Bearer ${HF_TOKEN}'],
|
|
146
130
|
transport: 'stdio',
|
|
147
131
|
enabled: true,
|
|
148
132
|
isAvailable: false,
|
|
@@ -158,13 +142,7 @@ export const KAGGLE_MCP_SERVER_0_0_1 = {
|
|
|
158
142
|
emoji: '📊',
|
|
159
143
|
url: '',
|
|
160
144
|
command: 'npx',
|
|
161
|
-
args: [
|
|
162
|
-
'-y',
|
|
163
|
-
'mcp-remote',
|
|
164
|
-
'https://www.kaggle.com/mcp',
|
|
165
|
-
'--header',
|
|
166
|
-
'Authorization: Bearer ${KAGGLE_TOKEN}',
|
|
167
|
-
],
|
|
145
|
+
args: ['-y', 'mcp-remote', 'https://www.kaggle.com/mcp', '--header', 'Authorization: Bearer ${KAGGLE_TOKEN}'],
|
|
168
146
|
transport: 'stdio',
|
|
169
147
|
enabled: true,
|
|
170
148
|
isAvailable: false,
|
|
@@ -185,10 +163,7 @@ export const SALESFORCE_MCP_SERVER_0_0_1 = {
|
|
|
185
163
|
enabled: true,
|
|
186
164
|
isAvailable: false,
|
|
187
165
|
tools: [],
|
|
188
|
-
requiredEnvVars: [
|
|
189
|
-
'SALESFORCE_ACCESS_TOKEN:0.0.1',
|
|
190
|
-
'SALESFORCE_INSTANCE_URL:0.0.1',
|
|
191
|
-
],
|
|
166
|
+
requiredEnvVars: ['SALESFORCE_ACCESS_TOKEN:0.0.1', 'SALESFORCE_INSTANCE_URL:0.0.1'],
|
|
192
167
|
};
|
|
193
168
|
export const SLACK_MCP_SERVER_0_0_1 = {
|
|
194
169
|
id: 'slack',
|
|
@@ -204,11 +179,7 @@ export const SLACK_MCP_SERVER_0_0_1 = {
|
|
|
204
179
|
enabled: true,
|
|
205
180
|
isAvailable: false,
|
|
206
181
|
tools: [],
|
|
207
|
-
requiredEnvVars: [
|
|
208
|
-
'SLACK_BOT_TOKEN:0.0.1',
|
|
209
|
-
'SLACK_TEAM_ID:0.0.1',
|
|
210
|
-
'SLACK_CHANNEL_IDS:0.0.1',
|
|
211
|
-
],
|
|
182
|
+
requiredEnvVars: ['SLACK_BOT_TOKEN:0.0.1', 'SLACK_TEAM_ID:0.0.1', 'SLACK_CHANNEL_IDS:0.0.1'],
|
|
212
183
|
};
|
|
213
184
|
export const TAVILY_MCP_SERVER_0_0_1 = {
|
|
214
185
|
id: 'tavily',
|
package/lib/specs/memory.d.ts
CHANGED
|
@@ -10,12 +10,14 @@ import type { MemorySpec } from '../types';
|
|
|
10
10
|
export declare const Memories: {
|
|
11
11
|
readonly EPHEMERAL: "ephemeral";
|
|
12
12
|
readonly MEM0: "mem0";
|
|
13
|
+
readonly MEMPALACE: "mempalace";
|
|
13
14
|
readonly MEMU: "memu";
|
|
14
15
|
readonly SIMPLEMEM: "simplemem";
|
|
15
16
|
};
|
|
16
17
|
export type MemoryId = (typeof Memories)[keyof typeof Memories];
|
|
17
18
|
export declare const EPHEMERAL_MEMORY_0_0_1: MemorySpec;
|
|
18
19
|
export declare const MEM0_MEMORY_0_0_1: MemorySpec;
|
|
20
|
+
export declare const MEMPALACE_MEMORY_0_0_1: MemorySpec;
|
|
19
21
|
export declare const MEMU_MEMORY_0_0_1: MemorySpec;
|
|
20
22
|
export declare const SIMPLEMEM_MEMORY_0_0_1: MemorySpec;
|
|
21
23
|
export declare const MEMORY_CATALOGUE: Record<string, MemorySpec>;
|
package/lib/specs/memory.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
export const Memories = {
|
|
9
9
|
EPHEMERAL: 'ephemeral',
|
|
10
10
|
MEM0: 'mem0',
|
|
11
|
+
MEMPALACE: 'mempalace',
|
|
11
12
|
MEMU: 'memu',
|
|
12
13
|
SIMPLEMEM: 'simplemem',
|
|
13
14
|
};
|
|
@@ -36,6 +37,17 @@ export const MEM0_MEMORY_0_0_1 = {
|
|
|
36
37
|
icon: 'brain',
|
|
37
38
|
emoji: '🧠',
|
|
38
39
|
};
|
|
40
|
+
export const MEMPALACE_MEMORY_0_0_1 = {
|
|
41
|
+
id: 'mempalace',
|
|
42
|
+
version: '0.0.1',
|
|
43
|
+
name: 'MemPalace Memory',
|
|
44
|
+
description: 'Highest-scoring AI memory system ever benchmarked (96.6% LongMemEval R@5 raw, 100% with Haiku rerank). Inspired by the ancient Greek method of loci, MemPalace organizes memories into a navigable palace: wings (people/projects), halls (memory types), rooms (specific topics), closets (compressed summaries), and drawers (verbatim originals). Includes AAAK lossless compression (30x token reduction), a temporal knowledge graph, specialist agents with diaries, and contradiction detection. Entirely local — no cloud, no API keys, no subscription. Works with any LLM.',
|
|
45
|
+
persistence: 'permanent',
|
|
46
|
+
scope: 'user',
|
|
47
|
+
backend: 'chromadb',
|
|
48
|
+
icon: 'castle',
|
|
49
|
+
emoji: '🏰',
|
|
50
|
+
};
|
|
39
51
|
export const MEMU_MEMORY_0_0_1 = {
|
|
40
52
|
id: 'memu',
|
|
41
53
|
version: '0.0.1',
|
|
@@ -62,10 +74,11 @@ export const SIMPLEMEM_MEMORY_0_0_1 = {
|
|
|
62
74
|
// Memory Catalog
|
|
63
75
|
// ============================================================================
|
|
64
76
|
export const MEMORY_CATALOGUE = {
|
|
65
|
-
ephemeral: EPHEMERAL_MEMORY_0_0_1,
|
|
66
|
-
mem0: MEM0_MEMORY_0_0_1,
|
|
67
|
-
|
|
68
|
-
|
|
77
|
+
'ephemeral': EPHEMERAL_MEMORY_0_0_1,
|
|
78
|
+
'mem0': MEM0_MEMORY_0_0_1,
|
|
79
|
+
'mempalace': MEMPALACE_MEMORY_0_0_1,
|
|
80
|
+
'memu': MEMU_MEMORY_0_0_1,
|
|
81
|
+
'simplemem': SIMPLEMEM_MEMORY_0_0_1,
|
|
69
82
|
};
|
|
70
83
|
export const DEFAULT_MEMORY = Memories.EPHEMERAL;
|
|
71
84
|
function resolveMemoryId(memoryId) {
|
package/lib/specs/models.js
CHANGED
|
@@ -118,11 +118,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022_V1_0_0_0_1 = {
|
|
|
118
118
|
description: 'Claude Haiku 3.5 via AWS Bedrock - fast and efficient',
|
|
119
119
|
provider: 'bedrock',
|
|
120
120
|
default: false,
|
|
121
|
-
requiredEnvVars: [
|
|
122
|
-
'AWS_ACCESS_KEY_ID',
|
|
123
|
-
'AWS_SECRET_ACCESS_KEY',
|
|
124
|
-
'AWS_DEFAULT_REGION',
|
|
125
|
-
],
|
|
121
|
+
requiredEnvVars: ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_DEFAULT_REGION'],
|
|
126
122
|
};
|
|
127
123
|
export const BEDROCK_US_ANTHROPIC_CLAUDE_OPUS_4_6_V1_0_0_1 = {
|
|
128
124
|
id: 'bedrock:us.anthropic.claude-opus-4-6-v1',
|
|
@@ -131,11 +127,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_OPUS_4_6_V1_0_0_1 = {
|
|
|
131
127
|
description: 'Claude Opus 4.6 via AWS Bedrock',
|
|
132
128
|
provider: 'bedrock',
|
|
133
129
|
default: false,
|
|
134
|
-
requiredEnvVars: [
|
|
135
|
-
'AWS_ACCESS_KEY_ID',
|
|
136
|
-
'AWS_SECRET_ACCESS_KEY',
|
|
137
|
-
'AWS_DEFAULT_REGION',
|
|
138
|
-
],
|
|
130
|
+
requiredEnvVars: ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_DEFAULT_REGION'],
|
|
139
131
|
};
|
|
140
132
|
export const BEDROCK_US_ANTHROPIC_CLAUDE_OPUS_4_20250514_V1_0_0_0_1 = {
|
|
141
133
|
id: 'bedrock:us.anthropic.claude-opus-4-20250514-v1:0',
|
|
@@ -144,11 +136,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_OPUS_4_20250514_V1_0_0_0_1 = {
|
|
|
144
136
|
description: 'Claude Opus 4 via AWS Bedrock - highest capability',
|
|
145
137
|
provider: 'bedrock',
|
|
146
138
|
default: false,
|
|
147
|
-
requiredEnvVars: [
|
|
148
|
-
'AWS_ACCESS_KEY_ID',
|
|
149
|
-
'AWS_SECRET_ACCESS_KEY',
|
|
150
|
-
'AWS_DEFAULT_REGION',
|
|
151
|
-
],
|
|
139
|
+
requiredEnvVars: ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_DEFAULT_REGION'],
|
|
152
140
|
};
|
|
153
141
|
export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_5_20250929_V1_0_0_0_1 = {
|
|
154
142
|
id: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
|
|
@@ -157,11 +145,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_5_20250929_V1_0_0_0_1 = {
|
|
|
157
145
|
description: 'Claude Sonnet 4.5 via AWS Bedrock - balanced performance',
|
|
158
146
|
provider: 'bedrock',
|
|
159
147
|
default: true,
|
|
160
|
-
requiredEnvVars: [
|
|
161
|
-
'AWS_ACCESS_KEY_ID',
|
|
162
|
-
'AWS_SECRET_ACCESS_KEY',
|
|
163
|
-
'AWS_DEFAULT_REGION',
|
|
164
|
-
],
|
|
148
|
+
requiredEnvVars: ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_DEFAULT_REGION'],
|
|
165
149
|
};
|
|
166
150
|
export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0_0_0_1 = {
|
|
167
151
|
id: 'bedrock:us.anthropic.claude-sonnet-4-20250514-v1:0',
|
|
@@ -170,11 +154,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0_0_0_1 = {
|
|
|
170
154
|
description: 'Claude Sonnet 4 via AWS Bedrock - strong reasoning',
|
|
171
155
|
provider: 'bedrock',
|
|
172
156
|
default: false,
|
|
173
|
-
requiredEnvVars: [
|
|
174
|
-
'AWS_ACCESS_KEY_ID',
|
|
175
|
-
'AWS_SECRET_ACCESS_KEY',
|
|
176
|
-
'AWS_DEFAULT_REGION',
|
|
177
|
-
],
|
|
157
|
+
requiredEnvVars: ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_DEFAULT_REGION'],
|
|
178
158
|
};
|
|
179
159
|
export const OPENAI_GPT_4_1_MINI_0_0_1 = {
|
|
180
160
|
id: 'openai:gpt-4.1-mini',
|