@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.
- package/docs/commands.md +4 -3
- package/docs/hooks.md +2 -0
- package/docs/index.md +4 -4
- package/docs/jobs.md +23 -22
- package/docs/mod.md +24 -9
- package/docs/testing.md +1 -1
- package/jobs/check.d.ts +2 -2
- package/jobs/check.d.ts.map +1 -1
- package/jobs/check.js +5 -5
- package/jobs/context.d.ts +14 -0
- package/jobs/context.d.ts.map +1 -0
- package/jobs/{part-context.js → context.js} +6 -6
- package/jobs/permissions.d.ts +2 -2
- package/jobs/permissions.d.ts.map +1 -1
- package/jobs/permissions.js +7 -7
- package/jobs/program.d.ts +2 -2
- package/jobs/program.d.ts.map +1 -1
- package/jobs/prompt.d.ts +2 -2
- package/jobs/prompt.d.ts.map +1 -1
- package/jobs/prompt.js +17 -17
- package/jobs/slash-command.d.ts +2 -2
- package/jobs/slash-command.d.ts.map +1 -1
- package/jobs/slash-command.js +5 -5
- package/jobs/status-line.d.ts +2 -2
- package/jobs/status-line.d.ts.map +1 -1
- package/jobs/status-line.js +5 -5
- package/jobs/tool.d.ts +2 -2
- package/jobs/tool.d.ts.map +1 -1
- package/jobs/tool.js +5 -5
- package/mod.d.ts +3 -3
- package/mod.d.ts.map +1 -1
- package/package.json +2 -2
- package/register.d.ts +5 -0
- package/register.d.ts.map +1 -0
- package/{connect.js → register.js} +42 -39
- package/runtime/hooks.d.ts +1 -0
- package/runtime/hooks.d.ts.map +1 -1
- package/runtime/hooks.js +1 -0
- package/runtime/lifecycle.d.ts +1 -1
- package/runtime/lifecycle.d.ts.map +1 -1
- package/runtime/lifecycle.js +16 -13
- package/runtime/router.d.ts +1 -0
- package/runtime/router.d.ts.map +1 -1
- package/runtime/router.js +1 -0
- package/runtime/tool-calls.d.ts +3 -2
- package/runtime/tool-calls.d.ts.map +1 -1
- package/runtime/tool-calls.js +11 -14
- package/src/jobs/check.ts +7 -7
- package/src/jobs/{part-context.ts → context.ts} +10 -10
- package/src/jobs/permissions.ts +9 -9
- package/src/jobs/program.ts +2 -2
- package/src/jobs/prompt.ts +19 -19
- package/src/jobs/slash-command.ts +7 -7
- package/src/jobs/status-line.ts +7 -7
- package/src/jobs/tool.ts +7 -7
- package/src/mod.ts +3 -3
- package/src/{connect.ts → register.ts} +44 -40
- package/src/runtime/hooks.ts +2 -0
- package/src/runtime/lifecycle.ts +18 -14
- package/src/runtime/router.ts +2 -0
- package/src/runtime/tool-calls.ts +12 -14
- package/vendor.js +1 -3
- package/connect.d.ts +0 -4
- package/connect.d.ts.map +0 -1
- package/jobs/part-context.d.ts +0 -14
- package/jobs/part-context.d.ts.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
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(
|
|
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
|
-
|
|
28
|
+
router.add('classic.SessionStart', (e, next) => {
|
|
28
29
|
noteAgent(e)
|
|
29
30
|
return next(e)
|
|
30
31
|
})
|
|
31
|
-
|
|
32
|
+
router.add('classic.UserPromptSubmit', (e, next) => {
|
|
32
33
|
noteAgent(e)
|
|
33
34
|
return next(e)
|
|
34
35
|
})
|
|
35
|
-
|
|
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
|
-
|
|
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 (
|
|
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
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"}
|
package/jobs/part-context.d.ts
DELETED
|
@@ -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"}
|