@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.
Files changed (73) hide show
  1. package/README.md +13 -131
  2. package/lib/chat/Chat.d.ts +3 -1
  3. package/lib/chat/Chat.js +2 -2
  4. package/lib/chat/base/ChatBase.js +52 -1
  5. package/lib/chat/messages/ChatMessageList.js +17 -4
  6. package/lib/client/AgentsMixin.d.ts +48 -1
  7. package/lib/client/AgentsMixin.js +109 -0
  8. package/lib/components/NotificationEventCard.js +51 -26
  9. package/lib/components/OutputCard.js +21 -7
  10. package/lib/components/ToolApprovalCard.js +20 -2
  11. package/lib/examples/AgentCheckpointsExample.js +2 -8
  12. package/lib/examples/AgentCodemodeExample.js +3 -9
  13. package/lib/examples/AgentEvalsExample.js +3 -9
  14. package/lib/examples/AgentGuardrailsExample.js +3 -9
  15. package/lib/examples/AgentMemoryExample.js +3 -9
  16. package/lib/examples/AgentMonitoringExample.js +3 -9
  17. package/lib/examples/AgentNotificationsExample.js +2 -8
  18. package/lib/examples/AgentOutputsExample.js +3 -9
  19. package/lib/examples/AgentSandboxExample.js +3 -9
  20. package/lib/examples/AgentSkillsExample.js +3 -9
  21. package/lib/examples/AgentToolApprovalsExample.js +89 -24
  22. package/lib/examples/AgentTriggersExample.js +604 -37
  23. package/lib/examples/ChatExample.js +2 -10
  24. package/lib/examples/components/ErrorView.d.ts +14 -0
  25. package/lib/examples/components/ErrorView.js +20 -0
  26. package/lib/examples/components/index.d.ts +2 -0
  27. package/lib/examples/components/index.js +1 -0
  28. package/lib/examples/main.d.ts +1 -0
  29. package/lib/examples/main.js +1 -0
  30. package/lib/protocols/VercelAIAdapter.d.ts +2 -0
  31. package/lib/protocols/VercelAIAdapter.js +86 -20
  32. package/lib/shims/json5.d.ts +4 -0
  33. package/lib/shims/json5.js +8 -0
  34. package/lib/specs/agents/agents.js +241 -1390
  35. package/lib/specs/agents/index.js +1 -3
  36. package/lib/specs/envvars.js +20 -27
  37. package/lib/specs/evals.js +6 -6
  38. package/lib/specs/events.d.ts +10 -2
  39. package/lib/specs/events.js +84 -126
  40. package/lib/specs/frontendTools.js +2 -2
  41. package/lib/specs/guardrails.d.ts +7 -0
  42. package/lib/specs/guardrails.js +159 -240
  43. package/lib/specs/mcpServers.js +6 -35
  44. package/lib/specs/memory.d.ts +2 -0
  45. package/lib/specs/memory.js +17 -4
  46. package/lib/specs/models.js +5 -25
  47. package/lib/specs/notifications.js +18 -102
  48. package/lib/specs/outputs.js +9 -15
  49. package/lib/specs/skills.js +18 -18
  50. package/lib/specs/teams/index.js +1 -3
  51. package/lib/specs/teams/teams.js +348 -468
  52. package/lib/specs/tools.js +6 -3
  53. package/lib/specs/triggers.js +11 -61
  54. package/lib/types/tools.d.ts +2 -0
  55. package/package.json +1 -1
  56. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  57. package/scripts/codegen/generate_agents.py +4 -1
  58. package/scripts/codegen/generate_events.py +12 -4
  59. package/scripts/codegen/generate_tools.py +20 -0
  60. package/style/primer-primitives.css +1 -6
  61. package/scripts/codegen/__pycache__/generate_agents.cpython-313.pyc +0 -0
  62. package/scripts/codegen/__pycache__/generate_envvars.cpython-313.pyc +0 -0
  63. package/scripts/codegen/__pycache__/generate_evals.cpython-313.pyc +0 -0
  64. package/scripts/codegen/__pycache__/generate_guardrails.cpython-313.pyc +0 -0
  65. package/scripts/codegen/__pycache__/generate_mcp_servers.cpython-313.pyc +0 -0
  66. package/scripts/codegen/__pycache__/generate_memory.cpython-313.pyc +0 -0
  67. package/scripts/codegen/__pycache__/generate_models.cpython-313.pyc +0 -0
  68. package/scripts/codegen/__pycache__/generate_notifications.cpython-313.pyc +0 -0
  69. package/scripts/codegen/__pycache__/generate_outputs.cpython-313.pyc +0 -0
  70. package/scripts/codegen/__pycache__/generate_skills.cpython-313.pyc +0 -0
  71. package/scripts/codegen/__pycache__/generate_teams.cpython-313.pyc +0 -0
  72. package/scripts/codegen/__pycache__/generate_tools.cpython-313.pyc +0 -0
  73. package/scripts/codegen/__pycache__/generate_triggers.cpython-313.pyc +0 -0
@@ -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
- allowed_systems: ['postgresql', 'mongodb', 's3', 'kafka'],
26
- allowed_objects: [],
27
- denied_objects: [],
28
- denied_fields: ['*SSN*', '*Bank*', '*IBAN*'],
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
- allowed_systems: [],
86
- allowed_objects: [],
87
- denied_objects: [],
88
- denied_fields: [],
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
- allowed_systems: ['github', 'kubernetes', 'docker', 'terraform'],
138
- allowed_objects: [],
139
- denied_objects: [],
140
- denied_fields: [],
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
- allowed_systems: ['github', 'npm', 'pypi'],
197
- allowed_objects: [],
198
- denied_objects: [],
199
- denied_fields: [],
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
- allowed_systems: [
256
- 'gmail',
257
- 'google-drive',
258
- 'google-sheets',
259
- 'google-calendar',
260
- ],
261
- allowed_objects: [],
262
- denied_objects: [],
263
- denied_fields: [],
264
- },
265
- data_handling: {
266
- default_aggregation: false,
267
- allow_row_level_output: true,
268
- max_rows_in_output: 5000,
269
- redact_fields: [],
270
- hash_fields: [],
271
- pii_detection: true,
272
- pii_action: 'warn',
273
- },
274
- approval_policy: {
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
- audit: {
293
- log_tool_calls: true,
294
- log_query_metadata_only: false,
295
- retain_days: 60,
296
- require_lineage_in_report: false,
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
- content_safety: {
299
- treat_crm_text_fields_as_untrusted: true,
300
- do_not_follow_instructions_from_data: true,
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
- allowed_systems: [],
321
- allowed_objects: [],
322
- denied_objects: [],
323
- denied_fields: ['*SSN*', '*Bank*', '*IBAN*', '*Password*', '*Secret*'],
324
- },
325
- data_handling: {
326
- default_aggregation: true,
327
- allow_row_level_output: false,
328
- max_rows_in_output: 0,
329
- redact_fields: [],
330
- hash_fields: [],
331
- pii_detection: true,
332
- pii_action: 'redact',
333
- },
334
- approval_policy: {
335
- require_manual_approval_for: ['Any operation beyond read'],
336
- auto_approved: ['Aggregated read-only queries'],
337
- },
338
- tool_limits: {
339
- max_tool_calls: 10,
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
- content_safety: {
351
- treat_crm_text_fields_as_untrusted: true,
352
- do_not_follow_instructions_from_data: true,
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.
@@ -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',
@@ -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>;
@@ -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
- memu: MEMU_MEMORY_0_0_1,
68
- simplemem: SIMPLEMEM_MEMORY_0_0_1,
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) {
@@ -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',