@cmodjs/core 0.3.0 → 1.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.
Files changed (271) hide show
  1. package/docs/commands.md +50 -10
  2. package/docs/dependencies.md +12 -12
  3. package/docs/hooks.md +39 -27
  4. package/docs/index.md +29 -25
  5. package/docs/install-steps.md +9 -7
  6. package/docs/jobs.md +59 -111
  7. package/docs/mod.md +200 -174
  8. package/docs/options.md +2 -2
  9. package/docs/permissions.md +27 -16
  10. package/docs/session.md +248 -0
  11. package/docs/state.md +11 -7
  12. package/docs/testing.md +65 -22
  13. package/docs/ui.md +108 -76
  14. package/jobs/check.d.ts.map +1 -1
  15. package/jobs/check.js +5 -2
  16. package/jobs/context.d.ts +7 -8
  17. package/jobs/context.d.ts.map +1 -1
  18. package/jobs/context.js +23 -73
  19. package/jobs/permissions/decide-permission.d.ts +5 -3
  20. package/jobs/permissions/decide-permission.d.ts.map +1 -1
  21. package/jobs/permissions/decide-permission.js +6 -4
  22. package/jobs/permissions/find-project-scope.d.ts +1 -1
  23. package/jobs/permissions/find-project-scope.d.ts.map +1 -1
  24. package/jobs/permissions/find-project-scope.js +8 -11
  25. package/jobs/permissions/match-target.d.ts +2 -2
  26. package/jobs/permissions/match-target.d.ts.map +1 -1
  27. package/jobs/permissions.d.ts +1 -1
  28. package/jobs/permissions.d.ts.map +1 -1
  29. package/jobs/permissions.js +6 -4
  30. package/jobs/program.d.ts.map +1 -1
  31. package/jobs/program.js +8 -3
  32. package/jobs/prompt.d.ts +4 -2
  33. package/jobs/prompt.d.ts.map +1 -1
  34. package/jobs/prompt.js +16 -15
  35. package/jobs/schedule.d.ts +2 -2
  36. package/jobs/schedule.d.ts.map +1 -1
  37. package/jobs/schedule.js +9 -9
  38. package/jobs/slash-command.d.ts +4 -4
  39. package/jobs/slash-command.d.ts.map +1 -1
  40. package/jobs/slash-command.js +14 -9
  41. package/jobs/status-line.d.ts +1 -11
  42. package/jobs/status-line.d.ts.map +1 -1
  43. package/jobs/status-line.js +8 -12
  44. package/jobs/tool.d.ts +2 -2
  45. package/jobs/tool.d.ts.map +1 -1
  46. package/jobs/tool.js +15 -9
  47. package/mod.d.ts +154 -75
  48. package/mod.d.ts.map +1 -1
  49. package/mod.js +94 -3
  50. package/options.d.ts +2 -2
  51. package/options.js +19 -19
  52. package/package.json +3 -3
  53. package/records.d.ts +10 -8
  54. package/records.d.ts.map +1 -1
  55. package/records.js +28 -17
  56. package/register.d.ts.map +1 -1
  57. package/register.js +17 -5
  58. package/runtime/announce.d.ts +18 -0
  59. package/runtime/announce.d.ts.map +1 -0
  60. package/runtime/announce.js +66 -0
  61. package/runtime/bound.d.ts +4 -0
  62. package/runtime/bound.d.ts.map +1 -0
  63. package/runtime/bound.js +9 -0
  64. package/runtime/claude.d.ts +3 -2
  65. package/runtime/claude.d.ts.map +1 -1
  66. package/runtime/conversations.d.ts +16 -0
  67. package/runtime/conversations.d.ts.map +1 -0
  68. package/runtime/conversations.js +291 -0
  69. package/runtime/deadline.d.ts +0 -1
  70. package/runtime/deadline.d.ts.map +1 -1
  71. package/runtime/deadline.js +1 -1
  72. package/runtime/dependencies.d.ts +2 -0
  73. package/runtime/dependencies.d.ts.map +1 -1
  74. package/runtime/dependencies.js +9 -0
  75. package/runtime/engine.d.ts +17 -0
  76. package/runtime/engine.d.ts.map +1 -0
  77. package/runtime/engine.js +10 -0
  78. package/runtime/grants.d.ts +4 -0
  79. package/runtime/grants.d.ts.map +1 -1
  80. package/runtime/grants.js +63 -26
  81. package/runtime/hooks.d.ts +5 -4
  82. package/runtime/hooks.d.ts.map +1 -1
  83. package/runtime/hooks.js +10 -5
  84. package/runtime/installer.d.ts.map +1 -1
  85. package/runtime/installer.js +11 -9
  86. package/runtime/lifecycle.d.ts +3 -1
  87. package/runtime/lifecycle.d.ts.map +1 -1
  88. package/runtime/lifecycle.js +316 -185
  89. package/runtime/metadata.d.ts +3 -1
  90. package/runtime/metadata.d.ts.map +1 -1
  91. package/runtime/metadata.js +21 -11
  92. package/runtime/options.d.ts +3 -1
  93. package/runtime/options.d.ts.map +1 -1
  94. package/runtime/options.js +4 -4
  95. package/runtime/programs.d.ts +8 -0
  96. package/runtime/programs.d.ts.map +1 -1
  97. package/runtime/programs.js +39 -1
  98. package/runtime/router.d.ts +2 -1
  99. package/runtime/router.d.ts.map +1 -1
  100. package/runtime/router.js +11 -3
  101. package/runtime/sessions.d.ts +36 -0
  102. package/runtime/sessions.d.ts.map +1 -0
  103. package/runtime/sessions.js +235 -0
  104. package/runtime/state.d.ts +6 -2
  105. package/runtime/state.d.ts.map +1 -1
  106. package/runtime/state.js +46 -13
  107. package/runtime/toaster.d.ts +31 -0
  108. package/runtime/toaster.d.ts.map +1 -0
  109. package/runtime/toaster.js +176 -0
  110. package/runtime/ui.d.ts +6 -17
  111. package/runtime/ui.d.ts.map +1 -1
  112. package/runtime/ui.js +36 -112
  113. package/session/context/context.d.ts +10 -0
  114. package/session/context/context.d.ts.map +1 -0
  115. package/session/context/context.js +2 -0
  116. package/session/context/turn/message/document.d.ts +7 -0
  117. package/session/context/turn/message/document.d.ts.map +1 -0
  118. package/session/context/turn/message/document.js +1 -0
  119. package/session/context/turn/message/message.d.ts +54 -0
  120. package/session/context/turn/message/message.d.ts.map +1 -0
  121. package/session/context/turn/message/message.js +137 -0
  122. package/session/context/turn/message/note.d.ts +8 -0
  123. package/session/context/turn/message/note.d.ts.map +1 -0
  124. package/session/context/turn/message/note.js +1 -0
  125. package/session/context/turn/message/notice.d.ts +6 -0
  126. package/session/context/turn/message/notice.d.ts.map +1 -0
  127. package/session/context/turn/message/notice.js +1 -0
  128. package/session/context/turn/message/prompt.d.ts +8 -0
  129. package/session/context/turn/message/prompt.d.ts.map +1 -0
  130. package/session/context/turn/message/prompt.js +1 -0
  131. package/session/context/turn/message/reply.d.ts +6 -0
  132. package/session/context/turn/message/reply.d.ts.map +1 -0
  133. package/session/context/turn/message/reply.js +1 -0
  134. package/session/context/turn/message/sender.d.ts +14 -0
  135. package/session/context/turn/message/sender.d.ts.map +1 -0
  136. package/session/context/turn/message/sender.js +30 -0
  137. package/session/context/turn/message/skill.d.ts +7 -0
  138. package/session/context/turn/message/skill.d.ts.map +1 -0
  139. package/session/context/turn/message/skill.js +1 -0
  140. package/session/context/turn/message/tool-call.d.ts +9 -0
  141. package/session/context/turn/message/tool-call.d.ts.map +1 -0
  142. package/session/context/turn/message/tool-call.js +1 -0
  143. package/session/context/turn/message/tool-result.d.ts +8 -0
  144. package/session/context/turn/message/tool-result.d.ts.map +1 -0
  145. package/session/context/turn/message/tool-result.js +1 -0
  146. package/session/context/turn/turn.d.ts +12 -0
  147. package/session/context/turn/turn.d.ts.map +1 -0
  148. package/session/context/turn/turn.js +2 -0
  149. package/session/conversation.d.ts +64 -0
  150. package/session/conversation.d.ts.map +1 -0
  151. package/session/conversation.js +123 -0
  152. package/session/goal/goal.d.ts +10 -0
  153. package/session/goal/goal.d.ts.map +1 -0
  154. package/session/goal/goal.js +1 -0
  155. package/session/goal/task.d.ts +16 -0
  156. package/session/goal/task.d.ts.map +1 -0
  157. package/session/goal/task.js +3 -0
  158. package/session/session.d.ts +99 -0
  159. package/session/session.d.ts.map +1 -0
  160. package/session/session.js +1 -0
  161. package/src/jobs/check.ts +7 -4
  162. package/src/jobs/context.ts +24 -82
  163. package/src/jobs/permissions/decide-permission.ts +10 -8
  164. package/src/jobs/permissions/find-project-scope.ts +8 -14
  165. package/src/jobs/permissions/match-target.ts +3 -3
  166. package/src/jobs/permissions.ts +8 -6
  167. package/src/jobs/program.ts +7 -3
  168. package/src/jobs/prompt.ts +21 -24
  169. package/src/jobs/schedule.ts +14 -14
  170. package/src/jobs/slash-command.ts +20 -14
  171. package/src/jobs/status-line.ts +9 -21
  172. package/src/jobs/tool.ts +17 -11
  173. package/src/mod.ts +209 -97
  174. package/src/options.ts +22 -22
  175. package/src/records.ts +35 -23
  176. package/src/register.ts +17 -5
  177. package/src/runtime/announce.ts +74 -0
  178. package/src/runtime/bound.ts +12 -0
  179. package/src/runtime/claude.ts +4 -2
  180. package/src/runtime/conversations.ts +302 -0
  181. package/src/runtime/deadline.ts +2 -2
  182. package/src/runtime/dependencies.ts +12 -0
  183. package/src/runtime/engine.ts +22 -0
  184. package/src/runtime/grants.ts +66 -24
  185. package/src/runtime/hooks.ts +19 -10
  186. package/src/runtime/installer.ts +10 -9
  187. package/src/runtime/lifecycle.ts +312 -180
  188. package/src/runtime/metadata.ts +33 -11
  189. package/src/runtime/options.ts +19 -4
  190. package/src/runtime/programs.ts +40 -1
  191. package/src/runtime/router.ts +11 -4
  192. package/src/runtime/sessions.ts +242 -0
  193. package/src/runtime/state.ts +50 -14
  194. package/src/runtime/toaster.ts +218 -0
  195. package/src/runtime/ui.ts +42 -139
  196. package/src/session/context/context.ts +12 -0
  197. package/src/session/context/turn/message/document.ts +8 -0
  198. package/src/session/context/turn/message/message.ts +165 -0
  199. package/src/session/context/turn/message/note.ts +9 -0
  200. package/src/session/context/turn/message/notice.ts +7 -0
  201. package/src/session/context/turn/message/prompt.ts +9 -0
  202. package/src/session/context/turn/message/reply.ts +7 -0
  203. package/src/session/context/turn/message/sender.ts +38 -0
  204. package/src/session/context/turn/message/skill.ts +8 -0
  205. package/src/session/context/turn/message/tool-call.ts +10 -0
  206. package/src/session/context/turn/message/tool-result.ts +9 -0
  207. package/src/session/context/turn/turn.ts +14 -0
  208. package/src/session/conversation.ts +169 -0
  209. package/src/session/goal/goal.ts +9 -0
  210. package/src/session/goal/task.ts +19 -0
  211. package/src/session/session.ts +94 -0
  212. package/src/testing/fake-claude.ts +22 -16
  213. package/src/testing/fake-elements.ts +3 -2
  214. package/src/testing/fake-files.ts +1 -1
  215. package/src/testing/fake-sessions.ts +203 -0
  216. package/src/testing.ts +112 -33
  217. package/src/ui/components.ts +3 -3
  218. package/src/ui/elements.ts +22 -8
  219. package/src/ui/markdown.ts +22 -26
  220. package/src/ui/places.ts +49 -0
  221. package/src/utils/call-effects.ts +3 -3
  222. package/src/utils/changelog.ts +32 -0
  223. package/src/utils/matcher.ts +37 -0
  224. package/src/utils/metadata.ts +17 -15
  225. package/src/utils/parse-shell.ts +9 -8
  226. package/src/utils/paths.ts +15 -1
  227. package/src/utils/text.ts +4 -0
  228. package/testing/fake-claude.d.ts +4 -1
  229. package/testing/fake-claude.d.ts.map +1 -1
  230. package/testing/fake-claude.js +18 -11
  231. package/testing/fake-elements.js +4 -2
  232. package/testing/fake-files.js +1 -1
  233. package/testing/fake-sessions.d.ts +74 -0
  234. package/testing/fake-sessions.d.ts.map +1 -0
  235. package/testing/fake-sessions.js +170 -0
  236. package/testing.d.ts +33 -13
  237. package/testing.d.ts.map +1 -1
  238. package/testing.js +92 -21
  239. package/ui/components.d.ts +2 -3
  240. package/ui/components.d.ts.map +1 -1
  241. package/ui/components.js +3 -3
  242. package/ui/elements.d.ts.map +1 -1
  243. package/ui/elements.js +19 -9
  244. package/ui/markdown.d.ts +35 -33
  245. package/ui/markdown.d.ts.map +1 -1
  246. package/ui/markdown.js +14 -16
  247. package/ui/places.d.ts +43 -0
  248. package/ui/places.d.ts.map +1 -0
  249. package/ui/places.js +31 -0
  250. package/utils/call-effects.d.ts +1 -1
  251. package/utils/call-effects.d.ts.map +1 -1
  252. package/utils/call-effects.js +2 -2
  253. package/utils/changelog.d.ts +9 -0
  254. package/utils/changelog.d.ts.map +1 -0
  255. package/utils/changelog.js +29 -0
  256. package/utils/matcher.d.ts +13 -0
  257. package/utils/matcher.d.ts.map +1 -0
  258. package/utils/matcher.js +32 -0
  259. package/utils/metadata.d.ts +3 -3
  260. package/utils/metadata.js +18 -14
  261. package/utils/parse-shell.js +9 -7
  262. package/utils/paths.d.ts +2 -0
  263. package/utils/paths.d.ts.map +1 -1
  264. package/utils/paths.js +13 -1
  265. package/utils/text.d.ts +1 -0
  266. package/utils/text.d.ts.map +1 -1
  267. package/utils/text.js +3 -0
  268. package/src/ui/slots.ts +0 -36
  269. package/ui/slots.d.ts +0 -208
  270. package/ui/slots.d.ts.map +0 -1
  271. package/ui/slots.js +0 -19
package/mod.d.ts CHANGED
@@ -1,17 +1,40 @@
1
- import type { AgentSpawnArgs, AgentSpawnResult, AskOptions, ClassicHookInputs, CmodDependencies, FsEntry, FsStat, FsStatOptions, HookStream, HttpInit, HttpResponse, ModelCompleteOptions, ModelCompleteRequest, ModelCompleteResult, PaneOpenArgs, PermissionRequestDecision, ProcessRunInit, ProcessRunResult, ProcessSpawnChunk, ProcessSpawnRequest, ProcessSpawnResult, RenderElement, SessionMessage, Timer, ToastOptions, UiScrollArgs, UiScrollResult } from 'claude-code';
1
+ import type { AskOptions, ClassicHookInputs, CmodDependencies, FsStatOptions, HookStream, HttpInit, HttpResponse, ModelCompleteOptions, ModelCompleteRequest, ModelCompleteResult, PaneOpenArgs, PermissionRequestDecision, ProcessRunInit, ProcessRunResult, ProcessSpawnChunk, ProcessSpawnRequest, ProcessSpawnResult, RenderElement, Settings, UiScrollArgs, UiScrollResult } from 'claude-code';
2
2
  import type { Step } from './installer.js';
3
3
  import { type Option, type Options, type OptionValues } from './options.js';
4
- import type { FlagPermission, ListPermission } from './records.js';
5
- import type { Claude } from './runtime/claude.js';
6
- import type { RoutedEvent } from './runtime/hooks.js';
7
- import type { RoutedHook } from './runtime/router.js';
8
- import type { ToolCalls } from './runtime/tool-calls.js';
4
+ import type { Sessions } from './session/session.js';
9
5
  import type { Pane } from './ui/define-pane.js';
10
- import type { Slot, SlotProps } from './ui/slots.js';
11
- export type ProgressStep = {
12
- readonly done: number;
13
- readonly total: number;
14
- readonly label?: string;
6
+ import type { Place, PlaceProps } from './ui/places.js';
7
+ import type { Matcher } from './utils/matcher.js';
8
+ export type Disposable = {
9
+ dispose(): void;
10
+ };
11
+ export type ToastId = string | number;
12
+ export type ToastType = 'default' | 'success' | 'info' | 'warning' | 'error' | 'loading';
13
+ export type ToastOptions = {
14
+ readonly id?: ToastId;
15
+ readonly description?: string | RenderElement;
16
+ readonly action?: {
17
+ readonly label: string;
18
+ readonly onClick: () => unknown;
19
+ };
20
+ readonly duration?: number;
21
+ };
22
+ type ToastMessage<Value> = string | ((value: Value) => string);
23
+ export type Toast = {
24
+ (message: string, options?: ToastOptions): ToastId;
25
+ success(message: string, options?: ToastOptions): ToastId;
26
+ info(message: string, options?: ToastOptions): ToastId;
27
+ warning(message: string, options?: ToastOptions): ToastId;
28
+ error(message: string, options?: ToastOptions): ToastId;
29
+ loading(message: string, options?: ToastOptions): ToastId;
30
+ promise<T>(task: Promise<T> | (() => Promise<T>), messages: {
31
+ readonly loading: string;
32
+ readonly success: ToastMessage<T>;
33
+ readonly error: ToastMessage<unknown>;
34
+ }): {
35
+ unwrap(): Promise<T>;
36
+ };
37
+ dismiss(id?: ToastId): void;
15
38
  };
16
39
  export type PaneHandle = {
17
40
  open(options?: Readonly<Pick<PaneOpenArgs, 'focus'>>): Promise<void>;
@@ -19,11 +42,26 @@ export type PaneHandle = {
19
42
  toggle(options?: Readonly<Pick<PaneOpenArgs, 'focus'>>): Promise<void>;
20
43
  readonly isOpen: boolean;
21
44
  };
22
- export type { Claude, RoutedEvent, RoutedHook, ToolCalls };
23
- export { longestMs } from './runtime/deadline.js';
24
- export { notInstalled } from './runtime/dependencies.js';
25
- export { messageOf } from './utils/text.js';
26
- export type ModEvent = 'SessionStart' | 'SessionEnd' | 'UserPromptSubmit' | 'InstructionsLoaded' | 'PreToolUse' | 'PermissionRequest' | 'PermissionDenied' | 'PostToolUse' | 'PostToolUseFailure' | 'PostToolBatch' | 'SubagentStart' | 'SubagentStop' | 'Notification' | 'PreCompact' | 'Stop' | 'StopFailure' | 'CwdChanged' | 'FileChanged';
45
+ export declare const SessionStart = "SessionStart";
46
+ export declare const SessionEnd = "SessionEnd";
47
+ export declare const UserPromptSubmit = "UserPromptSubmit";
48
+ export declare const InstructionsLoaded = "InstructionsLoaded";
49
+ export declare const PreToolUse = "PreToolUse";
50
+ export declare const PermissionRequest = "PermissionRequest";
51
+ export declare const PermissionDenied = "PermissionDenied";
52
+ export declare const PostToolUse = "PostToolUse";
53
+ export declare const PostToolUseFailure = "PostToolUseFailure";
54
+ export declare const PostToolBatch = "PostToolBatch";
55
+ export declare const SubagentStart = "SubagentStart";
56
+ export declare const SubagentStop = "SubagentStop";
57
+ export declare const Notification = "Notification";
58
+ export declare const PreCompact = "PreCompact";
59
+ export declare const Stop = "Stop";
60
+ export declare const StopFailure = "StopFailure";
61
+ export declare const CwdChanged = "CwdChanged";
62
+ export declare const FileChanged = "FileChanged";
63
+ export declare const hooks: readonly ["SessionStart", "SessionEnd", "UserPromptSubmit", "InstructionsLoaded", "PreToolUse", "PermissionRequest", "PermissionDenied", "PostToolUse", "PostToolUseFailure", "PostToolBatch", "SubagentStart", "SubagentStop", "Notification", "PreCompact", "Stop", "StopFailure", "CwdChanged", "FileChanged"];
64
+ export type Hook = (typeof hooks)[number];
27
65
  export type HookAnswer = {
28
66
  continue?: boolean;
29
67
  stopReason?: string;
@@ -32,7 +70,7 @@ export type HookAnswer = {
32
70
  decision?: 'block';
33
71
  reason?: string;
34
72
  hookSpecificOutput?: {
35
- hookEventName?: ModEvent;
73
+ hookEventName?: Hook;
36
74
  additionalContext?: string;
37
75
  permissionDecision?: 'allow' | 'deny' | 'ask';
38
76
  permissionDecisionReason?: string;
@@ -72,19 +110,11 @@ type HookInputs = Omit<ClassicHookInputs, 'PreToolUse' | 'PostToolUse' | 'PostTo
72
110
  };
73
111
  CwdChanged: Omit<ClassicHookInputs['CwdChanged'], 'transcript_path'>;
74
112
  };
75
- export type HookInput<E extends ModEvent> = HookInputs[E];
76
- export type ModHook<E extends ModEvent> = (input: HookInput<E>) => HookAnswer | void | Promise<HookAnswer | void>;
113
+ export type HookInput<H extends Hook> = HookInputs[H];
114
+ export type HookListener<H extends Hook> = (input: HookInput<H>) => HookAnswer | void | Promise<HookAnswer | void>;
77
115
  export type HookOptions = {
78
116
  readonly timeoutMs?: number;
79
117
  };
80
- export type ScrollArgs = Omit<UiScrollArgs, 'to'> & {
81
- readonly to: Exclude<UiScrollArgs['to'], {
82
- requestId: string;
83
- }>;
84
- };
85
- export type ModClaude = Claude & {
86
- on<N extends RoutedEvent>(event: N, hook: RoutedHook<N>): void;
87
- };
88
118
  export type Metadata = Readonly<Record<string, string>>;
89
119
  export type FileMatch = {
90
120
  readonly path: string;
@@ -92,73 +122,102 @@ export type FileMatch = {
92
122
  readonly metadata: Metadata;
93
123
  readonly error?: string;
94
124
  };
95
- type SessionMessages = {
96
- (): Promise<SessionMessage[]>;
97
- (args: {
98
- readonly agentId: string;
99
- }): Promise<SessionMessage[] | {
100
- readonly deny: string;
101
- }>;
102
- };
103
- export type Mod<State extends object = Record<never, never>, Declared extends Options = Options> = {
125
+ export type Entry = {
104
126
  readonly name: string;
105
- readonly state: Readonly<State>;
106
- readonly options: OptionValues<Declared>;
107
- readonly dataFolder: string;
108
- on<E extends ModEvent>(event: E, hook: ModHook<E>, options?: HookOptions): void;
109
- use<Handle>(job: Job<Handle, State>): Handle;
110
- every(ms: number, hook: () => unknown): Timer;
111
- readonly ui: {
112
- pane(pane: Pane<State>): PaneHandle;
113
- render<S extends Slot>(slot: S, Component: (props: SlotProps<S>) => RenderElement): void;
114
- toast(text: string, options?: ToastOptions): void;
115
- progress<T>(title: string, task: (report: (step: ProgressStep) => void) => Promise<T>): Promise<T>;
116
- ask(question: string, options?: readonly string[] | AskOptions): Promise<string>;
117
- scroll(args: ScrollArgs): Promise<UiScrollResult>;
127
+ readonly isFile: boolean;
128
+ readonly isFolder: boolean;
129
+ readonly isLink: boolean;
130
+ readonly size: number;
131
+ readonly modifiedAt: number;
132
+ };
133
+ export type Stat = Omit<Entry, 'name'> & {
134
+ readonly realPath?: string;
135
+ };
136
+ export type Allowed = {
137
+ allows(value: string): boolean;
138
+ };
139
+ export type Permissions = {
140
+ readonly conversation: boolean;
141
+ readonly prompt: boolean;
142
+ readonly model: boolean;
143
+ readonly tasks: boolean;
144
+ readonly tools: boolean;
145
+ readonly approve: boolean;
146
+ readonly network: Allowed;
147
+ readonly run: Allowed;
148
+ readonly files: Allowed;
149
+ readonly config: Allowed;
150
+ };
151
+ export type SettingsFile = {
152
+ read(): Promise<Settings>;
153
+ update(values: Readonly<Record<string, unknown>>): Promise<void>;
154
+ };
155
+ export type Imports = {
156
+ readonly sessions: Sessions;
157
+ readonly settings: {
158
+ readonly user: SettingsFile;
159
+ readonly project: SettingsFile;
160
+ readonly local: SettingsFile;
118
161
  };
119
- readonly process: {
120
- run(argv: readonly string[], init?: ProcessRunInit): Promise<ProcessRunResult>;
121
- spawn(argv: readonly string[], init?: Omit<ProcessSpawnRequest, 'argv'>): HookStream<ProcessSpawnChunk, ProcessSpawnResult>;
162
+ readonly model: {
163
+ complete(request: ModelCompleteRequest, options?: ModelCompleteOptions): Promise<ModelCompleteResult>;
122
164
  };
123
165
  readonly fs: {
124
166
  read(path: string): Promise<string>;
125
167
  write(path: string, text: string): Promise<void>;
126
- list(path?: string): Promise<FsEntry[]>;
127
168
  exists(path: string): Promise<boolean>;
128
- stat(path: string, options?: FsStatOptions): Promise<FsStat>;
129
169
  find(glob: string | readonly string[]): Promise<readonly FileMatch[]>;
170
+ list(path?: string): Promise<Entry[]>;
171
+ stat(path: string, options?: FsStatOptions): Promise<Stat>;
130
172
  };
131
173
  readonly metadata: {
132
174
  read(path: string): Promise<Metadata>;
133
175
  update(path: string, change: (metadata: Record<string, string>) => void): Promise<void>;
134
176
  };
177
+ readonly process: {
178
+ run(argv: readonly string[], init?: ProcessRunInit): Promise<ProcessRunResult>;
179
+ spawn(argv: readonly string[], init?: Omit<ProcessSpawnRequest, 'argv'>): HookStream<ProcessSpawnChunk, ProcessSpawnResult>;
180
+ };
135
181
  readonly http: {
136
182
  fetch(url: string, init?: HttpInit): Promise<HttpResponse>;
137
183
  };
184
+ };
185
+ export declare const sessions: Imports['sessions'];
186
+ export declare const settings: Imports['settings'];
187
+ export declare const model: Imports['model'];
188
+ export declare const fs: Imports['fs'];
189
+ export declare const metadata: Imports['metadata'];
190
+ export declare const process: Imports['process'];
191
+ export declare const http: Imports['http'];
192
+ export type Mod<State extends object = Record<never, never>, Declared extends Options = Options> = {
193
+ readonly name: string;
194
+ readonly folder: string;
195
+ readonly dataFolder: string;
196
+ readonly state: Readonly<State>;
197
+ readonly options: OptionValues<Declared>;
198
+ readonly permissions: Permissions;
199
+ on<H extends Hook>(hook: H, listener: HookListener<H>, options?: HookOptions): Disposable;
200
+ on<H extends Hook>(hook: H, matcher: Matcher<HookInput<H>>, listener: HookListener<H>, options?: HookOptions): Disposable;
201
+ every(ms: number, listener: () => unknown): Disposable;
202
+ after(ms: number, listener: () => unknown): Disposable;
203
+ use<Handle>(job: Job<Handle, State>): Handle;
204
+ log(text: string): void;
205
+ readonly ui: {
206
+ pane(pane: Pane<State>): PaneHandle;
207
+ render<P extends Place>(place: P, Component: (props: PlaceProps<P>) => RenderElement): Disposable;
208
+ readonly toast: Toast;
209
+ ask(question: string, options?: readonly string[] | AskOptions): Promise<string>;
210
+ copy(text: string): Promise<void>;
211
+ scroll(args: UiScrollArgs): Promise<UiScrollResult>;
212
+ notice(callId: string, text: string | undefined): void;
213
+ };
138
214
  readonly settings: {
139
215
  page(page: Pane<State>): void;
140
216
  open(pageId?: string): Promise<void>;
141
217
  };
142
- readonly session: {
143
- messages: SessionMessages;
144
- append(text: string): Promise<void>;
145
- submit(text: string): Promise<void>;
146
- };
147
- readonly agent: {
148
- spawn(args: AgentSpawnArgs): Promise<AgentSpawnResult>;
149
- };
150
- readonly model: {
151
- complete(request: ModelCompleteRequest, options?: ModelCompleteOptions): Promise<ModelCompleteResult>;
152
- };
153
- readonly permissions: {
154
- has(name: ListPermission, value: string): boolean;
155
- has(name: FlagPermission): boolean;
156
- };
157
- readonly projectRoot: string;
158
- readonly cwd: string;
159
218
  readonly dependencies: CmodDependencies;
160
- readonly claude: ModClaude;
161
219
  };
220
+ export declare const Mod = "mod";
162
221
  type StateGroups = {
163
222
  readonly memory?: object;
164
223
  readonly session?: object;
@@ -176,14 +235,34 @@ export type ModDefinition<State extends StateGroups = Record<never, never>, Name
176
235
  readonly [method: string]: (input: never, mod: Mod<State>) => unknown;
177
236
  };
178
237
  readonly installer?: readonly Step<State>[];
179
- setup(mod: Mod<State, Declared>): void | Promise<void>;
238
+ setup(mod: Mod<State, Declared>): unknown;
180
239
  };
181
240
  export type JobContext<State extends object = Record<never, never>> = {
182
241
  readonly mod: Mod<State>;
183
242
  announce(feature: string): void;
184
- reserveName(kind: string, name: string, taken: string): void;
185
- readonly toolCalls: ToolCalls;
243
+ reserveName(type: string, name: string, taken: string): Disposable;
186
244
  };
187
245
  export type Job<Handle, State extends object = Record<never, never>> = (context: JobContext<State>) => Handle;
188
246
  export declare function defineMod<State extends StateGroups = Record<never, never>, Name extends string = string, const Declared extends Options = Record<never, Option>>(definition: ModDefinition<State, Name, Declared>): ModDefinition<State, Name, Declared>;
247
+ export type { Matcher } from './utils/matcher.js';
248
+ export type { Place, PlaceProps } from './ui/places.js';
249
+ export { AbovePrompt, AskUserQuestion, CommandOutput, PromptHint, SessionMode, Spinner, ToolGroup, ToolProgress, TurnDuration } from './ui/places.js';
250
+ export { Session, type SessionEvent, type SessionPayload, type SessionScope, type SessionSend, type Sessions, type TaskStartArgs, type Usage } from './session/session.js';
251
+ export { ContextEnd, ContextStart, type Context } from './session/context/context.js';
252
+ export { TurnEnd, TurnStart, type Turn } from './session/context/turn/turn.js';
253
+ export { Message, type MessageType } from './session/context/turn/message/message.js';
254
+ export { Prompt } from './session/context/turn/message/prompt.js';
255
+ export { Note } from './session/context/turn/message/note.js';
256
+ export { Reply } from './session/context/turn/message/reply.js';
257
+ export { ToolCall } from './session/context/turn/message/tool-call.js';
258
+ export { ToolResult } from './session/context/turn/message/tool-result.js';
259
+ export { Skill } from './session/context/turn/message/skill.js';
260
+ export { Document } from './session/context/turn/message/document.js';
261
+ export { Notice } from './session/context/turn/message/notice.js';
262
+ export { Channel, Person, Schedule, Sdk, type Sender, type SenderType } from './session/context/turn/message/sender.js';
263
+ export { GoalChange, type Goal } from './session/goal/goal.js';
264
+ export { Task, TaskEnd, TaskStart } from './session/goal/task.js';
265
+ export { longestMs } from './runtime/deadline.js';
266
+ export { notInstalled } from './runtime/dependencies.js';
267
+ export { messageOf } from './utils/text.js';
189
268
  //# sourceMappingURL=mod.d.ts.map
package/mod.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["src/mod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["src/mod.ts"],"names":[],"mappings":"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"}
package/mod.js CHANGED
@@ -1,7 +1,79 @@
1
1
  import { checkOptions } from './options.js';
2
- export { longestMs } from './runtime/deadline.js';
3
- export { notInstalled } from './runtime/dependencies.js';
4
- export { messageOf } from './utils/text.js';
2
+ import { bound } from './runtime/bound.js';
3
+ import { Mod as modSender } from './session/context/turn/message/sender.js';
4
+ export const SessionStart = 'SessionStart';
5
+ export const SessionEnd = 'SessionEnd';
6
+ export const UserPromptSubmit = 'UserPromptSubmit';
7
+ export const InstructionsLoaded = 'InstructionsLoaded';
8
+ export const PreToolUse = 'PreToolUse';
9
+ export const PermissionRequest = 'PermissionRequest';
10
+ export const PermissionDenied = 'PermissionDenied';
11
+ export const PostToolUse = 'PostToolUse';
12
+ export const PostToolUseFailure = 'PostToolUseFailure';
13
+ export const PostToolBatch = 'PostToolBatch';
14
+ export const SubagentStart = 'SubagentStart';
15
+ export const SubagentStop = 'SubagentStop';
16
+ export const Notification = 'Notification';
17
+ export const PreCompact = 'PreCompact';
18
+ export const Stop = 'Stop';
19
+ export const StopFailure = 'StopFailure';
20
+ export const CwdChanged = 'CwdChanged';
21
+ export const FileChanged = 'FileChanged';
22
+ export const hooks = [
23
+ SessionStart,
24
+ SessionEnd,
25
+ UserPromptSubmit,
26
+ InstructionsLoaded,
27
+ PreToolUse,
28
+ PermissionRequest,
29
+ PermissionDenied,
30
+ PostToolUse,
31
+ PostToolUseFailure,
32
+ PostToolBatch,
33
+ SubagentStart,
34
+ SubagentStop,
35
+ Notification,
36
+ PreCompact,
37
+ Stop,
38
+ StopFailure,
39
+ CwdChanged,
40
+ FileChanged,
41
+ ];
42
+ export const sessions = {
43
+ get current() {
44
+ return bound().sessions.current;
45
+ },
46
+ list: (options) => bound().sessions.list(options),
47
+ search: (text, options) => bound().sessions.search(text, options),
48
+ };
49
+ export const settings = {
50
+ user: { read: () => bound().settings.user.read(), update: (values) => bound().settings.user.update(values) },
51
+ project: { read: () => bound().settings.project.read(), update: (values) => bound().settings.project.update(values) },
52
+ local: { read: () => bound().settings.local.read(), update: (values) => bound().settings.local.update(values) },
53
+ };
54
+ export const model = {
55
+ complete: (request, options) => bound().model.complete(request, options),
56
+ };
57
+ export const fs = {
58
+ read: (path) => bound().fs.read(path),
59
+ write: (path, text) => bound().fs.write(path, text),
60
+ exists: (path) => bound().fs.exists(path),
61
+ find: (glob) => bound().fs.find(glob),
62
+ list: (path) => bound().fs.list(path),
63
+ stat: (path, options) => bound().fs.stat(path, options),
64
+ };
65
+ export const metadata = {
66
+ read: (path) => bound().metadata.read(path),
67
+ update: (path, change) => bound().metadata.update(path, change),
68
+ };
69
+ export const process = {
70
+ run: (argv, init) => bound().process.run(argv, init),
71
+ spawn: (argv, init) => bound().process.spawn(argv, init),
72
+ };
73
+ export const http = {
74
+ fetch: (url, init) => bound().http.fetch(url, init),
75
+ };
76
+ export const Mod = modSender;
5
77
  export function defineMod(definition) {
6
78
  if (definition.name.trim() === '')
7
79
  throw new Error('defineMod: the mod needs a name, such as the name in .claude-plugin/plugin.json.');
@@ -9,3 +81,22 @@ export function defineMod(definition) {
9
81
  checkOptions(definition.name, definition.options);
10
82
  return definition;
11
83
  }
84
+ export { AbovePrompt, AskUserQuestion, CommandOutput, PromptHint, SessionMode, Spinner, ToolGroup, ToolProgress, TurnDuration } from './ui/places.js';
85
+ export { Session } from './session/session.js';
86
+ export { ContextEnd, ContextStart } from './session/context/context.js';
87
+ export { TurnEnd, TurnStart } from './session/context/turn/turn.js';
88
+ export { Message } from './session/context/turn/message/message.js';
89
+ export { Prompt } from './session/context/turn/message/prompt.js';
90
+ export { Note } from './session/context/turn/message/note.js';
91
+ export { Reply } from './session/context/turn/message/reply.js';
92
+ export { ToolCall } from './session/context/turn/message/tool-call.js';
93
+ export { ToolResult } from './session/context/turn/message/tool-result.js';
94
+ export { Skill } from './session/context/turn/message/skill.js';
95
+ export { Document } from './session/context/turn/message/document.js';
96
+ export { Notice } from './session/context/turn/message/notice.js';
97
+ export { Channel, Person, Schedule, Sdk } from './session/context/turn/message/sender.js';
98
+ export { GoalChange } from './session/goal/goal.js';
99
+ export { Task, TaskEnd, TaskStart } from './session/goal/task.js';
100
+ export { longestMs } from './runtime/deadline.js';
101
+ export { notInstalled } from './runtime/dependencies.js';
102
+ export { messageOf } from './utils/text.js';
package/options.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- export type OptionKind = 'text' | 'secret' | 'number' | 'toggle' | 'choice' | 'folder' | 'file' | 'list';
1
+ export type OptionType = 'text' | 'secret' | 'number' | 'toggle' | 'choice' | 'folder' | 'file' | 'list';
2
2
  export type OptionValue = string | number | boolean | readonly string[];
3
3
  type Described = {
4
4
  readonly title: string;
5
5
  readonly description: string;
6
6
  };
7
7
  export type Option<Value extends OptionValue = OptionValue> = Described & {
8
- readonly kind: OptionKind;
8
+ readonly type: OptionType;
9
9
  readonly default?: Value;
10
10
  readonly min?: number;
11
11
  readonly max?: number;
package/options.js CHANGED
@@ -1,12 +1,12 @@
1
1
  export const option = {
2
- text: (field) => ({ ...field, kind: 'text' }),
3
- secret: (field) => ({ ...field, kind: 'secret' }),
4
- number: (field) => ({ ...field, kind: 'number' }),
5
- toggle: (field) => ({ ...field, kind: 'toggle', default: field.default ?? false }),
6
- choice: (choices, field) => ({ ...field, kind: 'choice', choices }),
7
- folder: (field) => ({ ...field, kind: 'folder' }),
8
- file: (field) => ({ ...field, kind: 'file' }),
9
- list: (field) => ({ ...field, kind: 'list' }),
2
+ text: (field) => ({ ...field, type: 'text' }),
3
+ secret: (field) => ({ ...field, type: 'secret' }),
4
+ number: (field) => ({ ...field, type: 'number' }),
5
+ toggle: (field) => ({ ...field, type: 'toggle', default: field.default ?? false }),
6
+ choice: (choices, field) => ({ ...field, type: 'choice', choices }),
7
+ folder: (field) => ({ ...field, type: 'folder' }),
8
+ file: (field) => ({ ...field, type: 'file' }),
9
+ list: (field) => ({ ...field, type: 'list' }),
10
10
  };
11
11
  const types = { text: 'string', secret: 'string', number: 'number', toggle: 'boolean', choice: 'string', folder: 'directory', file: 'file', list: 'string' };
12
12
  const optionKey = /^[A-Za-z_]\w*$/;
@@ -17,9 +17,9 @@ export function checkOptions(name, options) {
17
17
  throw new Error(`${at} is not an option name. Use letters, digits, and _, starting with a letter, as Claude Code passes each option on as CLAUDE_PLUGIN_OPTION_${key.toUpperCase()}.`);
18
18
  if (declared.title.trim() === '')
19
19
  throw new Error(`${at} needs a title, the label /config shows.`);
20
- if (declared.kind === 'choice' && (declared.choices ?? []).length === 0)
20
+ if (declared.type === 'choice' && (declared.choices ?? []).length === 0)
21
21
  throw new Error(`${at} is a choice with no choices. Give option.choice(['a', 'b'], { ... }).`);
22
- if (declared.kind === 'choice' && declared.default !== undefined && !(declared.choices ?? []).includes(declared.default))
22
+ if (declared.type === 'choice' && declared.default !== undefined && !(declared.choices ?? []).includes(declared.default))
23
23
  throw new Error(`${at} defaults to ${String(declared.default)}, which is not one of its choices: ${(declared.choices ?? []).join(', ')}.`);
24
24
  }
25
25
  return options;
@@ -28,12 +28,12 @@ export function userConfigOf(options) {
28
28
  return Object.fromEntries(Object.entries(options).map(([key, declared]) => [
29
29
  key,
30
30
  {
31
- type: types[declared.kind],
31
+ type: types[declared.type],
32
32
  title: declared.title,
33
33
  description: declared.description,
34
- ...(declared.kind === 'secret' ? { sensitive: true } : {}),
35
- ...(declared.kind === 'list' ? { multiple: true } : {}),
36
- ...(declared.kind === 'choice' ? { options: declared.choices } : {}),
34
+ ...(declared.type === 'secret' ? { sensitive: true } : {}),
35
+ ...(declared.type === 'list' ? { multiple: true } : {}),
36
+ ...(declared.type === 'choice' ? { options: declared.choices } : {}),
37
37
  ...(declared.default === undefined ? {} : { default: declared.default }),
38
38
  ...(declared.min === undefined ? {} : { min: declared.min }),
39
39
  ...(declared.max === undefined ? {} : { max: declared.max }),
@@ -44,10 +44,10 @@ export function isUnset(value) {
44
44
  return value === undefined || value === '' || (Array.isArray(value) && value.length === 0);
45
45
  }
46
46
  export function fitsOption(declared, value) {
47
- const kind = declared.kind;
48
- if (kind === 'toggle')
47
+ const type = declared.type;
48
+ if (type === 'toggle')
49
49
  return typeof value === 'boolean' ? undefined : 'takes true or false';
50
- if (kind === 'number') {
50
+ if (type === 'number') {
51
51
  if (typeof value !== 'number' || !Number.isFinite(value))
52
52
  return 'takes a number';
53
53
  if (declared.min !== undefined && value < declared.min)
@@ -56,11 +56,11 @@ export function fitsOption(declared, value) {
56
56
  return `takes ${declared.max} or less`;
57
57
  return undefined;
58
58
  }
59
- if (kind === 'list')
59
+ if (type === 'list')
60
60
  return Array.isArray(value) && value.every((item) => typeof item === 'string') ? undefined : 'takes a list of text';
61
61
  if (typeof value !== 'string')
62
62
  return 'takes text';
63
- if (kind === 'choice' && !(declared.choices ?? []).includes(value))
63
+ if (type === 'choice' && !(declared.choices ?? []).includes(value))
64
64
  return `takes one of: ${(declared.choices ?? []).join(', ')}`;
65
65
  return undefined;
66
66
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cmodjs/core",
3
- "version": "0.3.0",
3
+ "version": "1.0.0",
4
4
  "description": "Build Claude Code mods: hooks, panes, permissions, checks, and an install that just works.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -18,6 +18,7 @@
18
18
  "*.d.ts.map",
19
19
  "jobs/",
20
20
  "runtime/",
21
+ "session/",
21
22
  "testing/",
22
23
  "ui/",
23
24
  "utils/",
@@ -26,7 +27,7 @@
26
27
  ],
27
28
  "scripts": {
28
29
  "build": "tsc -p tsconfig.build.json && bun build src/vendor.ts --outfile vendor.js --format esm --target browser --define process=undefined && NODE_ENV=production bun build src/vendor-markdown.ts --outfile vendor-markdown.js --format esm --target browser --conditions worker",
29
- "check": "tsc -p tsconfig.json --noEmit && oxlint --deny-warnings",
30
+ "check": "tsc -p tsconfig.json --noEmit && OXLINT_TSGOLINT_PATH=../lint/node_modules/.bin/tsgolint ../lint/node_modules/.bin/oxlint --type-aware --deny-warnings",
30
31
  "test": "bun test"
31
32
  },
32
33
  "dependencies": {
@@ -42,7 +43,6 @@
42
43
  "mdast-util-gfm": "^3.1.0",
43
44
  "mdast-util-to-string": "^4.0.0",
44
45
  "micromark-extension-gfm": "^3.0.0",
45
- "oxlint": "1.86.0",
46
46
  "pathe": "^2.0.3",
47
47
  "picomatch": "^4.0.7",
48
48
  "shell-quote": "^1.12.0",
package/records.d.ts CHANGED
@@ -15,35 +15,35 @@ export type Steps = {
15
15
  keys?: Readonly<Record<string, string>>;
16
16
  permissions?: readonly string[];
17
17
  };
18
- export declare const listPermissions: readonly ['network', 'run', 'files'];
19
- export declare const flagPermissions: readonly ['conversation', 'prompt', 'model', 'agents', 'tools', 'config', 'approve'];
18
+ export declare const listPermissions: readonly ['network', 'run', 'files', 'config'];
19
+ export declare const flagPermissions: readonly ['conversation', 'prompt', 'model', 'tasks', 'tools', 'approve'];
20
20
  export type ListPermission = (typeof listPermissions)[number];
21
21
  export type FlagPermission = (typeof flagPermissions)[number];
22
22
  export type ReadFile = (path: string) => Promise<string | undefined>;
23
23
  export type RunnerEvent = {
24
- kind: 'progress';
24
+ type: 'progress';
25
25
  done: number;
26
26
  total: number;
27
27
  label: string;
28
28
  } | {
29
- kind: 'log';
29
+ type: 'log';
30
30
  text: string;
31
31
  } | {
32
- kind: 'needs-consent';
32
+ type: 'needs-consent';
33
33
  sha256: string;
34
34
  install: string;
35
35
  uninstall: string;
36
36
  keys: string;
37
37
  permissions: readonly string[];
38
38
  } | {
39
- kind: 'done';
39
+ type: 'done';
40
40
  name: string;
41
41
  version?: string;
42
42
  } | {
43
- kind: 'missing';
43
+ type: 'missing';
44
44
  name: string;
45
45
  } | {
46
- kind: 'failed';
46
+ type: 'failed';
47
47
  code: number;
48
48
  message: string;
49
49
  };
@@ -61,6 +61,7 @@ export declare function writeRecord(write: (path: string, text: string) => Promi
61
61
  export declare function readSteps(pkg: unknown): Steps | undefined;
62
62
  export declare function permissionWords(item: string): string;
63
63
  export declare const settingsPagesMethod = "cmod:settingsPages";
64
+ export declare const changelogPage = "changelog";
64
65
  export declare const openPageMethod = "cmod:openPage";
65
66
  export declare const pendingStepsMethod = "cmod:pendingSteps";
66
67
  export declare const finishStepsMethod = "cmod:finishSteps";
@@ -68,6 +69,7 @@ export declare function marketplaceOf(root: string, name: string): string | unde
68
69
  export declare function updatesToTurnOn(marketplace: string | undefined, settings: unknown, known: unknown): string | undefined;
69
70
  export declare function consentPath(store: string): string;
70
71
  export declare function parseConsent(value: unknown, path: string): Record<string, string[]>;
72
+ export declare const coreVersion = "1.0.0";
71
73
  export declare function oldestCmodFor(steps: Steps): string;
72
74
  export declare function keyWords(keys: Readonly<Record<string, string>> | undefined): string;
73
75
  export declare function scriptPaths(command: string): string[];