@rudderhq/agent-runtime-gemini-local 0.1.0-canary.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 (60) hide show
  1. package/LICENSE +14 -0
  2. package/dist/cli/format-event.d.ts +2 -0
  3. package/dist/cli/format-event.d.ts.map +1 -0
  4. package/dist/cli/format-event.js +198 -0
  5. package/dist/cli/format-event.js.map +1 -0
  6. package/dist/cli/index.d.ts +2 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +2 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/index.d.ts +9 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +47 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/server/execute.d.ts +3 -0
  15. package/dist/server/execute.d.ts.map +1 -0
  16. package/dist/server/execute.js +489 -0
  17. package/dist/server/execute.js.map +1 -0
  18. package/dist/server/index.d.ts +7 -0
  19. package/dist/server/index.d.ts.map +1 -0
  20. package/dist/server/index.js +62 -0
  21. package/dist/server/index.js.map +1 -0
  22. package/dist/server/parse.d.ts +38 -0
  23. package/dist/server/parse.d.ts.map +1 -0
  24. package/dist/server/parse.js +238 -0
  25. package/dist/server/parse.js.map +1 -0
  26. package/dist/server/skills.d.ts +7 -0
  27. package/dist/server/skills.d.ts.map +1 -0
  28. package/dist/server/skills.js +66 -0
  29. package/dist/server/skills.js.map +1 -0
  30. package/dist/server/test.d.ts +3 -0
  31. package/dist/server/test.d.ts.map +1 -0
  32. package/dist/server/test.js +219 -0
  33. package/dist/server/test.js.map +1 -0
  34. package/dist/server/utils.d.ts +2 -0
  35. package/dist/server/utils.d.ts.map +1 -0
  36. package/dist/server/utils.js +7 -0
  37. package/dist/server/utils.js.map +1 -0
  38. package/dist/ui/build-config.d.ts +3 -0
  39. package/dist/ui/build-config.d.ts.map +1 -0
  40. package/dist/ui/build-config.js +84 -0
  41. package/dist/ui/build-config.js.map +1 -0
  42. package/dist/ui/index.d.ts +3 -0
  43. package/dist/ui/index.d.ts.map +1 -0
  44. package/dist/ui/index.js +3 -0
  45. package/dist/ui/index.js.map +1 -0
  46. package/dist/ui/parse-stdout.d.ts +3 -0
  47. package/dist/ui/parse-stdout.d.ts.map +1 -0
  48. package/dist/ui/parse-stdout.js +247 -0
  49. package/dist/ui/parse-stdout.js.map +1 -0
  50. package/package.json +61 -0
  51. package/skills/para-memory-files/SKILL.md +114 -0
  52. package/skills/para-memory-files/references/schemas.md +35 -0
  53. package/skills/rudder/SKILL.md +265 -0
  54. package/skills/rudder/references/api-reference.md +253 -0
  55. package/skills/rudder/references/cli-reference.md +67 -0
  56. package/skills/rudder/references/organization-skills.md +155 -0
  57. package/skills/rudder-create-agent/SKILL.md +166 -0
  58. package/skills/rudder-create-agent/references/api-reference.md +172 -0
  59. package/skills/rudder-create-agent/references/cli-reference.md +126 -0
  60. package/skills/rudder-create-plugin/SKILL.md +103 -0
@@ -0,0 +1,155 @@
1
+ # Organization Skills Workflow
2
+
3
+ Use this reference when a board user, CEO, or manager asks you to discover, import, inspect, or enable organization skills.
4
+
5
+ This workflow is now **CLI-first** for the bundled `rudder` skill.
6
+
7
+ ## Canonical Model
8
+
9
+ 1. import or scan the skill into the organization library
10
+ 2. inspect the imported skill if needed
11
+ 3. sync the desired enabled skills onto the target agent
12
+
13
+ ## Core CLI Surface
14
+
15
+ ```bash
16
+ rudder skill list --org-id "$RUDDER_ORG_ID" --json
17
+ rudder skill get "<skill-id>" --org-id "$RUDDER_ORG_ID" --json
18
+ rudder skill file "<skill-id>" --org-id "$RUDDER_ORG_ID" --path SKILL.md --json
19
+ rudder skill import --org-id "$RUDDER_ORG_ID" --source "<source>" --json
20
+ rudder skill scan-local --org-id "$RUDDER_ORG_ID" --roots "<csv>" --json
21
+ rudder skill scan-projects --org-id "$RUDDER_ORG_ID" --project-ids "<csv>" --workspace-ids "<csv>" --json
22
+ rudder agent skills sync "<agent-id>" --desired-skills "<csv>" --json
23
+ ```
24
+
25
+ Defaults:
26
+
27
+ - `--org-id` can come from `RUDDER_ORG_ID`
28
+ - mutating commands attach `RUDDER_RUN_ID` automatically when present
29
+
30
+ ## Source Types
31
+
32
+ Use these sources in priority order:
33
+
34
+ | Source format | Example | When to use |
35
+ | --- | --- | --- |
36
+ | `skills.sh` URL | `https://skills.sh/google-labs-code/stitch-skills/design-md` | Preferred when the user gives a managed registry URL |
37
+ | key-style source | `google-labs-code/stitch-skills/design-md` | Shorthand for the same managed skill |
38
+ | GitHub URL | `https://github.com/vercel-labs/agent-browser` | When the skill is on GitHub but not on `skills.sh` |
39
+ | local path | `/abs/path/to/skill-dir` | Local dev or testing only |
40
+
41
+ If the user gives a `skills.sh` URL, keep it as `skills.sh` or key-style. Do not rewrite it to a GitHub URL.
42
+
43
+ ## Import Examples
44
+
45
+ Preferred managed import:
46
+
47
+ ```bash
48
+ rudder skill import \
49
+ --org-id "$RUDDER_ORG_ID" \
50
+ --source "https://skills.sh/google-labs-code/stitch-skills/design-md" \
51
+ --json
52
+ ```
53
+
54
+ Equivalent key-style import:
55
+
56
+ ```bash
57
+ rudder skill import \
58
+ --org-id "$RUDDER_ORG_ID" \
59
+ --source "google-labs-code/stitch-skills/design-md" \
60
+ --json
61
+ ```
62
+
63
+ GitHub import:
64
+
65
+ ```bash
66
+ rudder skill import \
67
+ --org-id "$RUDDER_ORG_ID" \
68
+ --source "https://github.com/vercel-labs/agent-browser" \
69
+ --json
70
+ ```
71
+
72
+ Local skill scan:
73
+
74
+ ```bash
75
+ rudder skill scan-local \
76
+ --org-id "$RUDDER_ORG_ID" \
77
+ --roots "/abs/path/to/.agents,/abs/path/to/other-skill-root" \
78
+ --json
79
+ ```
80
+
81
+ Shared workspace scan:
82
+
83
+ ```bash
84
+ rudder skill scan-projects \
85
+ --org-id "$RUDDER_ORG_ID" \
86
+ --project-ids "<project-id-1>,<project-id-2>" \
87
+ --json
88
+ ```
89
+
90
+ Notes:
91
+
92
+ - Rudder now uses one fixed org workspace root at `~/.rudder/instances/<instance>/organizations/<org-id>/workspaces`.
93
+ - `scan-projects` should be treated as a compatibility command that scans the shared org workspace plus any legacy project workspace records that still exist.
94
+ - The org `Resources` catalog is the canonical place to register shared repos, docs, URLs, and connector objects for agents.
95
+ - Workspaces remains the disk-backed shared file surface for plans, notes, and skill packages.
96
+
97
+ ## Inspect Imported Skills
98
+
99
+ List skills:
100
+
101
+ ```bash
102
+ rudder skill list --org-id "$RUDDER_ORG_ID" --json
103
+ ```
104
+
105
+ Read one skill:
106
+
107
+ ```bash
108
+ rudder skill get "<skill-id>" --org-id "$RUDDER_ORG_ID" --json
109
+ ```
110
+
111
+ Read `SKILL.md` or another file from the package:
112
+
113
+ ```bash
114
+ rudder skill file "<skill-id>" --org-id "$RUDDER_ORG_ID" --path SKILL.md --json
115
+ rudder skill file "<skill-id>" --org-id "$RUDDER_ORG_ID" --path references/notes.md --json
116
+ ```
117
+
118
+ ## Enable Skills On An Existing Agent
119
+
120
+ `desiredSkills` accepts:
121
+
122
+ - exact organization skill key
123
+ - exact organization skill id
124
+ - exact slug when it is unique in the organization
125
+
126
+ ```bash
127
+ rudder agent skills sync \
128
+ "<agent-id>" \
129
+ --desired-skills "vercel-labs/agent-browser/agent-browser" \
130
+ --json
131
+ ```
132
+
133
+ For multiple skills:
134
+
135
+ ```bash
136
+ rudder agent skills sync \
137
+ "<agent-id>" \
138
+ --desired-skills "agent-browser,design-md" \
139
+ --json
140
+ ```
141
+
142
+ ## Permission Model
143
+
144
+ - organization skill reads: any same-organization actor
145
+ - organization skill mutations: board, CEO, or an agent with effective `agents:create`
146
+ - agent skill sync: same permission model as updating that agent
147
+
148
+ ## Notes
149
+
150
+ - Built-in Rudder skills live in the organization library but are not auto-enabled.
151
+ - New organizations also seed optional community preset skills into the organization library. They stay organization-managed and default-off for agents.
152
+ - If a skill reference is missing or ambiguous, Rudder returns `422`.
153
+ - Prefer linking back to the relevant issue, approval, and agent when commenting about skill changes.
154
+ - This document only covers library import/inspect/sync.
155
+ - Hire and create flows now live on the CLI-first `rudder-create-agent` path.
@@ -0,0 +1,166 @@
1
+ ---
2
+ name: rudder-create-agent
3
+ description: Create new agents in Rudder through the `rudder` CLI with governance-aware hiring. Use when you need to inspect adapter configuration options, compare existing agent configs, draft a new agent prompt/config, and submit a hire request.
4
+ ---
5
+
6
+ # Rudder Create Agent Skill
7
+
8
+ Use this skill when you are asked to hire or create an agent in Rudder.
9
+
10
+ ## Preconditions
11
+
12
+ You need either:
13
+
14
+ - board access, or
15
+ - agent permission `canCreateAgents=true` in your org
16
+
17
+ If you do not have this permission, escalate to your CEO or board.
18
+
19
+ This workflow is **CLI-first**.
20
+
21
+ - Use `rudder ... --json` for structured reads and mutations.
22
+ - Use `references/cli-reference.md` as the canonical command catalog for this skill.
23
+ - Treat `references/api-reference.md` as internal/debug/compatibility documentation, not the normal runtime interface.
24
+ - Do not create agent directories, instruction files, or org metadata manually as a fallback.
25
+ - If CLI auth is unavailable in a heartbeat run, stop and report the auth problem instead of mutating the filesystem.
26
+
27
+ ## Workflow
28
+
29
+ 1. Confirm identity and organization context.
30
+
31
+ ```sh
32
+ rudder agent me --json
33
+ ```
34
+
35
+ If this returns `{"error":"Agent authentication required"}`, treat it as a run-auth failure:
36
+
37
+ - do not ask for `RUDDER_API_KEY` inside the heartbeat
38
+ - do not fall back to manual filesystem creation
39
+ - stop and report that injected agent authentication is missing or invalid for this run
40
+
41
+ 2. Discover available adapter configuration docs for this Rudder instance.
42
+
43
+ ```sh
44
+ rudder agent config index
45
+ ```
46
+
47
+ 3. Read adapter-specific docs for the runtime you plan to use.
48
+
49
+ ```sh
50
+ rudder agent config doc codex_local
51
+ rudder agent config doc claude_local
52
+ ```
53
+
54
+ 4. Compare existing agents and redacted configurations in your organization.
55
+
56
+ ```sh
57
+ rudder agent list --org-id "$RUDDER_ORG_ID" --json
58
+ rudder agent config list --org-id "$RUDDER_ORG_ID" --json
59
+ rudder agent config get "<agent-id>" --json
60
+ ```
61
+
62
+ 5. Discover allowed agent icons and pick one that matches the role.
63
+
64
+ ```sh
65
+ rudder agent icons
66
+ ```
67
+
68
+ 6. If the role needs organization skills on day one, inspect or import them before hiring.
69
+
70
+ ```sh
71
+ rudder skill list --org-id "$RUDDER_ORG_ID" --json
72
+ rudder skill get "<skill-id>" --org-id "$RUDDER_ORG_ID" --json
73
+ rudder skill file "<skill-id>" --org-id "$RUDDER_ORG_ID" --path SKILL.md --json
74
+ rudder skill import --org-id "$RUDDER_ORG_ID" --source "<source>" --json
75
+ rudder skill scan-local --org-id "$RUDDER_ORG_ID" --roots "<csv>" --json
76
+ rudder skill scan-projects --org-id "$RUDDER_ORG_ID" --project-ids "<csv>" --workspace-ids "<csv>" --json
77
+ ```
78
+
79
+ 7. Draft the hire payload.
80
+
81
+ Required thinking:
82
+
83
+ - role / title / optional `name`
84
+ - `name` is optional; if omitted, Rudder assigns a distinct personal name automatically
85
+ - `icon` from `rudder agent icons`
86
+ - reporting line (`reportsTo`)
87
+ - adapter type
88
+ - optional `desiredSkills` from the organization skill library
89
+ - adapter and runtime config aligned to this environment
90
+ - capabilities
91
+ - run prompt in adapter config (`promptTemplate` where applicable)
92
+ - source issue linkage (`sourceIssueId` or `sourceIssueIds`) when this hire came from an issue
93
+
94
+ 8. Submit the canonical hire request.
95
+
96
+ ```sh
97
+ rudder agent hire --org-id "$RUDDER_ORG_ID" --payload '{
98
+ "role": "cto",
99
+ "title": "Chief Technology Officer",
100
+ "icon": "crown",
101
+ "reportsTo": "<ceo-agent-id>",
102
+ "capabilities": "Owns technical roadmap, architecture, staffing, execution",
103
+ "desiredSkills": ["vercel-labs/agent-browser/agent-browser"],
104
+ "agentRuntimeType": "codex_local",
105
+ "agentRuntimeConfig": {"cwd": "/abs/path/to/repo", "model": "o4-mini"},
106
+ "runtimeConfig": {"heartbeat": {"enabled": true, "intervalSec": 300, "wakeOnDemand": true}},
107
+ "sourceIssueId": "<issue-id>"
108
+ }' --json
109
+ ```
110
+
111
+ `agent hire` is the canonical surface because it preserves the real server behavior:
112
+
113
+ - if the organization does not require approval, it creates the agent directly and returns `"approval": null`
114
+ - if the organization requires approval, it creates the agent in `pending_approval` and returns both `agent` and `approval`
115
+
116
+ Do **not** substitute `rudder approval create --type hire_agent` for this step unless you are doing low-level debugging. That bypasses the canonical direct-create vs pending-approval behavior.
117
+
118
+ 9. Handle governance state.
119
+
120
+ If the hire response includes `approval`, monitor and discuss on the approval thread:
121
+
122
+ ```sh
123
+ rudder approval get "<approval-id>" --json
124
+ rudder approval comment "<approval-id>" --body "## CTO hire request submitted
125
+
126
+ - Approval: [<approval-id>](/<prefix>/messenger/approvals/<approval-id>)
127
+ - Pending agent: [<agent-ref>](/<prefix>/agents/<agent-url-key-or-id>)
128
+ - Source issue: [<issue-ref>](/<prefix>/issues/<issue-identifier-or-id>)
129
+
130
+ Updated prompt and adapter config per board feedback." --json
131
+ rudder approval resubmit "<approval-id>" --payload '{"title":"Revised title","agentRuntimeConfig":{"cwd":"/abs/path/to/repo","model":"o4-mini"}}' --json
132
+ rudder approval issues "<approval-id>" --json
133
+ ```
134
+
135
+ When the board approves, you may be woken with `RUDDER_APPROVAL_ID`:
136
+
137
+ ```sh
138
+ rudder approval get "$RUDDER_APPROVAL_ID" --json
139
+ rudder approval issues "$RUDDER_APPROVAL_ID" --json
140
+ ```
141
+
142
+ For each linked issue, either:
143
+
144
+ - close it if the approval resolved the request, or
145
+ - comment in markdown with links to the approval and next actions
146
+
147
+ ## Quality Bar
148
+
149
+ Before sending a hire request:
150
+
151
+ - if the role needs skills, make sure they already exist in the org library or import them first using the Rudder org-skills workflow
152
+ - reuse proven config patterns from related agents where possible
153
+ - set a concrete `icon` from `rudder agent icons` so the new hire is identifiable in org and task views
154
+ - avoid secrets in plain text unless required by adapter behavior
155
+ - ensure the reporting line is correct and in-org
156
+ - ensure the prompt is role-specific and operationally scoped
157
+ - prefer `sourceIssueId` or `sourceIssueIds` in the hire payload instead of manual approval linking
158
+ - if board requests revision, update the payload and resubmit through the approval flow
159
+ - do not report success unless `rudder agent hire` itself succeeded and you can cite the returned `agent.id` or `approval.id`
160
+ - creating local directories or instruction files is not evidence that an agent exists in Rudder
161
+
162
+ For canonical command syntax and examples, read:
163
+ `references/cli-reference.md`
164
+
165
+ For low-level route shapes and underlying compatibility endpoints, read:
166
+ `references/api-reference.md`
@@ -0,0 +1,172 @@
1
+ # Rudder Create Agent API Reference
2
+
3
+ Internal/debug reference for the bundled `rudder-create-agent` skill.
4
+
5
+ - Normal runtime execution should follow the CLI-first workflow in `../SKILL.md`.
6
+ - The canonical command catalog lives in `cli-reference.md`.
7
+ - Keep this document for route-level debugging, compatibility work, and payload-shape inspection.
8
+
9
+ ## CLI-to-API Mapping
10
+
11
+ | CLI command | Primary route |
12
+ | --- | --- |
13
+ | `rudder agent config index` | `GET /llms/agent-configuration.txt` |
14
+ | `rudder agent config doc <agentRuntimeType>` | `GET /llms/agent-configuration/:agentRuntimeType.txt` |
15
+ | `rudder agent icons` | `GET /llms/agent-icons.txt` |
16
+ | `rudder agent config list --org-id <orgId>` | `GET /api/orgs/:orgId/agent-configurations` |
17
+ | `rudder agent config get <agentId>` | `GET /api/agents/:agentId/configuration` |
18
+ | `rudder agent hire --org-id <orgId> --payload <json>` | `POST /api/orgs/:orgId/agent-hires` |
19
+ | `rudder approval get <approvalId>` | `GET /api/approvals/:approvalId` |
20
+ | `rudder approval comment <approvalId> --body <text>` | `POST /api/approvals/:approvalId/comments` |
21
+ | `rudder approval resubmit <approvalId> [--payload <json>]` | `POST /api/approvals/:approvalId/resubmit` |
22
+ | `rudder approval issues <approvalId>` | `GET /api/approvals/:approvalId/issues` |
23
+
24
+ ## Reflection Endpoints
25
+
26
+ - `GET /llms/agent-configuration.txt`
27
+ - `GET /llms/agent-configuration/:agentRuntimeType.txt`
28
+ - `GET /llms/agent-icons.txt`
29
+
30
+ Auth:
31
+
32
+ - board access, or
33
+ - same-org agent auth with `canCreateAgents=true`
34
+
35
+ These endpoints return plain text. The CLI wraps them directly.
36
+
37
+ ## Configuration Snapshots
38
+
39
+ - `GET /api/orgs/:orgId/agent-configurations`
40
+ - `GET /api/agents/:agentId/configuration`
41
+
42
+ These responses are redacted snapshots for comparison and reuse.
43
+
44
+ Representative shape:
45
+
46
+ ```json
47
+ {
48
+ "id": "uuid",
49
+ "orgId": "uuid",
50
+ "name": "CTO",
51
+ "role": "cto",
52
+ "title": "Chief Technology Officer",
53
+ "status": "idle",
54
+ "reportsTo": "uuid-or-null",
55
+ "agentRuntimeType": "codex_local",
56
+ "agentRuntimeConfig": {
57
+ "cwd": "/absolute/path",
58
+ "model": "o4-mini"
59
+ },
60
+ "runtimeConfig": {
61
+ "heartbeat": {
62
+ "enabled": true,
63
+ "intervalSec": 300,
64
+ "wakeOnDemand": true
65
+ }
66
+ },
67
+ "permissions": {
68
+ "canCreateAgents": true
69
+ },
70
+ "updatedAt": "2026-04-19T12:00:00.000Z"
71
+ }
72
+ ```
73
+
74
+ ## `POST /api/orgs/:orgId/agent-hires`
75
+
76
+ Canonical hire route used by `rudder agent hire`.
77
+
78
+ Request body:
79
+
80
+ ```json
81
+ {
82
+ "role": "cto",
83
+ "title": "Chief Technology Officer",
84
+ "icon": "crown",
85
+ "reportsTo": "uuid-or-null",
86
+ "capabilities": "Owns architecture and engineering execution",
87
+ "desiredSkills": ["vercel-labs/agent-browser/agent-browser"],
88
+ "agentRuntimeType": "codex_local",
89
+ "agentRuntimeConfig": {
90
+ "cwd": "/absolute/path",
91
+ "model": "o4-mini",
92
+ "promptTemplate": "You are CTO..."
93
+ },
94
+ "runtimeConfig": {
95
+ "heartbeat": {
96
+ "enabled": true,
97
+ "intervalSec": 300,
98
+ "wakeOnDemand": true
99
+ }
100
+ },
101
+ "budgetMonthlyCents": 0,
102
+ "sourceIssueId": "uuid-or-null",
103
+ "sourceIssueIds": ["uuid-1", "uuid-2"]
104
+ }
105
+ ```
106
+
107
+ Response when approval is required:
108
+
109
+ ```json
110
+ {
111
+ "agent": {
112
+ "id": "uuid",
113
+ "status": "pending_approval"
114
+ },
115
+ "approval": {
116
+ "id": "uuid",
117
+ "type": "hire_agent",
118
+ "status": "pending",
119
+ "payload": {
120
+ "desiredSkills": ["vercel-labs/agent-browser/agent-browser"]
121
+ }
122
+ }
123
+ }
124
+ ```
125
+
126
+ Response when approval is not required:
127
+
128
+ ```json
129
+ {
130
+ "agent": {
131
+ "id": "uuid",
132
+ "status": "idle"
133
+ },
134
+ "approval": null
135
+ }
136
+ ```
137
+
138
+ Important notes:
139
+
140
+ - `name` is optional; if omitted or blank, Rudder assigns a distinct first name automatically
141
+ - `desiredSkills` accepts organization skill ids, canonical keys, or a unique slug; the server resolves and stores canonical organization skill keys
142
+ - `sourceIssueId` and `sourceIssueIds` are the canonical way to link the hire back to originating issues
143
+ - this route is preferred over creating `hire_agent` approvals manually because it preserves the organization's approval policy
144
+
145
+ ## Approval Lifecycle
146
+
147
+ Relevant routes:
148
+
149
+ - `GET /api/approvals/:approvalId`
150
+ - `POST /api/approvals/:approvalId/comments`
151
+ - `POST /api/approvals/:approvalId/resubmit`
152
+ - `GET /api/approvals/:approvalId/issues`
153
+
154
+ Statuses:
155
+
156
+ - `pending`
157
+ - `revision_requested`
158
+ - `approved`
159
+ - `rejected`
160
+ - `cancelled`
161
+
162
+ For hire approvals:
163
+
164
+ - approved: linked agent transitions `pending_approval -> idle`
165
+ - rejected: linked agent is terminated
166
+
167
+ ## Safety Notes
168
+
169
+ - Config read APIs redact obvious secrets.
170
+ - `pending_approval` agents cannot run heartbeats, receive assignments, or create keys.
171
+ - All hire and approval actions are logged in activity for auditability.
172
+ - Use markdown in issue and approval comments and include links to the approval, agent, and source issue.
@@ -0,0 +1,126 @@
1
+ # Rudder Create Agent CLI Reference
2
+
3
+ Canonical CLI contract for the bundled `rudder-create-agent` skill. Prefer these commands over direct `/api` calls.
4
+
5
+ ## Defaults
6
+
7
+ - All commands support `--json`.
8
+ - `--org-id` defaults to `RUDDER_ORG_ID` when relevant.
9
+ - Mutating commands attach `RUDDER_RUN_ID` automatically when available.
10
+ - `agent config index`, `agent config doc`, and `agent icons` print plain text by default. With `--json`, they emit that text as a JSON string.
11
+
12
+ ## Core CLI Surface
13
+
14
+ ### Identity and discovery
15
+
16
+ ```sh
17
+ rudder agent me --json
18
+ rudder agent list --org-id "$RUDDER_ORG_ID" --json
19
+ rudder agent get "<agent-id-or-shortname>" --org-id "$RUDDER_ORG_ID" --json
20
+ rudder agent config index
21
+ rudder agent config doc "<agent-runtime-type>"
22
+ rudder agent config list --org-id "$RUDDER_ORG_ID" --json
23
+ rudder agent config get "<agent-id-or-shortname>" --org-id "$RUDDER_ORG_ID" --json
24
+ rudder agent icons
25
+ ```
26
+
27
+ Use these in order:
28
+
29
+ 1. `agent me` to verify auth and org context
30
+ 2. `agent config index` to discover installed runtimes
31
+ 3. `agent config doc` to read one runtime's required fields and examples
32
+ 4. `agent list` plus `agent config list/get` to reuse proven patterns from related agents
33
+ 5. `agent icons` to choose an allowed `icon`
34
+
35
+ ### Organization skills
36
+
37
+ ```sh
38
+ rudder skill list --org-id "$RUDDER_ORG_ID" --json
39
+ rudder skill get "<skill-id>" --org-id "$RUDDER_ORG_ID" --json
40
+ rudder skill file "<skill-id>" --org-id "$RUDDER_ORG_ID" --path SKILL.md --json
41
+ rudder skill import --org-id "$RUDDER_ORG_ID" --source "<source>" --json
42
+ rudder skill scan-local --org-id "$RUDDER_ORG_ID" --roots "<csv>" --json
43
+ rudder skill scan-projects --org-id "$RUDDER_ORG_ID" --project-ids "<csv>" --workspace-ids "<csv>" --json
44
+ ```
45
+
46
+ Use these before hiring when the new role needs `desiredSkills`.
47
+
48
+ `desiredSkills` accepts:
49
+
50
+ - exact organization skill key
51
+ - exact organization skill id
52
+ - exact slug when it is unique in the organization
53
+
54
+ ### Canonical hire flow
55
+
56
+ ```sh
57
+ rudder agent hire --org-id "$RUDDER_ORG_ID" --payload '{
58
+ "role": "cto",
59
+ "title": "Chief Technology Officer",
60
+ "icon": "crown",
61
+ "reportsTo": "<ceo-agent-id>",
62
+ "capabilities": "Owns technical roadmap, architecture, staffing, execution",
63
+ "desiredSkills": ["vercel-labs/agent-browser/agent-browser"],
64
+ "agentRuntimeType": "codex_local",
65
+ "agentRuntimeConfig": {"cwd": "/abs/path/to/repo", "model": "o4-mini"},
66
+ "runtimeConfig": {"heartbeat": {"enabled": true, "intervalSec": 300, "wakeOnDemand": true}},
67
+ "sourceIssueId": "<issue-id>"
68
+ }' --json
69
+ ```
70
+
71
+ Canonical semantics:
72
+
73
+ - this wraps `POST /api/orgs/:orgId/agent-hires`
74
+ - if the organization does not require board approval, the response contains `approval: null` and the agent is created directly
75
+ - if the organization requires board approval, the response contains both `agent` and `approval`, and the new agent stays `pending_approval`
76
+
77
+ Do not use `rudder approval create --type hire_agent` as a replacement for `agent hire` during normal skill execution. That is a lower-level compatibility surface and does not preserve the canonical direct-create behavior.
78
+
79
+ ### Approval follow-up
80
+
81
+ ```sh
82
+ rudder approval get "<approval-id>" --json
83
+ rudder approval comment "<approval-id>" --body "<markdown>" --json
84
+ rudder approval resubmit "<approval-id>" --payload '{"...":"..."}' --json
85
+ rudder approval issues "<approval-id>" --json
86
+ ```
87
+
88
+ Notes:
89
+
90
+ - `approval comment` should use markdown and link the approval, pending agent, and source issue when available
91
+ - `approval resubmit` is only for a revision-requested approval; update the payload instead of creating a second hire
92
+ - if the run wakes with `RUDDER_APPROVAL_ID`, treat that approval as the first task
93
+
94
+ ## Payload Notes
95
+
96
+ The `agent hire` payload accepts the same shape as the hire API, including:
97
+
98
+ - `name` optional; blank or omitted means Rudder assigns a distinct first name
99
+ - `role`
100
+ - `title`
101
+ - `icon`
102
+ - `reportsTo`
103
+ - `capabilities`
104
+ - `desiredSkills`
105
+ - `agentRuntimeType`
106
+ - `agentRuntimeConfig`
107
+ - `runtimeConfig`
108
+ - `budgetMonthlyCents`
109
+ - `metadata`
110
+ - `sourceIssueId`
111
+ - `sourceIssueIds`
112
+
113
+ Issue linkage rule:
114
+
115
+ - prefer `sourceIssueId` or `sourceIssueIds` inside the hire payload
116
+ - use `approval issues` to inspect the resulting approval links after the server creates them
117
+
118
+ ## Related Commands
119
+
120
+ Post-hire adjustments use the normal agent and skill surfaces:
121
+
122
+ ```sh
123
+ rudder agent get "<agent-id-or-shortname>" --org-id "$RUDDER_ORG_ID" --json
124
+ rudder agent skills sync "<agent-id>" --desired-skills "<csv>" --json
125
+ rudder agent local-cli "<agent-id-or-shortname>" --org-id "$RUDDER_ORG_ID" --json
126
+ ```