@stigmer/sdk 0.0.36 → 0.0.40
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__/config.test.d.ts +2 -0
- package/__tests__/config.test.d.ts.map +1 -0
- package/__tests__/config.test.js +35 -0
- package/__tests__/config.test.js.map +1 -0
- package/__tests__/errors.test.d.ts +2 -0
- package/__tests__/errors.test.d.ts.map +1 -0
- package/__tests__/errors.test.js +125 -0
- package/__tests__/errors.test.js.map +1 -0
- package/__tests__/gen/errors.test.d.ts +2 -0
- package/__tests__/gen/errors.test.d.ts.map +1 -0
- package/__tests__/gen/errors.test.js +97 -0
- package/__tests__/gen/errors.test.js.map +1 -0
- package/__tests__/gen/proto-utils.test.d.ts +2 -0
- package/__tests__/gen/proto-utils.test.d.ts.map +1 -0
- package/__tests__/gen/proto-utils.test.js +45 -0
- package/__tests__/gen/proto-utils.test.js.map +1 -0
- package/__tests__/gen/session-client.test.d.ts +2 -0
- package/__tests__/gen/session-client.test.d.ts.map +1 -0
- package/__tests__/gen/session-client.test.js +148 -0
- package/__tests__/gen/session-client.test.js.map +1 -0
- package/gen/agent.d.ts +6 -0
- package/gen/agent.d.ts.map +1 -1
- package/gen/agent.js +78 -8
- package/gen/agent.js.map +1 -1
- package/gen/agentexecution.d.ts +4 -1
- package/gen/agentexecution.d.ts.map +1 -1
- package/gen/agentexecution.js +55 -6
- package/gen/agentexecution.js.map +1 -1
- package/gen/agentinstance.d.ts +4 -1
- package/gen/agentinstance.d.ts.map +1 -1
- package/gen/agentinstance.js +17 -4
- package/gen/agentinstance.js.map +1 -1
- package/gen/apikey.d.ts +2 -0
- package/gen/apikey.d.ts.map +1 -1
- package/gen/apikey.js +5 -2
- package/gen/apikey.js.map +1 -1
- package/gen/environment.d.ts +8 -0
- package/gen/environment.d.ts.map +1 -1
- package/gen/environment.js +45 -5
- package/gen/environment.js.map +1 -1
- package/gen/executioncontext.d.ts +2 -0
- package/gen/executioncontext.d.ts.map +1 -1
- package/gen/executioncontext.js +13 -5
- package/gen/executioncontext.js.map +1 -1
- package/gen/iampolicy.d.ts +2 -1
- package/gen/iampolicy.d.ts.map +1 -1
- package/gen/iampolicy.js +17 -13
- package/gen/iampolicy.js.map +1 -1
- package/gen/identityaccount.d.ts +2 -0
- package/gen/identityaccount.d.ts.map +1 -1
- package/gen/identityaccount.js +8 -3
- package/gen/identityaccount.js.map +1 -1
- package/gen/identityprovider.d.ts +2 -0
- package/gen/identityprovider.d.ts.map +1 -1
- package/gen/identityprovider.js +7 -3
- package/gen/identityprovider.js.map +1 -1
- package/gen/mcpserver.d.ts +4 -0
- package/gen/mcpserver.d.ts.map +1 -1
- package/gen/mcpserver.js +58 -11
- package/gen/mcpserver.js.map +1 -1
- package/gen/organization.d.ts +3 -0
- package/gen/organization.d.ts.map +1 -1
- package/gen/organization.js +9 -3
- package/gen/organization.js.map +1 -1
- package/gen/project.d.ts +2 -0
- package/gen/project.d.ts.map +1 -1
- package/gen/project.js +9 -4
- package/gen/project.js.map +1 -1
- package/gen/proto-utils.d.ts +6 -0
- package/gen/proto-utils.d.ts.map +1 -0
- package/gen/proto-utils.js +15 -0
- package/gen/proto-utils.js.map +1 -0
- package/gen/session.d.ts +18 -1
- package/gen/session.d.ts.map +1 -1
- package/gen/session.js +62 -3
- package/gen/session.js.map +1 -1
- package/gen/skill.d.ts +6 -1
- package/gen/skill.d.ts.map +1 -1
- package/gen/skill.js +22 -3
- package/gen/skill.js.map +1 -1
- package/gen/workflow.d.ts +2 -0
- package/gen/workflow.d.ts.map +1 -1
- package/gen/workflow.js +55 -7
- package/gen/workflow.js.map +1 -1
- package/gen/workflowexecution.d.ts +2 -0
- package/gen/workflowexecution.d.ts.map +1 -1
- package/gen/workflowexecution.js +11 -3
- package/gen/workflowexecution.js.map +1 -1
- package/gen/workflowinstance.d.ts +3 -1
- package/gen/workflowinstance.d.ts.map +1 -1
- package/gen/workflowinstance.js +9 -4
- package/gen/workflowinstance.js.map +1 -1
- package/github.d.ts +38 -0
- package/github.d.ts.map +1 -0
- package/github.js +51 -0
- package/github.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.d.ts.map +1 -1
- package/index.js +4 -0
- package/index.js.map +1 -1
- package/package.json +2 -2
- package/session.d.ts +31 -0
- package/session.d.ts.map +1 -0
- package/session.js +36 -0
- package/session.js.map +1 -0
- package/src/__tests__/config.test.ts +52 -0
- package/src/__tests__/errors.test.ts +188 -0
- package/src/__tests__/gen/errors.test.ts +138 -0
- package/src/__tests__/gen/proto-utils.test.ts +53 -0
- package/src/__tests__/gen/session-client.test.ts +202 -0
- package/src/gen/agent.ts +73 -10
- package/src/gen/agentexecution.ts +55 -7
- package/src/gen/agentinstance.ts +18 -5
- package/src/gen/apikey.ts +7 -2
- package/src/gen/environment.ts +41 -5
- package/src/gen/executioncontext.ts +16 -5
- package/src/gen/iampolicy.ts +19 -10
- package/src/gen/identityaccount.ts +10 -3
- package/src/gen/identityprovider.ts +9 -3
- package/src/gen/mcpserver.ts +61 -12
- package/src/gen/organization.ts +12 -4
- package/src/gen/project.ts +11 -4
- package/src/gen/proto-utils.ts +15 -0
- package/src/gen/session.ts +82 -4
- package/src/gen/skill.ts +22 -5
- package/src/gen/workflow.ts +56 -7
- package/src/gen/workflowexecution.ts +14 -3
- package/src/gen/workflowinstance.ts +12 -5
- package/src/github.ts +89 -0
- package/src/index.ts +12 -0
- package/src/session.ts +37 -0
- package/src/stigmer.ts +3 -0
- package/stigmer.d.ts +2 -0
- package/stigmer.d.ts.map +1 -1
- package/stigmer.js +3 -0
- package/stigmer.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { validateConfig } from "../config";
|
|
3
|
+
describe("validateConfig", () => {
|
|
4
|
+
const validApiKeyConfig = {
|
|
5
|
+
baseUrl: "https://api.stigmer.io",
|
|
6
|
+
apiKey: "sk_live_abc123",
|
|
7
|
+
};
|
|
8
|
+
const validTokenProviderConfig = {
|
|
9
|
+
baseUrl: "https://api.stigmer.io",
|
|
10
|
+
getAccessToken: () => "token",
|
|
11
|
+
};
|
|
12
|
+
it("accepts a valid config with apiKey", () => {
|
|
13
|
+
expect(() => validateConfig(validApiKeyConfig)).not.toThrow();
|
|
14
|
+
});
|
|
15
|
+
it("accepts a valid config with getAccessToken", () => {
|
|
16
|
+
expect(() => validateConfig(validTokenProviderConfig)).not.toThrow();
|
|
17
|
+
});
|
|
18
|
+
it("rejects missing baseUrl", () => {
|
|
19
|
+
expect(() => validateConfig({ baseUrl: "", apiKey: "key" })).toThrow("stigmer: baseUrl is required");
|
|
20
|
+
});
|
|
21
|
+
it("rejects missing both apiKey and getAccessToken", () => {
|
|
22
|
+
expect(() => validateConfig({ baseUrl: "https://api.stigmer.io" })).toThrow("stigmer: either apiKey or getAccessToken must be provided");
|
|
23
|
+
});
|
|
24
|
+
it("rejects empty apiKey without getAccessToken", () => {
|
|
25
|
+
expect(() => validateConfig({ baseUrl: "https://api.stigmer.io", apiKey: "" })).toThrow("stigmer: either apiKey or getAccessToken must be provided");
|
|
26
|
+
});
|
|
27
|
+
it("rejects providing both apiKey and getAccessToken", () => {
|
|
28
|
+
expect(() => validateConfig({
|
|
29
|
+
baseUrl: "https://api.stigmer.io",
|
|
30
|
+
apiKey: "sk_live_abc123",
|
|
31
|
+
getAccessToken: () => "token",
|
|
32
|
+
})).toThrow("stigmer: apiKey and getAccessToken are mutually exclusive — provide one, not both");
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=config.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAsB,MAAM,WAAW,CAAC;AAE/D,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,MAAM,iBAAiB,GAAkB;QACvC,OAAO,EAAE,wBAAwB;QACjC,MAAM,EAAE,gBAAgB;KACzB,CAAC;IAEF,MAAM,wBAAwB,GAAkB;QAC9C,OAAO,EAAE,wBAAwB;QACjC,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO;KAC9B,CAAC;IAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,GAAG,EAAE,CACV,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAC/C,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,GAAG,EAAE,CACV,cAAc,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CACtD,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,GAAG,EAAE,CACV,cAAc,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAClE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,GAAG,EAAE,CACV,cAAc,CAAC;YACb,OAAO,EAAE,wBAAwB;YACjC,MAAM,EAAE,gBAAgB;YACxB,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO;SAC9B,CAAC,CACH,CAAC,OAAO,CACP,mFAAmF,CACpF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/errors.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { ConnectError, Code } from "@connectrpc/connect";
|
|
3
|
+
import { StigmerError } from "../gen/errors";
|
|
4
|
+
import { classifyError, isRetryableError, getUserMessage, annotateRpcError, getRpcMetadata, } from "../errors";
|
|
5
|
+
describe("classifyError", () => {
|
|
6
|
+
const stigmerMappings = [
|
|
7
|
+
["unauthenticated", "auth"],
|
|
8
|
+
["permission-denied", "permission"],
|
|
9
|
+
["not-found", "not-found"],
|
|
10
|
+
["invalid-argument", "validation"],
|
|
11
|
+
["already-exists", "validation"],
|
|
12
|
+
["failed-precondition", "validation"],
|
|
13
|
+
["resource-exhausted", "unavailable"],
|
|
14
|
+
["internal", "server"],
|
|
15
|
+
["unavailable", "unavailable"],
|
|
16
|
+
["cancelled", "cancelled"],
|
|
17
|
+
["unknown", "server"],
|
|
18
|
+
];
|
|
19
|
+
it.each(stigmerMappings)("maps StigmerError code '%s' to category '%s'", (errorCode, expectedCategory) => {
|
|
20
|
+
const result = classifyError(new StigmerError(errorCode, "test", Code.Unknown));
|
|
21
|
+
expect(result).toBe(expectedCategory);
|
|
22
|
+
});
|
|
23
|
+
const connectMappings = [
|
|
24
|
+
[Code.Unauthenticated, "auth"],
|
|
25
|
+
[Code.PermissionDenied, "permission"],
|
|
26
|
+
[Code.NotFound, "not-found"],
|
|
27
|
+
[Code.InvalidArgument, "validation"],
|
|
28
|
+
[Code.FailedPrecondition, "validation"],
|
|
29
|
+
[Code.OutOfRange, "validation"],
|
|
30
|
+
[Code.AlreadyExists, "validation"],
|
|
31
|
+
[Code.Aborted, "validation"],
|
|
32
|
+
[Code.Internal, "server"],
|
|
33
|
+
[Code.Unknown, "server"],
|
|
34
|
+
[Code.DataLoss, "server"],
|
|
35
|
+
[Code.Unimplemented, "server"],
|
|
36
|
+
[Code.Unavailable, "unavailable"],
|
|
37
|
+
[Code.DeadlineExceeded, "unavailable"],
|
|
38
|
+
[Code.ResourceExhausted, "unavailable"],
|
|
39
|
+
[Code.Canceled, "cancelled"],
|
|
40
|
+
];
|
|
41
|
+
it.each(connectMappings)("maps ConnectError code %i to category '%s'", (code, expectedCategory) => {
|
|
42
|
+
const result = classifyError(new ConnectError("test", code));
|
|
43
|
+
expect(result).toBe(expectedCategory);
|
|
44
|
+
});
|
|
45
|
+
it("returns 'unknown' for plain Error", () => {
|
|
46
|
+
expect(classifyError(new Error("random"))).toBe("unknown");
|
|
47
|
+
});
|
|
48
|
+
it("returns 'unknown' for string", () => {
|
|
49
|
+
expect(classifyError("just a string")).toBe("unknown");
|
|
50
|
+
});
|
|
51
|
+
it("returns 'unknown' for null", () => {
|
|
52
|
+
expect(classifyError(null)).toBe("unknown");
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
describe("isRetryableError", () => {
|
|
56
|
+
it("returns true for 'server' category errors", () => {
|
|
57
|
+
expect(isRetryableError(new StigmerError("internal", "boom", Code.Internal))).toBe(true);
|
|
58
|
+
});
|
|
59
|
+
it("returns true for 'unavailable' category errors", () => {
|
|
60
|
+
expect(isRetryableError(new StigmerError("unavailable", "down", Code.Unavailable))).toBe(true);
|
|
61
|
+
});
|
|
62
|
+
it("returns false for 'auth' category errors", () => {
|
|
63
|
+
expect(isRetryableError(new StigmerError("unauthenticated", "bad token", Code.Unauthenticated))).toBe(false);
|
|
64
|
+
});
|
|
65
|
+
it("returns false for 'not-found' category errors", () => {
|
|
66
|
+
expect(isRetryableError(new StigmerError("not-found", "gone", Code.NotFound))).toBe(false);
|
|
67
|
+
});
|
|
68
|
+
it("returns false for plain Error", () => {
|
|
69
|
+
expect(isRetryableError(new Error("oops"))).toBe(false);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe("getUserMessage", () => {
|
|
73
|
+
it("extracts message from StigmerError", () => {
|
|
74
|
+
const err = new StigmerError("not-found", "Agent not found", Code.NotFound);
|
|
75
|
+
expect(getUserMessage(err)).toBe("Agent not found");
|
|
76
|
+
});
|
|
77
|
+
it("extracts rawMessage from ConnectError", () => {
|
|
78
|
+
const err = new ConnectError("Agent not found", Code.NotFound);
|
|
79
|
+
expect(getUserMessage(err)).toBe("Agent not found");
|
|
80
|
+
});
|
|
81
|
+
it("extracts message from plain Error", () => {
|
|
82
|
+
expect(getUserMessage(new Error("something"))).toBe("something");
|
|
83
|
+
});
|
|
84
|
+
it("extracts message from string", () => {
|
|
85
|
+
expect(getUserMessage("a string error")).toBe("a string error");
|
|
86
|
+
});
|
|
87
|
+
it("sanitizes 'no healthy upstream' to readable message", () => {
|
|
88
|
+
const err = new StigmerError("unavailable", "no healthy upstream", Code.Unavailable);
|
|
89
|
+
expect(getUserMessage(err)).toBe("The server is temporarily unavailable.");
|
|
90
|
+
});
|
|
91
|
+
it("sanitizes 'ECONNREFUSED'", () => {
|
|
92
|
+
expect(getUserMessage(new Error("connect ECONNREFUSED 127.0.0.1"))).toBe("Unable to connect to the server.");
|
|
93
|
+
});
|
|
94
|
+
it("sanitizes 'fetch failed'", () => {
|
|
95
|
+
expect(getUserMessage(new Error("fetch failed"))).toBe("Unable to reach the server. Check your connection.");
|
|
96
|
+
});
|
|
97
|
+
it("uses category fallback when message is empty", () => {
|
|
98
|
+
const err = new StigmerError("not-found", "", Code.NotFound);
|
|
99
|
+
expect(getUserMessage(err)).toBe("The requested resource was not found.");
|
|
100
|
+
});
|
|
101
|
+
it("uses custom fallback when provided and message is empty", () => {
|
|
102
|
+
const err = new StigmerError("not-found", "", Code.NotFound);
|
|
103
|
+
expect(getUserMessage(err, "Custom fallback")).toBe("Custom fallback");
|
|
104
|
+
});
|
|
105
|
+
it("uses 'unknown' category fallback for non-SDK errors without message", () => {
|
|
106
|
+
expect(getUserMessage(42)).toBe("An unexpected error occurred.");
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
describe("annotateRpcError / getRpcMetadata", () => {
|
|
110
|
+
it("roundtrips metadata on an error object", () => {
|
|
111
|
+
const err = new Error("test");
|
|
112
|
+
const metadata = { method: "Get", path: "/api/agent" };
|
|
113
|
+
annotateRpcError(err, metadata);
|
|
114
|
+
expect(getRpcMetadata(err)).toEqual(metadata);
|
|
115
|
+
});
|
|
116
|
+
it("returns undefined for unannotated errors", () => {
|
|
117
|
+
expect(getRpcMetadata(new Error("no metadata"))).toBeUndefined();
|
|
118
|
+
});
|
|
119
|
+
it("returns undefined for non-object errors", () => {
|
|
120
|
+
expect(getRpcMetadata("string error")).toBeUndefined();
|
|
121
|
+
expect(getRpcMetadata(null)).toBeUndefined();
|
|
122
|
+
expect(getRpcMetadata(42)).toBeUndefined();
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
//# sourceMappingURL=errors.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../src/__tests__/errors.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAkB,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,GAEf,MAAM,WAAW,CAAC;AAEnB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,eAAe,GAAmC;QACtD,CAAC,iBAAiB,EAAE,MAAM,CAAC;QAC3B,CAAC,mBAAmB,EAAE,YAAY,CAAC;QACnC,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,kBAAkB,EAAE,YAAY,CAAC;QAClC,CAAC,gBAAgB,EAAE,YAAY,CAAC;QAChC,CAAC,qBAAqB,EAAE,YAAY,CAAC;QACrC,CAAC,oBAAoB,EAAE,aAAa,CAAC;QACrC,CAAC,UAAU,EAAE,QAAQ,CAAC;QACtB,CAAC,aAAa,EAAE,aAAa,CAAC;QAC9B,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,SAAS,EAAE,QAAQ,CAAC;KACtB,CAAC;IAEF,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CACtB,8CAA8C,EAC9C,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,aAAa,CAC1B,IAAI,YAAY,CAAC,SAAsB,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAC/D,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC,CACF,CAAC;IAEF,MAAM,eAAe,GAAiC;QACpD,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;QAC9B,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC;QACrC,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;QAC5B,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;QACpC,CAAC,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC;QACvC,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;QAC/B,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;QAClC,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;QAC5B,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACzB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QACxB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACzB,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;QAC9B,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;QACjC,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC;QACtC,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC;QACvC,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;KAC7B,CAAC;IAEF,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CACtB,4CAA4C,EAC5C,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC,CACF,CAAC;IAEF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CACJ,gBAAgB,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CACtE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CACJ,gBAAgB,CACd,IAAI,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAC1D,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CACJ,gBAAgB,CACd,IAAI,YAAY,CAAC,iBAAiB,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CACvE,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CACJ,gBAAgB,CACd,IAAI,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CACrD,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5E,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,GAAG,GAAG,IAAI,YAAY,CAC1B,aAAa,EACb,qBAAqB,EACrB,IAAI,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAC9B,wCAAwC,CACzC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,IAAI,CACtE,kCAAkC,CACnC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CACpD,oDAAoD,CACrD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QACvD,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/gen/errors.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { ConnectError, Code } from "@connectrpc/connect";
|
|
3
|
+
import { StigmerError, wrapError, isNotFound, isUnauthenticated, isPermissionDenied, isRetryable, } from "../../gen/errors";
|
|
4
|
+
describe("StigmerError", () => {
|
|
5
|
+
it("has name 'StigmerError'", () => {
|
|
6
|
+
const err = new StigmerError("not-found", "resource missing", Code.NotFound);
|
|
7
|
+
expect(err.name).toBe("StigmerError");
|
|
8
|
+
});
|
|
9
|
+
it("inherits from Error", () => {
|
|
10
|
+
const err = new StigmerError("internal", "boom", Code.Internal);
|
|
11
|
+
expect(err).toBeInstanceOf(Error);
|
|
12
|
+
});
|
|
13
|
+
it("exposes code and connectCode", () => {
|
|
14
|
+
const err = new StigmerError("unauthenticated", "bad token", Code.Unauthenticated);
|
|
15
|
+
expect(err.code).toBe("unauthenticated");
|
|
16
|
+
expect(err.connectCode).toBe(Code.Unauthenticated);
|
|
17
|
+
expect(err.message).toBe("bad token");
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
describe("wrapError", () => {
|
|
21
|
+
const connectCodeMappings = [
|
|
22
|
+
[Code.NotFound, "not-found"],
|
|
23
|
+
[Code.PermissionDenied, "permission-denied"],
|
|
24
|
+
[Code.Unauthenticated, "unauthenticated"],
|
|
25
|
+
[Code.InvalidArgument, "invalid-argument"],
|
|
26
|
+
[Code.AlreadyExists, "already-exists"],
|
|
27
|
+
[Code.ResourceExhausted, "resource-exhausted"],
|
|
28
|
+
[Code.FailedPrecondition, "failed-precondition"],
|
|
29
|
+
[Code.Internal, "internal"],
|
|
30
|
+
[Code.Unavailable, "unavailable"],
|
|
31
|
+
[Code.Canceled, "cancelled"],
|
|
32
|
+
];
|
|
33
|
+
it.each(connectCodeMappings)("maps ConnectError code %i to ErrorCode '%s'", (connectCode, expectedErrorCode) => {
|
|
34
|
+
const connectErr = new ConnectError("test", connectCode);
|
|
35
|
+
const result = wrapError(connectErr);
|
|
36
|
+
expect(result).toBeInstanceOf(StigmerError);
|
|
37
|
+
expect(result.code).toBe(expectedErrorCode);
|
|
38
|
+
});
|
|
39
|
+
it("maps unmapped ConnectError codes to 'unknown'", () => {
|
|
40
|
+
const connectErr = new ConnectError("test", 0);
|
|
41
|
+
const result = wrapError(connectErr);
|
|
42
|
+
expect(result.code).toBe("unknown");
|
|
43
|
+
});
|
|
44
|
+
it("passes through StigmerError unchanged", () => {
|
|
45
|
+
const original = new StigmerError("not-found", "gone", Code.NotFound);
|
|
46
|
+
const result = wrapError(original);
|
|
47
|
+
expect(result).toBe(original);
|
|
48
|
+
});
|
|
49
|
+
it("wraps plain Error as 'unknown'", () => {
|
|
50
|
+
const result = wrapError(new Error("something broke"));
|
|
51
|
+
expect(result).toBeInstanceOf(StigmerError);
|
|
52
|
+
expect(result.code).toBe("unknown");
|
|
53
|
+
expect(result.message).toBe("something broke");
|
|
54
|
+
});
|
|
55
|
+
it("wraps string as 'unknown'", () => {
|
|
56
|
+
const result = wrapError("raw string error");
|
|
57
|
+
expect(result).toBeInstanceOf(StigmerError);
|
|
58
|
+
expect(result.code).toBe("unknown");
|
|
59
|
+
expect(result.message).toBe("raw string error");
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
describe("predicates", () => {
|
|
63
|
+
it("isNotFound returns true for not-found StigmerError", () => {
|
|
64
|
+
expect(isNotFound(new StigmerError("not-found", "x", Code.NotFound))).toBe(true);
|
|
65
|
+
});
|
|
66
|
+
it("isNotFound returns false for other codes", () => {
|
|
67
|
+
expect(isNotFound(new StigmerError("internal", "x", Code.Internal))).toBe(false);
|
|
68
|
+
});
|
|
69
|
+
it("isNotFound returns false for non-StigmerError", () => {
|
|
70
|
+
expect(isNotFound(new Error("not found"))).toBe(false);
|
|
71
|
+
});
|
|
72
|
+
it("isUnauthenticated returns true for unauthenticated StigmerError", () => {
|
|
73
|
+
expect(isUnauthenticated(new StigmerError("unauthenticated", "x", Code.Unauthenticated))).toBe(true);
|
|
74
|
+
});
|
|
75
|
+
it("isUnauthenticated returns false for other codes", () => {
|
|
76
|
+
expect(isUnauthenticated(new StigmerError("not-found", "x", Code.NotFound))).toBe(false);
|
|
77
|
+
});
|
|
78
|
+
it("isPermissionDenied returns true for permission-denied StigmerError", () => {
|
|
79
|
+
expect(isPermissionDenied(new StigmerError("permission-denied", "x", Code.PermissionDenied))).toBe(true);
|
|
80
|
+
});
|
|
81
|
+
it("isPermissionDenied returns false for other codes", () => {
|
|
82
|
+
expect(isPermissionDenied(new StigmerError("internal", "x", Code.Internal))).toBe(false);
|
|
83
|
+
});
|
|
84
|
+
it("isRetryable returns true for internal", () => {
|
|
85
|
+
expect(isRetryable(new StigmerError("internal", "x", Code.Internal))).toBe(true);
|
|
86
|
+
});
|
|
87
|
+
it("isRetryable returns true for unavailable", () => {
|
|
88
|
+
expect(isRetryable(new StigmerError("unavailable", "x", Code.Unavailable))).toBe(true);
|
|
89
|
+
});
|
|
90
|
+
it("isRetryable returns false for not-found", () => {
|
|
91
|
+
expect(isRetryable(new StigmerError("not-found", "x", Code.NotFound))).toBe(false);
|
|
92
|
+
});
|
|
93
|
+
it("isRetryable returns false for non-StigmerError", () => {
|
|
94
|
+
expect(isRetryable(new Error("server error"))).toBe(false);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=errors.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../../src/__tests__/gen/errors.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proto-utils.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/gen/proto-utils.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { stripUndefined } from "../../gen/proto-utils";
|
|
3
|
+
describe("stripUndefined", () => {
|
|
4
|
+
it("removes keys with undefined values", () => {
|
|
5
|
+
const result = stripUndefined({ a: 1, b: undefined, c: "hello" });
|
|
6
|
+
expect(result).toEqual({ a: 1, c: "hello" });
|
|
7
|
+
expect("b" in result).toBe(false);
|
|
8
|
+
});
|
|
9
|
+
it("preserves null values (falsy but defined)", () => {
|
|
10
|
+
const result = stripUndefined({ a: null });
|
|
11
|
+
expect(result).toEqual({ a: null });
|
|
12
|
+
});
|
|
13
|
+
it("preserves 0 (falsy but defined)", () => {
|
|
14
|
+
const result = stripUndefined({ count: 0 });
|
|
15
|
+
expect(result).toEqual({ count: 0 });
|
|
16
|
+
});
|
|
17
|
+
it("preserves empty string (falsy but defined)", () => {
|
|
18
|
+
const result = stripUndefined({ name: "" });
|
|
19
|
+
expect(result).toEqual({ name: "" });
|
|
20
|
+
});
|
|
21
|
+
it("preserves false (falsy but defined)", () => {
|
|
22
|
+
const result = stripUndefined({ enabled: false });
|
|
23
|
+
expect(result).toEqual({ enabled: false });
|
|
24
|
+
});
|
|
25
|
+
it("returns empty object when all values are undefined", () => {
|
|
26
|
+
const result = stripUndefined({ a: undefined, b: undefined });
|
|
27
|
+
expect(result).toEqual({});
|
|
28
|
+
});
|
|
29
|
+
it("returns all keys when nothing is undefined", () => {
|
|
30
|
+
const input = { x: 1, y: "two", z: true };
|
|
31
|
+
const result = stripUndefined(input);
|
|
32
|
+
expect(result).toEqual(input);
|
|
33
|
+
});
|
|
34
|
+
it("preserves nested objects without deep-stripping", () => {
|
|
35
|
+
const nested = { inner: undefined };
|
|
36
|
+
const result = stripUndefined({ outer: nested });
|
|
37
|
+
expect(result).toEqual({ outer: nested });
|
|
38
|
+
expect(result.outer).toBe(nested);
|
|
39
|
+
});
|
|
40
|
+
it("returns empty object for empty input", () => {
|
|
41
|
+
const result = stripUndefined({});
|
|
42
|
+
expect(result).toEqual({});
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=proto-utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proto-utils.test.js","sourceRoot":"","sources":["../../../src/__tests__/gen/proto-utils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-client.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/gen/session-client.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach } from "vitest";
|
|
2
|
+
import { SessionClient } from "../../gen/session";
|
|
3
|
+
function createCapturingTransport() {
|
|
4
|
+
const captured = [];
|
|
5
|
+
const transport = {
|
|
6
|
+
unary: async (method, _signal, _timeout, _header, message) => ({
|
|
7
|
+
header: new Headers(),
|
|
8
|
+
trailer: new Headers(),
|
|
9
|
+
message,
|
|
10
|
+
}),
|
|
11
|
+
stream: async () => {
|
|
12
|
+
throw new Error("streaming not implemented in test transport");
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
const originalUnary = transport.unary;
|
|
16
|
+
transport.unary = async (method, signal, timeout, header, message, ...rest) => {
|
|
17
|
+
captured.push({ methodName: method.name, message });
|
|
18
|
+
return originalUnary(method, signal, timeout, header, message, ...rest);
|
|
19
|
+
};
|
|
20
|
+
return { transport, captured };
|
|
21
|
+
}
|
|
22
|
+
describe("SessionClient proto serialization", () => {
|
|
23
|
+
let client;
|
|
24
|
+
let captured;
|
|
25
|
+
beforeEach(() => {
|
|
26
|
+
const ctx = createCapturingTransport();
|
|
27
|
+
client = new SessionClient(ctx.transport);
|
|
28
|
+
captured = ctx.captured;
|
|
29
|
+
});
|
|
30
|
+
it("sets apiVersion and kind on the proto", async () => {
|
|
31
|
+
await client.create({ name: "test-session", org: "my-org" });
|
|
32
|
+
const proto = captured[0].message;
|
|
33
|
+
expect(proto.apiVersion).toBe("agentic.stigmer.ai/v1");
|
|
34
|
+
expect(proto.kind).toBe("Session");
|
|
35
|
+
});
|
|
36
|
+
it("sets required fields on metadata", async () => {
|
|
37
|
+
await client.create({ name: "my-session", org: "acme" });
|
|
38
|
+
const proto = captured[0].message;
|
|
39
|
+
expect(proto.metadata?.name).toBe("my-session");
|
|
40
|
+
expect(proto.metadata?.org).toBe("acme");
|
|
41
|
+
});
|
|
42
|
+
it("sets optional spec fields when provided", async () => {
|
|
43
|
+
const input = {
|
|
44
|
+
name: "s1",
|
|
45
|
+
org: "o1",
|
|
46
|
+
agentInstanceId: "ai-123",
|
|
47
|
+
subject: "Help with deployment",
|
|
48
|
+
threadId: "thread-abc",
|
|
49
|
+
sandboxId: "sandbox-xyz",
|
|
50
|
+
};
|
|
51
|
+
await client.create(input);
|
|
52
|
+
const proto = captured[0].message;
|
|
53
|
+
expect(proto.spec?.agentInstanceId).toBe("ai-123");
|
|
54
|
+
expect(proto.spec?.subject).toBe("Help with deployment");
|
|
55
|
+
expect(proto.spec?.threadId).toBe("thread-abc");
|
|
56
|
+
expect(proto.spec?.sandboxId).toBe("sandbox-xyz");
|
|
57
|
+
});
|
|
58
|
+
it("does not overwrite protobuf defaults when optional fields are omitted", async () => {
|
|
59
|
+
await client.create({ name: "minimal", org: "org" });
|
|
60
|
+
const proto = captured[0].message;
|
|
61
|
+
expect(proto.spec?.agentInstanceId).toBe("");
|
|
62
|
+
expect(proto.spec?.subject).toBe("");
|
|
63
|
+
expect(proto.spec?.threadId).toBe("");
|
|
64
|
+
expect(proto.spec?.sandboxId).toBe("");
|
|
65
|
+
});
|
|
66
|
+
it("serializes metadata map when provided", async () => {
|
|
67
|
+
await client.create({
|
|
68
|
+
name: "s1",
|
|
69
|
+
org: "o1",
|
|
70
|
+
metadata: { env: "production", region: "us-east-1" },
|
|
71
|
+
});
|
|
72
|
+
const proto = captured[0].message;
|
|
73
|
+
expect(proto.spec?.metadata).toEqual({
|
|
74
|
+
env: "production",
|
|
75
|
+
region: "us-east-1",
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
it("serializes workspace entries with git repo source", async () => {
|
|
79
|
+
await client.create({
|
|
80
|
+
name: "s1",
|
|
81
|
+
org: "o1",
|
|
82
|
+
workspaceEntries: [
|
|
83
|
+
{
|
|
84
|
+
name: "my-repo",
|
|
85
|
+
source: {
|
|
86
|
+
gitRepo: {
|
|
87
|
+
url: "https://github.com/example/repo.git",
|
|
88
|
+
branch: "main",
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
});
|
|
94
|
+
const proto = captured[0].message;
|
|
95
|
+
const entries = proto.spec?.workspaceEntries;
|
|
96
|
+
expect(entries).toHaveLength(1);
|
|
97
|
+
expect(entries[0].name).toBe("my-repo");
|
|
98
|
+
const source = entries[0].source;
|
|
99
|
+
expect(source?.source?.case).toBe("gitRepo");
|
|
100
|
+
if (source?.source?.case === "gitRepo") {
|
|
101
|
+
expect(source.source.value.url).toBe("https://github.com/example/repo.git");
|
|
102
|
+
expect(source.source.value.branch).toBe("main");
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
it("serializes workspace entries with local path source", async () => {
|
|
106
|
+
await client.create({
|
|
107
|
+
name: "s1",
|
|
108
|
+
org: "o1",
|
|
109
|
+
workspaceEntries: [
|
|
110
|
+
{
|
|
111
|
+
name: "local",
|
|
112
|
+
source: {
|
|
113
|
+
localPath: { path: "/home/user/project" },
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
});
|
|
118
|
+
const proto = captured[0].message;
|
|
119
|
+
const entries = proto.spec?.workspaceEntries;
|
|
120
|
+
expect(entries).toHaveLength(1);
|
|
121
|
+
const source = entries[0].source;
|
|
122
|
+
expect(source?.source?.case).toBe("localPath");
|
|
123
|
+
if (source?.source?.case === "localPath") {
|
|
124
|
+
expect(source.source.value.path).toBe("/home/user/project");
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
it("routes create through the command controller", async () => {
|
|
128
|
+
await client.create({ name: "s1", org: "o1" });
|
|
129
|
+
expect(captured[0].methodName).toBe("create");
|
|
130
|
+
});
|
|
131
|
+
it("routes apply through the command controller", async () => {
|
|
132
|
+
await client.apply({ name: "s1", org: "o1" });
|
|
133
|
+
expect(captured[0].methodName).toBe("apply");
|
|
134
|
+
});
|
|
135
|
+
it("routes get through the query controller with SessionId", async () => {
|
|
136
|
+
await client.get("session-id-123");
|
|
137
|
+
const message = captured[0].message;
|
|
138
|
+
expect(captured[0].methodName).toBe("get");
|
|
139
|
+
expect(message.value).toBe("session-id-123");
|
|
140
|
+
});
|
|
141
|
+
it("routes delete through the command controller with SessionId", async () => {
|
|
142
|
+
await client.delete("session-id-456");
|
|
143
|
+
const message = captured[0].message;
|
|
144
|
+
expect(captured[0].methodName).toBe("delete");
|
|
145
|
+
expect(message.value).toBe("session-id-456");
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
//# sourceMappingURL=session-client.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-client.test.js","sourceRoot":"","sources":["../../../src/__tests__/gen/session-client.test.ts"],"names":[],"mappings":"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"}
|
package/gen/agent.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type ListParams, type ListResult, type EnvSpecInput, type ResourceRef } from "./types";
|
|
2
2
|
import { type Transport } from "@connectrpc/connect";
|
|
3
3
|
import { type Agent } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
|
|
4
|
+
import { type GetDefaultAgentRequest } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/io_pb";
|
|
5
|
+
import { type UpdateVisibilityInput } from "@stigmer/protos/ai/stigmer/commons/apiresource/io_pb";
|
|
4
6
|
/** Provides operations on agent resources. */
|
|
5
7
|
export declare class AgentClient {
|
|
6
8
|
private readonly command;
|
|
@@ -10,15 +12,19 @@ export declare class AgentClient {
|
|
|
10
12
|
apply(input: AgentInput): Promise<Agent>;
|
|
11
13
|
create(input: AgentInput): Promise<Agent>;
|
|
12
14
|
update(input: AgentInput): Promise<Agent>;
|
|
15
|
+
updateVisibility(input: UpdateVisibilityInput): Promise<Agent>;
|
|
13
16
|
delete(id: string): Promise<Agent>;
|
|
14
17
|
get(id: string): Promise<Agent>;
|
|
15
18
|
getByReference(ref: ResourceRef): Promise<Agent>;
|
|
19
|
+
getDefault(input: GetDefaultAgentRequest): Promise<Agent>;
|
|
16
20
|
list(params: ListParams): Promise<ListResult>;
|
|
17
21
|
}
|
|
18
22
|
/** Input for creating/updating a Agent. */
|
|
19
23
|
export interface AgentInput {
|
|
20
24
|
name: string;
|
|
25
|
+
slug?: string;
|
|
21
26
|
org: string;
|
|
27
|
+
labels?: Record<string, string>;
|
|
22
28
|
description?: string;
|
|
23
29
|
iconUrl?: string;
|
|
24
30
|
instructions?: string;
|
package/gen/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/gen/agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/gen/agent.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhG,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,oDAAoD,CAAC;AAE7F,OAAO,EAA+C,KAAK,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAK7I,OAAO,EAA8B,KAAK,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAM9H,8CAA8C;AAC9C,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;IAChE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;gBAE1C,SAAS,EAAE,SAAS;IAM1B,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;IAMxC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;IAMzC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;IAMzC,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC;IAM9D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAMlC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAM/B,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAMhD,UAAU,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC;IAMzD,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAgBpD;AAED,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,CAAC,EAAE,yBAAyB,EAAE,CAAC;CACrD;AAED,+CAA+C;AAC/C,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,mCAAmC;AACnC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB"}
|