@ellipsis-dev/sdk 0.10.0 → 0.11.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.
@@ -14,10 +14,13 @@ interface paths {
14
14
  put?: never;
15
15
  /**
16
16
  * Create Agent Config
17
- * @description Create an agent config via pull request.
17
+ * @description Create an agent config.
18
18
  *
19
- * The PR adds the config file to agents/ on the target
20
- * repository; the agent goes live when it merges.
19
+ * Name a repository and Ellipsis opens a pull request adding the
20
+ * config file to agents/ there; the agent goes live when it
21
+ * merges. Omit it and the agent is created here, with no file,
22
+ * live immediately — and every file reference in it must name the
23
+ * repository it lives in.
21
24
  *
22
25
  * Accepts an inline config or a gallery template slug. 409 when
23
26
  * another live agent already holds the name.
@@ -41,8 +44,75 @@ interface paths {
41
44
  * @description Return one saved agent config, by id or by the agent's name.
42
45
  */
43
46
  get: operations['get_agent_config'];
44
- put?: never;
47
+ /**
48
+ * Update Agent Config
49
+ * @description Replace an agent's definition, by id or by the agent's name.
50
+ *
51
+ * The whole definition is replaced, and the change is live at
52
+ * once. Only for agents managed through this API: one defined by a
53
+ * repository file is a 409, since the next push to that file would
54
+ * revert the change — unlink it first to take ownership.
55
+ */
56
+ put: operations['update_agent_config'];
45
57
  post?: never;
58
+ /**
59
+ * Delete Agent Config
60
+ * @description Delete an agent, by id or by the agent's name.
61
+ *
62
+ * The agent stops running and its name is freed immediately; its
63
+ * past sessions remain readable. Only for agents managed through
64
+ * this API — delete the file to remove one defined by a
65
+ * repository.
66
+ */
67
+ delete: operations['delete_agent_config'];
68
+ options?: never;
69
+ head?: never;
70
+ patch?: never;
71
+ trace?: never;
72
+ };
73
+ '/agents/configs/{config_id}/link': {
74
+ parameters: {
75
+ query?: never;
76
+ header?: never;
77
+ path?: never;
78
+ cookie?: never;
79
+ };
80
+ get?: never;
81
+ put?: never;
82
+ /**
83
+ * Link Agent Config
84
+ * @description Move an agent into a repository, by id or by the agent's name.
85
+ *
86
+ * Opens a pull request adding the agent's config file. The agent
87
+ * keeps running unchanged meanwhile; merging hands it over to the
88
+ * file, after which the file is what changes it. Nothing happens
89
+ * if the pull request is never merged.
90
+ */
91
+ post: operations['link_agent_config'];
92
+ delete?: never;
93
+ options?: never;
94
+ head?: never;
95
+ patch?: never;
96
+ trace?: never;
97
+ };
98
+ '/agents/configs/{config_id}/unlink': {
99
+ parameters: {
100
+ query?: never;
101
+ header?: never;
102
+ path?: never;
103
+ cookie?: never;
104
+ };
105
+ get?: never;
106
+ put?: never;
107
+ /**
108
+ * Unlink Agent Config
109
+ * @description Take over an agent from its file, by id or by the agent's name.
110
+ *
111
+ * The file stops governing the agent immediately and further
112
+ * changes go through this API. The file is left in place, inert —
113
+ * delete it whenever you like.
114
+ */
115
+ post: operations['unlink_agent_config'];
46
116
  delete?: never;
47
117
  options?: never;
48
118
  head?: never;
@@ -1807,6 +1877,7 @@ interface components {
1807
1877
  AgentConfigSystemFileRef: {
1808
1878
  /** File */
1809
1879
  file: string;
1880
+ repository?: components['schemas']['AgentConfigRepository'] | null;
1810
1881
  };
1811
1882
  /**
1812
1883
  * AgentConfigsListResponse
@@ -2397,6 +2468,8 @@ interface components {
2397
2468
  * @description The last commit the config was synced from.
2398
2469
  */
2399
2470
  last_synced_commit_sha?: string | null;
2471
+ /** @description Which writer owns this agent. "github" agents are defined by a file in a repository and are changed by editing that file; "api" agents have no file and are changed through this API. */
2472
+ managed_by: components['schemas']['ConfigManagedBy'];
2400
2473
  /**
2401
2474
  * Name
2402
2475
  * @description The agent's customer-unique addressable name (a slug of its display name); usable anywhere an agent is referenced, interchangeably with the id.
@@ -2419,6 +2492,14 @@ interface components {
2419
2492
  */
2420
2493
  updated_at: string;
2421
2494
  };
2495
+ /**
2496
+ * ConfigManagedBy
2497
+ * @description Which writer owns an agent: the repository file it is defined in, or
2498
+ * this API. Every agent has exactly one owner, fixed when it is created and
2499
+ * changed only by linking or unlinking it.
2500
+ * @enum {string}
2501
+ */
2502
+ ConfigManagedBy: 'github' | 'api';
2422
2503
  /**
2423
2504
  * ContributorUsage
2424
2505
  * @description An author who merged a pull request in the window. The pull-request and
@@ -2464,22 +2545,22 @@ interface components {
2464
2545
  };
2465
2546
  /**
2466
2547
  * CreateAgentConfigRequest
2467
- * @description Parameters for creating an agent config via a pull request. Exactly
2468
- * one of config or template_id must be set.
2548
+ * @description Parameters for creating an agent config. Exactly one of config or
2549
+ * template_id must be set.
2469
2550
  */
2470
2551
  CreateAgentConfigRequest: {
2471
2552
  /** @description An inline agent config. */
2472
2553
  config?: components['schemas']['AgentConfig'] | null;
2473
2554
  /**
2474
2555
  * Path
2475
- * @description File path within the repo. Omit for the default agents/<slug>.yaml; if set it must be a location the config sync scans (a .yaml/.yml file under agents/, .agents/, ellipsis/, or .ellipsis/ at any depth).
2556
+ * @description File path within the repo, when a repository is named. Omit for the default agents/<slug>.yaml; if set it must be a location the config sync scans (a .yaml/.yml file under agents/, .agents/, ellipsis/, or .ellipsis/ at any depth).
2476
2557
  */
2477
2558
  path?: string | null;
2478
2559
  /**
2479
2560
  * Repository
2480
- * @description Target repository name within the caller's account; the owner is always the account, so pass a bare name (e.g. "my-service"), not "owner/my-service".
2561
+ * @description Define the agent as a file in this repository: Ellipsis opens a pull request adding it, and the agent goes live when that merges. Repository name within the caller's account; the owner is always the account, so pass a bare name (e.g. "my-service"), not "owner/my-service". Omit to create the agent through the API alone, with no file and live immediately.
2481
2562
  */
2482
- repository: string;
2563
+ repository?: string | null;
2483
2564
  /**
2484
2565
  * Template Id
2485
2566
  * @description A gallery template slug (see GET /agents/templates).
@@ -2488,21 +2569,22 @@ interface components {
2488
2569
  };
2489
2570
  /**
2490
2571
  * CreateAgentConfigResponse
2491
- * @description The created agent config and the pull request that adds its file.
2572
+ * @description The created agent config, plus the pull request that adds its file when
2573
+ * one was opened.
2492
2574
  */
2493
2575
  CreateAgentConfigResponse: {
2494
2576
  /** @description The created agent config. */
2495
2577
  config: components['schemas']['Config'];
2496
2578
  /**
2497
2579
  * Path
2498
- * @description The file path the config was written to.
2580
+ * @description The file path the config was written to, or null when the agent has no file.
2499
2581
  */
2500
- path: string;
2582
+ path?: string | null;
2501
2583
  /**
2502
2584
  * Pull Request Url
2503
- * @description The pull request that adds the config file. The agent becomes live once it merges and syncs.
2585
+ * @description The pull request that adds the config file. The agent becomes live once it merges and syncs. Null when no repository was named: the agent is already live.
2504
2586
  */
2505
- pull_request_url: string;
2587
+ pull_request_url?: string | null;
2506
2588
  };
2507
2589
  /**
2508
2590
  * CreateFileRequest
@@ -3438,6 +3520,40 @@ interface components {
3438
3520
  */
3439
3521
  teams: components['schemas']['LinearTeam'][];
3440
3522
  };
3523
+ /**
3524
+ * LinkAgentConfigRequest
3525
+ * @description Where to put the config file of an agent being moved into a repository.
3526
+ */
3527
+ LinkAgentConfigRequest: {
3528
+ /**
3529
+ * Path
3530
+ * @description File path within the repo. Omit for the default agents/<slug>.yaml; if set it must be a location the config sync scans (a .yaml/.yml file under agents/, .agents/, ellipsis/, or .ellipsis/ at any depth).
3531
+ */
3532
+ path?: string | null;
3533
+ /**
3534
+ * Repository
3535
+ * @description Repository name within the caller's account; the owner is always the account, so pass a bare name (e.g. "my-service"), not "owner/my-service".
3536
+ */
3537
+ repository: string;
3538
+ };
3539
+ /**
3540
+ * LinkAgentConfigResponse
3541
+ * @description The agent and the pull request that would put it in a repository.
3542
+ */
3543
+ LinkAgentConfigResponse: {
3544
+ /** @description The agent, still managed through the API until the pull request merges. */
3545
+ config: components['schemas']['Config'];
3546
+ /**
3547
+ * Path
3548
+ * @description The file path the config will be written to.
3549
+ */
3550
+ path: string;
3551
+ /**
3552
+ * Pull Request Url
3553
+ * @description The pull request that adds the config file. The agent becomes managed by that file once it merges.
3554
+ */
3555
+ pull_request_url: string;
3556
+ };
3441
3557
  /**
3442
3558
  * LinkedGithubIdentity
3443
3559
  * @description The GitHub identity linked to a Slack member.
@@ -6377,6 +6493,14 @@ interface components {
6377
6493
  /** Skipped */
6378
6494
  skipped: number;
6379
6495
  };
6496
+ /**
6497
+ * UpdateAgentConfigRequest
6498
+ * @description A replacement definition for an agent managed through the API.
6499
+ */
6500
+ UpdateAgentConfigRequest: {
6501
+ /** @description The agent's new definition. Replaces the previous one wholesale — this is not a partial update. */
6502
+ config: components['schemas']['AgentConfig'];
6503
+ };
6380
6504
  /**
6381
6505
  * UsageDailyPoint
6382
6506
  * @description One day's usage: tokens split by type, and cost split into the four
@@ -6622,7 +6746,7 @@ interface operations {
6622
6746
  'application/json': components['schemas']['ErrorResponse'];
6623
6747
  };
6624
6748
  };
6625
- /** @description The agent's name contains no usable characters. */
6749
+ /** @description The agent's name contains no usable characters, or a file reference names no repository. */
6626
6750
  422: {
6627
6751
  headers: {
6628
6752
  [name: string]: unknown;
@@ -6693,6 +6817,306 @@ interface operations {
6693
6817
  };
6694
6818
  };
6695
6819
  };
6820
+ update_agent_config: {
6821
+ parameters: {
6822
+ query?: never;
6823
+ header?: {
6824
+ 'user-agent'?: string | null;
6825
+ };
6826
+ path: {
6827
+ config_id: string;
6828
+ };
6829
+ cookie?: never;
6830
+ };
6831
+ requestBody: {
6832
+ content: {
6833
+ 'application/json': components['schemas']['UpdateAgentConfigRequest'];
6834
+ };
6835
+ };
6836
+ responses: {
6837
+ /** @description Successful Response */
6838
+ 200: {
6839
+ headers: {
6840
+ [name: string]: unknown;
6841
+ };
6842
+ content: {
6843
+ 'application/json': components['schemas']['AgentConfigResponse'];
6844
+ };
6845
+ };
6846
+ /** @description The config is invalid (for example an unschedulable cron expression). */
6847
+ 400: {
6848
+ headers: {
6849
+ [name: string]: unknown;
6850
+ };
6851
+ content: {
6852
+ 'application/json': components['schemas']['ErrorResponse'];
6853
+ };
6854
+ };
6855
+ /** @description The bearer token is missing, invalid, or revoked. */
6856
+ 401: {
6857
+ headers: {
6858
+ [name: string]: unknown;
6859
+ };
6860
+ content: {
6861
+ 'application/json': components['schemas']['ErrorResponse'];
6862
+ };
6863
+ };
6864
+ /** @description The credential may not perform this action, or the account is blocked. */
6865
+ 403: {
6866
+ headers: {
6867
+ [name: string]: unknown;
6868
+ };
6869
+ content: {
6870
+ 'application/json': components['schemas']['ErrorResponse'];
6871
+ };
6872
+ };
6873
+ /** @description No such config in your account. */
6874
+ 404: {
6875
+ headers: {
6876
+ [name: string]: unknown;
6877
+ };
6878
+ content: {
6879
+ 'application/json': components['schemas']['ErrorResponse'];
6880
+ };
6881
+ };
6882
+ /** @description The agent is defined by a file in a repository, or another live agent already holds the new name. */
6883
+ 409: {
6884
+ headers: {
6885
+ [name: string]: unknown;
6886
+ };
6887
+ content: {
6888
+ 'application/json': components['schemas']['ErrorResponse'];
6889
+ };
6890
+ };
6891
+ /** @description The agent's name is missing or malformed, or a file reference names no repository. */
6892
+ 422: {
6893
+ headers: {
6894
+ [name: string]: unknown;
6895
+ };
6896
+ content: {
6897
+ 'application/json': components['schemas']['ErrorResponse'];
6898
+ };
6899
+ };
6900
+ };
6901
+ };
6902
+ delete_agent_config: {
6903
+ parameters: {
6904
+ query?: never;
6905
+ header?: {
6906
+ 'user-agent'?: string | null;
6907
+ };
6908
+ path: {
6909
+ config_id: string;
6910
+ };
6911
+ cookie?: never;
6912
+ };
6913
+ requestBody?: never;
6914
+ responses: {
6915
+ /** @description Successful Response */
6916
+ 204: {
6917
+ headers: {
6918
+ [name: string]: unknown;
6919
+ };
6920
+ content?: never;
6921
+ };
6922
+ /** @description The bearer token is missing, invalid, or revoked. */
6923
+ 401: {
6924
+ headers: {
6925
+ [name: string]: unknown;
6926
+ };
6927
+ content: {
6928
+ 'application/json': components['schemas']['ErrorResponse'];
6929
+ };
6930
+ };
6931
+ /** @description The credential may not perform this action, or the account is blocked. */
6932
+ 403: {
6933
+ headers: {
6934
+ [name: string]: unknown;
6935
+ };
6936
+ content: {
6937
+ 'application/json': components['schemas']['ErrorResponse'];
6938
+ };
6939
+ };
6940
+ /** @description No such config in your account. */
6941
+ 404: {
6942
+ headers: {
6943
+ [name: string]: unknown;
6944
+ };
6945
+ content: {
6946
+ 'application/json': components['schemas']['ErrorResponse'];
6947
+ };
6948
+ };
6949
+ /** @description The agent is defined by a file in a repository; delete that file instead. */
6950
+ 409: {
6951
+ headers: {
6952
+ [name: string]: unknown;
6953
+ };
6954
+ content: {
6955
+ 'application/json': components['schemas']['ErrorResponse'];
6956
+ };
6957
+ };
6958
+ /** @description Validation Error */
6959
+ 422: {
6960
+ headers: {
6961
+ [name: string]: unknown;
6962
+ };
6963
+ content: {
6964
+ 'application/json': components['schemas']['HTTPValidationError'];
6965
+ };
6966
+ };
6967
+ };
6968
+ };
6969
+ link_agent_config: {
6970
+ parameters: {
6971
+ query?: never;
6972
+ header?: {
6973
+ 'user-agent'?: string | null;
6974
+ };
6975
+ path: {
6976
+ config_id: string;
6977
+ };
6978
+ cookie?: never;
6979
+ };
6980
+ requestBody: {
6981
+ content: {
6982
+ 'application/json': components['schemas']['LinkAgentConfigRequest'];
6983
+ };
6984
+ };
6985
+ responses: {
6986
+ /** @description Successful Response */
6987
+ 200: {
6988
+ headers: {
6989
+ [name: string]: unknown;
6990
+ };
6991
+ content: {
6992
+ 'application/json': components['schemas']['LinkAgentConfigResponse'];
6993
+ };
6994
+ };
6995
+ /** @description The path is not a synced config location, or the repository has no commits. */
6996
+ 400: {
6997
+ headers: {
6998
+ [name: string]: unknown;
6999
+ };
7000
+ content: {
7001
+ 'application/json': components['schemas']['ErrorResponse'];
7002
+ };
7003
+ };
7004
+ /** @description The bearer token is missing, invalid, or revoked. */
7005
+ 401: {
7006
+ headers: {
7007
+ [name: string]: unknown;
7008
+ };
7009
+ content: {
7010
+ 'application/json': components['schemas']['ErrorResponse'];
7011
+ };
7012
+ };
7013
+ /** @description The credential may not perform this action, or the account is blocked. */
7014
+ 403: {
7015
+ headers: {
7016
+ [name: string]: unknown;
7017
+ };
7018
+ content: {
7019
+ 'application/json': components['schemas']['ErrorResponse'];
7020
+ };
7021
+ };
7022
+ /** @description The config or repository was not found in your account. */
7023
+ 404: {
7024
+ headers: {
7025
+ [name: string]: unknown;
7026
+ };
7027
+ content: {
7028
+ 'application/json': components['schemas']['ErrorResponse'];
7029
+ };
7030
+ };
7031
+ /** @description The agent is already defined by a file, a link is already open for it, a file already exists at that path, or another agent syncs from it. */
7032
+ 409: {
7033
+ headers: {
7034
+ [name: string]: unknown;
7035
+ };
7036
+ content: {
7037
+ 'application/json': components['schemas']['ErrorResponse'];
7038
+ };
7039
+ };
7040
+ /** @description GitHub rejected the pull request. */
7041
+ 422: {
7042
+ headers: {
7043
+ [name: string]: unknown;
7044
+ };
7045
+ content: {
7046
+ 'application/json': components['schemas']['ErrorResponse'];
7047
+ };
7048
+ };
7049
+ };
7050
+ };
7051
+ unlink_agent_config: {
7052
+ parameters: {
7053
+ query?: never;
7054
+ header?: {
7055
+ 'user-agent'?: string | null;
7056
+ };
7057
+ path: {
7058
+ config_id: string;
7059
+ };
7060
+ cookie?: never;
7061
+ };
7062
+ requestBody?: never;
7063
+ responses: {
7064
+ /** @description Successful Response */
7065
+ 200: {
7066
+ headers: {
7067
+ [name: string]: unknown;
7068
+ };
7069
+ content: {
7070
+ 'application/json': components['schemas']['AgentConfigResponse'];
7071
+ };
7072
+ };
7073
+ /** @description The bearer token is missing, invalid, or revoked. */
7074
+ 401: {
7075
+ headers: {
7076
+ [name: string]: unknown;
7077
+ };
7078
+ content: {
7079
+ 'application/json': components['schemas']['ErrorResponse'];
7080
+ };
7081
+ };
7082
+ /** @description The credential may not perform this action, or the account is blocked. */
7083
+ 403: {
7084
+ headers: {
7085
+ [name: string]: unknown;
7086
+ };
7087
+ content: {
7088
+ 'application/json': components['schemas']['ErrorResponse'];
7089
+ };
7090
+ };
7091
+ /** @description No such config in your account. */
7092
+ 404: {
7093
+ headers: {
7094
+ [name: string]: unknown;
7095
+ };
7096
+ content: {
7097
+ 'application/json': components['schemas']['ErrorResponse'];
7098
+ };
7099
+ };
7100
+ /** @description The agent is already managed through the API. */
7101
+ 409: {
7102
+ headers: {
7103
+ [name: string]: unknown;
7104
+ };
7105
+ content: {
7106
+ 'application/json': components['schemas']['ErrorResponse'];
7107
+ };
7108
+ };
7109
+ /** @description The config has a file reference that names no repository, so it cannot resolve without its source repository. */
7110
+ 422: {
7111
+ headers: {
7112
+ [name: string]: unknown;
7113
+ };
7114
+ content: {
7115
+ 'application/json': components['schemas']['ErrorResponse'];
7116
+ };
7117
+ };
7118
+ };
7119
+ };
6696
7120
  list_agent_defaults: {
6697
7121
  parameters: {
6698
7122
  query?: never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ellipsis-dev/sdk",
3
- "version": "0.10.0",
3
+ "version": "0.11.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",