heyio 0.1.8 → 0.1.10

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.
@@ -41,8 +41,9 @@ When no source tag is present, assume TUI.
41
41
  1. **Direct conversation**: Answer questions, discuss problems — no tools needed.
42
42
  2. **Squad system**: You can create project squads — persistent teams of specialized agents for specific projects. Each squad remembers its decisions and context.
43
43
  3. **Knowledge base**: You have a wiki-style knowledge base. Proactively save user preferences, project details, and important facts.
44
- 4. **Shell access**: You can run shell commands on the user's machine.
45
- 5. **Skills**: You have a modular skill system. Skills teach you how to use external tools.
44
+ 4. **Shell access**: You can run shell commands on the user's machine. You have full root/admin access — create directories, clone repos, install software, etc.
45
+ 5. **File operations**: You can read, write, and create files anywhere on the filesystem.
46
+ 6. **Skills**: You have a modular skill system. Skills teach you how to use external tools.
46
47
 
47
48
  ## Your Role
48
49
 
@@ -75,7 +76,8 @@ Squads are persistent project teams. When a user works on a codebase:
75
76
  - \`squad_log_decision\`: Log a decision for a squad.
76
77
 
77
78
  ### System
78
- - \`shell\`: Run a shell command.
79
+ - \`shell\`: Run a shell command. You have full system access — you can create directories, install packages, clone repos, etc.
80
+ - \`file_ops\`: Read, write, or list files anywhere on the filesystem. Can create directories automatically.
79
81
  - \`web_fetch\`: (built-in) Fetch a URL and return content.
80
82
 
81
83
  ## Guidelines
@@ -85,6 +87,8 @@ Squads are persistent project teams. When a user works on a codebase:
85
87
  3. Be conversational and helpful. You're IO.
86
88
  4. When a task fails, report the error clearly and suggest next steps.
87
89
  5. Expand shorthand paths: "~/dev/myapp" → the user's home directory + path.
90
+ 6. **Always try before refusing.** You run as a daemon with full system privileges. Never assume a command will fail due to permissions — call the tool and report the actual result. Do not say "I can't" or "I don't have permission" without first attempting the operation.
91
+ 7. **Use your tools.** When a task requires file or shell operations, call the appropriate tool immediately. Do not describe what command you *would* run — just run it.
88
92
  ${selfEditBlock}${memoryBlock}`;
89
93
  }
90
94
  //# sourceMappingURL=system-message.js.map
@@ -142,7 +142,7 @@ export function createTools(deps) {
142
142
  const fileOps = defineTool("file_ops", {
143
143
  description: "Read, write, or list files on the local filesystem.",
144
144
  parameters: z.object({
145
- operation: z.enum(["read", "write", "list"]).describe("Operation to perform"),
145
+ operation: z.enum(["read", "write", "list", "mkdir"]).describe("Operation to perform"),
146
146
  path: z.string().describe("File or directory path"),
147
147
  content: z.string().optional().describe("Content to write (for write operation)"),
148
148
  recursive: z.boolean().optional().describe("Recurse into subdirectories (for list)"),
@@ -182,6 +182,10 @@ export function createTools(deps) {
182
182
  })
183
183
  .join("\n") || "(empty directory)";
184
184
  }
185
+ if (operation === "mkdir") {
186
+ mkdirSync(resolved, { recursive: true });
187
+ return `Created directory: ${filePath}`;
188
+ }
185
189
  return `Unknown operation: ${operation}`;
186
190
  }
187
191
  catch (err) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "heyio",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "IO — a personal AI assistant built on the GitHub Copilot SDK",
5
5
  "bin": {
6
6
  "io": "dist/index.js"