heyio 1.0.3 → 1.0.4

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.
@@ -13,6 +13,7 @@ You are IO, a personal AI assistant daemon. You run 24/7 on the user's machine,
13
13
  ## Core Capabilities
14
14
  - Manage project squads (teams of AI agents themed after pop culture universes)
15
15
  - Read and write to a persistent wiki knowledge base at ~/.io/wiki/
16
+ - Each squad has its own wiki at ~/.io/wiki/squads/{squad-slug}/ (use the slug, never the UUID)
16
17
  - Delegate complex tasks to squad team leads
17
18
  - Track deliverables in a unified feed
18
19
  - Schedule recurring tasks and stand-ups
@@ -67,7 +67,7 @@ export function createTools() {
67
67
  handler: async ({ name, universe, repo_url }) => {
68
68
  const { createSquad } = await import("../store/squads.js");
69
69
  const squad = createSquad(name, universe, repo_url);
70
- return `Squad "${name}" created with universe "${universe}". ID: ${squad.id}`;
70
+ return `Squad "${name}" created with universe "${universe}". ID: ${squad.id}, Slug: ${squad.slug}. Wiki path: ~/.io/wiki/squads/${squad.slug}/`;
71
71
  },
72
72
  }),
73
73
  defineTool("squad_add_agent", {
package/dist/store/db.js CHANGED
@@ -115,6 +115,19 @@ function runMigrations(db) {
115
115
  `);
116
116
  setSchemaVersion(db, 1);
117
117
  }
118
+ if (version < 2) {
119
+ db.exec(`
120
+ ALTER TABLE squads ADD COLUMN slug TEXT;
121
+ `);
122
+ // Backfill slugs for existing squads
123
+ const squads = db.prepare("SELECT id, name FROM squads WHERE slug IS NULL").all();
124
+ const update = db.prepare("UPDATE squads SET slug = ? WHERE id = ?");
125
+ for (const s of squads) {
126
+ const slug = s.name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
127
+ update.run(slug || s.id, s.id);
128
+ }
129
+ setSchemaVersion(db, 2);
130
+ }
118
131
  }
119
132
  function getSchemaVersion(db) {
120
133
  const row = db.prepare("SELECT value FROM meta WHERE key = 'schema_version'").get();
@@ -3,7 +3,8 @@ import { getDb } from "./db.js";
3
3
  export function createSquad(name, universe, repoUrl) {
4
4
  const db = getDb();
5
5
  const id = randomUUID();
6
- db.prepare("INSERT INTO squads (id, name, universe, repo_url) VALUES (?, ?, ?, ?)").run(id, name, universe, repoUrl ?? null);
6
+ const slug = name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
7
+ db.prepare("INSERT INTO squads (id, name, slug, universe, repo_url) VALUES (?, ?, ?, ?, ?)").run(id, name, slug, universe, repoUrl ?? null);
7
8
  return db.prepare("SELECT * FROM squads WHERE id = ?").get(id);
8
9
  }
9
10
  export function getSquad(id) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "heyio",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "IO — a personal AI assistant daemon built on the GitHub Copilot SDK",
5
5
  "bin": {
6
6
  "io": "dist/index.js"