@ottimis/jack-provider-sdk 0.10.0 → 0.13.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.
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
package/dist/sandbox.d.ts CHANGED
@@ -30,36 +30,36 @@
30
30
  * free to host wherever they like.
31
31
  */
32
32
  /**
33
- * Mount a provider-side config artifact (directory or file) into the
34
- * container. Most providers persist auth + sessions + per-user settings in
35
- * a dotfile dir under `$HOME` (Claude `~/.claude`, Codex `~/.codex`,
36
- * Gemini `~/.gemini`); some additionally need a sibling config file
37
- * mounted alongside (Claude `~/.claude.json` is a good example — the CLI
38
- * reads it as the "main config" separate from the dotfile dir). The host
39
- * mounts each entry into the container at {@link containerPath} so the CLI
40
- * inside the container has access to the same state as the host.
33
+ * Mount a named Docker volume into the container at {@link containerPath}.
34
+ * The pattern Anthropic recommends for CLI config dirs (see
35
+ * https://code.claude.com/docs/en/devcontainer#persist-authentication-and-settings-across-rebuilds):
36
+ * the volume is auto-created on demand, persists across container
37
+ * restarts, and isolates writes from the host filesystem entirely.
38
+ * Best fit for `~/.claude`, `~/.codex`, `~/.gemini` since they hold auth
39
+ * tokens, session JSONLs, and CLI-mutated settings.
41
40
  *
42
- * Read-only is recommended whenever the provider's CLI doesn't genuinely
43
- * need to mutate state. Set `readOnly: false` when the CLI writes back —
44
- * Claude writes session-env, project history, MCP additions; Codex appends
45
- * thread JSONL; etc. The trade-off when RW is enabled: sandbox sessions
46
- * share the same on-disk state as the host CLI (history, project state,
47
- * MCP edits). If you need credential isolation, build a copy-on-write
48
- * scratch volume — the {@link SandboxApi} contract doesn't impose one.
41
+ * Read-only is recommended whenever the CLI doesn't genuinely need to
42
+ * mutate state. Set `readOnly: false` when the CLI writes back — Claude
43
+ * writes session-env, project history, MCP additions; Codex appends
44
+ * thread JSONL; etc.
49
45
  */
50
46
  export type SandboxConfigMount = {
51
47
  /**
52
- * Absolute host path. Provider implementations resolve this lazily call
53
- * `os.homedir()` + `path.join(...)` at the time `configMounts` is read,
54
- * not at module-load time, so test environments and per-process HOME
55
- * overrides work correctly. May point to either a directory or a single
56
- * file — Docker's bind mount accepts both.
48
+ * Docker volume name. The host auto-creates the volume if missing
49
+ * (via `docker volume create <name>`). Use a stable, namespaced name
50
+ * like `jack-sandbox-<provider>-config` so volumes can be inspected
51
+ * / pruned predictably from the Docker CLI.
52
+ *
53
+ * Volumes are NOT scoped per session by default — sharing one volume
54
+ * across sandbox sessions of the same provider is the common case
55
+ * and matches Anthropic's reference. If you need per-session
56
+ * isolation, embed the session id in the name.
57
57
  */
58
- hostPath: string;
58
+ readonly volumeName: string;
59
59
  /** Absolute container path. */
60
- containerPath: string;
60
+ readonly containerPath: string;
61
61
  /** When `true`, the host adds `:ro` to the bind. */
62
- readOnly: boolean;
62
+ readonly readOnly: boolean;
63
63
  };
64
64
  /**
65
65
  * Provider-declared Docker sandbox capability. Optional on
@@ -112,5 +112,50 @@ export interface SandboxApi {
112
112
  * sandbox even when the user has it on globally.
113
113
  */
114
114
  envExtras?(): Record<string, string>;
115
+ /**
116
+ * Optional spawn-time setup hook. Runs once on the host before the
117
+ * container starts and lets the provider produce per-session artifacts
118
+ * (e.g. a sanitized `settings.json` with hooks stripped, a generated
119
+ * MCP manifest) and mount them into the container alongside the static
120
+ * {@link configMounts}.
121
+ *
122
+ * Returned `extraMounts` are appended to {@link configMounts} in
123
+ * declaration order. The `cleanup` callback (if provided) is invoked
124
+ * after the container exits so the provider can unlink temp files.
125
+ *
126
+ * Errors thrown here propagate as spawn failures — keep the work fast
127
+ * and synchronous-friendly (file I/O, not network calls).
128
+ */
129
+ prepareSpawn?(ctx: SandboxSpawnContext): SandboxSpawnSetup | Promise<SandboxSpawnSetup>;
130
+ }
131
+ /**
132
+ * Context passed to {@link SandboxApi.prepareSpawn}. Identifies the Jack
133
+ * session and the project root being mounted at `/workspace`. Providers
134
+ * use these to namespace temp files (one settings overlay per session)
135
+ * and avoid collisions across concurrent sandbox sessions.
136
+ */
137
+ export interface SandboxSpawnContext {
138
+ /** Stable per-session id. Safe to embed in temp filenames. */
139
+ readonly sessionId: string;
140
+ /** Absolute host path mounted at `/workspace` inside the container. */
141
+ readonly projectPath: string;
142
+ }
143
+ /**
144
+ * Return value of {@link SandboxApi.prepareSpawn}. Both fields optional —
145
+ * a no-op setup just returns `{}`.
146
+ */
147
+ export interface SandboxSpawnSetup {
148
+ /**
149
+ * Mounts to merge with the provider's static {@link configMounts}.
150
+ * Useful for overlaying generated files (e.g. a sanitized settings.json
151
+ * mounted on top of a config-dir mount shadows the original entry).
152
+ */
153
+ readonly extraMounts?: readonly SandboxConfigMount[];
154
+ /**
155
+ * Optional teardown. Invoked once after the container exits, even if
156
+ * the spawn fails after `prepareSpawn` resolved. Errors are logged but
157
+ * not propagated — cleanup is best-effort.
158
+ */
159
+ cleanup?(): void | Promise<void>;
115
160
  }
116
161
  //# sourceMappingURL=sandbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,oDAAoD;IACpD,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAE7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAE3B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAErD;;;;;;;;;;OAUG;IACH,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,+BAA+B;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAE7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAE3B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAErD;;;;;;;;;;OAUG;IACH,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEpC;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,CACX,GAAG,EAAE,mBAAmB,GACvB,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAClD;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACpD;;;;OAIG;IACH,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACjC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ottimis/jack-provider-sdk",
3
- "version": "0.10.0",
3
+ "version": "0.13.0",
4
4
  "description": "Plugin contract for AI provider integrations in Jack — backend interface, capability matrix, spawner primitives, knowledge context. Consumed both by in-tree providers and external packages.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -29,14 +29,19 @@
29
29
  "clean": "rm -rf dist"
30
30
  },
31
31
  "peerDependencies": {
32
- "@ottimis/jack-chat-core": ">=0.5.5",
32
+ "@ottimis/jack-chat-core": ">=0.7.0",
33
33
  "zod": ">=3.22.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@ottimis/jack-chat-core": "^0.5.5",
37
- "@types/node": "^22.14.1",
38
- "tsx": "^4.19.2",
39
- "typescript": "^5.8.3",
40
- "zod": "^4.3.6"
36
+ "@ottimis/jack-chat-core": "0.7.0",
37
+ "@types/node": "^22.19.19",
38
+ "tsx": "^4.22.0",
39
+ "typescript": "^5.9.3",
40
+ "zod": "^4.4.3"
41
+ },
42
+ "pnpm": {
43
+ "ignoredBuiltDependencies": [
44
+ "esbuild"
45
+ ]
41
46
  }
42
47
  }
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Provider-declared user defaults — per-provider "what you want this provider
3
+ * to pick when a new session is created".
4
+ *
5
+ * Three field kinds are supported today: `model`, `effort`, and
6
+ * `permission_mode`. Each provider declares which of those are meaningful
7
+ * for its runtime and the catalog of legal values for each. The host owns
8
+ * storage (via `HostServices.kv`) and resolution (`resolveProviderDefaults`
9
+ * merges global → workspace → agent layers in the future; v1 is global
10
+ * only). The provider only declares the **catalog**; it never persists or
11
+ * resolves values itself.
12
+ *
13
+ * Design notes
14
+ * ------------
15
+ * - Catalog-only contract. The provider is authoritative on "what's
16
+ * settable" and "with which values". The host validates writes against
17
+ * this catalog and silently ignores stored values that fall outside it
18
+ * (e.g. after a provider bump removed a model).
19
+ * - Presence-based gating. A provider that doesn't declare `defaults`
20
+ * simply doesn't appear in `Settings → Provider defaults` and no
21
+ * pre-fill happens. No `CapabilityMatrix` flag needed.
22
+ * - Open for layering. The resolver signature (`workspaceId?`,
23
+ * `agentSlotId?`) is in v1 even though only the global layer is
24
+ * implemented, so adding workspace/agent overrides later is a host-only
25
+ * change without touching the SDK.
26
+ *
27
+ * Cross-references in the existing SDK surface
28
+ * --------------------------------------------
29
+ * - `model` overlaps with `JackProvider.modelOptions` (live dropdown) and
30
+ * `ProviderModelDefaults.oneShot` (host suggester tasks). The
31
+ * `ProviderDefaultsApi` is distinct: it answers "what model do new
32
+ * sessions get". A provider typically reuses `modelOptions` as the
33
+ * defaults catalog but it's not required (e.g. a provider could hide
34
+ * experimental models from the default-picker while keeping them in
35
+ * the live switcher).
36
+ * - `effort` mirrors `JackProvider.effortLevels` semantics. Codex applies
37
+ * effort at spawn time; declaring it as a default is how the host
38
+ * honours that without an extra dropdown in `NewSessionDialog`.
39
+ * - `permission_mode` mirrors `CapabilityMatrix.permissionModes`. The
40
+ * default is the mode every freshly-created session starts in
41
+ * (the user can still cycle it live via Shift-Tab if
42
+ * `livePermissionModeSwitch` is true).
43
+ */
44
+
45
+ import type { AgentEffortLevel, AgentPermissionMode } from './backend'
46
+
47
+ /**
48
+ * One field a provider exposes in the defaults form. Discriminated union
49
+ * keyed on `kind` so the host renders the right widget (string-id select
50
+ * for model, enum select for effort, etc.) without provider-specific code.
51
+ *
52
+ * `options` is the catalog of legal values. Empty → host hides the field
53
+ * (parity with `JackProvider.modelOptions` / `effortLevels` semantics).
54
+ */
55
+ export type ProviderDefaultsField =
56
+ | {
57
+ kind: 'model'
58
+ /**
59
+ * Catalog of model identifiers. `value` is what the host writes into
60
+ * `sessions.model` at create time; `label` is the human display.
61
+ * Typically reuses `JackProvider.modelOptions` 1:1 but providers MAY
62
+ * filter (e.g. hide experimental models from new-session pre-fill).
63
+ */
64
+ options: ReadonlyArray<{ value: string; label: string }>
65
+ }
66
+ | {
67
+ kind: 'effort'
68
+ /**
69
+ * Catalog of effort tiers. `value` MUST be a member of
70
+ * {@link AgentEffortLevel}. Renderer falls back to the raw string as
71
+ * the label.
72
+ */
73
+ options: ReadonlyArray<AgentEffortLevel>
74
+ }
75
+ | {
76
+ kind: 'permission_mode'
77
+ /**
78
+ * Catalog of permission modes available as session-start defaults.
79
+ * Typically equals `CapabilityMatrix.permissionModes` but providers
80
+ * MAY narrow (e.g. exclude `'bypassPermissions'` from the default
81
+ * picker even when the cycle supports it — the user has to opt in
82
+ * deliberately).
83
+ */
84
+ options: ReadonlyArray<AgentPermissionMode>
85
+ }
86
+
87
+ /**
88
+ * Provider-declared catalog of configurable defaults. Static — the host
89
+ * reads `fields` once per provider listing and validates user writes
90
+ * against it. Empty array would technically be valid but pointless; the
91
+ * convention is "omit `JackProvider.defaults` entirely" for providers
92
+ * with no defaults to expose.
93
+ */
94
+ export type ProviderDefaultsApi = {
95
+ readonly fields: ReadonlyArray<ProviderDefaultsField>
96
+ }
97
+
98
+ /**
99
+ * Resolved defaults as the host serialises them per-provider in kv. Every
100
+ * field is optional — "not set" means "use the provider's runtime default"
101
+ * (model NULL, effort NULL, permission_mode 'default').
102
+ *
103
+ * Stored as a single JSON blob at `provider.<id>.defaults` so partial
104
+ * writes are atomic and the host can wipe the whole bag in one call.
105
+ */
106
+ export type ProviderDefaultsValues = {
107
+ model?: string
108
+ effort?: AgentEffortLevel
109
+ permissionMode?: AgentPermissionMode
110
+ }
111
+
112
+ /**
113
+ * Context the host resolver consumes. v1 only honours `providerId` (global
114
+ * defaults). `workspaceId` and `agentSlotId` are reserved placeholders for
115
+ * future per-workspace and per-agent overrides — the resolver signature
116
+ * accepts them today so the call sites can be written once and the host
117
+ * gains layering later without a callsite change.
118
+ *
119
+ * Resolution order (when layering lands): agent slot > workspace > global.
120
+ * Per-field merge: each field is resolved independently, so an agent slot
121
+ * can override `model` while letting `permissionMode` fall through to the
122
+ * global value.
123
+ */
124
+ export type ProviderDefaultsResolveContext = {
125
+ providerId: string
126
+ /** Reserved for future per-workspace defaults; ignored in v1. */
127
+ workspaceId?: string
128
+ /** Reserved for future per-agent-slot defaults; ignored in v1. */
129
+ agentSlotId?: string
130
+ }
package/src/host.ts CHANGED
@@ -156,4 +156,21 @@ export type HostServices = {
156
156
  kv: HostKvScope
157
157
  /** Auth flow primitives (cookie login today; OAuth / device-code in the future). */
158
158
  auth: HostAuthService
159
+ /**
160
+ * Number of sessions currently pinned to a given profile id. Used by
161
+ * providers that surface profiles (`JackProvider.profiles`) to gate
162
+ * destructive operations:
163
+ *
164
+ * - `remove(profileId)` refuses when count > 0 so the user can't
165
+ * orphan the chat history of any pinned session.
166
+ * - `update(profileId, { configDir })` may surface a confirm dialog
167
+ * when count > 0 (UI-side concern; the API itself stays open since
168
+ * the user can move the on-disk `projects/`/rollouts folder
169
+ * manually to preserve history).
170
+ *
171
+ * Optional: providers without a profile concept never call it. The
172
+ * host implementation reads `SELECT COUNT(*) FROM sessions WHERE
173
+ * profile_id = ?`.
174
+ */
175
+ profileUsageCount?(profileId: string): number
159
176
  }
package/src/index.ts CHANGED
@@ -34,6 +34,8 @@ export * from './usage'
34
34
  export * from './host'
35
35
  export * from './profiles'
36
36
  export * from './sandbox'
37
+ export * from './oneshot'
38
+ export * from './defaults'
37
39
 
38
40
  /**
39
41
  * Re-export of `NormalizedMessage` from chat-core so consumers don't need
package/src/oneshot.ts ADDED
@@ -0,0 +1,81 @@
1
+ /**
2
+ * One-shot completion capability — fire-and-forget AI calls outside the
3
+ * lifetime of a session.
4
+ *
5
+ * Use cases the host wires this for:
6
+ * - Auto-generate a commit message from a staged diff (CommitComposer).
7
+ * - Future: summarize a tool result, propose a search query, name a
8
+ * workspace from its first prompt, etc.
9
+ *
10
+ * Distinct from {@link AgentBackend.query} on purpose:
11
+ * - No tools, no MCP, no permission flow, no resume.
12
+ * - No persisted session — the provider MUST NOT leave artifacts on disk.
13
+ * - Returns plain text, synchronously to the caller (no streaming UI).
14
+ * - Reuses whatever auth/credentials the user already has (CLI cookie,
15
+ * API key, OAuth token) — same source as session calls.
16
+ *
17
+ * Provider implementations are expected to be **cheap and fast**: pick the
18
+ * smallest reasonable model the user is authenticated for, no agentic
19
+ * loops, no tool definitions, no caching beyond what the platform does on
20
+ * its own. A typical call should complete in well under a second.
21
+ */
22
+ export type OneshotCompleteOptions = {
23
+ /**
24
+ * The user prompt — what the model should respond to. The host builds
25
+ * this string by interpolating the relevant context (diff, branch,
26
+ * recent commit subjects, …) into a stable template; providers MUST
27
+ * NOT re-prompt or transform it beyond what's needed for their wire
28
+ * format.
29
+ */
30
+ prompt: string
31
+ /**
32
+ * Optional system prompt. Use sparingly — keeping the host-side prompt
33
+ * provider-neutral means we can fan out the same call across providers
34
+ * without re-tuning. Implementations that don't have a system slot
35
+ * (rare) MAY prepend this to `prompt` and document the choice.
36
+ */
37
+ system?: string
38
+ /**
39
+ * Cap on output tokens. Providers MUST honor it as best they can; the
40
+ * host treats overruns as warnings, not errors. Defaults are
41
+ * provider-specific.
42
+ */
43
+ maxOutputTokens?: number
44
+ /**
45
+ * Cap on wall-clock time. Providers SHOULD abort the underlying request
46
+ * when the deadline is exceeded and reject the returned promise rather
47
+ * than block the caller forever. Default is provider-specific.
48
+ */
49
+ timeoutMs?: number
50
+ /**
51
+ * AbortSignal — host-controlled cancellation. Providers MUST wire this
52
+ * into their underlying HTTP / process call so the renderer can drop a
53
+ * pending generation when the user closes the dialog or navigates away.
54
+ */
55
+ signal?: AbortSignal
56
+ }
57
+
58
+ /**
59
+ * One-shot completion API — optional capability on {@link JackProvider}.
60
+ *
61
+ * Providers that expose this MUST also declare `capabilities.oneshot =
62
+ * true`. The host uses the capability flag to gate UI affordances (button
63
+ * disabled, tooltip explaining "active provider doesn't support this")
64
+ * before ever calling into the provider, so the API surface stays simple:
65
+ * providers don't need to throw a "not implemented" error — they just
66
+ * leave the field undefined.
67
+ */
68
+ export type OneshotApi = {
69
+ /**
70
+ * Run a single non-agentic completion and return the assistant's text
71
+ * verbatim — no streaming, no tool calls, no follow-up turns.
72
+ *
73
+ * Errors:
74
+ * - Network / auth: reject with the underlying error. Host catches and
75
+ * surfaces a toast.
76
+ * - AbortSignal aborted: reject with `DOMException('AbortError')`.
77
+ * - Empty / malformed model output: return an empty string. Host
78
+ * treats empty as "no suggestion" and keeps the textarea unchanged.
79
+ */
80
+ complete(opts: OneshotCompleteOptions): Promise<string>
81
+ }
package/src/provider.ts CHANGED
@@ -17,7 +17,9 @@
17
17
  */
18
18
 
19
19
  import type { AgentBackend, AgentPermissionMode, AgentQueryOptions, McpServerSpec } from './backend'
20
+ import type { ProviderDefaultsApi } from './defaults'
20
21
  import type { HostServices } from './host'
22
+ import type { OneshotApi } from './oneshot'
21
23
  import type { ProfilesApi } from './profiles'
22
24
  import type { SandboxApi } from './sandbox'
23
25
  import type { UsageApi } from './usage'
@@ -38,7 +40,13 @@ export type ProviderId = string
38
40
  * commands carry `body` + `filePath`, builtin and wire-sourced ones
39
41
  * don't (they don't *have* a markdown file behind them).
40
42
  */
41
- export type SlashCommandScope = 'builtin' | 'wire' | 'user' | 'project' | (string & {})
43
+ export type SlashCommandScope =
44
+ | 'builtin'
45
+ | 'wire'
46
+ | 'user'
47
+ | 'project'
48
+ | 'jack-builtin'
49
+ | (string & {})
42
50
 
43
51
  /**
44
52
  * Common surface every slash command def carries regardless of source.
@@ -51,7 +59,7 @@ type SlashCommandDefBase = {
51
59
  }
52
60
 
53
61
  /**
54
- * Slash-command definition surfaced by a provider. Three sources can
62
+ * Slash-command definition surfaced by a provider. Four sources can
55
63
  * coexist (see {@link SlashCommandSupport}):
56
64
  *
57
65
  * - `'builtin'` — static catalog the runtime intercepts. The renderer
@@ -64,6 +72,14 @@ type SlashCommandDefBase = {
64
72
  * `filePath` + `body` are required so the renderer can offer "open
65
73
  * in editor" affordances and the host can expand `$ARGUMENTS` /
66
74
  * `$N` placeholders.
75
+ * - `'jack-builtin'` — host-shipped slash command pack distributed
76
+ * inside the Jack app bundle (e.g. `/changelog-turn`,
77
+ * `/save-decision` for the user-data-tables feature). Read-only
78
+ * for the user (no edit/delete), expanded the same way as
79
+ * `'user'/'project'` (`$ARGUMENTS` + `$N` substitution). The body
80
+ * comes from `resources/slash-commands/builtin/<name>.md`; the
81
+ * renderer treats the catalog like any file-sourced command but
82
+ * hides authoring affordances behind the `readonly` flag.
67
83
  *
68
84
  * Discriminated by `scope` so consumers narrow before reading the
69
85
  * file-only fields. Replaces the legacy uniform shape that forced
@@ -74,6 +90,31 @@ export type SlashCommandDef =
74
90
  | (SlashCommandDefBase & { scope: 'builtin' })
75
91
  | (SlashCommandDefBase & { scope: 'wire' })
76
92
  | (SlashCommandDefBase & { scope: 'user' | 'project'; body: string; filePath: string })
93
+ | (SlashCommandDefBase & { scope: 'jack-builtin'; body: string; readonly: true })
94
+
95
+ /**
96
+ * Input shape for {@link SlashCommandSupport.createCommand}. The host
97
+ * collects these fields from a dialog form and hands them verbatim to
98
+ * the provider, which writes the markdown file in its native layout
99
+ * (Claude: `~/.claude/commands/<name>.md` for user scope,
100
+ * `<projectPath>/.claude/commands/<name>.md` for project).
101
+ *
102
+ * `name` may include subdirectory namespacing via `:` — e.g.
103
+ * `git:review` → file at `git/review.md` under the scope root.
104
+ * Provider validates the name (regex `[a-z][a-z0-9:-]*` typically) and
105
+ * rejects with an error when the file already exists (caller decides
106
+ * whether to retry with `overwrite`, omitted in v1 to avoid
107
+ * accidental clobbering).
108
+ */
109
+ export type CreateSlashCommandInput = {
110
+ name: string
111
+ scope: 'user' | 'project'
112
+ description?: string
113
+ argumentHint?: string
114
+ body: string
115
+ /** Required when `scope === 'project'`. */
116
+ projectPath?: string
117
+ }
77
118
 
78
119
  /**
79
120
  * Parsed envelope a provider's CLI may wrap slash commands in when it logs
@@ -148,6 +189,71 @@ export type SlashCommandSupport = {
148
189
  sessionId: string,
149
190
  callback: (commands: SlashCommandDef[]) => void
150
191
  ): () => void
192
+ /**
193
+ * Authoring: create a new file-sourced slash command on disk. Only
194
+ * meaningful for providers that surface file-based commands (Claude
195
+ * `.claude/commands/*.md`); providers without an on-disk format leave
196
+ * this undefined and the host hides the "+ New" affordance.
197
+ *
198
+ * Contract:
199
+ * - Validates `input.name` against the provider's naming convention
200
+ * (typical regex: `[a-z][a-z0-9:-]*` with `:` for subdirectory
201
+ * namespacing).
202
+ * - Resolves the target file path under the scope root, creating
203
+ * intermediate directories as needed.
204
+ * - Refuses overwrite when the file already exists (throws an
205
+ * error with a stable code so the host can render a clear
206
+ * conflict message).
207
+ * - Writes frontmatter (`description`, `argument-hint`) plus the
208
+ * body verbatim. Returns the absolute file path.
209
+ *
210
+ * The host calls this from `provider:slash-commands:create` IPC and
211
+ * the new file is picked up by {@link subscribeFsChanges} so the
212
+ * renderer's palette refreshes without a manual reload.
213
+ */
214
+ createCommand?(input: CreateSlashCommandInput): Promise<{ filePath: string }>
215
+ /**
216
+ * Authoring: delete a file-sourced slash command. The host passes the
217
+ * absolute `filePath` previously returned in a {@link SlashCommandDef}.
218
+ * `projectPath` (when provided) lets the provider validate
219
+ * project-scoped deletes too — without it, only files inside the user
220
+ * root are accepted (delete-by-path on a project file requires the
221
+ * caller to thread the project path through, which the host knows
222
+ * from the active session's cwd).
223
+ *
224
+ * Contract:
225
+ * - Verifies that `filePath` is contained inside one of the provider's
226
+ * known scope roots (path normalisation + `path.relative()` check)
227
+ * to prevent the host from accidentally requesting deletion of a
228
+ * file outside the slash-commands tree.
229
+ * - Deletes the file. Idempotent: a missing file is treated as a
230
+ * successful no-op (no `ENOENT` thrown).
231
+ *
232
+ * Like {@link createCommand}, omitting this field hides the "Delete"
233
+ * affordance for file-sourced rows in the renderer.
234
+ */
235
+ deleteCommand?(filePath: string, projectPath?: string): Promise<{ ok: true }>
236
+ /**
237
+ * Subscribe to filesystem changes in the provider's user/project
238
+ * command roots. Distinct from {@link subscribeToWireCommands}: this
239
+ * is fs-driven (markdown files added/edited/deleted on disk),
240
+ * whereas the wire variant is provider-pushed runtime state.
241
+ *
242
+ * Contract:
243
+ * - The provider invokes the callback whenever a `.md` file under
244
+ * a known root is added, modified, or deleted (debounce is the
245
+ * provider's concern; the host treats the callback as "your
246
+ * cached list is stale, refetch").
247
+ * - The callback receives no payload — it's a stale-flag, not a
248
+ * diff. The host responds by re-running `scanCommands` and
249
+ * emitting `slashCommands:changed` to its renderers.
250
+ * - Returns an unsubscribe function. The host calls it on shutdown
251
+ * or provider switch.
252
+ * - Optional. Providers without a file-based source (Codex,
253
+ * Gemini today) leave this undefined and the host's cache is
254
+ * invalidated only on session boundary events.
255
+ */
256
+ subscribeFsChanges?(callback: () => void): () => void
151
257
  }
152
258
 
153
259
  /**
@@ -170,6 +276,19 @@ export type ReadSessionTranscriptOptions = {
170
276
  * current consumers.
171
277
  */
172
278
  includeSystemMessages?: boolean
279
+ /**
280
+ * Provider-config root for transcript lookup (Claude `CLAUDE_CONFIG_DIR`,
281
+ * Codex `CODEX_HOME`, …). When set, the provider reads transcripts from
282
+ * `<configDir>/<provider-native-subpath>` instead of its implicit default
283
+ * — required when the session was spawned under a non-default
284
+ * {@link ProviderProfile} so the JSONL/rollout file resolves correctly.
285
+ *
286
+ * The host resolves this from the session's pinned `profile_id` and
287
+ * passes it verbatim. Providers without a profile concept ignore the
288
+ * field; providers with profiles MUST treat it as authoritative when
289
+ * present.
290
+ */
291
+ configDir?: string
173
292
  }
174
293
 
175
294
  /**
@@ -298,6 +417,15 @@ export type CapabilityMatrix = {
298
417
  * sandbox request returns a clear error.
299
418
  */
300
419
  sandbox: boolean
420
+ /**
421
+ * Provider exposes a non-agentic single-shot completion via
422
+ * {@link JackProvider.oneshot}. When `false` the host hides any UI
423
+ * affordance that depends on it (e.g. CommitComposer's "AI commit
424
+ * message" button is disabled with an explanatory tooltip).
425
+ *
426
+ * When `true`, {@link JackProvider.oneshot} MUST be defined.
427
+ */
428
+ oneshot: boolean
301
429
  /**
302
430
  * Permission modes the provider actually supports. Drives the
303
431
  * Shift-Tab cycle in the renderer (`MessageInputBar`) and any
@@ -736,6 +864,27 @@ export type JackProvider = {
736
864
  * mode for this provider's sessions.
737
865
  */
738
866
  sandbox?: SandboxApi
867
+ /**
868
+ * One-shot completion capability — non-agentic, no tools, no session.
869
+ * See {@link OneshotApi}. Optional; when undefined `capabilities.oneshot`
870
+ * MUST be `false` and the host disables any UI affordance that relies
871
+ * on this primitive (e.g. CommitComposer's AI commit message button).
872
+ */
873
+ oneshot?: OneshotApi
874
+ /**
875
+ * User-configurable defaults applied to newly-created sessions —
876
+ * which model, reasoning-effort tier, and permission mode the host
877
+ * should pre-fill on the session row when the user spawns a new
878
+ * session against this provider. See {@link ProviderDefaultsApi}.
879
+ *
880
+ * Optional + presence-based. A provider that omits the field doesn't
881
+ * appear in `Settings → Provider defaults` and no pre-fill happens for
882
+ * its sessions (the runtime falls back to its built-in default model /
883
+ * effort / permission_mode at spawn time). Catalog-only contract: the
884
+ * provider declares the legal values, the host owns storage (kv) and
885
+ * resolution.
886
+ */
887
+ defaults?: ProviderDefaultsApi
739
888
  /**
740
889
  * Optional one-shot activation hook. Called once by the host during
741
890
  * registration with a {@link HostServices} bag scoped to this