nodal-agents 0.5.0 → 0.5.2

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 (143) hide show
  1. package/README.md +9 -1
  2. package/cli.js +8 -7
  3. package/migrations/0037_agent_jobs_total_cost_usd.sql +11 -11
  4. package/migrations/0038_agent_jobs_served_provider.sql +7 -7
  5. package/migrations/0039_agent_skills_learning_loop.sql +20 -20
  6. package/migrations/0040_entities_last_curator_run.sql +7 -7
  7. package/migrations/0041_reflection_enabled.sql +1 -1
  8. package/migrations/0042_drop_agent_runs.sql +1 -1
  9. package/migrations/0043_skill_assignment.sql +2 -2
  10. package/migrations/0044_entities_lan_command_yolo.sql +1 -0
  11. package/migrations/meta/_journal.json +7 -0
  12. package/package.json +1 -1
  13. package/runner.js +1257 -1087
  14. package/web/.next/BUILD_ID +1 -1
  15. package/web/.next/app-path-routes-manifest.json +11 -11
  16. package/web/.next/build-manifest.json +2 -2
  17. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js +3 -3
  18. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js.nft.json +1 -1
  19. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page_client-reference-manifest.js +1 -1
  20. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js +2 -2
  21. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js.nft.json +1 -1
  22. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page_client-reference-manifest.js +1 -1
  23. package/web/.next/server/app/(dashboard)/agents/page.js +2 -2
  24. package/web/.next/server/app/(dashboard)/agents/page.js.nft.json +1 -1
  25. package/web/.next/server/app/(dashboard)/agents/page_client-reference-manifest.js +1 -1
  26. package/web/.next/server/app/(dashboard)/approvals/page.js +2 -2
  27. package/web/.next/server/app/(dashboard)/approvals/page.js.nft.json +1 -1
  28. package/web/.next/server/app/(dashboard)/approvals/page_client-reference-manifest.js +1 -1
  29. package/web/.next/server/app/(dashboard)/automations/page.js +2 -2
  30. package/web/.next/server/app/(dashboard)/automations/page.js.nft.json +1 -1
  31. package/web/.next/server/app/(dashboard)/automations/page_client-reference-manifest.js +1 -1
  32. package/web/.next/server/app/(dashboard)/billing/page.js +2 -2
  33. package/web/.next/server/app/(dashboard)/billing/page.js.nft.json +1 -1
  34. package/web/.next/server/app/(dashboard)/billing/page_client-reference-manifest.js +1 -1
  35. package/web/.next/server/app/(dashboard)/chat/page.js +2 -2
  36. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  37. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  38. package/web/.next/server/app/(dashboard)/connectors/page.js +2 -2
  39. package/web/.next/server/app/(dashboard)/connectors/page.js.nft.json +1 -1
  40. package/web/.next/server/app/(dashboard)/connectors/page_client-reference-manifest.js +1 -1
  41. package/web/.next/server/app/(dashboard)/credentials/page.js +2 -2
  42. package/web/.next/server/app/(dashboard)/credentials/page.js.nft.json +1 -1
  43. package/web/.next/server/app/(dashboard)/credentials/page_client-reference-manifest.js +1 -1
  44. package/web/.next/server/app/(dashboard)/jobs/[id]/page.js +2 -2
  45. package/web/.next/server/app/(dashboard)/jobs/[id]/page.js.nft.json +1 -1
  46. package/web/.next/server/app/(dashboard)/jobs/[id]/page_client-reference-manifest.js +1 -1
  47. package/web/.next/server/app/(dashboard)/jobs/page.js +2 -2
  48. package/web/.next/server/app/(dashboard)/jobs/page.js.nft.json +1 -1
  49. package/web/.next/server/app/(dashboard)/jobs/page_client-reference-manifest.js +1 -1
  50. package/web/.next/server/app/(dashboard)/learned-skills/page.js +2 -2
  51. package/web/.next/server/app/(dashboard)/learned-skills/page.js.nft.json +1 -1
  52. package/web/.next/server/app/(dashboard)/learned-skills/page_client-reference-manifest.js +1 -1
  53. package/web/.next/server/app/(dashboard)/llm-providers/page.js +2 -2
  54. package/web/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
  55. package/web/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/(dashboard)/logs/page.js +2 -2
  57. package/web/.next/server/app/(dashboard)/logs/page.js.nft.json +1 -1
  58. package/web/.next/server/app/(dashboard)/logs/page_client-reference-manifest.js +1 -1
  59. package/web/.next/server/app/(dashboard)/mcp/page.js +2 -2
  60. package/web/.next/server/app/(dashboard)/mcp/page.js.nft.json +1 -1
  61. package/web/.next/server/app/(dashboard)/mcp/page_client-reference-manifest.js +1 -1
  62. package/web/.next/server/app/(dashboard)/memories/page.js +2 -2
  63. package/web/.next/server/app/(dashboard)/memories/page.js.nft.json +1 -1
  64. package/web/.next/server/app/(dashboard)/memories/page_client-reference-manifest.js +1 -1
  65. package/web/.next/server/app/(dashboard)/page.js +3 -3
  66. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  67. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  68. package/web/.next/server/app/(dashboard)/settings/page.js +2 -2
  69. package/web/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  70. package/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  71. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js +2 -2
  72. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js.nft.json +1 -1
  73. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page_client-reference-manifest.js +1 -1
  74. package/web/.next/server/app/(dashboard)/skills/new/page.js +2 -2
  75. package/web/.next/server/app/(dashboard)/skills/new/page.js.nft.json +1 -1
  76. package/web/.next/server/app/(dashboard)/skills/new/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/(dashboard)/skills/page.js +2 -2
  78. package/web/.next/server/app/(dashboard)/skills/page.js.nft.json +1 -1
  79. package/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
  80. package/web/.next/server/app/_global-error/page.js +1 -1
  81. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  82. package/web/.next/server/app/_global-error.html +1 -1
  83. package/web/.next/server/app/_global-error.rsc +2 -2
  84. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  85. package/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  86. package/web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  87. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  88. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +2 -2
  89. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  90. package/web/.next/server/app/_not-found/page.js +1 -1
  91. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  92. package/web/.next/server/app/_not-found.html +1 -1
  93. package/web/.next/server/app/_not-found.rsc +3 -3
  94. package/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  95. package/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  96. package/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  97. package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  98. package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  99. package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  100. package/web/.next/server/app/login/page.js +1 -1
  101. package/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/onboarding/page.js +1 -1
  103. package/web/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  104. package/web/.next/server/app/onboarding.html +1 -1
  105. package/web/.next/server/app/onboarding.rsc +3 -3
  106. package/web/.next/server/app/onboarding.segments/_full.segment.rsc +3 -3
  107. package/web/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
  108. package/web/.next/server/app/onboarding.segments/_index.segment.rsc +3 -3
  109. package/web/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
  110. package/web/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
  111. package/web/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
  112. package/web/.next/server/app-paths-manifest.json +11 -11
  113. package/web/.next/server/chunks/2556.js +1 -0
  114. package/web/.next/server/chunks/4574.js +1 -1
  115. package/web/.next/server/chunks/5869.js +1 -0
  116. package/web/.next/server/chunks/6606.js +1 -0
  117. package/web/.next/server/chunks/{1567.js → 9267.js} +1 -1
  118. package/web/.next/server/chunks/9656.js +1 -0
  119. package/web/.next/server/chunks/{7741.js → 9942.js} +3 -3
  120. package/web/.next/server/middleware-build-manifest.js +1 -1
  121. package/web/.next/server/pages/404.html +1 -1
  122. package/web/.next/server/pages/500.html +1 -1
  123. package/web/.next/server/server-reference-manifest.js +1 -1
  124. package/web/.next/server/server-reference-manifest.json +1 -1
  125. package/web/.next/static/chunks/9711-628acc64d23620d2.js +1 -0
  126. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-9d2c7d640411e42d.js +2 -0
  127. package/web/.next/static/chunks/app/(dashboard)/approvals/page-8556dfa45a425603.js +1 -0
  128. package/web/.next/static/chunks/app/(dashboard)/layout-a34502d1a8386a62.js +1 -0
  129. package/web/.next/static/chunks/app/(dashboard)/settings/{page-5862a4767233ec26.js → page-cc13aebbb8d33d19.js} +1 -1
  130. package/web/.next/static/chunks/app/error-f106e9e65e16edb3.js +1 -0
  131. package/web/.next/static/css/de0fc0bc138be3b3.css +3 -0
  132. package/web/.next/server/chunks/4108.js +0 -1
  133. package/web/.next/server/chunks/511.js +0 -1
  134. package/web/.next/server/chunks/8978.js +0 -1
  135. package/web/.next/server/chunks/9798.js +0 -1
  136. package/web/.next/static/chunks/6347-6d9d5ab25cbd59b9.js +0 -1
  137. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-651673d70c193f79.js +0 -2
  138. package/web/.next/static/chunks/app/(dashboard)/approvals/page-6d8c74fd86d2d3c3.js +0 -1
  139. package/web/.next/static/chunks/app/(dashboard)/layout-509579b7d75ffd9d.js +0 -1
  140. package/web/.next/static/chunks/app/error-61e58aa304e1b34e.js +0 -1
  141. package/web/.next/static/css/46db738e95b440c0.css +0 -3
  142. /package/web/.next/static/{PbmIekL33DORo2X47l_Ar → FgBmSI8AhGeFcxmEUF1VS}/_buildManifest.js +0 -0
  143. /package/web/.next/static/{PbmIekL33DORo2X47l_Ar → FgBmSI8AhGeFcxmEUF1VS}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -215,7 +215,7 @@ pnpm deps:check # runs locally and in CI before every release
215
215
 
216
216
  ## Status
217
217
 
218
- **Current release:** `0.5.0` on npm `latest`. Used daily by the
218
+ **Current release:** `0.5.2` on npm `latest`. Used daily by the
219
219
  maintainer, stable enough for personal production. Pre-1.0 — breaking
220
220
  changes are still possible between minors.
221
221
 
@@ -270,6 +270,14 @@ changes are still possible between minors.
270
270
  - ROOT agent — your first orchestrator automatically becomes the workspace ROOT (the single top-level agent; later orchestrators slot under it). It can create *and update* skills, create agents and assign them, and create MCP servers + API connectors — each gated by per-grant toggles + an autonomy/approval level (powers start off, opt in per grant). Provisioning verifies before it writes (an MCP server is connected and its tools listed first); skill authoring is grounded in the workspace's real tools (a linter rejects skills referencing tools the agent doesn't have)
271
271
  - Office file editing — Excel in-place edit, Word/PowerPoint create, in the agent workspace (office-editing skill)
272
272
  - Multiple filesystem folders per agent (sandboxed `file_*` tools)
273
+ - **Shell execution** — agents can run shell commands in their workspace
274
+ (`run_command`: install deps, run scripts, build steps) via an opt-in
275
+ `command-execution` skill. Safe-by-default: every command pauses for your
276
+ approval, with an optional per-agent auto-run ("Yolo"). On a shared / LAN
277
+ install auto-run is gated behind an explicit workspace-owner opt-in and
278
+ **enforced at execution time** — flip the workspace switch off and even an
279
+ already-trusted agent drops back to requiring approval. A live bell surfaces
280
+ pending approvals from anywhere in the dashboard
273
281
  - Telegram delivery (long-poll, group filters, multi-agent routing,
274
282
  delegation gracefulness) — exactly-once delivery contract: anti-spam guard
275
283
  against runaway message loops + a guard that re-prompts (then fails loud)
package/cli.js CHANGED
@@ -12284,7 +12284,12 @@ var init_entities = __esm({
12284
12284
  reflectionEnabled: boolean("reflection_enabled").notNull().default(false),
12285
12285
  // Controls whether agent-authored skills are auto-assigned to the authoring
12286
12286
  // agent ('auto') or queued for the entity owner to approve ('approval').
12287
- skillAssignmentMode: text("skill_assignment_mode").notNull().default("approval").$type()
12287
+ skillAssignmentMode: text("skill_assignment_mode").notNull().default("approval").$type(),
12288
+ // Allows the workspace OWNER to opt into Yolo (auto-approve run_command)
12289
+ // even in non-local-trust (LAN/local-auth) mode. Off by default: in
12290
+ // local-auth mode, commands always require approval unless the owner
12291
+ // explicitly opts in here.
12292
+ lanCommandYolo: boolean("lan_command_yolo").notNull().default(false)
12288
12293
  },
12289
12294
  (table) => [
12290
12295
  uniqueIndex("entities_mcp_token_idx").on(table.mcpToken),
@@ -13997,17 +14002,13 @@ async function runUp(opts = {}) {
13997
14002
  await stopOrphanPostgres();
13998
14003
  if (isPidAlive(pgOrphan.pid)) {
13999
14004
  try {
14000
- if (process.platform === "win32") {
14001
- await execa4("taskkill", ["/T", "/F", "/PID", String(pgOrphan.pid)], { reject: false });
14002
- } else {
14003
- process.kill(pgOrphan.pid, "SIGKILL");
14004
- }
14005
+ process.kill(pgOrphan.pid, "SIGKILL");
14005
14006
  } catch {
14006
14007
  }
14007
14008
  await waitForPidDead(pgOrphan.pid, 5e3);
14008
14009
  }
14009
14010
  if (isPidAlive(pgOrphan.pid)) {
14010
- const killCmd = process.platform === "win32" ? `taskkill /T /F /PID ${pgOrphan.pid}` : `kill -9 ${pgOrphan.pid}`;
14011
+ const killCmd = process.platform === "win32" ? `powershell Stop-Process -Id ${pgOrphan.pid} -Force` : `kill -9 ${pgOrphan.pid}`;
14011
14012
  throw new Error(
14012
14013
  `An orphaned Postgres (pid ${pgOrphan.pid}) is still running and holds the shared-memory block for the data dir. Rotating ports won't help \u2014 the SHM segment is keyed to the data dir, not the port.
14013
14014
  Fix: run \`nodal-agents down\`, then \`${killCmd}\`. If it persists, reboot to clear the orphan kernel object. No data is lost \u2014 pg-data is preserved.`
@@ -1,11 +1,11 @@
1
- -- Real dollar cost budget (Guard 1e). Track what was ACTUALLY BILLED per job
2
- -- (not token proxies) so the runner can enforce a hard dollar cap and the
3
- -- dashboard can surface real $/job cost. Populated by OpenRouter when
4
- -- `usage:{include:true}` is sent — `usage.cost` in the response lands in
5
- -- providerMetadata.openrouter.usage.cost on the AI SDK result. NULL / 0 for
6
- -- providers that don't report per-call cost (Anthropic, Ollama, etc.).
7
- --
8
- -- Stored as real (float4) — sub-cent values are common (e.g. $0.00056).
9
- -- Default 0 so existing rows are valid without a backfill.
10
- ALTER TABLE "agent_jobs"
11
- ADD COLUMN IF NOT EXISTS "total_cost_usd" real DEFAULT 0;
1
+ -- Real dollar cost budget (Guard 1e). Track what was ACTUALLY BILLED per job
2
+ -- (not token proxies) so the runner can enforce a hard dollar cap and the
3
+ -- dashboard can surface real $/job cost. Populated by OpenRouter when
4
+ -- `usage:{include:true}` is sent — `usage.cost` in the response lands in
5
+ -- providerMetadata.openrouter.usage.cost on the AI SDK result. NULL / 0 for
6
+ -- providers that don't report per-call cost (Anthropic, Ollama, etc.).
7
+ --
8
+ -- Stored as real (float4) — sub-cent values are common (e.g. $0.00056).
9
+ -- Default 0 so existing rows are valid without a backfill.
10
+ ALTER TABLE "agent_jobs"
11
+ ADD COLUMN IF NOT EXISTS "total_cost_usd" real DEFAULT 0;
@@ -1,7 +1,7 @@
1
- -- Served-upstream observability (P0-B). Tracks which upstream provider actually
2
- -- handled a given job execution (e.g. 'DeepSeek' when routed via OpenRouter's
3
- -- provider-order preference). Populated from providerMetadata.openrouter.provider
4
- -- on each LLM call; only the LAST non-empty value is stored per job. NULL for
5
- -- providers that don't report upstream identity (Anthropic, Ollama, etc.).
6
- ALTER TABLE "agent_jobs"
7
- ADD COLUMN IF NOT EXISTS "served_provider" text;
1
+ -- Served-upstream observability (P0-B). Tracks which upstream provider actually
2
+ -- handled a given job execution (e.g. 'DeepSeek' when routed via OpenRouter's
3
+ -- provider-order preference). Populated from providerMetadata.openrouter.provider
4
+ -- on each LLM call; only the LAST non-empty value is stored per job. NULL for
5
+ -- providers that don't report upstream identity (Anthropic, Ollama, etc.).
6
+ ALTER TABLE "agent_jobs"
7
+ ADD COLUMN IF NOT EXISTS "served_provider" text;
@@ -1,20 +1,20 @@
1
- -- Learning-loop columns for agent_skills (Phase A).
2
- -- created_by: provenance — who created this skill ('user' | 'system' | 'agent').
3
- -- Default 'user' for forward-compatibility; backfilled to 'system' for
4
- -- community/bundled skills below.
5
- -- state: lifecycle state — 'active' (default) | 'stale' | 'archived'.
6
- -- No hard-delete path — skills are archived, never deleted.
7
- -- last_used_at: fire-and-forget timestamp, bumped each time the skill is injected
8
- -- into a job's system prompt. NULL = never used. Used to surface stale skills.
9
- -- patch_count: how many agent-authored patches have been applied. Starts at 0.
10
- -- archived_at: when the skill was moved to state='archived'. NULL while active.
11
-
12
- ALTER TABLE "agent_skills"
13
- ADD COLUMN IF NOT EXISTS "created_by" text NOT NULL DEFAULT 'user',
14
- ADD COLUMN IF NOT EXISTS "state" text NOT NULL DEFAULT 'active',
15
- ADD COLUMN IF NOT EXISTS "last_used_at" timestamptz,
16
- ADD COLUMN IF NOT EXISTS "patch_count" integer NOT NULL DEFAULT 0,
17
- ADD COLUMN IF NOT EXISTS "archived_at" timestamptz;
18
-
19
- -- Backfill: community/bundled skills are 'system' provenance
20
- UPDATE "agent_skills" SET "created_by" = 'system' WHERE "is_community" = true;
1
+ -- Learning-loop columns for agent_skills (Phase A).
2
+ -- created_by: provenance — who created this skill ('user' | 'system' | 'agent').
3
+ -- Default 'user' for forward-compatibility; backfilled to 'system' for
4
+ -- community/bundled skills below.
5
+ -- state: lifecycle state — 'active' (default) | 'stale' | 'archived'.
6
+ -- No hard-delete path — skills are archived, never deleted.
7
+ -- last_used_at: fire-and-forget timestamp, bumped each time the skill is injected
8
+ -- into a job's system prompt. NULL = never used. Used to surface stale skills.
9
+ -- patch_count: how many agent-authored patches have been applied. Starts at 0.
10
+ -- archived_at: when the skill was moved to state='archived'. NULL while active.
11
+
12
+ ALTER TABLE "agent_skills"
13
+ ADD COLUMN IF NOT EXISTS "created_by" text NOT NULL DEFAULT 'user',
14
+ ADD COLUMN IF NOT EXISTS "state" text NOT NULL DEFAULT 'active',
15
+ ADD COLUMN IF NOT EXISTS "last_used_at" timestamptz,
16
+ ADD COLUMN IF NOT EXISTS "patch_count" integer NOT NULL DEFAULT 0,
17
+ ADD COLUMN IF NOT EXISTS "archived_at" timestamptz;
18
+
19
+ -- Backfill: community/bundled skills are 'system' provenance
20
+ UPDATE "agent_skills" SET "created_by" = 'system' WHERE "is_community" = true;
@@ -1,7 +1,7 @@
1
- -- Tier-2 CURATOR cadence tracker.
2
- -- Per-entity timestamp of the last LLM consolidation pass. NULL = never run.
3
- -- Used by run-curator.ts to gate the first-run-deferred pattern (skip first
4
- -- run, set to now(), run on subsequent ticks beyond CURATOR_INTERVAL_DAYS).
5
-
6
- ALTER TABLE "entities"
7
- ADD COLUMN IF NOT EXISTS "last_curator_run_at" timestamptz;
1
+ -- Tier-2 CURATOR cadence tracker.
2
+ -- Per-entity timestamp of the last LLM consolidation pass. NULL = never run.
3
+ -- Used by run-curator.ts to gate the first-run-deferred pattern (skip first
4
+ -- run, set to now(), run on subsequent ticks beyond CURATOR_INTERVAL_DAYS).
5
+
6
+ ALTER TABLE "entities"
7
+ ADD COLUMN IF NOT EXISTS "last_curator_run_at" timestamptz;
@@ -1 +1 @@
1
- ALTER TABLE entities ADD COLUMN reflection_enabled boolean NOT NULL DEFAULT false;
1
+ ALTER TABLE entities ADD COLUMN reflection_enabled boolean NOT NULL DEFAULT false;
@@ -1 +1 @@
1
- DROP TABLE IF EXISTS "agent_runs" CASCADE;
1
+ DROP TABLE IF EXISTS "agent_runs" CASCADE;
@@ -1,2 +1,2 @@
1
- ALTER TABLE entities ADD COLUMN skill_assignment_mode text NOT NULL DEFAULT 'approval';
2
- ALTER TABLE agent_skills ADD COLUMN created_by_agent_id uuid REFERENCES agents(id) ON DELETE SET NULL;
1
+ ALTER TABLE entities ADD COLUMN skill_assignment_mode text NOT NULL DEFAULT 'approval';
2
+ ALTER TABLE agent_skills ADD COLUMN created_by_agent_id uuid REFERENCES agents(id) ON DELETE SET NULL;
@@ -0,0 +1 @@
1
+ ALTER TABLE "entities" ADD COLUMN "lan_command_yolo" boolean DEFAULT false NOT NULL;
@@ -302,6 +302,13 @@
302
302
  "when": 1782300000000,
303
303
  "tag": "0043_skill_assignment",
304
304
  "breakpoints": true
305
+ },
306
+ {
307
+ "idx": 44,
308
+ "version": "7",
309
+ "when": 1782400000000,
310
+ "tag": "0044_entities_lan_command_yolo",
311
+ "breakpoints": true
305
312
  }
306
313
  ]
307
314
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodal-agents",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "Local-first AI agent platform with a web dashboard — install in one command.",
5
5
  "license": "MIT",
6
6
  "repository": {