@gencode/agents 0.0.1 → 0.0.3

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 (56) hide show
  1. package/dist/config-DJX-VM7S.js +198 -0
  2. package/dist/config-DJX-VM7S.js.map +1 -0
  3. package/dist/index-JD6Ye-N5.d.ts +149 -0
  4. package/dist/index-JD6Ye-N5.d.ts.map +1 -0
  5. package/dist/manager-qXa-NP0p.js +1651 -0
  6. package/dist/manager-qXa-NP0p.js.map +1 -0
  7. package/dist/message.d.ts +11 -0
  8. package/dist/message.d.ts.map +1 -0
  9. package/dist/message.js +46 -0
  10. package/dist/message.js.map +1 -0
  11. package/dist/runner/runner.d.ts.map +1 -1
  12. package/dist/runner/runner.js +131 -31
  13. package/dist/runner/runner.js.map +1 -1
  14. package/dist/runner/skill-usage.d.ts +29 -0
  15. package/dist/runner/skill-usage.d.ts.map +1 -0
  16. package/dist/runner/skill-usage.js +65 -0
  17. package/dist/runner/skill-usage.js.map +1 -0
  18. package/dist/security/command-dangerous-rules.d.ts +4 -0
  19. package/dist/security/command-dangerous-rules.d.ts.map +1 -0
  20. package/dist/security/command-dangerous-rules.js +26 -0
  21. package/dist/security/command-dangerous-rules.js.map +1 -0
  22. package/dist/security/command-parser.d.ts +3 -0
  23. package/dist/security/command-parser.d.ts.map +1 -0
  24. package/dist/security/command-parser.js +191 -0
  25. package/dist/security/command-parser.js.map +1 -0
  26. package/dist/security/command-path-guard.d.ts +10 -0
  27. package/dist/security/command-path-guard.d.ts.map +1 -0
  28. package/dist/security/command-path-guard.js +126 -0
  29. package/dist/security/command-path-guard.js.map +1 -0
  30. package/dist/security/command-policy-config.d.ts +5 -0
  31. package/dist/security/command-policy-config.d.ts.map +1 -0
  32. package/dist/security/command-policy-config.js +212 -0
  33. package/dist/security/command-policy-config.js.map +1 -0
  34. package/dist/security/command-policy-engine.d.ts +8 -0
  35. package/dist/security/command-policy-engine.d.ts.map +1 -0
  36. package/dist/security/command-policy-engine.js +122 -0
  37. package/dist/security/command-policy-engine.js.map +1 -0
  38. package/dist/security/command-policy-types.d.ts +67 -0
  39. package/dist/security/command-policy-types.d.ts.map +1 -0
  40. package/dist/security/command-policy-types.js +2 -0
  41. package/dist/security/command-policy-types.js.map +1 -0
  42. package/dist/security/command-safe-bins.d.ts +4 -0
  43. package/dist/security/command-safe-bins.d.ts.map +1 -0
  44. package/dist/security/command-safe-bins.js +84 -0
  45. package/dist/security/command-safe-bins.js.map +1 -0
  46. package/dist/security/command-trusted-executables.d.ts +6 -0
  47. package/dist/security/command-trusted-executables.d.ts.map +1 -0
  48. package/dist/security/command-trusted-executables.js +57 -0
  49. package/dist/security/command-trusted-executables.js.map +1 -0
  50. package/dist/tools/cron.d.ts +22 -15
  51. package/dist/tools/cron.d.ts.map +1 -1
  52. package/dist/tools/cron.js +40 -20
  53. package/dist/tools/cron.js.map +1 -1
  54. package/dist/types.d.ts +5 -0
  55. package/dist/types.d.ts.map +1 -1
  56. package/package.json +1 -1
@@ -24,6 +24,7 @@ import { handleResetCommand } from "../commands/reset.js";
24
24
  import { compactTranscriptNow } from "../commands/compact.js";
25
25
  import { LlmRequestError } from "../llm/client.js";
26
26
  import { streamOpenAICompletionsCompat, streamSimpleOpenAICompletionsCompat, } from "../llm/openai-completions-compat.js";
27
+ import { SkillUsageTracker } from "./skill-usage.js";
27
28
  // Register built-in API providers (must be called once at startup)
28
29
  registerBuiltInApiProviders();
29
30
  registerApiProvider({
@@ -43,7 +44,7 @@ export function generateSessionTitle(message, maxLength = 80) {
43
44
  /**
44
45
  * Creates a Model object for use with vLLM/OpenAI-compatible APIs.
45
46
  */
46
- function createOpenAICompatModel(params) {
47
+ function createOpenAICompatModel(params, sessionId) {
47
48
  return {
48
49
  id: params.model,
49
50
  name: params.model,
@@ -55,7 +56,10 @@ function createOpenAICompatModel(params) {
55
56
  cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
56
57
  contextWindow: params.contextWindow ?? 200_000,
57
58
  maxTokens: 32_768,
58
- headers: { "Client-Code": "AIMax" },
59
+ headers: {
60
+ "Client-Code": "AIMax",
61
+ "X-Session-Id": sessionId,
62
+ },
59
63
  compat: {
60
64
  supportsStore: false,
61
65
  supportsDeveloperRole: false,
@@ -85,6 +89,57 @@ function normalizeMemoryChangedFiles(files) {
85
89
  function isTextRunParams(params) {
86
90
  return typeof params.message === "string";
87
91
  }
92
+ function extractLeadingUserTextMessage(messages) {
93
+ for (let index = 0; index < messages.length; index += 1) {
94
+ const candidate = messages[index];
95
+ if (candidate.role !== "user") {
96
+ continue;
97
+ }
98
+ if (typeof candidate.content === "string") {
99
+ return { index, text: candidate.content };
100
+ }
101
+ if (!Array.isArray(candidate.content) || candidate.content.length === 0) {
102
+ return null;
103
+ }
104
+ const firstBlock = candidate.content[0];
105
+ if (firstBlock?.type === "text" && typeof firstBlock.text === "string") {
106
+ return { index, text: firstBlock.text };
107
+ }
108
+ return null;
109
+ }
110
+ return null;
111
+ }
112
+ function replaceLeadingUserTextMessage(messages, replacement) {
113
+ const match = extractLeadingUserTextMessage(messages);
114
+ if (!match) {
115
+ return messages;
116
+ }
117
+ return messages.map((message, index) => {
118
+ if (index !== match.index) {
119
+ return message;
120
+ }
121
+ const candidate = message;
122
+ if (typeof candidate.content === "string") {
123
+ return { ...message, content: replacement };
124
+ }
125
+ if (Array.isArray(candidate.content) && candidate.content.length > 0) {
126
+ return {
127
+ ...message,
128
+ content: candidate.content.map((block, blockIndex) => {
129
+ if (blockIndex !== 0) {
130
+ return block;
131
+ }
132
+ const typedBlock = block;
133
+ if (typedBlock?.type === "text" && typeof typedBlock.text === "string") {
134
+ return { ...typedBlock, text: replacement };
135
+ }
136
+ return block;
137
+ }),
138
+ };
139
+ }
140
+ return message;
141
+ });
142
+ }
88
143
  function serializeUserInput(input) {
89
144
  return typeof input === "string" ? input : JSON.stringify(input);
90
145
  }
@@ -179,18 +234,27 @@ function buildBatchAnnounceMessage(completed) {
179
234
  * Runs one invocation of agent.prompt() and collects text output, usage, and
180
235
  * full turn records (via `turn_end` events when the SDK fires them).
181
236
  */
182
- async function runAgentTurn(agent, message, sessionId, modelId, historyMessages, params, hooks, hookCtx, abortSignal) {
183
- let responseText = "";
237
+ async function runAgentTurn(agent, message, sessionId, modelId, historyMessages, params, skillUsageTracker, hooks, hookCtx, abortSignal) {
238
+ let pendingTextChunk = "";
239
+ let lastTextChunk = "";
184
240
  let inputTokens = 0;
185
241
  let outputTokens = 0;
186
242
  let runError;
187
243
  let sdkError;
188
244
  const turnRecords = [];
245
+ const flushPendingTextChunk = async () => {
246
+ if (!pendingTextChunk) {
247
+ return;
248
+ }
249
+ lastTextChunk = pendingTextChunk;
250
+ await dispatchProgress(sessionId, { type: "text", text: pendingTextChunk }, params);
251
+ pendingTextChunk = "";
252
+ };
189
253
  const unsubscribe = agent.subscribe(async (event) => {
190
254
  if (event.type === "message_update") {
191
255
  const assistantEvent = event.assistantMessageEvent;
192
256
  if (assistantEvent.type === "text_delta" && typeof assistantEvent.delta === "string") {
193
- responseText += assistantEvent.delta;
257
+ pendingTextChunk += assistantEvent.delta;
194
258
  }
195
259
  if (assistantEvent.type === "done") {
196
260
  const msg = assistantEvent.message;
@@ -198,9 +262,7 @@ async function runAgentTurn(agent, message, sessionId, modelId, historyMessages,
198
262
  inputTokens = msg.usage.input;
199
263
  outputTokens = msg.usage.output;
200
264
  }
201
- if (responseText) {
202
- await dispatchProgress(sessionId, { type: "text", text: responseText }, params);
203
- }
265
+ await flushPendingTextChunk();
204
266
  }
205
267
  }
206
268
  else if (event.type === "message_end") {
@@ -229,9 +291,12 @@ async function runAgentTurn(agent, message, sessionId, modelId, historyMessages,
229
291
  turnRecords.push({ message: msg, toolResults });
230
292
  }
231
293
  else if (event.type === "tool_execution_start") {
294
+ await flushPendingTextChunk();
295
+ skillUsageTracker.onToolExecutionStart({ toolName: event.toolName, args: event.args });
232
296
  await dispatchProgress(sessionId, { type: "tool_start", name: event.toolName, input: event.args }, params);
233
297
  }
234
298
  else if (event.type === "tool_execution_end") {
299
+ await skillUsageTracker.onToolExecutionEnd({ toolName: event.toolName, isError: event.isError });
235
300
  const output = typeof event.result === "string" ? event.result : JSON.stringify(event.result);
236
301
  await dispatchProgress(sessionId, { type: "tool_end", name: event.toolName, output, isError: event.isError }, params);
237
302
  }
@@ -272,11 +337,11 @@ async function runAgentTurn(agent, message, sessionId, modelId, historyMessages,
272
337
  await hooks.dispatch("llm_output", {
273
338
  sessionId,
274
339
  model: modelId,
275
- assistantTexts: responseText ? [responseText] : [],
340
+ assistantTexts: lastTextChunk ? [lastTextChunk] : [],
276
341
  lastAssistant,
277
342
  usage: { input: inputTokens, output: outputTokens, total: inputTokens + outputTokens },
278
343
  }, hookCtx);
279
- return { text: responseText, inputTokens, outputTokens, error: runError, turnRecords };
344
+ return { text: lastTextChunk, inputTokens, outputTokens, error: runError, turnRecords };
280
345
  }
281
346
  function formatRunError(error) {
282
347
  const llmError = toLlmRequestErrorLike(error);
@@ -352,14 +417,21 @@ async function runAgentInternal(params, registry) {
352
417
  const inputMode = isTextRunParams(params) ? "text" : "messages";
353
418
  const rawMessage = inputMode === "text" ? params.message : undefined;
354
419
  const inputMessages = inputMode === "messages" ? params.messages : undefined;
355
- const resetCommand = rawMessage ? parseResetCommand(rawMessage) : null;
420
+ const structuredUserText = inputMessages ? extractLeadingUserTextMessage(inputMessages) : null;
421
+ const slashCommandSource = rawMessage ?? structuredUserText?.text;
422
+ const resetCommand = slashCommandSource ? parseResetCommand(slashCommandSource) : null;
356
423
  const resetRemainder = resetCommand?.remainder ?? "";
357
424
  const resetShortCircuit = Boolean(resetCommand && !resetRemainder);
358
- const messageForRun = resetCommand && resetRemainder ? resetRemainder : rawMessage;
359
- const promptInput = inputMode === "text" ? (messageForRun ?? "") : inputMessages;
425
+ const messageForRun = resetCommand && resetRemainder ? resetRemainder : slashCommandSource;
426
+ const promptInput = inputMode === "text"
427
+ ? (messageForRun ?? "")
428
+ : (resetCommand && resetRemainder && inputMessages
429
+ ? replaceLeadingUserTextMessage(inputMessages, resetRemainder)
430
+ : inputMessages);
360
431
  let transcriptMessage = inputMode === "text"
361
432
  ? (resetShortCircuit ? rawMessage : (messageForRun ?? ""))
362
- : serializeUserInput(inputMessages);
433
+ : serializeUserInput(promptInput);
434
+ let initialUserEntryPersisted = false;
363
435
  const previousSessionId = resetCommand ? params.sessionId : undefined;
364
436
  const workspaceDir = path.join(params.dataDir, "workspace");
365
437
  // 1. Resolve or create session
@@ -446,6 +518,17 @@ async function runAgentInternal(params, registry) {
446
518
  onMemoryChanged: emitMemoryChanged,
447
519
  }
448
520
  : { onMemoryChanged: emitMemoryChanged };
521
+ const persistInitialUserEntry = async () => {
522
+ if (initialUserEntryPersisted) {
523
+ return;
524
+ }
525
+ await appendTranscriptEntry(params.dataDir, sessionId, {
526
+ role: "user",
527
+ content: transcriptMessage,
528
+ timestamp: new Date().toISOString(),
529
+ }, transcriptOptions);
530
+ initialUserEntryPersisted = true;
531
+ };
449
532
  const memoryRoot = path.join(params.dataDir, ".aimax");
450
533
  const resolvedProvider = resolveMemoryProvider({
451
534
  providerId: memoryProviderId,
@@ -466,6 +549,9 @@ async function runAgentInternal(params, registry) {
466
549
  if (provider.sync) {
467
550
  void provider.sync("session-start").catch(() => { });
468
551
  }
552
+ if (resetCommand) {
553
+ await persistInitialUserEntry();
554
+ }
469
555
  if (resetCommand && params.callbackUrl) {
470
556
  await sendCallback(params.callbackUrl, {
471
557
  sessionId,
@@ -512,6 +598,12 @@ async function runAgentInternal(params, registry) {
512
598
  // 4. Load skills (user + plugin skills)
513
599
  const pluginSkillDirs = pluginSystem?.registry.skills ?? [];
514
600
  const skills = await loadSkillsWithPluginDirs(params.dataDir, pluginSkillDirs);
601
+ const skillUsageTracker = new SkillUsageTracker({
602
+ workspaceDir,
603
+ sessionId,
604
+ skills,
605
+ report: (event) => dispatchProgress(sessionId, event, params),
606
+ });
515
607
  if (resetShortCircuit) {
516
608
  const resetReply = resetCommand?.action === "reset" ? handleResetCommand() : handleNewCommand();
517
609
  return finalizeSlashCommandResult({
@@ -519,6 +611,7 @@ async function runAgentInternal(params, registry) {
519
611
  sessionId,
520
612
  isNewSession,
521
613
  transcriptMessage,
614
+ initialUserEntryPersisted,
522
615
  params,
523
616
  hookRegistry,
524
617
  hookContext,
@@ -526,7 +619,7 @@ async function runAgentInternal(params, registry) {
526
619
  });
527
620
  }
528
621
  let effectivePrompt = promptInput;
529
- if (inputMode === "text") {
622
+ if (slashCommandSource) {
530
623
  const slashResult = handleSlashCommand({ message: messageForRun ?? "", skills });
531
624
  if (slashResult.kind === "reply") {
532
625
  return finalizeSlashCommandResult({
@@ -563,6 +656,7 @@ async function runAgentInternal(params, registry) {
563
656
  sessionId,
564
657
  isNewSession,
565
658
  transcriptMessage,
659
+ initialUserEntryPersisted,
566
660
  params,
567
661
  hookRegistry,
568
662
  hookContext,
@@ -570,8 +664,16 @@ async function runAgentInternal(params, registry) {
570
664
  compactionEntry: compactResult.status === "compacted" ? compactResult.entry : undefined,
571
665
  });
572
666
  }
573
- effectivePrompt = slashResult.kind === "rewrite" ? slashResult.message : (messageForRun ?? "");
574
- transcriptMessage = typeof effectivePrompt === "string" ? effectivePrompt : transcriptMessage;
667
+ if (slashResult.kind === "rewrite") {
668
+ effectivePrompt = inputMode === "text"
669
+ ? slashResult.message
670
+ : replaceLeadingUserTextMessage(promptInput, slashResult.message);
671
+ transcriptMessage = serializeUserInput(effectivePrompt);
672
+ }
673
+ else if (inputMode === "text") {
674
+ effectivePrompt = messageForRun ?? "";
675
+ transcriptMessage = typeof effectivePrompt === "string" ? effectivePrompt : transcriptMessage;
676
+ }
575
677
  }
576
678
  const effectivePromptText = typeof effectivePrompt === "string" ? effectivePrompt : transcriptMessage;
577
679
  // 5. Load and manage conversation history
@@ -701,7 +803,7 @@ async function runAgentInternal(params, registry) {
701
803
  resolvedModelId = result.modelOverride;
702
804
  }
703
805
  }
704
- const model = createOpenAICompatModel({ ...params.llm, model: resolvedModelId });
806
+ const model = createOpenAICompatModel({ ...params.llm, model: resolvedModelId }, sessionId);
705
807
  const apiKey = params.llm.apiKey;
706
808
  const agent = new Agent({
707
809
  initialState: { systemPrompt, model, tools, messages: [] },
@@ -726,13 +828,9 @@ async function runAgentInternal(params, registry) {
726
828
  try {
727
829
  // 12. Persist the initial user turn before the first model call so the
728
830
  // transcript still records the request if the turn aborts or fails.
729
- await appendTranscriptEntry(params.dataDir, sessionId, {
730
- role: "user",
731
- content: transcriptMessage,
732
- timestamp: new Date().toISOString(),
733
- }, transcriptOptions);
831
+ await persistInitialUserEntry();
734
832
  // 13. First agent turn
735
- const turn = await runAgentTurn(agent, effectivePrompt, sessionId, resolvedModelId, historyResult.messages, params, hookRegistry, hookContext, abortController.signal);
833
+ const turn = await runAgentTurn(agent, effectivePrompt, sessionId, resolvedModelId, historyResult.messages, params, skillUsageTracker, hookRegistry, hookContext, abortController.signal);
736
834
  lastResponseText = turn.text;
737
835
  totalInputTokens += turn.inputTokens;
738
836
  totalOutputTokens += turn.outputTokens;
@@ -764,7 +862,7 @@ async function runAgentInternal(params, registry) {
764
862
  content: announceMsg,
765
863
  timestamp: new Date().toISOString(),
766
864
  }, transcriptOptions);
767
- const announceTurn = await runAgentTurn(agent, announceMsg, sessionId, resolvedModelId, [], params, hookRegistry, hookContext, abortController.signal);
865
+ const announceTurn = await runAgentTurn(agent, announceMsg, sessionId, resolvedModelId, [], params, skillUsageTracker, hookRegistry, hookContext, abortController.signal);
768
866
  lastResponseText = announceTurn.text;
769
867
  totalInputTokens += announceTurn.inputTokens;
770
868
  totalOutputTokens += announceTurn.outputTokens;
@@ -830,12 +928,14 @@ async function runAgentInternal(params, registry) {
830
928
  return result;
831
929
  }
832
930
  async function finalizeSlashCommandResult(params) {
833
- const { replyText, sessionId, isNewSession, transcriptMessage, params: runParams, hookRegistry, hookContext, startTime, compactionEntry, } = params;
834
- await appendTranscriptEntry(runParams.dataDir, sessionId, {
835
- role: "user",
836
- content: transcriptMessage,
837
- timestamp: new Date().toISOString(),
838
- });
931
+ const { replyText, sessionId, isNewSession, transcriptMessage, initialUserEntryPersisted = false, params: runParams, hookRegistry, hookContext, startTime, compactionEntry, } = params;
932
+ if (!initialUserEntryPersisted) {
933
+ await appendTranscriptEntry(runParams.dataDir, sessionId, {
934
+ role: "user",
935
+ content: transcriptMessage,
936
+ timestamp: new Date().toISOString(),
937
+ });
938
+ }
839
939
  if (compactionEntry) {
840
940
  await appendTranscriptEntry(runParams.dataDir, sessionId, compactionEntry);
841
941
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { Skill } from "../skills/skills.js";
2
+ import type { AgentProgressEvent } from "../types.js";
3
+ type ToolExecutionStartEvent = {
4
+ toolName: string;
5
+ args?: unknown;
6
+ };
7
+ type ToolExecutionEndEvent = {
8
+ toolName: string;
9
+ isError: boolean;
10
+ };
11
+ type SkillUsageReporter = (event: Extract<AgentProgressEvent, {
12
+ type: "skill_used";
13
+ }>) => Promise<void>;
14
+ export declare class SkillUsageTracker {
15
+ private readonly params;
16
+ private readonly skillLocations;
17
+ private readonly reportedSkills;
18
+ private readonly pendingReadFilePaths;
19
+ constructor(params: {
20
+ workspaceDir: string;
21
+ sessionId: string;
22
+ skills: Skill[];
23
+ report: SkillUsageReporter;
24
+ });
25
+ onToolExecutionStart(event: ToolExecutionStartEvent): void;
26
+ onToolExecutionEnd(event: ToolExecutionEndEvent): Promise<void>;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=skill-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-usage.d.ts","sourceRoot":"","sources":["../../src/runner/skill-usage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,kBAAkB,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AA2BxG,qBAAa,iBAAiB;IAM1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;gBAGlC,MAAM,EAAE;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,MAAM,EAAE,kBAAkB,CAAC;KAC5B;IAOH,oBAAoB,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI;IAgBpD,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBtE"}
@@ -0,0 +1,65 @@
1
+ import path from "node:path";
2
+ function resolveToolPath(requestedPath, workspaceDir) {
3
+ return path.isAbsolute(requestedPath)
4
+ ? path.normalize(requestedPath)
5
+ : path.normalize(path.join(workspaceDir, requestedPath));
6
+ }
7
+ function inferSkillNameFromPath(resolvedPath) {
8
+ const normalized = resolvedPath.replace(/\\/g, "/");
9
+ if (!normalized.endsWith("/SKILL.md")) {
10
+ return undefined;
11
+ }
12
+ const marker = "/.pingclaw/skills/";
13
+ const markerIndex = normalized.lastIndexOf(marker);
14
+ if (markerIndex === -1) {
15
+ return undefined;
16
+ }
17
+ const skillPath = normalized.slice(markerIndex + marker.length, normalized.length - "/SKILL.md".length);
18
+ if (!skillPath || skillPath.includes("/")) {
19
+ return undefined;
20
+ }
21
+ return skillPath;
22
+ }
23
+ export class SkillUsageTracker {
24
+ params;
25
+ skillLocations;
26
+ reportedSkills = new Set();
27
+ pendingReadFilePaths = [];
28
+ constructor(params) {
29
+ this.params = params;
30
+ this.skillLocations = new Map(params.skills.map((skill) => [path.normalize(skill.location), skill.name]));
31
+ }
32
+ onToolExecutionStart(event) {
33
+ if (event.toolName !== "read_file") {
34
+ return;
35
+ }
36
+ if (!event.args || typeof event.args !== "object") {
37
+ return;
38
+ }
39
+ const requestedPath = event.args.path;
40
+ if (typeof requestedPath !== "string") {
41
+ return;
42
+ }
43
+ this.pendingReadFilePaths.push(resolveToolPath(requestedPath, this.params.workspaceDir));
44
+ }
45
+ async onToolExecutionEnd(event) {
46
+ if (event.toolName !== "read_file") {
47
+ return;
48
+ }
49
+ const resolvedPath = this.pendingReadFilePaths.pop();
50
+ const skillName = resolvedPath
51
+ ? (this.skillLocations.get(resolvedPath) ?? inferSkillNameFromPath(resolvedPath))
52
+ : undefined;
53
+ if (!skillName || event.isError || this.reportedSkills.has(skillName)) {
54
+ return;
55
+ }
56
+ this.reportedSkills.add(skillName);
57
+ await this.params.report({
58
+ type: "skill_used",
59
+ skillName,
60
+ agent: "aimax:main",
61
+ taskId: `aimax[${this.params.sessionId}]`,
62
+ });
63
+ }
64
+ }
65
+ //# sourceMappingURL=skill-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-usage.js","sourceRoot":"","sources":["../../src/runner/skill-usage.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAgB7B,SAAS,eAAe,CAAC,aAAqB,EAAE,YAAoB;IAClE,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,sBAAsB,CAAC,YAAoB;IAClD,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC;IACpC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACxG,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,OAAO,iBAAiB;IAMT;IALF,cAAc,CAAsB;IACpC,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,oBAAoB,GAAa,EAAE,CAAC;IAErD,YACmB,MAKhB;QALgB,WAAM,GAAN,MAAM,CAKtB;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,CAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,KAA8B;QACjD,IAAI,KAAK,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAI,KAAK,CAAC,IAA2B,CAAC,IAAI,CAAC;QAC9D,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAA4B;QACnD,IAAI,KAAK,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,YAAY;YAC5B,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAC;YACjF,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,YAAY;YAClB,SAAS;YACT,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG;SAC1C,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import type { CommandDangerousRulesPolicy, ParsedCommandSegment } from "./command-policy-types.js";
2
+ export declare function matchDangerousExecutable(segment: ParsedCommandSegment, policy: CommandDangerousRulesPolicy): string | null;
3
+ export declare function matchDangerousShellPattern(command: string, policy: CommandDangerousRulesPolicy): string | null;
4
+ //# sourceMappingURL=command-dangerous-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-dangerous-rules.d.ts","sourceRoot":"","sources":["../../src/security/command-dangerous-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAUnG,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,2BAA2B,GAClC,MAAM,GAAG,IAAI,CAMf;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,2BAA2B,GAClC,MAAM,GAAG,IAAI,CAUf"}
@@ -0,0 +1,26 @@
1
+ function normalizeExecutable(executable) {
2
+ if (!executable) {
3
+ return "";
4
+ }
5
+ const parts = executable.split(/[\\/]/);
6
+ return (parts[parts.length - 1] ?? executable).toLowerCase();
7
+ }
8
+ export function matchDangerousExecutable(segment, policy) {
9
+ const executable = normalizeExecutable(segment.executable);
10
+ if (!executable) {
11
+ return null;
12
+ }
13
+ return policy.denyExecutables.find((entry) => entry.toLowerCase() === executable) ?? null;
14
+ }
15
+ export function matchDangerousShellPattern(command, policy) {
16
+ const normalized = command.replace(/\s+/g, " ").toLowerCase();
17
+ for (const pattern of policy.denyShellPatterns) {
18
+ const compact = pattern.replace(/\s+/g, "").toLowerCase();
19
+ const folded = normalized.replace(/\s+/g, "");
20
+ if (folded.includes(compact)) {
21
+ return pattern;
22
+ }
23
+ }
24
+ return null;
25
+ }
26
+ //# sourceMappingURL=command-dangerous-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-dangerous-rules.js","sourceRoot":"","sources":["../../src/security/command-dangerous-rules.ts"],"names":[],"mappings":"AAEA,SAAS,mBAAmB,CAAC,UAAyB;IACpD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAA6B,EAC7B,MAAmC;IAEnC,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAe,EACf,MAAmC;IAEnC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ParsedCommand } from "./command-policy-types.js";
2
+ export declare function parseCommand(command: string): ParsedCommand | null;
3
+ //# sourceMappingURL=command-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../../src/security/command-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,2BAA2B,CAAC;AAqMrF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAiBlE"}