@ellipsis-dev/sdk 0.38.0 → 0.44.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/README.md +4 -3
- package/dist/index.d.ts +105 -48
- package/dist/index.js +90 -3
- package/dist/store/index.d.ts +9 -3
- package/dist/store/index.js +10 -2
- package/dist/stream/index.d.ts +1 -1
- package/dist/{types-D4cLMGUn.d.ts → types-Dwyd1Aud.d.ts} +529 -119
- package/package.json +1 -1
- package/schema/collection_frames.schema.json +19 -57
- package/schema/frames.schema.json +32 -57
- package/schema/lifecycle.schema.json +15 -1
- package/schema/openapi.v1.json +930 -125
package/README.md
CHANGED
|
@@ -40,8 +40,8 @@ types and unknown `source`/`record_type`/`kind` values**.
|
|
|
40
40
|
## Shared chat work sections
|
|
41
41
|
|
|
42
42
|
Web and CLI renderers can use `splitLedger(groupRecordsToChatTurns(records))`
|
|
43
|
-
and `entryBody(entry, { live, now, liveText, liveSummary })` from `@ellipsis-dev/sdk/store`.
|
|
44
|
-
`now` is epoch milliseconds
|
|
43
|
+
and `entryBody(entry, { live, now, liveText, liveSummary, harness })` from `@ellipsis-dev/sdk/store`.
|
|
44
|
+
`now` is epoch milliseconds, and `harness` is `harnessName(session)`. The returned `items` are the collapsed view:
|
|
45
45
|
one `isWorkFold(item)` section for progress, thinking and tools, with final
|
|
46
46
|
replies, turn outcome and closing notices kept visible.
|
|
47
47
|
`members.get(item.key)` contains
|
|
@@ -49,7 +49,8 @@ that section's rows; nested tool folds use the same map and `isToolFold`.
|
|
|
49
49
|
Renderers own expansion state and can recursively display the members.
|
|
50
50
|
|
|
51
51
|
The work key stays stable as records stream in and after replay. The live
|
|
52
|
-
label advances from `Preparing environment` to `Starting
|
|
52
|
+
label advances from `Preparing environment` to `Starting Claude Code` (the
|
|
53
|
+
harness's name, or `Starting agent` without one) to `Working`
|
|
53
54
|
as the platform and native turn events arrive. While the agent works, the heading
|
|
54
55
|
from `store.getSnapshot().liveSummary` replaces `Working` when available.
|
|
55
56
|
Pass the summary only to the entry being answered (`loading: true`, add a loading
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as components } from './types-
|
|
2
|
-
export { A as AgentConfig, a as AgentIdentity, b as AttributionType, B as BudgetConfig, C as CheckRunAction, d as CheckSuiteAction, e as ClaudeAssistantEvent, f as ClaudeAssistantMessage, g as ClaudeConfig, h as ClaudeConversationResetEvent, i as ClaudeNativeEvent, j as ClaudeNativeSessionRecord, k as ClaudeNativeUsage, l as ClaudeRateLimitEvent, m as ClaudeRateLimitInfo, n as ClaudeResultEvent, o as ClaudeSessionRecord, p as ClaudeSystemEvent, q as ClaudeUserEvent, r as ClaudeUserMessage, s as CodexAgentMessage, t as CodexAgentMessageItem, u as CodexAppServerError, v as CodexAppServerEvent, w as CodexAppServerItem, x as CodexAppServerNotification, y as CodexAppServerSessionRecord, z as CodexCollabAgentToolCall, D as CodexCommandExecution, E as CodexCommandExecutionItem, F as CodexConfig, G as CodexContextCompaction, H as CodexEffortLevel, I as CodexErrorEvent, J as CodexErrorItem, K as CodexErrorParams, L as CodexEvent, M as CodexFileChange, N as CodexFileChangeItem, O as CodexFileUpdate, P as CodexItem, Q as CodexItemCompleted, R as CodexItemCompletedEvent, S as CodexItemParams, T as CodexItemStarted, U as CodexItemStartedEvent, V as CodexItemUpdatedEvent, W as CodexLocalImageInput, X as CodexMcpToolCall, Y as CodexMcpToolCallAppContext, Z as CodexMcpToolCallError, _ as CodexMcpToolCallItem, $ as CodexMcpToolCallResult, a0 as CodexPlan, a1 as CodexReasoning, a2 as CodexReasoningItem, a3 as CodexSessionRecord, a4 as CodexSubAgentActivity, a5 as CodexTextInput, a6 as CodexThread, a7 as CodexThreadStarted, a8 as CodexThreadStartedEvent, a9 as CodexThreadStartedParams, aa as CodexThreadTokenUsage, ab as CodexTodoListItem, ac as CodexTokenUsageBreakdown, ad as CodexTokenUsageParams, ae as CodexTokenUsageUpdated, af as CodexTurn, ag as CodexTurnCompleted, ah as CodexTurnCompletedEvent, ai as CodexTurnError, aj as CodexTurnFailedEvent, ak as CodexTurnParams, al as CodexTurnStarted, am as CodexTurnStartedEvent, an as CodexUsage, ao as CodexUserInput, ap as CodexUserMessage, aq as CodexWebSearch, ar as CodexWebSearchItem, as as ComputeConfig, at as ComputeConfig1, au as ConfigMetadata, av as Cost, aw as Cost1, ax as CronTrigger, ay as DeltaFrame, az as
|
|
1
|
+
import { c as components } from './types-Dwyd1Aud.js';
|
|
2
|
+
export { A as AgentConfig, a as AgentIdentity, b as AttributionType, B as BudgetConfig, C as CheckRunAction, d as CheckSuiteAction, e as ClaudeAssistantEvent, f as ClaudeAssistantMessage, g as ClaudeConfig, h as ClaudeConversationResetEvent, i as ClaudeNativeEvent, j as ClaudeNativeSessionRecord, k as ClaudeNativeUsage, l as ClaudeRateLimitEvent, m as ClaudeRateLimitInfo, n as ClaudeResultEvent, o as ClaudeSessionRecord, p as ClaudeSystemEvent, q as ClaudeUserEvent, r as ClaudeUserMessage, s as CodexAgentMessage, t as CodexAgentMessageItem, u as CodexAppServerError, v as CodexAppServerEvent, w as CodexAppServerItem, x as CodexAppServerNotification, y as CodexAppServerSessionRecord, z as CodexCollabAgentToolCall, D as CodexCommandExecution, E as CodexCommandExecutionItem, F as CodexConfig, G as CodexContextCompaction, H as CodexEffortLevel, I as CodexErrorEvent, J as CodexErrorItem, K as CodexErrorParams, L as CodexEvent, M as CodexFileChange, N as CodexFileChangeItem, O as CodexFileUpdate, P as CodexItem, Q as CodexItemCompleted, R as CodexItemCompletedEvent, S as CodexItemParams, T as CodexItemStarted, U as CodexItemStartedEvent, V as CodexItemUpdatedEvent, W as CodexLocalImageInput, X as CodexMcpToolCall, Y as CodexMcpToolCallAppContext, Z as CodexMcpToolCallError, _ as CodexMcpToolCallItem, $ as CodexMcpToolCallResult, a0 as CodexPlan, a1 as CodexReasoning, a2 as CodexReasoningItem, a3 as CodexSessionRecord, a4 as CodexSubAgentActivity, a5 as CodexTextInput, a6 as CodexThread, a7 as CodexThreadStarted, a8 as CodexThreadStartedEvent, a9 as CodexThreadStartedParams, aa as CodexThreadTokenUsage, ab as CodexTodoListItem, ac as CodexTokenUsageBreakdown, ad as CodexTokenUsageParams, ae as CodexTokenUsageUpdated, af as CodexTurn, ag as CodexTurnCompleted, ah as CodexTurnCompletedEvent, ai as CodexTurnError, aj as CodexTurnFailedEvent, ak as CodexTurnParams, al as CodexTurnStarted, am as CodexTurnStartedEvent, an as CodexUsage, ao as CodexUserInput, ap as CodexUserMessage, aq as CodexWebSearch, ar as CodexWebSearchItem, as as ComputeConfig, at as ComputeConfig1, au as ConfigMetadata, av as Cost, aw as Cost1, ax as CronTrigger, ay as DeltaFrame, az as EffortLevel, aA as EllipsisGrant, aB as EllipsisPermissions, aC as EnvironmentBaseBuild, aD as EnvironmentConfig, aE as EnvironmentHooks, aF as EnvironmentHooks1, aG as EnvironmentOutputPayload, aH as EnvironmentOutputRecord, aI as EnvironmentPhasePayload, aJ as EnvironmentPhaseRecord, aK as EnvironmentReadyPayload, aL as EnvironmentReadyRecord, aM as EnvironmentScript, aN as EnvironmentSource, aO as EnvironmentVariable, aP as ErrorFrame, aQ as ErrorReason, aR as GeminiConfig, aS as GeminiErrorEvent, aT as GeminiInitEvent, aU as GeminiMessageEvent, aV as GeminiModelStats, aW as GeminiResultEvent, aX as GeminiSessionRecord, aY as GeminiStreamEvent, aZ as GeminiStreamStats, a_ as GeminiToolError, a$ as GeminiToolResultEvent, b0 as GeminiToolUseEvent, b1 as GithubAccountFilter, b2 as GithubAccountSelector, b3 as GithubAccountSnippet, b4 as GithubAccountType, b5 as GithubCheckRunEvent, b6 as GithubCheckSuiteEvent, b7 as GithubIssueEvent, b8 as GithubPermissions, b9 as GithubPullRequestEvent, ba as GithubPushEvent, bb as GithubReleaseEvent, bc as GithubStatusEvent, bd as GithubWorkflowRunEvent, be as HandlerService, bf as HeartbeatFrame, bg as InputContract, bh as IssueAction, bi as LegacyAssistantPayload, bj as LegacyNativeUsage, bk as LegacyResultPayload, bl as Level, bm as LifecycleSessionRecord, bn as LinearIssueAction, bo as LinearIssueChanged, bp as LinearIssueEvent, bq as LinearLabelsChange, br as LinearValueChange, bs as LinearValueFilter, bt as LlmCost, bu as LlmCostSplit, bv as McpRemoteServer, bw as McpServerRef, bx as McpStdioServer, by as MemorySize, bz as MessageEndedPayload, bA as MessageEndedRecord, bB as MessageQueuedPayload, bC as MessageQueuedRecord, bD as MessageRecord, bE as MessageRequeuedPayload, bF as MessageRequeuedRecord, bG as MessageStartedPayload, bH as MessageStartedRecord, bI as ModelLlmCostSplit, bJ as ModelTokenCounts, bK as OutputConfig, bL as PermissionsConfig, bM as PermissionsConfig1, bN as PlatformSessionRecord, bO as PromptBlockedReason, bP as PullRequest, bQ as PullRequestAction, bR as ReactCheckRun, bS as ReactCheckSuite, bT as ReactIssue, bU as ReactLinearIssue, bV as ReactPullRequest, bW as ReactPush, bX as ReactRelease, bY as ReactSentry, bZ as ReactSlackChannel, b_ as ReactStatus, b$ as ReactTrigger, c0 as ReactWorkflowRun, c1 as RecordsFrame, c2 as ReleaseAction, c3 as RepositoryFilter, c4 as RepositoryRef, c5 as Review, c6 as ReviewComment, c7 as ReviewConfig, c8 as ReviewConfigsListResponse, c9 as ReviewReviewer, ca as ReviewSummary, cb as ReviewsListResponse, cc as SdkAssistantRecord, cd as SdkCacheCreation, ce as SdkContentBlock, cf as SdkRateLimitRecord, cg as SdkRecord, ch as SdkResultRecord, ci as SdkServerToolResultBlock, cj as SdkServerToolUseBlock, ck as SdkSystemRecord, cl as SdkTextBlock, cm as SdkThinkingBlock, cn as SdkToolResultBlock, co as SdkToolUseBlock, cp as SdkUserRecord, cq as SendSessionMessageRequest, cr as SentryAction, cs as SentryAlertEvent, ct as Session, cu as SessionAgent, cv as SessionArchived, cw as SessionAttribution, cx as SessionClosedPayload, cy as SessionClosedRecord, cz as SessionConfig, cA as SessionConversation, cB as SessionConversationConfig, cC as SessionEnvironment, cD as SessionError, cE as SessionEventActor, cF as SessionFrame, cG as SessionGit, cH as SessionGitCommit, cI as SessionGitFile, cJ as SessionGitPr, cK as SessionGitRepo, cL as SessionHandler, cM as SessionMessage, cN as SessionMessageImage, cO as SessionMessageResponse, cP as SessionOutput, cQ as SessionParent, cR as SessionPrompting, cS as SessionRecord, cT as SessionRecordsListResponse, cU as SessionResponse, cV as SessionReview, cW as SessionSource, cX as SessionStatus, cY as SessionStreamFrame, cZ as SessionSummary, c_ as SessionSummarySource, c$ as SessionsListResponse, d0 as SettingsRef, d1 as SkillRef, d2 as SlackChannelCreatedEvent, d3 as SlackMessageEvent, d4 as StatusAction, d5 as StreamFrame, d6 as TokenCounts, d7 as Tokens, d8 as Tokens1, d9 as TokensInfo, da as UnknownSessionRecord, db as UpdateSessionRequest, dc as WorkflowRunAction, dd as paths } from './types-Dwyd1Aud.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Frames on /v1/sessions/stream, /v1/agents/stream and /v1/vm-executions/{id}/stream. Ignore unknown frame types.
|
|
@@ -246,7 +246,7 @@ type EnvironmentSource = 'request' | 'agent' | 'repo_default' | 'account_default
|
|
|
246
246
|
/**
|
|
247
247
|
* What went wrong.
|
|
248
248
|
*/
|
|
249
|
-
type ErrorReason = 'error' | 'tool_call_failed' | 'budget_hit' | 'payment_required' | 'blocked' | 'contact_email_required' | 'lifecycle_hook_failed' | 'missing_repo_access' | 'missing_token_permissions' | 'missing_environment_variables' | 'missing_github_integration' | 'agent_unavailable' | 'upstream_unavailable' | 'unsupported_configuration' | 'execution_disabled' | 'interrupted' | 'stopped';
|
|
249
|
+
type ErrorReason = 'error' | 'tool_call_failed' | 'budget_hit' | 'payment_required' | 'blocked' | 'contact_email_required' | 'lifecycle_hook_failed' | 'missing_repo_access' | 'missing_token_permissions' | 'missing_environment_variables' | 'missing_github_integration' | 'agent_unavailable' | 'upstream_unavailable' | 'unsupported_configuration' | 'execution_disabled' | 'interrupted' | 'stopped' | 'timeout';
|
|
250
250
|
/**
|
|
251
251
|
* The service the handler responds to.
|
|
252
252
|
*/
|
|
@@ -458,29 +458,27 @@ interface EnvironmentConfig {
|
|
|
458
458
|
variables: EnvironmentVariable[];
|
|
459
459
|
}
|
|
460
460
|
/**
|
|
461
|
-
*
|
|
462
|
-
*
|
|
463
|
-
* outside the platform bounds fails validation
|
|
464
|
-
* config) rather than being clamped silently.
|
|
461
|
+
* The size and lifetime of the environment. Every field is optional. An
|
|
462
|
+
* omitted field takes the platform default (2 vCPUs, 4096 MiB, a 4h timeout,
|
|
463
|
+
* 10m idle). A value outside the platform bounds fails validation.
|
|
465
464
|
*
|
|
466
|
-
* `memory`
|
|
467
|
-
*
|
|
468
|
-
* `
|
|
469
|
-
* the environment is sized with.
|
|
465
|
+
* `memory` accepts a string such as `8GB` or an object such as `{gb: 8}`.
|
|
466
|
+
* `timeout` and `idle` accept a duration string such as `30m`, `8h`, or
|
|
467
|
+
* `1h30m`.
|
|
470
468
|
*
|
|
471
|
-
* `timeout` is the
|
|
472
|
-
*
|
|
473
|
-
* shortens a session; the cap matches the 1-hour validity of the session's
|
|
474
|
-
* GitHub token).
|
|
469
|
+
* `timeout` is the longest one message's work may run before it is stopped,
|
|
470
|
+
* 1m to 22h, default 4h. The message ends `stopped` with reason `timeout`.
|
|
475
471
|
*
|
|
476
|
-
*
|
|
477
|
-
*
|
|
478
|
-
*
|
|
472
|
+
* `idle` is how long the environment stays awake after the agent finishes
|
|
473
|
+
* with no message waiting, 10s to 1h, default 10m. Then it pauses, and the
|
|
474
|
+
* next message resumes it. Only an interactive session pauses. A session
|
|
475
|
+
* that runs once ends when its message ends.
|
|
479
476
|
*/
|
|
480
477
|
interface ComputeConfig {
|
|
481
478
|
cpu: number | null;
|
|
479
|
+
idle: string | null;
|
|
482
480
|
memory: string | MemorySize | null;
|
|
483
|
-
timeout: string |
|
|
481
|
+
timeout: string | null;
|
|
484
482
|
}
|
|
485
483
|
/**
|
|
486
484
|
* A memory size as explicit units, summed (binary: 1GB = 1024MB = 1024MiB).
|
|
@@ -491,16 +489,6 @@ interface MemorySize {
|
|
|
491
489
|
gb: number | null;
|
|
492
490
|
mb: number | null;
|
|
493
491
|
}
|
|
494
|
-
/**
|
|
495
|
-
* A duration as explicit units, summed. Set any of `hours`/`minutes`/
|
|
496
|
-
* `seconds` (at least one). The alternative to the `30m`-style shorthand
|
|
497
|
-
* string wherever a duration is accepted.
|
|
498
|
-
*/
|
|
499
|
-
interface Duration {
|
|
500
|
-
hours: number | null;
|
|
501
|
-
minutes: number | null;
|
|
502
|
-
seconds: number | null;
|
|
503
|
-
}
|
|
504
492
|
/**
|
|
505
493
|
* Environment lifecycle scripts, in order: build_base, after_checkout,
|
|
506
494
|
* before_start, validate. The first two produce reusable snapshots;
|
|
@@ -1071,29 +1059,27 @@ interface SessionEnvironment {
|
|
|
1071
1059
|
variables: EnvironmentVariable[];
|
|
1072
1060
|
}
|
|
1073
1061
|
/**
|
|
1074
|
-
*
|
|
1075
|
-
*
|
|
1076
|
-
* outside the platform bounds fails validation
|
|
1077
|
-
* config) rather than being clamped silently.
|
|
1062
|
+
* The size and lifetime of the environment. Every field is optional. An
|
|
1063
|
+
* omitted field takes the platform default (2 vCPUs, 4096 MiB, a 4h timeout,
|
|
1064
|
+
* 10m idle). A value outside the platform bounds fails validation.
|
|
1078
1065
|
*
|
|
1079
|
-
* `memory`
|
|
1080
|
-
*
|
|
1081
|
-
* `
|
|
1082
|
-
* the environment is sized with.
|
|
1066
|
+
* `memory` accepts a string such as `8GB` or an object such as `{gb: 8}`.
|
|
1067
|
+
* `timeout` and `idle` accept a duration string such as `30m`, `8h`, or
|
|
1068
|
+
* `1h30m`.
|
|
1083
1069
|
*
|
|
1084
|
-
* `timeout` is the
|
|
1085
|
-
*
|
|
1086
|
-
* shortens a session; the cap matches the 1-hour validity of the session's
|
|
1087
|
-
* GitHub token).
|
|
1070
|
+
* `timeout` is the longest one message's work may run before it is stopped,
|
|
1071
|
+
* 1m to 22h, default 4h. The message ends `stopped` with reason `timeout`.
|
|
1088
1072
|
*
|
|
1089
|
-
*
|
|
1090
|
-
*
|
|
1091
|
-
*
|
|
1073
|
+
* `idle` is how long the environment stays awake after the agent finishes
|
|
1074
|
+
* with no message waiting, 10s to 1h, default 10m. Then it pauses, and the
|
|
1075
|
+
* next message resumes it. Only an interactive session pauses. A session
|
|
1076
|
+
* that runs once ends when its message ends.
|
|
1092
1077
|
*/
|
|
1093
1078
|
interface ComputeConfig1 {
|
|
1094
1079
|
cpu: number | null;
|
|
1080
|
+
idle: string | null;
|
|
1095
1081
|
memory: string | MemorySize | null;
|
|
1096
|
-
timeout: string |
|
|
1082
|
+
timeout: string | null;
|
|
1097
1083
|
}
|
|
1098
1084
|
/**
|
|
1099
1085
|
* Environment lifecycle scripts, in order: build_base, after_checkout,
|
|
@@ -2895,6 +2881,21 @@ declare class EllipsisSessions {
|
|
|
2895
2881
|
* Grant match patterns can further restrict access to individual resources.
|
|
2896
2882
|
*/
|
|
2897
2883
|
git(id: string): Promise<S['SessionGitResponse']>;
|
|
2884
|
+
/**
|
|
2885
|
+
* Get Session Image
|
|
2886
|
+
*
|
|
2887
|
+
* Return an image sent with a message to the session.
|
|
2888
|
+
*
|
|
2889
|
+
* Each message lists its images, with their IDs, in `images`.
|
|
2890
|
+
*
|
|
2891
|
+
* Required permissions: read:sessions.
|
|
2892
|
+
* API key: Supported.
|
|
2893
|
+
* CLI user token: Supported.
|
|
2894
|
+
* Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
|
|
2895
|
+
* Higher permission levels include lower levels: read < write < delete.
|
|
2896
|
+
* Grant match patterns can further restrict access to individual resources.
|
|
2897
|
+
*/
|
|
2898
|
+
image(session_id: string, id: string): Promise<S['ImageAttachment']>;
|
|
2898
2899
|
/**
|
|
2899
2900
|
* List Sessions
|
|
2900
2901
|
*
|
|
@@ -2940,6 +2941,23 @@ declare class EllipsisSessions {
|
|
|
2940
2941
|
* Grant match patterns can further restrict access to individual resources.
|
|
2941
2942
|
*/
|
|
2942
2943
|
metrics(id: string): Promise<S['VMMetricsResponse']>;
|
|
2944
|
+
/**
|
|
2945
|
+
* Get Session Proxy
|
|
2946
|
+
*
|
|
2947
|
+
* The requests the session's environment sent to GitHub through
|
|
2948
|
+
* Ellipsis, newest first. Each is one `proxy_requests` row as stored.
|
|
2949
|
+
*
|
|
2950
|
+
* Required permissions: read:sessions.
|
|
2951
|
+
* API key: Supported.
|
|
2952
|
+
* CLI user token: Supported.
|
|
2953
|
+
* Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own session.
|
|
2954
|
+
* Higher permission levels include lower levels: read < write < delete.
|
|
2955
|
+
* Grant match patterns can further restrict access to individual resources.
|
|
2956
|
+
*/
|
|
2957
|
+
proxy(id: string, options?: {
|
|
2958
|
+
limit?: number;
|
|
2959
|
+
cursor?: string | null;
|
|
2960
|
+
}): Promise<Page<S['ProxyRequest'], S['SessionProxyResponse']>>;
|
|
2943
2961
|
/**
|
|
2944
2962
|
* Get Session Records
|
|
2945
2963
|
*
|
|
@@ -3066,7 +3084,7 @@ declare class EllipsisSessions {
|
|
|
3066
3084
|
/**
|
|
3067
3085
|
* Update Session
|
|
3068
3086
|
*
|
|
3069
|
-
* Archive or unarchive a session and return it.
|
|
3087
|
+
* Archive or unarchive a session, or set its summary, and return it.
|
|
3070
3088
|
*
|
|
3071
3089
|
* Set archived to true to record the current server time and the
|
|
3072
3090
|
* authenticated GitHub user. API-key requests record no user.
|
|
@@ -3084,6 +3102,11 @@ declare class EllipsisSessions {
|
|
|
3084
3102
|
* take messages again. 409 `session_superseded` when a newer session
|
|
3085
3103
|
* now answers the same thread.
|
|
3086
3104
|
*
|
|
3105
|
+
* Set summary to name the session. The summary's source becomes
|
|
3106
|
+
* `user`, and Ellipsis never replaces it with a generated one. With
|
|
3107
|
+
* both fields, the archive change applies first, and a refused
|
|
3108
|
+
* archive change leaves the summary as it was.
|
|
3109
|
+
*
|
|
3087
3110
|
* Changes are delivered to session and session-list streams.
|
|
3088
3111
|
*
|
|
3089
3112
|
* Required permissions: write:sessions.
|
|
@@ -3093,14 +3116,47 @@ declare class EllipsisSessions {
|
|
|
3093
3116
|
* Higher permission levels include lower levels: read < write < delete.
|
|
3094
3117
|
* Grant match patterns can further restrict access to individual resources.
|
|
3095
3118
|
*/
|
|
3096
|
-
update(id: string, options
|
|
3097
|
-
archived
|
|
3119
|
+
update(id: string, options?: {
|
|
3120
|
+
archived?: boolean | null;
|
|
3121
|
+
summary?: string | null;
|
|
3098
3122
|
}): Promise<S['SessionResponse']>;
|
|
3099
3123
|
/** Start a session and return a handle over it. */
|
|
3100
3124
|
run(options: Parameters<EllipsisSessions['start']>[0]): Promise<SessionHandle>;
|
|
3101
3125
|
/** A handle over an existing session. */
|
|
3102
3126
|
handle(sessionId: string): Promise<SessionHandle>;
|
|
3103
3127
|
}
|
|
3128
|
+
declare class EllipsisUserSettings {
|
|
3129
|
+
private readonly transport;
|
|
3130
|
+
constructor(transport: Transport);
|
|
3131
|
+
/**
|
|
3132
|
+
* Get User Settings
|
|
3133
|
+
*
|
|
3134
|
+
* Get the signed in user's own settings.
|
|
3135
|
+
*
|
|
3136
|
+
* Required permissions: read:user.
|
|
3137
|
+
* API key: Requires a CLI user token.
|
|
3138
|
+
* CLI user token: Supported.
|
|
3139
|
+
* Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
|
|
3140
|
+
* Higher permission levels include lower levels: read < write < delete.
|
|
3141
|
+
*/
|
|
3142
|
+
get(): Promise<S['UserSettings']>;
|
|
3143
|
+
/**
|
|
3144
|
+
* Patch User Settings
|
|
3145
|
+
*
|
|
3146
|
+
* Change the signed in user's own settings.
|
|
3147
|
+
*
|
|
3148
|
+
* Only the keys sent change, and the response is every setting.
|
|
3149
|
+
*
|
|
3150
|
+
* Required permissions: write:user.
|
|
3151
|
+
* API key: Requires a CLI user token.
|
|
3152
|
+
* CLI user token: Supported.
|
|
3153
|
+
* Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
|
|
3154
|
+
* Higher permission levels include lower levels: read < write < delete.
|
|
3155
|
+
*/
|
|
3156
|
+
update(options?: {
|
|
3157
|
+
web?: S['PatchUserSettingsWeb'] | null;
|
|
3158
|
+
}): Promise<S['UserSettings']>;
|
|
3159
|
+
}
|
|
3104
3160
|
declare class EllipsisUserTokens {
|
|
3105
3161
|
private readonly transport;
|
|
3106
3162
|
constructor(transport: Transport);
|
|
@@ -3127,6 +3183,7 @@ declare class EllipsisUserTokens {
|
|
|
3127
3183
|
}
|
|
3128
3184
|
declare class EllipsisUser {
|
|
3129
3185
|
private readonly transport;
|
|
3186
|
+
readonly settings: EllipsisUserSettings;
|
|
3130
3187
|
readonly tokens: EllipsisUserTokens;
|
|
3131
3188
|
constructor(transport: Transport);
|
|
3132
3189
|
}
|
package/dist/index.js
CHANGED
|
@@ -1626,6 +1626,24 @@ var EllipsisSessions = class {
|
|
|
1626
1626
|
const path = `/v1/sessions/${enc(id)}/git`;
|
|
1627
1627
|
return await this.transport.request("GET", path);
|
|
1628
1628
|
}
|
|
1629
|
+
/**
|
|
1630
|
+
* Get Session Image
|
|
1631
|
+
*
|
|
1632
|
+
* Return an image sent with a message to the session.
|
|
1633
|
+
*
|
|
1634
|
+
* Each message lists its images, with their IDs, in `images`.
|
|
1635
|
+
*
|
|
1636
|
+
* Required permissions: read:sessions.
|
|
1637
|
+
* API key: Supported.
|
|
1638
|
+
* CLI user token: Supported.
|
|
1639
|
+
* Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
|
|
1640
|
+
* Higher permission levels include lower levels: read < write < delete.
|
|
1641
|
+
* Grant match patterns can further restrict access to individual resources.
|
|
1642
|
+
*/
|
|
1643
|
+
async image(session_id, id) {
|
|
1644
|
+
const path = `/v1/sessions/${enc(session_id)}/images/${enc(id)}`;
|
|
1645
|
+
return await this.transport.request("GET", path);
|
|
1646
|
+
}
|
|
1629
1647
|
/**
|
|
1630
1648
|
* List Sessions
|
|
1631
1649
|
*
|
|
@@ -1670,6 +1688,29 @@ var EllipsisSessions = class {
|
|
|
1670
1688
|
const path = `/v1/sessions/${enc(id)}/metrics`;
|
|
1671
1689
|
return await this.transport.request("GET", path);
|
|
1672
1690
|
}
|
|
1691
|
+
/**
|
|
1692
|
+
* Get Session Proxy
|
|
1693
|
+
*
|
|
1694
|
+
* The requests the session's environment sent to GitHub through
|
|
1695
|
+
* Ellipsis, newest first. Each is one `proxy_requests` row as stored.
|
|
1696
|
+
*
|
|
1697
|
+
* Required permissions: read:sessions.
|
|
1698
|
+
* API key: Supported.
|
|
1699
|
+
* CLI user token: Supported.
|
|
1700
|
+
* Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own session.
|
|
1701
|
+
* Higher permission levels include lower levels: read < write < delete.
|
|
1702
|
+
* Grant match patterns can further restrict access to individual resources.
|
|
1703
|
+
*/
|
|
1704
|
+
async proxy(id, options = {}) {
|
|
1705
|
+
const path = `/v1/sessions/${enc(id)}/proxy`;
|
|
1706
|
+
const query = buildQuery({ limit: options.limit, cursor: options.cursor });
|
|
1707
|
+
const response = await this.transport.request("GET", path, { query });
|
|
1708
|
+
return new Page(
|
|
1709
|
+
response,
|
|
1710
|
+
"proxy_requests",
|
|
1711
|
+
(cursor) => this.proxy(id, { ...options, cursor })
|
|
1712
|
+
);
|
|
1713
|
+
}
|
|
1673
1714
|
/**
|
|
1674
1715
|
* Get Session Records
|
|
1675
1716
|
*
|
|
@@ -1801,7 +1842,7 @@ var EllipsisSessions = class {
|
|
|
1801
1842
|
/**
|
|
1802
1843
|
* Update Session
|
|
1803
1844
|
*
|
|
1804
|
-
* Archive or unarchive a session and return it.
|
|
1845
|
+
* Archive or unarchive a session, or set its summary, and return it.
|
|
1805
1846
|
*
|
|
1806
1847
|
* Set archived to true to record the current server time and the
|
|
1807
1848
|
* authenticated GitHub user. API-key requests record no user.
|
|
@@ -1819,6 +1860,11 @@ var EllipsisSessions = class {
|
|
|
1819
1860
|
* take messages again. 409 `session_superseded` when a newer session
|
|
1820
1861
|
* now answers the same thread.
|
|
1821
1862
|
*
|
|
1863
|
+
* Set summary to name the session. The summary's source becomes
|
|
1864
|
+
* `user`, and Ellipsis never replaces it with a generated one. With
|
|
1865
|
+
* both fields, the archive change applies first, and a refused
|
|
1866
|
+
* archive change leaves the summary as it was.
|
|
1867
|
+
*
|
|
1822
1868
|
* Changes are delivered to session and session-list streams.
|
|
1823
1869
|
*
|
|
1824
1870
|
* Required permissions: write:sessions.
|
|
@@ -1828,9 +1874,9 @@ var EllipsisSessions = class {
|
|
|
1828
1874
|
* Higher permission levels include lower levels: read < write < delete.
|
|
1829
1875
|
* Grant match patterns can further restrict access to individual resources.
|
|
1830
1876
|
*/
|
|
1831
|
-
async update(id, options) {
|
|
1877
|
+
async update(id, options = {}) {
|
|
1832
1878
|
const path = `/v1/sessions/${enc(id)}`;
|
|
1833
|
-
const body = buildBody({ archived: options.archived });
|
|
1879
|
+
const body = buildBody({ archived: options.archived, summary: options.summary });
|
|
1834
1880
|
return await this.transport.request("PUT", path, { body });
|
|
1835
1881
|
}
|
|
1836
1882
|
// ---- lifecycle sugar (hand-written layer over the generated core) ----
|
|
@@ -1845,6 +1891,45 @@ var EllipsisSessions = class {
|
|
|
1845
1891
|
return new SessionHandle(this, response.session);
|
|
1846
1892
|
}
|
|
1847
1893
|
};
|
|
1894
|
+
var EllipsisUserSettings = class {
|
|
1895
|
+
constructor(transport) {
|
|
1896
|
+
this.transport = transport;
|
|
1897
|
+
}
|
|
1898
|
+
transport;
|
|
1899
|
+
/**
|
|
1900
|
+
* Get User Settings
|
|
1901
|
+
*
|
|
1902
|
+
* Get the signed in user's own settings.
|
|
1903
|
+
*
|
|
1904
|
+
* Required permissions: read:user.
|
|
1905
|
+
* API key: Requires a CLI user token.
|
|
1906
|
+
* CLI user token: Supported.
|
|
1907
|
+
* Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
|
|
1908
|
+
* Higher permission levels include lower levels: read < write < delete.
|
|
1909
|
+
*/
|
|
1910
|
+
async get() {
|
|
1911
|
+
const path = "/v1/user/settings";
|
|
1912
|
+
return await this.transport.request("GET", path);
|
|
1913
|
+
}
|
|
1914
|
+
/**
|
|
1915
|
+
* Patch User Settings
|
|
1916
|
+
*
|
|
1917
|
+
* Change the signed in user's own settings.
|
|
1918
|
+
*
|
|
1919
|
+
* Only the keys sent change, and the response is every setting.
|
|
1920
|
+
*
|
|
1921
|
+
* Required permissions: write:user.
|
|
1922
|
+
* API key: Requires a CLI user token.
|
|
1923
|
+
* CLI user token: Supported.
|
|
1924
|
+
* Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
|
|
1925
|
+
* Higher permission levels include lower levels: read < write < delete.
|
|
1926
|
+
*/
|
|
1927
|
+
async update(options = {}) {
|
|
1928
|
+
const path = "/v1/user/settings";
|
|
1929
|
+
const body = buildBody({ web: options.web });
|
|
1930
|
+
return await this.transport.request("PATCH", path, { body });
|
|
1931
|
+
}
|
|
1932
|
+
};
|
|
1848
1933
|
var EllipsisUserTokens = class {
|
|
1849
1934
|
constructor(transport) {
|
|
1850
1935
|
this.transport = transport;
|
|
@@ -1880,9 +1965,11 @@ var EllipsisUserTokens = class {
|
|
|
1880
1965
|
var EllipsisUser = class {
|
|
1881
1966
|
constructor(transport) {
|
|
1882
1967
|
this.transport = transport;
|
|
1968
|
+
this.settings = new EllipsisUserSettings(transport);
|
|
1883
1969
|
this.tokens = new EllipsisUserTokens(transport);
|
|
1884
1970
|
}
|
|
1885
1971
|
transport;
|
|
1972
|
+
settings;
|
|
1886
1973
|
tokens;
|
|
1887
1974
|
};
|
|
1888
1975
|
var EllipsisVmExecutions = class {
|
package/dist/store/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { s as CodexAgentMessage,
|
|
1
|
+
import { s as CodexAgentMessage, cS as SessionRecord, N as CodexFileChangeItem, L as CodexEvent, _ as CodexMcpToolCallItem, cg as SdkRecord, ct as Session, d5 as StreamFrame } from '../types-Dwyd1Aud.js';
|
|
2
2
|
|
|
3
3
|
type WorkPhase = 'queued' | 'preparing' | 'starting' | 'working';
|
|
4
4
|
interface MessageTiming {
|
|
@@ -192,11 +192,17 @@ type EntryBody = {
|
|
|
192
192
|
};
|
|
193
193
|
declare function isWorkFold(item: TranscriptItem): boolean;
|
|
194
194
|
declare function reasoningSummaryTitle(summary: string): string;
|
|
195
|
-
declare function
|
|
195
|
+
declare function harnessName(session: {
|
|
196
|
+
claude_code?: unknown;
|
|
197
|
+
codex?: unknown;
|
|
198
|
+
gemini?: unknown;
|
|
199
|
+
}): string | null;
|
|
200
|
+
declare function entryBody(entry: LedgerEntry, { live, now, liveText, liveSummary, harness, }: {
|
|
196
201
|
live: boolean;
|
|
197
202
|
now: number;
|
|
198
203
|
liveText?: string;
|
|
199
204
|
liveSummary?: string;
|
|
205
|
+
harness?: string | null;
|
|
200
206
|
}): EntryBody;
|
|
201
207
|
|
|
202
208
|
interface ToolActivity {
|
|
@@ -252,4 +258,4 @@ declare class SessionTranscriptStore {
|
|
|
252
258
|
ingest: (rawFrame: StreamFrame) => void;
|
|
253
259
|
}
|
|
254
260
|
|
|
255
|
-
export { BRANCH_GLYPH, type ChatNode, type ChatToolNode, type ChatTurn, type EntryBody, type EnvironmentLogKind, type EnvironmentLogLine, type EnvironmentState, type EventToItemsOptions, type ItemKind, LIVE_GLYPH, type LedgerEntry, type MessageProgress, type MessageTiming, type PlacedItem, type RecordSlice, type SessionTranscriptSnapshot, SessionTranscriptStore, StreamFrame, type ToolActivity, type TranscriptItem, USER_BAR, type WorkPhase, activitySummary, awaitingAgentPhase, cacheTierLabel, chatTurnsToItems, clampLines, claudePayload, codexChangedPaths, codexEventToItems, codexMcpToolName, codexSubagentThreads, collapseToolRuns, deliveredUnechoedSends, deriveEnvironmentState, emptySessionTranscriptSnapshot, entryBody, entrySeconds, environmentOutputLine, environmentOutputLines, environmentOutputStep, environmentPhaseLabel, environmentSummary, eventToItems, foldCosts, foldGutter, foldRun, formatDuration, groupRecordsToChatTurns, gutterFor, hookPhrase, humanDuration, isCodexSubagentRecord, isConnectVisibleRecord, isConversationOver, isFoldable, isToolActivity, isToolFold, isWorkFold, lastLines, layOutItems, lifecycleText, messageEndedText, oneLine, pendingToolCalls, reasoningSummaryTitle, recordSlice, recordToItems, resultCostUsd, seedTranscriptStore, sessionLogText, splitLedger, startupHeadline, startupSettled, statusActivityText, summarizeToolInput, tailLines, toolActivities, toolResultText, toolRunMembers };
|
|
261
|
+
export { BRANCH_GLYPH, type ChatNode, type ChatToolNode, type ChatTurn, type EntryBody, type EnvironmentLogKind, type EnvironmentLogLine, type EnvironmentState, type EventToItemsOptions, type ItemKind, LIVE_GLYPH, type LedgerEntry, type MessageProgress, type MessageTiming, type PlacedItem, type RecordSlice, type SessionTranscriptSnapshot, SessionTranscriptStore, StreamFrame, type ToolActivity, type TranscriptItem, USER_BAR, type WorkPhase, activitySummary, awaitingAgentPhase, cacheTierLabel, chatTurnsToItems, clampLines, claudePayload, codexChangedPaths, codexEventToItems, codexMcpToolName, codexSubagentThreads, collapseToolRuns, deliveredUnechoedSends, deriveEnvironmentState, emptySessionTranscriptSnapshot, entryBody, entrySeconds, environmentOutputLine, environmentOutputLines, environmentOutputStep, environmentPhaseLabel, environmentSummary, eventToItems, foldCosts, foldGutter, foldRun, formatDuration, groupRecordsToChatTurns, gutterFor, harnessName, hookPhrase, humanDuration, isCodexSubagentRecord, isConnectVisibleRecord, isConversationOver, isFoldable, isToolActivity, isToolFold, isWorkFold, lastLines, layOutItems, lifecycleText, messageEndedText, oneLine, pendingToolCalls, reasoningSummaryTitle, recordSlice, recordToItems, resultCostUsd, seedTranscriptStore, sessionLogText, splitLedger, startupHeadline, startupSettled, statusActivityText, summarizeToolInput, tailLines, toolActivities, toolResultText, toolRunMembers };
|
package/dist/store/index.js
CHANGED
|
@@ -1829,11 +1829,18 @@ function reasoningSummaryTitle(summary) {
|
|
|
1829
1829
|
const title = line.replace(/^#{1,6}\s+/, "").replace(/^[*_`]+|[*_`]+$/g, "").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").trim();
|
|
1830
1830
|
return title.length > 120 ? `${title.slice(0, 119).trimEnd()}\u2026` : title;
|
|
1831
1831
|
}
|
|
1832
|
+
function harnessName(session) {
|
|
1833
|
+
if (session.claude_code) return "Claude Code";
|
|
1834
|
+
if (session.codex) return "Codex";
|
|
1835
|
+
if (session.gemini) return "Gemini CLI";
|
|
1836
|
+
return null;
|
|
1837
|
+
}
|
|
1832
1838
|
function entryBody(entry, {
|
|
1833
1839
|
live,
|
|
1834
1840
|
now,
|
|
1835
1841
|
liveText = "",
|
|
1836
|
-
liveSummary = ""
|
|
1842
|
+
liveSummary = "",
|
|
1843
|
+
harness = null
|
|
1837
1844
|
}) {
|
|
1838
1845
|
live = live && (entry.progress === void 0 || entry.progress.phase !== null);
|
|
1839
1846
|
const raw = chatTurnsToItems(entry.turns);
|
|
@@ -1847,7 +1854,7 @@ function entryBody(entry, {
|
|
|
1847
1854
|
const header = {
|
|
1848
1855
|
key,
|
|
1849
1856
|
kind: "summary",
|
|
1850
|
-
text: live ? phase === "preparing" ? "Preparing environment" : phase === "starting" ?
|
|
1857
|
+
text: live ? phase === "preparing" ? "Preparing environment" : phase === "starting" ? `Starting ${harness ?? "agent"}` : phase === "queued" ? "Queued" : reasoningSummaryTitle(liveSummary) || "Working" : seconds == null ? "Session startup" : `Worked for ${humanDuration(seconds)}`,
|
|
1851
1858
|
spaceBefore: true,
|
|
1852
1859
|
...entry.cancelled || entry.turns.some((turn) => turn.isError) ? { isError: true } : {},
|
|
1853
1860
|
...live ? { loading: true } : {}
|
|
@@ -2173,6 +2180,7 @@ export {
|
|
|
2173
2180
|
formatDuration,
|
|
2174
2181
|
groupRecordsToChatTurns,
|
|
2175
2182
|
gutterFor,
|
|
2183
|
+
harnessName,
|
|
2176
2184
|
hookPhrase,
|
|
2177
2185
|
humanDuration,
|
|
2178
2186
|
isCodexSubagentRecord,
|
package/dist/stream/index.d.ts
CHANGED