@deepraxis/cli 0.1.0-dev.e4c5523 → 0.1.0-dev.ea77ce8

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 (5) hide show
  1. package/COMMANDS.md +370 -0
  2. package/LICENSE +202 -67
  3. package/README.md +200 -36
  4. package/dist/praxis.js +145 -42
  5. package/package.json +22 -13
package/dist/praxis.js CHANGED
@@ -10,7 +10,7 @@ var operations = [
10
10
  {
11
11
  resource: "agent.agents",
12
12
  method: "list",
13
- summary: "",
13
+ summary: "List agents",
14
14
  description: "List the agents of the workspace behind your API key, newest first, in pages of at most 100 (default 20). Use it to find an agent id before creating a session; to read one agent use agents.retrieve, to see its history use agents.versions.list. Archived agents are hidden unless include_archived is true. Filter kind=personal for durable-computer agents or kind=service for per-session environments. Pass next_page from the response as page to read the next page; a null next_page means the end.",
15
15
  http: "GET",
16
16
  path: "/agent/v1/agents",
@@ -67,7 +67,7 @@ var operations = [
67
67
  {
68
68
  resource: "agent.agents",
69
69
  method: "create",
70
- summary: "",
70
+ summary: "Create agent",
71
71
  description: 'Create a reusable agent definition, then pass its returned id to sessions.create to start a conversation. The definition includes model, system prompt, tools, MCP servers and an optional multiagent roster. It is saved as version 1; real updates create new versions. Unlike Anthropic Managed Agents, nonempty skills attachments and custom tool entries return 400; the native skill tool is separate from the skills field. Use tools: [{type: "agent_toolset_20260401"}] for built-in tools including codemode, skill and agent; inspect toolsets.list for names and schemas, and keep bash enabled for native additions. To offer only some tools, set default_config: {enabled: false} and list the tools to keep in configs, e.g. tools: [{type: "agent_toolset_20260401", default_config: {enabled: false}, configs: [{name: "codemode", enabled: true}, {name: "bash", enabled: true, permission_policy: {type: "always_ask"}}]}]; every tool not listed, including todo_write, enter_plan_mode, ask_user_question and goal_read, follows default_config, and the response echoes it. codemode runs through bash, so enabling codemode while bash is disabled returns 400. Optional mcp_toolset entries pair with mcp_servers. model accepts platform model IDs such as deepseek-flash, not only the Claude IDs in the protocol examples. model.settings.reasoning sets default thinking; other extra model controls return 400. Example: {"name":"helper","model":{"id":"deepseek-flash"},"tools":[{"type":"agent_toolset_20260401"}]}.',
72
72
  http: "POST",
73
73
  path: "/agent/v1/agents",
@@ -190,7 +190,7 @@ across all toolsets allowed.`
190
190
  {
191
191
  resource: "agent.agents",
192
192
  method: "retrieve",
193
- summary: "",
193
+ summary: "Get agent",
194
194
  description: "Read one agent by id, at its latest version or, with version, at a specific earlier version. The response lists every native tool with its resolved configuration in one agent_toolset_20260401 entry, so it can be sent back unchanged to agents.update. Use agents.versions.list to enumerate versions.",
195
195
  http: "GET",
196
196
  path: "/agent/v1/agents/{agent_id}",
@@ -214,7 +214,7 @@ across all toolsets allowed.`
214
214
  {
215
215
  resource: "agent.agents",
216
216
  method: "update",
217
- summary: "",
217
+ summary: "Update agent",
218
218
  description: "Update an agent. Send the current version in the body for optimistic concurrency: a stale version returns 409, and an update that changes nothing keeps the version number. Any real change saves a new version; existing sessions keep the version they were created with. Omitted fields keep their value. multiagent takes null or a coordinator roster; subagent_model keeps its value when omitted and is cleared by null. Archived agents cannot be updated. Unlike Anthropic Managed Agents, nonempty skills attachments and custom tools return 400; use the native skill tool for available runtime skills.",
219
219
  http: "POST",
220
220
  path: "/agent/v1/agents/{agent_id}",
@@ -355,7 +355,7 @@ current version; omit to apply the update unconditionally.`
355
355
  {
356
356
  resource: "agent.agents",
357
357
  method: "archive",
358
- summary: "",
358
+ summary: "Archive agent",
359
359
  description: "Archive an agent so it can no longer be updated and no new session can be created from it (AGENT_ARCHIVED). The agent and all of its versions stay readable. Use it to retire an agent you no longer want to run; it does not delete anything.",
360
360
  http: "POST",
361
361
  path: "/agent/v1/agents/{agent_id}/archive",
@@ -372,7 +372,7 @@ current version; omit to apply the update unconditionally.`
372
372
  {
373
373
  resource: "agent.agents.versions",
374
374
  method: "list",
375
- summary: "",
375
+ summary: "List agent versions",
376
376
  description: "List the saved versions of one agent, in pages of at most 100 (default 20). Each item is the full agent definition at that version, so you can compare what changed between versions. Use agents.retrieve with version to read a single one; agent_id comes from agents.list or agents.create.",
377
377
  http: "GET",
378
378
  path: "/agent/v1/agents/{agent_id}/versions",
@@ -648,7 +648,7 @@ Praxis extension: MA only has session-scoped temporary containers and memory_sto
648
648
  {
649
649
  resource: "agent.deploymentRuns",
650
650
  method: "list",
651
- summary: "",
651
+ summary: "List deployment runs",
652
652
  description: "List deployment runs newest first. Filter by deployment_id, has_error, trigger_type (manual or schedule) and created_at[gt|gte|lt|lte]. The default limit is 20, maximum 100; pass next_page as page with the same filters to continue. Each record identifies the resolved agent version and either its session or creation error.",
653
653
  http: "GET",
654
654
  path: "/agent/v1/deployment_runs",
@@ -723,7 +723,7 @@ Praxis extension: MA only has session-scoped temporary containers and memory_sto
723
723
  {
724
724
  resource: "agent.deploymentRuns",
725
725
  method: "retrieve",
726
- summary: "",
726
+ summary: "Get deployment run",
727
727
  description: "Read a deployment run by the drun_ id returned by deployments.run or deployment_runs.list. Exactly one of session_id and error is non-null. Scheduled runs include scheduled_at in trigger_context. Foreign or absent ids return 404.",
728
728
  http: "GET",
729
729
  path: "/agent/v1/deployment_runs/{deployment_run_id}",
@@ -740,7 +740,7 @@ Praxis extension: MA only has session-scoped temporary containers and memory_sto
740
740
  {
741
741
  resource: "agent.deployments",
742
742
  method: "list",
743
- summary: "",
743
+ summary: "List deployments",
744
744
  description: "List stored deployments newest first. Filter by agent_id, status, or inclusive created_at bounds; status and include_archived cannot be combined, even when include_archived is false. The default limit is 20, maximum 100; pass next_page as page to continue. Archived deployments are hidden by default. Schedules show up to five future wall-clock occurrences, also while paused; archived schedules show none.",
745
745
  http: "GET",
746
746
  path: "/agent/v1/deployments",
@@ -804,8 +804,8 @@ archived).`
804
804
  {
805
805
  resource: "agent.deployments",
806
806
  method: "create",
807
- summary: "",
808
- description: "Freeze session parameters as a deployment; this operation does not open a session. Pass an agent id or versioned reference, a name, 1–50 user.message initial events and an environment_id from environments.list. Unlike Anthropic Managed Agents, /agent/v1 also accepts agent_with_overrides (model, permission_mode and cwd) and target=computer for personal agents, with environment_id omitted. Cron schedules use five POSIX fields and an IANA timezone. File resources and empty vault_ids are accepted. Active schedules run every minute when due; session creation errors pause the deployment. Unsupported tools, mcp_servers, system and skills overrides return 400.",
807
+ summary: "Create deployment",
808
+ description: "Freeze session parameters as a deployment; this operation does not open a session. Pass an agent id or versioned reference, a name, 1–50 user.message initial events and an environment_id from environments.list. Unlike Anthropic Managed Agents, /agent/v1 also accepts agent_with_overrides (model, permission_mode and cwd) and target=computer for personal agents, with environment_id omitted. Cron schedules use five POSIX fields and an IANA timezone. File resources are accepted. Supports vault_ids, up to 50, owned by the current organization and not archived; credential injection is deferred to a later version. Active schedules run every minute when due; session creation errors pause the deployment. Unsupported tools, mcp_servers, system and skills overrides return 400.",
809
809
  http: "POST",
810
810
  path: "/agent/v1/deployments",
811
811
  streaming: "no",
@@ -894,7 +894,7 @@ created from this deployment. Maximum 50.`
894
894
  {
895
895
  resource: "agent.deployments",
896
896
  method: "retrieve",
897
- summary: "",
897
+ summary: "Get deployment",
898
898
  description: "Read a stored deployment by its depl_ id from deployments.create or deployments.list. The agent reference has a concrete version; own-face overrides are echoed unchanged. This read recomputes upcoming schedule times and does not execute the deployment. Foreign or absent ids return 404.",
899
899
  http: "GET",
900
900
  path: "/agent/v1/deployments/{deployment_id}",
@@ -911,7 +911,7 @@ created from this deployment. Maximum 50.`
911
911
  {
912
912
  resource: "agent.deployments",
913
913
  method: "update",
914
- summary: "",
914
+ summary: "Update deployment",
915
915
  description: "Partially update a deployment. Omitted fields keep their values; a supplied agent id re-pins the latest version, or supply a versioned reference. Metadata merges string values and deletes keys set to null. Null clears schedule, resources and description; name, environment_id and initial_events cannot be cleared. Archived deployments return 409. Overrides apply to new sessions; updating a schedule recalculates its next occurrence.",
916
916
  http: "POST",
917
917
  path: "/agent/v1/deployments/{deployment_id}",
@@ -1009,7 +1009,7 @@ null to clear. Maximum 50.`
1009
1009
  {
1010
1010
  resource: "agent.deployments",
1011
1011
  method: "archive",
1012
- summary: "",
1012
+ summary: "Archive deployment",
1013
1013
  description: "Archive a deployment by its depl_ id. Repeated calls are idempotent; archived deployments remain readable and have no upcoming schedule times. Subsequent update, pause and unpause calls return 409. This operation does not create a deployment run.",
1014
1014
  http: "POST",
1015
1015
  path: "/agent/v1/deployments/{deployment_id}/archive",
@@ -1026,7 +1026,7 @@ null to clear. Maximum 50.`
1026
1026
  {
1027
1027
  resource: "agent.deployments",
1028
1028
  method: "pause",
1029
- summary: "",
1029
+ summary: "Pause deployment",
1030
1030
  description: "Pause an active deployment and set paused_reason to {type: manual}. Repeated pause calls are idempotent; archived deployments return 409. Upcoming schedule times remain visible while paused; no run is executed.",
1031
1031
  http: "POST",
1032
1032
  path: "/agent/v1/deployments/{deployment_id}/pause",
@@ -1043,7 +1043,7 @@ null to clear. Maximum 50.`
1043
1043
  {
1044
1044
  resource: "agent.deployments.run",
1045
1045
  method: "create",
1046
- summary: "",
1046
+ summary: "Run deployment",
1047
1047
  description: "Create one session from an active deployment using its pinned agent version and stored parameters. Pass the depl_ id from deployments.create or deployments.list; no request body is needed. Returns a drun_ record with exactly one of session_id or error populated. Creation errors automatically pause the deployment; paused or archived deployments return 409 without a run. Unlike the own face, the compatible face rejects computer targets with 400.",
1048
1048
  http: "POST",
1049
1049
  path: "/agent/v1/deployments/{deployment_id}/run",
@@ -1060,7 +1060,7 @@ null to clear. Maximum 50.`
1060
1060
  {
1061
1061
  resource: "agent.deployments.unpause",
1062
1062
  method: "create",
1063
- summary: "",
1063
+ summary: "Unpause deployment",
1064
1064
  description: "Resume a paused deployment and clear paused_reason. Repeated unpause calls on an active deployment are idempotent; archived deployments return 409. This operation changes resource state only and does not execute a run.",
1065
1065
  http: "POST",
1066
1066
  path: "/agent/v1/deployments/{deployment_id}/unpause",
@@ -1210,7 +1210,7 @@ Use an id from issuance or listing. Revokes the credential before setting revoke
1210
1210
  {
1211
1211
  resource: "agent.environments",
1212
1212
  method: "list",
1213
- summary: "",
1213
+ summary: "List environments",
1214
1214
  description: "List execution environments: the built-in recipes and the tenant-owned cloud environments that a session can run in. Archived environments are hidden unless include_archived is true. Pages hold at most 100 items (default 20); pass next_page as page to continue. Use the returned id as environment_id when creating a session.",
1215
1215
  http: "GET",
1216
1216
  path: "/agent/v1/environments",
@@ -1245,7 +1245,7 @@ Use an id from issuance or listing. Revokes the credential before setting revoke
1245
1245
  {
1246
1246
  resource: "agent.environments",
1247
1247
  method: "create",
1248
- summary: "",
1248
+ summary: "Create environment",
1249
1249
  description: "Create a tenant-owned cloud environment: a sandbox recipe (packages to install and networking policy) that sessions can select through environment_id. Package installation happens when the session's sandbox is created; a failed install terminates that session with ENVIRONMENT_PACKAGE_INSTALL_FAILED. Limited networking is applied at sandbox creation. Unlike Anthropic Managed Agents, self_hosted environments, scope and cross-session package caching are not supported.",
1250
1250
  http: "POST",
1251
1251
  path: "/agent/v1/environments",
@@ -1299,7 +1299,7 @@ rejected. If not specified, defaults based on organization type.`
1299
1299
  {
1300
1300
  resource: "agent.environments",
1301
1301
  method: "retrieve",
1302
- summary: "",
1302
+ summary: "Get environment",
1303
1303
  description: "Read one environment's configuration and status by id. Built-in environments are readable but never editable; tenant-owned ones can be updated or archived. environment_id comes from environments.list or environments.create.",
1304
1304
  http: "GET",
1305
1305
  path: "/agent/v1/environments/{environment_id}",
@@ -1316,7 +1316,7 @@ rejected. If not specified, defaults based on organization type.`
1316
1316
  {
1317
1317
  resource: "agent.environments",
1318
1318
  method: "update",
1319
- summary: "",
1319
+ summary: "Update environment",
1320
1320
  description: "Update the configuration of a tenant-owned cloud environment. Built-in environments are read-only. Package installation and limited networking are applied when a session's sandbox is created. Omitted fields keep their value.",
1321
1321
  http: "POST",
1322
1322
  path: "/agent/v1/environments/{environment_id}",
@@ -1375,7 +1375,7 @@ owning account only.`
1375
1375
  {
1376
1376
  resource: "agent.environments",
1377
1377
  method: "archive",
1378
- summary: "",
1378
+ summary: "Archive environment",
1379
1379
  description: "Soft-archive a tenant-owned cloud environment so it can no longer be used to create new sessions. Built-in environments are read-only and cannot be archived.",
1380
1380
  http: "POST",
1381
1381
  path: "/agent/v1/environments/{environment_id}/archive",
@@ -1392,7 +1392,7 @@ owning account only.`
1392
1392
  {
1393
1393
  resource: "agent.sessions",
1394
1394
  method: "list",
1395
- summary: "",
1395
+ summary: "List sessions",
1396
1396
  description: "List sessions of the workspace behind your API key, newest first, in pages of at most 100 (default 20). Unlike Anthropic Managed Agents, only limit, page, agent_id and deployment_id are honored; the other filters declared here (agent_version, created_at ranges, memory_store_id, include_archived, order, statuses) are not supported and return 400. Use the returned id with sessions.retrieve or sessions.events.list; pass next_page as page for the next page.",
1397
1397
  http: "GET",
1398
1398
  path: "/agent/v1/sessions",
@@ -1498,8 +1498,8 @@ owning account only.`
1498
1498
  {
1499
1499
  resource: "agent.sessions",
1500
1500
  method: "create",
1501
- summary: "",
1502
- description: `Create a session: one conversation with an agent, running on a machine. Pass agent as an agent id (latest version) or {id, version, type:"agent"}. Unlike Anthropic Managed Agents, omit environment_id to get a light machine, unless computer_id (explicit, or the agent's default) selects a Computer; pass environment_id for a sandbox recipe. Optional model must be one of the agent's allowed models; optional thinking is {effort: low|medium|high|xhigh|none} or null, where null inherits the agent default and then the model default (none requires the model to allow disabling thinking). Selections are saved before initial_events run; invalid ones return 400 invalid_request_error. Inline agent overrides and nonempty vault_ids are not supported. Omitted budget defaults to USD 20; null removes the limit, and a limit object uses a positive integer string of USD cents. Up to 500 file resources can be attached. Use initial_events to send a first user.message in this request, or send messages afterwards with sessions.events.send. The returned status can still be idle before initial events run; read agent.message and the subsequent session.status_idle event to confirm completion.`,
1501
+ summary: "Create session",
1502
+ description: `Create a session: one conversation with an agent, running on a machine. Pass agent as an agent id (latest version) or {id, version, type:"agent"}. Unlike Anthropic Managed Agents, omit environment_id to get a light machine, unless computer_id (explicit, or the agent's default) selects a Computer; pass environment_id for a sandbox recipe. Optional model must be one of the agent's allowed models; optional thinking is {effort: low|medium|high|xhigh|none} or null, where null inherits the agent default and then the model default (none requires the model to allow disabling thinking). Selections are saved before initial_events run; invalid ones return 400 invalid_request_error. Inline agent overrides are not supported. Supports vault_ids, up to 50, owned by the current organization and not archived; credential injection is deferred to a later version. Omitted budget defaults to USD 20; null removes the limit, and a limit object uses a positive integer string of USD cents. Up to 500 file resources can be attached. Use initial_events to send a first user.message in this request, or send messages afterwards with sessions.events.send. The returned status can still be idle before initial events run; read agent.message and the subsequent session.status_idle event to confirm completion.`,
1503
1503
  http: "POST",
1504
1504
  path: "/agent/v1/sessions",
1505
1505
  streaming: "no",
@@ -1602,7 +1602,7 @@ offsets ("+08:00") and unknown names return 400. Never stored in
1602
1602
  {
1603
1603
  resource: "agent.sessions",
1604
1604
  method: "retrieve",
1605
- summary: "",
1605
+ summary: "Get session",
1606
1606
  description: "Read one session by id: its agent snapshot, status, model and thinking selection, resources, title, metadata and, for a fork, forked_from. Use it to poll status; to read what happened use sessions.events.list. This response does not include a machine object or sandbox id. With no environment_id or Computer selected at creation, the session starts on a light machine; no environment lookup or provisioning is needed for a codemode calculation.",
1607
1607
  http: "GET",
1608
1608
  path: "/agent/v1/sessions/{session_id}",
@@ -1619,8 +1619,8 @@ offsets ("+08:00") and unknown names return 400. Never stored in
1619
1619
  {
1620
1620
  resource: "agent.sessions",
1621
1621
  method: "update",
1622
- summary: "",
1623
- description: "Update a session's title, metadata, model or thinking selection. metadata follows patch semantics: a string value sets the key, null deletes it, a null metadata clears all keys, untouched keys stay. model must be allowed by the session's agent version; thinking is {effort} or null (null restores inheritance); a model-only change clears a session thinking that the new model does not support, and combined changes are validated against the new model, with the previous selection kept on a 400. Changes apply from the next turn, not to a turn already running. Agent overrides and nonempty vault_ids are not supported (400 naming the field). A budget limit must exceed consumed cost; null removes it permanently for this session. Updating an archived session returns 409.",
1622
+ summary: "Update session",
1623
+ description: "Update a session's title, metadata, model or thinking selection. metadata follows patch semantics: a string value sets the key, null deletes it, a null metadata clears all keys, untouched keys stay. model must be allowed by the session's agent version; thinking is {effort} or null (null restores inheritance); a model-only change clears a session thinking that the new model does not support, and combined changes are validated against the new model, with the previous selection kept on a 400. Changes apply from the next turn, not to a turn already running. Agent overrides are not supported (400 naming the field). Supports vault_ids, up to 50, owned by the current organization and not archived; credential injection is deferred to a later version. A budget limit must exceed consumed cost; null removes it permanently for this session. Updating an archived session returns 409.",
1624
1624
  http: "POST",
1625
1625
  path: "/agent/v1/sessions/{session_id}",
1626
1626
  streaming: "no",
@@ -1685,7 +1685,7 @@ delete it. Omit the field to preserve.`
1685
1685
  {
1686
1686
  resource: "agent.sessions",
1687
1687
  method: "archive",
1688
- summary: "",
1688
+ summary: "Archive session",
1689
1689
  description: "Archive a session. An archived session refuses new messages with 400 invalid_request_error, while its details and event history stay readable. Archiving again is idempotent and archived_at keeps the first archive time. Use it when a conversation is finished; it does not delete anything.",
1690
1690
  http: "POST",
1691
1691
  path: "/agent/v1/sessions/{session_id}/archive",
@@ -1871,7 +1871,7 @@ Praxis extension available only on /agent/v1, following Claude Agent SDK getCont
1871
1871
  {
1872
1872
  resource: "agent.sessions.events",
1873
1873
  method: "list",
1874
- summary: "",
1874
+ summary: "List session events",
1875
1875
  description: "Read the event history of a session as a page of events, oldest first by default (order=desc for newest first). Use it after sending a message to collect the reply, to find tool calls that wait for approval (session.status_idle with stop_reason requires_action lists their event_ids), or to audit a run; to follow a running session live use sessions.events.stream instead. Filter by types and by a created_at range on processed_at; pages hold at most 100 events (default 20) and next_page continues. A failed run emits session.error before session.status_terminated. Native history also includes user.steer, user.withdraw, system.notification, session.forked, session.goal_changed and session.goal_verification; these are not accepted by the /anthropic/v1 event-type filter.",
1876
1876
  http: "GET",
1877
1877
  path: "/agent/v1/sessions/{session_id}/events",
@@ -1942,7 +1942,7 @@ Praxis extension available only on /agent/v1, following Claude Agent SDK getCont
1942
1942
  {
1943
1943
  resource: "agent.sessions.events",
1944
1944
  method: "send",
1945
- summary: "",
1945
+ summary: "Send session events",
1946
1946
  description: 'Send events to a session: user.message (exactly one nonempty text block), user.interrupt, user.tool_confirmation to allow or deny a pending tool call, user.steer to inject a queued user.message into a turn that is still running, and user.withdraw to retract a queued message. The response only acknowledges the inputs; read replies with sessions.events.list or sessions.events.stream. A message sent while the session waits for tool approval is queued (processed_at null) and runs in order after the approval is resolved. Archived sessions reject new messages. To approve, read a pending agent.tool_use or agent.mcp_tool_use event and send {type: "user.tool_confirmation", tool_use_id: <that event id>, result: "allow"} (or deny); include session_thread_id for a child approval. Native confirmations also accept updated_permissions, answers and annotations, which /anthropic/v1 rejects.',
1947
1947
  http: "POST",
1948
1948
  path: "/agent/v1/sessions/{session_id}/events",
@@ -1971,7 +1971,7 @@ Praxis extension available only on /agent/v1, following Claude Agent SDK getCont
1971
1971
  {
1972
1972
  resource: "agent.sessions.events",
1973
1973
  method: "stream",
1974
- summary: "",
1974
+ summary: "Stream session events",
1975
1975
  description: "Open a Server-Sent Events stream of a session's events in real time. Use it to show a reply as it is produced; to read past events use sessions.events.list. Send a message through sessions.events.send in another request while the stream is open. Closing the stream only drops your subscription and does not stop the agent. Pass event_deltas[]=agent.message, agent.thinking or agent.tool_use to also receive event_start / event_delta previews before the final event.",
1976
1976
  http: "GET",
1977
1977
  path: "/agent/v1/sessions/{session_id}/events/stream",
@@ -2030,7 +2030,7 @@ Available only on /agent/v1. Use the message_id field from own-face events, not
2030
2030
  {
2031
2031
  resource: "agent.sessions.resources",
2032
2032
  method: "list",
2033
- summary: "",
2033
+ summary: "List session resources",
2034
2034
  description: "List the extra resources (file references) attached to a session, oldest first, at most 1000 per page (default 1000). Use the returned id with sessions.resources.retrieve or sessions.resources.delete; next_page continues a truncated list.",
2035
2035
  http: "GET",
2036
2036
  path: "/agent/v1/sessions/{session_id}/resources",
@@ -2060,7 +2060,7 @@ Available only on /agent/v1. Use the message_id field from own-face events, not
2060
2060
  {
2061
2061
  resource: "agent.sessions.resources",
2062
2062
  method: "create",
2063
- summary: "",
2063
+ summary: "Add session resource",
2064
2064
  description: "Attach a file resource to a session by file_id, up to 500 per session. The file must exist and belong to your tenant. It is mounted under /mnt/session/uploads/<file_id> unless mount_path is given; custom paths are rooted there and parent traversal is rejected. File content is immutable through this API, and synchronizing it into a running sandbox is not implemented in this version.",
2065
2065
  http: "POST",
2066
2066
  path: "/agent/v1/sessions/{session_id}/resources",
@@ -2104,7 +2104,7 @@ Available only on /agent/v1. Use the message_id field from own-face events, not
2104
2104
  {
2105
2105
  resource: "agent.sessions.resources",
2106
2106
  method: "delete",
2107
- summary: "",
2107
+ summary: "Delete session resource",
2108
2108
  description: "Detach a resource from a session. Only the reference is removed; the underlying file is not deleted. The response is {id, type: session_resource_deleted}. resource_id comes from sessions.resources.list or the add call.",
2109
2109
  http: "DELETE",
2110
2110
  path: "/agent/v1/sessions/{session_id}/resources/{resource_id}",
@@ -2133,7 +2133,7 @@ Available only on /agent/v1. Use the message_id field from own-face events, not
2133
2133
  {
2134
2134
  resource: "agent.sessions.resources",
2135
2135
  method: "retrieve",
2136
- summary: "",
2136
+ summary: "Get session resource",
2137
2137
  description: "Read one resource attached to a session: its type, file_id, mount_path and timestamps. resource_id comes from sessions.resources.list or sessions.resources.add.",
2138
2138
  http: "GET",
2139
2139
  path: "/agent/v1/sessions/{session_id}/resources/{resource_id}",
@@ -2159,10 +2159,77 @@ Available only on /agent/v1. Use the message_id field from own-face events, not
2159
2159
  }
2160
2160
  ]
2161
2161
  },
2162
+ {
2163
+ resource: "agent.sessions.runs",
2164
+ method: "deleteFeedback",
2165
+ summary: "Delete Run Feedback",
2166
+ description: `Remove the rating and comment for a run.
2167
+
2168
+ Own-face extension. Use the session id from session creation or listing and the run_id from its events. Requires a readable session and a run belonging to it. Idempotent; returns 204 even when no feedback exists. End users can delete feedback only for their own sessions. Does not delete the run or messages, enter model context, or start another run.`,
2169
+ http: "DELETE",
2170
+ path: "/agent/v1/sessions/{session_id}/runs/{run_id}/feedback",
2171
+ streaming: "no",
2172
+ pagination: false,
2173
+ pathParams: [
2174
+ {
2175
+ name: "session_id",
2176
+ sdkName: "session_id"
2177
+ },
2178
+ {
2179
+ name: "run_id",
2180
+ sdkName: "run_id"
2181
+ }
2182
+ ],
2183
+ query: []
2184
+ },
2185
+ {
2186
+ resource: "agent.sessions.runs.feedback",
2187
+ method: "create",
2188
+ summary: "Set Run Feedback",
2189
+ description: `Submit thumbs up or thumbs down for a run, with an optional comment.
2190
+
2191
+ Own-face extension. Use a readable session and a run_id from its events. Each submission replaces the previous rating and comment; omitted or null comment clears it, while created_at is preserved. Comments allow at most 2000 Unicode characters. End users can submit only for their own sessions. Feedback never enters model context or starts a run. For example, submit {"rating":"positive","comment":"Helpful"}. POST follows Managed Agents resource update conventions; the resource remains unique per session and run.`,
2192
+ http: "POST",
2193
+ path: "/agent/v1/sessions/{session_id}/runs/{run_id}/feedback",
2194
+ streaming: "no",
2195
+ pagination: false,
2196
+ pathParams: [
2197
+ {
2198
+ name: "session_id",
2199
+ sdkName: "session_id"
2200
+ },
2201
+ {
2202
+ name: "run_id",
2203
+ sdkName: "run_id"
2204
+ }
2205
+ ],
2206
+ query: [],
2207
+ body: {
2208
+ required: true,
2209
+ fields: [
2210
+ {
2211
+ name: "rating",
2212
+ type: "string",
2213
+ enum: [
2214
+ "positive",
2215
+ "negative"
2216
+ ],
2217
+ required: true,
2218
+ description: "positive means thumbs up; negative means thumbs down for this run."
2219
+ },
2220
+ {
2221
+ name: "comment",
2222
+ type: "string",
2223
+ required: false,
2224
+ description: "Optional comment, at most 2000 Unicode characters. Omit or send null to clear the previous comment."
2225
+ }
2226
+ ]
2227
+ }
2228
+ },
2162
2229
  {
2163
2230
  resource: "agent.sessions.threads",
2164
2231
  method: "list",
2165
- summary: "",
2232
+ summary: "List session threads",
2166
2233
  description: "List the execution threads of a session: the primary thread plus every child thread started by subagents or advisors, in created_at order. Child threads reference the primary through parent_thread_id. Pages hold at most 100 threads (default 20). Use a thread id with sessions.threads.retrieve, sessions.threads.events.list or sessions.threads.events.stream.",
2167
2234
  http: "GET",
2168
2235
  path: "/agent/v1/sessions/{session_id}/threads",
@@ -2192,7 +2259,7 @@ Available only on /agent/v1. Use the message_id field from own-face events, not
2192
2259
  {
2193
2260
  resource: "agent.sessions.threads",
2194
2261
  method: "retrieve",
2195
- summary: "",
2262
+ summary: "Get session thread",
2196
2263
  description: "Read one execution thread of a session, field for field the same as its list item. Thread ids that are unknown, malformed or belong to another session all return 404, so existence is not revealed. thread_id comes from sessions.threads.list or from the session_thread_id of a session.thread_created event.",
2197
2264
  http: "GET",
2198
2265
  path: "/agent/v1/sessions/{session_id}/threads/{thread_id}",
@@ -2221,7 +2288,7 @@ Available only on /agent/v1. Use the message_id field from own-face events, not
2221
2288
  {
2222
2289
  resource: "agent.sessions.threads",
2223
2290
  method: "archive",
2224
- summary: "",
2291
+ summary: "Archive session thread",
2225
2292
  description: "Archive one execution thread. Archiving the primary thread archives the session; archiving a child archives only that child, leaving the parent and its siblings untouched. An archived child has status terminated and archived_at set, receives no new events and keeps its history readable.",
2226
2293
  http: "POST",
2227
2294
  path: "/agent/v1/sessions/{session_id}/threads/{thread_id}/archive",
@@ -2250,7 +2317,7 @@ Available only on /agent/v1. Use the message_id field from own-face events, not
2250
2317
  {
2251
2318
  resource: "agent.sessions.threads.events",
2252
2319
  method: "list",
2253
- summary: "",
2320
+ summary: "List session thread events",
2254
2321
  description: "Read the event history of one execution thread: the session itself for the primary thread, or the child session for a child thread. It accepts the same filters, ordering and paging as sessions.events.list and returns the same data + next_page envelope. Child approvals carry session_thread_id so you can route a confirmation to the owning thread.",
2255
2322
  http: "GET",
2256
2323
  path: "/agent/v1/sessions/{session_id}/threads/{thread_id}/events",
@@ -2291,7 +2358,7 @@ Available only on /agent/v1. Use the message_id field from own-face events, not
2291
2358
  {
2292
2359
  resource: "agent.sessions.threads",
2293
2360
  method: "stream",
2294
- summary: "",
2361
+ summary: "Stream session thread events",
2295
2362
  description: "Open a Server-Sent Events stream of one execution thread's live events, using the same implementation as sessions.events.stream; a read-only WebSocket is also available on this path. The parent session stream additionally carries child creation, status and message events. Pass event_deltas[]=agent.message, agent.thinking or agent.tool_use for incremental previews.",
2296
2363
  http: "GET",
2297
2364
  path: "/agent/v1/sessions/{session_id}/threads/{thread_id}/stream",
@@ -14897,6 +14964,36 @@ var createClient = (config = {}) => {
14897
14964
  var client = createClient(createConfig({ baseUrl: "https://api.deepraxis.com" }));
14898
14965
 
14899
14966
  // ../../packages/sdk/typescript/src/generated/sdk.gen.ts
14967
+ var deleteRunFeedback = (options) => (options.client ?? client).delete({
14968
+ security: [{
14969
+ key: "BearerAuth",
14970
+ scheme: "bearer",
14971
+ type: "http"
14972
+ }, {
14973
+ key: "ApiKeyAuth",
14974
+ name: "X-API-Key",
14975
+ type: "apiKey"
14976
+ }],
14977
+ url: "/agent/v1/sessions/{session_id}/runs/{run_id}/feedback",
14978
+ ...options
14979
+ });
14980
+ var setRunFeedback = (options) => (options.client ?? client).post({
14981
+ security: [{
14982
+ key: "BearerAuth",
14983
+ scheme: "bearer",
14984
+ type: "http"
14985
+ }, {
14986
+ key: "ApiKeyAuth",
14987
+ name: "X-API-Key",
14988
+ type: "apiKey"
14989
+ }],
14990
+ url: "/agent/v1/sessions/{session_id}/runs/{run_id}/feedback",
14991
+ ...options,
14992
+ headers: {
14993
+ "Content-Type": "application/json",
14994
+ ...options.headers
14995
+ }
14996
+ });
14900
14997
  var listEmbedTokens = (options) => (options?.client ?? client).get({
14901
14998
  security: [{
14902
14999
  key: "BearerAuth",
@@ -19798,6 +19895,12 @@ function createAgent(transport) {
19798
19895
  retrieve: bind(transport, sessionsRetrieve),
19799
19896
  retrieveCompact: bind(transport, getSessionCompaction),
19800
19897
  retrieveContext: bind(transport, getSessionContext),
19898
+ runs: {
19899
+ deleteFeedback: bind(transport, deleteRunFeedback),
19900
+ feedback: {
19901
+ create: bind(transport, setRunFeedback)
19902
+ }
19903
+ },
19801
19904
  threads: {
19802
19905
  archive: bind(transport, aliasOperation(sessionsThreadsArchive, { query: { session_id: "query_session_id" } })),
19803
19906
  events: {
@@ -22462,7 +22565,7 @@ function startProgress(ctx, write = (text) => writeOutput({ stderr: text })) {
22462
22565
  }
22463
22566
 
22464
22567
  // src/main.ts
22465
- var version = "0.1.0-dev.e4c5523";
22568
+ var version = "0.1.0-dev.ea77ce8";
22466
22569
  var commands = commandTree(operations);
22467
22570
  var manual = [["login"], ["logout"], ["whoami"], ["org", "list"], ["org", "switch"], ["api"], ["skill"]];
22468
22571
  function route(argv) {
package/package.json CHANGED
@@ -1,26 +1,35 @@
1
1
  {
2
2
  "name": "@deepraxis/cli",
3
- "version": "0.1.0-dev.e4c5523",
3
+ "version": "0.1.0-dev.ea77ce8",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "praxis": "dist/praxis.js"
7
7
  },
8
- "description": "Praxis CLI for the Deepraxis public API",
9
- "license": "SEE LICENSE IN LICENSE",
10
- "repository": {
11
- "type": "git",
12
- "url": "git+https://github.com/Deepraxis/Praxis.git",
13
- "directory": "apps/cli"
14
- },
8
+ "description": "The official command line for Praxis (知行云): models, agents, sandboxes, search and data from one terminal.",
9
+ "license": "Apache-2.0",
15
10
  "engines": {
16
11
  "node": ">=20"
17
12
  },
18
- "publishConfig": {
19
- "access": "public"
20
- },
21
13
  "files": [
22
14
  "dist",
23
15
  "README.md",
24
- "LICENSE"
25
- ]
16
+ "LICENSE",
17
+ "COMMANDS.md"
18
+ ],
19
+ "homepage": "https://deepraxis.com",
20
+ "keywords": [
21
+ "praxis",
22
+ "deepraxis",
23
+ "cli",
24
+ "ai",
25
+ "agents",
26
+ "llm",
27
+ "sandbox",
28
+ "ai-agents",
29
+ "claude-code"
30
+ ],
31
+ "author": "Deepractice",
32
+ "publishConfig": {
33
+ "access": "public"
34
+ }
26
35
  }