nodal-agents 0.5.2 → 0.5.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.
- package/cli.js +52 -0
- package/migrations/0045_app_settings.sql +5 -0
- package/migrations/0046_skill_assignment_scripts_authorized.sql +1 -0
- package/migrations/0047_agent_schedules_timezone.sql +1 -0
- package/migrations/0048_entities_timezone.sql +1 -0
- package/migrations/meta/_journal.json +342 -314
- package/package.json +1 -1
- package/runner.js +8699 -6632
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +11 -10
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/routes-manifest.json +6 -0
- package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js +5 -3
- package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/agents/[id]/edit/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js +2 -2
- package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/agents/page.js +2 -2
- package/web/.next/server/app/(dashboard)/agents/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/agents/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/approvals/page.js +2 -2
- package/web/.next/server/app/(dashboard)/approvals/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/approvals/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/automations/page.js +2 -2
- package/web/.next/server/app/(dashboard)/automations/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/automations/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/billing/page.js +2 -2
- package/web/.next/server/app/(dashboard)/billing/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/billing/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page.js +2 -2
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/connectors/page.js +2 -2
- package/web/.next/server/app/(dashboard)/connectors/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/connectors/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/credentials/page.js +2 -2
- package/web/.next/server/app/(dashboard)/credentials/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/credentials/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/jobs/[id]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/jobs/[id]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/jobs/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/jobs/page.js +2 -2
- package/web/.next/server/app/(dashboard)/jobs/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/jobs/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/learned-skills/page.js +2 -2
- package/web/.next/server/app/(dashboard)/learned-skills/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/learned-skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/llm-providers/page.js +2 -2
- package/web/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/logs/page.js +2 -2
- package/web/.next/server/app/(dashboard)/logs/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/logs/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/mcp/page.js +2 -2
- package/web/.next/server/app/(dashboard)/mcp/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/mcp/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/memories/page.js +2 -2
- package/web/.next/server/app/(dashboard)/memories/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/memories/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page.js +4 -4
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/settings/page.js +2 -2
- package/web/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/settings/root-context/page.js +2 -0
- package/web/.next/server/app/(dashboard)/settings/root-context/page.js.nft.json +1 -0
- package/web/.next/server/app/(dashboard)/settings/root-context/page_client-reference-manifest.js +1 -0
- package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js +2 -2
- package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/skills/[id]/edit/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/skills/new/page.js +2 -2
- package/web/.next/server/app/(dashboard)/skills/new/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/skills/new/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/skills/page.js +2 -2
- package/web/.next/server/app/(dashboard)/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error/page.js +2 -2
- package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +1 -1
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page.js +2 -2
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/server/app/_not-found.rsc +2 -2
- package/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/web/.next/server/app/api/auth/[...all]/route.js +1 -1
- package/web/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -1
- package/web/.next/server/app/api/health/route.js +1 -1
- package/web/.next/server/app/api/oauth/[provider]/callback/route.js +1 -1
- package/web/.next/server/app/api/oauth/[provider]/callback/route.js.nft.json +1 -1
- package/web/.next/server/app/api/oauth/[provider]/start/route.js +1 -1
- package/web/.next/server/app/api/oauth/[provider]/start/route.js.nft.json +1 -1
- package/web/.next/server/app/auth/callback/route.js +1 -1
- package/web/.next/server/app/login/page.js +2 -2
- package/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/onboarding/page.js +2 -2
- package/web/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/onboarding.html +1 -1
- package/web/.next/server/app/onboarding.rsc +2 -2
- package/web/.next/server/app/onboarding.segments/_full.segment.rsc +2 -2
- package/web/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/onboarding.segments/_index.segment.rsc +2 -2
- package/web/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
- package/web/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
- package/web/.next/server/app-paths-manifest.json +11 -10
- package/web/.next/server/chunks/1544.js +1 -0
- package/web/.next/server/chunks/1827.js +1 -0
- package/web/.next/server/chunks/{8732.js → 3154.js} +6 -6
- package/web/.next/server/chunks/3188.js +1 -0
- package/web/.next/server/chunks/3636.js +1 -1
- package/web/.next/server/chunks/4370.js +1429 -0
- package/web/.next/server/chunks/4574.js +1 -1
- package/web/.next/server/chunks/473.js +1 -0
- package/web/.next/server/chunks/{2556.js → 6200.js} +1 -1
- package/web/.next/server/chunks/652.js +709 -0
- package/web/.next/server/chunks/6592.js +1 -0
- package/web/.next/server/chunks/6778.js +1 -0
- package/web/.next/server/chunks/7415.js +1 -0
- package/web/.next/server/middleware-build-manifest.js +1 -1
- package/web/.next/server/pages/404.html +1 -1
- package/web/.next/server/pages/500.html +1 -1
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +1 -1
- package/web/.next/static/URd3wLbbONHdJcTWOsoRw/_buildManifest.js +1 -0
- package/web/.next/static/chunks/6097-12165ea99c077896.js +1 -0
- package/web/.next/static/chunks/{7164-a5cae6a1833041a7.js → 7164-080c206b663d64b2.js} +1 -1
- package/web/.next/static/chunks/{6908-e8114db85dca4371.js → 8666-90a1f5d99b79411e.js} +1 -1
- package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-72e5a7541de7e969.js +4 -0
- package/web/.next/static/chunks/app/(dashboard)/connectors/page-6c4c1c753858c7b8.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/credentials/page-ef2666c5ac3ede9b.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/mcp/page-d53d13942bd635a4.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/memories/page-ebcc28ea081ae566.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/settings/page-b3cc57c577895cac.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/settings/root-context/page-6830a271484d97d5.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/skills/[id]/edit/page-ddd8ebba5889c9a4.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/skills/new/page-6246f9236b209e76.js +1 -0
- package/web/.next/static/chunks/app/(dashboard)/skills/{page-e25db7f660751dfd.js → page-68d64faf1a7c49b2.js} +1 -1
- package/web/.next/static/css/f93e519b745ac2de.css +3 -0
- package/web/public/connector-icons/airtable.svg +13 -0
- package/web/public/connector-icons/git.svg +3 -0
- package/web/public/connector-icons/github.svg +10 -0
- package/web/public/connector-icons/gmail.svg +14 -0
- package/web/public/connector-icons/google-docs.svg +12 -0
- package/web/public/connector-icons/google-drive.svg +8 -0
- package/web/public/connector-icons/google-sheets.svg +25 -0
- package/web/public/connector-icons/notion.svg +3 -0
- package/web/public/connector-icons/postgresql.svg +14 -0
- package/web/public/connector-icons/sentry.svg +10 -0
- package/web/public/connector-icons/stripe.svg +4 -0
- package/web/.next/server/chunks/3279.js +0 -1
- package/web/.next/server/chunks/5869.js +0 -1
- package/web/.next/server/chunks/6606.js +0 -1
- package/web/.next/server/chunks/9267.js +0 -16
- package/web/.next/server/chunks/9656.js +0 -1
- package/web/.next/server/chunks/9942.js +0 -1223
- package/web/.next/static/FgBmSI8AhGeFcxmEUF1VS/_buildManifest.js +0 -1
- package/web/.next/static/chunks/3178-bde220b789f10130.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-9d2c7d640411e42d.js +0 -2
- package/web/.next/static/chunks/app/(dashboard)/connectors/page-6591a8753b6a19c1.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/credentials/page-19061f4a8bf1978f.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/mcp/page-f9337250ed07249e.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/memories/page-b935752c6cb36a04.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/settings/page-cc13aebbb8d33d19.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/skills/[id]/edit/page-85c75cc88ee1d6a8.js +0 -1
- package/web/.next/static/chunks/app/(dashboard)/skills/new/page-9b0777fccb89a00b.js +0 -1
- package/web/.next/static/css/de0fc0bc138be3b3.css +0 -3
- /package/web/.next/static/{FgBmSI8AhGeFcxmEUF1VS → URd3wLbbONHdJcTWOsoRw}/_ssgManifest.js +0 -0
package/cli.js
CHANGED
|
@@ -12127,12 +12127,16 @@ var init_root_agent = __esm({
|
|
|
12127
12127
|
AutonomyLevelSchema = z18.enum(["propose_confirm", "destructive_gate", "fully_autonomous"]);
|
|
12128
12128
|
RootGrantsSchema = z18.object({
|
|
12129
12129
|
createAgent: z18.boolean(),
|
|
12130
|
+
updateAgent: z18.boolean(),
|
|
12130
12131
|
attachAgent: z18.boolean(),
|
|
12131
12132
|
createSkill: z18.boolean(),
|
|
12132
12133
|
updateSkill: z18.boolean(),
|
|
12133
12134
|
assignSkill: z18.boolean(),
|
|
12134
12135
|
createMcp: z18.boolean(),
|
|
12136
|
+
attachMcp: z18.boolean(),
|
|
12135
12137
|
createConnector: z18.boolean(),
|
|
12138
|
+
attachConnector: z18.boolean(),
|
|
12139
|
+
manageSchedules: z18.boolean(),
|
|
12136
12140
|
autonomy: AutonomyLevelSchema
|
|
12137
12141
|
});
|
|
12138
12142
|
}
|
|
@@ -12152,6 +12156,13 @@ var init_model_catalog = __esm({
|
|
|
12152
12156
|
}
|
|
12153
12157
|
});
|
|
12154
12158
|
|
|
12159
|
+
// ../../packages/shared/src/timezone.ts
|
|
12160
|
+
var init_timezone = __esm({
|
|
12161
|
+
"../../packages/shared/src/timezone.ts"() {
|
|
12162
|
+
"use strict";
|
|
12163
|
+
}
|
|
12164
|
+
});
|
|
12165
|
+
|
|
12155
12166
|
// ../../packages/shared/src/index.ts
|
|
12156
12167
|
var init_src2 = __esm({
|
|
12157
12168
|
"../../packages/shared/src/index.ts"() {
|
|
@@ -12177,6 +12188,7 @@ var init_src2 = __esm({
|
|
|
12177
12188
|
init_root_agent();
|
|
12178
12189
|
init_connector_catalog();
|
|
12179
12190
|
init_model_catalog();
|
|
12191
|
+
init_timezone();
|
|
12180
12192
|
}
|
|
12181
12193
|
});
|
|
12182
12194
|
|
|
@@ -12265,6 +12277,11 @@ var init_entities = __esm({
|
|
|
12265
12277
|
icon: text("icon").default("\u{1F3E2}"),
|
|
12266
12278
|
industry: text("industry"),
|
|
12267
12279
|
goal: text("goal"),
|
|
12280
|
+
// IANA timezone for this workspace (e.g. 'Europe/Paris'). Captured from the
|
|
12281
|
+
// user's browser at onboarding, editable in Settings. Authoritative for the
|
|
12282
|
+
// agent: it reads the current local time and schedules crons in THIS zone.
|
|
12283
|
+
// null = fall back to the server's resolved timezone (legacy / pre-capture).
|
|
12284
|
+
timezone: text("timezone"),
|
|
12268
12285
|
mcpToken: uuid("mcp_token").defaultRandom(),
|
|
12269
12286
|
// ROOT agent designation (Wave 1 — V4 ROOT agent, 2026-05-29).
|
|
12270
12287
|
// Points at the agent that receives meta-tools. Set null when no root
|
|
@@ -12996,6 +13013,12 @@ var init_skills = __esm({
|
|
|
12996
13013
|
approvalOverrides: jsonb("approval_overrides").default(sql`'{}'::jsonb`),
|
|
12997
13014
|
useCustomInstructions: boolean("use_custom_instructions").notNull().default(false),
|
|
12998
13015
|
enabledOperations: text("enabled_operations").array(),
|
|
13016
|
+
// Per-skill × per-agent authorization to EXECUTE the skill's bundled scripts
|
|
13017
|
+
// (installed_scripts) via run_skill_script. Owner opt-in, default FALSE. A
|
|
13018
|
+
// community skill may ship .py/.sh scripts, but the runtime refuses to run
|
|
13019
|
+
// them unless the owner flips this for a specific agent × skill — the
|
|
13020
|
+
// case-by-case execution gate. Loaded by the runner into the ToolContext.
|
|
13021
|
+
scriptsAuthorized: boolean("scripts_authorized").notNull().default(false),
|
|
12999
13022
|
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
|
|
13000
13023
|
},
|
|
13001
13024
|
() => []
|
|
@@ -13021,6 +13044,10 @@ var init_schedules = __esm({
|
|
|
13021
13044
|
type: text("type").notNull().default("cron"),
|
|
13022
13045
|
name: text("name").notNull(),
|
|
13023
13046
|
cronExpr: text("cron_expr").notNull(),
|
|
13047
|
+
// IANA timezone the cron is evaluated in (e.g. 'Asia/Singapore'). null = the
|
|
13048
|
+
// server's local timezone (legacy rows). New schedules capture an explicit tz
|
|
13049
|
+
// so "9am" stays 9am in the user's zone regardless of where the runner hosts.
|
|
13050
|
+
timezone: text("timezone"),
|
|
13024
13051
|
task: text("task"),
|
|
13025
13052
|
objectives: text("objectives"),
|
|
13026
13053
|
active: boolean("active").default(true),
|
|
@@ -13352,6 +13379,20 @@ var init_chat_messages = __esm({
|
|
|
13352
13379
|
}
|
|
13353
13380
|
});
|
|
13354
13381
|
|
|
13382
|
+
// ../../packages/db/src/schema/app-settings.ts
|
|
13383
|
+
var appSettings;
|
|
13384
|
+
var init_app_settings = __esm({
|
|
13385
|
+
"../../packages/db/src/schema/app-settings.ts"() {
|
|
13386
|
+
"use strict";
|
|
13387
|
+
init_pg_core();
|
|
13388
|
+
appSettings = pgTable("app_settings", {
|
|
13389
|
+
key: text("key").primaryKey(),
|
|
13390
|
+
value: text("value").default("").notNull(),
|
|
13391
|
+
updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow().notNull()
|
|
13392
|
+
});
|
|
13393
|
+
}
|
|
13394
|
+
});
|
|
13395
|
+
|
|
13355
13396
|
// ../../packages/db/src/schema/index.ts
|
|
13356
13397
|
var schema_exports = {};
|
|
13357
13398
|
__export(schema_exports, {
|
|
@@ -13389,6 +13430,7 @@ __export(schema_exports, {
|
|
|
13389
13430
|
agentTasks: () => agentTasks,
|
|
13390
13431
|
agentWorkspaces: () => agentWorkspaces,
|
|
13391
13432
|
agents: () => agents,
|
|
13433
|
+
appSettings: () => appSettings,
|
|
13392
13434
|
approvalRequests: () => approvalRequests,
|
|
13393
13435
|
approvalRules: () => approvalRules,
|
|
13394
13436
|
chatMessages: () => chatMessages,
|
|
@@ -13435,6 +13477,7 @@ var init_schema2 = __esm({
|
|
|
13435
13477
|
init_agent_connector_assignments();
|
|
13436
13478
|
init_agent_workspaces();
|
|
13437
13479
|
init_chat_messages();
|
|
13480
|
+
init_app_settings();
|
|
13438
13481
|
}
|
|
13439
13482
|
});
|
|
13440
13483
|
|
|
@@ -13518,6 +13561,14 @@ var init_retention = __esm({
|
|
|
13518
13561
|
}
|
|
13519
13562
|
});
|
|
13520
13563
|
|
|
13564
|
+
// ../../packages/db/src/repos/app-settings.ts
|
|
13565
|
+
var init_app_settings2 = __esm({
|
|
13566
|
+
"../../packages/db/src/repos/app-settings.ts"() {
|
|
13567
|
+
"use strict";
|
|
13568
|
+
init_schema2();
|
|
13569
|
+
}
|
|
13570
|
+
});
|
|
13571
|
+
|
|
13521
13572
|
// ../../packages/db/src/index.ts
|
|
13522
13573
|
var init_src4 = __esm({
|
|
13523
13574
|
"../../packages/db/src/index.ts"() {
|
|
@@ -13529,6 +13580,7 @@ var init_src4 = __esm({
|
|
|
13529
13580
|
init_agents2();
|
|
13530
13581
|
init_skills2();
|
|
13531
13582
|
init_retention();
|
|
13583
|
+
init_app_settings2();
|
|
13532
13584
|
init_drizzle_orm();
|
|
13533
13585
|
}
|
|
13534
13586
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ALTER TABLE "agent_skill_assignments" ADD COLUMN "scripts_authorized" boolean DEFAULT false NOT NULL;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ALTER TABLE "agent_schedules" ADD COLUMN "timezone" text;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ALTER TABLE "entities" ADD COLUMN "timezone" text;
|