struere 0.5.15 → 0.5.16
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/dist/bin/struere.js +256 -8
- package/dist/cli/commands/add.d.ts.map +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/index.js +256 -8
- package/dist/cli/templates/index.d.ts +2 -1
- package/dist/cli/templates/index.d.ts.map +1 -1
- package/dist/cli/utils/convex.d.ts +6 -0
- package/dist/cli/utils/convex.d.ts.map +1 -1
- package/dist/cli/utils/extractor.d.ts +13 -0
- package/dist/cli/utils/extractor.d.ts.map +1 -1
- package/dist/cli/utils/loader.d.ts +4 -1
- package/dist/cli/utils/loader.d.ts.map +1 -1
- package/dist/cli/utils/scaffold.d.ts +1 -0
- package/dist/cli/utils/scaffold.d.ts.map +1 -1
- package/dist/define/trigger.d.ts +3 -0
- package/dist/define/trigger.d.ts.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -0
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/bin/struere.js
CHANGED
|
@@ -20096,6 +20096,7 @@ Struere is a framework for building production AI agents with Convex as the real
|
|
|
20096
20096
|
\u2502 \u251C\u2500\u2500 agents/*.ts \u2192 Agent configs synced to Convex \u2502
|
|
20097
20097
|
\u2502 \u251C\u2500\u2500 entity-types/*.ts \u2192 Schema definitions synced to Convex \u2502
|
|
20098
20098
|
\u2502 \u251C\u2500\u2500 roles/*.ts \u2192 RBAC policies synced to Convex \u2502
|
|
20099
|
+
\u2502 \u251C\u2500\u2500 triggers/*.ts \u2192 Automation rules synced to Convex \u2502
|
|
20099
20100
|
\u2502 \u251C\u2500\u2500 tools/index.ts \u2192 Custom tools (run on CF Worker) \u2502
|
|
20100
20101
|
\u2502 \u2514\u2500\u2500 evals/*.eval.yaml \u2192 Test suites (synced + executed) \u2502
|
|
20101
20102
|
\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
|
|
@@ -20134,6 +20135,10 @@ roles/ # RBAC: who can do what
|
|
|
20134
20135
|
\u251C\u2500\u2500 support.ts # Limited access
|
|
20135
20136
|
\u2514\u2500\u2500 index.ts
|
|
20136
20137
|
|
|
20138
|
+
triggers/ # Automation rules (react to entity changes)
|
|
20139
|
+
\u251C\u2500\u2500 notify-on-create.ts
|
|
20140
|
+
\u2514\u2500\u2500 index.ts
|
|
20141
|
+
|
|
20137
20142
|
tools/ # Custom tools shared by all agents
|
|
20138
20143
|
\u2514\u2500\u2500 index.ts # defineTools([...])
|
|
20139
20144
|
|
|
@@ -20174,6 +20179,7 @@ export default defineConfig({
|
|
|
20174
20179
|
| \`struere add agent <name>\` | Create agents/name.ts with template |
|
|
20175
20180
|
| \`struere add entity-type <name>\` | Create entity-types/name.ts |
|
|
20176
20181
|
| \`struere add role <name>\` | Create roles/name.ts |
|
|
20182
|
+
| \`struere add trigger <name>\` | Create triggers/name.ts with template |
|
|
20177
20183
|
| \`struere add eval <name>\` | Create evals/name.eval.yaml with template |
|
|
20178
20184
|
| \`struere eval\` | Run all eval suites |
|
|
20179
20185
|
| \`struere eval --suite <name>\` | Run a specific eval suite |
|
|
@@ -20396,6 +20402,103 @@ Custom tool handlers can only fetch from:
|
|
|
20396
20402
|
- api.stripe.com, api.sendgrid.com, api.twilio.com
|
|
20397
20403
|
- hooks.slack.com, discord.com, api.github.com
|
|
20398
20404
|
|
|
20405
|
+
## Defining Triggers
|
|
20406
|
+
|
|
20407
|
+
Triggers are automated actions that fire when entities are created, updated, or deleted. They run asynchronously after the mutation completes.
|
|
20408
|
+
|
|
20409
|
+
Create \\\`triggers/notify-on-session.ts\\\`:
|
|
20410
|
+
\\\`\\\`\\\`typescript
|
|
20411
|
+
import { defineTrigger } from 'struere'
|
|
20412
|
+
|
|
20413
|
+
export default defineTrigger({
|
|
20414
|
+
name: "Notify Teacher on New Session",
|
|
20415
|
+
slug: "notify-teacher-on-session",
|
|
20416
|
+
on: {
|
|
20417
|
+
entityType: "session",
|
|
20418
|
+
action: "created",
|
|
20419
|
+
condition: { "data.status": "scheduled" } // optional
|
|
20420
|
+
},
|
|
20421
|
+
actions: [
|
|
20422
|
+
{
|
|
20423
|
+
tool: "entity.get",
|
|
20424
|
+
args: { id: "{{trigger.data.teacherId}}" },
|
|
20425
|
+
as: "teacher" // store result for later steps
|
|
20426
|
+
},
|
|
20427
|
+
{
|
|
20428
|
+
tool: "event.emit",
|
|
20429
|
+
args: {
|
|
20430
|
+
eventType: "notification.sent",
|
|
20431
|
+
entityId: "{{trigger.entityId}}",
|
|
20432
|
+
payload: {
|
|
20433
|
+
teacherName: "{{steps.teacher.data.name}}",
|
|
20434
|
+
sessionTime: "{{trigger.data.startTime}}"
|
|
20435
|
+
}
|
|
20436
|
+
}
|
|
20437
|
+
}
|
|
20438
|
+
]
|
|
20439
|
+
})
|
|
20440
|
+
\\\`\\\`\\\`
|
|
20441
|
+
|
|
20442
|
+
### Trigger Config
|
|
20443
|
+
|
|
20444
|
+
| Field | Required | Description |
|
|
20445
|
+
|-------|----------|-------------|
|
|
20446
|
+
| \\\`name\\\` | Yes | Display name |
|
|
20447
|
+
| \\\`slug\\\` | Yes | Unique identifier (used for sync) |
|
|
20448
|
+
| \\\`on.entityType\\\` | Yes | Entity type slug to watch |
|
|
20449
|
+
| \\\`on.action\\\` | Yes | \\\`"created"\\\`, \\\`"updated"\\\`, or \\\`"deleted"\\\` |
|
|
20450
|
+
| \\\`on.condition\\\` | No | Dot-notation equality conditions on entity data |
|
|
20451
|
+
| \\\`actions\\\` | Yes | Ordered list of tool calls to execute |
|
|
20452
|
+
|
|
20453
|
+
### Action Pipeline
|
|
20454
|
+
|
|
20455
|
+
Each action in the \\\`actions\\\` array runs sequentially:
|
|
20456
|
+
|
|
20457
|
+
| Field | Required | Description |
|
|
20458
|
+
|-------|----------|-------------|
|
|
20459
|
+
| \\\`tool\\\` | Yes | Built-in or custom tool name |
|
|
20460
|
+
| \\\`args\\\` | Yes | Arguments (supports \\\`{{template}}\\\` variables) |
|
|
20461
|
+
| \\\`as\\\` | No | Store result under this name for later steps |
|
|
20462
|
+
|
|
20463
|
+
### Template Variables
|
|
20464
|
+
|
|
20465
|
+
Use \\\`{{...}}\\\` in action args to reference trigger context and previous step results:
|
|
20466
|
+
|
|
20467
|
+
| Variable | Description |
|
|
20468
|
+
|----------|-------------|
|
|
20469
|
+
| \\\`{{trigger.entityId}}\\\` | ID of the entity that changed |
|
|
20470
|
+
| \\\`{{trigger.entityType}}\\\` | Entity type slug |
|
|
20471
|
+
| \\\`{{trigger.action}}\\\` | \\\`"created"\\\`, \\\`"updated"\\\`, or \\\`"deleted"\\\` |
|
|
20472
|
+
| \\\`{{trigger.data.X}}\\\` | Entity data field (e.g. \\\`{{trigger.data.email}}\\\`) |
|
|
20473
|
+
| \\\`{{trigger.previousData.X}}\\\` | Previous value (updates/deletes only) |
|
|
20474
|
+
| \\\`{{steps.NAME.X}}\\\` | Result from a prior action with \\\`as: "NAME"\\\` |
|
|
20475
|
+
|
|
20476
|
+
### Conditions
|
|
20477
|
+
|
|
20478
|
+
Conditions use dot-notation path equality matching:
|
|
20479
|
+
\\\`\\\`\\\`typescript
|
|
20480
|
+
condition: {
|
|
20481
|
+
"data.status": "scheduled", // field must equal value
|
|
20482
|
+
"data.priority": "high" // all conditions must match (AND)
|
|
20483
|
+
}
|
|
20484
|
+
\\\`\\\`\\\`
|
|
20485
|
+
|
|
20486
|
+
### Execution Model
|
|
20487
|
+
|
|
20488
|
+
- **Async**: Triggers are scheduled after the mutation, keeping writes fast
|
|
20489
|
+
- **System actor**: Actions execute with full admin access (not the user's role)
|
|
20490
|
+
- **Fail-fast**: If any action fails, remaining actions are skipped
|
|
20491
|
+
- **Events**: Emits \\\`trigger.executed\\\` on success, \\\`trigger.failed\\\` on error
|
|
20492
|
+
- **Both paths**: Triggers fire from dashboard CRUD, agent tool calls, and API mutations
|
|
20493
|
+
|
|
20494
|
+
### Scaffold a new trigger
|
|
20495
|
+
|
|
20496
|
+
\\\`\\\`\\\`bash
|
|
20497
|
+
struere add trigger my-trigger
|
|
20498
|
+
\\\`\\\`\\\`
|
|
20499
|
+
|
|
20500
|
+
Creates \\\`triggers/my-trigger.ts\\\` with a starter template.
|
|
20501
|
+
|
|
20399
20502
|
## Built-in Tools Reference
|
|
20400
20503
|
|
|
20401
20504
|
### Entity Tools
|
|
@@ -20654,6 +20757,29 @@ Always confirm what was created/updated.\\\`,
|
|
|
20654
20757
|
\`\`\`
|
|
20655
20758
|
`;
|
|
20656
20759
|
}
|
|
20760
|
+
function getTriggerTs(name, slug) {
|
|
20761
|
+
return `import { defineTrigger } from 'struere'
|
|
20762
|
+
|
|
20763
|
+
export default defineTrigger({
|
|
20764
|
+
name: "${name}",
|
|
20765
|
+
slug: "${slug}",
|
|
20766
|
+
on: {
|
|
20767
|
+
entityType: "ENTITY_TYPE_HERE",
|
|
20768
|
+
action: "created",
|
|
20769
|
+
},
|
|
20770
|
+
actions: [
|
|
20771
|
+
{
|
|
20772
|
+
tool: "event.emit",
|
|
20773
|
+
args: {
|
|
20774
|
+
eventType: "trigger.${slug}.fired",
|
|
20775
|
+
entityId: "{{trigger.entityId}}",
|
|
20776
|
+
payload: { triggeredBy: "${slug}" },
|
|
20777
|
+
},
|
|
20778
|
+
},
|
|
20779
|
+
],
|
|
20780
|
+
})
|
|
20781
|
+
`;
|
|
20782
|
+
}
|
|
20657
20783
|
|
|
20658
20784
|
// src/cli/utils/scaffold.ts
|
|
20659
20785
|
function ensureDir(filePath) {
|
|
@@ -20677,7 +20803,8 @@ function scaffoldProjectV2(cwd, options) {
|
|
|
20677
20803
|
"entity-types",
|
|
20678
20804
|
"roles",
|
|
20679
20805
|
"tools",
|
|
20680
|
-
"evals"
|
|
20806
|
+
"evals",
|
|
20807
|
+
"triggers"
|
|
20681
20808
|
];
|
|
20682
20809
|
for (const dir of directories) {
|
|
20683
20810
|
const dirPath = join3(cwd, dir);
|
|
@@ -20697,6 +20824,7 @@ function scaffoldProjectV2(cwd, options) {
|
|
|
20697
20824
|
"entity-types/index.ts": getIndexTs("entity-types"),
|
|
20698
20825
|
"roles/index.ts": getIndexTs("roles"),
|
|
20699
20826
|
"tools/index.ts": getToolsIndexTs(),
|
|
20827
|
+
"triggers/index.ts": getIndexTs("triggers"),
|
|
20700
20828
|
"evals/basic-agent-tests.eval.yaml": getExampleEvalYaml("my-agent")
|
|
20701
20829
|
};
|
|
20702
20830
|
for (const [relativePath, content] of Object.entries(files)) {
|
|
@@ -20782,6 +20910,24 @@ function scaffoldEval(cwd, name, slug, agentSlug = "my-agent") {
|
|
|
20782
20910
|
result.createdFiles.push(`evals/${fileName}`);
|
|
20783
20911
|
return result;
|
|
20784
20912
|
}
|
|
20913
|
+
function scaffoldTrigger(cwd, name, slug) {
|
|
20914
|
+
const result = {
|
|
20915
|
+
createdFiles: [],
|
|
20916
|
+
updatedFiles: []
|
|
20917
|
+
};
|
|
20918
|
+
const triggersDir = join3(cwd, "triggers");
|
|
20919
|
+
if (!existsSync3(triggersDir)) {
|
|
20920
|
+
mkdirSync2(triggersDir, { recursive: true });
|
|
20921
|
+
}
|
|
20922
|
+
const fileName = `${slug}.ts`;
|
|
20923
|
+
const filePath = join3(triggersDir, fileName);
|
|
20924
|
+
if (existsSync3(filePath)) {
|
|
20925
|
+
return result;
|
|
20926
|
+
}
|
|
20927
|
+
writeFileSync3(filePath, getTriggerTs(name, slug));
|
|
20928
|
+
result.createdFiles.push(`triggers/${fileName}`);
|
|
20929
|
+
return result;
|
|
20930
|
+
}
|
|
20785
20931
|
|
|
20786
20932
|
// src/cli/commands/init.ts
|
|
20787
20933
|
async function runInit(cwd, selectedOrg) {
|
|
@@ -20985,7 +21131,8 @@ async function loadAllResources(cwd) {
|
|
|
20985
21131
|
}
|
|
20986
21132
|
const { suites: evalSuites, errors: evalErrors } = loadAllEvalSuites(join4(cwd, "evals"));
|
|
20987
21133
|
errors2.push(...evalErrors);
|
|
20988
|
-
|
|
21134
|
+
const triggers = await loadAllTriggers(join4(cwd, "triggers"));
|
|
21135
|
+
return { agents, entityTypes, roles, customTools, evalSuites, triggers, errors: errors2 };
|
|
20989
21136
|
}
|
|
20990
21137
|
async function loadAllAgents(dir) {
|
|
20991
21138
|
if (!existsSync4(dir)) {
|
|
@@ -21093,13 +21240,24 @@ function loadAllEvalSuites(dir) {
|
|
|
21093
21240
|
}
|
|
21094
21241
|
return { suites, errors: errors2 };
|
|
21095
21242
|
}
|
|
21243
|
+
async function loadAllTriggers(dir) {
|
|
21244
|
+
if (!existsSync4(dir)) {
|
|
21245
|
+
return [];
|
|
21246
|
+
}
|
|
21247
|
+
const indexPath = join4(dir, "index.ts");
|
|
21248
|
+
if (existsSync4(indexPath)) {
|
|
21249
|
+
return loadFromIndex(indexPath);
|
|
21250
|
+
}
|
|
21251
|
+
return loadFromDirectory(dir);
|
|
21252
|
+
}
|
|
21096
21253
|
function getResourceDirectories(cwd) {
|
|
21097
21254
|
return {
|
|
21098
21255
|
agents: join4(cwd, "agents"),
|
|
21099
21256
|
entityTypes: join4(cwd, "entity-types"),
|
|
21100
21257
|
roles: join4(cwd, "roles"),
|
|
21101
21258
|
tools: join4(cwd, "tools"),
|
|
21102
|
-
evals: join4(cwd, "evals")
|
|
21259
|
+
evals: join4(cwd, "evals"),
|
|
21260
|
+
triggers: join4(cwd, "triggers")
|
|
21103
21261
|
};
|
|
21104
21262
|
}
|
|
21105
21263
|
|
|
@@ -21122,7 +21280,12 @@ var BUILTIN_TOOLS = [
|
|
|
21122
21280
|
"event.emit",
|
|
21123
21281
|
"event.query",
|
|
21124
21282
|
"job.enqueue",
|
|
21125
|
-
"job.status"
|
|
21283
|
+
"job.status",
|
|
21284
|
+
"calendar.list",
|
|
21285
|
+
"calendar.create",
|
|
21286
|
+
"calendar.update",
|
|
21287
|
+
"calendar.delete",
|
|
21288
|
+
"calendar.freeBusy"
|
|
21126
21289
|
];
|
|
21127
21290
|
function extractSyncPayload(resources) {
|
|
21128
21291
|
const customToolsMap = new Map;
|
|
@@ -21178,7 +21341,20 @@ function extractSyncPayload(resources) {
|
|
|
21178
21341
|
finalAssertions: c.finalAssertions
|
|
21179
21342
|
}))
|
|
21180
21343
|
})) : undefined;
|
|
21181
|
-
|
|
21344
|
+
const triggers = resources.triggers.length > 0 ? resources.triggers.map((t) => ({
|
|
21345
|
+
name: t.name,
|
|
21346
|
+
slug: t.slug,
|
|
21347
|
+
description: t.description,
|
|
21348
|
+
entityType: t.on.entityType,
|
|
21349
|
+
action: t.on.action,
|
|
21350
|
+
condition: t.on.condition,
|
|
21351
|
+
actions: t.actions.map((a) => ({
|
|
21352
|
+
tool: a.tool,
|
|
21353
|
+
args: a.args,
|
|
21354
|
+
as: a.as
|
|
21355
|
+
}))
|
|
21356
|
+
})) : undefined;
|
|
21357
|
+
return { agents, entityTypes, roles, evalSuites, triggers };
|
|
21182
21358
|
}
|
|
21183
21359
|
function extractAgentPayload(agent, customToolsMap) {
|
|
21184
21360
|
let systemPrompt;
|
|
@@ -21241,7 +21417,12 @@ function getBuiltinToolDescription(name) {
|
|
|
21241
21417
|
"event.emit": "Emit a custom event for audit logging",
|
|
21242
21418
|
"event.query": "Query historical events with optional filters",
|
|
21243
21419
|
"job.enqueue": "Schedule a background job to run later",
|
|
21244
|
-
"job.status": "Get the status of a scheduled job"
|
|
21420
|
+
"job.status": "Get the status of a scheduled job",
|
|
21421
|
+
"calendar.list": "List Google Calendar events for a user within a time range",
|
|
21422
|
+
"calendar.create": "Create a Google Calendar event on a user's calendar",
|
|
21423
|
+
"calendar.update": "Update an existing Google Calendar event",
|
|
21424
|
+
"calendar.delete": "Delete a Google Calendar event",
|
|
21425
|
+
"calendar.freeBusy": "Check free/busy availability on a user's Google Calendar"
|
|
21245
21426
|
};
|
|
21246
21427
|
return descriptions[name] || name;
|
|
21247
21428
|
}
|
|
@@ -21347,6 +21528,60 @@ function getBuiltinToolParameters(name) {
|
|
|
21347
21528
|
id: { type: "string", description: "The job ID to check" }
|
|
21348
21529
|
},
|
|
21349
21530
|
required: ["id"]
|
|
21531
|
+
},
|
|
21532
|
+
"calendar.list": {
|
|
21533
|
+
type: "object",
|
|
21534
|
+
properties: {
|
|
21535
|
+
userId: { type: "string", description: "User ID (Convex or Clerk) whose calendar to query" },
|
|
21536
|
+
timeMin: { type: "string", description: "Start of time range (ISO 8601 datetime)" },
|
|
21537
|
+
timeMax: { type: "string", description: "End of time range (ISO 8601 datetime)" },
|
|
21538
|
+
maxResults: { type: "number", description: "Maximum number of events to return" }
|
|
21539
|
+
},
|
|
21540
|
+
required: ["userId", "timeMin", "timeMax"]
|
|
21541
|
+
},
|
|
21542
|
+
"calendar.create": {
|
|
21543
|
+
type: "object",
|
|
21544
|
+
properties: {
|
|
21545
|
+
userId: { type: "string", description: "User ID (Convex or Clerk) whose calendar to create the event on" },
|
|
21546
|
+
summary: { type: "string", description: "Event title" },
|
|
21547
|
+
startTime: { type: "string", description: "Event start time (ISO 8601 datetime)" },
|
|
21548
|
+
endTime: { type: "string", description: "Event end time (ISO 8601 datetime)" },
|
|
21549
|
+
description: { type: "string", description: "Event description" },
|
|
21550
|
+
attendees: { type: "array", items: { type: "string" }, description: "List of attendee email addresses" },
|
|
21551
|
+
timeZone: { type: "string", description: 'Time zone (e.g., "America/Santiago")' }
|
|
21552
|
+
},
|
|
21553
|
+
required: ["userId", "summary", "startTime", "endTime"]
|
|
21554
|
+
},
|
|
21555
|
+
"calendar.update": {
|
|
21556
|
+
type: "object",
|
|
21557
|
+
properties: {
|
|
21558
|
+
userId: { type: "string", description: "User ID (Convex or Clerk) whose calendar contains the event" },
|
|
21559
|
+
eventId: { type: "string", description: "Google Calendar event ID to update" },
|
|
21560
|
+
summary: { type: "string", description: "New event title" },
|
|
21561
|
+
startTime: { type: "string", description: "New start time (ISO 8601 datetime)" },
|
|
21562
|
+
endTime: { type: "string", description: "New end time (ISO 8601 datetime)" },
|
|
21563
|
+
description: { type: "string", description: "New event description" },
|
|
21564
|
+
attendees: { type: "array", items: { type: "string" }, description: "Updated list of attendee emails" },
|
|
21565
|
+
status: { type: "string", description: "Event status (confirmed, tentative, cancelled)" }
|
|
21566
|
+
},
|
|
21567
|
+
required: ["userId", "eventId"]
|
|
21568
|
+
},
|
|
21569
|
+
"calendar.delete": {
|
|
21570
|
+
type: "object",
|
|
21571
|
+
properties: {
|
|
21572
|
+
userId: { type: "string", description: "User ID (Convex or Clerk) whose calendar contains the event" },
|
|
21573
|
+
eventId: { type: "string", description: "Google Calendar event ID to delete" }
|
|
21574
|
+
},
|
|
21575
|
+
required: ["userId", "eventId"]
|
|
21576
|
+
},
|
|
21577
|
+
"calendar.freeBusy": {
|
|
21578
|
+
type: "object",
|
|
21579
|
+
properties: {
|
|
21580
|
+
userId: { type: "string", description: "User ID (Convex or Clerk) whose availability to check" },
|
|
21581
|
+
timeMin: { type: "string", description: "Start of time range (ISO 8601 datetime)" },
|
|
21582
|
+
timeMax: { type: "string", description: "End of time range (ISO 8601 datetime)" }
|
|
21583
|
+
},
|
|
21584
|
+
required: ["userId", "timeMin", "timeMax"]
|
|
21350
21585
|
}
|
|
21351
21586
|
};
|
|
21352
21587
|
return schemas[name] || { type: "object", properties: {} };
|
|
@@ -21485,7 +21720,7 @@ var devCommand = new Command("dev").description("Sync all resources to developme
|
|
|
21485
21720
|
spinner.start("Loading resources");
|
|
21486
21721
|
try {
|
|
21487
21722
|
const resources = await loadAllResources(cwd);
|
|
21488
|
-
spinner.succeed(`Loaded ${resources.agents.length} agents, ${resources.entityTypes.length} entity types, ${resources.roles.length} roles, ${resources.customTools.length} custom tools, ${resources.evalSuites.length} eval suites`);
|
|
21723
|
+
spinner.succeed(`Loaded ${resources.agents.length} agents, ${resources.entityTypes.length} entity types, ${resources.roles.length} roles, ${resources.customTools.length} custom tools, ${resources.evalSuites.length} eval suites, ${resources.triggers.length} triggers`);
|
|
21489
21724
|
for (const err of resources.errors) {
|
|
21490
21725
|
console.log(source_default.red(" \u2716"), err);
|
|
21491
21726
|
}
|
|
@@ -21544,6 +21779,7 @@ var devCommand = new Command("dev").description("Sync all resources to developme
|
|
|
21544
21779
|
dirs.roles,
|
|
21545
21780
|
dirs.tools,
|
|
21546
21781
|
dirs.evals,
|
|
21782
|
+
dirs.triggers,
|
|
21547
21783
|
join5(cwd, "struere.config.ts")
|
|
21548
21784
|
].filter((p) => existsSync5(p));
|
|
21549
21785
|
const watcher = import_chokidar.default.watch(watchPaths, {
|
|
@@ -22513,6 +22749,17 @@ var addCommand = new Command("add").description("Scaffold a new resource").argum
|
|
|
22513
22749
|
console.log(source_default.yellow("Eval suite already exists:"), `evals/${slug}.eval.yaml`);
|
|
22514
22750
|
}
|
|
22515
22751
|
break;
|
|
22752
|
+
case "trigger":
|
|
22753
|
+
result = scaffoldTrigger(cwd, displayName, slug);
|
|
22754
|
+
if (result.createdFiles.length > 0) {
|
|
22755
|
+
console.log(source_default.green("\u2713"), `Created trigger "${displayName}"`);
|
|
22756
|
+
for (const file of result.createdFiles) {
|
|
22757
|
+
console.log(source_default.gray(" \u2192"), file);
|
|
22758
|
+
}
|
|
22759
|
+
} else {
|
|
22760
|
+
console.log(source_default.yellow("Trigger already exists:"), `triggers/${slug}.ts`);
|
|
22761
|
+
}
|
|
22762
|
+
break;
|
|
22516
22763
|
default:
|
|
22517
22764
|
console.log(source_default.red("Unknown resource type:"), type);
|
|
22518
22765
|
console.log();
|
|
@@ -22521,6 +22768,7 @@ var addCommand = new Command("add").description("Scaffold a new resource").argum
|
|
|
22521
22768
|
console.log(source_default.gray(" -"), source_default.cyan("entity-type"), "- Create an entity type schema");
|
|
22522
22769
|
console.log(source_default.gray(" -"), source_default.cyan("role"), "- Create a role with permissions");
|
|
22523
22770
|
console.log(source_default.gray(" -"), source_default.cyan("eval"), "- Create an eval suite (YAML)");
|
|
22771
|
+
console.log(source_default.gray(" -"), source_default.cyan("trigger"), "- Create an entity trigger");
|
|
22524
22772
|
console.log();
|
|
22525
22773
|
process.exit(1);
|
|
22526
22774
|
}
|
|
@@ -23076,7 +23324,7 @@ var pullCommand = new Command("pull").description("Pull remote resources to loca
|
|
|
23076
23324
|
// package.json
|
|
23077
23325
|
var package_default = {
|
|
23078
23326
|
name: "struere",
|
|
23079
|
-
version: "0.5.
|
|
23327
|
+
version: "0.5.16",
|
|
23080
23328
|
description: "Build, test, and deploy AI agents",
|
|
23081
23329
|
keywords: [
|
|
23082
23330
|
"ai",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,eAAO,MAAM,UAAU,SAqHnB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAenC,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAenC,eAAO,MAAM,UAAU,SAgSnB,CAAA"}
|
package/dist/cli/index.js
CHANGED
|
@@ -889,6 +889,7 @@ Struere is a framework for building production AI agents with Convex as the real
|
|
|
889
889
|
\u2502 \u251C\u2500\u2500 agents/*.ts \u2192 Agent configs synced to Convex \u2502
|
|
890
890
|
\u2502 \u251C\u2500\u2500 entity-types/*.ts \u2192 Schema definitions synced to Convex \u2502
|
|
891
891
|
\u2502 \u251C\u2500\u2500 roles/*.ts \u2192 RBAC policies synced to Convex \u2502
|
|
892
|
+
\u2502 \u251C\u2500\u2500 triggers/*.ts \u2192 Automation rules synced to Convex \u2502
|
|
892
893
|
\u2502 \u251C\u2500\u2500 tools/index.ts \u2192 Custom tools (run on CF Worker) \u2502
|
|
893
894
|
\u2502 \u2514\u2500\u2500 evals/*.eval.yaml \u2192 Test suites (synced + executed) \u2502
|
|
894
895
|
\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
|
|
@@ -927,6 +928,10 @@ roles/ # RBAC: who can do what
|
|
|
927
928
|
\u251C\u2500\u2500 support.ts # Limited access
|
|
928
929
|
\u2514\u2500\u2500 index.ts
|
|
929
930
|
|
|
931
|
+
triggers/ # Automation rules (react to entity changes)
|
|
932
|
+
\u251C\u2500\u2500 notify-on-create.ts
|
|
933
|
+
\u2514\u2500\u2500 index.ts
|
|
934
|
+
|
|
930
935
|
tools/ # Custom tools shared by all agents
|
|
931
936
|
\u2514\u2500\u2500 index.ts # defineTools([...])
|
|
932
937
|
|
|
@@ -967,6 +972,7 @@ export default defineConfig({
|
|
|
967
972
|
| \`struere add agent <name>\` | Create agents/name.ts with template |
|
|
968
973
|
| \`struere add entity-type <name>\` | Create entity-types/name.ts |
|
|
969
974
|
| \`struere add role <name>\` | Create roles/name.ts |
|
|
975
|
+
| \`struere add trigger <name>\` | Create triggers/name.ts with template |
|
|
970
976
|
| \`struere add eval <name>\` | Create evals/name.eval.yaml with template |
|
|
971
977
|
| \`struere eval\` | Run all eval suites |
|
|
972
978
|
| \`struere eval --suite <name>\` | Run a specific eval suite |
|
|
@@ -1189,6 +1195,103 @@ Custom tool handlers can only fetch from:
|
|
|
1189
1195
|
- api.stripe.com, api.sendgrid.com, api.twilio.com
|
|
1190
1196
|
- hooks.slack.com, discord.com, api.github.com
|
|
1191
1197
|
|
|
1198
|
+
## Defining Triggers
|
|
1199
|
+
|
|
1200
|
+
Triggers are automated actions that fire when entities are created, updated, or deleted. They run asynchronously after the mutation completes.
|
|
1201
|
+
|
|
1202
|
+
Create \\\`triggers/notify-on-session.ts\\\`:
|
|
1203
|
+
\\\`\\\`\\\`typescript
|
|
1204
|
+
import { defineTrigger } from 'struere'
|
|
1205
|
+
|
|
1206
|
+
export default defineTrigger({
|
|
1207
|
+
name: "Notify Teacher on New Session",
|
|
1208
|
+
slug: "notify-teacher-on-session",
|
|
1209
|
+
on: {
|
|
1210
|
+
entityType: "session",
|
|
1211
|
+
action: "created",
|
|
1212
|
+
condition: { "data.status": "scheduled" } // optional
|
|
1213
|
+
},
|
|
1214
|
+
actions: [
|
|
1215
|
+
{
|
|
1216
|
+
tool: "entity.get",
|
|
1217
|
+
args: { id: "{{trigger.data.teacherId}}" },
|
|
1218
|
+
as: "teacher" // store result for later steps
|
|
1219
|
+
},
|
|
1220
|
+
{
|
|
1221
|
+
tool: "event.emit",
|
|
1222
|
+
args: {
|
|
1223
|
+
eventType: "notification.sent",
|
|
1224
|
+
entityId: "{{trigger.entityId}}",
|
|
1225
|
+
payload: {
|
|
1226
|
+
teacherName: "{{steps.teacher.data.name}}",
|
|
1227
|
+
sessionTime: "{{trigger.data.startTime}}"
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
}
|
|
1231
|
+
]
|
|
1232
|
+
})
|
|
1233
|
+
\\\`\\\`\\\`
|
|
1234
|
+
|
|
1235
|
+
### Trigger Config
|
|
1236
|
+
|
|
1237
|
+
| Field | Required | Description |
|
|
1238
|
+
|-------|----------|-------------|
|
|
1239
|
+
| \\\`name\\\` | Yes | Display name |
|
|
1240
|
+
| \\\`slug\\\` | Yes | Unique identifier (used for sync) |
|
|
1241
|
+
| \\\`on.entityType\\\` | Yes | Entity type slug to watch |
|
|
1242
|
+
| \\\`on.action\\\` | Yes | \\\`"created"\\\`, \\\`"updated"\\\`, or \\\`"deleted"\\\` |
|
|
1243
|
+
| \\\`on.condition\\\` | No | Dot-notation equality conditions on entity data |
|
|
1244
|
+
| \\\`actions\\\` | Yes | Ordered list of tool calls to execute |
|
|
1245
|
+
|
|
1246
|
+
### Action Pipeline
|
|
1247
|
+
|
|
1248
|
+
Each action in the \\\`actions\\\` array runs sequentially:
|
|
1249
|
+
|
|
1250
|
+
| Field | Required | Description |
|
|
1251
|
+
|-------|----------|-------------|
|
|
1252
|
+
| \\\`tool\\\` | Yes | Built-in or custom tool name |
|
|
1253
|
+
| \\\`args\\\` | Yes | Arguments (supports \\\`{{template}}\\\` variables) |
|
|
1254
|
+
| \\\`as\\\` | No | Store result under this name for later steps |
|
|
1255
|
+
|
|
1256
|
+
### Template Variables
|
|
1257
|
+
|
|
1258
|
+
Use \\\`{{...}}\\\` in action args to reference trigger context and previous step results:
|
|
1259
|
+
|
|
1260
|
+
| Variable | Description |
|
|
1261
|
+
|----------|-------------|
|
|
1262
|
+
| \\\`{{trigger.entityId}}\\\` | ID of the entity that changed |
|
|
1263
|
+
| \\\`{{trigger.entityType}}\\\` | Entity type slug |
|
|
1264
|
+
| \\\`{{trigger.action}}\\\` | \\\`"created"\\\`, \\\`"updated"\\\`, or \\\`"deleted"\\\` |
|
|
1265
|
+
| \\\`{{trigger.data.X}}\\\` | Entity data field (e.g. \\\`{{trigger.data.email}}\\\`) |
|
|
1266
|
+
| \\\`{{trigger.previousData.X}}\\\` | Previous value (updates/deletes only) |
|
|
1267
|
+
| \\\`{{steps.NAME.X}}\\\` | Result from a prior action with \\\`as: "NAME"\\\` |
|
|
1268
|
+
|
|
1269
|
+
### Conditions
|
|
1270
|
+
|
|
1271
|
+
Conditions use dot-notation path equality matching:
|
|
1272
|
+
\\\`\\\`\\\`typescript
|
|
1273
|
+
condition: {
|
|
1274
|
+
"data.status": "scheduled", // field must equal value
|
|
1275
|
+
"data.priority": "high" // all conditions must match (AND)
|
|
1276
|
+
}
|
|
1277
|
+
\\\`\\\`\\\`
|
|
1278
|
+
|
|
1279
|
+
### Execution Model
|
|
1280
|
+
|
|
1281
|
+
- **Async**: Triggers are scheduled after the mutation, keeping writes fast
|
|
1282
|
+
- **System actor**: Actions execute with full admin access (not the user's role)
|
|
1283
|
+
- **Fail-fast**: If any action fails, remaining actions are skipped
|
|
1284
|
+
- **Events**: Emits \\\`trigger.executed\\\` on success, \\\`trigger.failed\\\` on error
|
|
1285
|
+
- **Both paths**: Triggers fire from dashboard CRUD, agent tool calls, and API mutations
|
|
1286
|
+
|
|
1287
|
+
### Scaffold a new trigger
|
|
1288
|
+
|
|
1289
|
+
\\\`\\\`\\\`bash
|
|
1290
|
+
struere add trigger my-trigger
|
|
1291
|
+
\\\`\\\`\\\`
|
|
1292
|
+
|
|
1293
|
+
Creates \\\`triggers/my-trigger.ts\\\` with a starter template.
|
|
1294
|
+
|
|
1192
1295
|
## Built-in Tools Reference
|
|
1193
1296
|
|
|
1194
1297
|
### Entity Tools
|
|
@@ -1447,6 +1550,29 @@ Always confirm what was created/updated.\\\`,
|
|
|
1447
1550
|
\`\`\`
|
|
1448
1551
|
`;
|
|
1449
1552
|
}
|
|
1553
|
+
function getTriggerTs(name, slug) {
|
|
1554
|
+
return `import { defineTrigger } from 'struere'
|
|
1555
|
+
|
|
1556
|
+
export default defineTrigger({
|
|
1557
|
+
name: "${name}",
|
|
1558
|
+
slug: "${slug}",
|
|
1559
|
+
on: {
|
|
1560
|
+
entityType: "ENTITY_TYPE_HERE",
|
|
1561
|
+
action: "created",
|
|
1562
|
+
},
|
|
1563
|
+
actions: [
|
|
1564
|
+
{
|
|
1565
|
+
tool: "event.emit",
|
|
1566
|
+
args: {
|
|
1567
|
+
eventType: "trigger.${slug}.fired",
|
|
1568
|
+
entityId: "{{trigger.entityId}}",
|
|
1569
|
+
payload: { triggeredBy: "${slug}" },
|
|
1570
|
+
},
|
|
1571
|
+
},
|
|
1572
|
+
],
|
|
1573
|
+
})
|
|
1574
|
+
`;
|
|
1575
|
+
}
|
|
1450
1576
|
|
|
1451
1577
|
// src/cli/utils/scaffold.ts
|
|
1452
1578
|
function ensureDir(filePath) {
|
|
@@ -1470,7 +1596,8 @@ function scaffoldProjectV2(cwd, options) {
|
|
|
1470
1596
|
"entity-types",
|
|
1471
1597
|
"roles",
|
|
1472
1598
|
"tools",
|
|
1473
|
-
"evals"
|
|
1599
|
+
"evals",
|
|
1600
|
+
"triggers"
|
|
1474
1601
|
];
|
|
1475
1602
|
for (const dir of directories) {
|
|
1476
1603
|
const dirPath = join3(cwd, dir);
|
|
@@ -1490,6 +1617,7 @@ function scaffoldProjectV2(cwd, options) {
|
|
|
1490
1617
|
"entity-types/index.ts": getIndexTs("entity-types"),
|
|
1491
1618
|
"roles/index.ts": getIndexTs("roles"),
|
|
1492
1619
|
"tools/index.ts": getToolsIndexTs(),
|
|
1620
|
+
"triggers/index.ts": getIndexTs("triggers"),
|
|
1493
1621
|
"evals/basic-agent-tests.eval.yaml": getExampleEvalYaml("my-agent")
|
|
1494
1622
|
};
|
|
1495
1623
|
for (const [relativePath, content] of Object.entries(files)) {
|
|
@@ -1575,6 +1703,24 @@ function scaffoldEval(cwd, name, slug, agentSlug = "my-agent") {
|
|
|
1575
1703
|
result.createdFiles.push(`evals/${fileName}`);
|
|
1576
1704
|
return result;
|
|
1577
1705
|
}
|
|
1706
|
+
function scaffoldTrigger(cwd, name, slug) {
|
|
1707
|
+
const result = {
|
|
1708
|
+
createdFiles: [],
|
|
1709
|
+
updatedFiles: []
|
|
1710
|
+
};
|
|
1711
|
+
const triggersDir = join3(cwd, "triggers");
|
|
1712
|
+
if (!existsSync3(triggersDir)) {
|
|
1713
|
+
mkdirSync2(triggersDir, { recursive: true });
|
|
1714
|
+
}
|
|
1715
|
+
const fileName = `${slug}.ts`;
|
|
1716
|
+
const filePath = join3(triggersDir, fileName);
|
|
1717
|
+
if (existsSync3(filePath)) {
|
|
1718
|
+
return result;
|
|
1719
|
+
}
|
|
1720
|
+
writeFileSync3(filePath, getTriggerTs(name, slug));
|
|
1721
|
+
result.createdFiles.push(`triggers/${fileName}`);
|
|
1722
|
+
return result;
|
|
1723
|
+
}
|
|
1578
1724
|
|
|
1579
1725
|
// src/cli/commands/init.ts
|
|
1580
1726
|
async function runInit(cwd, selectedOrg) {
|
|
@@ -1781,7 +1927,8 @@ async function loadAllResources(cwd) {
|
|
|
1781
1927
|
}
|
|
1782
1928
|
const { suites: evalSuites, errors: evalErrors } = loadAllEvalSuites(join4(cwd, "evals"));
|
|
1783
1929
|
errors.push(...evalErrors);
|
|
1784
|
-
|
|
1930
|
+
const triggers = await loadAllTriggers(join4(cwd, "triggers"));
|
|
1931
|
+
return { agents, entityTypes, roles, customTools, evalSuites, triggers, errors };
|
|
1785
1932
|
}
|
|
1786
1933
|
async function loadAllAgents(dir) {
|
|
1787
1934
|
if (!existsSync4(dir)) {
|
|
@@ -1889,13 +2036,24 @@ function loadAllEvalSuites(dir) {
|
|
|
1889
2036
|
}
|
|
1890
2037
|
return { suites, errors };
|
|
1891
2038
|
}
|
|
2039
|
+
async function loadAllTriggers(dir) {
|
|
2040
|
+
if (!existsSync4(dir)) {
|
|
2041
|
+
return [];
|
|
2042
|
+
}
|
|
2043
|
+
const indexPath = join4(dir, "index.ts");
|
|
2044
|
+
if (existsSync4(indexPath)) {
|
|
2045
|
+
return loadFromIndex(indexPath);
|
|
2046
|
+
}
|
|
2047
|
+
return loadFromDirectory(dir);
|
|
2048
|
+
}
|
|
1892
2049
|
function getResourceDirectories(cwd) {
|
|
1893
2050
|
return {
|
|
1894
2051
|
agents: join4(cwd, "agents"),
|
|
1895
2052
|
entityTypes: join4(cwd, "entity-types"),
|
|
1896
2053
|
roles: join4(cwd, "roles"),
|
|
1897
2054
|
tools: join4(cwd, "tools"),
|
|
1898
|
-
evals: join4(cwd, "evals")
|
|
2055
|
+
evals: join4(cwd, "evals"),
|
|
2056
|
+
triggers: join4(cwd, "triggers")
|
|
1899
2057
|
};
|
|
1900
2058
|
}
|
|
1901
2059
|
|
|
@@ -1918,7 +2076,12 @@ var BUILTIN_TOOLS = [
|
|
|
1918
2076
|
"event.emit",
|
|
1919
2077
|
"event.query",
|
|
1920
2078
|
"job.enqueue",
|
|
1921
|
-
"job.status"
|
|
2079
|
+
"job.status",
|
|
2080
|
+
"calendar.list",
|
|
2081
|
+
"calendar.create",
|
|
2082
|
+
"calendar.update",
|
|
2083
|
+
"calendar.delete",
|
|
2084
|
+
"calendar.freeBusy"
|
|
1922
2085
|
];
|
|
1923
2086
|
function extractSyncPayload(resources) {
|
|
1924
2087
|
const customToolsMap = new Map;
|
|
@@ -1974,7 +2137,20 @@ function extractSyncPayload(resources) {
|
|
|
1974
2137
|
finalAssertions: c.finalAssertions
|
|
1975
2138
|
}))
|
|
1976
2139
|
})) : undefined;
|
|
1977
|
-
|
|
2140
|
+
const triggers = resources.triggers.length > 0 ? resources.triggers.map((t) => ({
|
|
2141
|
+
name: t.name,
|
|
2142
|
+
slug: t.slug,
|
|
2143
|
+
description: t.description,
|
|
2144
|
+
entityType: t.on.entityType,
|
|
2145
|
+
action: t.on.action,
|
|
2146
|
+
condition: t.on.condition,
|
|
2147
|
+
actions: t.actions.map((a) => ({
|
|
2148
|
+
tool: a.tool,
|
|
2149
|
+
args: a.args,
|
|
2150
|
+
as: a.as
|
|
2151
|
+
}))
|
|
2152
|
+
})) : undefined;
|
|
2153
|
+
return { agents, entityTypes, roles, evalSuites, triggers };
|
|
1978
2154
|
}
|
|
1979
2155
|
function extractAgentPayload(agent, customToolsMap) {
|
|
1980
2156
|
let systemPrompt;
|
|
@@ -2037,7 +2213,12 @@ function getBuiltinToolDescription(name) {
|
|
|
2037
2213
|
"event.emit": "Emit a custom event for audit logging",
|
|
2038
2214
|
"event.query": "Query historical events with optional filters",
|
|
2039
2215
|
"job.enqueue": "Schedule a background job to run later",
|
|
2040
|
-
"job.status": "Get the status of a scheduled job"
|
|
2216
|
+
"job.status": "Get the status of a scheduled job",
|
|
2217
|
+
"calendar.list": "List Google Calendar events for a user within a time range",
|
|
2218
|
+
"calendar.create": "Create a Google Calendar event on a user's calendar",
|
|
2219
|
+
"calendar.update": "Update an existing Google Calendar event",
|
|
2220
|
+
"calendar.delete": "Delete a Google Calendar event",
|
|
2221
|
+
"calendar.freeBusy": "Check free/busy availability on a user's Google Calendar"
|
|
2041
2222
|
};
|
|
2042
2223
|
return descriptions[name] || name;
|
|
2043
2224
|
}
|
|
@@ -2143,6 +2324,60 @@ function getBuiltinToolParameters(name) {
|
|
|
2143
2324
|
id: { type: "string", description: "The job ID to check" }
|
|
2144
2325
|
},
|
|
2145
2326
|
required: ["id"]
|
|
2327
|
+
},
|
|
2328
|
+
"calendar.list": {
|
|
2329
|
+
type: "object",
|
|
2330
|
+
properties: {
|
|
2331
|
+
userId: { type: "string", description: "User ID (Convex or Clerk) whose calendar to query" },
|
|
2332
|
+
timeMin: { type: "string", description: "Start of time range (ISO 8601 datetime)" },
|
|
2333
|
+
timeMax: { type: "string", description: "End of time range (ISO 8601 datetime)" },
|
|
2334
|
+
maxResults: { type: "number", description: "Maximum number of events to return" }
|
|
2335
|
+
},
|
|
2336
|
+
required: ["userId", "timeMin", "timeMax"]
|
|
2337
|
+
},
|
|
2338
|
+
"calendar.create": {
|
|
2339
|
+
type: "object",
|
|
2340
|
+
properties: {
|
|
2341
|
+
userId: { type: "string", description: "User ID (Convex or Clerk) whose calendar to create the event on" },
|
|
2342
|
+
summary: { type: "string", description: "Event title" },
|
|
2343
|
+
startTime: { type: "string", description: "Event start time (ISO 8601 datetime)" },
|
|
2344
|
+
endTime: { type: "string", description: "Event end time (ISO 8601 datetime)" },
|
|
2345
|
+
description: { type: "string", description: "Event description" },
|
|
2346
|
+
attendees: { type: "array", items: { type: "string" }, description: "List of attendee email addresses" },
|
|
2347
|
+
timeZone: { type: "string", description: 'Time zone (e.g., "America/Santiago")' }
|
|
2348
|
+
},
|
|
2349
|
+
required: ["userId", "summary", "startTime", "endTime"]
|
|
2350
|
+
},
|
|
2351
|
+
"calendar.update": {
|
|
2352
|
+
type: "object",
|
|
2353
|
+
properties: {
|
|
2354
|
+
userId: { type: "string", description: "User ID (Convex or Clerk) whose calendar contains the event" },
|
|
2355
|
+
eventId: { type: "string", description: "Google Calendar event ID to update" },
|
|
2356
|
+
summary: { type: "string", description: "New event title" },
|
|
2357
|
+
startTime: { type: "string", description: "New start time (ISO 8601 datetime)" },
|
|
2358
|
+
endTime: { type: "string", description: "New end time (ISO 8601 datetime)" },
|
|
2359
|
+
description: { type: "string", description: "New event description" },
|
|
2360
|
+
attendees: { type: "array", items: { type: "string" }, description: "Updated list of attendee emails" },
|
|
2361
|
+
status: { type: "string", description: "Event status (confirmed, tentative, cancelled)" }
|
|
2362
|
+
},
|
|
2363
|
+
required: ["userId", "eventId"]
|
|
2364
|
+
},
|
|
2365
|
+
"calendar.delete": {
|
|
2366
|
+
type: "object",
|
|
2367
|
+
properties: {
|
|
2368
|
+
userId: { type: "string", description: "User ID (Convex or Clerk) whose calendar contains the event" },
|
|
2369
|
+
eventId: { type: "string", description: "Google Calendar event ID to delete" }
|
|
2370
|
+
},
|
|
2371
|
+
required: ["userId", "eventId"]
|
|
2372
|
+
},
|
|
2373
|
+
"calendar.freeBusy": {
|
|
2374
|
+
type: "object",
|
|
2375
|
+
properties: {
|
|
2376
|
+
userId: { type: "string", description: "User ID (Convex or Clerk) whose availability to check" },
|
|
2377
|
+
timeMin: { type: "string", description: "Start of time range (ISO 8601 datetime)" },
|
|
2378
|
+
timeMax: { type: "string", description: "End of time range (ISO 8601 datetime)" }
|
|
2379
|
+
},
|
|
2380
|
+
required: ["userId", "timeMin", "timeMax"]
|
|
2146
2381
|
}
|
|
2147
2382
|
};
|
|
2148
2383
|
return schemas[name] || { type: "object", properties: {} };
|
|
@@ -2281,7 +2516,7 @@ var devCommand = new Command3("dev").description("Sync all resources to developm
|
|
|
2281
2516
|
spinner.start("Loading resources");
|
|
2282
2517
|
try {
|
|
2283
2518
|
const resources = await loadAllResources(cwd);
|
|
2284
|
-
spinner.succeed(`Loaded ${resources.agents.length} agents, ${resources.entityTypes.length} entity types, ${resources.roles.length} roles, ${resources.customTools.length} custom tools, ${resources.evalSuites.length} eval suites`);
|
|
2519
|
+
spinner.succeed(`Loaded ${resources.agents.length} agents, ${resources.entityTypes.length} entity types, ${resources.roles.length} roles, ${resources.customTools.length} custom tools, ${resources.evalSuites.length} eval suites, ${resources.triggers.length} triggers`);
|
|
2285
2520
|
for (const err of resources.errors) {
|
|
2286
2521
|
console.log(chalk3.red(" \u2716"), err);
|
|
2287
2522
|
}
|
|
@@ -2340,6 +2575,7 @@ var devCommand = new Command3("dev").description("Sync all resources to developm
|
|
|
2340
2575
|
dirs.roles,
|
|
2341
2576
|
dirs.tools,
|
|
2342
2577
|
dirs.evals,
|
|
2578
|
+
dirs.triggers,
|
|
2343
2579
|
join5(cwd, "struere.config.ts")
|
|
2344
2580
|
].filter((p) => existsSync5(p));
|
|
2345
2581
|
const watcher = chokidar.watch(watchPaths, {
|
|
@@ -3334,6 +3570,17 @@ var addCommand = new Command12("add").description("Scaffold a new resource").arg
|
|
|
3334
3570
|
console.log(chalk12.yellow("Eval suite already exists:"), `evals/${slug}.eval.yaml`);
|
|
3335
3571
|
}
|
|
3336
3572
|
break;
|
|
3573
|
+
case "trigger":
|
|
3574
|
+
result = scaffoldTrigger(cwd, displayName, slug);
|
|
3575
|
+
if (result.createdFiles.length > 0) {
|
|
3576
|
+
console.log(chalk12.green("\u2713"), `Created trigger "${displayName}"`);
|
|
3577
|
+
for (const file of result.createdFiles) {
|
|
3578
|
+
console.log(chalk12.gray(" \u2192"), file);
|
|
3579
|
+
}
|
|
3580
|
+
} else {
|
|
3581
|
+
console.log(chalk12.yellow("Trigger already exists:"), `triggers/${slug}.ts`);
|
|
3582
|
+
}
|
|
3583
|
+
break;
|
|
3337
3584
|
default:
|
|
3338
3585
|
console.log(chalk12.red("Unknown resource type:"), type);
|
|
3339
3586
|
console.log();
|
|
@@ -3342,6 +3589,7 @@ var addCommand = new Command12("add").description("Scaffold a new resource").arg
|
|
|
3342
3589
|
console.log(chalk12.gray(" -"), chalk12.cyan("entity-type"), "- Create an entity type schema");
|
|
3343
3590
|
console.log(chalk12.gray(" -"), chalk12.cyan("role"), "- Create a role with permissions");
|
|
3344
3591
|
console.log(chalk12.gray(" -"), chalk12.cyan("eval"), "- Create an eval suite (YAML)");
|
|
3592
|
+
console.log(chalk12.gray(" -"), chalk12.cyan("trigger"), "- Create an entity trigger");
|
|
3345
3593
|
console.log();
|
|
3346
3594
|
process.exit(1);
|
|
3347
3595
|
}
|
|
@@ -3903,7 +4151,7 @@ var pullCommand = new Command14("pull").description("Pull remote resources to lo
|
|
|
3903
4151
|
// package.json
|
|
3904
4152
|
var package_default = {
|
|
3905
4153
|
name: "struere",
|
|
3906
|
-
version: "0.5.
|
|
4154
|
+
version: "0.5.16",
|
|
3907
4155
|
description: "Build, test, and deploy AI agents",
|
|
3908
4156
|
keywords: [
|
|
3909
4157
|
"ai",
|
|
@@ -13,10 +13,11 @@ export declare function getEnvLocal(deploymentUrl: string): string;
|
|
|
13
13
|
export declare function getEntityTypeTs(name: string, slug: string): string;
|
|
14
14
|
export declare function getRoleTs(name: string): string;
|
|
15
15
|
export declare function getAgentTsV2(name: string, slug: string): string;
|
|
16
|
-
export declare function getIndexTs(type: 'agents' | 'entity-types' | 'roles'): string;
|
|
16
|
+
export declare function getIndexTs(type: 'agents' | 'entity-types' | 'roles' | 'triggers'): string;
|
|
17
17
|
export declare function getToolsIndexTs(): string;
|
|
18
18
|
export declare function getStruereJsonV2(orgId: string, orgSlug: string, orgName: string): string;
|
|
19
19
|
export declare function getPackageJsonV2(name: string): string;
|
|
20
20
|
export declare function getClaudeMDV2(orgName: string): string;
|
|
21
|
+
export declare function getTriggerTs(name: string, slug: string): string;
|
|
21
22
|
export declare function getClaudeMD(name: string): string;
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuBnD;AAED,wBAAgB,WAAW,IAAI,MAAM,CAsBpC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAgBzC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgC/C;AAED,wBAAgB,UAAU,IAAI,MAAM,CAoDnC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAmBzC;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAwD5D;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAoB9F;AAED,wBAAgB,aAAa,IAAI,MAAM,CAatC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAgBrC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAahG;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA0BlE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa9C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAgC/D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuBnD;AAED,wBAAgB,WAAW,IAAI,MAAM,CAsBpC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAgBzC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgC/C;AAED,wBAAgB,UAAU,IAAI,MAAM,CAoDnC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAmBzC;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAwD5D;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAoB9F;AAED,wBAAgB,aAAa,IAAI,MAAM,CAatC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAgBrC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAahG;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA0BlE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa9C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAgC/D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAIzF;AAED,wBAAgB,eAAe,IAAI,MAAM,CAsExC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAaxF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuBrD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmqBrD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAsB/D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0UhD"}
|
|
@@ -262,6 +262,12 @@ export interface SyncState {
|
|
|
262
262
|
name: string;
|
|
263
263
|
agentId: string;
|
|
264
264
|
}>;
|
|
265
|
+
triggers?: Array<{
|
|
266
|
+
slug: string;
|
|
267
|
+
name: string;
|
|
268
|
+
entityType: string;
|
|
269
|
+
action: string;
|
|
270
|
+
}>;
|
|
265
271
|
}
|
|
266
272
|
export declare function getSyncState(organizationId?: string, environment?: 'development' | 'production'): Promise<{
|
|
267
273
|
state?: SyncState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convex.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/convex.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"convex.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/convex.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,6 +81,19 @@ export interface SyncPayload {
|
|
|
81
81
|
}>;
|
|
82
82
|
}>;
|
|
83
83
|
}>;
|
|
84
|
+
triggers?: Array<{
|
|
85
|
+
name: string;
|
|
86
|
+
slug: string;
|
|
87
|
+
description?: string;
|
|
88
|
+
entityType: string;
|
|
89
|
+
action: string;
|
|
90
|
+
condition?: Record<string, unknown>;
|
|
91
|
+
actions: Array<{
|
|
92
|
+
tool: string;
|
|
93
|
+
args: Record<string, unknown>;
|
|
94
|
+
as?: string;
|
|
95
|
+
}>;
|
|
96
|
+
}>;
|
|
84
97
|
}
|
|
85
98
|
export declare function extractSyncPayload(resources: LoadedResources): SyncPayload;
|
|
86
99
|
//# sourceMappingURL=extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { AgentConfigV2, EntityTypeConfig, RoleConfig, ToolReference, EvalSuiteDefinition } from '../../types';
|
|
1
|
+
import type { AgentConfigV2, EntityTypeConfig, RoleConfig, ToolReference, EvalSuiteDefinition, TriggerConfig } from '../../types';
|
|
2
2
|
export interface LoadedResources {
|
|
3
3
|
agents: AgentConfigV2[];
|
|
4
4
|
entityTypes: EntityTypeConfig[];
|
|
5
5
|
roles: RoleConfig[];
|
|
6
6
|
customTools: ToolReference[];
|
|
7
7
|
evalSuites: EvalSuiteDefinition[];
|
|
8
|
+
triggers: TriggerConfig[];
|
|
8
9
|
errors: string[];
|
|
9
10
|
}
|
|
10
11
|
export declare function loadAllResources(cwd: string): Promise<LoadedResources>;
|
|
@@ -19,12 +20,14 @@ export declare function loadAllEvalSuites(dir: string): {
|
|
|
19
20
|
suites: EvalSuiteDefinition[];
|
|
20
21
|
errors: string[];
|
|
21
22
|
};
|
|
23
|
+
export declare function loadAllTriggers(dir: string): Promise<TriggerConfig[]>;
|
|
22
24
|
export declare function getResourceDirectories(cwd: string): {
|
|
23
25
|
agents: string;
|
|
24
26
|
entityTypes: string;
|
|
25
27
|
roles: string;
|
|
26
28
|
tools: string;
|
|
27
29
|
evals: string;
|
|
30
|
+
triggers: string;
|
|
28
31
|
};
|
|
29
32
|
export declare function hasResourceDirectories(cwd: string): boolean;
|
|
30
33
|
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEjI,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B,UAAU,EAAE,mBAAmB,EAAE,CAAA;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAc5E;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAWzE;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAWjF;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAWrE;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBtG;AA+CD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAuBlG;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAW3E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG;IACnD,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB,CASA;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAG3D"}
|
|
@@ -25,5 +25,6 @@ export declare function scaffoldAgent(cwd: string, name: string, slug: string):
|
|
|
25
25
|
export declare function scaffoldEntityType(cwd: string, name: string, slug: string): ScaffoldResult;
|
|
26
26
|
export declare function scaffoldRole(cwd: string, name: string): ScaffoldResult;
|
|
27
27
|
export declare function scaffoldEval(cwd: string, name: string, slug: string, agentSlug?: string): ScaffoldResult;
|
|
28
|
+
export declare function scaffoldTrigger(cwd: string, name: string, slug: string): ScaffoldResult;
|
|
28
29
|
export declare function hasV2Structure(cwd: string): boolean;
|
|
29
30
|
//# sourceMappingURL=scaffold.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/scaffold.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/scaffold.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAeD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CAexF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,CA+BrF;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CA8BnF;AAsBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAgDzF;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAsBrF;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAsB1F;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAsBtE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAmB,GAAG,cAAc,CA2BpH;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAsBvF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAInD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../src/define/trigger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAI7C,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CA8BlE"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ export { defineTools } from './define/tools';
|
|
|
3
3
|
export { defineConfig } from './define/config';
|
|
4
4
|
export { defineEntityType } from './define/entityType';
|
|
5
5
|
export { defineRole } from './define/role';
|
|
6
|
-
export
|
|
6
|
+
export { defineTrigger } from './define/trigger';
|
|
7
|
+
export type { AgentConfig, ModelConfig, ToolReference, ToolParameters, ParameterDefinition, ToolHandler, ToolContext, StateAccessor, WorkflowReference, StateConfig, FrameworkConfig, CorsConfig, LoggingConfig, AuthConfig, Message, Conversation, TestCase, TestMessage, TestToolCall, TestAssertion, DeployConfig, ScalingConfig, EntityTypeConfig, JSONSchema, JSONSchemaProperty, RoleConfig, PolicyConfig, ScopeRuleConfig, FieldMaskConfig, StruereProjectV2, AgentConfigV2, SyncPayload, SyncState, TriggerConfig, TriggerAction, } from './types';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,YAAY,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,UAAU,EACV,aAAa,EACb,UAAU,EACV,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,GACd,MAAM,SAAS,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -142,7 +142,39 @@ function defineRole(config) {
|
|
|
142
142
|
fieldMasks: config.fieldMasks || []
|
|
143
143
|
};
|
|
144
144
|
}
|
|
145
|
+
// src/define/trigger.ts
|
|
146
|
+
var VALID_ACTIONS = ["created", "updated", "deleted"];
|
|
147
|
+
function defineTrigger(config) {
|
|
148
|
+
if (!config.name) {
|
|
149
|
+
throw new Error("Trigger name is required");
|
|
150
|
+
}
|
|
151
|
+
if (!config.slug) {
|
|
152
|
+
throw new Error("Trigger slug is required");
|
|
153
|
+
}
|
|
154
|
+
if (!config.on) {
|
|
155
|
+
throw new Error('Trigger "on" configuration is required');
|
|
156
|
+
}
|
|
157
|
+
if (!config.on.entityType) {
|
|
158
|
+
throw new Error("Trigger entityType is required");
|
|
159
|
+
}
|
|
160
|
+
if (!config.on.action || !VALID_ACTIONS.includes(config.on.action)) {
|
|
161
|
+
throw new Error(`Trigger action must be one of: ${VALID_ACTIONS.join(", ")}`);
|
|
162
|
+
}
|
|
163
|
+
if (!config.actions || config.actions.length === 0) {
|
|
164
|
+
throw new Error("Trigger must have at least one action");
|
|
165
|
+
}
|
|
166
|
+
for (const action of config.actions) {
|
|
167
|
+
if (!action.tool) {
|
|
168
|
+
throw new Error("Trigger action tool is required");
|
|
169
|
+
}
|
|
170
|
+
if (!action.args || typeof action.args !== "object") {
|
|
171
|
+
throw new Error("Trigger action args must be an object");
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return config;
|
|
175
|
+
}
|
|
145
176
|
export {
|
|
177
|
+
defineTrigger,
|
|
146
178
|
defineTools,
|
|
147
179
|
defineRole,
|
|
148
180
|
defineEntityType,
|
package/dist/types.d.ts
CHANGED
|
@@ -245,11 +245,28 @@ export interface AgentConfigV2 {
|
|
|
245
245
|
model?: ModelConfig;
|
|
246
246
|
tools?: string[];
|
|
247
247
|
}
|
|
248
|
+
export interface TriggerAction {
|
|
249
|
+
tool: string;
|
|
250
|
+
args: Record<string, unknown>;
|
|
251
|
+
as?: string;
|
|
252
|
+
}
|
|
253
|
+
export interface TriggerConfig {
|
|
254
|
+
name: string;
|
|
255
|
+
slug: string;
|
|
256
|
+
description?: string;
|
|
257
|
+
on: {
|
|
258
|
+
entityType: string;
|
|
259
|
+
action: 'created' | 'updated' | 'deleted';
|
|
260
|
+
condition?: Record<string, unknown>;
|
|
261
|
+
};
|
|
262
|
+
actions: TriggerAction[];
|
|
263
|
+
}
|
|
248
264
|
export interface SyncPayload {
|
|
249
265
|
agents: AgentConfigV2[];
|
|
250
266
|
entityTypes: EntityTypeConfig[];
|
|
251
267
|
roles: RoleConfig[];
|
|
252
268
|
customTools?: ToolReference[];
|
|
269
|
+
triggers?: TriggerConfig[];
|
|
253
270
|
}
|
|
254
271
|
export interface SyncState {
|
|
255
272
|
agents: Array<{
|
|
@@ -267,5 +284,11 @@ export interface SyncState {
|
|
|
267
284
|
name: string;
|
|
268
285
|
policyCount: number;
|
|
269
286
|
}>;
|
|
287
|
+
triggers?: Array<{
|
|
288
|
+
slug: string;
|
|
289
|
+
name: string;
|
|
290
|
+
entityType: string;
|
|
291
|
+
action: string;
|
|
292
|
+
}>;
|
|
270
293
|
}
|
|
271
294
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|