@glubean/port 0.1.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.
Files changed (50) hide show
  1. package/README.md +203 -0
  2. package/dist/async-queue.d.ts +7 -0
  3. package/dist/async-queue.d.ts.map +1 -0
  4. package/dist/async-queue.js +37 -0
  5. package/dist/index.d.ts +14 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +22 -0
  8. package/dist/json-rpc.d.ts +31 -0
  9. package/dist/json-rpc.d.ts.map +1 -0
  10. package/dist/json-rpc.js +122 -0
  11. package/dist/lifecycle.d.ts +4 -0
  12. package/dist/lifecycle.d.ts.map +1 -0
  13. package/dist/lifecycle.js +517 -0
  14. package/dist/options.d.ts +12 -0
  15. package/dist/options.d.ts.map +1 -0
  16. package/dist/options.js +32 -0
  17. package/dist/port.d.ts +4 -0
  18. package/dist/port.d.ts.map +1 -0
  19. package/dist/port.js +4 -0
  20. package/dist/provider-options.typecheck.d.ts +2 -0
  21. package/dist/provider-options.typecheck.d.ts.map +1 -0
  22. package/dist/provider-options.typecheck.js +29 -0
  23. package/dist/providers/adapter.d.ts +14 -0
  24. package/dist/providers/adapter.d.ts.map +1 -0
  25. package/dist/providers/adapter.js +1 -0
  26. package/dist/providers/claude.d.ts +9 -0
  27. package/dist/providers/claude.d.ts.map +1 -0
  28. package/dist/providers/claude.js +300 -0
  29. package/dist/providers/codex-normalizer.d.ts +7 -0
  30. package/dist/providers/codex-normalizer.d.ts.map +1 -0
  31. package/dist/providers/codex-normalizer.js +287 -0
  32. package/dist/providers/codex.d.ts +19 -0
  33. package/dist/providers/codex.d.ts.map +1 -0
  34. package/dist/providers/codex.js +300 -0
  35. package/dist/providers/common.d.ts +6 -0
  36. package/dist/providers/common.d.ts.map +1 -0
  37. package/dist/providers/common.js +67 -0
  38. package/dist/providers/gemini.d.ts +9 -0
  39. package/dist/providers/gemini.d.ts.map +1 -0
  40. package/dist/providers/gemini.js +378 -0
  41. package/dist/structured.d.ts +8 -0
  42. package/dist/structured.d.ts.map +1 -0
  43. package/dist/structured.js +127 -0
  44. package/dist/token-usage.d.ts +4 -0
  45. package/dist/token-usage.d.ts.map +1 -0
  46. package/dist/token-usage.js +59 -0
  47. package/dist/types.d.ts +407 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/dist/types.js +1 -0
  50. package/package.json +35 -0
@@ -0,0 +1,407 @@
1
+ export type JsonValue = null | boolean | number | string | JsonValue[] | {
2
+ [key: string]: JsonValue;
3
+ };
4
+ export type ProviderId = "codex" | "claude" | "gemini";
5
+ export type SandboxMode = "read-only" | "workspace-write" | "danger-full-access";
6
+ export type ApprovalPolicy = "untrusted" | "on-failure" | "on-request" | "never";
7
+ export type ReasoningEffort = "low" | "medium" | "high" | "xhigh" | "max";
8
+ export type ThinkingOptions = {
9
+ type: "adaptive";
10
+ display?: "summarized" | "omitted";
11
+ } | {
12
+ type: "enabled";
13
+ budgetTokens?: number;
14
+ display?: "summarized" | "omitted";
15
+ } | {
16
+ type: "disabled";
17
+ };
18
+ export type RuntimeInstructions = {
19
+ /**
20
+ * Provider-neutral instruction override when the provider exposes a system
21
+ * prompt style entrypoint.
22
+ */
23
+ system?: string;
24
+ /**
25
+ * Provider-neutral instruction appended to the provider's default behavior.
26
+ */
27
+ append?: string;
28
+ };
29
+ export type CommonRuntimeOptions = {
30
+ cwd?: string;
31
+ model?: string;
32
+ approvalPolicy?: ApprovalPolicy;
33
+ sandbox?: SandboxMode;
34
+ instructions?: RuntimeInstructions;
35
+ };
36
+ export type CodexReasoningEffort = "none" | "minimal" | ReasoningEffort;
37
+ export type RuntimeEffort = CodexReasoningEffort;
38
+ export type CodexRuntimeOptions = {
39
+ provider?: "codex";
40
+ modelProvider?: string;
41
+ serviceTier?: string;
42
+ effort?: CodexReasoningEffort;
43
+ reasoningSummary?: "auto" | "concise" | "detailed" | "none";
44
+ baseInstructions?: string;
45
+ developerInstructions?: string;
46
+ config?: Record<string, JsonValue>;
47
+ };
48
+ /**
49
+ * Codex spawn-only options that translate to top-level CLI args
50
+ * BEFORE the subcommand. Only honored at `createPort` time; cannot
51
+ * be set per-session or per-turn because they affect the spawned
52
+ * `codex app-server` process arguments. Pass them via
53
+ * `CreatePortInputFor<"codex">.spawnOptions`, NOT through
54
+ * RuntimeOptions on session.create / turn.start (those would be
55
+ * silently ignored — type system prevents that misuse here).
56
+ */
57
+ export type CodexSpawnOptions = {
58
+ /**
59
+ * Codex feature flags to disable (top-level codex
60
+ * `--disable <FEATURE>` repeatable arg). Mirrors what
61
+ * `codex review` (codex-rs/core/src/tasks/review.rs) does for its
62
+ * sub-agent: disable tools that may trigger mid-turn round-trips
63
+ * which can interact poorly with structured-turn JSON-RPC stdio.
64
+ *
65
+ * Recommended set for reviewer-style structured turns
66
+ * (CLI keys verified against codex 0.128.0 — note the keys differ
67
+ * from Rust enum variant names):
68
+ * ["multi_agent", // = Feature::Collab
69
+ * "enable_fanout", // = Feature::SpawnCsv
70
+ * "multi_agent_v2"] // = Feature::MultiAgentV2
71
+ */
72
+ disableFeatures?: string[];
73
+ /**
74
+ * Codex web search mode override. Translated to `-c web_search_mode=<value>`.
75
+ * Codex review's sub-agent forces "disabled" (web_search_mode is a
76
+ * separate config field from feature flags).
77
+ */
78
+ webSearchMode?: "disabled" | "enabled" | "auto";
79
+ };
80
+ export type ClaudePermissionMode = "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan";
81
+ export type ClaudeRuntimeOptions = {
82
+ provider?: "claude";
83
+ permissionMode?: ClaudePermissionMode;
84
+ effort?: RuntimeEffort;
85
+ thinking?: ThinkingOptions;
86
+ systemPrompt?: string;
87
+ appendSystemPrompt?: string;
88
+ };
89
+ export type GeminiApprovalMode = "default" | "auto_edit" | "yolo" | "plan";
90
+ export type GeminiRuntimeOptions = {
91
+ provider?: "gemini";
92
+ approvalMode?: GeminiApprovalMode;
93
+ enableSandbox?: boolean;
94
+ settingsPath?: string;
95
+ };
96
+ export type ProviderRuntimeOptions = CodexRuntimeOptions | ClaudeRuntimeOptions | GeminiRuntimeOptions;
97
+ export type ProviderRuntimeOptionsFor<P extends ProviderId> = P extends "codex" ? CodexRuntimeOptions : P extends "claude" ? ClaudeRuntimeOptions : P extends "gemini" ? GeminiRuntimeOptions : never;
98
+ export type RuntimeOptions<P extends ProviderId = ProviderId> = P extends ProviderId ? CommonRuntimeOptions & ProviderRuntimeOptionsFor<P> : never;
99
+ export type AgentInput = {
100
+ type: "text";
101
+ text: string;
102
+ } | {
103
+ type: "image";
104
+ path: string;
105
+ detail?: "auto" | "low" | "high";
106
+ };
107
+ export type SchemaValidationResult<T> = {
108
+ success: true;
109
+ data: T;
110
+ } | {
111
+ success: false;
112
+ error: unknown;
113
+ };
114
+ export type ValidationSchema<T> = {
115
+ safeParse(value: unknown): SchemaValidationResult<T>;
116
+ };
117
+ export type CapabilitySet<P extends ProviderId = ProviderId> = {
118
+ provider: P;
119
+ nativeRpc: boolean;
120
+ transport: "stdio" | "websocket" | "unix";
121
+ sessions: {
122
+ create: boolean;
123
+ resume: boolean;
124
+ attach: boolean;
125
+ status: boolean;
126
+ list: boolean;
127
+ close: boolean;
128
+ };
129
+ turns: {
130
+ start: boolean;
131
+ submit: boolean;
132
+ status: boolean;
133
+ wait: boolean;
134
+ cancel: boolean;
135
+ steer: boolean;
136
+ outputSchema: boolean;
137
+ };
138
+ events: {
139
+ messageDelta: boolean;
140
+ reasoningDelta: boolean;
141
+ toolLifecycle: boolean;
142
+ tokenUsage: boolean;
143
+ planUpdates: boolean;
144
+ diffUpdates: boolean;
145
+ };
146
+ structuredOutput: {
147
+ jsonMode: boolean;
148
+ nativeJsonSchema: boolean;
149
+ localValidation: boolean;
150
+ retry: boolean;
151
+ };
152
+ lifecycle: {
153
+ localState: boolean;
154
+ eventReplay: "none" | "memory" | "durable";
155
+ status: "none" | "local" | "native";
156
+ };
157
+ };
158
+ export type SessionLifecycleStatus = "idle" | "running" | "closed" | "unknown";
159
+ export type TurnLifecycleStatus = "running" | "completed" | "failed" | "cancelled" | "timeout" | "unknown";
160
+ export type SessionRef<P extends ProviderId = ProviderId> = {
161
+ id: string;
162
+ provider: P;
163
+ native?: Record<string, JsonValue>;
164
+ };
165
+ export type SessionStatusInput = {
166
+ id: string;
167
+ };
168
+ export type SessionListInput = {
169
+ status?: SessionLifecycleStatus;
170
+ };
171
+ export type CloseSessionInput = {
172
+ id: string;
173
+ cancelActiveTurns?: boolean;
174
+ };
175
+ export type SessionSnapshot<P extends ProviderId = ProviderId> = SessionRef<P> & {
176
+ status: SessionLifecycleStatus;
177
+ createdAt?: string;
178
+ updatedAt?: string;
179
+ activeTurnIds: string[];
180
+ };
181
+ export type CreateSessionInput<P extends ProviderId = ProviderId> = {
182
+ id?: string;
183
+ options?: RuntimeOptions<P>;
184
+ cwd?: string;
185
+ model?: string;
186
+ approvalPolicy?: ApprovalPolicy;
187
+ sandbox?: SandboxMode;
188
+ };
189
+ export type StartTurnInput<P extends ProviderId = ProviderId> = {
190
+ sessionId: string;
191
+ input: AgentInput[];
192
+ options?: RuntimeOptions<P>;
193
+ cwd?: string;
194
+ model?: string;
195
+ approvalPolicy?: ApprovalPolicy;
196
+ sandbox?: SandboxMode;
197
+ outputSchema?: JsonValue;
198
+ timeoutMs?: number;
199
+ };
200
+ export type SubmitTurnInput<P extends ProviderId = ProviderId> = StartTurnInput<P> & {
201
+ /**
202
+ * How long submit waits for the provider to accept the turn and expose a
203
+ * turn id. This is not the model-response timeout; use timeoutMs for that.
204
+ */
205
+ acceptTimeoutMs?: number;
206
+ };
207
+ export type StartStructuredTurnInput<T = JsonValue, P extends ProviderId = ProviderId> = Omit<StartTurnInput<P>, "outputSchema"> & {
208
+ jsonMode?: boolean;
209
+ outputSchema?: JsonValue;
210
+ schema?: ValidationSchema<T>;
211
+ maxRetries?: number;
212
+ };
213
+ export type CancelTurnInput = {
214
+ sessionId: string;
215
+ turnId: string;
216
+ };
217
+ export type TurnRef<P extends ProviderId = ProviderId> = {
218
+ provider: P;
219
+ sessionId: string;
220
+ turnId: string;
221
+ };
222
+ export type TurnStatusInput = {
223
+ sessionId: string;
224
+ turnId: string;
225
+ };
226
+ export type TurnWaitInput = TurnStatusInput & {
227
+ timeoutMs?: number;
228
+ };
229
+ export type EventSubscriptionInput = {
230
+ sessionId?: string;
231
+ turnId?: string;
232
+ afterSeq?: number;
233
+ replay?: boolean;
234
+ };
235
+ export type TurnStreamInput = EventSubscriptionInput & {
236
+ sessionId: string;
237
+ turnId: string;
238
+ };
239
+ export type ToolCall = {
240
+ id: string;
241
+ name: string;
242
+ input?: JsonValue;
243
+ };
244
+ export type TokenUsage = {
245
+ inputTokens?: number;
246
+ outputTokens?: number;
247
+ totalTokens?: number;
248
+ cachedInputTokens?: number;
249
+ cacheCreationInputTokens?: number;
250
+ cacheReadInputTokens?: number;
251
+ reasoningOutputTokens?: number;
252
+ };
253
+ export type PlanStep = {
254
+ step: string;
255
+ status: "pending" | "in_progress" | "completed";
256
+ };
257
+ export type AgentEvent = {
258
+ type: "session.started";
259
+ sessionId: string;
260
+ provider: ProviderId;
261
+ native?: Record<string, JsonValue>;
262
+ } | {
263
+ type: "turn.started";
264
+ sessionId: string;
265
+ turnId: string;
266
+ } | {
267
+ type: "message.delta";
268
+ sessionId?: string;
269
+ turnId?: string;
270
+ role: "assistant";
271
+ text: string;
272
+ } | {
273
+ type: "reasoning.delta";
274
+ sessionId?: string;
275
+ turnId?: string;
276
+ text: string;
277
+ } | {
278
+ type: "plan.updated";
279
+ sessionId: string;
280
+ turnId: string;
281
+ explanation?: string;
282
+ steps: PlanStep[];
283
+ } | {
284
+ type: "tool.started";
285
+ sessionId?: string;
286
+ turnId?: string;
287
+ toolCall: ToolCall;
288
+ } | {
289
+ type: "tool.completed";
290
+ sessionId?: string;
291
+ turnId?: string;
292
+ toolCallId: string;
293
+ name?: string;
294
+ result?: JsonValue;
295
+ } | {
296
+ type: "token.usage";
297
+ sessionId?: string;
298
+ turnId?: string;
299
+ usage: TokenUsage;
300
+ totalUsage?: TokenUsage;
301
+ contextWindow?: number | null;
302
+ native?: JsonValue;
303
+ } | {
304
+ type: "diff.updated";
305
+ sessionId: string;
306
+ turnId: string;
307
+ diff: string;
308
+ } | {
309
+ type: "error";
310
+ sessionId?: string;
311
+ turnId?: string;
312
+ message: string;
313
+ native?: JsonValue;
314
+ } | {
315
+ type: "turn.completed";
316
+ sessionId: string;
317
+ turnId: string;
318
+ status: "completed" | "failed" | "cancelled" | "timeout";
319
+ error?: string;
320
+ };
321
+ export type RecordedAgentEvent = AgentEvent & {
322
+ seq: number;
323
+ recordedAt: string;
324
+ };
325
+ export type TurnSnapshot<P extends ProviderId = ProviderId> = TurnRef<P> & {
326
+ status: TurnLifecycleStatus;
327
+ cwd?: string;
328
+ model?: string;
329
+ options?: RuntimeOptions<P>;
330
+ usage?: TokenUsage;
331
+ totalUsage?: TokenUsage;
332
+ contextWindow?: number | null;
333
+ startedAt?: string;
334
+ updatedAt?: string;
335
+ completedAt?: string;
336
+ error?: string;
337
+ eventCount: number;
338
+ };
339
+ export type TurnResult<P extends ProviderId = ProviderId> = TurnSnapshot<P> & {
340
+ text: string;
341
+ events: RecordedAgentEvent[];
342
+ };
343
+ export type StructuredTurnAttempt = {
344
+ index: number;
345
+ events: AgentEvent[];
346
+ text: string;
347
+ error?: string;
348
+ };
349
+ export type StructuredTurnResult<T = JsonValue> = {
350
+ data: T;
351
+ json: JsonValue;
352
+ text: string;
353
+ attempts: StructuredTurnAttempt[];
354
+ };
355
+ export interface Port<P extends ProviderId = ProviderId> {
356
+ provider: P;
357
+ capabilities: CapabilitySet<P>;
358
+ sessions: {
359
+ create(input?: CreateSessionInput<P>): Promise<SessionRef<P>>;
360
+ resume(input: CreateSessionInput<P> & {
361
+ id: string;
362
+ }): Promise<SessionRef<P>>;
363
+ attach(input: CreateSessionInput<P> & {
364
+ id: string;
365
+ }): Promise<SessionRef<P>>;
366
+ status(input: SessionStatusInput): Promise<SessionSnapshot<P>>;
367
+ list(input?: SessionListInput): Promise<SessionSnapshot<P>[]>;
368
+ close(input: CloseSessionInput): Promise<void>;
369
+ };
370
+ turns: {
371
+ start(input: StartTurnInput<P>): AsyncIterable<AgentEvent>;
372
+ submit(input: SubmitTurnInput<P>): Promise<TurnRef<P>>;
373
+ status(input: TurnStatusInput): Promise<TurnSnapshot<P>>;
374
+ stream(input: TurnStreamInput): AsyncIterable<RecordedAgentEvent>;
375
+ wait(input: TurnWaitInput): Promise<TurnResult<P>>;
376
+ startStructured<T = JsonValue>(input: StartStructuredTurnInput<T, P>): Promise<StructuredTurnResult<T>>;
377
+ cancel(input: CancelTurnInput): Promise<void>;
378
+ };
379
+ events(input?: EventSubscriptionInput): AsyncIterable<RecordedAgentEvent>;
380
+ close(): Promise<void>;
381
+ }
382
+ /**
383
+ * Provider-specific spawn-only options. Only honored at `createPort`
384
+ * time and applied to the spawned process arguments. Per-session /
385
+ * per-turn options have no effect on these — they are physically
386
+ * baked into the subprocess CLI args.
387
+ */
388
+ export type SpawnOptionsFor<P extends ProviderId> = P extends "codex" ? CodexSpawnOptions : never;
389
+ export type CreatePortInputFor<P extends ProviderId> = {
390
+ provider: P;
391
+ options?: RuntimeOptions<P>;
392
+ /**
393
+ * Provider-specific spawn-only options (e.g. codex
394
+ * `disableFeatures` / `webSearchMode`). Only honored here, NOT on
395
+ * session/turn options. Currently codex-only; other providers
396
+ * resolve to `never`.
397
+ */
398
+ spawnOptions?: SpawnOptionsFor<P>;
399
+ cwd?: string;
400
+ command?: string;
401
+ args?: string[];
402
+ env?: NodeJS.ProcessEnv;
403
+ };
404
+ export type CreatePortInput = {
405
+ [P in ProviderId]: CreatePortInputFor<P>;
406
+ }[ProviderId];
407
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@glubean/port",
3
+ "version": "0.1.0",
4
+ "description": "Neutral runtime adapter for local coding agents.",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "default": "./dist/index.js"
10
+ }
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "README.md"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc -p tsconfig.build.json",
18
+ "test": "vitest run --exclude \"src/**/*.integration.test.ts\"",
19
+ "typecheck": "tsc --noEmit",
20
+ "test:integration": "GLUBEAN_PORT_LIVE=1 vitest run src/providers/live.integration.test.ts",
21
+ "smoke:codex": "node examples/codex-basic.ts",
22
+ "prepack": "npm run build"
23
+ },
24
+ "engines": {
25
+ "node": ">=24.0.0"
26
+ },
27
+ "dependencies": {
28
+ "zod": "^4.4.3"
29
+ },
30
+ "devDependencies": {
31
+ "@types/node": "^25.6.0",
32
+ "typescript": "^6.0.3",
33
+ "vitest": "^4.1.5"
34
+ }
35
+ }