@agentvalet/register 0.1.4 → 0.1.6

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 (2) hide show
  1. package/dist/index.js +31 -20
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -245,6 +245,10 @@ To refresh this file: \`agentvalet-register refresh\`
245
245
  }
246
246
 
247
247
  // src/commands/refresh.ts
248
+ var CLAUDE_START = "<!-- agentvalet:start -->";
249
+ var CLAUDE_END = "<!-- agentvalet:end -->";
250
+ var HOOK_COMMAND = "npx @agentvalet/register refresh --if-stale --quiet 2>/dev/null || true";
251
+ var HOOK_MARKER = "agentvalet/register refresh";
248
252
  function base64url(input) {
249
253
  return Buffer.from(input).toString("base64url");
250
254
  }
@@ -274,9 +278,14 @@ async function runRefresh(options) {
274
278
  if (options.ifStale) {
275
279
  try {
276
280
  const stat = statSync(outputPath);
277
- if (Date.now() - stat.mtimeMs < 36e5) {
278
- return;
279
- }
281
+ const fileIsFresh = Date.now() - stat.mtimeMs < 36e5;
282
+ const claudeMdPath = resolve2("CLAUDE.md");
283
+ const claudeMd = existsSync(claudeMdPath) ? readFileSync(claudeMdPath, "utf-8") : "";
284
+ const blockStart = claudeMd.indexOf(CLAUDE_START);
285
+ const blockEnd = claudeMd.indexOf(CLAUDE_END);
286
+ const blockContent = blockStart !== -1 && blockEnd !== -1 ? claudeMd.slice(blockStart, blockEnd) : "";
287
+ const blockHasPlatforms = blockContent.includes("### ");
288
+ if (fileIsFresh && blockHasPlatforms) return;
280
289
  } catch {
281
290
  }
282
291
  }
@@ -317,37 +326,39 @@ Run 'agentvalet-register' first to create it.`);
317
326
  const content = generatePermissionsFile(agentId, ownerId, platforms);
318
327
  mkdirSync(dirname2(outputPath), { recursive: true });
319
328
  writeFileSync(outputPath, content, "utf-8");
320
- ensureClaudeMd(options.outputPath);
329
+ embedInClaudeMd(content);
321
330
  ensureHook();
322
331
  if (!options.quiet) {
323
332
  console.log(`Permissions refreshed \u2192 ${outputPath} (${platforms.length} platform${platforms.length !== 1 ? "s" : ""})`);
324
333
  }
325
334
  }
326
- function ensureClaudeMd(permissionsRelativePath) {
327
- const importLine = `@${permissionsRelativePath.replace(/\\/g, "/").replace(/^\.\//, "")}`;
335
+ function embedInClaudeMd(permissionsContent) {
328
336
  const claudeMdPath = resolve2("CLAUDE.md");
337
+ const block = `${CLAUDE_START}
338
+ ${permissionsContent.trimEnd()}
339
+ ${CLAUDE_END}`;
329
340
  if (!existsSync(claudeMdPath)) {
330
- writeFileSync(
331
- claudeMdPath,
332
- `# Agent Instructions
341
+ writeFileSync(claudeMdPath, `# Agent Instructions
333
342
 
334
- @.claude/agentvalet-permissions.md
335
- `,
336
- "utf-8"
337
- );
343
+ ${block}
344
+ `, "utf-8");
338
345
  return;
339
346
  }
340
347
  const existing = readFileSync(claudeMdPath, "utf-8");
341
- if (existing.includes(importLine) || existing.includes("@.claude/agentvalet-permissions.md")) {
342
- return;
343
- }
344
- writeFileSync(claudeMdPath, `${existing.trimEnd()}
348
+ if (existing.includes(CLAUDE_START)) {
349
+ const replaced = existing.replace(
350
+ new RegExp(`${CLAUDE_START}[\\s\\S]*?${CLAUDE_END}`, "m"),
351
+ block
352
+ );
353
+ writeFileSync(claudeMdPath, replaced, "utf-8");
354
+ } else {
355
+ const cleaned = existing.replace(/^@\.claude\/agentvalet-permissions\.md\s*$/m, "").trimEnd();
356
+ writeFileSync(claudeMdPath, `${cleaned}
345
357
 
346
- ${importLine}
358
+ ${block}
347
359
  `, "utf-8");
360
+ }
348
361
  }
349
- var HOOK_COMMAND = "npx @agentvalet/register refresh --if-stale --quiet 2>/dev/null || true";
350
- var HOOK_MARKER = "agentvalet/register refresh";
351
362
  function ensureHook() {
352
363
  const settingsPath = resolve2(".claude/settings.local.json");
353
364
  let settings = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentvalet/register",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "Self-register AI agents with AgentValet",
5
5
  "type": "module",
6
6
  "bin": {