@ellipsis-dev/sdk 0.16.0 → 0.17.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ellipsis-dev/sdk",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "description": "TypeScript SDK for the Ellipsis agents platform: /v1 REST types + client, the session stream WebSocket client, and the session transcript store.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -39,7 +39,6 @@
39
39
  "default": {
40
40
  "description": null,
41
41
  "enabled": true,
42
- "interactive": true,
43
42
  "metadata": {
44
43
  "annotations": {},
45
44
  "labels": []
@@ -49,7 +48,14 @@
49
48
  }
50
49
  },
51
50
  "environment": {
52
- "$ref": "#/$defs/AgentConfigEnvironment",
51
+ "anyOf": [
52
+ {
53
+ "type": "string"
54
+ },
55
+ {
56
+ "$ref": "#/$defs/AgentConfigEnvironment"
57
+ }
58
+ ],
53
59
  "default": {
54
60
  "compute": {
55
61
  "cpu": null,
@@ -64,9 +70,11 @@
64
70
  "dockerfile_append": null,
65
71
  "setup": null
66
72
  },
73
+ "mcp_servers": [],
67
74
  "repositories": [],
68
75
  "variables": []
69
- }
76
+ },
77
+ "title": "Environment"
70
78
  },
71
79
  "input": {
72
80
  "anyOf": [
@@ -79,21 +87,6 @@
79
87
  ],
80
88
  "default": null
81
89
  },
82
- "mcp_servers": {
83
- "default": [],
84
- "items": {
85
- "anyOf": [
86
- {
87
- "type": "string"
88
- },
89
- {
90
- "$ref": "#/$defs/AgentConfigMcpServer"
91
- }
92
- ]
93
- },
94
- "title": "Mcp Servers",
95
- "type": "array"
96
- },
97
90
  "output": {
98
91
  "anyOf": [
99
92
  {
@@ -161,7 +154,6 @@
161
154
  "ellipsis",
162
155
  "environment",
163
156
  "input",
164
- "mcp_servers",
165
157
  "output",
166
158
  "permissions",
167
159
  "skills",
@@ -497,7 +489,7 @@
497
489
  },
498
490
  "AgentConfigEllipsis": {
499
491
  "additionalProperties": false,
500
- "description": "The Ellipsis product namespace for a config file: which schema this is\n(`version`), the human-facing identity (`name`/`description`), freeform\norganizational `metadata`, whether the agent is `enabled`, and the\nhuman-access flag `interactive`. The presence of a top-level `ellipsis:`\nmapping is what marks a YAML file as an Ellipsis agent config (vs arbitrary\nYAML that merely lives under a config directory) \u2014 see\n`yaml_is_ellipsis_config`.\n\n`enabled`/`interactive` are agent behavior, not freeform metadata, so they\nstay inside the config `sha` (only `metadata` is sha-excluded).\n`interactive` lets a human `agent session connect` to a live session (CLI\nrelay). It does not decide whether a session is ephemeral or durable \u2014 that\nis the trigger's job.",
492
+ "description": "The Ellipsis product namespace for a config file: which schema this is\n(`version`), the human-facing identity (`name`/`description`), freeform\norganizational `metadata`, and whether the agent is `enabled`. The\npresence of a top-level `ellipsis:` mapping is what marks a YAML file as\nan Ellipsis agent config (vs arbitrary YAML that merely lives under a\nconfig directory) \u2014 see `yaml_is_ellipsis_config`.\n\n`enabled` is agent behavior, not freeform metadata, so it stays inside\nthe config `sha` (only `metadata` is sha-excluded). Whether a session\naccepts messages is a per-run choice (POST /v1/sessions `interactive`),\nnot a config one.",
501
493
  "properties": {
502
494
  "description": {
503
495
  "anyOf": [
@@ -516,11 +508,6 @@
516
508
  "title": "Enabled",
517
509
  "type": "boolean"
518
510
  },
519
- "interactive": {
520
- "default": true,
521
- "title": "Interactive",
522
- "type": "boolean"
523
- },
524
511
  "metadata": {
525
512
  "$ref": "#/$defs/AgentConfigMetadata",
526
513
  "default": {
@@ -549,7 +536,6 @@
549
536
  "required": [
550
537
  "description",
551
538
  "enabled",
552
- "interactive",
553
539
  "metadata",
554
540
  "name",
555
541
  "version"
@@ -614,6 +600,27 @@
614
600
  "setup": null
615
601
  }
616
602
  },
603
+ "mcp_servers": {
604
+ "default": [],
605
+ "items": {
606
+ "anyOf": [
607
+ {
608
+ "type": "string"
609
+ },
610
+ {
611
+ "$ref": "#/$defs/AgentConfigMcpServer"
612
+ },
613
+ {
614
+ "$ref": "#/$defs/AgentConfigMcpStdioServer"
615
+ },
616
+ {
617
+ "$ref": "#/$defs/AgentConfigMcpRemoteServer"
618
+ }
619
+ ]
620
+ },
621
+ "title": "Mcp Servers",
622
+ "type": "array"
623
+ },
617
624
  "repositories": {
618
625
  "default": [],
619
626
  "items": {
@@ -635,6 +642,7 @@
635
642
  "compute",
636
643
  "hooks",
637
644
  "image",
645
+ "mcp_servers",
638
646
  "repositories",
639
647
  "variables"
640
648
  ],
@@ -824,9 +832,38 @@
824
832
  "title": "AgentConfigInput",
825
833
  "type": "object"
826
834
  },
835
+ "AgentConfigMcpRemoteServer": {
836
+ "additionalProperties": false,
837
+ "description": "A bring-your-own remote MCP server: the harness talks HTTP to `url`.\nNothing runs in the sandbox image. `headers` carry static auth (e.g.\n`Authorization: Bearer ${TOKEN}`); values may embed `${NAME}` secret\nreferences, resolved at run time from the account's secrets store.",
838
+ "properties": {
839
+ "headers": {
840
+ "additionalProperties": {
841
+ "type": "string"
842
+ },
843
+ "default": {},
844
+ "title": "Headers",
845
+ "type": "object"
846
+ },
847
+ "name": {
848
+ "title": "Name",
849
+ "type": "string"
850
+ },
851
+ "url": {
852
+ "title": "Url",
853
+ "type": "string"
854
+ }
855
+ },
856
+ "required": [
857
+ "headers",
858
+ "name",
859
+ "url"
860
+ ],
861
+ "title": "AgentConfigMcpRemoteServer",
862
+ "type": "object"
863
+ },
827
864
  "AgentConfigMcpServer": {
828
865
  "additionalProperties": false,
829
- "description": "One built-in MCP server this agent opts into by name (`linear`/`slack`).\nThis is a name reference over the connected built-in set, NOT a custom-server\ndefinition \u2014 there is no command/url/headers shape (that was the old,\nremoved field, and Ellipsis does not support bring-your-own MCP servers).\nIt only matters when the named integration is set to `opt_in` inclusion; an\nintegration in the default `all_sessions` mode is added regardless.",
866
+ "description": "One built-in MCP server this agent opts into by name (`linear`/`slack`).\nA name reference over the connected built-in set \u2014 the platform manages the\nserver's transport and credentials. It only matters when the named\nintegration is set to `opt_in` inclusion; an integration in the default\n`all_sessions` mode is added regardless. For a server the platform does not\nprovide, define it instead (`AgentConfigMcpStdioServer` /\n`AgentConfigMcpRemoteServer`).",
830
867
  "properties": {
831
868
  "name": {
832
869
  "title": "Name",
@@ -839,6 +876,44 @@
839
876
  "title": "AgentConfigMcpServer",
840
877
  "type": "object"
841
878
  },
879
+ "AgentConfigMcpStdioServer": {
880
+ "additionalProperties": false,
881
+ "description": "A bring-your-own stdio MCP server: the harness spawns `command` inside\nthe sandbox and speaks JSON-RPC over its stdin/stdout. The command must be\nrunnable in the sandbox image \u2014 install its runtime via `image.setup` /\n`image.dockerfile_append` if the base image lacks it.\n\n`env` values may embed `${NAME}` references, resolved at run time from the\naccount's secrets store (see `mcp_secret_refs`); everything else is passed\nliterally.",
882
+ "properties": {
883
+ "args": {
884
+ "default": [],
885
+ "items": {
886
+ "type": "string"
887
+ },
888
+ "title": "Args",
889
+ "type": "array"
890
+ },
891
+ "command": {
892
+ "title": "Command",
893
+ "type": "string"
894
+ },
895
+ "env": {
896
+ "additionalProperties": {
897
+ "type": "string"
898
+ },
899
+ "default": {},
900
+ "title": "Env",
901
+ "type": "object"
902
+ },
903
+ "name": {
904
+ "title": "Name",
905
+ "type": "string"
906
+ }
907
+ },
908
+ "required": [
909
+ "args",
910
+ "command",
911
+ "env",
912
+ "name"
913
+ ],
914
+ "title": "AgentConfigMcpStdioServer",
915
+ "type": "object"
916
+ },
842
917
  "AgentConfigMemorySize": {
843
918
  "additionalProperties": false,
844
919
  "description": "A memory size as explicit units, summed (binary: 1GB = 1024MB = 1024MiB).\nSet any of `gb`/`mb` (at least one). The alternative to the `8GB`-style\nshorthand string.",
@@ -2526,6 +2601,18 @@
2526
2601
  "title": "EllipsisGrant",
2527
2602
  "type": "object"
2528
2603
  },
2604
+ "EnvironmentSource": {
2605
+ "description": "How a session's environment was chosen. None (the field is nullable)\nwhen the config carried an inline environment block and no resolution ran \u2014\nan inline environment is not a reference, so there is nothing to record.\n\nNot derivable from the row: `environment_id` says WHICH environment, not\nhow it was chosen, and is null for the built-in basic sandbox.",
2606
+ "enum": [
2607
+ "request",
2608
+ "agent_config",
2609
+ "repo_default",
2610
+ "account_default",
2611
+ "platform_default"
2612
+ ],
2613
+ "title": "EnvironmentSource",
2614
+ "type": "string"
2615
+ },
2529
2616
  "ErrorFrame": {
2530
2617
  "description": "Terminal error marker, sent before the server closes with code 1011.",
2531
2618
  "properties": {
@@ -3191,6 +3278,7 @@
3191
3278
  "reviews",
3192
3279
  "configs",
3193
3280
  "defaults",
3281
+ "environments",
3194
3282
  "secrets",
3195
3283
  "templates",
3196
3284
  "integrations",
@@ -4024,6 +4112,10 @@
4024
4112
  "title": "Created At",
4025
4113
  "type": "string"
4026
4114
  },
4115
+ "environment": {
4116
+ "$ref": "#/$defs/SessionEnvironment",
4117
+ "description": "The environment the session resolved: the saved environment's id and how it was chosen. The environment's frozen body is inside agent.config.environment."
4118
+ },
4027
4119
  "exit_status": {
4028
4120
  "anyOf": [
4029
4121
  {
@@ -4194,6 +4286,7 @@
4194
4286
  "context_repository",
4195
4287
  "cost",
4196
4288
  "created_at",
4289
+ "environment",
4197
4290
  "exit_status",
4198
4291
  "git",
4199
4292
  "harness",
@@ -4380,6 +4473,42 @@
4380
4473
  "title": "SessionCost",
4381
4474
  "type": "object"
4382
4475
  },
4476
+ "SessionEnvironment": {
4477
+ "description": "The environment this session resolved: which saved environment (as it\nexists now) and how it was chosen. The environment's frozen BODY rides\ninside `agent.config.environment` \u2014 substitution happens before the config\nsnapshot freezes \u2014 so this object is provenance, not payload.",
4478
+ "properties": {
4479
+ "environment_id": {
4480
+ "anyOf": [
4481
+ {
4482
+ "type": "string"
4483
+ },
4484
+ {
4485
+ "type": "null"
4486
+ }
4487
+ ],
4488
+ "default": null,
4489
+ "description": "Identifier of the saved environment the session's config resolved. Null for an inline environment block or the built-in basic sandbox.",
4490
+ "title": "Environment Id"
4491
+ },
4492
+ "source": {
4493
+ "anyOf": [
4494
+ {
4495
+ "$ref": "#/$defs/EnvironmentSource"
4496
+ },
4497
+ {
4498
+ "type": "null"
4499
+ }
4500
+ ],
4501
+ "default": null,
4502
+ "description": "How the environment was chosen (request, agent_config, repo_default, account_default, platform_default). Null when the config carried its own inline environment."
4503
+ }
4504
+ },
4505
+ "required": [
4506
+ "environment_id",
4507
+ "source"
4508
+ ],
4509
+ "title": "SessionEnvironment",
4510
+ "type": "object"
4511
+ },
4383
4512
  "SessionExitStatus": {
4384
4513
  "description": "Why a terminal agent session ended \u2014 a finer-grained reason than `status`.\n\n`status` (SessionStatus) is the lifecycle state: COMPLETED / ERROR /\nCANCELLED. `exit_status` explains *why* a run reached that terminal state, so\nthe UI and metrics can tell a budget cutoff apart from a crashed tool call or\na deliberate cancellation. It is None until the run reaches a terminal state.",
4385
4514
  "enum": [