claudity 1.0.0 → 1.1.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.
@@ -14,7 +14,7 @@ const registry = {
14
14
  method: { type: 'string', enum: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'], description: 'http method' },
15
15
  url: { type: 'string', description: 'full url including https://' },
16
16
  headers: { type: 'object', description: 'request headers as key-value pairs' },
17
- body: { description: 'request body object will be sent as json, string sent as-is' }
17
+ body: { description: 'request body - object will be sent as json, string sent as-is' }
18
18
  },
19
19
  required: ['method', 'url']
20
20
  }
@@ -85,7 +85,7 @@ const registry = {
85
85
  input_schema: {
86
86
  type: 'object',
87
87
  properties: {
88
- description: { type: 'string', description: 'what to do each time this fires (be specific this is the prompt you will receive)' },
88
+ description: { type: 'string', description: 'what to do each time this fires (be specific - this is the prompt you will receive)' },
89
89
  interval_minutes: { type: 'number', description: 'how often to run in minutes (minimum 1)' }
90
90
  },
91
91
  required: ['description', 'interval_minutes']
@@ -136,7 +136,7 @@ const registry = {
136
136
  delegate: {
137
137
  definition: {
138
138
  name: 'delegate',
139
- description: 'send a message to another claudity agent by name and get their response. use this for cross-agent collaboration asking another agent to handle something in their domain.',
139
+ description: 'send a message to another claudity agent by name and get their response. use this for cross-agent collaboration - asking another agent to handle something in their domain.',
140
140
  input_schema: {
141
141
  type: 'object',
142
142
  properties: {
@@ -214,7 +214,7 @@ async function httpRequest(input) {
214
214
  } else {
215
215
  responseBody = await res.text();
216
216
  if (responseBody.length > 50000) {
217
- responseBody = responseBody.slice(0, 50000) + '\n\n[truncated response exceeded 50000 chars]';
217
+ responseBody = responseBody.slice(0, 50000) + '\n\n[truncated - response exceeded 50000 chars]';
218
218
  }
219
219
  }
220
220
 
@@ -251,7 +251,7 @@ async function readUrl(input) {
251
251
  }
252
252
 
253
253
  if (text.length > 80000) {
254
- text = text.slice(0, 80000) + '\n\n[truncated content exceeded 80000 chars]';
254
+ text = text.slice(0, 80000) + '\n\n[truncated - content exceeded 80000 chars]';
255
255
  }
256
256
 
257
257
  return { url, content: text };
@@ -355,18 +355,9 @@ async function spawnSubagent(input, context) {
355
355
  let done = false;
356
356
  const args = ['-p', '--output-format', 'json', '--model', model, '--dangerously-skip-permissions'];
357
357
  const proc = spawn('claude', args, {
358
- stdio: ['pipe', 'pipe', 'pipe'],
359
- timeout: 300000
358
+ stdio: ['pipe', 'pipe', 'pipe']
360
359
  });
361
360
 
362
- const fallback = setTimeout(() => {
363
- if (!done) {
364
- done = true;
365
- proc.kill();
366
- resolve({ error: 'subagent timed out after 5 minutes' });
367
- }
368
- }, 310000);
369
-
370
361
  let stdout = '';
371
362
  let stderr = '';
372
363
 
@@ -376,7 +367,6 @@ async function spawnSubagent(input, context) {
376
367
  proc.on('close', code => {
377
368
  if (done) return;
378
369
  done = true;
379
- clearTimeout(fallback);
380
370
  if (!stdout.trim() && code !== 0) {
381
371
  resolve({ error: `subagent exited ${code}: ${stderr.trim()}` });
382
372
  return;
@@ -393,7 +383,6 @@ async function spawnSubagent(input, context) {
393
383
  proc.on('error', err => {
394
384
  if (done) return;
395
385
  done = true;
396
- clearTimeout(fallback);
397
386
  resolve({ error: err.message });
398
387
  });
399
388
 
@@ -440,7 +429,7 @@ async function completeBootstrap(input, context) {
440
429
  workspace.deleteFile(agent.name, 'BOOTSTRAP.md');
441
430
  const chat = require('./chat');
442
431
  chat.emit(context.agentId, 'bootstrap_complete', {});
443
- return { bootstrapped: true };
432
+ return { bootstrapped: true, note: 'setup complete. respond naturally to the user - do not greet them again or say welcome back.' };
444
433
  }
445
434
 
446
435
  function getToolDefinitions(toolNames) {
@@ -89,9 +89,9 @@ function start(config, callbacks) {
89
89
  }
90
90
  } catch (err) {
91
91
  message.reply(`error: ${err.message}`).catch(() => {});
92
+ } finally {
93
+ busy = false;
92
94
  }
93
-
94
- setTimeout(() => { busy = false; }, 2000);
95
95
  });
96
96
 
97
97
  client.initialize().catch((err) => {
@@ -9,18 +9,18 @@ you just came online for the first time. you don't know who you are yet.
9
9
 
10
10
  conduct a short identity ritual with the user:
11
11
 
12
- 1. first message: introduce yourself and ask who you are and who the user is combine questions
12
+ 1. first message: introduce yourself and ask who you are and who the user is - combine questions
13
13
  2. second message: if you have enough to work with, write your files and complete bootstrap. if not, ask one final clarifying question.
14
14
  3. third message: you MUST write all files and call complete_bootstrap. no exceptions.
15
15
 
16
- if the user gives you enough context upfront, skip questions entirely write files and complete bootstrap immediately.
16
+ if the user gives you enough context upfront, skip questions entirely - write files and complete bootstrap immediately.
17
17
 
18
18
  use write_workspace to create your identity files:
19
- - SOUL.md your personality, values, philosophy, how you think and behave
20
- - IDENTITY.md your name and signature traits
21
- - USER.md who the user is, their preferences
22
- - HEARTBEAT.md what to check on when you wake up periodically
23
- - MEMORY.md initial memories from this conversation
19
+ - SOUL.md - your personality, values, philosophy, how you think and behave
20
+ - IDENTITY.md - your name and signature traits
21
+ - USER.md - who the user is, their preferences
22
+ - HEARTBEAT.md - what to check on when you wake up periodically
23
+ - MEMORY.md - initial memories from this conversation
24
24
 
25
25
  then call complete_bootstrap to finish setup.
26
26