@nimbalyst/extension-sdk 0.6.0 → 0.7.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/CHANGELOG.md +17 -0
- package/LICENSE +21 -0
- package/README.md +1 -1
- package/dist/__tests__/buildEmitStability.test.js +1 -1
- package/dist/agents/AgentProtocol.d.ts +8 -1
- package/dist/agents/AgentProtocol.d.ts.map +1 -1
- package/dist/manifestValidation.d.ts.map +1 -1
- package/dist/manifestValidation.js +1 -0
- package/dist/types/backendPanels.d.ts +27 -0
- package/dist/types/backendPanels.d.ts.map +1 -0
- package/dist/types/backendPanels.js +12 -0
- package/dist/types/backendSessions.d.ts +262 -0
- package/dist/types/backendSessions.d.ts.map +1 -0
- package/dist/types/backendSessions.js +21 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/panel.d.ts +91 -0
- package/dist/types/panel.d.ts.map +1 -1
- package/dist/types/permissions.d.ts +1 -1
- package/dist/types/permissions.d.ts.map +1 -1
- package/package.json +11 -12
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,7 @@ The SDK is versioned independently of the Nimbalyst app. Each release declares i
|
|
|
8
8
|
|
|
9
9
|
| SDK version | Minimum Nimbalyst app version |
|
|
10
10
|
| --- | --- |
|
|
11
|
+
| 0.7.0 | 0.79.0 |
|
|
11
12
|
| 0.6.0 | 0.78.0 |
|
|
12
13
|
| 0.5.0 | 0.70.0 |
|
|
13
14
|
| 0.4.0 | 0.70.0 |
|
|
@@ -20,6 +21,22 @@ The SDK is versioned independently of the Nimbalyst app. Each release declares i
|
|
|
20
21
|
|
|
21
22
|
## [Unreleased]
|
|
22
23
|
|
|
24
|
+
## [0.7.0] - 2026-10-09
|
|
25
|
+
|
|
26
|
+
Requires Nimbalyst 0.79.0.
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- `BackendSessionsService` lets an extension backend create and own agent sessions and workstreams, send prompts, read status, results and usage, notify the user, and react when a session settles; it needs the new `ai-sessions` permission.
|
|
31
|
+
- Backend extensions can define MCP tools (`BackendMcpToolDefinition`), and panels call them with `PanelHost.callBackendTool()`.
|
|
32
|
+
- `PanelHost.setGutterBadge()` and `BackendPanelsService` show a count or warning badge on a panel's gutter icon.
|
|
33
|
+
- `PanelHost.setPanes()` and `onPaneToggle()` give a panel resizable, hideable left and right panes like the built-in modes, and `PanelHostComponents` exposes the host's session transcript.
|
|
34
|
+
- Agent usage events can report `cache_read_input_tokens` and `cache_creation_input_tokens` separately from uncached input.
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- The `yjs` peer dependency is pinned to 13.6.32, the version the app ships, so an extension cannot load a second copy.
|
|
39
|
+
|
|
23
40
|
## [0.6.0] - 2026-09-14
|
|
24
41
|
|
|
25
42
|
Requires Nimbalyst 0.78.0, available on the alpha channel at publication, for the complete host API including native screenshots.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-2026 Nimbalyst Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -28,6 +28,6 @@ describe('extension-sdk build emit stability', () => {
|
|
|
28
28
|
it('keeps a clean build available for publishing', () => {
|
|
29
29
|
const { scripts } = readJsonc('package.json');
|
|
30
30
|
expect(scripts['build:clean']).toMatch(/rmSync/);
|
|
31
|
-
expect(scripts.prepublishOnly).toBe('
|
|
31
|
+
expect(scripts.prepublishOnly).toBe('pnpm run build:clean');
|
|
32
32
|
});
|
|
33
33
|
});
|
|
@@ -165,11 +165,18 @@ export interface ProtocolEvent {
|
|
|
165
165
|
};
|
|
166
166
|
/** Error message (for 'error' events) */
|
|
167
167
|
error?: string;
|
|
168
|
-
/**
|
|
168
|
+
/**
|
|
169
|
+
* Token usage (for 'usage' or 'complete' events). When the provider reports a
|
|
170
|
+
* prompt-cache split, `input_tokens` is uncached input only and the cache
|
|
171
|
+
* reads/writes go in their own fields (Anthropic's shape), so the three input
|
|
172
|
+
* counts never overlap. Omit the cache fields when the provider has no split.
|
|
173
|
+
*/
|
|
169
174
|
usage?: {
|
|
170
175
|
input_tokens: number;
|
|
171
176
|
output_tokens: number;
|
|
172
177
|
total_tokens: number;
|
|
178
|
+
cache_read_input_tokens?: number;
|
|
179
|
+
cache_creation_input_tokens?: number;
|
|
173
180
|
};
|
|
174
181
|
/** Current context fill tokens for this turn (provider-reported snapshot) */
|
|
175
182
|
contextFillTokens?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentProtocol.d.ts","sourceRoot":"","sources":["../../src/agents/AgentProtocol.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AgentProtocol.d.ts","sourceRoot":"","sources":["../../src/agents/AgentProtocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifestValidation.d.ts","sourceRoot":"","sources":["../src/manifestValidation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;GAQG;AACH,eAAO,MAAM,iCAAiC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"manifestValidation.d.ts","sourceRoot":"","sources":["../src/manifestValidation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;GAQG;AACH,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAwCnD,MAAM,WAAW,4BAA4B;IAC3C,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,OAAO,GACtB,4BAA4B,EAAE,CAoKhC;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,OAAO,GACtB,IAAI,CAYN;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,OAAO,GACX,qBAAqB,EAAE,CAazB;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAW5E;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,OAAO,EACzB,cAAc,EAAE,OAAO,GACtB,4BAA4B,EAAE,CAgMhC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,OAAO,EACzB,cAAc,EAAE,OAAO,GACtB,IAAI,CAYN"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend-module panel API: `ctx.services.panels`.
|
|
3
|
+
*
|
|
4
|
+
* Lets a backend module update its own panels' gutter buttons while the panel
|
|
5
|
+
* is not mounted (a fullscreen panel unmounts when the user leaves it), so an
|
|
6
|
+
* event the module sees in the background (a new flag, a budget crossing)
|
|
7
|
+
* reaches the gutter without the user reopening the panel.
|
|
8
|
+
*
|
|
9
|
+
* No permission is required: the only thing a module can change is the badge
|
|
10
|
+
* on a panel its own manifest declares.
|
|
11
|
+
*/
|
|
12
|
+
export type PanelGutterBadgeTone = 'default' | 'warning';
|
|
13
|
+
export interface BackendPanelsService {
|
|
14
|
+
/**
|
|
15
|
+
* Show a badge on one of this extension's panel gutter buttons, in the
|
|
16
|
+
* windows showing this module's workspace. Same values as the panel's own
|
|
17
|
+
* `host.setGutterBadge`: `null` clears, `0` shows a dot, a positive number
|
|
18
|
+
* shows the count. Whichever of the two writes last wins.
|
|
19
|
+
*
|
|
20
|
+
* `panelId` is the id from this extension's manifest `contributions.panels`
|
|
21
|
+
* (not prefixed with the extension id). Rejects for any other id.
|
|
22
|
+
*/
|
|
23
|
+
setGutterBadge(panelId: string, value: number | null, options?: {
|
|
24
|
+
tone?: PanelGutterBadgeTone;
|
|
25
|
+
}): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=backendPanels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backendPanels.d.ts","sourceRoot":"","sources":["../../src/types/backendPanels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;OAQG;IACH,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,oBAAoB,CAAA;KAAE,GACxC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend-module panel API: `ctx.services.panels`.
|
|
3
|
+
*
|
|
4
|
+
* Lets a backend module update its own panels' gutter buttons while the panel
|
|
5
|
+
* is not mounted (a fullscreen panel unmounts when the user leaves it), so an
|
|
6
|
+
* event the module sees in the background (a new flag, a budget crossing)
|
|
7
|
+
* reaches the gutter without the user reopening the panel.
|
|
8
|
+
*
|
|
9
|
+
* No permission is required: the only thing a module can change is the badge
|
|
10
|
+
* on a panel its own manifest declares.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend-module session API and tool call context.
|
|
3
|
+
*
|
|
4
|
+
* These types describe what a privileged backend module (see
|
|
5
|
+
* `BackendModuleContribution` in `./permissions`) receives from the host when
|
|
6
|
+
* it drives AI agent sessions:
|
|
7
|
+
*
|
|
8
|
+
* - `BackendToolCallContext`: passed to a backend MCP tool handler as
|
|
9
|
+
* `ctx.call`, so the handler knows which session called it.
|
|
10
|
+
* - `BackendSessionsService`: `ctx.services.sessions`, gated by the
|
|
11
|
+
* `ai-sessions` permission. Every call is scoped by the host to the
|
|
12
|
+
* calling module's extension and bound workspace; a module can only read
|
|
13
|
+
* or drive sessions its own extension owns.
|
|
14
|
+
* - `BackendMcpToolDefinition`: the shape passed to
|
|
15
|
+
* `ctx.services.registerMcpTools`, including `panelOnly`.
|
|
16
|
+
*
|
|
17
|
+
* Ownership lives in the session row's metadata (`sessionOwner`), written at
|
|
18
|
+
* creation. Sessions an owned session spawns (`spawn_session`, `create_session`,
|
|
19
|
+
* a child created under it in the UI) inherit the owner, but not the directive.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Which extension owns a session, and under what key. `key` is the owner's own
|
|
23
|
+
* grouping id (for example a member slug); the host never interprets it.
|
|
24
|
+
*/
|
|
25
|
+
export interface SessionOwner {
|
|
26
|
+
extensionId: string;
|
|
27
|
+
key: string;
|
|
28
|
+
/**
|
|
29
|
+
* When true, an owned child's settle does NOT queue a `[Child Session
|
|
30
|
+
* Update]` prompt on the session that spawned it and does not re-drive that
|
|
31
|
+
* session. The owner gets the settle through `sessions.onSettled` instead.
|
|
32
|
+
*/
|
|
33
|
+
routeChildUpdatesToOwner?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Identity of the caller of a backend MCP tool. Present on `ctx.call` when the
|
|
37
|
+
* method was invoked as a tool; absent for plain RPC calls.
|
|
38
|
+
*/
|
|
39
|
+
export interface BackendToolCallContext {
|
|
40
|
+
/** Calling AI session, or null when the call did not come from a session (panel, voice). */
|
|
41
|
+
sessionId: string | null;
|
|
42
|
+
/** Workspace the module is bound to. */
|
|
43
|
+
workspacePath: string;
|
|
44
|
+
/**
|
|
45
|
+
* The calling session's owner, populated ONLY when that session is owned by
|
|
46
|
+
* this same extension. Null for unowned sessions and for sessions another
|
|
47
|
+
* extension owns.
|
|
48
|
+
*/
|
|
49
|
+
sessionOwner: SessionOwner | null;
|
|
50
|
+
/** Where the call came from. */
|
|
51
|
+
caller: 'agent' | 'panel' | 'voice';
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* One tool passed to `ctx.services.registerMcpTools`. The advertised name is
|
|
55
|
+
* namespaced by the host as `<extension short name>.<name>`; `name` is also the
|
|
56
|
+
* backend method the host invokes.
|
|
57
|
+
*/
|
|
58
|
+
export interface BackendMcpToolDefinition {
|
|
59
|
+
name: string;
|
|
60
|
+
description?: string;
|
|
61
|
+
inputSchema?: unknown;
|
|
62
|
+
/** Also expose the tool to the voice agent. Ignored when `panelOnly` is set. */
|
|
63
|
+
voiceAgent?: boolean;
|
|
64
|
+
scope?: 'global' | 'editor';
|
|
65
|
+
/**
|
|
66
|
+
* Callable only from this extension's own renderer via `callBackendTool`.
|
|
67
|
+
* The tool is not listed to agents or the voice agent, and an agent call to
|
|
68
|
+
* it is rejected.
|
|
69
|
+
*/
|
|
70
|
+
panelOnly?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Which agent sessions see the tool. `'all'` (default) lists it to every
|
|
73
|
+
* session in the workspace. `'owned-sessions'` lists it only to sessions this
|
|
74
|
+
* extension owns (`metadata.sessionOwner.extensionId`, inherited by spawned
|
|
75
|
+
* descendants); any other session's call is rejected as an unknown tool, and
|
|
76
|
+
* the voice agent never sees it. Use it for tools that only make sense inside
|
|
77
|
+
* the extension's own sessions, so they cost other sessions no context.
|
|
78
|
+
*/
|
|
79
|
+
audience?: 'all' | 'owned-sessions';
|
|
80
|
+
}
|
|
81
|
+
/** Session lifecycle states as stored by the host. */
|
|
82
|
+
export type OwnedSessionStatus = 'idle' | 'running' | 'waiting_for_input' | 'error' | 'interrupted';
|
|
83
|
+
export interface CreateOwnedSessionOptions {
|
|
84
|
+
/** Owner key recorded in `sessionOwner.key`. The extension id is supplied by the host. */
|
|
85
|
+
ownerKey: string;
|
|
86
|
+
/** Session title. The session is treated as named, so it does not rename itself. */
|
|
87
|
+
name: string;
|
|
88
|
+
/** Agent provider id, e.g. `claude-code`, `openai-codex`. */
|
|
89
|
+
provider: string;
|
|
90
|
+
/** Model id, either `provider:model` or a bare model for `provider`. */
|
|
91
|
+
model: string;
|
|
92
|
+
/** Optional first prompt. Queued and dispatched immediately when present. */
|
|
93
|
+
prompt?: string;
|
|
94
|
+
/** Reasoning effort (`low` | `medium` | `high` | `xhigh` | `max`), clamped to the model. */
|
|
95
|
+
effortLevel?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Text appended to the session's system prompt, frozen at the first turn.
|
|
98
|
+
* `create` rejects it for providers that do not apply it: the chat
|
|
99
|
+
* providers (`claude`, `openai`, `lmstudio`), `claude-code-cli`, and
|
|
100
|
+
* extension-contributed agent providers.
|
|
101
|
+
*/
|
|
102
|
+
directive?: string;
|
|
103
|
+
/** Owned workstream container to file the session under (see `createWorkstream`). */
|
|
104
|
+
workstreamId?: string;
|
|
105
|
+
/**
|
|
106
|
+
* Owned session that logically spawned this one. Its settle routing follows
|
|
107
|
+
* `routeChildUpdatesToOwner`.
|
|
108
|
+
*/
|
|
109
|
+
createdBySessionId?: string;
|
|
110
|
+
/** Initial owner metadata bag. Only this extension can change it later. */
|
|
111
|
+
ownerMetadata?: Record<string, unknown>;
|
|
112
|
+
/** See `SessionOwner.routeChildUpdatesToOwner`. Inherited by descendants. */
|
|
113
|
+
routeChildUpdatesToOwner?: boolean;
|
|
114
|
+
}
|
|
115
|
+
export interface CreateOwnedWorkstreamOptions {
|
|
116
|
+
ownerKey: string;
|
|
117
|
+
name: string;
|
|
118
|
+
/** Provider recorded on the container row. Defaults to `claude-code`. */
|
|
119
|
+
provider?: string;
|
|
120
|
+
ownerMetadata?: Record<string, unknown>;
|
|
121
|
+
}
|
|
122
|
+
export interface OwnedSessionStatusResult {
|
|
123
|
+
sessionId: string;
|
|
124
|
+
status: OwnedSessionStatus;
|
|
125
|
+
title: string;
|
|
126
|
+
lastActivity: number | null;
|
|
127
|
+
updatedAt: number | null;
|
|
128
|
+
/** The session has an unanswered durable prompt (question, plan approval, permission). */
|
|
129
|
+
hasPendingPrompt: boolean;
|
|
130
|
+
/** Queued prompts not yet delivered. */
|
|
131
|
+
queuedPromptCount: number;
|
|
132
|
+
}
|
|
133
|
+
export interface OwnedSessionContextFill {
|
|
134
|
+
/** Tokens currently in the context window. */
|
|
135
|
+
tokens: number;
|
|
136
|
+
contextWindow: number;
|
|
137
|
+
}
|
|
138
|
+
export interface OwnedSessionResult {
|
|
139
|
+
sessionId: string;
|
|
140
|
+
status: OwnedSessionStatus;
|
|
141
|
+
/** Text of the last assistant turn, or null if the session has not answered. */
|
|
142
|
+
lastResponse: string | null;
|
|
143
|
+
errorMessage: string | null;
|
|
144
|
+
/** Current context fill as last reported by the provider; null before the first report. */
|
|
145
|
+
contextFill: OwnedSessionContextFill | null;
|
|
146
|
+
pendingPrompt: {
|
|
147
|
+
promptId: string;
|
|
148
|
+
promptType: string;
|
|
149
|
+
} | null;
|
|
150
|
+
editedFiles: string[];
|
|
151
|
+
}
|
|
152
|
+
export interface OwnedSessionSummary {
|
|
153
|
+
sessionId: string;
|
|
154
|
+
key: string;
|
|
155
|
+
sessionType: 'session' | 'workstream' | string;
|
|
156
|
+
title: string;
|
|
157
|
+
/** Owned workstream container this session is filed under, if any. */
|
|
158
|
+
workstreamId: string | null;
|
|
159
|
+
/** Session that spawned this one, if any. */
|
|
160
|
+
createdBySessionId: string | null;
|
|
161
|
+
status: OwnedSessionStatus;
|
|
162
|
+
hasPendingPrompt: boolean;
|
|
163
|
+
queuedPromptCount: number;
|
|
164
|
+
createdAt: number;
|
|
165
|
+
updatedAt: number;
|
|
166
|
+
ownerMetadata: Record<string, unknown>;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Token usage for one session over its whole lifetime, as persisted by the
|
|
170
|
+
* host (the same counters the session's usage display reads). `costUSD` is
|
|
171
|
+
* 0 when the provider does not report cost.
|
|
172
|
+
*
|
|
173
|
+
* The four token counters are disjoint: `inputTokens` is uncached input only,
|
|
174
|
+
* and cache reads/writes are counted separately (0 for providers that report
|
|
175
|
+
* no cache split, and for sessions recorded before the host stored them).
|
|
176
|
+
* `totalTokens` keeps its historical meaning, input + output without cache;
|
|
177
|
+
* budget over `allTokens` to count everything the session consumed.
|
|
178
|
+
*/
|
|
179
|
+
export interface OwnedSessionUsage {
|
|
180
|
+
inputTokens: number;
|
|
181
|
+
outputTokens: number;
|
|
182
|
+
totalTokens: number;
|
|
183
|
+
costUSD: number;
|
|
184
|
+
cacheReadInputTokens: number;
|
|
185
|
+
cacheCreationInputTokens: number;
|
|
186
|
+
/** inputTokens + outputTokens + cacheReadInputTokens + cacheCreationInputTokens. */
|
|
187
|
+
allTokens: number;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Usage is session-granular: a session counts in full when its last activity
|
|
191
|
+
* is at or after `since`. The host keeps no per-turn usage history. For an
|
|
192
|
+
* exact time window, record `OwnedSessionSettledEvent.tokenUsage` deltas in
|
|
193
|
+
* the module's own storage.
|
|
194
|
+
*/
|
|
195
|
+
export interface OwnedUsageReport {
|
|
196
|
+
since: number;
|
|
197
|
+
totals: OwnedSessionUsage;
|
|
198
|
+
sessions: Array<OwnedSessionUsage & {
|
|
199
|
+
sessionId: string;
|
|
200
|
+
key: string;
|
|
201
|
+
lastActivity: number;
|
|
202
|
+
}>;
|
|
203
|
+
}
|
|
204
|
+
export type OwnedSessionSettleOutcome = 'completed' | 'error' | 'waiting' | 'interrupted';
|
|
205
|
+
/**
|
|
206
|
+
* Delivered to `onSettled` handlers. `completed` fires once the session's
|
|
207
|
+
* prompt queue is empty, not between queued prompts.
|
|
208
|
+
*/
|
|
209
|
+
export interface OwnedSessionSettledEvent {
|
|
210
|
+
sessionId: string;
|
|
211
|
+
ownerKey: string;
|
|
212
|
+
outcome: OwnedSessionSettleOutcome;
|
|
213
|
+
createdBySessionId: string | null;
|
|
214
|
+
workstreamId: string | null;
|
|
215
|
+
at: number;
|
|
216
|
+
/** The session's lifetime usage at settle time; diff consecutive events for per-turn usage. */
|
|
217
|
+
tokenUsage: OwnedSessionUsage;
|
|
218
|
+
}
|
|
219
|
+
export interface NotifyUserOptions {
|
|
220
|
+
/** Owned session the notification is about; clicking it opens this session. */
|
|
221
|
+
sessionId: string;
|
|
222
|
+
title: string;
|
|
223
|
+
body: string;
|
|
224
|
+
/** `critical` also pushes to the user's phone. Defaults to `normal`. */
|
|
225
|
+
urgency?: 'low' | 'normal' | 'critical';
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* `ctx.services.sessions`. Requires the `ai-sessions` permission. Every method
|
|
229
|
+
* that takes a session id rejects sessions this extension does not own.
|
|
230
|
+
*/
|
|
231
|
+
export interface BackendSessionsService {
|
|
232
|
+
create(options: CreateOwnedSessionOptions): Promise<{
|
|
233
|
+
sessionId: string;
|
|
234
|
+
queuedPromptId: string | null;
|
|
235
|
+
}>;
|
|
236
|
+
createWorkstream(options: CreateOwnedWorkstreamOptions): Promise<{
|
|
237
|
+
workstreamId: string;
|
|
238
|
+
}>;
|
|
239
|
+
/** Queue a prompt; it is delivered when the session is idle. */
|
|
240
|
+
sendPrompt(sessionId: string, prompt: string): Promise<{
|
|
241
|
+
queuedPromptId: string;
|
|
242
|
+
}>;
|
|
243
|
+
getStatus(sessionId: string): Promise<OwnedSessionStatusResult>;
|
|
244
|
+
getResult(sessionId: string): Promise<OwnedSessionResult>;
|
|
245
|
+
/** Owned sessions in this workspace, optionally filtered to one owner key. Newest first. */
|
|
246
|
+
listOwned(options?: {
|
|
247
|
+
key?: string;
|
|
248
|
+
}): Promise<OwnedSessionSummary[]>;
|
|
249
|
+
/** Lifetime usage of owned sessions active at or after `since` (epoch ms). See `OwnedUsageReport`. */
|
|
250
|
+
getUsage(options: {
|
|
251
|
+
key?: string;
|
|
252
|
+
since: number;
|
|
253
|
+
}): Promise<OwnedUsageReport>;
|
|
254
|
+
/** Shallow-merge `patch` into the session's owner metadata bag. A `null` value deletes the key. */
|
|
255
|
+
updateOwnerMetadata(sessionId: string, patch: Record<string, unknown>): Promise<{
|
|
256
|
+
ownerMetadata: Record<string, unknown>;
|
|
257
|
+
}>;
|
|
258
|
+
notifyUser(options: NotifyUserOptions): Promise<void>;
|
|
259
|
+
/** Subscribe to settle events for sessions this extension owns in this workspace. Returns an unsubscribe. */
|
|
260
|
+
onSettled(handler: (event: OwnedSessionSettledEvent) => void): () => void;
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=backendSessions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backendSessions.d.ts","sourceRoot":"","sources":["../../src/types/backendSessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend-module session API and tool call context.
|
|
3
|
+
*
|
|
4
|
+
* These types describe what a privileged backend module (see
|
|
5
|
+
* `BackendModuleContribution` in `./permissions`) receives from the host when
|
|
6
|
+
* it drives AI agent sessions:
|
|
7
|
+
*
|
|
8
|
+
* - `BackendToolCallContext`: passed to a backend MCP tool handler as
|
|
9
|
+
* `ctx.call`, so the handler knows which session called it.
|
|
10
|
+
* - `BackendSessionsService`: `ctx.services.sessions`, gated by the
|
|
11
|
+
* `ai-sessions` permission. Every call is scoped by the host to the
|
|
12
|
+
* calling module's extension and bound workspace; a module can only read
|
|
13
|
+
* or drive sessions its own extension owns.
|
|
14
|
+
* - `BackendMcpToolDefinition`: the shape passed to
|
|
15
|
+
* `ctx.services.registerMcpTools`, including `panelOnly`.
|
|
16
|
+
*
|
|
17
|
+
* Ownership lives in the session row's metadata (`sessionOwner`), written at
|
|
18
|
+
* creation. Sessions an owned session spawns (`spawn_session`, `create_session`,
|
|
19
|
+
* a child created under it in the UI) inherit the owner, but not the directive.
|
|
20
|
+
*/
|
|
21
|
+
export {};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export * from './editor.js';
|
|
|
6
6
|
export * from './editors.js';
|
|
7
7
|
export * from './panel.js';
|
|
8
8
|
export * from './permissions.js';
|
|
9
|
+
export * from './backendSessions.js';
|
|
10
|
+
export * from './backendPanels.js';
|
|
9
11
|
export * from './theme.js';
|
|
10
12
|
export * from './collab.js';
|
|
11
13
|
export * from './comments.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC"}
|
package/dist/types/index.js
CHANGED
|
@@ -6,6 +6,8 @@ export * from './editor.js';
|
|
|
6
6
|
export * from './editors.js';
|
|
7
7
|
export * from './panel.js';
|
|
8
8
|
export * from './permissions.js';
|
|
9
|
+
export * from './backendSessions.js';
|
|
10
|
+
export * from './backendPanels.js';
|
|
9
11
|
export * from './theme.js';
|
|
10
12
|
export * from './collab.js';
|
|
11
13
|
export * from './comments.js';
|
package/dist/types/panel.d.ts
CHANGED
|
@@ -341,6 +341,97 @@ export interface PanelHost {
|
|
|
341
341
|
* version you tested against.
|
|
342
342
|
*/
|
|
343
343
|
readonly data: ExtensionDataAccess;
|
|
344
|
+
/**
|
|
345
|
+
* Call one of this extension's own backend-module MCP tools and return its
|
|
346
|
+
* parsed JSON result. Pass the namespaced tool name (`<extShort>.<tool>`,
|
|
347
|
+
* e.g. `example.panel_status`). The host injects this extension's id, so a
|
|
348
|
+
* panel can only reach tools its own backend module registered. Rejects if
|
|
349
|
+
* the tool errors or the module is not running.
|
|
350
|
+
*/
|
|
351
|
+
callBackendTool(toolName: string, args?: Record<string, unknown>): Promise<unknown>;
|
|
352
|
+
/**
|
|
353
|
+
* Host-rendered components a panel can mount inside its own layout.
|
|
354
|
+
*
|
|
355
|
+
* Present only when the extension declares `"ai": true` in
|
|
356
|
+
* `permissions` in manifest.json, because the session transcript lets the
|
|
357
|
+
* panel show any session in the workspace and send prompts to it.
|
|
358
|
+
*/
|
|
359
|
+
readonly components?: PanelHostComponents;
|
|
360
|
+
/**
|
|
361
|
+
* Show a badge on this panel's gutter button. `null` clears it, `0` shows a
|
|
362
|
+
* dot, a positive number shows the count. `tone: 'warning'` renders it in
|
|
363
|
+
* the warning color instead of the default.
|
|
364
|
+
*
|
|
365
|
+
* The host keeps the last value after the panel unmounts (a fullscreen panel
|
|
366
|
+
* unmounts when the user leaves it), and clears it when the extension is
|
|
367
|
+
* disabled or unloaded. A panel can only update it while it is mounted.
|
|
368
|
+
*/
|
|
369
|
+
setGutterBadge(value: number | null, options?: {
|
|
370
|
+
tone?: 'default' | 'warning';
|
|
371
|
+
}): void;
|
|
372
|
+
/**
|
|
373
|
+
* Declare the fullscreen panel's side panes so the host treats them like a
|
|
374
|
+
* built-in mode's: the title bar shows their toggle buttons, Toggle Sidebar
|
|
375
|
+
* and the right-pane toggle reach the panel, and re-clicking the gutter
|
|
376
|
+
* button toggles the left pane instead of closing the panel. Call again
|
|
377
|
+
* whenever a pane collapses or expands; `null` withdraws the declaration.
|
|
378
|
+
*
|
|
379
|
+
* The declaration only takes effect while an {@link onPaneToggle}
|
|
380
|
+
* subscription is live, and is dropped when the last one unsubscribes.
|
|
381
|
+
* Optional because older hosts do not implement it.
|
|
382
|
+
*/
|
|
383
|
+
setPanes?(panes: PanelPanes | null): void;
|
|
384
|
+
/**
|
|
385
|
+
* Called when the user toggles one of the declared panes from the host.
|
|
386
|
+
* The panel owns the state: flip it, then report it with {@link setPanes}.
|
|
387
|
+
*/
|
|
388
|
+
onPaneToggle?(callback: (side: PanelPaneSide) => void): () => void;
|
|
389
|
+
}
|
|
390
|
+
export type PanelPaneSide = 'left' | 'right';
|
|
391
|
+
/** One side pane of a fullscreen panel, as the host's toggle shows it. */
|
|
392
|
+
export interface PanelPaneState {
|
|
393
|
+
/** Names the pane in the toggle's tooltip, e.g. "Crew roster". */
|
|
394
|
+
label: string;
|
|
395
|
+
collapsed: boolean;
|
|
396
|
+
}
|
|
397
|
+
export interface PanelPanes {
|
|
398
|
+
left?: PanelPaneState;
|
|
399
|
+
right?: PanelPaneState;
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Props for {@link PanelHostComponents.SessionTranscript}.
|
|
403
|
+
*/
|
|
404
|
+
export interface PanelSessionTranscriptProps {
|
|
405
|
+
/**
|
|
406
|
+
* Session to render. The composer sends to this session, never to whichever
|
|
407
|
+
* session is active elsewhere in the window. Changing it remounts the
|
|
408
|
+
* transcript.
|
|
409
|
+
*/
|
|
410
|
+
sessionId: string;
|
|
411
|
+
/**
|
|
412
|
+
* Hide the message list and keep only the composer and pending prompts
|
|
413
|
+
* (permission requests, questions).
|
|
414
|
+
*/
|
|
415
|
+
collapseTranscript?: boolean;
|
|
416
|
+
/** Extra class names for the wrapper element (it fills its parent by default). */
|
|
417
|
+
className?: string;
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Components the host renders on behalf of a panel.
|
|
421
|
+
*
|
|
422
|
+
* @example
|
|
423
|
+
* ```tsx
|
|
424
|
+
* const Transcript = host.components?.SessionTranscript;
|
|
425
|
+
* return Transcript ? <Transcript sessionId={id} /> : null;
|
|
426
|
+
* ```
|
|
427
|
+
*/
|
|
428
|
+
export interface PanelHostComponents {
|
|
429
|
+
/**
|
|
430
|
+
* The full agent transcript for one session in this workspace, with its
|
|
431
|
+
* composer, queued prompts, and interactive prompts. File links open in the
|
|
432
|
+
* editor through the same path as {@link PanelHost.openFile}.
|
|
433
|
+
*/
|
|
434
|
+
SessionTranscript: ComponentType<PanelSessionTranscriptProps>;
|
|
344
435
|
}
|
|
345
436
|
/**
|
|
346
437
|
* Read-only data access surface exposed to extension panels.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/types/panel.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/types/panel.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export type PermissionRiskTier = 'low' | 'elevated' | 'high';
|
|
|
42
42
|
* Database access splits into read and write so extensions can declare
|
|
43
43
|
* least-privilege intent without composing two grants into one.
|
|
44
44
|
*/
|
|
45
|
-
export type ExtensionPermissionId = 'workspace-files' | 'nimbalyst-database-read' | 'nimbalyst-database-write' | 'secrets-read' | 'mcp-server-register';
|
|
45
|
+
export type ExtensionPermissionId = 'workspace-files' | 'nimbalyst-database-read' | 'nimbalyst-database-write' | 'secrets-read' | 'mcp-server-register' | 'ai-sessions';
|
|
46
46
|
/**
|
|
47
47
|
* Backend module runtime. The privileged host loads the module in one of two
|
|
48
48
|
* isolated runtimes. Choose based on workload:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/types/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,MAAM,qBAAqB,GAC7B,iBAAiB,GACjB,yBAAyB,GACzB,0BAA0B,GAC1B,cAAc,GACd,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/types/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,MAAM,qBAAqB,GAC7B,iBAAiB,GACjB,yBAAyB,GACzB,0BAA0B,GAC1B,cAAc,GACd,qBAAqB,GACrB,aAAa,CAAC;AAElB;;;;;;;;;;GAUG;AACH,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAEvE;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,yBAAyB;IACxC,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IAEX,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IAEd,8CAA8C;IAC9C,OAAO,EAAE,oBAAoB,CAAC;IAE9B;;;;;;;;;OASG;IACH,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAErC,uDAAuD;IACvD,UAAU,EAAE,uBAAuB,CAAC;CACrC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nimbalyst/extension-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "SDK for building Nimbalyst extensions",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"./dist/validate.js": "./dist/validate.browser.js"
|
|
18
18
|
},
|
|
19
19
|
"nimbalyst": {
|
|
20
|
-
"minAppVersion": "0.
|
|
20
|
+
"minAppVersion": "0.79.0"
|
|
21
21
|
},
|
|
22
22
|
"publishConfig": {
|
|
23
23
|
"access": "public"
|
|
@@ -71,13 +71,6 @@
|
|
|
71
71
|
"README.md",
|
|
72
72
|
"CHANGELOG.md"
|
|
73
73
|
],
|
|
74
|
-
"scripts": {
|
|
75
|
-
"build": "tsc",
|
|
76
|
-
"build:clean": "node -e \"fs.rmSync('dist',{recursive:true,force:true});fs.rmSync('.tsbuildinfo',{force:true})\" && tsc",
|
|
77
|
-
"dev": "tsc --watch",
|
|
78
|
-
"typecheck": "tsc --noEmit",
|
|
79
|
-
"prepublishOnly": "npm run build:clean"
|
|
80
|
-
},
|
|
81
74
|
"dependencies": {},
|
|
82
75
|
"peerDependencies": {
|
|
83
76
|
"react": "^18.2.0 || ^19.0.0",
|
|
@@ -114,7 +107,7 @@
|
|
|
114
107
|
"typescript": "^5.0.0",
|
|
115
108
|
"vite": "^7.1.12",
|
|
116
109
|
"@vitejs/plugin-react": "^5.1.2",
|
|
117
|
-
"yjs": "
|
|
110
|
+
"yjs": "13.6.32",
|
|
118
111
|
"y-protocols": "^1.0.5"
|
|
119
112
|
},
|
|
120
113
|
"keywords": [
|
|
@@ -125,5 +118,11 @@
|
|
|
125
118
|
"custom-editor",
|
|
126
119
|
"ai-tools"
|
|
127
120
|
],
|
|
128
|
-
"license": "MIT"
|
|
129
|
-
|
|
121
|
+
"license": "MIT",
|
|
122
|
+
"scripts": {
|
|
123
|
+
"build": "tsc",
|
|
124
|
+
"build:clean": "node -e \"fs.rmSync('dist',{recursive:true,force:true});fs.rmSync('.tsbuildinfo',{force:true})\" && tsc",
|
|
125
|
+
"dev": "tsc --watch",
|
|
126
|
+
"typecheck": "tsc --noEmit"
|
|
127
|
+
}
|
|
128
|
+
}
|