nodal-agents 0.2.0 → 0.3.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.
Files changed (129) hide show
  1. package/README.md +24 -0
  2. package/cli.js +314 -99
  3. package/migrations/0020_agent_workspaces.sql +60 -0
  4. package/migrations/meta/0009_snapshot.json +4454 -4454
  5. package/migrations/meta/0010_snapshot.json +4460 -4460
  6. package/migrations/meta/_journal.json +153 -146
  7. package/package.json +7 -3
  8. package/runner.js +2998 -59214
  9. package/web/.next/BUILD_ID +1 -1
  10. package/web/.next/app-path-routes-manifest.json +4 -4
  11. package/web/.next/build-manifest.json +2 -2
  12. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js +3 -2
  13. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js.nft.json +1 -1
  14. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page_client-reference-manifest.js +1 -1
  15. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js +1 -1
  16. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js.nft.json +1 -1
  17. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page_client-reference-manifest.js +1 -1
  18. package/web/.next/server/app/(dashboard)/agents/page.js +2 -2
  19. package/web/.next/server/app/(dashboard)/agents/page.js.nft.json +1 -1
  20. package/web/.next/server/app/(dashboard)/agents/page_client-reference-manifest.js +1 -1
  21. package/web/.next/server/app/(dashboard)/approvals/page.js +2 -2
  22. package/web/.next/server/app/(dashboard)/approvals/page.js.nft.json +1 -1
  23. package/web/.next/server/app/(dashboard)/approvals/page_client-reference-manifest.js +1 -1
  24. package/web/.next/server/app/(dashboard)/automations/page.js +2 -2
  25. package/web/.next/server/app/(dashboard)/automations/page.js.nft.json +1 -1
  26. package/web/.next/server/app/(dashboard)/automations/page_client-reference-manifest.js +1 -1
  27. package/web/.next/server/app/(dashboard)/billing/page_client-reference-manifest.js +1 -1
  28. package/web/.next/server/app/(dashboard)/connectors/page.js +2 -2
  29. package/web/.next/server/app/(dashboard)/connectors/page.js.nft.json +1 -1
  30. package/web/.next/server/app/(dashboard)/connectors/page_client-reference-manifest.js +1 -1
  31. package/web/.next/server/app/(dashboard)/credentials/page.js +1 -1
  32. package/web/.next/server/app/(dashboard)/credentials/page.js.nft.json +1 -1
  33. package/web/.next/server/app/(dashboard)/credentials/page_client-reference-manifest.js +1 -1
  34. package/web/.next/server/app/(dashboard)/jobs/[id]/page.js +2 -2
  35. package/web/.next/server/app/(dashboard)/jobs/[id]/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(dashboard)/jobs/[id]/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(dashboard)/jobs/page.js +2 -2
  38. package/web/.next/server/app/(dashboard)/jobs/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/jobs/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(dashboard)/llm-providers/page.js +2 -2
  41. package/web/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
  42. package/web/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  43. package/web/.next/server/app/(dashboard)/logs/page.js +2 -2
  44. package/web/.next/server/app/(dashboard)/logs/page.js.nft.json +1 -1
  45. package/web/.next/server/app/(dashboard)/logs/page_client-reference-manifest.js +1 -1
  46. package/web/.next/server/app/(dashboard)/mcp/page.js +1 -1
  47. package/web/.next/server/app/(dashboard)/mcp/page.js.nft.json +1 -1
  48. package/web/.next/server/app/(dashboard)/mcp/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/(dashboard)/memories/page.js +2 -2
  50. package/web/.next/server/app/(dashboard)/memories/page.js.nft.json +1 -1
  51. package/web/.next/server/app/(dashboard)/memories/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(dashboard)/page.js +2 -2
  53. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  54. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/(dashboard)/settings/page.js +2 -2
  56. package/web/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  57. package/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js +2 -2
  59. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js.nft.json +1 -1
  60. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/(dashboard)/skills/new/page.js +1299 -101
  62. package/web/.next/server/app/(dashboard)/skills/new/page_client-reference-manifest.js +1 -1
  63. package/web/.next/server/app/(dashboard)/skills/page.js +2 -2
  64. package/web/.next/server/app/(dashboard)/skills/page.js.nft.json +1 -1
  65. package/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/_global-error.html +1 -1
  68. package/web/.next/server/app/_global-error.rsc +1 -1
  69. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  70. package/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  71. package/web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  72. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  73. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  74. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  75. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  76. package/web/.next/server/app/_not-found.html +1 -1
  77. package/web/.next/server/app/_not-found.rsc +2 -2
  78. package/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  79. package/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  80. package/web/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  81. package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  82. package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  83. package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  84. package/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
  85. package/web/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  86. package/web/.next/server/app/onboarding.html +1 -1
  87. package/web/.next/server/app/onboarding.rsc +2 -2
  88. package/web/.next/server/app/onboarding.segments/_full.segment.rsc +2 -2
  89. package/web/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
  90. package/web/.next/server/app/onboarding.segments/_index.segment.rsc +2 -2
  91. package/web/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
  92. package/web/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
  93. package/web/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
  94. package/web/.next/server/app-paths-manifest.json +4 -4
  95. package/web/.next/server/chunks/{9327.js → 2456.js} +1 -1
  96. package/web/.next/server/chunks/4574.js +1 -1
  97. package/web/.next/server/chunks/5786.js +1223 -0
  98. package/web/.next/server/chunks/5832.js +1 -0
  99. package/web/.next/server/chunks/6263.js +1 -0
  100. package/web/.next/server/chunks/9682.js +1 -0
  101. package/web/.next/server/middleware-build-manifest.js +1 -1
  102. package/web/.next/server/pages/404.html +1 -1
  103. package/web/.next/server/pages/500.html +1 -1
  104. package/web/.next/server/server-reference-manifest.js +1 -1
  105. package/web/.next/server/server-reference-manifest.json +1 -1
  106. package/web/.next/static/chunks/3141-f595f19634be6813.js +1 -0
  107. package/web/.next/static/chunks/{6118-c6a8b66d0a3e446c.js → 4239-99af3d7559fd9ec1.js} +1 -1
  108. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-f6f39ebe8d6fb019.js +2 -0
  109. package/web/.next/static/chunks/app/(dashboard)/agents/page-d2e35b0af87cdc0b.js +1 -0
  110. package/web/.next/static/chunks/app/(dashboard)/connectors/page-6ccde8b8b9197d2f.js +1 -0
  111. package/web/.next/static/chunks/app/(dashboard)/credentials/page-679ca09e4625b70f.js +1 -0
  112. package/web/.next/static/chunks/app/(dashboard)/mcp/page-ad271be896b650a9.js +1 -0
  113. package/web/.next/static/chunks/app/(dashboard)/memories/page-0eed8d3610720c33.js +1 -0
  114. package/web/.next/static/chunks/app/(dashboard)/skills/page-472bb16429cd2798.js +1 -0
  115. package/web/.next/static/css/845089bde6c9e6fb.css +3 -0
  116. package/web/.next/server/chunks/5616.js +0 -25
  117. package/web/.next/server/chunks/6595.js +0 -1
  118. package/web/.next/server/chunks/9323.js +0 -1
  119. package/web/.next/static/chunks/3422-9078c04bb8df8ce5.js +0 -1
  120. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-faaf5d7084db1fbc.js +0 -1
  121. package/web/.next/static/chunks/app/(dashboard)/agents/page-9f2c2130d2f4de95.js +0 -1
  122. package/web/.next/static/chunks/app/(dashboard)/connectors/page-cd7ee7dd1458ae47.js +0 -1
  123. package/web/.next/static/chunks/app/(dashboard)/credentials/page-73d252ca88f194f1.js +0 -1
  124. package/web/.next/static/chunks/app/(dashboard)/mcp/page-1b2bf2315b3b213e.js +0 -1
  125. package/web/.next/static/chunks/app/(dashboard)/memories/page-1e537215e80cb0c3.js +0 -1
  126. package/web/.next/static/chunks/app/(dashboard)/skills/page-a6736503d29a2f1c.js +0 -1
  127. package/web/.next/static/css/a161c147ca3606b3.css +0 -3
  128. /package/web/.next/static/{be4PVOMd_EIWn1rY3m-Q2 → RdognT8Zq7jK6wHyNY5k3}/_buildManifest.js +0 -0
  129. /package/web/.next/static/{be4PVOMd_EIWn1rY3m-Q2 → RdognT8Zq7jK6wHyNY5k3}/_ssgManifest.js +0 -0
@@ -0,0 +1,60 @@
1
+ -- 0020_agent_workspaces.sql
2
+ -- Volet 5 (multi-workspace per agent, 2026-05-28):
3
+ -- 1. CREATE TABLE agent_workspaces
4
+ -- 2. Data-migrate existing agents.workspace_root_path into rows
5
+ -- 3. DROP COLUMN agents.workspace_root_path
6
+ --
7
+ -- All three steps are idempotent (IF NOT EXISTS / IF EXISTS guards) so a
8
+ -- runner that re-applies migrations at boot does not error on a clean DB.
9
+
10
+ -- ─── 1. Create the new table ─────────────────────────────────────────────────
11
+
12
+ CREATE TABLE IF NOT EXISTS agent_workspaces (
13
+ id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
14
+ agent_id uuid NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
15
+ entity_id uuid REFERENCES entities(id) ON DELETE CASCADE,
16
+ label text NOT NULL,
17
+ path text NOT NULL,
18
+ position integer NOT NULL DEFAULT 0,
19
+ created_at timestamptz NOT NULL DEFAULT now(),
20
+ updated_at timestamptz NOT NULL DEFAULT now()
21
+ );
22
+
23
+ CREATE UNIQUE INDEX IF NOT EXISTS agent_workspaces_agent_label_unique
24
+ ON agent_workspaces (agent_id, label);
25
+
26
+ CREATE INDEX IF NOT EXISTS idx_agent_workspaces_agent_id
27
+ ON agent_workspaces (agent_id);
28
+
29
+ -- ─── 2. Data-migrate existing workspace_root_path values ──────────────────────
30
+ -- Each migrated agent had exactly one root, so we label it 'workspace'. With a
31
+ -- single workspace the label is optional for path resolution anyway; the user
32
+ -- can remove + re-add with a custom label later. Skips NULL/empty roots.
33
+ -- The IF-column-exists guard makes the block a no-op if re-applied after the
34
+ -- column was already dropped.
35
+
36
+ DO $$
37
+ BEGIN
38
+ IF EXISTS (
39
+ SELECT 1 FROM information_schema.columns
40
+ WHERE table_name = 'agents' AND column_name = 'workspace_root_path'
41
+ ) THEN
42
+ INSERT INTO agent_workspaces (id, agent_id, entity_id, label, path, position)
43
+ SELECT
44
+ gen_random_uuid(),
45
+ id,
46
+ entity_id,
47
+ 'workspace',
48
+ workspace_root_path,
49
+ 0
50
+ FROM agents
51
+ WHERE workspace_root_path IS NOT NULL
52
+ AND workspace_root_path <> ''
53
+ ON CONFLICT (agent_id, label) DO NOTHING;
54
+ END IF;
55
+ END;
56
+ $$;
57
+
58
+ -- ─── 3. Drop the old column ───────────────────────────────────────────────────
59
+
60
+ ALTER TABLE agents DROP COLUMN IF EXISTS workspace_root_path;