@stigmer/sdk 3.5.2 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/manifest.test.js +65 -1
- package/__tests__/manifest.test.js.map +1 -1
- package/gen/agentchannel.d.ts +2 -1
- package/gen/agentchannel.d.ts.map +1 -1
- package/gen/agentchannel.js +8 -0
- package/gen/agentchannel.js.map +1 -1
- package/gen/authorization-config.d.ts.map +1 -1
- package/gen/authorization-config.js +1 -0
- package/gen/authorization-config.js.map +1 -1
- package/gen/client.d.ts +4 -0
- package/gen/client.d.ts.map +1 -1
- package/gen/client.js +4 -0
- package/gen/client.js.map +1 -1
- package/gen/schedule.d.ts +40 -0
- package/gen/schedule.d.ts.map +1 -0
- package/gen/schedule.js +133 -0
- package/gen/schedule.js.map +1 -0
- package/index.d.ts +2 -1
- package/index.d.ts.map +1 -1
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/manifest/document.d.ts +31 -0
- package/manifest/document.d.ts.map +1 -0
- package/manifest/document.js +62 -0
- package/manifest/document.js.map +1 -0
- package/manifest/index.d.ts +1 -0
- package/manifest/index.d.ts.map +1 -1
- package/manifest/index.js +1 -0
- package/manifest/index.js.map +1 -1
- package/manifest/registry.d.ts.map +1 -1
- package/manifest/registry.js +16 -1
- package/manifest/registry.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/manifest.test.ts +78 -1
- package/src/gen/agentchannel.ts +7 -1
- package/src/gen/authorization-config.ts +1 -0
- package/src/gen/client.ts +5 -0
- package/src/gen/schedule.ts +136 -0
- package/src/index.ts +7 -0
- package/src/manifest/document.ts +70 -0
- package/src/manifest/index.ts +2 -0
- package/src/manifest/registry.ts +16 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Message } from "@bufbuild/protobuf";
|
|
2
|
+
import { type ManifestDocument } from "./parse.js";
|
|
3
|
+
/**
|
|
4
|
+
* Wrap a resource proto as a {@link ManifestDocument} ready for
|
|
5
|
+
* `stigmer.manifest.apply()`.
|
|
6
|
+
*
|
|
7
|
+
* The resource kind is derived from the message's proto type, so any
|
|
8
|
+
* registry-supported resource works with the same call. The message is
|
|
9
|
+
* passed through untouched — full fidelity, no serialization round-trip.
|
|
10
|
+
* The server ignores client-provided `status` on apply, so a fetched
|
|
11
|
+
* proto (status included) is safe to send as-is.
|
|
12
|
+
*
|
|
13
|
+
* @param message - A resource proto of a registry-supported kind, with
|
|
14
|
+
* `metadata.name` set (always true for server-returned resources).
|
|
15
|
+
* @returns A document ready for `ManifestClient.apply`.
|
|
16
|
+
* @throws {Error} When the message's kind is not in the manifest
|
|
17
|
+
* registry, or the message has no `metadata.name`.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { clone } from "@bufbuild/protobuf";
|
|
22
|
+
* import { ScheduleSchema } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/api_pb";
|
|
23
|
+
*
|
|
24
|
+
* const schedule = await stigmer.schedule.getByReference({ org, slug });
|
|
25
|
+
* const updated = clone(ScheduleSchema, schedule);
|
|
26
|
+
* updated.spec!.enabled = false;
|
|
27
|
+
* await stigmer.manifest.apply(manifestDocumentForResource(updated));
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function manifestDocumentForResource(message: Message): ManifestDocument;
|
|
31
|
+
//# sourceMappingURL=document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/manifest/document.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG/D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,CA4B9E"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// Build a ManifestDocument directly from a live resource proto.
|
|
2
|
+
//
|
|
3
|
+
// The programmatic sibling of `parseManifest`: where parsing starts from
|
|
4
|
+
// YAML text, this starts from a proto the server already returned (a
|
|
5
|
+
// `get`/`getByReference` result). It exists for lossless partial edits —
|
|
6
|
+
// clone the fetched proto, change one field, apply the whole thing — so
|
|
7
|
+
// callers never have to down-convert a proto into a curated `*Input`
|
|
8
|
+
// shape (which cannot express every metadata field and would silently
|
|
9
|
+
// drop the ones it can't carry).
|
|
10
|
+
import { metadataOf } from "./parse.js";
|
|
11
|
+
import { manifestHandlerForTypeName, manifestKinds } from "./registry.js";
|
|
12
|
+
/**
|
|
13
|
+
* Wrap a resource proto as a {@link ManifestDocument} ready for
|
|
14
|
+
* `stigmer.manifest.apply()`.
|
|
15
|
+
*
|
|
16
|
+
* The resource kind is derived from the message's proto type, so any
|
|
17
|
+
* registry-supported resource works with the same call. The message is
|
|
18
|
+
* passed through untouched — full fidelity, no serialization round-trip.
|
|
19
|
+
* The server ignores client-provided `status` on apply, so a fetched
|
|
20
|
+
* proto (status included) is safe to send as-is.
|
|
21
|
+
*
|
|
22
|
+
* @param message - A resource proto of a registry-supported kind, with
|
|
23
|
+
* `metadata.name` set (always true for server-returned resources).
|
|
24
|
+
* @returns A document ready for `ManifestClient.apply`.
|
|
25
|
+
* @throws {Error} When the message's kind is not in the manifest
|
|
26
|
+
* registry, or the message has no `metadata.name`.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { clone } from "@bufbuild/protobuf";
|
|
31
|
+
* import { ScheduleSchema } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/api_pb";
|
|
32
|
+
*
|
|
33
|
+
* const schedule = await stigmer.schedule.getByReference({ org, slug });
|
|
34
|
+
* const updated = clone(ScheduleSchema, schedule);
|
|
35
|
+
* updated.spec!.enabled = false;
|
|
36
|
+
* await stigmer.manifest.apply(manifestDocumentForResource(updated));
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export function manifestDocumentForResource(message) {
|
|
40
|
+
const handler = manifestHandlerForTypeName(message.$typeName);
|
|
41
|
+
if (handler === undefined) {
|
|
42
|
+
const supported = manifestKinds()
|
|
43
|
+
.map((h) => h.yamlKind)
|
|
44
|
+
.join(", ");
|
|
45
|
+
throw new Error(`Cannot apply ${message.$typeName} as a manifest: kind is not ` +
|
|
46
|
+
`in the manifest registry. Supported kinds: ${supported}.`);
|
|
47
|
+
}
|
|
48
|
+
const metadata = metadataOf(message);
|
|
49
|
+
const name = metadata?.name ?? "";
|
|
50
|
+
if (name === "") {
|
|
51
|
+
throw new Error(`Cannot apply this ${handler.displayName}: metadata.name is empty. ` +
|
|
52
|
+
"Pass a resource as returned by the server (get/getByReference).");
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
handler,
|
|
56
|
+
message,
|
|
57
|
+
name,
|
|
58
|
+
slug: metadata?.slug || name,
|
|
59
|
+
org: metadata?.org ?? "",
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/manifest/document.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,yEAAyE;AACzE,qEAAqE;AACrE,yEAAyE;AACzE,wEAAwE;AACxE,qEAAqE;AACrE,sEAAsE;AACtE,iCAAiC;AAGjC,OAAO,EAAE,UAAU,EAAyB,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IAC1D,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,aAAa,EAAE;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aACtB,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CACb,gBAAgB,OAAO,CAAC,SAAS,8BAA8B;YAC7D,8CAA8C,SAAS,GAAG,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;IAClC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,qBAAqB,OAAO,CAAC,WAAW,4BAA4B;YAClE,iEAAiE,CACpE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI;QAC5B,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE;KACzB,CAAC;AACJ,CAAC"}
|
package/manifest/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { manifestKinds, manifestHandlerForYamlKind, manifestHandlerForTypeName,
|
|
|
2
2
|
export type { ManifestKindHandler, ServiceClientFn } from "./registry.js";
|
|
3
3
|
export { parseManifest, metadataOf } from "./parse.js";
|
|
4
4
|
export type { ManifestDocument, ParseManifestOptions } from "./parse.js";
|
|
5
|
+
export { manifestDocumentForResource } from "./document.js";
|
|
5
6
|
export { serializeManifest } from "./serialize.js";
|
|
6
7
|
export { ManifestClient } from "./client.js";
|
|
7
8
|
export type { AppliedManifest } from "./client.js";
|
package/manifest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
|
package/manifest/index.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// editable YAML, and apply through each kind's command controller.
|
|
6
6
|
export { manifestKinds, manifestHandlerForYamlKind, manifestHandlerForTypeName, } from "./registry.js";
|
|
7
7
|
export { parseManifest, metadataOf } from "./parse.js";
|
|
8
|
+
export { manifestDocumentForResource } from "./document.js";
|
|
8
9
|
export { serializeManifest } from "./serialize.js";
|
|
9
10
|
export { ManifestClient } from "./client.js";
|
|
10
11
|
export { REDACTED_SECRET_MARKER, containsRedactedSecrets, } from "./redaction.js";
|
package/manifest/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,mEAAmE;AAEnE,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,mEAAmE;AAEnE,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/manifest/registry.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/manifest/registry.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAuCjG;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,SAAS,WAAW,EAAE,OAAO,EAAE,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AAExF;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,KAAK,CAAC,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,2DAA2D;IAC3D,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzF;AA6ID,yEAAyE;AACzE,wBAAgB,aAAa,IAAI,SAAS,mBAAmB,EAAE,CAE9D;AAED,2EAA2E;AAC3E,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,GACf,mBAAmB,GAAG,SAAS,CAEjC;AAED,0EAA0E;AAC1E,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,GACf,mBAAmB,GAAG,SAAS,CAEjC"}
|
package/manifest/registry.js
CHANGED
|
@@ -35,6 +35,9 @@ import { EnvironmentQueryController } from "@stigmer/protos/ai/stigmer/agentic/e
|
|
|
35
35
|
import { McpServerSchema } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
|
|
36
36
|
import { McpServerCommandController } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/command_pb";
|
|
37
37
|
import { McpServerQueryController } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/query_pb";
|
|
38
|
+
import { ScheduleSchema } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/api_pb";
|
|
39
|
+
import { ScheduleCommandController } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/command_pb";
|
|
40
|
+
import { ScheduleQueryController } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/query_pb";
|
|
38
41
|
import { WorkflowSchema } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/api_pb";
|
|
39
42
|
import { WorkflowCommandController } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/command_pb";
|
|
40
43
|
import { WorkflowQueryController } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/query_pb";
|
|
@@ -149,7 +152,7 @@ const HANDLERS = [
|
|
|
149
152
|
apply: (c, m) => c(AgentShareCommandController).apply(m),
|
|
150
153
|
getByReference: (c, ref) => c(AgentShareQueryController).getByReference(ref),
|
|
151
154
|
},
|
|
152
|
-
//
|
|
155
|
+
// An AgentChannel references an Agent, a ChannelApp, and Environments.
|
|
153
156
|
{
|
|
154
157
|
kind: ApiResourceKind.agent_channel,
|
|
155
158
|
yamlKind: "AgentChannel",
|
|
@@ -160,6 +163,18 @@ const HANDLERS = [
|
|
|
160
163
|
apply: (c, m) => c(AgentChannelCommandController).apply(m),
|
|
161
164
|
getByReference: (c, ref) => c(AgentChannelQueryController).getByReference(ref),
|
|
162
165
|
},
|
|
166
|
+
// Last: a Schedule references an Agent (and, later, a Workflow) — it
|
|
167
|
+
// applies after every kind it can target.
|
|
168
|
+
{
|
|
169
|
+
kind: ApiResourceKind.schedule,
|
|
170
|
+
yamlKind: "Schedule",
|
|
171
|
+
displayName: "Schedule",
|
|
172
|
+
apiVersion: AGENTIC_V1,
|
|
173
|
+
schema: ScheduleSchema,
|
|
174
|
+
applyOrder: 12,
|
|
175
|
+
apply: (c, m) => c(ScheduleCommandController).apply(m),
|
|
176
|
+
getByReference: (c, ref) => c(ScheduleQueryController).getByReference(ref),
|
|
177
|
+
},
|
|
163
178
|
];
|
|
164
179
|
const BY_YAML_KIND = new Map(HANDLERS.map((h) => [h.yamlKind, h]));
|
|
165
180
|
const BY_TYPE_NAME = new Map(HANDLERS.map((h) => [h.schema.typeName, h]));
|
package/manifest/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/manifest/registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/manifest/registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/sdk",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "Stigmer TypeScript SDK — typed API client for all Stigmer platform resources",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -45,6 +45,6 @@
|
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"@bufbuild/protobuf": "^2.0.0",
|
|
47
47
|
"@connectrpc/connect-node": "^2.0.0",
|
|
48
|
-
"@stigmer/protos": "3.
|
|
48
|
+
"@stigmer/protos": "3.6.0"
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { create, equals } from "@bufbuild/protobuf";
|
|
2
|
+
import { clone, create, equals } from "@bufbuild/protobuf";
|
|
3
3
|
import { AgentSchema, type Agent } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
|
|
4
4
|
import { EnvironmentSchema, type Environment } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/api_pb";
|
|
5
|
+
import { ScheduleSchema, type Schedule } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/api_pb";
|
|
6
|
+
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
5
7
|
import { ApiResourceMetadataSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/metadata_pb";
|
|
6
8
|
import { parse as parseYaml } from "yaml";
|
|
7
9
|
import { parseManifest } from "../manifest/parse";
|
|
8
10
|
import { serializeManifest } from "../manifest/serialize";
|
|
11
|
+
import { manifestDocumentForResource } from "../manifest/document";
|
|
9
12
|
import { manifestKinds, manifestHandlerForYamlKind } from "../manifest/registry";
|
|
10
13
|
|
|
11
14
|
/**
|
|
@@ -245,6 +248,80 @@ describe("serializeManifest", () => {
|
|
|
245
248
|
});
|
|
246
249
|
});
|
|
247
250
|
|
|
251
|
+
// ---------------------------------------------------------------------------
|
|
252
|
+
// manifestDocumentForResource
|
|
253
|
+
// ---------------------------------------------------------------------------
|
|
254
|
+
|
|
255
|
+
describe("manifestDocumentForResource", () => {
|
|
256
|
+
// Shaped like a server-returned schedule: full metadata (including
|
|
257
|
+
// fields the curated ScheduleInput cannot express, like tags) and a
|
|
258
|
+
// populated status — the exact input of a lossless partial edit.
|
|
259
|
+
const schedule = create(ScheduleSchema, {
|
|
260
|
+
apiVersion: "agentic.stigmer.ai/v1",
|
|
261
|
+
kind: "Schedule",
|
|
262
|
+
metadata: {
|
|
263
|
+
id: "sch_01example",
|
|
264
|
+
name: "daily-fee-reminders",
|
|
265
|
+
slug: "daily-fee-reminders",
|
|
266
|
+
org: "isc",
|
|
267
|
+
tags: ["billing"],
|
|
268
|
+
labels: { team: "ops" },
|
|
269
|
+
},
|
|
270
|
+
spec: {
|
|
271
|
+
cron: "0 9 * * *",
|
|
272
|
+
timeZone: "Asia/Kolkata",
|
|
273
|
+
enabled: true,
|
|
274
|
+
target: {
|
|
275
|
+
case: "agent",
|
|
276
|
+
value: {
|
|
277
|
+
agentRef: { kind: ApiResourceKind.agent, org: "isc", slug: "fee-reminder" },
|
|
278
|
+
message: "Send today's fee reminders.",
|
|
279
|
+
},
|
|
280
|
+
},
|
|
281
|
+
},
|
|
282
|
+
status: { consecutiveFailures: 2, pausedReason: "" },
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
it("wraps a fetched proto untouched — the lossless edit contract", () => {
|
|
286
|
+
const flipped = clone(ScheduleSchema, schedule);
|
|
287
|
+
flipped.spec!.enabled = false;
|
|
288
|
+
|
|
289
|
+
const doc = manifestDocumentForResource(flipped);
|
|
290
|
+
|
|
291
|
+
expect(doc.handler.yamlKind).toBe("Schedule");
|
|
292
|
+
expect(doc.name).toBe("daily-fee-reminders");
|
|
293
|
+
expect(doc.slug).toBe("daily-fee-reminders");
|
|
294
|
+
expect(doc.org).toBe("isc");
|
|
295
|
+
// Identity, not a copy: nothing is re-serialized or down-converted,
|
|
296
|
+
// so every field survives (the ScheduleInput path would drop tags).
|
|
297
|
+
expect(doc.message).toBe(flipped);
|
|
298
|
+
|
|
299
|
+
const expected = clone(ScheduleSchema, schedule);
|
|
300
|
+
expected.spec!.enabled = false;
|
|
301
|
+
expect(equals(ScheduleSchema, doc.message as Schedule, expected)).toBe(true);
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
it("falls back to name when the proto has no slug", () => {
|
|
305
|
+
const bare = create(AgentSchema, { metadata: { name: "x", org: "acme" } });
|
|
306
|
+
const doc = manifestDocumentForResource(bare);
|
|
307
|
+
expect(doc.slug).toBe("x");
|
|
308
|
+
});
|
|
309
|
+
|
|
310
|
+
it("rejects messages of kinds outside the registry", () => {
|
|
311
|
+
const notAResource = create(ApiResourceMetadataSchema, { name: "x" });
|
|
312
|
+
expect(() => manifestDocumentForResource(notAResource)).toThrow(
|
|
313
|
+
/not.*registry/i,
|
|
314
|
+
);
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
it("rejects a resource without metadata.name", () => {
|
|
318
|
+
const nameless = create(ScheduleSchema, { metadata: { org: "acme" } });
|
|
319
|
+
expect(() => manifestDocumentForResource(nameless)).toThrow(
|
|
320
|
+
/metadata\.name/,
|
|
321
|
+
);
|
|
322
|
+
});
|
|
323
|
+
});
|
|
324
|
+
|
|
248
325
|
// ---------------------------------------------------------------------------
|
|
249
326
|
// Registry invariants
|
|
250
327
|
// ---------------------------------------------------------------------------
|
package/src/gen/agentchannel.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { AgentChannelSchema, type AgentChannel } from "@stigmer/protos/ai/stigme
|
|
|
9
9
|
import { AgentChannelCommandController } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/command_pb";
|
|
10
10
|
import { AgentChannelIdSchema, InitiateChannelInstallInputSchema, InitiateChannelInstallOutputSchema, CompleteChannelInstallInputSchema, GetAgentChannelsByAgentRequestSchema, AgentChannelListSchema, ListAgentChannelsRequestSchema, type InitiateChannelInstallInput, type InitiateChannelInstallOutput, type CompleteChannelInstallInput, type GetAgentChannelsByAgentRequest, type AgentChannelList, type ListAgentChannelsRequest } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/io_pb";
|
|
11
11
|
import { ChannelMessageCommandController } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/message_command_pb";
|
|
12
|
-
import { SendChannelMessageInputSchema, SendChannelMessageOutputSchema, ListChannelTemplatesInputSchema, ChannelTemplatesSchema, type SendChannelMessageInput, type SendChannelMessageOutput, type ListChannelTemplatesInput, type ChannelTemplates } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/message_io_pb";
|
|
12
|
+
import { SendChannelMessageInputSchema, SendChannelMessageOutputSchema, ListChannelTemplatesInputSchema, ChannelTemplatesSchema, ListMessagingChannelsInputSchema, MessagingChannelsSchema, type SendChannelMessageInput, type SendChannelMessageOutput, type ListChannelTemplatesInput, type ChannelTemplates, type ListMessagingChannelsInput, type MessagingChannels } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/message_io_pb";
|
|
13
13
|
import { ChannelMessageQueryController } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/message_query_pb";
|
|
14
14
|
import { AgentChannelQueryController } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/query_pb";
|
|
15
15
|
import { AgentChannelSpecSchema, SlackChannelConfigSchema, WhatsAppChannelConfigSchema } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/spec_pb";
|
|
@@ -80,6 +80,12 @@ export class AgentChannelClient {
|
|
|
80
80
|
} catch (e) { throw wrapError(e); }
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
async listMessagingChannels(input: ListMessagingChannelsInput): Promise<MessagingChannels> {
|
|
84
|
+
try {
|
|
85
|
+
return await this.channelMessageQuery.listMessagingChannels(input);
|
|
86
|
+
} catch (e) { throw wrapError(e); }
|
|
87
|
+
}
|
|
88
|
+
|
|
83
89
|
async get(id: string): Promise<AgentChannel> {
|
|
84
90
|
try {
|
|
85
91
|
return await this.query.get(create(AgentChannelIdSchema, { value: id }));
|
|
@@ -32,5 +32,6 @@ export const GRANTABLE_ROLES: ReadonlyMap<ApiResourceKind, readonly IamRole[]> =
|
|
|
32
32
|
[ApiResourceKind.workflow_execution, [IamRole.owner, IamRole.viewer]],
|
|
33
33
|
[ApiResourceKind.environment, [IamRole.owner, IamRole.viewer]],
|
|
34
34
|
[ApiResourceKind.artifact, [IamRole.owner, IamRole.viewer]],
|
|
35
|
+
[ApiResourceKind.schedule, [IamRole.owner, IamRole.viewer]],
|
|
35
36
|
[ApiResourceKind.project, [IamRole.owner, IamRole.viewer]],
|
|
36
37
|
]);
|
package/src/gen/client.ts
CHANGED
|
@@ -21,6 +21,7 @@ import { OAuthAppClient } from "./oauthapp.js";
|
|
|
21
21
|
import { OrganizationClient } from "./organization.js";
|
|
22
22
|
import { PlatformClientClient } from "./platformclient.js";
|
|
23
23
|
import { ProjectClient } from "./project.js";
|
|
24
|
+
import { ScheduleClient } from "./schedule.js";
|
|
24
25
|
import { SessionClient } from "./session.js";
|
|
25
26
|
import { SkillClient } from "./skill.js";
|
|
26
27
|
import { WorkflowClient } from "./workflow.js";
|
|
@@ -49,6 +50,7 @@ export class GeneratedClient {
|
|
|
49
50
|
readonly organization: OrganizationClient;
|
|
50
51
|
readonly platformclient: PlatformClientClient;
|
|
51
52
|
readonly project: ProjectClient;
|
|
53
|
+
readonly schedule: ScheduleClient;
|
|
52
54
|
readonly session: SessionClient;
|
|
53
55
|
readonly skill: SkillClient;
|
|
54
56
|
readonly workflow: WorkflowClient;
|
|
@@ -76,6 +78,7 @@ export class GeneratedClient {
|
|
|
76
78
|
this.organization = new OrganizationClient(transport);
|
|
77
79
|
this.platformclient = new PlatformClientClient(transport);
|
|
78
80
|
this.project = new ProjectClient(transport);
|
|
81
|
+
this.schedule = new ScheduleClient(transport);
|
|
79
82
|
this.session = new SessionClient(transport);
|
|
80
83
|
this.skill = new SkillClient(transport);
|
|
81
84
|
this.workflow = new WorkflowClient(transport);
|
|
@@ -125,6 +128,8 @@ export { PlatformClientClient } from "./platformclient.js";
|
|
|
125
128
|
export { type PlatformClientInput } from "./platformclient.js";
|
|
126
129
|
export { ProjectClient } from "./project.js";
|
|
127
130
|
export { type ProjectInput } from "./project.js";
|
|
131
|
+
export { ScheduleClient } from "./schedule.js";
|
|
132
|
+
export { type ScheduleInput, type AgentTargetInput } from "./schedule.js";
|
|
128
133
|
export { SessionClient } from "./session.js";
|
|
129
134
|
export { type SessionInput } from "./session.js";
|
|
130
135
|
export { SkillClient } from "./skill.js";
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
// Code generated by stigmer-codegen. DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
import { wrapError } from "./errors.js";
|
|
4
|
+
import { stripUndefined } from "./proto-utils.js";
|
|
5
|
+
import { type ResourceRef } from "./types.js";
|
|
6
|
+
import { create } from "@bufbuild/protobuf";
|
|
7
|
+
import { createClient, type Client, type Transport } from "@connectrpc/connect";
|
|
8
|
+
import { ScheduleSchema, type Schedule } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/api_pb";
|
|
9
|
+
import { ScheduleCommandController } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/command_pb";
|
|
10
|
+
import { ScheduleIdSchema, GetSchedulesByAgentRequestSchema, ScheduleListSchema, ListSchedulesRequestSchema, type GetSchedulesByAgentRequest, type ScheduleList, type ListSchedulesRequest } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/io_pb";
|
|
11
|
+
import { ScheduleQueryController } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/query_pb";
|
|
12
|
+
import { ScheduleSpecSchema, AgentTargetSchema } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/spec_pb";
|
|
13
|
+
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
14
|
+
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
15
|
+
import { ApiResourceReferenceSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/io_pb";
|
|
16
|
+
import { ApiResourceMetadataSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/metadata_pb";
|
|
17
|
+
|
|
18
|
+
/** Provides operations on schedule resources. */
|
|
19
|
+
export class ScheduleClient {
|
|
20
|
+
private readonly command: Client<typeof ScheduleCommandController>;
|
|
21
|
+
private readonly query: Client<typeof ScheduleQueryController>;
|
|
22
|
+
|
|
23
|
+
constructor(transport: Transport) {
|
|
24
|
+
this.command = createClient(ScheduleCommandController, transport);
|
|
25
|
+
this.query = createClient(ScheduleQueryController, transport);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async apply(input: ScheduleInput): Promise<Schedule> {
|
|
29
|
+
try {
|
|
30
|
+
return await this.command.apply(buildScheduleProto(input));
|
|
31
|
+
} catch (e) { throw wrapError(e); }
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async create(input: ScheduleInput): Promise<Schedule> {
|
|
35
|
+
try {
|
|
36
|
+
return await this.command.create(buildScheduleProto(input));
|
|
37
|
+
} catch (e) { throw wrapError(e); }
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
async update(input: ScheduleInput): Promise<Schedule> {
|
|
41
|
+
try {
|
|
42
|
+
return await this.command.update(buildScheduleProto(input));
|
|
43
|
+
} catch (e) { throw wrapError(e); }
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async delete(id: string): Promise<Schedule> {
|
|
47
|
+
try {
|
|
48
|
+
return await this.command.delete(create(ScheduleIdSchema, { value: id }));
|
|
49
|
+
} catch (e) { throw wrapError(e); }
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async resume(id: string): Promise<Schedule> {
|
|
53
|
+
try {
|
|
54
|
+
return await this.command.resume(create(ScheduleIdSchema, { value: id }));
|
|
55
|
+
} catch (e) { throw wrapError(e); }
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async trigger(id: string): Promise<Schedule> {
|
|
59
|
+
try {
|
|
60
|
+
return await this.command.trigger(create(ScheduleIdSchema, { value: id }));
|
|
61
|
+
} catch (e) { throw wrapError(e); }
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async get(id: string): Promise<Schedule> {
|
|
65
|
+
try {
|
|
66
|
+
return await this.query.get(create(ScheduleIdSchema, { value: id }));
|
|
67
|
+
} catch (e) { throw wrapError(e); }
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
async getByReference(ref: ResourceRef): Promise<Schedule> {
|
|
71
|
+
try {
|
|
72
|
+
return await this.query.getByReference(create(ApiResourceReferenceSchema, { ...ref, kind: ApiResourceKind.schedule }));
|
|
73
|
+
} catch (e) { throw wrapError(e); }
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
async getByAgent(input: GetSchedulesByAgentRequest): Promise<ScheduleList> {
|
|
77
|
+
try {
|
|
78
|
+
return await this.query.getByAgent(input);
|
|
79
|
+
} catch (e) { throw wrapError(e); }
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async list(input: ListSchedulesRequest): Promise<ScheduleList> {
|
|
83
|
+
try {
|
|
84
|
+
return await this.query.list(input);
|
|
85
|
+
} catch (e) { throw wrapError(e); }
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** Input for creating/updating a Schedule. */
|
|
90
|
+
export interface ScheduleInput {
|
|
91
|
+
name: string;
|
|
92
|
+
slug?: string;
|
|
93
|
+
org: string;
|
|
94
|
+
labels?: Record<string, string>;
|
|
95
|
+
visibility?: ApiResourceVisibility;
|
|
96
|
+
cron?: string;
|
|
97
|
+
timeZone?: string;
|
|
98
|
+
enabled?: boolean;
|
|
99
|
+
agent?: AgentTargetInput;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/** SDK input type for AgentTarget. */
|
|
103
|
+
export interface AgentTargetInput {
|
|
104
|
+
agentRef: ResourceRef;
|
|
105
|
+
message?: string;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function buildAgentTargetProto(input: AgentTargetInput) {
|
|
109
|
+
const msg = create(AgentTargetSchema);
|
|
110
|
+
if (input.agentRef?.slug || input.agentRef?.org) msg.agentRef = create(ApiResourceReferenceSchema, { ...input.agentRef, kind: 40 });
|
|
111
|
+
if (input.message !== undefined) msg.message = input.message;
|
|
112
|
+
return msg;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export function buildScheduleProto(input: ScheduleInput): Schedule {
|
|
116
|
+
const spec = Object.assign(create(ScheduleSpecSchema), stripUndefined({
|
|
117
|
+
cron: input.cron,
|
|
118
|
+
timeZone: input.timeZone,
|
|
119
|
+
enabled: input.enabled,
|
|
120
|
+
}));
|
|
121
|
+
if (input.agent) {
|
|
122
|
+
spec.target = { case: "agent", value: buildAgentTargetProto(input.agent) };
|
|
123
|
+
}
|
|
124
|
+
return Object.assign(create(ScheduleSchema), {
|
|
125
|
+
apiVersion: "agentic.stigmer.ai/v1",
|
|
126
|
+
kind: "Schedule",
|
|
127
|
+
metadata: Object.assign(create(ApiResourceMetadataSchema), {
|
|
128
|
+
name: input.name,
|
|
129
|
+
org: input.org,
|
|
130
|
+
...(input.slug && { slug: input.slug }),
|
|
131
|
+
...(input.labels && { labels: input.labels }),
|
|
132
|
+
...(input.visibility && { visibility: input.visibility }),
|
|
133
|
+
}),
|
|
134
|
+
spec,
|
|
135
|
+
}) as Schedule;
|
|
136
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -132,6 +132,7 @@ export {
|
|
|
132
132
|
ManifestClient,
|
|
133
133
|
parseManifest,
|
|
134
134
|
serializeManifest,
|
|
135
|
+
manifestDocumentForResource,
|
|
135
136
|
manifestKinds,
|
|
136
137
|
manifestHandlerForYamlKind,
|
|
137
138
|
manifestHandlerForTypeName,
|
|
@@ -240,6 +241,12 @@ export {
|
|
|
240
241
|
type PlatformClientInput,
|
|
241
242
|
} from "./gen/platformclient.js";
|
|
242
243
|
export { ProjectClient, type ProjectInput } from "./gen/project.js";
|
|
244
|
+
export {
|
|
245
|
+
ScheduleClient,
|
|
246
|
+
buildScheduleProto,
|
|
247
|
+
type ScheduleInput,
|
|
248
|
+
type AgentTargetInput,
|
|
249
|
+
} from "./gen/schedule.js";
|
|
243
250
|
export {
|
|
244
251
|
SessionClient,
|
|
245
252
|
type SessionInput,
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// Build a ManifestDocument directly from a live resource proto.
|
|
2
|
+
//
|
|
3
|
+
// The programmatic sibling of `parseManifest`: where parsing starts from
|
|
4
|
+
// YAML text, this starts from a proto the server already returned (a
|
|
5
|
+
// `get`/`getByReference` result). It exists for lossless partial edits —
|
|
6
|
+
// clone the fetched proto, change one field, apply the whole thing — so
|
|
7
|
+
// callers never have to down-convert a proto into a curated `*Input`
|
|
8
|
+
// shape (which cannot express every metadata field and would silently
|
|
9
|
+
// drop the ones it can't carry).
|
|
10
|
+
|
|
11
|
+
import type { Message } from "@bufbuild/protobuf";
|
|
12
|
+
import { metadataOf, type ManifestDocument } from "./parse.js";
|
|
13
|
+
import { manifestHandlerForTypeName, manifestKinds } from "./registry.js";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Wrap a resource proto as a {@link ManifestDocument} ready for
|
|
17
|
+
* `stigmer.manifest.apply()`.
|
|
18
|
+
*
|
|
19
|
+
* The resource kind is derived from the message's proto type, so any
|
|
20
|
+
* registry-supported resource works with the same call. The message is
|
|
21
|
+
* passed through untouched — full fidelity, no serialization round-trip.
|
|
22
|
+
* The server ignores client-provided `status` on apply, so a fetched
|
|
23
|
+
* proto (status included) is safe to send as-is.
|
|
24
|
+
*
|
|
25
|
+
* @param message - A resource proto of a registry-supported kind, with
|
|
26
|
+
* `metadata.name` set (always true for server-returned resources).
|
|
27
|
+
* @returns A document ready for `ManifestClient.apply`.
|
|
28
|
+
* @throws {Error} When the message's kind is not in the manifest
|
|
29
|
+
* registry, or the message has no `metadata.name`.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* import { clone } from "@bufbuild/protobuf";
|
|
34
|
+
* import { ScheduleSchema } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/api_pb";
|
|
35
|
+
*
|
|
36
|
+
* const schedule = await stigmer.schedule.getByReference({ org, slug });
|
|
37
|
+
* const updated = clone(ScheduleSchema, schedule);
|
|
38
|
+
* updated.spec!.enabled = false;
|
|
39
|
+
* await stigmer.manifest.apply(manifestDocumentForResource(updated));
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export function manifestDocumentForResource(message: Message): ManifestDocument {
|
|
43
|
+
const handler = manifestHandlerForTypeName(message.$typeName);
|
|
44
|
+
if (handler === undefined) {
|
|
45
|
+
const supported = manifestKinds()
|
|
46
|
+
.map((h) => h.yamlKind)
|
|
47
|
+
.join(", ");
|
|
48
|
+
throw new Error(
|
|
49
|
+
`Cannot apply ${message.$typeName} as a manifest: kind is not ` +
|
|
50
|
+
`in the manifest registry. Supported kinds: ${supported}.`,
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const metadata = metadataOf(message);
|
|
55
|
+
const name = metadata?.name ?? "";
|
|
56
|
+
if (name === "") {
|
|
57
|
+
throw new Error(
|
|
58
|
+
`Cannot apply this ${handler.displayName}: metadata.name is empty. ` +
|
|
59
|
+
"Pass a resource as returned by the server (get/getByReference).",
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
handler,
|
|
65
|
+
message,
|
|
66
|
+
name,
|
|
67
|
+
slug: metadata?.slug || name,
|
|
68
|
+
org: metadata?.org ?? "",
|
|
69
|
+
};
|
|
70
|
+
}
|
package/src/manifest/index.ts
CHANGED
|
@@ -14,6 +14,8 @@ export type { ManifestKindHandler, ServiceClientFn } from "./registry.js";
|
|
|
14
14
|
export { parseManifest, metadataOf } from "./parse.js";
|
|
15
15
|
export type { ManifestDocument, ParseManifestOptions } from "./parse.js";
|
|
16
16
|
|
|
17
|
+
export { manifestDocumentForResource } from "./document.js";
|
|
18
|
+
|
|
17
19
|
export { serializeManifest } from "./serialize.js";
|
|
18
20
|
|
|
19
21
|
export { ManifestClient } from "./client.js";
|