@automagik/omni 2.260908.7 → 2.260908.9
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/db/drizzle/0063_automation_manifest_provenance.sql +32 -0
- package/db/drizzle/meta/_journal.json +7 -0
- package/dist/commands/agents.d.ts +25 -1
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/automations.d.ts.map +1 -1
- package/dist/index.js +51 -15
- package/dist/sdk/types.generated.d.ts +35 -0
- package/dist/sdk/types.generated.d.ts.map +1 -1
- package/dist/server/index.js +262 -58
- package/package.json +1 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
-- Manifest-compilation provenance on automations (#986, RFC #925 G4b).
|
|
2
|
+
--
|
|
3
|
+
-- Adds `automations.managed_by_agent_id`: set when the row was COMPILED from
|
|
4
|
+
-- `agents.event_manifest` by the manifest compiler
|
|
5
|
+
-- (packages/api/src/services/manifest-compiler.ts); NULL = hand-made. The
|
|
6
|
+
-- agent's manifest is the source of truth and `automations` becomes the
|
|
7
|
+
-- compiled plan for these rows — the API rejects manual create/update/delete
|
|
8
|
+
-- of a managed automation so the plan cannot drift silently.
|
|
9
|
+
--
|
|
10
|
+
-- The FK is ON DELETE CASCADE so a hard agent delete removes its compiled
|
|
11
|
+
-- plan at the DB level (the service-level soft delete reconciles compiled
|
|
12
|
+
-- rows away explicitly before that ever matters). NOT VALID mirrors the 0041
|
|
13
|
+
-- precedent: no scan on deploy; every new write is checked.
|
|
14
|
+
--
|
|
15
|
+
-- Hand-written following the 0043/0044/0052 precedent (additive, idempotent).
|
|
16
|
+
--
|
|
17
|
+
-- NOTE: no explicit BEGIN/COMMIT — the boot migrator executes this file on a
|
|
18
|
+
-- pooled postgres-js connection, which rejects raw transaction control.
|
|
19
|
+
|
|
20
|
+
ALTER TABLE "automations" ADD COLUMN IF NOT EXISTS "managed_by_agent_id" uuid;
|
|
21
|
+
--> statement-breakpoint
|
|
22
|
+
DO $$
|
|
23
|
+
BEGIN
|
|
24
|
+
IF NOT EXISTS (
|
|
25
|
+
SELECT 1 FROM pg_constraint
|
|
26
|
+
WHERE conname = 'automations_managed_by_agent_fk' AND conrelid = '"automations"'::regclass
|
|
27
|
+
) THEN
|
|
28
|
+
ALTER TABLE "automations" ADD CONSTRAINT "automations_managed_by_agent_fk" FOREIGN KEY ("managed_by_agent_id") REFERENCES "agents" ("id") ON DELETE CASCADE NOT VALID;
|
|
29
|
+
END IF;
|
|
30
|
+
END $$;
|
|
31
|
+
--> statement-breakpoint
|
|
32
|
+
CREATE INDEX IF NOT EXISTS "automations_managed_by_agent_idx" ON "automations" ("managed_by_agent_id");
|
|
@@ -442,6 +442,13 @@
|
|
|
442
442
|
"when": 1786200000000,
|
|
443
443
|
"tag": "0062_agent_event_manifest",
|
|
444
444
|
"breakpoints": true
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"idx": 63,
|
|
448
|
+
"version": "7",
|
|
449
|
+
"when": 1786300000000,
|
|
450
|
+
"tag": "0063_automation_manifest_provenance",
|
|
451
|
+
"breakpoints": true
|
|
445
452
|
}
|
|
446
453
|
]
|
|
447
454
|
}
|
|
@@ -29,6 +29,7 @@ declare function parseManifestSource(source: string, format: 'json' | 'yaml'): u
|
|
|
29
29
|
declare function validateManifestDocument(raw: unknown): AgentEventManifest;
|
|
30
30
|
/** Minimal agent shape the graph helpers need (matches SDK list output). */
|
|
31
31
|
interface GraphAgentInput {
|
|
32
|
+
id: string;
|
|
32
33
|
name: string;
|
|
33
34
|
eventManifest?: {
|
|
34
35
|
accepts?: {
|
|
@@ -44,12 +45,33 @@ interface GraphRow {
|
|
|
44
45
|
agent: string;
|
|
45
46
|
consumes: string;
|
|
46
47
|
produces: string;
|
|
48
|
+
compiled: string;
|
|
47
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Count compiled (manifest-managed) automations per owning agent (#986).
|
|
52
|
+
* Input is the SDK automations list; rows without `managedByAgentId` are
|
|
53
|
+
* hand-made and ignored.
|
|
54
|
+
*/
|
|
55
|
+
declare function countManagedAutomations(automations: Array<{
|
|
56
|
+
managedByAgentId?: string | null;
|
|
57
|
+
}>): Map<string, number>;
|
|
58
|
+
/**
|
|
59
|
+
* Render the declared-vs-materialized indicator for one agent:
|
|
60
|
+
* - `-` when nothing is declared (nothing to compile),
|
|
61
|
+
* - `unknown` when the automations list was unavailable,
|
|
62
|
+
* - `materialized/declared` otherwise (e.g. `2/2`; `0/2` = declared but
|
|
63
|
+
* not yet compiled — the manifest predates the G4b compiler).
|
|
64
|
+
*/
|
|
65
|
+
declare function formatCompiledIndicator(declared: number, materialized: number | undefined): string;
|
|
48
66
|
/**
|
|
49
67
|
* Build the producer/consumer table: one row per agent that declares at least
|
|
50
68
|
* one accepts/publishes entry. Agents without a manifest are omitted.
|
|
69
|
+
*
|
|
70
|
+
* `managedCounts` (from `countManagedAutomations`, #986) drives the
|
|
71
|
+
* `compiled` column — declared vs materialized state; pass undefined when the
|
|
72
|
+
* automations list could not be fetched.
|
|
51
73
|
*/
|
|
52
|
-
declare function buildGraphRows(agents: GraphAgentInput[]): GraphRow[];
|
|
74
|
+
declare function buildGraphRows(agents: GraphAgentInput[], managedCounts?: Map<string, number>): GraphRow[];
|
|
53
75
|
interface TypeGraphRow {
|
|
54
76
|
agent: string;
|
|
55
77
|
role: 'consumes' | 'produces';
|
|
@@ -67,6 +89,8 @@ export declare const __testables: {
|
|
|
67
89
|
validateManifestDocument: typeof validateManifestDocument;
|
|
68
90
|
buildGraphRows: typeof buildGraphRows;
|
|
69
91
|
buildTypeRows: typeof buildTypeRows;
|
|
92
|
+
countManagedAutomations: typeof countManagedAutomations;
|
|
93
|
+
formatCompiledIndicator: typeof formatCompiledIndicator;
|
|
70
94
|
};
|
|
71
95
|
export declare function createAgentsCommand(): Command;
|
|
72
96
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsJpC,8EAA8E;AAC9E,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE/D;AAED;;;;GAIG;AACH,iBAAS,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAS7E;AAED;;;GAGG;AACH,iBAAS,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CASlE;AAED,4EAA4E;AAC5E,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,EAAE,CAAC;QAChE,SAAS,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KACjC,GAAG,IAAI,CAAC;CACV;AAED,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAQD
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsJpC,8EAA8E;AAC9E,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE/D;AAED;;;;GAIG;AACH,iBAAS,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAS7E;AAED;;;GAGG;AACH,iBAAS,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CASlE;AAED,4EAA4E;AAC5E,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,EAAE,CAAC;QAChE,SAAS,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KACjC,GAAG,IAAI,CAAC;CACV;AAED,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,iBAAS,uBAAuB,CAAC,WAAW,EAAE,KAAK,CAAC;IAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ9G;AAED;;;;;;GAMG;AACH,iBAAS,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAI3F;AAQD;;;;;;;GAOG;AACH,iBAAS,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,QAAQ,EAAE,CAelG;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,iBAAS,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAcnF;AAED,oCAAoC;AACpC,eAAO,MAAM,WAAW;;;;;;;;CAQvB,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,OAAO,CAoR7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automations.d.ts","sourceRoot":"","sources":["../../src/commands/automations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0FpC,wBAAgB,wBAAwB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"automations.d.ts","sourceRoot":"","sources":["../../src/commands/automations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0FpC,wBAAgB,wBAAwB,IAAI,OAAO,CA2UlD"}
|
package/dist/index.js
CHANGED
|
@@ -34426,7 +34426,14 @@ var init_events = __esm(() => {
|
|
|
34426
34426
|
});
|
|
34427
34427
|
|
|
34428
34428
|
// ../core/src/schemas/agent-manifest.ts
|
|
34429
|
-
|
|
34429
|
+
function checkPublishAllowed(manifest, eventType) {
|
|
34430
|
+
const publishes = manifest?.publishes;
|
|
34431
|
+
if (!Array.isArray(publishes)) {
|
|
34432
|
+
return true;
|
|
34433
|
+
}
|
|
34434
|
+
return publishes.some((entry) => entry?.event === eventType);
|
|
34435
|
+
}
|
|
34436
|
+
var EVENT_TYPE_TOKEN_PATTERN, ManifestEventTypeSchema, ManifestAcceptsEntrySchema, ManifestPublishesEntrySchema, AgentEventManifestSchema, PUBLISH_NOT_DECLARED = "publish_not_declared";
|
|
34430
34437
|
var init_agent_manifest = __esm(() => {
|
|
34431
34438
|
init_zod();
|
|
34432
34439
|
init_types2();
|
|
@@ -40928,14 +40935,14 @@ async function releaseEmissionClaim(deps, claimedEventId, eventType) {
|
|
|
40928
40935
|
});
|
|
40929
40936
|
});
|
|
40930
40937
|
}
|
|
40931
|
-
async function
|
|
40938
|
+
async function enforceEmitEventGates(deps, eventType, payload, trustedTenantId, emitterAgentId) {
|
|
40932
40939
|
if (!deps.validateEmitEvent)
|
|
40933
40940
|
return null;
|
|
40934
|
-
const verdict = await deps.validateEmitEvent(eventType, payload, trustedTenantId);
|
|
40941
|
+
const verdict = await deps.validateEmitEvent(eventType, payload, trustedTenantId, emitterAgentId);
|
|
40935
40942
|
if (verdict.valid)
|
|
40936
40943
|
return null;
|
|
40937
40944
|
const detail = verdict.errors?.length ? `: ${verdict.errors.join("; ")}` : "";
|
|
40938
|
-
logger2.warn("Emit event refused by
|
|
40945
|
+
logger2.warn("Emit event refused by emission gate", { eventType, emitterAgentId, errors: verdict.errors });
|
|
40939
40946
|
return `${verdict.reason ?? SCHEMA_VALIDATION_FAILED}${detail}`;
|
|
40940
40947
|
}
|
|
40941
40948
|
async function prepareEmitEvent(config2, context, deps, trustedTenantId, actionIndex, provenance) {
|
|
@@ -40949,9 +40956,9 @@ async function prepareEmitEvent(config2, context, deps, trustedTenantId, actionI
|
|
|
40949
40956
|
payload = context.payload;
|
|
40950
40957
|
}
|
|
40951
40958
|
const eventType = substituteTemplate(config2.eventType, context);
|
|
40952
|
-
const
|
|
40953
|
-
if (
|
|
40954
|
-
return { error:
|
|
40959
|
+
const gateError = await enforceEmitEventGates(deps, eventType, payload, trustedTenantId, context.automation?.managedByAgentId ?? null);
|
|
40960
|
+
if (gateError !== null) {
|
|
40961
|
+
return { error: gateError };
|
|
40955
40962
|
}
|
|
40956
40963
|
const correlationId = context.event?.metadata.correlationId ?? context.payload.correlationId ?? undefined;
|
|
40957
40964
|
const causationId = context.event?.id ?? provenance?.parentEventId;
|
|
@@ -41695,7 +41702,7 @@ class AutomationEngine {
|
|
|
41695
41702
|
const instanceId = event.metadata.instanceId ?? "global";
|
|
41696
41703
|
const context = createTemplateContext(event.payload, {
|
|
41697
41704
|
event: { id: event.id, type: event.type, timestamp: event.timestamp, metadata: event.metadata },
|
|
41698
|
-
automation: { id: automation.id }
|
|
41705
|
+
automation: { id: automation.id, managedByAgentId: automation.managedByAgentId ?? null }
|
|
41699
41706
|
});
|
|
41700
41707
|
await this.queueExecution(automation, event, context, instanceId);
|
|
41701
41708
|
}
|
|
@@ -41733,7 +41740,7 @@ class AutomationEngine {
|
|
|
41733
41740
|
timestamp: syntheticEvent.timestamp,
|
|
41734
41741
|
metadata: syntheticEvent.metadata
|
|
41735
41742
|
},
|
|
41736
|
-
automation: { id: automation.id }
|
|
41743
|
+
automation: { id: automation.id, managedByAgentId: automation.managedByAgentId ?? null }
|
|
41737
41744
|
});
|
|
41738
41745
|
await this.queueExecution(automation, syntheticEvent, context, instanceId);
|
|
41739
41746
|
};
|
|
@@ -70677,6 +70684,7 @@ __export(exports_src, {
|
|
|
70677
70684
|
classifyEnvelope: () => classifyEnvelope,
|
|
70678
70685
|
checkSessionReset: () => checkSessionReset,
|
|
70679
70686
|
checkSchemaCompatibility: () => checkSchemaCompatibility,
|
|
70687
|
+
checkPublishAllowed: () => checkPublishAllowed,
|
|
70680
70688
|
channelSupportsTypingIndicator: () => channelSupportsTypingIndicator,
|
|
70681
70689
|
channelHasMessagingWindow: () => channelHasMessagingWindow,
|
|
70682
70690
|
canonicalizeIpv4: () => canonicalizeIpv4,
|
|
@@ -70741,6 +70749,7 @@ __export(exports_src, {
|
|
|
70741
70749
|
PersonWithIdentitiesSchema: () => PersonWithIdentitiesSchema,
|
|
70742
70750
|
PersonSchema: () => PersonSchema,
|
|
70743
70751
|
PaginationSchema: () => PaginationSchema,
|
|
70752
|
+
PUBLISH_NOT_DECLARED: () => PUBLISH_NOT_DECLARED,
|
|
70744
70753
|
PROVIDER_SCHEMAS: () => PROVIDER_SCHEMAS,
|
|
70745
70754
|
PAYLOAD_STAGES: () => PAYLOAD_STAGES,
|
|
70746
70755
|
OutgoingMessageSchema: () => OutgoingMessageSchema,
|
|
@@ -82700,6 +82709,7 @@ var init_schema2 = __esm(() => {
|
|
|
82700
82709
|
enabled: boolean2("enabled").notNull().default(true),
|
|
82701
82710
|
priority: integer("priority").notNull().default(0),
|
|
82702
82711
|
transactionalEmissions: boolean2("transactional_emissions").notNull().default(false),
|
|
82712
|
+
managedByAgentId: uuid("managed_by_agent_id").references(() => agents.id, { onDelete: "cascade" }),
|
|
82703
82713
|
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
82704
82714
|
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
|
|
82705
82715
|
tenantId: uuid("tenant_id").references(() => tenants.id, { onDelete: "restrict" })
|
|
@@ -82709,7 +82719,8 @@ var init_schema2 = __esm(() => {
|
|
|
82709
82719
|
nameIdx: index("automations_name_idx").on(table3.name),
|
|
82710
82720
|
triggerIdx: index("automations_trigger_idx").on(table3.triggerEventType),
|
|
82711
82721
|
enabledIdx: index("automations_enabled_idx").on(table3.enabled),
|
|
82712
|
-
priorityIdx: index("automations_priority_idx").on(table3.priority)
|
|
82722
|
+
priorityIdx: index("automations_priority_idx").on(table3.priority),
|
|
82723
|
+
managedByAgentIdx: index("automations_managed_by_agent_idx").on(table3.managedByAgentId)
|
|
82713
82724
|
}));
|
|
82714
82725
|
automationLogStatuses = ["success", "failed", "skipped"];
|
|
82715
82726
|
automationLogs = pgTable("automation_logs", {
|
|
@@ -136684,7 +136695,7 @@ import { fileURLToPath } from "url";
|
|
|
136684
136695
|
// package.json
|
|
136685
136696
|
var package_default = {
|
|
136686
136697
|
name: "@automagik/omni",
|
|
136687
|
-
version: "2.260908.
|
|
136698
|
+
version: "2.260908.9",
|
|
136688
136699
|
repository: {
|
|
136689
136700
|
type: "git",
|
|
136690
136701
|
url: "git+https://github.com/automagik-dev/omni.git",
|
|
@@ -137799,11 +137810,28 @@ ${issues}`);
|
|
|
137799
137810
|
}
|
|
137800
137811
|
return result.data;
|
|
137801
137812
|
}
|
|
137813
|
+
function countManagedAutomations(automations2) {
|
|
137814
|
+
const counts = new Map;
|
|
137815
|
+
for (const automation of automations2) {
|
|
137816
|
+
const agentId = automation.managedByAgentId;
|
|
137817
|
+
if (!agentId)
|
|
137818
|
+
continue;
|
|
137819
|
+
counts.set(agentId, (counts.get(agentId) ?? 0) + 1);
|
|
137820
|
+
}
|
|
137821
|
+
return counts;
|
|
137822
|
+
}
|
|
137823
|
+
function formatCompiledIndicator(declared, materialized) {
|
|
137824
|
+
if (declared === 0)
|
|
137825
|
+
return "-";
|
|
137826
|
+
if (materialized === undefined)
|
|
137827
|
+
return "unknown";
|
|
137828
|
+
return `${materialized}/${declared}`;
|
|
137829
|
+
}
|
|
137802
137830
|
function formatAcceptsEntry(entry) {
|
|
137803
137831
|
const filtered = entry.filter !== undefined && Object.keys(entry.filter).length > 0;
|
|
137804
137832
|
return filtered ? `${entry.event} (filtered)` : entry.event;
|
|
137805
137833
|
}
|
|
137806
|
-
function buildGraphRows(agents) {
|
|
137834
|
+
function buildGraphRows(agents, managedCounts) {
|
|
137807
137835
|
const rows = [];
|
|
137808
137836
|
for (const agent3 of agents) {
|
|
137809
137837
|
const manifest = agent3.eventManifest;
|
|
@@ -137814,7 +137842,8 @@ function buildGraphRows(agents) {
|
|
|
137814
137842
|
rows.push({
|
|
137815
137843
|
agent: agent3.name,
|
|
137816
137844
|
consumes: accepts.length > 0 ? accepts.map(formatAcceptsEntry).join(", ") : "-",
|
|
137817
|
-
produces: publishes.length > 0 ? publishes.map((entry) => entry.event).join(", ") : "-"
|
|
137845
|
+
produces: publishes.length > 0 ? publishes.map((entry) => entry.event).join(", ") : "-",
|
|
137846
|
+
compiled: formatCompiledIndicator(accepts.length, managedCounts ? managedCounts.get(agent3.id) ?? 0 : undefined)
|
|
137818
137847
|
});
|
|
137819
137848
|
}
|
|
137820
137849
|
return rows;
|
|
@@ -137982,7 +138011,13 @@ function createAgentsCommand() {
|
|
|
137982
138011
|
list(rows2, { emptyMessage: `No agent declares ${options.type}.` });
|
|
137983
138012
|
return;
|
|
137984
138013
|
}
|
|
137985
|
-
|
|
138014
|
+
let managedCounts;
|
|
138015
|
+
try {
|
|
138016
|
+
managedCounts = countManagedAutomations(await client.automations.list({}));
|
|
138017
|
+
} catch {
|
|
138018
|
+
managedCounts = undefined;
|
|
138019
|
+
}
|
|
138020
|
+
const rows = buildGraphRows(items, managedCounts);
|
|
137986
138021
|
list(rows, { emptyMessage: "No agent declares an event manifest." });
|
|
137987
138022
|
} catch (err2) {
|
|
137988
138023
|
const message2 = err2 instanceof Error ? err2.message : "Unknown error";
|
|
@@ -138820,7 +138855,8 @@ function createAutomationsCommand() {
|
|
|
138820
138855
|
name: a2.name,
|
|
138821
138856
|
trigger: a2.triggerEventType,
|
|
138822
138857
|
enabled: a2.enabled ? "yes" : "no",
|
|
138823
|
-
priority: a2.priority
|
|
138858
|
+
priority: a2.priority,
|
|
138859
|
+
managed: a2.managedByAgentId ? "manifest" : "-"
|
|
138824
138860
|
}));
|
|
138825
138861
|
list(items, { emptyMessage: "No automations found." });
|
|
138826
138862
|
} catch (err2) {
|
|
@@ -5596,6 +5596,11 @@ export interface components {
|
|
|
5596
5596
|
priority: number;
|
|
5597
5597
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
5598
5598
|
transactionalEmissions: boolean;
|
|
5599
|
+
/**
|
|
5600
|
+
* Format: uuid
|
|
5601
|
+
* @description Set when this automation was compiled from an agent event manifest (RFC #925 G4b, #986); null = hand-made. Managed automations reject manual mutation — edit the owning agent’s manifest instead
|
|
5602
|
+
*/
|
|
5603
|
+
managedByAgentId: string | null;
|
|
5599
5604
|
/**
|
|
5600
5605
|
* Format: date-time
|
|
5601
5606
|
* @description Creation timestamp
|
|
@@ -17032,6 +17037,11 @@ export interface operations {
|
|
|
17032
17037
|
priority: number;
|
|
17033
17038
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
17034
17039
|
transactionalEmissions: boolean;
|
|
17040
|
+
/**
|
|
17041
|
+
* Format: uuid
|
|
17042
|
+
* @description Set when this automation was compiled from an agent event manifest (RFC #925 G4b, #986); null = hand-made. Managed automations reject manual mutation — edit the owning agent’s manifest instead
|
|
17043
|
+
*/
|
|
17044
|
+
managedByAgentId: string | null;
|
|
17035
17045
|
/**
|
|
17036
17046
|
* Format: date-time
|
|
17037
17047
|
* @description Creation timestamp
|
|
@@ -17315,6 +17325,11 @@ export interface operations {
|
|
|
17315
17325
|
priority: number;
|
|
17316
17326
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
17317
17327
|
transactionalEmissions: boolean;
|
|
17328
|
+
/**
|
|
17329
|
+
* Format: uuid
|
|
17330
|
+
* @description Set when this automation was compiled from an agent event manifest (RFC #925 G4b, #986); null = hand-made. Managed automations reject manual mutation — edit the owning agent’s manifest instead
|
|
17331
|
+
*/
|
|
17332
|
+
managedByAgentId: string | null;
|
|
17318
17333
|
/**
|
|
17319
17334
|
* Format: date-time
|
|
17320
17335
|
* @description Creation timestamp
|
|
@@ -17491,6 +17506,11 @@ export interface operations {
|
|
|
17491
17506
|
priority: number;
|
|
17492
17507
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
17493
17508
|
transactionalEmissions: boolean;
|
|
17509
|
+
/**
|
|
17510
|
+
* Format: uuid
|
|
17511
|
+
* @description Set when this automation was compiled from an agent event manifest (RFC #925 G4b, #986); null = hand-made. Managed automations reject manual mutation — edit the owning agent’s manifest instead
|
|
17512
|
+
*/
|
|
17513
|
+
managedByAgentId: string | null;
|
|
17494
17514
|
/**
|
|
17495
17515
|
* Format: date-time
|
|
17496
17516
|
* @description Creation timestamp
|
|
@@ -17845,6 +17865,11 @@ export interface operations {
|
|
|
17845
17865
|
priority: number;
|
|
17846
17866
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
17847
17867
|
transactionalEmissions: boolean;
|
|
17868
|
+
/**
|
|
17869
|
+
* Format: uuid
|
|
17870
|
+
* @description Set when this automation was compiled from an agent event manifest (RFC #925 G4b, #986); null = hand-made. Managed automations reject manual mutation — edit the owning agent’s manifest instead
|
|
17871
|
+
*/
|
|
17872
|
+
managedByAgentId: string | null;
|
|
17848
17873
|
/**
|
|
17849
17874
|
* Format: date-time
|
|
17850
17875
|
* @description Creation timestamp
|
|
@@ -18021,6 +18046,11 @@ export interface operations {
|
|
|
18021
18046
|
priority: number;
|
|
18022
18047
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
18023
18048
|
transactionalEmissions: boolean;
|
|
18049
|
+
/**
|
|
18050
|
+
* Format: uuid
|
|
18051
|
+
* @description Set when this automation was compiled from an agent event manifest (RFC #925 G4b, #986); null = hand-made. Managed automations reject manual mutation — edit the owning agent’s manifest instead
|
|
18052
|
+
*/
|
|
18053
|
+
managedByAgentId: string | null;
|
|
18024
18054
|
/**
|
|
18025
18055
|
* Format: date-time
|
|
18026
18056
|
* @description Creation timestamp
|
|
@@ -18197,6 +18227,11 @@ export interface operations {
|
|
|
18197
18227
|
priority: number;
|
|
18198
18228
|
/** @description Transactional publication (G5, #988): buffer the run's emit_event publishes and flush them in order only when every action succeeded; a failed run publishes zero */
|
|
18199
18229
|
transactionalEmissions: boolean;
|
|
18230
|
+
/**
|
|
18231
|
+
* Format: uuid
|
|
18232
|
+
* @description Set when this automation was compiled from an agent event manifest (RFC #925 G4b, #986); null = hand-made. Managed automations reject manual mutation — edit the owning agent’s manifest instead
|
|
18233
|
+
*/
|
|
18234
|
+
managedByAgentId: string | null;
|
|
18200
18235
|
/**
|
|
18201
18236
|
* Format: date-time
|
|
18202
18237
|
* @description Creation timestamp
|