@cmodjs/core 1.5.1 → 2.0.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/docs/commands.md +5 -5
- package/docs/index.md +12 -11
- package/docs/jobs.md +12 -16
- package/docs/mod.md +117 -39
- package/docs/permissions.md +17 -21
- package/docs/session.md +171 -82
- package/docs/state.md +5 -5
- package/docs/testing.md +57 -41
- package/docs/ui.md +9 -9
- package/jobs/permissions/decide-permission.d.ts.map +1 -1
- package/jobs/permissions/decide-permission.js +1 -1
- package/jobs/prompt.d.ts +1 -3
- package/jobs/prompt.d.ts.map +1 -1
- package/jobs/prompt.js +2 -21
- package/jobs/slash-command.d.ts +1 -1
- package/jobs/slash-command.d.ts.map +1 -1
- package/jobs/slash-command.js +1 -1
- package/jobs/status-line.d.ts +0 -1
- package/jobs/status-line.d.ts.map +1 -1
- package/jobs/status-line.js +3 -4
- package/mod.d.ts +53 -105
- package/mod.d.ts.map +1 -1
- package/mod.js +18 -80
- package/package.json +1 -1
- package/records.d.ts +3 -1
- package/records.d.ts.map +1 -1
- package/records.js +14 -5
- package/register.d.ts.map +1 -1
- package/register.js +3 -1
- package/runtime/before.d.ts +5 -1
- package/runtime/before.d.ts.map +1 -1
- package/runtime/before.js +81 -39
- package/runtime/claude.d.ts +6 -1
- package/runtime/claude.d.ts.map +1 -1
- package/runtime/conversations.d.ts.map +1 -1
- package/runtime/conversations.js +45 -26
- package/runtime/deadline.d.ts +17 -0
- package/runtime/deadline.d.ts.map +1 -1
- package/runtime/deadline.js +34 -0
- package/runtime/dependencies.d.ts +2 -0
- package/runtime/dependencies.d.ts.map +1 -1
- package/runtime/dependencies.js +12 -0
- package/runtime/grants.d.ts +1 -1
- package/runtime/grants.d.ts.map +1 -1
- package/runtime/grants.js +19 -12
- package/runtime/hooks.d.ts +28 -11
- package/runtime/hooks.d.ts.map +1 -1
- package/runtime/hooks.js +20 -123
- package/runtime/lifecycle.d.ts +2 -1
- package/runtime/lifecycle.d.ts.map +1 -1
- package/runtime/lifecycle.js +67 -50
- package/runtime/sessions.d.ts +31 -5
- package/runtime/sessions.d.ts.map +1 -1
- package/runtime/sessions.js +342 -81
- package/runtime/tool-calls.d.ts +0 -1
- package/runtime/tool-calls.d.ts.map +1 -1
- package/runtime/tool-calls.js +0 -19
- package/session/context/turn/message/instruction-file.d.ts +9 -0
- package/session/context/turn/message/instruction-file.d.ts.map +1 -0
- package/session/context/turn/message/instruction-file.js +4 -0
- package/session/context/turn/message/message.d.ts +5 -4
- package/session/context/turn/message/message.d.ts.map +1 -1
- package/session/context/turn/message/message.js +7 -6
- package/session/context/turn/message/sender.d.ts +2 -1
- package/session/context/turn/message/sender.d.ts.map +1 -1
- package/session/context/turn/message/sender.js +4 -1
- package/session/context/turn/message/tool-call.d.ts +5 -0
- package/session/context/turn/message/tool-call.d.ts.map +1 -1
- package/session/context/turn/message/tool-result.d.ts +6 -1
- package/session/context/turn/message/tool-result.d.ts.map +1 -1
- package/session/context/turn/turn.d.ts +7 -0
- package/session/context/turn/turn.d.ts.map +1 -1
- package/session/conversation.d.ts +10 -3
- package/session/conversation.d.ts.map +1 -1
- package/session/conversation.js +14 -5
- package/session/goal/goal.d.ts +1 -1
- package/session/goal/goal.d.ts.map +1 -1
- package/session/goal/task.d.ts +2 -2
- package/session/goal/task.d.ts.map +1 -1
- package/session/session.d.ts +361 -26
- package/session/session.d.ts.map +1 -1
- package/session/session.js +40 -0
- package/src/jobs/permissions/decide-permission.ts +2 -1
- package/src/jobs/prompt.ts +3 -20
- package/src/jobs/slash-command.ts +2 -2
- package/src/jobs/status-line.ts +4 -7
- package/src/mod.ts +52 -147
- package/src/records.ts +15 -5
- package/src/register.ts +3 -1
- package/src/runtime/before.ts +90 -37
- package/src/runtime/claude.ts +5 -1
- package/src/runtime/conversations.ts +41 -25
- package/src/runtime/deadline.ts +38 -0
- package/src/runtime/dependencies.ts +12 -0
- package/src/runtime/grants.ts +15 -10
- package/src/runtime/hooks.ts +48 -116
- package/src/runtime/lifecycle.ts +66 -51
- package/src/runtime/sessions.ts +366 -90
- package/src/runtime/tool-calls.ts +0 -19
- package/src/session/context/turn/message/instruction-file.ts +13 -0
- package/src/session/context/turn/message/message.ts +11 -9
- package/src/session/context/turn/message/sender.ts +5 -2
- package/src/session/context/turn/message/tool-call.ts +3 -0
- package/src/session/context/turn/message/tool-result.ts +6 -1
- package/src/session/context/turn/turn.ts +4 -0
- package/src/session/conversation.ts +21 -8
- package/src/session/goal/goal.ts +1 -1
- package/src/session/goal/task.ts +2 -2
- package/src/session/session.ts +227 -24
- package/src/testing/claude-code.ts +23 -0
- package/src/testing/fake-claude.ts +5 -1
- package/src/testing/fake-sessions.ts +38 -24
- package/src/testing.ts +84 -16
- package/testing/claude-code.d.ts +12 -0
- package/testing/claude-code.d.ts.map +1 -0
- package/testing/claude-code.js +10 -0
- package/testing/fake-claude.d.ts +4 -0
- package/testing/fake-claude.d.ts.map +1 -1
- package/testing/fake-claude.js +4 -1
- package/testing/fake-sessions.d.ts +8 -6
- package/testing/fake-sessions.d.ts.map +1 -1
- package/testing/fake-sessions.js +35 -20
- package/testing.d.ts +38 -9
- package/testing.d.ts.map +1 -1
- package/testing.js +54 -5
- package/docs/hooks.md +0 -259
- package/session/context/turn/message/document.d.ts +0 -7
- package/session/context/turn/message/document.d.ts.map +0 -1
- package/session/context/turn/message/document.js +0 -1
- package/src/session/context/turn/message/document.ts +0 -8
package/session/session.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Disposable } from '../utils/disposable.js';
|
|
2
2
|
import type { Matcher } from '../utils/matcher.js';
|
|
3
|
+
import type { Sender } from './context/turn/message/sender.js';
|
|
3
4
|
import type { Context, ContextEnd, ContextStart } from './context/context.js';
|
|
4
|
-
import type {
|
|
5
|
+
import type { InstructionFile } from './context/turn/message/instruction-file.js';
|
|
5
6
|
import type { Message, MessageType } from './context/turn/message/message.js';
|
|
6
7
|
import type { Note } from './context/turn/message/note.js';
|
|
7
8
|
import type { Notice } from './context/turn/message/notice.js';
|
|
@@ -25,7 +26,7 @@ export type SessionPayload = {
|
|
|
25
26
|
readonly toolCall: ToolCall;
|
|
26
27
|
readonly toolResult: ToolResult;
|
|
27
28
|
readonly skill: Skill;
|
|
28
|
-
readonly
|
|
29
|
+
readonly instructionFile: InstructionFile;
|
|
29
30
|
readonly notice: Notice;
|
|
30
31
|
readonly contextStart: Context;
|
|
31
32
|
readonly contextEnd: Context;
|
|
@@ -41,7 +42,9 @@ export type Refusal = {
|
|
|
41
42
|
};
|
|
42
43
|
export type BeforeAnswer = {
|
|
43
44
|
readonly prompt: {
|
|
44
|
-
readonly text
|
|
45
|
+
readonly text?: string;
|
|
46
|
+
readonly note?: string;
|
|
47
|
+
readonly title?: string;
|
|
45
48
|
} | Refusal;
|
|
46
49
|
readonly note: {
|
|
47
50
|
readonly text: string;
|
|
@@ -49,7 +52,7 @@ export type BeforeAnswer = {
|
|
|
49
52
|
readonly skill: {
|
|
50
53
|
readonly text: string;
|
|
51
54
|
};
|
|
52
|
-
readonly
|
|
55
|
+
readonly instructionFile: {
|
|
53
56
|
readonly text: string;
|
|
54
57
|
} | Refusal;
|
|
55
58
|
readonly reply: {
|
|
@@ -61,7 +64,9 @@ export type BeforeAnswer = {
|
|
|
61
64
|
readonly result: string;
|
|
62
65
|
} | Refusal;
|
|
63
66
|
readonly toolResult: {
|
|
64
|
-
readonly
|
|
67
|
+
readonly output?: unknown;
|
|
68
|
+
readonly isError?: true;
|
|
69
|
+
readonly note?: string;
|
|
65
70
|
};
|
|
66
71
|
readonly notice: {
|
|
67
72
|
readonly text: string;
|
|
@@ -71,35 +76,73 @@ export type BeforeAnswer = {
|
|
|
71
76
|
readonly model: string;
|
|
72
77
|
};
|
|
73
78
|
} | Refusal;
|
|
74
|
-
readonly taskEnd: Refusal;
|
|
75
79
|
readonly turnEnd: Refusal;
|
|
76
80
|
readonly contextEnd: Refusal;
|
|
77
81
|
};
|
|
78
82
|
export type BeforeEvent = keyof BeforeAnswer;
|
|
79
83
|
export type Usage = {
|
|
80
84
|
readonly model: string;
|
|
81
|
-
readonly
|
|
82
|
-
readonly
|
|
83
|
-
readonly
|
|
85
|
+
readonly contextWindow: {
|
|
86
|
+
readonly tokenCount?: number;
|
|
87
|
+
readonly size?: number;
|
|
84
88
|
readonly percent?: number;
|
|
85
89
|
};
|
|
86
90
|
readonly cost?: {
|
|
87
91
|
readonly usd: number;
|
|
88
92
|
};
|
|
89
93
|
};
|
|
90
|
-
export type
|
|
91
|
-
export
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
readonly
|
|
95
|
-
readonly
|
|
94
|
+
export type Surface = 'terminal' | 'desktop' | 'mobile' | 'vscode';
|
|
95
|
+
export declare const sessionEvents: {
|
|
96
|
+
readonly Message: 'message';
|
|
97
|
+
readonly Prompt: 'prompt';
|
|
98
|
+
readonly Note: 'note';
|
|
99
|
+
readonly Reply: 'reply';
|
|
100
|
+
readonly ToolCall: 'toolCall';
|
|
101
|
+
readonly ToolResult: 'toolResult';
|
|
102
|
+
readonly Skill: 'skill';
|
|
103
|
+
readonly InstructionFile: 'instructionFile';
|
|
104
|
+
readonly Notice: 'notice';
|
|
105
|
+
readonly ContextStart: 'contextStart';
|
|
106
|
+
readonly ContextEnd: 'contextEnd';
|
|
107
|
+
readonly TurnStart: 'turnStart';
|
|
108
|
+
readonly TurnEnd: 'turnEnd';
|
|
109
|
+
readonly TaskStart: 'taskStart';
|
|
110
|
+
readonly TaskEnd: 'taskEnd';
|
|
111
|
+
readonly GoalChange: 'goalChange';
|
|
112
|
+
readonly UsageChange: 'usageChange';
|
|
113
|
+
};
|
|
114
|
+
export declare const beforeEvents: readonly ["Prompt", "Note", "Skill", "InstructionFile", "Reply", "ToolCall", "ToolResult", "Notice", "TaskStart", "TurnEnd", "ContextEnd"];
|
|
115
|
+
export type EventName = keyof typeof sessionEvents;
|
|
116
|
+
export type BeforeName = (typeof beforeEvents)[number];
|
|
117
|
+
export type PayloadOf<Name extends EventName> = SessionPayload[(typeof sessionEvents)[Name]];
|
|
118
|
+
export type AnswerOf<Name extends BeforeName> = (typeof sessionEvents)[Name] extends BeforeEvent ? BeforeAnswer[(typeof sessionEvents)[Name]] : never;
|
|
119
|
+
export type ReadOptions = {
|
|
120
|
+
readonly timeoutMs?: number;
|
|
121
|
+
};
|
|
122
|
+
export type AnswerOptions = ReadOptions & {
|
|
123
|
+
readonly onFailure?: 'pass' | 'refuse';
|
|
124
|
+
};
|
|
125
|
+
export type ListenerTime = {
|
|
126
|
+
readonly deadline: number;
|
|
127
|
+
readonly signal: AbortSignal;
|
|
96
128
|
};
|
|
97
|
-
export type
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
129
|
+
export type Listener<Payload, Answer = void> = (payload: Payload, time: ListenerTime) => Answer | void | Promise<Answer | void>;
|
|
130
|
+
export type OnMethod<Payload> = {
|
|
131
|
+
(listener: Listener<Payload, unknown>, options?: ReadOptions): Disposable;
|
|
132
|
+
(matcher: Matcher<Payload>, listener: Listener<Payload, unknown>, options?: ReadOptions): Disposable;
|
|
133
|
+
};
|
|
134
|
+
export type BeforeMethod<Payload, Answer> = {
|
|
135
|
+
(listener: Listener<Payload, Answer>, options?: AnswerOptions): Disposable;
|
|
136
|
+
(matcher: Matcher<Payload>, listener: Listener<Payload, Answer>, options?: AnswerOptions): Disposable;
|
|
137
|
+
};
|
|
138
|
+
export type OnMethods = {
|
|
139
|
+
readonly [Name in EventName as `on${Name}`]: OnMethod<PayloadOf<Name>>;
|
|
140
|
+
};
|
|
141
|
+
export type BeforeMethods = {
|
|
142
|
+
readonly [Name in BeforeName as `before${Name}`]: BeforeMethod<PayloadOf<Name>, AnswerOf<Name>>;
|
|
143
|
+
};
|
|
144
|
+
export type RecordPart = OnMethods & BeforeMethods & {
|
|
145
|
+
search(text: string, matcher?: Matcher<Message>): AsyncIterable<Message>;
|
|
103
146
|
};
|
|
104
147
|
export type SessionSend = {
|
|
105
148
|
readonly type: typeof Prompt | typeof Note;
|
|
@@ -110,6 +153,7 @@ export type TaskStartArgs = {
|
|
|
110
153
|
readonly prompt: string;
|
|
111
154
|
readonly agentType?: string;
|
|
112
155
|
readonly model?: string;
|
|
156
|
+
readonly title: string;
|
|
113
157
|
readonly name?: string;
|
|
114
158
|
readonly cwd?: string;
|
|
115
159
|
};
|
|
@@ -128,7 +172,7 @@ export type Session = RecordPart & {
|
|
|
128
172
|
readonly startedAt: string;
|
|
129
173
|
readonly lastAt: string;
|
|
130
174
|
readonly forkedFrom?: string;
|
|
131
|
-
goal
|
|
175
|
+
readonly goal: Goal;
|
|
132
176
|
context(): Promise<Context>;
|
|
133
177
|
contexts(): Promise<Context[]>;
|
|
134
178
|
turn(): Promise<Turn | undefined>;
|
|
@@ -143,16 +187,307 @@ export type Session = RecordPart & {
|
|
|
143
187
|
startTask(task: TaskStartArgs): Promise<Task>;
|
|
144
188
|
callTool(call: ToolCallArgs): Promise<ToolResult>;
|
|
145
189
|
usage(): Promise<Usage>;
|
|
146
|
-
|
|
190
|
+
surfaces(): Promise<Surface[]>;
|
|
147
191
|
};
|
|
192
|
+
export type TaskOwner = Omit<Session, 'startTask' | 'callTool'>;
|
|
193
|
+
export declare const processEvents: {
|
|
194
|
+
readonly ProjectSetup: {
|
|
195
|
+
readonly on: 'Setup';
|
|
196
|
+
readonly before: 'Setup';
|
|
197
|
+
};
|
|
198
|
+
readonly SessionStart: {
|
|
199
|
+
readonly on: 'SessionStart';
|
|
200
|
+
readonly before: 'SessionStart';
|
|
201
|
+
};
|
|
202
|
+
readonly SessionEnd: {
|
|
203
|
+
readonly on: 'SessionEnd';
|
|
204
|
+
};
|
|
205
|
+
readonly ModelChange: {
|
|
206
|
+
readonly on: 'PostModelSwitch';
|
|
207
|
+
readonly before: 'PreModelSwitch';
|
|
208
|
+
};
|
|
209
|
+
readonly CwdChange: {
|
|
210
|
+
readonly on: 'CwdChanged';
|
|
211
|
+
};
|
|
212
|
+
readonly DirectoryAdd: {
|
|
213
|
+
readonly on: 'DirectoryAdded';
|
|
214
|
+
};
|
|
215
|
+
readonly WorktreeCreate: {
|
|
216
|
+
readonly on: 'WorktreeCreate';
|
|
217
|
+
readonly before: 'WorktreeCreate';
|
|
218
|
+
};
|
|
219
|
+
readonly WorktreeRemove: {
|
|
220
|
+
readonly on: 'WorktreeRemove';
|
|
221
|
+
};
|
|
222
|
+
readonly Notification: {
|
|
223
|
+
readonly on: 'Notification';
|
|
224
|
+
};
|
|
225
|
+
readonly Elicitation: {
|
|
226
|
+
readonly on: 'Elicitation';
|
|
227
|
+
readonly before: 'Elicitation';
|
|
228
|
+
};
|
|
229
|
+
readonly ElicitationResponse: {
|
|
230
|
+
readonly on: 'ElicitationResult';
|
|
231
|
+
readonly before: 'ElicitationResult';
|
|
232
|
+
};
|
|
233
|
+
readonly PermissionCheck: {
|
|
234
|
+
readonly on: 'tool.check';
|
|
235
|
+
readonly before: 'tool.check';
|
|
236
|
+
};
|
|
237
|
+
readonly PermissionRequest: {
|
|
238
|
+
readonly on: 'PermissionRequest';
|
|
239
|
+
readonly before: 'PermissionRequest';
|
|
240
|
+
};
|
|
241
|
+
readonly PermissionDenial: {
|
|
242
|
+
readonly on: 'PermissionDenied';
|
|
243
|
+
readonly before: 'PermissionDenied';
|
|
244
|
+
};
|
|
245
|
+
readonly ToolBatch: {
|
|
246
|
+
readonly on: 'PostToolBatch';
|
|
247
|
+
readonly before: 'PostToolBatch';
|
|
248
|
+
};
|
|
249
|
+
readonly TodoCreate: {
|
|
250
|
+
readonly on: 'TaskCreated';
|
|
251
|
+
readonly before: 'TaskCreated';
|
|
252
|
+
};
|
|
253
|
+
readonly TodoComplete: {
|
|
254
|
+
readonly on: 'TaskCompleted';
|
|
255
|
+
readonly before: 'TaskCompleted';
|
|
256
|
+
};
|
|
257
|
+
readonly ReplyDisplay: {
|
|
258
|
+
readonly on: 'MessageDisplay';
|
|
259
|
+
readonly before: 'MessageDisplay';
|
|
260
|
+
};
|
|
261
|
+
};
|
|
262
|
+
export type Placement = {
|
|
263
|
+
readonly session: string;
|
|
264
|
+
readonly task?: string;
|
|
265
|
+
readonly agentType?: string;
|
|
266
|
+
readonly cwd: string;
|
|
267
|
+
readonly permissionMode?: string;
|
|
268
|
+
};
|
|
269
|
+
export type SessionStartAsked = Placement & {
|
|
270
|
+
readonly source: 'startup' | 'resume' | 'clear' | 'fork' | 'compact';
|
|
271
|
+
readonly model?: string;
|
|
272
|
+
readonly title?: string;
|
|
273
|
+
readonly idleSeconds?: number;
|
|
274
|
+
readonly contextTokenCount?: number;
|
|
275
|
+
readonly isCacheWarm?: boolean;
|
|
276
|
+
readonly cacheWriteUsd?: number;
|
|
277
|
+
};
|
|
278
|
+
export type SessionStarted = Omit<SessionStartAsked, 'source'> & {
|
|
279
|
+
readonly source: 'startup' | 'resume' | 'clear' | 'fork';
|
|
280
|
+
};
|
|
281
|
+
export type ProjectSetup = Placement & {
|
|
282
|
+
readonly trigger: 'init' | 'maintenance';
|
|
283
|
+
};
|
|
284
|
+
export type SessionEnded = Placement & {
|
|
285
|
+
readonly reason: 'clear' | 'resume' | 'logout' | 'exit' | 'other';
|
|
286
|
+
};
|
|
287
|
+
export type ModelChange = Placement & {
|
|
288
|
+
readonly model: string;
|
|
289
|
+
readonly previous: string;
|
|
290
|
+
readonly requested?: string;
|
|
291
|
+
readonly source: 'command' | 'picker' | 'sdk' | 'auto' | 'resume';
|
|
292
|
+
readonly contextTokenCount: number;
|
|
293
|
+
readonly isCacheWarm: boolean;
|
|
294
|
+
readonly cacheTtl: '5m' | '1h';
|
|
295
|
+
readonly cacheWriteUsd: number;
|
|
296
|
+
readonly pricing?: 'configured' | 'catalog' | 'default';
|
|
297
|
+
};
|
|
298
|
+
export type CwdChange = Placement & {
|
|
299
|
+
readonly previous: string;
|
|
300
|
+
};
|
|
301
|
+
export type DirectoryAdd = Placement & {
|
|
302
|
+
readonly directory: string;
|
|
303
|
+
readonly source: 'command' | 'sdk';
|
|
304
|
+
};
|
|
305
|
+
export type Worktree = Placement & {
|
|
306
|
+
readonly name?: string;
|
|
307
|
+
readonly path?: string;
|
|
308
|
+
};
|
|
309
|
+
export type Notification = Placement & {
|
|
310
|
+
readonly text: string;
|
|
311
|
+
readonly title?: string;
|
|
312
|
+
readonly type: string;
|
|
313
|
+
};
|
|
314
|
+
export type Elicitation = Placement & {
|
|
315
|
+
readonly id?: string;
|
|
316
|
+
readonly server: string;
|
|
317
|
+
readonly text: string;
|
|
318
|
+
readonly mode?: 'form' | 'url';
|
|
319
|
+
readonly url?: string;
|
|
320
|
+
readonly schema?: Readonly<Record<string, unknown>>;
|
|
321
|
+
};
|
|
322
|
+
export type ElicitationResponse = Placement & {
|
|
323
|
+
readonly id?: string;
|
|
324
|
+
readonly server: string;
|
|
325
|
+
readonly mode?: 'form' | 'url';
|
|
326
|
+
readonly action: 'accept' | 'decline' | 'cancel';
|
|
327
|
+
readonly content?: Readonly<Record<string, unknown>>;
|
|
328
|
+
};
|
|
329
|
+
export type McpServer = {
|
|
330
|
+
readonly name: string;
|
|
331
|
+
readonly source: string;
|
|
332
|
+
};
|
|
333
|
+
type PermissionRules = {
|
|
334
|
+
readonly rules: readonly {
|
|
335
|
+
readonly toolName: string;
|
|
336
|
+
readonly ruleContent?: string;
|
|
337
|
+
}[];
|
|
338
|
+
readonly behavior: 'allow' | 'deny' | 'ask';
|
|
339
|
+
};
|
|
340
|
+
type PermissionDestination = {
|
|
341
|
+
readonly destination: 'userSettings' | 'projectSettings' | 'localSettings' | 'session' | 'cliArg';
|
|
342
|
+
};
|
|
343
|
+
export type PermissionUpdate = PermissionDestination & ((PermissionRules & {
|
|
344
|
+
readonly type: 'addRules' | 'replaceRules' | 'removeRules';
|
|
345
|
+
}) | {
|
|
346
|
+
readonly type: 'setMode';
|
|
347
|
+
readonly mode: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'dontAsk' | 'auto';
|
|
348
|
+
} | {
|
|
349
|
+
readonly type: 'addDirectories' | 'removeDirectories';
|
|
350
|
+
readonly directories: readonly string[];
|
|
351
|
+
});
|
|
352
|
+
export type PermissionCheck = Placement & {
|
|
353
|
+
readonly name: string;
|
|
354
|
+
readonly input: Readonly<Record<string, unknown>>;
|
|
355
|
+
readonly callId?: string;
|
|
356
|
+
readonly decision: 'allow' | 'ask' | 'refuse';
|
|
357
|
+
readonly reason?: string;
|
|
358
|
+
readonly rule?: string;
|
|
359
|
+
readonly ceiling?: 'allow' | 'ask' | 'refuse';
|
|
360
|
+
};
|
|
361
|
+
export type PermissionRequest = Placement & {
|
|
362
|
+
readonly name: string;
|
|
363
|
+
readonly input: Readonly<Record<string, unknown>>;
|
|
364
|
+
readonly suggestions: readonly PermissionUpdate[];
|
|
365
|
+
readonly mcpServer?: McpServer;
|
|
366
|
+
};
|
|
367
|
+
export type PermissionDenial = Placement & {
|
|
368
|
+
readonly name: string;
|
|
369
|
+
readonly input: Readonly<Record<string, unknown>>;
|
|
370
|
+
readonly callId: string;
|
|
371
|
+
readonly reason: string;
|
|
372
|
+
readonly mcpServer?: McpServer;
|
|
373
|
+
};
|
|
374
|
+
export type BatchedCall = {
|
|
375
|
+
readonly callId: string;
|
|
376
|
+
readonly name: string;
|
|
377
|
+
readonly input: Readonly<Record<string, unknown>>;
|
|
378
|
+
readonly output?: unknown;
|
|
379
|
+
};
|
|
380
|
+
export type ToolBatch = Placement & {
|
|
381
|
+
readonly calls: readonly BatchedCall[];
|
|
382
|
+
};
|
|
383
|
+
export type Todo = Placement & {
|
|
384
|
+
readonly id: string;
|
|
385
|
+
readonly subject: string;
|
|
386
|
+
readonly description?: string;
|
|
387
|
+
readonly teammate?: string;
|
|
388
|
+
};
|
|
389
|
+
export type ReplyDisplay = Placement & {
|
|
390
|
+
readonly replyId: string;
|
|
391
|
+
readonly index: number;
|
|
392
|
+
readonly isLast: boolean;
|
|
393
|
+
readonly text: string;
|
|
394
|
+
};
|
|
395
|
+
export type CommandRun = Placement & {
|
|
396
|
+
readonly name: string;
|
|
397
|
+
readonly args: string;
|
|
398
|
+
readonly source?: 'builtin' | 'plugin' | 'user' | 'mcp';
|
|
399
|
+
readonly from: Sender;
|
|
400
|
+
};
|
|
401
|
+
export type CommandRunAnswer = {
|
|
402
|
+
readonly args?: string;
|
|
403
|
+
readonly note?: string;
|
|
404
|
+
} | {
|
|
405
|
+
readonly result: string;
|
|
406
|
+
readonly exitCode?: number;
|
|
407
|
+
} | Refusal;
|
|
408
|
+
export type ProcessPayload = {
|
|
409
|
+
readonly ProjectSetup: ProjectSetup;
|
|
410
|
+
readonly SessionStart: SessionStarted;
|
|
411
|
+
readonly SessionEnd: SessionEnded;
|
|
412
|
+
readonly ModelChange: ModelChange;
|
|
413
|
+
readonly CwdChange: CwdChange;
|
|
414
|
+
readonly DirectoryAdd: DirectoryAdd;
|
|
415
|
+
readonly WorktreeCreate: Worktree;
|
|
416
|
+
readonly WorktreeRemove: Worktree;
|
|
417
|
+
readonly Notification: Notification;
|
|
418
|
+
readonly Elicitation: Elicitation;
|
|
419
|
+
readonly ElicitationResponse: ElicitationResponse;
|
|
420
|
+
readonly PermissionCheck: PermissionCheck;
|
|
421
|
+
readonly PermissionRequest: PermissionRequest;
|
|
422
|
+
readonly PermissionDenial: PermissionDenial;
|
|
423
|
+
readonly ToolBatch: ToolBatch;
|
|
424
|
+
readonly TodoCreate: Todo;
|
|
425
|
+
readonly TodoComplete: Todo;
|
|
426
|
+
readonly ReplyDisplay: ReplyDisplay;
|
|
427
|
+
};
|
|
428
|
+
export type ProcessAsked = Omit<ProcessPayload, 'SessionStart'> & {
|
|
429
|
+
readonly SessionStart: SessionStartAsked;
|
|
430
|
+
};
|
|
431
|
+
export type ProcessAnswer = {
|
|
432
|
+
readonly ProjectSetup: Record<never, never>;
|
|
433
|
+
readonly SessionStart: {
|
|
434
|
+
readonly note?: string;
|
|
435
|
+
readonly title?: string;
|
|
436
|
+
readonly reloadSkills?: true;
|
|
437
|
+
readonly firstPrompt?: string;
|
|
438
|
+
};
|
|
439
|
+
readonly ModelChange: {
|
|
440
|
+
readonly ask: string;
|
|
441
|
+
} | Refusal;
|
|
442
|
+
readonly WorktreeCreate: {
|
|
443
|
+
readonly result: string;
|
|
444
|
+
};
|
|
445
|
+
readonly Elicitation: Refusal;
|
|
446
|
+
readonly ElicitationResponse: Refusal;
|
|
447
|
+
readonly PermissionCheck: {
|
|
448
|
+
readonly allow: true;
|
|
449
|
+
} | {
|
|
450
|
+
readonly ask: string;
|
|
451
|
+
} | Refusal;
|
|
452
|
+
readonly PermissionRequest: {
|
|
453
|
+
readonly allow: true;
|
|
454
|
+
readonly input?: Readonly<Record<string, unknown>>;
|
|
455
|
+
readonly updates?: readonly PermissionUpdate[];
|
|
456
|
+
} | (Refusal & {
|
|
457
|
+
readonly interrupt?: true;
|
|
458
|
+
});
|
|
459
|
+
readonly PermissionDenial: {
|
|
460
|
+
readonly retry: true;
|
|
461
|
+
};
|
|
462
|
+
readonly ToolBatch: {
|
|
463
|
+
readonly note: string;
|
|
464
|
+
};
|
|
465
|
+
readonly TodoCreate: Refusal;
|
|
466
|
+
readonly TodoComplete: Refusal;
|
|
467
|
+
readonly ReplyDisplay: {
|
|
468
|
+
readonly text: string;
|
|
469
|
+
};
|
|
470
|
+
};
|
|
471
|
+
export type ProcessName = keyof typeof processEvents;
|
|
472
|
+
export type ProcessOnMethods = {
|
|
473
|
+
readonly [Name in ProcessName as `on${Name}`]: OnMethod<ProcessPayload[Name]>;
|
|
474
|
+
};
|
|
475
|
+
export type ProcessBeforeMethods = {
|
|
476
|
+
readonly [Name in keyof ProcessAnswer as `before${Name}`]: BeforeMethod<ProcessAsked[Name], ProcessAnswer[Name]>;
|
|
477
|
+
};
|
|
478
|
+
export type CurrentSession = Session & ProcessOnMethods & ProcessBeforeMethods;
|
|
148
479
|
export type SessionScope = {
|
|
149
480
|
readonly running?: boolean;
|
|
150
481
|
readonly since?: string;
|
|
151
482
|
readonly everyProject?: boolean;
|
|
152
483
|
};
|
|
153
|
-
export type
|
|
154
|
-
readonly
|
|
484
|
+
export type SearchOptions = SessionScope & {
|
|
485
|
+
readonly before?: Pick<Message, 'session' | 'id'>;
|
|
486
|
+
};
|
|
487
|
+
export type Sessions = OnMethods & {
|
|
488
|
+
readonly current: CurrentSession;
|
|
155
489
|
list(options?: SessionScope): Promise<Session[]>;
|
|
156
|
-
search(text: string,
|
|
490
|
+
search(text: string, matcher?: Matcher<Message>, options?: SearchOptions): AsyncIterable<Message>;
|
|
157
491
|
};
|
|
492
|
+
export {};
|
|
158
493
|
//# sourceMappingURL=session.d.ts.map
|
package/session/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session/session.ts"],"names":[],"mappings":"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"}
|
package/session/session.js
CHANGED
|
@@ -1,2 +1,42 @@
|
|
|
1
1
|
export const Session = 'session';
|
|
2
2
|
export const UsageChange = 'usageChange';
|
|
3
|
+
export const sessionEvents = {
|
|
4
|
+
Message: 'message',
|
|
5
|
+
Prompt: 'prompt',
|
|
6
|
+
Note: 'note',
|
|
7
|
+
Reply: 'reply',
|
|
8
|
+
ToolCall: 'toolCall',
|
|
9
|
+
ToolResult: 'toolResult',
|
|
10
|
+
Skill: 'skill',
|
|
11
|
+
InstructionFile: 'instructionFile',
|
|
12
|
+
Notice: 'notice',
|
|
13
|
+
ContextStart: 'contextStart',
|
|
14
|
+
ContextEnd: 'contextEnd',
|
|
15
|
+
TurnStart: 'turnStart',
|
|
16
|
+
TurnEnd: 'turnEnd',
|
|
17
|
+
TaskStart: 'taskStart',
|
|
18
|
+
TaskEnd: 'taskEnd',
|
|
19
|
+
GoalChange: 'goalChange',
|
|
20
|
+
UsageChange: 'usageChange',
|
|
21
|
+
};
|
|
22
|
+
export const beforeEvents = ['Prompt', 'Note', 'Skill', 'InstructionFile', 'Reply', 'ToolCall', 'ToolResult', 'Notice', 'TaskStart', 'TurnEnd', 'ContextEnd'];
|
|
23
|
+
export const processEvents = {
|
|
24
|
+
ProjectSetup: { on: 'Setup', before: 'Setup' },
|
|
25
|
+
SessionStart: { on: 'SessionStart', before: 'SessionStart' },
|
|
26
|
+
SessionEnd: { on: 'SessionEnd' },
|
|
27
|
+
ModelChange: { on: 'PostModelSwitch', before: 'PreModelSwitch' },
|
|
28
|
+
CwdChange: { on: 'CwdChanged' },
|
|
29
|
+
DirectoryAdd: { on: 'DirectoryAdded' },
|
|
30
|
+
WorktreeCreate: { on: 'WorktreeCreate', before: 'WorktreeCreate' },
|
|
31
|
+
WorktreeRemove: { on: 'WorktreeRemove' },
|
|
32
|
+
Notification: { on: 'Notification' },
|
|
33
|
+
Elicitation: { on: 'Elicitation', before: 'Elicitation' },
|
|
34
|
+
ElicitationResponse: { on: 'ElicitationResult', before: 'ElicitationResult' },
|
|
35
|
+
PermissionCheck: { on: 'tool.check', before: 'tool.check' },
|
|
36
|
+
PermissionRequest: { on: 'PermissionRequest', before: 'PermissionRequest' },
|
|
37
|
+
PermissionDenial: { on: 'PermissionDenied', before: 'PermissionDenied' },
|
|
38
|
+
ToolBatch: { on: 'PostToolBatch', before: 'PostToolBatch' },
|
|
39
|
+
TodoCreate: { on: 'TaskCreated', before: 'TaskCreated' },
|
|
40
|
+
TodoComplete: { on: 'TaskCompleted', before: 'TaskCompleted' },
|
|
41
|
+
ReplyDisplay: { on: 'MessageDisplay', before: 'MessageDisplay' },
|
|
42
|
+
};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { strictness } from '../../runtime/hooks.js'
|
|
2
1
|
import { messageOf } from '../../utils/text.js'
|
|
3
2
|
import { callBaseOf, callEffects, type CallEffects, type Call } from '../../utils/call-effects.js'
|
|
4
3
|
import type { Workspace } from './find-project-scope.js'
|
|
@@ -6,6 +5,8 @@ import { folderInScope, matchTarget, targetOf, type MatchedCall, type Target, ty
|
|
|
6
5
|
import { resolve } from '../../vendor.js'
|
|
7
6
|
import { inFolder } from '../context.js'
|
|
8
7
|
|
|
8
|
+
const strictness = ['allow', 'ask', 'deny'] as const
|
|
9
|
+
|
|
9
10
|
export type Rule<Mod> = {
|
|
10
11
|
[Key in TargetKey]: TargetOf<Key> & {
|
|
11
12
|
when?: (call: TargetCalls[Key] & { readonly folder: string }, mod: Mod) => boolean | Promise<boolean>
|
package/src/jobs/prompt.ts
CHANGED
|
@@ -7,20 +7,18 @@ import { callEffects, type Call } from '../utils/call-effects.js'
|
|
|
7
7
|
import { matchTarget, targetOf, type Target } from './permissions/match-target.js'
|
|
8
8
|
import { afterCall, inFolder, targetWords, withinDeadline } from './context.js'
|
|
9
9
|
|
|
10
|
-
type PromptInput = {
|
|
10
|
+
type PromptInput = { call?: Call & { readonly folder: string } }
|
|
11
11
|
|
|
12
12
|
type PromptOptions<State extends object> = {
|
|
13
13
|
name: string
|
|
14
14
|
prompt: string | ((input: PromptInput, mod: Mod<State>) => string | undefined | Promise<string | undefined>)
|
|
15
|
-
when?: RegExp | ((userPrompt: string) => boolean)
|
|
16
15
|
after?: Target | Target[]
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
const deadline: Deadline = { ms: 5000, job: 'prompt' }
|
|
20
19
|
|
|
21
|
-
export function prompt<State extends object = Record<never, never>>({ name, prompt: text,
|
|
20
|
+
export function prompt<State extends object = Record<never, never>>({ name, prompt: text, after }: PromptOptions<State>): Job<void, State> {
|
|
22
21
|
if (name.trim() === '') throw new Error('prompt: give the block a name. Claude reads the text under it.')
|
|
23
|
-
if (when !== undefined && after !== undefined) throw new Error(`prompt "${name}": use when or after, not both. Add a second prompt for the other trigger.`)
|
|
24
22
|
const targets = after === undefined ? [] : Array.isArray(after) ? after : [after]
|
|
25
23
|
for (const target of targets) targetOf(target)
|
|
26
24
|
|
|
@@ -43,10 +41,7 @@ export function prompt<State extends object = Record<never, never>>({ name, prom
|
|
|
43
41
|
return value === undefined ? undefined : `# ${name}\n${value}`
|
|
44
42
|
}
|
|
45
43
|
|
|
46
|
-
if (
|
|
47
|
-
addAfterUserPrompts(job, when, (userPrompt) => headedText({ userPrompt }), log)
|
|
48
|
-
job.announce(`the ${name} prompt after matching user prompts`)
|
|
49
|
-
} else if (targets.length > 0) {
|
|
44
|
+
if (targets.length > 0) {
|
|
50
45
|
addAfterCalls(job, targets, headedText, log)
|
|
51
46
|
job.announce(`the ${name} prompt after ${listed(targets.map(targetWords))}`)
|
|
52
47
|
} else {
|
|
@@ -96,18 +91,6 @@ function addKeptCurrent<State extends object>(job: JobContext<State>, name: stri
|
|
|
96
91
|
})
|
|
97
92
|
}
|
|
98
93
|
|
|
99
|
-
function addAfterUserPrompts<State extends object>(job: JobContext<State>, when: RegExp | ((userPrompt: string) => boolean), textFor: (userPrompt: string) => Promise<string | undefined>, log: (reason: string) => void): void {
|
|
100
|
-
engineOf(job.mod).router.add('prompt.submit', async (e, next) => {
|
|
101
|
-
let value: string | undefined
|
|
102
|
-
try {
|
|
103
|
-
if (typeof when === 'function' ? when(e.text) : e.text.search(when) >= 0) value = await textFor(e.text)
|
|
104
|
-
} catch (error) {
|
|
105
|
-
log(`its when check failed: ${messageOf(error)}`)
|
|
106
|
-
}
|
|
107
|
-
return next(value === undefined ? e : { ...e, context: [...(e.context ?? []), value] })
|
|
108
|
-
})
|
|
109
|
-
}
|
|
110
|
-
|
|
111
94
|
function addAfterCalls<State extends object>(job: JobContext<State>, targets: Target[], textFor: (input: PromptInput) => Promise<string | undefined>, log: (reason: string) => void): void {
|
|
112
95
|
afterCall(
|
|
113
96
|
job,
|
|
@@ -6,7 +6,7 @@ import { engineOf } from '../runtime/engine.js'
|
|
|
6
6
|
import { messageOf } from '../utils/text.js'
|
|
7
7
|
import { withinDeadline } from './context.js'
|
|
8
8
|
|
|
9
|
-
export type CommandReply = string | { text?: string;
|
|
9
|
+
export type CommandReply = string | { text?: string; note?: string } | undefined
|
|
10
10
|
|
|
11
11
|
const deadline: Deadline = { ms: 30000, job: 'slashCommand' }
|
|
12
12
|
|
|
@@ -57,7 +57,7 @@ export function slashCommand<State extends object = Record<never, never>>(option
|
|
|
57
57
|
function answerOf(reply: CommandReply | void): CommandRunResult {
|
|
58
58
|
if (reply === undefined) return {}
|
|
59
59
|
if (typeof reply === 'string') return { text: reply }
|
|
60
|
-
return { ...(reply.text === undefined ? {} : { text: reply.text }), ...(reply.
|
|
60
|
+
return { ...(reply.text === undefined ? {} : { text: reply.text }), ...(reply.note === undefined ? {} : { context: [reply.note] }) }
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
function splitWords(args: string): string[] {
|