@ellipsis-dev/sdk 0.6.0 → 0.8.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.
@@ -281,124 +281,106 @@ interface paths {
281
281
  patch?: never;
282
282
  trace?: never;
283
283
  };
284
- '/assets': {
284
+ '/auth/cli/poll': {
285
285
  parameters: {
286
286
  query?: never;
287
287
  header?: never;
288
288
  path?: never;
289
289
  cookie?: never;
290
290
  };
291
- /**
292
- * List Assets
293
- * @description List uploaded assets, newest first.
294
- *
295
- * Metadata only — download URLs are minted per explicit GET, not
296
- * per row. agent_session_id scopes the list to one run's uploads.
297
- */
298
- get: operations['list_assets'];
291
+ get?: never;
299
292
  put?: never;
300
293
  /**
301
- * Create Asset
302
- * @description Upload a file that outlives the sandbox.
294
+ * Cli Auth Poll
295
+ * @description Poll a device-code auth flow for its token.
303
296
  *
304
- * v1: PNG images only, base64 in the JSON body, 10 MiB cap. The
305
- * primary caller is the in-sandbox `agent asset upload` CLI (an
306
- * agent persisting a screenshot to link on a PR), but all
307
- * credential types work. Returns the org-membership-gated
308
- * dashboard URL so callers never hard-code URL shapes.
297
+ * Unauthenticated; the device code identifies the flow.
309
298
  */
310
- post: operations['create_asset'];
299
+ post: operations['cli_auth_poll'];
311
300
  delete?: never;
312
301
  options?: never;
313
302
  head?: never;
314
303
  patch?: never;
315
304
  trace?: never;
316
305
  };
317
- '/assets/{asset_id}': {
306
+ '/auth/cli/start': {
318
307
  parameters: {
319
308
  query?: never;
320
309
  header?: never;
321
310
  path?: never;
322
311
  cookie?: never;
323
312
  };
324
- /**
325
- * Get Asset
326
- * @description Return one asset's metadata and download link.
327
- *
328
- * Includes the gated dashboard URL and a short-lived presigned
329
- * `download_url`.
330
- *
331
- * To fetch the bytes locally, call this and then GET download_url
332
- * immediately — the JSON API never carries the file. The CLI's
333
- * `agent asset get` wraps exactly that two-step.
334
- */
335
- get: operations['get_asset'];
313
+ get?: never;
336
314
  put?: never;
337
- post?: never;
338
315
  /**
339
- * Delete Asset
340
- * @description Delete an asset.
316
+ * Cli Auth Start
317
+ * @description Start a device-code auth flow for the CLI.
341
318
  *
342
- * A foreign, missing, or already-deleted id is an
343
- * indistinguishable 404, so ids can't be enumerated. Sandbox
344
- * tokens get a 403 (a sandbox token sits next to
345
- * potentially-untrusted code and must not be able to destroy the
346
- * account's assets — uploading is fine, destruction is not); API
347
- * keys and user tokens may delete.
319
+ * Unauthenticated: the CLI has no credential yet — that's what
320
+ * it's obtaining. The human authorizes out-of-band in the
321
+ * dashboard.
348
322
  */
349
- delete: operations['delete_asset'];
323
+ post: operations['cli_auth_start'];
324
+ delete?: never;
350
325
  options?: never;
351
326
  head?: never;
352
327
  patch?: never;
353
328
  trace?: never;
354
329
  };
355
- '/auth/cli/poll': {
330
+ '/budget': {
356
331
  parameters: {
357
332
  query?: never;
358
333
  header?: never;
359
334
  path?: never;
360
335
  cookie?: never;
361
336
  };
362
- get?: never;
363
- put?: never;
364
337
  /**
365
- * Cli Auth Poll
366
- * @description Poll a device-code auth flow for its token.
367
- *
368
- * Unauthenticated; the device code identifies the flow.
338
+ * Get Budget
339
+ * @description Return the caller's current budget summary.
369
340
  */
370
- post: operations['cli_auth_poll'];
341
+ get: operations['get_budget'];
342
+ put?: never;
343
+ post?: never;
371
344
  delete?: never;
372
345
  options?: never;
373
346
  head?: never;
374
347
  patch?: never;
375
348
  trace?: never;
376
349
  };
377
- '/auth/cli/start': {
350
+ '/files': {
378
351
  parameters: {
379
352
  query?: never;
380
353
  header?: never;
381
354
  path?: never;
382
355
  cookie?: never;
383
356
  };
384
- get?: never;
357
+ /**
358
+ * List Files
359
+ * @description List uploaded files, newest first.
360
+ *
361
+ * Metadata only — download URLs are minted per explicit GET, not
362
+ * per row. agent_session_id scopes the list to one run's uploads.
363
+ */
364
+ get: operations['list_files'];
385
365
  put?: never;
386
366
  /**
387
- * Cli Auth Start
388
- * @description Start a device-code auth flow for the CLI.
367
+ * Create File
368
+ * @description Upload a file that outlives the sandbox.
389
369
  *
390
- * Unauthenticated: the CLI has no credential yet that's what
391
- * it's obtaining. The human authorizes out-of-band in the
392
- * dashboard.
370
+ * v1: PNG images only, base64 in the JSON body, 10 MiB cap. The
371
+ * primary caller is the in-sandbox `agent file upload` CLI (an
372
+ * agent persisting a screenshot to link on a PR), but all
373
+ * credential types work. Returns the org-membership-gated
374
+ * dashboard URL so callers never hard-code URL shapes.
393
375
  */
394
- post: operations['cli_auth_start'];
376
+ post: operations['create_file'];
395
377
  delete?: never;
396
378
  options?: never;
397
379
  head?: never;
398
380
  patch?: never;
399
381
  trace?: never;
400
382
  };
401
- '/budget': {
383
+ '/files/{file_id}': {
402
384
  parameters: {
403
385
  query?: never;
404
386
  header?: never;
@@ -406,13 +388,31 @@ interface paths {
406
388
  cookie?: never;
407
389
  };
408
390
  /**
409
- * Get Budget
410
- * @description Return the caller's current budget summary.
391
+ * Get File
392
+ * @description Return one file's metadata and download link.
393
+ *
394
+ * Includes the gated dashboard URL and a short-lived presigned
395
+ * `download_url`.
396
+ *
397
+ * To fetch the bytes locally, call this and then GET download_url
398
+ * immediately — the JSON API never carries the file. The CLI's
399
+ * `agent file get` wraps exactly that two-step.
411
400
  */
412
- get: operations['get_budget'];
401
+ get: operations['get_file'];
413
402
  put?: never;
414
403
  post?: never;
415
- delete?: never;
404
+ /**
405
+ * Delete File
406
+ * @description Delete a file.
407
+ *
408
+ * A foreign, missing, or already-deleted id is an
409
+ * indistinguishable 404, so ids can't be enumerated. Sandbox
410
+ * tokens get a 403 (a sandbox token sits next to
411
+ * potentially-untrusted code and must not be able to destroy the
412
+ * account's files — uploading is fine, destruction is not); API
413
+ * keys and user tokens may delete.
414
+ */
415
+ delete: operations['delete_file'];
416
416
  options?: never;
417
417
  head?: never;
418
418
  patch?: never;
@@ -593,6 +593,84 @@ interface paths {
593
593
  patch?: never;
594
594
  trace?: never;
595
595
  };
596
+ '/memories': {
597
+ parameters: {
598
+ query?: never;
599
+ header?: never;
600
+ path?: never;
601
+ cookie?: never;
602
+ };
603
+ /**
604
+ * List Memories
605
+ * @description List the organization's memories as a readable index.
606
+ *
607
+ * Returns the memories rendered as a markdown index (one line per
608
+ * memory, carrying its id, path, and description) plus the same
609
+ * entries structured, each with every field except `content`. Read
610
+ * the index, then fetch the ids whose content you want.
611
+ */
612
+ get: operations['list_memories'];
613
+ put?: never;
614
+ /**
615
+ * Create Memory
616
+ * @description Save a memory for future agent sessions.
617
+ *
618
+ * Memories are durable lessons shared across the whole
619
+ * organization — conventions, past decisions, known gotchas that an
620
+ * agent cannot derive from the repository itself. One concise fact
621
+ * per memory; the description is what a reader sees in the index.
622
+ *
623
+ * Creating never overwrites: a path that already exists is a 409, so
624
+ * correcting an existing memory is an explicit edit.
625
+ */
626
+ post: operations['create_memory'];
627
+ delete?: never;
628
+ options?: never;
629
+ head?: never;
630
+ patch?: never;
631
+ trace?: never;
632
+ };
633
+ '/memories/{memory_id}': {
634
+ parameters: {
635
+ query?: never;
636
+ header?: never;
637
+ path?: never;
638
+ cookie?: never;
639
+ };
640
+ /**
641
+ * Get Memory
642
+ * @description Read one memory's full content.
643
+ *
644
+ * The id comes from the index returned by listing memories.
645
+ */
646
+ get: operations['get_memory'];
647
+ /**
648
+ * Edit Memory
649
+ * @description Correct an existing memory in place.
650
+ *
651
+ * Pass description, content, or both. This never creates a memory (an
652
+ * unknown id is a 404) and never moves one — the path is immutable, so
653
+ * relocating a memory is a delete plus a create.
654
+ *
655
+ * Pass `if_sha256` (from a previous read) to make a concurrent write
656
+ * a 409 instead of silently overwriting it.
657
+ */
658
+ put: operations['edit_memory'];
659
+ post?: never;
660
+ /**
661
+ * Delete Memory
662
+ * @description Delete a memory that is no longer true.
663
+ *
664
+ * Available to every credential type, agents included — a wrong
665
+ * memory is worse than a missing one. The deleted content is kept in
666
+ * the memory's history for forensics, not for an undo API.
667
+ */
668
+ delete: operations['delete_memory'];
669
+ options?: never;
670
+ head?: never;
671
+ patch?: never;
672
+ trace?: never;
673
+ };
596
674
  '/models': {
597
675
  parameters: {
598
676
  query?: never;
@@ -752,8 +830,8 @@ interface paths {
752
830
  * List Agent Sessions
753
831
  * @description List cloud agent sessions.
754
832
  *
755
- * Optionally filtered by config, source, time window, and
756
- * attributed author.
833
+ * Optionally filtered by config, source, time window, attributed
834
+ * author, repository, and whether the session is still going.
757
835
  */
758
836
  get: operations['list_agent_sessions'];
759
837
  put?: never;
@@ -925,7 +1003,7 @@ interface paths {
925
1003
  *
926
1004
  * Segments are gzip members: download in order and concatenate
927
1005
  * for one file. The JSON API never carries the bytes (same
928
- * two-step as assets). /records is the paged live view of the
1006
+ * two-step as files). /records is the paged live view of the
929
1007
  * same data.
930
1008
  */
931
1009
  get: operations['get_agent_session_log'];
@@ -1371,7 +1449,7 @@ interface components {
1371
1449
  * `permissions:` block, not this one.
1372
1450
  *
1373
1451
  * Each `variables` entry names a variable to inject; with an inline `value` it
1374
- * is hardcoded, without one it is resolved from the account's sandbox-variables
1452
+ * is hardcoded, without one it is resolved from the account's sandbox-secrets
1375
1453
  * store. Only the named variables reach this agent; the rest of the account's
1376
1454
  * stored variables never do. This is how a config brings in the config and
1377
1455
  * credentials a custom CLI needs.
@@ -1457,7 +1535,7 @@ interface components {
1457
1535
  *
1458
1536
  * `value`, when set, is a literal injected as-is — use it for non-secret
1459
1537
  * config (LOG_LEVEL, an API base URL). When `value` is omitted the value is
1460
- * resolved at run time from the account's sandbox-variables store (dashboard
1538
+ * resolved at run time from the account's sandbox-secrets store (dashboard
1461
1539
  * / `PUT /secrets`) by `name`, so a secret can be injected without
1462
1540
  * ever putting it in the config file. Either way the variable only reaches
1463
1541
  * agents that name it.
@@ -2411,44 +2489,6 @@ interface components {
2411
2489
  */
2412
2490
  reviews: number;
2413
2491
  };
2414
- /**
2415
- * AssetView
2416
- * @description An asset's metadata — the file itself is fetched via a separate
2417
- * download URL.
2418
- */
2419
- AssetView: {
2420
- /**
2421
- * Agent Session Id
2422
- * @description The agent session that produced this asset, when it was uploaded from a sandbox. Null for uploads made outside an agent session.
2423
- */
2424
- agent_session_id?: string | null;
2425
- /**
2426
- * Content Type
2427
- * @description The asset's MIME type.
2428
- */
2429
- content_type: string;
2430
- /**
2431
- * Created At
2432
- * Format: date-time
2433
- * @description When the asset was uploaded.
2434
- */
2435
- created_at: string;
2436
- /**
2437
- * Filename
2438
- * @description The original file basename, for display.
2439
- */
2440
- filename: string;
2441
- /**
2442
- * Id
2443
- * @description The asset's unique identifier.
2444
- */
2445
- id: string;
2446
- /**
2447
- * Size Bytes
2448
- * @description The size of the stored file in bytes.
2449
- */
2450
- size_bytes: number;
2451
- };
2452
2492
  /**
2453
2493
  * AttributionType
2454
2494
  * @enum {string}
@@ -2618,10 +2658,10 @@ interface components {
2618
2658
  template_id?: string | null;
2619
2659
  };
2620
2660
  /**
2621
- * CreateAssetRequest
2622
- * @description Upload a file as an asset owned by the calling account.
2661
+ * CreateFileRequest
2662
+ * @description Upload a file owned by the calling account.
2623
2663
  */
2624
- CreateAssetRequest: {
2664
+ CreateFileRequest: {
2625
2665
  /**
2626
2666
  * Content Type
2627
2667
  * @description The MIME type of the file. Only image/png is currently supported, and the uploaded bytes must actually be a PNG.
@@ -2639,18 +2679,39 @@ interface components {
2639
2679
  filename: string;
2640
2680
  };
2641
2681
  /**
2642
- * CreateAssetResponse
2643
- * @description The stored asset and the shareable link to it.
2682
+ * CreateFileResponse
2683
+ * @description The stored file and the shareable link to it.
2644
2684
  */
2645
- CreateAssetResponse: {
2646
- /** @description The stored asset's metadata. */
2647
- asset: components['schemas']['AssetView'];
2685
+ CreateFileResponse: {
2686
+ /** @description The stored file's metadata. */
2687
+ file: components['schemas']['FileView'];
2648
2688
  /**
2649
2689
  * Url
2650
- * @description The asset's dashboard URL (app.ellipsis.dev/assets/{id}). Access is gated to members of the owning organization, so this link is safe to share, e.g. in a pull request comment.
2690
+ * @description The file's dashboard URL (app.ellipsis.dev/files/{id}). Access is gated to members of the owning organization, so this link is safe to share, e.g. in a pull request comment.
2651
2691
  */
2652
2692
  url: string;
2653
2693
  };
2694
+ /**
2695
+ * CreateMemoryRequest
2696
+ * @description Create a memory at a path that does not exist yet.
2697
+ */
2698
+ CreateMemoryRequest: {
2699
+ /**
2700
+ * Content
2701
+ * @description The memory's markdown content, at most 100 KB of UTF-8.
2702
+ */
2703
+ content: string;
2704
+ /**
2705
+ * Description
2706
+ * @description A one-line summary, at most 200 characters and no newlines. This is the only thing a reader sees in the index, so make it say what the memory is for.
2707
+ */
2708
+ description: string;
2709
+ /**
2710
+ * Path
2711
+ * @description Where to store the memory. A memory path is slash-separated segments of [a-z0-9._-], with no leading or trailing slash, no empty segments, no '.' or '..' segments, at most 512 characters, ending in '.md'.
2712
+ */
2713
+ path: string;
2714
+ };
2654
2715
  /**
2655
2716
  * CreateReviewRequest
2656
2717
  * @description Request an explicit review of one existing pull request.
@@ -2740,6 +2801,28 @@ interface components {
2740
2801
  */
2741
2802
  p75: number;
2742
2803
  };
2804
+ /**
2805
+ * EditMemoryRequest
2806
+ * @description Update an existing memory. At least one of description or content is
2807
+ * required; this never creates a memory, and never moves it.
2808
+ */
2809
+ EditMemoryRequest: {
2810
+ /**
2811
+ * Content
2812
+ * @description Replacement markdown content. Omit to keep it.
2813
+ */
2814
+ content?: string | null;
2815
+ /**
2816
+ * Description
2817
+ * @description Replacement one-line summary. Omit to keep it.
2818
+ */
2819
+ description?: string | null;
2820
+ /**
2821
+ * If Sha256
2822
+ * @description Only apply the edit if the memory's current content_sha256 matches. Returns 409 if it doesn't, so a concurrent write is a visible conflict rather than a silent overwrite.
2823
+ */
2824
+ if_sha256?: string | null;
2825
+ };
2743
2826
  /**
2744
2827
  * EffortLevel
2745
2828
  * @enum {string}
@@ -2765,7 +2848,7 @@ interface components {
2765
2848
  ErrorInfo: {
2766
2849
  /**
2767
2850
  * Code
2768
- * @description Stable machine-readable error code. Open vocabulary — handle unknown codes by HTTP status. Known values: account_blocked, asset_quota_exceeded, conflict, default_config_broken, failed_dependency, forbidden, internal_error, invalid_request, not_found, rate_limited, review_in_flight, session_closed, session_ephemeral_trigger, session_finished, session_harness_single_turn, session_laptop, session_mention_surface, session_non_interactive, unauthorized, unavailable.
2851
+ * @description Stable machine-readable error code. Open vocabulary — handle unknown codes by HTTP status. Known values: account_blocked, conflict, default_config_broken, failed_dependency, file_quota_exceeded, forbidden, internal_error, invalid_request, not_found, rate_limited, review_in_flight, session_closed, session_ephemeral_trigger, session_finished, session_harness_single_turn, session_laptop, session_mention_surface, session_non_interactive, unauthorized, unavailable.
2769
2852
  */
2770
2853
  code: string;
2771
2854
  /**
@@ -2794,6 +2877,44 @@ interface components {
2794
2877
  * @enum {string}
2795
2878
  */
2796
2879
  ExecutionStatus: 'running' | 'failed' | 'done';
2880
+ /**
2881
+ * FileView
2882
+ * @description A file's metadata — the file itself is fetched via a separate
2883
+ * download URL.
2884
+ */
2885
+ FileView: {
2886
+ /**
2887
+ * Agent Session Id
2888
+ * @description The agent session that produced this file, when it was uploaded from a sandbox. Null for uploads made outside an agent session.
2889
+ */
2890
+ agent_session_id?: string | null;
2891
+ /**
2892
+ * Content Type
2893
+ * @description The file's MIME type.
2894
+ */
2895
+ content_type: string;
2896
+ /**
2897
+ * Created At
2898
+ * Format: date-time
2899
+ * @description When the file was uploaded.
2900
+ */
2901
+ created_at: string;
2902
+ /**
2903
+ * Filename
2904
+ * @description The original file basename, for display.
2905
+ */
2906
+ filename: string;
2907
+ /**
2908
+ * Id
2909
+ * @description The file's unique identifier.
2910
+ */
2911
+ id: string;
2912
+ /**
2913
+ * Size Bytes
2914
+ * @description The size of the stored file in bytes.
2915
+ */
2916
+ size_bytes: number;
2917
+ };
2797
2918
  /**
2798
2919
  * FindingAnchor
2799
2920
  * @description Where a finding's line anchor landed relative to the PR diff.
@@ -2894,21 +3015,21 @@ interface components {
2894
3015
  totals: components['schemas']['ReviewsTotals'];
2895
3016
  };
2896
3017
  /**
2897
- * GetAssetResponse
2898
- * @description One asset's metadata plus its shareable link and a short-lived
3018
+ * GetFileResponse
3019
+ * @description One file's metadata plus its shareable link and a short-lived
2899
3020
  * download URL.
2900
3021
  */
2901
- GetAssetResponse: {
2902
- /** @description The asset's metadata. */
2903
- asset: components['schemas']['AssetView'];
3022
+ GetFileResponse: {
2904
3023
  /**
2905
3024
  * Download Url
2906
3025
  * @description A short-lived presigned URL for downloading the file bytes. Fetch it immediately — it expires within about a minute.
2907
3026
  */
2908
3027
  download_url: string;
3028
+ /** @description The file's metadata. */
3029
+ file: components['schemas']['FileView'];
2909
3030
  /**
2910
3031
  * Url
2911
- * @description The asset's dashboard URL — the same shareable link returned when the asset was created.
3032
+ * @description The file's dashboard URL — the same shareable link returned when the file was created.
2912
3033
  */
2913
3034
  url: string;
2914
3035
  };
@@ -3486,16 +3607,16 @@ interface components {
3486
3607
  alerts: components['schemas']['Alert'][];
3487
3608
  };
3488
3609
  /**
3489
- * ListAssetsResponse
3490
- * @description The calling account's assets, newest first. Metadata only — fetch an
3491
- * individual asset to get a download URL.
3610
+ * ListFilesResponse
3611
+ * @description The calling account's files, newest first. Metadata only — fetch an
3612
+ * individual file to get a download URL.
3492
3613
  */
3493
- ListAssetsResponse: {
3614
+ ListFilesResponse: {
3494
3615
  /**
3495
- * Assets
3496
- * @description The account's assets, newest first.
3616
+ * Files
3617
+ * @description The account's files, newest first.
3497
3618
  */
3498
- assets: components['schemas']['AssetView'][];
3619
+ files: components['schemas']['FileView'][];
3499
3620
  };
3500
3621
  /**
3501
3622
  * ListGithubMembersResponse
@@ -3535,6 +3656,23 @@ interface components {
3535
3656
  */
3536
3657
  teams: components['schemas']['LinearTeamSummary'][];
3537
3658
  };
3659
+ /**
3660
+ * ListMemoriesWireResponse
3661
+ * @description The organization's memories: the rendered index a reader scans, plus the
3662
+ * same entries structured. Content is fetched per memory.
3663
+ */
3664
+ ListMemoriesWireResponse: {
3665
+ /**
3666
+ * Index
3667
+ * @description The memories rendered as a markdown index — one line per memory carrying its id, path, and description, grouped by top-level prefix. Read this, then fetch the ids that matter.
3668
+ */
3669
+ index: string;
3670
+ /**
3671
+ * Memories
3672
+ * @description The same memories as structured entries, ordered by path.
3673
+ */
3674
+ memories: components['schemas']['MemoryStubWire'][];
3675
+ };
3538
3676
  /**
3539
3677
  * ListReviewsResponse
3540
3678
  * @description Reviews matching the query, newest first. `findings` are omitted
@@ -3694,43 +3832,154 @@ interface components {
3694
3832
  stream_seq: number;
3695
3833
  };
3696
3834
  /**
3697
- * ModelManufacturer
3698
- * @description Who BUILT a model. Never who serves it.
3699
- *
3700
- * Serving path is irrelevant here. Anthropic built every Claude model, so all of
3701
- * them are ANTHROPIC whether we reach them through the first-party Anthropic API
3702
- * or through Bedrock -- a choice made per deployment by ELLIPSIS_LLM_PROVIDER, so
3703
- * it is not even a fixed property of the model. Likewise the `bedrock-gpt-5.6-*`
3704
- * rows are OPENAI (OpenAI's models, served by AWS), and GLM is ZAI (Z.ai's model,
3705
- * served by Wafer over an OpenAI-compatible API).
3706
- *
3707
- * So this is deliberately NOT derived from `EgressRoute.provider`: routing is an
3708
- * infrastructure fact that changes when we move a model between providers, while
3709
- * the manufacturer is a property of the model itself and never changes.
3710
- *
3711
- * The frontend renders a vendor logo per model, which is why it needs the maker.
3712
- * Keying that UI off the egress provider would put an AWS logo on a GPT model and
3713
- * an OpenAI logo on GLM.
3835
+ * MemoryActorType
3714
3836
  * @enum {string}
3715
3837
  */
3716
- ModelManufacturer: 'anthropic' | 'openai' | 'zai';
3717
- /** ModelRateCardApi */
3718
- ModelRateCardApi: {
3719
- /** Cache Read Cents Per 1M Tokens */
3720
- cache_read_cents_per_1m_tokens: number;
3721
- /** Cache Write 1H Cents Per 1M Tokens */
3722
- cache_write_1h_cents_per_1m_tokens: number;
3723
- /** Cache Write 5M Cents Per 1M Tokens */
3724
- cache_write_5m_cents_per_1m_tokens: number;
3725
- /** Input Cents Per 1M Tokens */
3726
- input_cents_per_1m_tokens: number;
3727
- /** Output Cents Per 1M Tokens */
3728
- output_cents_per_1m_tokens: number;
3729
- };
3838
+ MemoryActorType: 'agent_session' | 'api_key' | 'user';
3730
3839
  /**
3731
- * ModelUsageBreakdown
3732
- * @description Usage and cost for one model over the whole period, split into the four
3733
- * billed categories.
3840
+ * MemoryActorWire
3841
+ * @description Who wrote a memory, derived from their credential.
3842
+ */
3843
+ MemoryActorWire: {
3844
+ /**
3845
+ * Id
3846
+ * @description The writer's identifier: the agent session id, the API key id, or the GitHub account id, matching `type`.
3847
+ */
3848
+ id: string;
3849
+ /** @description The kind of credential that wrote the memory: agent_session (an agent writing from inside its sandbox), api_key, or user. */
3850
+ type: components['schemas']['MemoryActorType'];
3851
+ };
3852
+ /**
3853
+ * MemoryStubWire
3854
+ * @description One entry in the index: a memory with every field except `content`.
3855
+ *
3856
+ * Content is the only omission, and it's the whole reason this shape exists —
3857
+ * an account can hold 2,000 memories of 100 KB each, so a listing that carried
3858
+ * content would be a 200 MB response.
3859
+ */
3860
+ MemoryStubWire: {
3861
+ /**
3862
+ * Content Sha256
3863
+ * @description Hex SHA-256 of the content, usable as an `if_sha256` precondition.
3864
+ */
3865
+ content_sha256: string;
3866
+ /**
3867
+ * Created At
3868
+ * Format: date-time
3869
+ * @description When the memory was created.
3870
+ */
3871
+ created_at: string;
3872
+ /** @description The credential that created the memory. */
3873
+ created_by: components['schemas']['MemoryActorWire'];
3874
+ /**
3875
+ * Description
3876
+ * @description The one-line summary of the memory.
3877
+ */
3878
+ description: string;
3879
+ /**
3880
+ * Id
3881
+ * @description The memory's unique identifier.
3882
+ */
3883
+ id: string;
3884
+ /**
3885
+ * Path
3886
+ * @description The memory's address within the organization.
3887
+ */
3888
+ path: string;
3889
+ /**
3890
+ * Updated At
3891
+ * Format: date-time
3892
+ * @description When the memory was last written.
3893
+ */
3894
+ updated_at: string;
3895
+ /** @description The credential that last wrote the memory. */
3896
+ updated_by: components['schemas']['MemoryActorWire'];
3897
+ };
3898
+ /**
3899
+ * MemoryWire
3900
+ * @description One memory, including its full markdown content.
3901
+ */
3902
+ MemoryWire: {
3903
+ /**
3904
+ * Content
3905
+ * @description The memory's markdown content.
3906
+ */
3907
+ content: string;
3908
+ /**
3909
+ * Content Sha256
3910
+ * @description Hex SHA-256 of the content, computed server-side. Pass it back as `if_sha256` on an edit or delete to fail instead of overwriting a change someone else made in the meantime.
3911
+ */
3912
+ content_sha256: string;
3913
+ /**
3914
+ * Created At
3915
+ * Format: date-time
3916
+ * @description When the memory was created.
3917
+ */
3918
+ created_at: string;
3919
+ /** @description The credential that created the memory. */
3920
+ created_by: components['schemas']['MemoryActorWire'];
3921
+ /**
3922
+ * Description
3923
+ * @description The one-line summary shown in the index. This is what a reader sees before deciding to open the memory.
3924
+ */
3925
+ description: string;
3926
+ /**
3927
+ * Id
3928
+ * @description The memory's unique identifier.
3929
+ */
3930
+ id: string;
3931
+ /**
3932
+ * Path
3933
+ * @description The memory's address, unique within the organization, e.g. repos/acme/deploys.md.
3934
+ */
3935
+ path: string;
3936
+ /**
3937
+ * Updated At
3938
+ * Format: date-time
3939
+ * @description When the memory was last written.
3940
+ */
3941
+ updated_at: string;
3942
+ /** @description The credential that last wrote the memory. */
3943
+ updated_by: components['schemas']['MemoryActorWire'];
3944
+ };
3945
+ /**
3946
+ * ModelManufacturer
3947
+ * @description Who BUILT a model. Never who serves it.
3948
+ *
3949
+ * Serving path is irrelevant here. Anthropic built every Claude model, so all of
3950
+ * them are ANTHROPIC whether we reach them through the first-party Anthropic API
3951
+ * or through Bedrock -- a choice made per request by the llm_providers chain, so
3952
+ * it is not even a fixed property of the model. Likewise the `bedrock-gpt-5.6-*`
3953
+ * rows are OPENAI (OpenAI's models, served by AWS), and GLM is ZAI (Z.ai's model,
3954
+ * served by Concentrate).
3955
+ *
3956
+ * So this is deliberately NOT derived from `EgressRoute.provider`: routing is an
3957
+ * infrastructure fact that changes when we move a model between providers, while
3958
+ * the manufacturer is a property of the model itself and never changes.
3959
+ *
3960
+ * The frontend renders a vendor logo per model, which is why it needs the maker.
3961
+ * Keying that UI off the egress provider would put an AWS logo on a GPT model and
3962
+ * an OpenAI logo on GLM.
3963
+ * @enum {string}
3964
+ */
3965
+ ModelManufacturer: 'anthropic' | 'openai' | 'zai' | 'minimax' | 'moonshot';
3966
+ /** ModelRateCardApi */
3967
+ ModelRateCardApi: {
3968
+ /** Cache Read Cents Per 1M Tokens */
3969
+ cache_read_cents_per_1m_tokens: number;
3970
+ /** Cache Write 1H Cents Per 1M Tokens */
3971
+ cache_write_1h_cents_per_1m_tokens: number;
3972
+ /** Cache Write 5M Cents Per 1M Tokens */
3973
+ cache_write_5m_cents_per_1m_tokens: number;
3974
+ /** Input Cents Per 1M Tokens */
3975
+ input_cents_per_1m_tokens: number;
3976
+ /** Output Cents Per 1M Tokens */
3977
+ output_cents_per_1m_tokens: number;
3978
+ };
3979
+ /**
3980
+ * ModelUsageBreakdown
3981
+ * @description Usage and cost for one model over the whole period, split into the four
3982
+ * billed categories.
3734
3983
  */
3735
3984
  ModelUsageBreakdown: {
3736
3985
  /**
@@ -7179,7 +7428,154 @@ interface operations {
7179
7428
  };
7180
7429
  };
7181
7430
  };
7182
- list_assets: {
7431
+ cli_auth_poll: {
7432
+ parameters: {
7433
+ query?: never;
7434
+ header?: never;
7435
+ path?: never;
7436
+ cookie?: never;
7437
+ };
7438
+ requestBody: {
7439
+ content: {
7440
+ 'application/json': components['schemas']['CliAuthPollRequest'];
7441
+ };
7442
+ };
7443
+ responses: {
7444
+ /** @description Successful Response */
7445
+ 200: {
7446
+ headers: {
7447
+ [name: string]: unknown;
7448
+ };
7449
+ content: {
7450
+ 'application/json': components['schemas']['PollCliAuthResponse'];
7451
+ };
7452
+ };
7453
+ /** @description The bearer token is missing, invalid, or revoked. */
7454
+ 401: {
7455
+ headers: {
7456
+ [name: string]: unknown;
7457
+ };
7458
+ content: {
7459
+ 'application/json': components['schemas']['ErrorResponse'];
7460
+ };
7461
+ };
7462
+ /** @description The credential may not perform this action, or the account is blocked. */
7463
+ 403: {
7464
+ headers: {
7465
+ [name: string]: unknown;
7466
+ };
7467
+ content: {
7468
+ 'application/json': components['schemas']['ErrorResponse'];
7469
+ };
7470
+ };
7471
+ /** @description Unknown device code. */
7472
+ 404: {
7473
+ headers: {
7474
+ [name: string]: unknown;
7475
+ };
7476
+ content: {
7477
+ 'application/json': components['schemas']['ErrorResponse'];
7478
+ };
7479
+ };
7480
+ /** @description Validation Error */
7481
+ 422: {
7482
+ headers: {
7483
+ [name: string]: unknown;
7484
+ };
7485
+ content: {
7486
+ 'application/json': components['schemas']['HTTPValidationError'];
7487
+ };
7488
+ };
7489
+ };
7490
+ };
7491
+ cli_auth_start: {
7492
+ parameters: {
7493
+ query?: never;
7494
+ header?: never;
7495
+ path?: never;
7496
+ cookie?: never;
7497
+ };
7498
+ requestBody?: never;
7499
+ responses: {
7500
+ /** @description Successful Response */
7501
+ 201: {
7502
+ headers: {
7503
+ [name: string]: unknown;
7504
+ };
7505
+ content: {
7506
+ 'application/json': components['schemas']['StartCliAuthResponse'];
7507
+ };
7508
+ };
7509
+ /** @description The bearer token is missing, invalid, or revoked. */
7510
+ 401: {
7511
+ headers: {
7512
+ [name: string]: unknown;
7513
+ };
7514
+ content: {
7515
+ 'application/json': components['schemas']['ErrorResponse'];
7516
+ };
7517
+ };
7518
+ /** @description The credential may not perform this action, or the account is blocked. */
7519
+ 403: {
7520
+ headers: {
7521
+ [name: string]: unknown;
7522
+ };
7523
+ content: {
7524
+ 'application/json': components['schemas']['ErrorResponse'];
7525
+ };
7526
+ };
7527
+ };
7528
+ };
7529
+ get_budget: {
7530
+ parameters: {
7531
+ query?: never;
7532
+ header?: {
7533
+ 'user-agent'?: string | null;
7534
+ };
7535
+ path?: never;
7536
+ cookie?: never;
7537
+ };
7538
+ requestBody?: never;
7539
+ responses: {
7540
+ /** @description Successful Response */
7541
+ 200: {
7542
+ headers: {
7543
+ [name: string]: unknown;
7544
+ };
7545
+ content: {
7546
+ 'application/json': components['schemas']['BudgetSummary'];
7547
+ };
7548
+ };
7549
+ /** @description The bearer token is missing, invalid, or revoked. */
7550
+ 401: {
7551
+ headers: {
7552
+ [name: string]: unknown;
7553
+ };
7554
+ content: {
7555
+ 'application/json': components['schemas']['ErrorResponse'];
7556
+ };
7557
+ };
7558
+ /** @description The credential may not perform this action, or the account is blocked. */
7559
+ 403: {
7560
+ headers: {
7561
+ [name: string]: unknown;
7562
+ };
7563
+ content: {
7564
+ 'application/json': components['schemas']['ErrorResponse'];
7565
+ };
7566
+ };
7567
+ /** @description Validation Error */
7568
+ 422: {
7569
+ headers: {
7570
+ [name: string]: unknown;
7571
+ };
7572
+ content: {
7573
+ 'application/json': components['schemas']['HTTPValidationError'];
7574
+ };
7575
+ };
7576
+ };
7577
+ };
7578
+ list_files: {
7183
7579
  parameters: {
7184
7580
  query?: {
7185
7581
  agent_session_id?: string | null;
@@ -7199,7 +7595,7 @@ interface operations {
7199
7595
  [name: string]: unknown;
7200
7596
  };
7201
7597
  content: {
7202
- 'application/json': components['schemas']['ListAssetsResponse'];
7598
+ 'application/json': components['schemas']['ListFilesResponse'];
7203
7599
  };
7204
7600
  };
7205
7601
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7231,7 +7627,7 @@ interface operations {
7231
7627
  };
7232
7628
  };
7233
7629
  };
7234
- create_asset: {
7630
+ create_file: {
7235
7631
  parameters: {
7236
7632
  query?: never;
7237
7633
  header?: {
@@ -7242,7 +7638,7 @@ interface operations {
7242
7638
  };
7243
7639
  requestBody: {
7244
7640
  content: {
7245
- 'application/json': components['schemas']['CreateAssetRequest'];
7641
+ 'application/json': components['schemas']['CreateFileRequest'];
7246
7642
  };
7247
7643
  };
7248
7644
  responses: {
@@ -7252,7 +7648,7 @@ interface operations {
7252
7648
  [name: string]: unknown;
7253
7649
  };
7254
7650
  content: {
7255
- 'application/json': components['schemas']['CreateAssetResponse'];
7651
+ 'application/json': components['schemas']['CreateFileResponse'];
7256
7652
  };
7257
7653
  };
7258
7654
  /** @description The upload is not a valid PNG, is empty, exceeds the size limit, or is not valid base64. */
@@ -7291,7 +7687,7 @@ interface operations {
7291
7687
  'application/json': components['schemas']['HTTPValidationError'];
7292
7688
  };
7293
7689
  };
7294
- /** @description An asset quota was exceeded (per-session, per-day, or account-wide). */
7690
+ /** @description A file quota was exceeded (per-session, per-day, or account-wide). */
7295
7691
  429: {
7296
7692
  headers: {
7297
7693
  [name: string]: unknown;
@@ -7302,14 +7698,14 @@ interface operations {
7302
7698
  };
7303
7699
  };
7304
7700
  };
7305
- get_asset: {
7701
+ get_file: {
7306
7702
  parameters: {
7307
7703
  query?: never;
7308
7704
  header?: {
7309
7705
  'user-agent'?: string | null;
7310
7706
  };
7311
7707
  path: {
7312
- asset_id: string;
7708
+ file_id: string;
7313
7709
  };
7314
7710
  cookie?: never;
7315
7711
  };
@@ -7321,7 +7717,7 @@ interface operations {
7321
7717
  [name: string]: unknown;
7322
7718
  };
7323
7719
  content: {
7324
- 'application/json': components['schemas']['GetAssetResponse'];
7720
+ 'application/json': components['schemas']['GetFileResponse'];
7325
7721
  };
7326
7722
  };
7327
7723
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7342,7 +7738,7 @@ interface operations {
7342
7738
  'application/json': components['schemas']['ErrorResponse'];
7343
7739
  };
7344
7740
  };
7345
- /** @description No such asset in your account. */
7741
+ /** @description No such file in your account. */
7346
7742
  404: {
7347
7743
  headers: {
7348
7744
  [name: string]: unknown;
@@ -7362,14 +7758,14 @@ interface operations {
7362
7758
  };
7363
7759
  };
7364
7760
  };
7365
- delete_asset: {
7761
+ delete_file: {
7366
7762
  parameters: {
7367
7763
  query?: never;
7368
7764
  header?: {
7369
7765
  'user-agent'?: string | null;
7370
7766
  };
7371
7767
  path: {
7372
- asset_id: string;
7768
+ file_id: string;
7373
7769
  };
7374
7770
  cookie?: never;
7375
7771
  };
@@ -7400,7 +7796,7 @@ interface operations {
7400
7796
  'application/json': components['schemas']['ErrorResponse'];
7401
7797
  };
7402
7798
  };
7403
- /** @description No such asset in your account. */
7799
+ /** @description No such file in your account. */
7404
7800
  404: {
7405
7801
  headers: {
7406
7802
  [name: string]: unknown;
@@ -7420,18 +7816,16 @@ interface operations {
7420
7816
  };
7421
7817
  };
7422
7818
  };
7423
- cli_auth_poll: {
7819
+ get_integrations: {
7424
7820
  parameters: {
7425
7821
  query?: never;
7426
- header?: never;
7822
+ header?: {
7823
+ 'user-agent'?: string | null;
7824
+ };
7427
7825
  path?: never;
7428
7826
  cookie?: never;
7429
7827
  };
7430
- requestBody: {
7431
- content: {
7432
- 'application/json': components['schemas']['CliAuthPollRequest'];
7433
- };
7434
- };
7828
+ requestBody?: never;
7435
7829
  responses: {
7436
7830
  /** @description Successful Response */
7437
7831
  200: {
@@ -7439,7 +7833,7 @@ interface operations {
7439
7833
  [name: string]: unknown;
7440
7834
  };
7441
7835
  content: {
7442
- 'application/json': components['schemas']['PollCliAuthResponse'];
7836
+ 'application/json': components['schemas']['GetIntegrationsResponse'];
7443
7837
  };
7444
7838
  };
7445
7839
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7460,15 +7854,6 @@ interface operations {
7460
7854
  'application/json': components['schemas']['ErrorResponse'];
7461
7855
  };
7462
7856
  };
7463
- /** @description Unknown device code. */
7464
- 404: {
7465
- headers: {
7466
- [name: string]: unknown;
7467
- };
7468
- content: {
7469
- 'application/json': components['schemas']['ErrorResponse'];
7470
- };
7471
- };
7472
7857
  /** @description Validation Error */
7473
7858
  422: {
7474
7859
  headers: {
@@ -7480,22 +7865,24 @@ interface operations {
7480
7865
  };
7481
7866
  };
7482
7867
  };
7483
- cli_auth_start: {
7868
+ list_github_members: {
7484
7869
  parameters: {
7485
7870
  query?: never;
7486
- header?: never;
7871
+ header?: {
7872
+ 'user-agent'?: string | null;
7873
+ };
7487
7874
  path?: never;
7488
7875
  cookie?: never;
7489
7876
  };
7490
7877
  requestBody?: never;
7491
7878
  responses: {
7492
7879
  /** @description Successful Response */
7493
- 201: {
7880
+ 200: {
7494
7881
  headers: {
7495
7882
  [name: string]: unknown;
7496
7883
  };
7497
7884
  content: {
7498
- 'application/json': components['schemas']['StartCliAuthResponse'];
7885
+ 'application/json': components['schemas']['ListGithubMembersResponse'];
7499
7886
  };
7500
7887
  };
7501
7888
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7516,9 +7903,18 @@ interface operations {
7516
7903
  'application/json': components['schemas']['ErrorResponse'];
7517
7904
  };
7518
7905
  };
7906
+ /** @description Validation Error */
7907
+ 422: {
7908
+ headers: {
7909
+ [name: string]: unknown;
7910
+ };
7911
+ content: {
7912
+ 'application/json': components['schemas']['HTTPValidationError'];
7913
+ };
7914
+ };
7519
7915
  };
7520
7916
  };
7521
- get_budget: {
7917
+ list_github_repositories: {
7522
7918
  parameters: {
7523
7919
  query?: never;
7524
7920
  header?: {
@@ -7535,7 +7931,7 @@ interface operations {
7535
7931
  [name: string]: unknown;
7536
7932
  };
7537
7933
  content: {
7538
- 'application/json': components['schemas']['BudgetSummary'];
7934
+ 'application/json': components['schemas']['ListGithubRepositoriesResponse'];
7539
7935
  };
7540
7936
  };
7541
7937
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7567,7 +7963,7 @@ interface operations {
7567
7963
  };
7568
7964
  };
7569
7965
  };
7570
- get_integrations: {
7966
+ list_linear_teams: {
7571
7967
  parameters: {
7572
7968
  query?: never;
7573
7969
  header?: {
@@ -7584,7 +7980,7 @@ interface operations {
7584
7980
  [name: string]: unknown;
7585
7981
  };
7586
7982
  content: {
7587
- 'application/json': components['schemas']['GetIntegrationsResponse'];
7983
+ 'application/json': components['schemas']['ListLinearTeamsResponse'];
7588
7984
  };
7589
7985
  };
7590
7986
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7605,6 +8001,15 @@ interface operations {
7605
8001
  'application/json': components['schemas']['ErrorResponse'];
7606
8002
  };
7607
8003
  };
8004
+ /** @description Linear is not connected for this account. */
8005
+ 404: {
8006
+ headers: {
8007
+ [name: string]: unknown;
8008
+ };
8009
+ content: {
8010
+ 'application/json': components['schemas']['ErrorResponse'];
8011
+ };
8012
+ };
7608
8013
  /** @description Validation Error */
7609
8014
  422: {
7610
8015
  headers: {
@@ -7616,7 +8021,7 @@ interface operations {
7616
8021
  };
7617
8022
  };
7618
8023
  };
7619
- list_github_members: {
8024
+ list_sentry_organizations: {
7620
8025
  parameters: {
7621
8026
  query?: never;
7622
8027
  header?: {
@@ -7633,7 +8038,7 @@ interface operations {
7633
8038
  [name: string]: unknown;
7634
8039
  };
7635
8040
  content: {
7636
- 'application/json': components['schemas']['ListGithubMembersResponse'];
8041
+ 'application/json': components['schemas']['ListSentryOrganizationsResponse'];
7637
8042
  };
7638
8043
  };
7639
8044
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7665,7 +8070,7 @@ interface operations {
7665
8070
  };
7666
8071
  };
7667
8072
  };
7668
- list_github_repositories: {
8073
+ list_slack_channels: {
7669
8074
  parameters: {
7670
8075
  query?: never;
7671
8076
  header?: {
@@ -7682,7 +8087,7 @@ interface operations {
7682
8087
  [name: string]: unknown;
7683
8088
  };
7684
8089
  content: {
7685
- 'application/json': components['schemas']['ListGithubRepositoriesResponse'];
8090
+ 'application/json': components['schemas']['ListSlackChannelsResponse'];
7686
8091
  };
7687
8092
  };
7688
8093
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7703,6 +8108,15 @@ interface operations {
7703
8108
  'application/json': components['schemas']['ErrorResponse'];
7704
8109
  };
7705
8110
  };
8111
+ /** @description Slack is not connected for this account. */
8112
+ 404: {
8113
+ headers: {
8114
+ [name: string]: unknown;
8115
+ };
8116
+ content: {
8117
+ 'application/json': components['schemas']['ErrorResponse'];
8118
+ };
8119
+ };
7706
8120
  /** @description Validation Error */
7707
8121
  422: {
7708
8122
  headers: {
@@ -7714,7 +8128,7 @@ interface operations {
7714
8128
  };
7715
8129
  };
7716
8130
  };
7717
- list_linear_teams: {
8131
+ list_slack_members: {
7718
8132
  parameters: {
7719
8133
  query?: never;
7720
8134
  header?: {
@@ -7731,7 +8145,7 @@ interface operations {
7731
8145
  [name: string]: unknown;
7732
8146
  };
7733
8147
  content: {
7734
- 'application/json': components['schemas']['ListLinearTeamsResponse'];
8148
+ 'application/json': components['schemas']['ListSlackMembersResponse'];
7735
8149
  };
7736
8150
  };
7737
8151
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7752,7 +8166,7 @@ interface operations {
7752
8166
  'application/json': components['schemas']['ErrorResponse'];
7753
8167
  };
7754
8168
  };
7755
- /** @description Linear is not connected for this account. */
8169
+ /** @description Slack is not connected for this account. */
7756
8170
  404: {
7757
8171
  headers: {
7758
8172
  [name: string]: unknown;
@@ -7772,7 +8186,7 @@ interface operations {
7772
8186
  };
7773
8187
  };
7774
8188
  };
7775
- list_sentry_organizations: {
8189
+ whoami: {
7776
8190
  parameters: {
7777
8191
  query?: never;
7778
8192
  header?: {
@@ -7789,7 +8203,7 @@ interface operations {
7789
8203
  [name: string]: unknown;
7790
8204
  };
7791
8205
  content: {
7792
- 'application/json': components['schemas']['ListSentryOrganizationsResponse'];
8206
+ 'application/json': components['schemas']['WhoAmIResponse'];
7793
8207
  };
7794
8208
  };
7795
8209
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7821,9 +8235,12 @@ interface operations {
7821
8235
  };
7822
8236
  };
7823
8237
  };
7824
- list_slack_channels: {
8238
+ list_memories: {
7825
8239
  parameters: {
7826
- query?: never;
8240
+ query?: {
8241
+ /** @description Limit to memories under this path prefix, matched on whole segments — repos/acme matches repos/acme/x.md but not repos/acme2/x.md. */
8242
+ prefix?: string | null;
8243
+ };
7827
8244
  header?: {
7828
8245
  'user-agent'?: string | null;
7829
8246
  };
@@ -7838,7 +8255,7 @@ interface operations {
7838
8255
  [name: string]: unknown;
7839
8256
  };
7840
8257
  content: {
7841
- 'application/json': components['schemas']['ListSlackChannelsResponse'];
8258
+ 'application/json': components['schemas']['ListMemoriesWireResponse'];
7842
8259
  };
7843
8260
  };
7844
8261
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7859,8 +8276,43 @@ interface operations {
7859
8276
  'application/json': components['schemas']['ErrorResponse'];
7860
8277
  };
7861
8278
  };
7862
- /** @description Slack is not connected for this account. */
7863
- 404: {
8279
+ /** @description Validation Error */
8280
+ 422: {
8281
+ headers: {
8282
+ [name: string]: unknown;
8283
+ };
8284
+ content: {
8285
+ 'application/json': components['schemas']['HTTPValidationError'];
8286
+ };
8287
+ };
8288
+ };
8289
+ };
8290
+ create_memory: {
8291
+ parameters: {
8292
+ query?: never;
8293
+ header?: {
8294
+ 'user-agent'?: string | null;
8295
+ };
8296
+ path?: never;
8297
+ cookie?: never;
8298
+ };
8299
+ requestBody: {
8300
+ content: {
8301
+ 'application/json': components['schemas']['CreateMemoryRequest'];
8302
+ };
8303
+ };
8304
+ responses: {
8305
+ /** @description Successful Response */
8306
+ 201: {
8307
+ headers: {
8308
+ [name: string]: unknown;
8309
+ };
8310
+ content: {
8311
+ 'application/json': components['schemas']['MemoryWire'];
8312
+ };
8313
+ };
8314
+ /** @description The bearer token is missing, invalid, or revoked. */
8315
+ 401: {
7864
8316
  headers: {
7865
8317
  [name: string]: unknown;
7866
8318
  };
@@ -7868,24 +8320,44 @@ interface operations {
7868
8320
  'application/json': components['schemas']['ErrorResponse'];
7869
8321
  };
7870
8322
  };
7871
- /** @description Validation Error */
8323
+ /** @description The credential may not perform this action, or the account is blocked. */
8324
+ 403: {
8325
+ headers: {
8326
+ [name: string]: unknown;
8327
+ };
8328
+ content: {
8329
+ 'application/json': components['schemas']['ErrorResponse'];
8330
+ };
8331
+ };
8332
+ /** @description A memory already exists at that path. */
8333
+ 409: {
8334
+ headers: {
8335
+ [name: string]: unknown;
8336
+ };
8337
+ content: {
8338
+ 'application/json': components['schemas']['ErrorResponse'];
8339
+ };
8340
+ };
8341
+ /** @description The path violates the path grammar, the description or content exceeds its limit, or the organization is at the memory cap. */
7872
8342
  422: {
7873
8343
  headers: {
7874
8344
  [name: string]: unknown;
7875
8345
  };
7876
8346
  content: {
7877
- 'application/json': components['schemas']['HTTPValidationError'];
8347
+ 'application/json': components['schemas']['ErrorResponse'];
7878
8348
  };
7879
8349
  };
7880
8350
  };
7881
8351
  };
7882
- list_slack_members: {
8352
+ get_memory: {
7883
8353
  parameters: {
7884
8354
  query?: never;
7885
8355
  header?: {
7886
8356
  'user-agent'?: string | null;
7887
8357
  };
7888
- path?: never;
8358
+ path: {
8359
+ memory_id: string;
8360
+ };
7889
8361
  cookie?: never;
7890
8362
  };
7891
8363
  requestBody?: never;
@@ -7896,7 +8368,7 @@ interface operations {
7896
8368
  [name: string]: unknown;
7897
8369
  };
7898
8370
  content: {
7899
- 'application/json': components['schemas']['ListSlackMembersResponse'];
8371
+ 'application/json': components['schemas']['MemoryWire'];
7900
8372
  };
7901
8373
  };
7902
8374
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7917,7 +8389,7 @@ interface operations {
7917
8389
  'application/json': components['schemas']['ErrorResponse'];
7918
8390
  };
7919
8391
  };
7920
- /** @description Slack is not connected for this account. */
8392
+ /** @description No such memory in your account. */
7921
8393
  404: {
7922
8394
  headers: {
7923
8395
  [name: string]: unknown;
@@ -7937,16 +8409,22 @@ interface operations {
7937
8409
  };
7938
8410
  };
7939
8411
  };
7940
- whoami: {
8412
+ edit_memory: {
7941
8413
  parameters: {
7942
8414
  query?: never;
7943
8415
  header?: {
7944
8416
  'user-agent'?: string | null;
7945
8417
  };
7946
- path?: never;
8418
+ path: {
8419
+ memory_id: string;
8420
+ };
7947
8421
  cookie?: never;
7948
8422
  };
7949
- requestBody?: never;
8423
+ requestBody: {
8424
+ content: {
8425
+ 'application/json': components['schemas']['EditMemoryRequest'];
8426
+ };
8427
+ };
7950
8428
  responses: {
7951
8429
  /** @description Successful Response */
7952
8430
  200: {
@@ -7954,8 +8432,78 @@ interface operations {
7954
8432
  [name: string]: unknown;
7955
8433
  };
7956
8434
  content: {
7957
- 'application/json': components['schemas']['WhoAmIResponse'];
8435
+ 'application/json': components['schemas']['MemoryWire'];
8436
+ };
8437
+ };
8438
+ /** @description The bearer token is missing, invalid, or revoked. */
8439
+ 401: {
8440
+ headers: {
8441
+ [name: string]: unknown;
8442
+ };
8443
+ content: {
8444
+ 'application/json': components['schemas']['ErrorResponse'];
8445
+ };
8446
+ };
8447
+ /** @description The credential may not perform this action, or the account is blocked. */
8448
+ 403: {
8449
+ headers: {
8450
+ [name: string]: unknown;
8451
+ };
8452
+ content: {
8453
+ 'application/json': components['schemas']['ErrorResponse'];
8454
+ };
8455
+ };
8456
+ /** @description No such memory in your account. */
8457
+ 404: {
8458
+ headers: {
8459
+ [name: string]: unknown;
8460
+ };
8461
+ content: {
8462
+ 'application/json': components['schemas']['ErrorResponse'];
8463
+ };
8464
+ };
8465
+ /** @description if_sha256 does not match the memory's current content. */
8466
+ 409: {
8467
+ headers: {
8468
+ [name: string]: unknown;
7958
8469
  };
8470
+ content: {
8471
+ 'application/json': components['schemas']['ErrorResponse'];
8472
+ };
8473
+ };
8474
+ /** @description Neither description nor content was provided, or one of them exceeds its limit. */
8475
+ 422: {
8476
+ headers: {
8477
+ [name: string]: unknown;
8478
+ };
8479
+ content: {
8480
+ 'application/json': components['schemas']['ErrorResponse'];
8481
+ };
8482
+ };
8483
+ };
8484
+ };
8485
+ delete_memory: {
8486
+ parameters: {
8487
+ query?: {
8488
+ /** @description Only delete if the memory's current content_sha256 matches. */
8489
+ if_sha256?: string | null;
8490
+ };
8491
+ header?: {
8492
+ 'user-agent'?: string | null;
8493
+ };
8494
+ path: {
8495
+ memory_id: string;
8496
+ };
8497
+ cookie?: never;
8498
+ };
8499
+ requestBody?: never;
8500
+ responses: {
8501
+ /** @description Successful Response */
8502
+ 204: {
8503
+ headers: {
8504
+ [name: string]: unknown;
8505
+ };
8506
+ content?: never;
7959
8507
  };
7960
8508
  /** @description The bearer token is missing, invalid, or revoked. */
7961
8509
  401: {
@@ -7975,6 +8523,24 @@ interface operations {
7975
8523
  'application/json': components['schemas']['ErrorResponse'];
7976
8524
  };
7977
8525
  };
8526
+ /** @description No such memory in your account. */
8527
+ 404: {
8528
+ headers: {
8529
+ [name: string]: unknown;
8530
+ };
8531
+ content: {
8532
+ 'application/json': components['schemas']['ErrorResponse'];
8533
+ };
8534
+ };
8535
+ /** @description if_sha256 does not match the memory's current content. */
8536
+ 409: {
8537
+ headers: {
8538
+ [name: string]: unknown;
8539
+ };
8540
+ content: {
8541
+ 'application/json': components['schemas']['ErrorResponse'];
8542
+ };
8543
+ };
7978
8544
  /** @description Validation Error */
7979
8545
  422: {
7980
8546
  headers: {
@@ -8421,6 +8987,10 @@ interface operations {
8421
8987
  limit?: number;
8422
8988
  /** @description A GitHub account id (see GET /v1/integrations/github/members); scopes the list to sessions attributed to that developer. */
8423
8989
  author_id?: number | null;
8990
+ /** @description "owner/name" (exact) or a bare repo name, matched the same way as on GET /v1/sessions/search. Sessions whose repository is named only inside their agent config — dashboard starts, cron, handoffs — do not match. */
8991
+ repo?: string | null;
8992
+ /** @description Keep only sessions whose conversation is still going — live or sleeping — dropping the ones that completed, errored, or were stopped or cancelled. A session parked between turns counts as unfinished. */
8993
+ unfinished?: boolean;
8424
8994
  };
8425
8995
  header?: {
8426
8996
  'user-agent'?: string | null;