robotrock 1.3.4 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +11 -1
  2. package/dist/agent-admin.d.ts +5 -0
  3. package/dist/agent-admin.js +75 -2
  4. package/dist/agent-admin.js.map +1 -1
  5. package/dist/ai/index.d.ts +5 -5
  6. package/dist/ai/index.js +120 -4
  7. package/dist/ai/index.js.map +1 -1
  8. package/dist/ai/trigger.d.ts +3 -3
  9. package/dist/ai/trigger.js +120 -4
  10. package/dist/ai/trigger.js.map +1 -1
  11. package/dist/ai/workflow.d.ts +3 -3
  12. package/dist/ai/workflow.js +120 -4
  13. package/dist/ai/workflow.js.map +1 -1
  14. package/dist/{client-CZ5eWH5v.d.ts → client-BxbxttFH.d.ts} +19 -1
  15. package/dist/eve/agent/index.d.ts +4 -4
  16. package/dist/eve/agent/index.js +565 -261
  17. package/dist/eve/agent/index.js.map +1 -1
  18. package/dist/eve/index.d.ts +4 -4
  19. package/dist/eve/index.js +384 -7
  20. package/dist/eve/index.js.map +1 -1
  21. package/dist/eve/tools/admin/assign-tasks.d.ts +40 -19
  22. package/dist/eve/tools/admin/assign-tasks.js +322 -25
  23. package/dist/eve/tools/admin/assign-tasks.js.map +1 -1
  24. package/dist/eve/tools/admin/get-workspace-usage.d.ts +71 -0
  25. package/dist/eve/tools/admin/get-workspace-usage.js +1353 -0
  26. package/dist/eve/tools/admin/get-workspace-usage.js.map +1 -0
  27. package/dist/eve/tools/admin/manage-groups.d.ts +122 -7
  28. package/dist/eve/tools/admin/manage-groups.js +338 -31
  29. package/dist/eve/tools/admin/manage-groups.js.map +1 -1
  30. package/dist/eve/tools/admin/manage-team-members.d.ts +86 -7
  31. package/dist/eve/tools/admin/manage-team-members.js +306 -16
  32. package/dist/eve/tools/admin/manage-team-members.js.map +1 -1
  33. package/dist/eve/tools/admin/query-tasks.d.ts +85 -10
  34. package/dist/eve/tools/admin/query-tasks.js +351 -40
  35. package/dist/eve/tools/admin/query-tasks.js.map +1 -1
  36. package/dist/eve/tools/catalog/generate-image.d.ts +64 -0
  37. package/dist/eve/tools/catalog/generate-image.js +2065 -0
  38. package/dist/eve/tools/catalog/generate-image.js.map +1 -0
  39. package/dist/eve/tools/catalog/generate-random-chart.d.ts +71 -0
  40. package/dist/eve/tools/catalog/generate-random-chart.js +372 -0
  41. package/dist/eve/tools/catalog/generate-random-chart.js.map +1 -0
  42. package/dist/eve/tools/catalog/search-products.d.ts +36 -43
  43. package/dist/eve/tools/catalog/search-products.js +241 -6
  44. package/dist/eve/tools/catalog/search-products.js.map +1 -1
  45. package/dist/eve/tools/identity/index.d.ts +2 -1
  46. package/dist/eve/tools/identity/index.js +26 -6
  47. package/dist/eve/tools/identity/index.js.map +1 -1
  48. package/dist/eve/tools/identity/my-access.d.ts +90 -5
  49. package/dist/eve/tools/identity/my-access.js +26 -6
  50. package/dist/eve/tools/identity/my-access.js.map +1 -1
  51. package/dist/eve/tools/identity/whoami.d.ts +1 -1
  52. package/dist/eve/tools/identity/whoami.js.map +1 -1
  53. package/dist/eve/tools/inbox/create-task.d.ts +1 -1
  54. package/dist/eve/tools/inbox/create-task.js +119 -2
  55. package/dist/eve/tools/inbox/create-task.js.map +1 -1
  56. package/dist/eve/tools/inbox/index.d.ts +1 -1
  57. package/dist/eve/tools/inbox/index.js +119 -2
  58. package/dist/eve/tools/inbox/index.js.map +1 -1
  59. package/dist/eve/tools/index.d.ts +5 -2
  60. package/dist/eve/tools/index.js +908 -115
  61. package/dist/eve/tools/index.js.map +1 -1
  62. package/dist/index-Drj0Rzf_.d.ts +905 -0
  63. package/dist/index.d.ts +5 -5
  64. package/dist/index.js +316 -13
  65. package/dist/index.js.map +1 -1
  66. package/dist/schemas/index.js +67 -1
  67. package/dist/schemas/index.js.map +1 -1
  68. package/dist/{tool-approval-bridge-DnGaRES4.d.ts → tool-approval-bridge-Cz7qQUpw.d.ts} +1 -1
  69. package/dist/{tool-reply-guidance-C3qrT1In.d.ts → tool-reply-guidance-CJko9liH.d.ts} +5 -2
  70. package/dist/tool-result-ui-meta-KT0VafEO.d.ts +52 -0
  71. package/dist/trigger/index.d.ts +1 -1
  72. package/dist/trigger/index.js +118 -2
  73. package/dist/trigger/index.js.map +1 -1
  74. package/dist/{trigger--qTIK0s6.d.ts → trigger-C1ooSegc.d.ts} +2 -2
  75. package/dist/workflow/index.d.ts +1 -1
  76. package/dist/workflow/index.js +118 -2
  77. package/dist/workflow/index.js.map +1 -1
  78. package/package.json +21 -4
  79. package/dist/index-Blq0XoAr.d.ts +0 -204
  80. package/dist/tool-ui-hint-CMpug5sC.d.ts +0 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "robotrock",
3
- "version": "1.3.4",
3
+ "version": "1.4.0",
4
4
  "description": "Human-in-the-loop approval workflows for AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -67,6 +67,14 @@
67
67
  "types": "./dist/eve/tools/catalog/search-products.d.ts",
68
68
  "import": "./dist/eve/tools/catalog/search-products.js"
69
69
  },
70
+ "./eve/tools/catalog/generate-random-chart": {
71
+ "types": "./dist/eve/tools/catalog/generate-random-chart.d.ts",
72
+ "import": "./dist/eve/tools/catalog/generate-random-chart.js"
73
+ },
74
+ "./eve/tools/catalog/generate-image": {
75
+ "types": "./dist/eve/tools/catalog/generate-image.d.ts",
76
+ "import": "./dist/eve/tools/catalog/generate-image.js"
77
+ },
70
78
  "./eve/tools/admin/manage-team-members": {
71
79
  "types": "./dist/eve/tools/admin/manage-team-members.d.ts",
72
80
  "import": "./dist/eve/tools/admin/manage-team-members.js"
@@ -83,6 +91,10 @@
83
91
  "types": "./dist/eve/tools/admin/assign-tasks.d.ts",
84
92
  "import": "./dist/eve/tools/admin/assign-tasks.js"
85
93
  },
94
+ "./eve/tools/admin/get-workspace-usage": {
95
+ "types": "./dist/eve/tools/admin/get-workspace-usage.d.ts",
96
+ "import": "./dist/eve/tools/admin/get-workspace-usage.js"
97
+ },
86
98
  "./agent-admin": {
87
99
  "types": "./dist/agent-admin.d.ts",
88
100
  "import": "./dist/agent-admin.js"
@@ -93,12 +105,12 @@
93
105
  "README.md"
94
106
  ],
95
107
  "scripts": {
96
- "build": "rm -rf dist && tsup",
108
+ "build": "node ./scripts/build-atomic.mjs",
97
109
  "dev": "tsup --watch",
98
110
  "typecheck": "tsc --noEmit",
99
111
  "test": "vitest run",
100
112
  "lint": "eslint .",
101
- "clean": "rm -rf dist"
113
+ "clean": "rm -rf dist dist.tmp dist.old"
102
114
  },
103
115
  "keywords": [
104
116
  "robotrock",
@@ -123,7 +135,8 @@
123
135
  },
124
136
  "devDependencies": {
125
137
  "@opentelemetry/api": "^1.9.1",
126
- "@trigger.dev/sdk": "4.5.3",
138
+ "@openrouter/ai-sdk-provider": "^3.0.0",
139
+ "@trigger.dev/sdk": "4.5.4",
127
140
  "@types/node": "^26.1.1",
128
141
  "ai": "^7.0.22",
129
142
  "eslint": "^10.7.0",
@@ -134,6 +147,7 @@
134
147
  },
135
148
  "peerDependencies": {
136
149
  "@opentelemetry/api": "^1.9.0",
150
+ "@openrouter/ai-sdk-provider": "^3.0.0",
137
151
  "@trigger.dev/sdk": "^3.0.0 || ^4.0.0",
138
152
  "ai": "^5.0.0 || ^6.0.0 || ^7.0.0",
139
153
  "workflow": "^4.0.0",
@@ -143,6 +157,9 @@
143
157
  "@opentelemetry/api": {
144
158
  "optional": true
145
159
  },
160
+ "@openrouter/ai-sdk-provider": {
161
+ "optional": true
162
+ },
146
163
  "@trigger.dev/sdk": {
147
164
  "optional": true
148
165
  },
@@ -1,204 +0,0 @@
1
- import { S as SendToHumanActionInput } from './client-CZ5eWH5v.js';
2
- import { UiSchema } from '@robotrock/core/schemas';
3
- import { T as ToolResultWithReplyGuidance } from './tool-reply-guidance-C3qrT1In.js';
4
- import { T as ToolUiHint } from './tool-ui-hint-CMpug5sC.js';
5
- import { z } from 'zod';
6
-
7
- /** One selectable option in an Eve HITL input request. */
8
- type EveInputOption = {
9
- readonly id: string;
10
- readonly label: string;
11
- readonly description?: string;
12
- readonly style?: "danger" | "default" | "primary";
13
- };
14
- /** Eve HITL display mode — mirrors `InputRequest.display` from the eve runtime. */
15
- type EveInputRequestDisplay = "confirmation" | "select" | "text";
16
- /**
17
- * Minimal Eve `InputRequest` shape for RobotRock bridging. Intentionally
18
- * self-contained so the SDK does not depend on the `eve` package.
19
- */
20
- type EveInputRequest = {
21
- readonly requestId: string;
22
- readonly prompt: string;
23
- readonly display?: EveInputRequestDisplay;
24
- readonly allowFreeform?: boolean;
25
- readonly options?: readonly EveInputOption[];
26
- };
27
- /** Eve `InputResponse` shape returned when resuming a parked session. */
28
- type EveInputResponse = {
29
- readonly requestId: string;
30
- readonly optionId?: string;
31
- readonly text?: string;
32
- };
33
- declare const EVE_INPUT_SUBMIT_ACTION_ID: "submit";
34
- declare const EVE_INPUT_OTHER_CHOICE_ID: "__other__";
35
- declare const EVE_INPUT_OTHER_CHOICE_LABEL: "Type your own answer";
36
- /** Resolve the effective display mode when Eve omits `display`. */
37
- declare function resolveEveInputDisplay(request: EveInputRequest, toolName?: string): EveInputRequestDisplay;
38
- /** Keep select-form submissions mutually exclusive between preset choice and freeform other. */
39
- declare function normalizeEveSelectFormData(data: Record<string, unknown>): Record<string, unknown>;
40
- /**
41
- * Map an Eve `InputRequest` to RobotRock inbox actions.
42
- */
43
- declare function eveInputRequestToActions(request: EveInputRequest, options?: {
44
- toolName?: string;
45
- }): readonly SendToHumanActionInput[];
46
- /** Task type slug for an Eve input request. */
47
- declare function eveInputRequestTaskType(request: EveInputRequest, options?: {
48
- toolName?: string;
49
- }): string;
50
- /**
51
- * Map a handled RobotRock task action back to an Eve `InputResponse`.
52
- */
53
- declare function taskHandledToEveInputResponse(request: EveInputRequest, actionId: string, actionData: unknown, options?: {
54
- toolName?: string;
55
- }): EveInputResponse;
56
-
57
- type EveInputAuditContext = {
58
- toolCallId: string;
59
- toolName?: string;
60
- requestId?: string;
61
- display?: EveInputRequestDisplay;
62
- toolInput?: unknown;
63
- };
64
- /**
65
- * Map freeform composer text to an Eve `InputResponse`, mirroring Eve's
66
- * `resolveTextToResponse` rules (option id/label, numeric index, freeform text).
67
- */
68
- declare function resolveEveFreeformTextToInputResponse(request: EveInputRequest, text: string): EveInputResponse | undefined;
69
- /** Returns true for Eve's default approval gate (approve / deny options). */
70
- declare function isEveApprovalInputRequest(request: EveInputRequest): boolean;
71
- type EveInputActionSubmission = {
72
- actionId: string;
73
- actionTitle: string;
74
- formData: Record<string, unknown>;
75
- };
76
- /**
77
- * Map a resolved Eve `InputResponse` to RobotRock audit fields (action id/title).
78
- */
79
- declare function eveInputResponseToActionSubmission(request: EveInputRequest, response: EveInputResponse, options?: {
80
- toolName?: string;
81
- }): EveInputActionSubmission;
82
- /** Audit payload for `chat_action_input_submitted`. */
83
- declare function buildEveInputAuditSubmissionData(context: EveInputAuditContext, formData: Record<string, unknown>): Record<string, unknown>;
84
- /**
85
- * Parse an `ask_question` tool result output into an Eve input response shape.
86
- */
87
- declare function parseEveAskQuestionToolOutput(output: unknown): Pick<EveInputResponse, "optionId" | "text"> | null;
88
-
89
- type ChatToolAuditInput = Record<string, unknown>;
90
- type ChatToolAuditPayload = {
91
- toolCallId: string;
92
- toolName: string;
93
- input: ChatToolAuditInput;
94
- success: boolean;
95
- status: "completed" | "failed" | "rejected";
96
- error?: string;
97
- };
98
- /**
99
- * Whether a completed tool call should appear on the RobotRock audit trail.
100
- * Admin mutations are logged via chat-correlated API audit instead.
101
- */
102
- declare function shouldAuditToolExecution(toolName: string, _input: ChatToolAuditInput): boolean;
103
- /** Keep only fields useful for audit display (no secrets or large blobs). */
104
- declare function sanitizeToolAuditInput(input: ChatToolAuditInput): ChatToolAuditInput;
105
- declare function buildChatToolAuditPayload(input: {
106
- toolCallId: string;
107
- toolName: string;
108
- toolInput: ChatToolAuditInput;
109
- status: "completed" | "failed" | "rejected";
110
- error?: string;
111
- isError?: boolean;
112
- }): ChatToolAuditPayload | null;
113
-
114
- /** Default per-tool labels for common Eve demo/integration tools. */
115
- declare const DEFAULT_TOOL_DISPLAY_LABELS: Readonly<Record<string, string>>;
116
- /** Register additional or overriding tool display labels at runtime. */
117
- declare function setToolDisplayLabelOverrides(overrides: Readonly<Record<string, string>>): void;
118
- /** Resolve a user-facing label for a tool slug. */
119
- declare function getToolDisplayLabel(toolName: string): string;
120
- /** Format an Eve input request prompt for human-facing approval UIs. */
121
- declare function formatEveApprovalTitle(request: EveInputRequest, toolName?: string): string;
122
-
123
- type ToolDisplayResultOptions = {
124
- widget?: string;
125
- title?: string;
126
- description?: string;
127
- ui?: Record<string, UiSchema>;
128
- };
129
- /**
130
- * @deprecated Tool results should return plain JSON. Display envelopes are ignored
131
- * by the dashboard TRL renderer. Kept for backwards-compatible call sites.
132
- */
133
- declare function toolDisplayResult<T extends Record<string, unknown>>(data: T, _options?: ToolDisplayResultOptions): T;
134
-
135
- type FormatToolObjectResultOptions = {
136
- replyGuidance: string;
137
- /** Optional layout hint for TRL rendering. Omit to let the dashboard infer. */
138
- uiHint?: ToolUiHint;
139
- };
140
- type FormatToolListResultOptions = {
141
- replyGuidance: string;
142
- };
143
- /** Attach agent narration hints to plain tool JSON. No display/ui envelope. */
144
- declare function formatToolObjectResult(data: Record<string, unknown>, options: FormatToolObjectResultOptions): ToolResultWithReplyGuidance<Record<string, unknown>>;
145
- /** Wrap an array field as plain tool JSON with reply guidance and list layout hint. */
146
- declare function formatToolListResult(listKey: string, items: Record<string, unknown>[], options: FormatToolListResultOptions): {
147
- [listKey]: Record<string, unknown>[];
148
- } & {
149
- replyGuidance: string;
150
- } & {
151
- uiHint: ToolUiHint;
152
- };
153
- declare function isAgentAdminErrorResult(result: unknown): result is {
154
- ok: false;
155
- message: string;
156
- };
157
-
158
- declare const robotRockWebhookPayloadBodySchema: z.ZodObject<{
159
- taskId: z.ZodString;
160
- action: z.ZodObject<{
161
- id: z.ZodString;
162
- title: z.ZodString;
163
- data: z.ZodUnknown;
164
- }, z.core.$strip>;
165
- handledBy: z.ZodOptional<z.ZodString>;
166
- handledAt: z.ZodString;
167
- handlerType: z.ZodString;
168
- }, z.core.$strip>;
169
- type RobotRockWebhookPayload = z.infer<typeof robotRockWebhookPayloadBodySchema> & {
170
- headers: Record<string, string>;
171
- };
172
- type RobotRockWebhookErrorCode = "MISSING_WEBHOOK_SECRET" | "MISSING_SIGNATURE" | "INVALID_SIGNATURE" | "INVALID_JSON" | "INVALID_PAYLOAD";
173
- declare class RobotRockWebhookError extends Error {
174
- readonly code: RobotRockWebhookErrorCode;
175
- readonly details?: unknown | undefined;
176
- constructor(message: string, code: RobotRockWebhookErrorCode, details?: unknown | undefined);
177
- }
178
- interface VerifyRobotRockWebhookOptions {
179
- /**
180
- * Override shared secret (defaults to ROBOTROCK_WEBHOOK_SECRET).
181
- * Keep undefined in production to enforce the canonical env var.
182
- */
183
- secret?: string;
184
- /**
185
- * Resolve the tenant signing secret by public task id (hosted MCP uses Convex).
186
- * Used when secret is not passed explicitly.
187
- */
188
- resolveSecret?: (taskId: string) => Promise<string | undefined>;
189
- /** Signature header to read. @default "x-robotrock-signature" */
190
- signatureHeader?: string;
191
- }
192
- /**
193
- * Verify a RobotRock webhook request and return a validated payload.
194
- * Throws RobotRockWebhookError with machine-readable `code` for audit logging.
195
- */
196
- declare function verifyRobotRockWebhook(request: Request, options?: VerifyRobotRockWebhookOptions): Promise<RobotRockWebhookPayload>;
197
-
198
- /** Build the assistant resume prompt when an inbox task linked to a chat is handled. */
199
- declare function buildTaskHandledResumeMessage(payload: RobotRockWebhookPayload): string;
200
-
201
- /** Hook slug advertised in GET /eve/v1/info for RobotRock-ready auto-detection. */
202
- declare const ROBOTROCK_READY_HOOK_SLUG = "robotrock-ready";
203
-
204
- export { formatToolListResult as A, formatToolObjectResult as B, type ChatToolAuditInput as C, DEFAULT_TOOL_DISPLAY_LABELS as D, EVE_INPUT_OTHER_CHOICE_ID as E, type FormatToolListResultOptions as F, isAgentAdminErrorResult as G, isEveApprovalInputRequest as H, parseEveAskQuestionToolOutput as I, resolveEveFreeformTextToInputResponse as J, sanitizeToolAuditInput as K, shouldAuditToolExecution as L, toolDisplayResult as M, ROBOTROCK_READY_HOOK_SLUG as R, type ToolDisplayResultOptions as T, type VerifyRobotRockWebhookOptions as V, EVE_INPUT_OTHER_CHOICE_LABEL as a, EVE_INPUT_SUBMIT_ACTION_ID as b, type EveInputOption as c, type EveInputRequest as d, type EveInputRequestDisplay as e, type EveInputResponse as f, RobotRockWebhookError as g, type RobotRockWebhookErrorCode as h, type RobotRockWebhookPayload as i, buildTaskHandledResumeMessage as j, eveInputRequestTaskType as k, eveInputRequestToActions as l, formatEveApprovalTitle as m, getToolDisplayLabel as n, normalizeEveSelectFormData as o, type ChatToolAuditPayload as p, type EveInputActionSubmission as q, resolveEveInputDisplay as r, setToolDisplayLabelOverrides as s, taskHandledToEveInputResponse as t, type EveInputAuditContext as u, verifyRobotRockWebhook as v, type FormatToolObjectResultOptions as w, buildChatToolAuditPayload as x, buildEveInputAuditSubmissionData as y, eveInputResponseToActionSubmission as z };
@@ -1,13 +0,0 @@
1
- /** Field name for optional layout hints on tool execute results. */
2
- declare const TOOL_UI_HINT_FIELD: "uiHint";
3
- /** Top-level layout hint for RobotRock TRL rendering. Optional — omit to let the dashboard infer. */
4
- type ToolUiHint = "list" | "chart" | "table";
5
- declare function isToolUiHint(value: unknown): value is ToolUiHint;
6
- /** Attach an optional layout hint to a tool execute result. */
7
- declare function withUiHint<T extends Record<string, unknown>>(result: T, hint: ToolUiHint): T & {
8
- uiHint: ToolUiHint;
9
- };
10
- /** Read a validated layout hint from tool output; unknown values are ignored. */
11
- declare function extractToolUiHint(output: unknown): ToolUiHint | undefined;
12
-
13
- export { type ToolUiHint as T, TOOL_UI_HINT_FIELD as a, extractToolUiHint as e, isToolUiHint as i, withUiHint as w };