@cmodjs/core 0.1.5 → 0.1.7

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 (66) hide show
  1. package/docs/commands.md +4 -3
  2. package/docs/hooks.md +2 -0
  3. package/docs/index.md +4 -4
  4. package/docs/jobs.md +23 -22
  5. package/docs/mod.md +24 -9
  6. package/docs/testing.md +1 -1
  7. package/jobs/check.d.ts +2 -2
  8. package/jobs/check.d.ts.map +1 -1
  9. package/jobs/check.js +5 -5
  10. package/jobs/context.d.ts +14 -0
  11. package/jobs/context.d.ts.map +1 -0
  12. package/jobs/{part-context.js → context.js} +6 -6
  13. package/jobs/permissions.d.ts +2 -2
  14. package/jobs/permissions.d.ts.map +1 -1
  15. package/jobs/permissions.js +7 -7
  16. package/jobs/program.d.ts +2 -2
  17. package/jobs/program.d.ts.map +1 -1
  18. package/jobs/prompt.d.ts +2 -2
  19. package/jobs/prompt.d.ts.map +1 -1
  20. package/jobs/prompt.js +17 -17
  21. package/jobs/slash-command.d.ts +2 -2
  22. package/jobs/slash-command.d.ts.map +1 -1
  23. package/jobs/slash-command.js +5 -5
  24. package/jobs/status-line.d.ts +2 -2
  25. package/jobs/status-line.d.ts.map +1 -1
  26. package/jobs/status-line.js +5 -5
  27. package/jobs/tool.d.ts +2 -2
  28. package/jobs/tool.d.ts.map +1 -1
  29. package/jobs/tool.js +5 -5
  30. package/mod.d.ts +3 -3
  31. package/mod.d.ts.map +1 -1
  32. package/package.json +2 -2
  33. package/register.d.ts +5 -0
  34. package/register.d.ts.map +1 -0
  35. package/{connect.js → register.js} +42 -39
  36. package/runtime/hooks.d.ts +1 -0
  37. package/runtime/hooks.d.ts.map +1 -1
  38. package/runtime/hooks.js +1 -0
  39. package/runtime/lifecycle.d.ts +1 -1
  40. package/runtime/lifecycle.d.ts.map +1 -1
  41. package/runtime/lifecycle.js +16 -13
  42. package/runtime/router.d.ts +1 -0
  43. package/runtime/router.d.ts.map +1 -1
  44. package/runtime/router.js +1 -0
  45. package/runtime/tool-calls.d.ts +3 -2
  46. package/runtime/tool-calls.d.ts.map +1 -1
  47. package/runtime/tool-calls.js +11 -14
  48. package/src/jobs/check.ts +7 -7
  49. package/src/jobs/{part-context.ts → context.ts} +10 -10
  50. package/src/jobs/permissions.ts +9 -9
  51. package/src/jobs/program.ts +2 -2
  52. package/src/jobs/prompt.ts +19 -19
  53. package/src/jobs/slash-command.ts +7 -7
  54. package/src/jobs/status-line.ts +7 -7
  55. package/src/jobs/tool.ts +7 -7
  56. package/src/mod.ts +3 -3
  57. package/src/{connect.ts → register.ts} +44 -40
  58. package/src/runtime/hooks.ts +2 -0
  59. package/src/runtime/lifecycle.ts +18 -14
  60. package/src/runtime/router.ts +2 -0
  61. package/src/runtime/tool-calls.ts +12 -14
  62. package/vendor.js +1 -3
  63. package/connect.d.ts +0 -4
  64. package/connect.d.ts.map +0 -1
  65. package/jobs/part-context.d.ts +0 -14
  66. package/jobs/part-context.d.ts.map +0 -1
@@ -1,4 +1,5 @@
1
- import type { PartContext } from '../mod.js'
1
+ import type { Claude } from './claude.js'
2
+ import type { Router } from './router.js'
2
3
 
3
4
  export type Agent = { agentId?: string; agentType?: string }
4
5
 
@@ -17,22 +18,27 @@ type AgentFields = { readonly agent_id?: string; readonly agent_type?: string }
17
18
 
18
19
  const keptCalls = 100
19
20
 
20
- export function toolCalls({ claude, on }: Pick<PartContext, 'claude' | 'on'>): ToolCalls {
21
+ export function toolCalls(claude: Claude, router: Router): ToolCalls {
21
22
  let mainAgentType: string | undefined
22
23
  const agentIds = new Map<string, string>()
23
24
  const cwds = new Map<string, string>()
24
25
  const noteAgent = (e: AgentFields) => {
25
26
  if (e.agent_id === undefined) mainAgentType = e.agent_type
26
27
  }
27
- on('classic.SessionStart', (e, next) => {
28
+ router.add('classic.SessionStart', (e, next) => {
28
29
  noteAgent(e)
29
30
  return next(e)
30
31
  })
31
- on('classic.UserPromptSubmit', (e, next) => {
32
+ router.add('classic.UserPromptSubmit', (e, next) => {
32
33
  noteAgent(e)
33
34
  return next(e)
34
35
  })
35
- on('tool.call', async (e, next) => {
36
+ router.add('tool.call', async (e, next) => {
37
+ cwds.set(e.tool_use_id, await claude.session.cwd())
38
+ for (const oldest of cwds.keys()) {
39
+ if (cwds.size <= keptCalls) break
40
+ cwds.delete(oldest)
41
+ }
36
42
  if (e.agentId === undefined) return next(e)
37
43
  agentIds.set(e.tool_use_id, e.agentId)
38
44
  try {
@@ -41,16 +47,8 @@ export function toolCalls({ claude, on }: Pick<PartContext, 'claude' | 'on'>): T
41
47
  agentIds.delete(e.tool_use_id)
42
48
  }
43
49
  })
44
- on('classic.PreToolUse', async (e, next) => {
45
- cwds.set(e.tool_use_id, await claude.session.cwd())
46
- for (const oldest of cwds.keys()) {
47
- if (cwds.size <= keptCalls) break
48
- cwds.delete(oldest)
49
- }
50
- return next(e)
51
- })
52
50
  for (const event of ['classic.PostToolUse', 'classic.PostToolUseFailure'] as const) {
53
- on(event, async (e, next) => {
51
+ router.add(event, async (e, next) => {
54
52
  try {
55
53
  return await next(e)
56
54
  } finally {
package/vendor.js CHANGED
@@ -179,9 +179,7 @@ var require_utils = __commonJS((exports) => {
179
179
  const platform = navigator.platform.toLowerCase();
180
180
  return platform === "win32" || platform === "windows";
181
181
  }
182
- if (typeof process !== "undefined" && process.platform) {
183
- return process.platform === "win32";
184
- }
182
+ if (false) {}
185
183
  return false;
186
184
  };
187
185
  exports.removeBackslashes = (str) => {
package/connect.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import type { On } from 'claude-code';
2
- import type { ModDefinition } from './mod.js';
3
- export declare function connect<State extends object>(on: On, definition: ModDefinition<State>): void;
4
- //# sourceMappingURL=connect.d.ts.map
package/connect.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoD,EAAE,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AA2E7C,wBAAgB,OAAO,CAAC,KAAK,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,CA8B5F"}
@@ -1,14 +0,0 @@
1
- import type { Mod, PartContext } from '../mod.js';
2
- import { type Deadline } from '../runtime/deadline.js';
3
- import type { ToolCall, ToolUse } from '../utils/call-effects.js';
4
- import { type Workspace } from './permissions/find-project-scope.js';
5
- import { type Target } from './permissions/match-target.js';
6
- export declare function workspaceReader({ claude }: PartContext): () => Promise<Workspace>;
7
- export declare function afterCall<State extends object>(part: PartContext<State>, contextAfter: (use: ToolUse, workspace: Workspace) => Promise<readonly string[]>, failed: (error: unknown) => readonly string[]): void;
8
- export declare function modOf<State extends object>(context: PartContext<State>, { call, folder }: {
9
- readonly call?: ToolCall;
10
- readonly folder: string;
11
- }, workspace: Workspace, deadline: Deadline): Mod<State>;
12
- export declare function modWithin<State extends object>({ mod, claude }: PartContext<State>, deadline: Deadline, workTree?: () => Promise<string | undefined>): Mod<State>;
13
- export declare function targetWords(target: Target): string;
14
- //# sourceMappingURL=part-context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"part-context.d.ts","sourceRoot":"","sources":["../src/jobs/part-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEjD,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAItE,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,qCAAqC,CAAA;AACtF,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAOrE,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAOjF;AAaD,wBAAgB,SAAS,CAAC,KAAK,SAAS,MAAM,EAC5C,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EACxB,YAAY,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,EAChF,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,MAAM,EAAE,GAC5C,IAAI,CAUN;AAMD,wBAAgB,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAEtM;AAED,wBAAgB,SAAS,CAAC,KAAK,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAyB,GAAG,GAAG,CAAC,KAAK,CAAC,CAwBxL;AAwBD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CASlD"}