@sema-agent/sdk 0.0.46

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.
Files changed (160) hide show
  1. package/LICENSE +103 -0
  2. package/README.md +53 -0
  3. package/dist/client.d.ts +55 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +113 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/control-client.d.ts +36 -0
  8. package/dist/control-client.d.ts.map +1 -0
  9. package/dist/control-client.js +72 -0
  10. package/dist/control-client.js.map +1 -0
  11. package/dist/control-types.d.ts +282 -0
  12. package/dist/control-types.d.ts.map +1 -0
  13. package/dist/control-types.js +2 -0
  14. package/dist/control-types.js.map +1 -0
  15. package/dist/errors.d.ts +99 -0
  16. package/dist/errors.d.ts.map +1 -0
  17. package/dist/errors.js +190 -0
  18. package/dist/errors.js.map +1 -0
  19. package/dist/events.d.ts +87 -0
  20. package/dist/events.d.ts.map +1 -0
  21. package/dist/events.js +4 -0
  22. package/dist/events.js.map +1 -0
  23. package/dist/idempotency.d.ts +3 -0
  24. package/dist/idempotency.d.ts.map +1 -0
  25. package/dist/idempotency.js +9 -0
  26. package/dist/idempotency.js.map +1 -0
  27. package/dist/index.d.ts +23 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +11 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/resources/approvals.d.ts +40 -0
  32. package/dist/resources/approvals.d.ts.map +1 -0
  33. package/dist/resources/approvals.js +83 -0
  34. package/dist/resources/approvals.js.map +1 -0
  35. package/dist/resources/assistant.d.ts +23 -0
  36. package/dist/resources/assistant.d.ts.map +1 -0
  37. package/dist/resources/assistant.js +59 -0
  38. package/dist/resources/assistant.js.map +1 -0
  39. package/dist/resources/control/auth-providers.d.ts +18 -0
  40. package/dist/resources/control/auth-providers.d.ts.map +1 -0
  41. package/dist/resources/control/auth-providers.js +16 -0
  42. package/dist/resources/control/auth-providers.js.map +1 -0
  43. package/dist/resources/control/config.d.ts +31 -0
  44. package/dist/resources/control/config.d.ts.map +1 -0
  45. package/dist/resources/control/config.js +28 -0
  46. package/dist/resources/control/config.js.map +1 -0
  47. package/dist/resources/control/fleet.d.ts +31 -0
  48. package/dist/resources/control/fleet.d.ts.map +1 -0
  49. package/dist/resources/control/fleet.js +31 -0
  50. package/dist/resources/control/fleet.js.map +1 -0
  51. package/dist/resources/control/images.d.ts +19 -0
  52. package/dist/resources/control/images.d.ts.map +1 -0
  53. package/dist/resources/control/images.js +28 -0
  54. package/dist/resources/control/images.js.map +1 -0
  55. package/dist/resources/control/lifecycle.d.ts +15 -0
  56. package/dist/resources/control/lifecycle.d.ts.map +1 -0
  57. package/dist/resources/control/lifecycle.js +15 -0
  58. package/dist/resources/control/lifecycle.js.map +1 -0
  59. package/dist/resources/control/publish.d.ts +20 -0
  60. package/dist/resources/control/publish.d.ts.map +1 -0
  61. package/dist/resources/control/publish.js +20 -0
  62. package/dist/resources/control/publish.js.map +1 -0
  63. package/dist/resources/control/secrets.d.ts +27 -0
  64. package/dist/resources/control/secrets.d.ts.map +1 -0
  65. package/dist/resources/control/secrets.js +26 -0
  66. package/dist/resources/control/secrets.js.map +1 -0
  67. package/dist/resources/control/users.d.ts +27 -0
  68. package/dist/resources/control/users.d.ts.map +1 -0
  69. package/dist/resources/control/users.js +23 -0
  70. package/dist/resources/control/users.js.map +1 -0
  71. package/dist/resources/control/versioning.d.ts +21 -0
  72. package/dist/resources/control/versioning.d.ts.map +1 -0
  73. package/dist/resources/control/versioning.js +23 -0
  74. package/dist/resources/control/versioning.js.map +1 -0
  75. package/dist/resources/control/workers.d.ts +18 -0
  76. package/dist/resources/control/workers.d.ts.map +1 -0
  77. package/dist/resources/control/workers.js +17 -0
  78. package/dist/resources/control/workers.js.map +1 -0
  79. package/dist/resources/elicitations.d.ts +28 -0
  80. package/dist/resources/elicitations.d.ts.map +1 -0
  81. package/dist/resources/elicitations.js +15 -0
  82. package/dist/resources/elicitations.js.map +1 -0
  83. package/dist/resources/fleet.d.ts +65 -0
  84. package/dist/resources/fleet.d.ts.map +1 -0
  85. package/dist/resources/fleet.js +55 -0
  86. package/dist/resources/fleet.js.map +1 -0
  87. package/dist/resources/images.d.ts +24 -0
  88. package/dist/resources/images.d.ts.map +1 -0
  89. package/dist/resources/images.js +28 -0
  90. package/dist/resources/images.js.map +1 -0
  91. package/dist/resources/leader.d.ts +19 -0
  92. package/dist/resources/leader.d.ts.map +1 -0
  93. package/dist/resources/leader.js +18 -0
  94. package/dist/resources/leader.js.map +1 -0
  95. package/dist/resources/memory.d.ts +29 -0
  96. package/dist/resources/memory.d.ts.map +1 -0
  97. package/dist/resources/memory.js +36 -0
  98. package/dist/resources/memory.js.map +1 -0
  99. package/dist/resources/models.d.ts +13 -0
  100. package/dist/resources/models.d.ts.map +1 -0
  101. package/dist/resources/models.js +10 -0
  102. package/dist/resources/models.js.map +1 -0
  103. package/dist/resources/policy.d.ts +10 -0
  104. package/dist/resources/policy.d.ts.map +1 -0
  105. package/dist/resources/policy.js +10 -0
  106. package/dist/resources/policy.js.map +1 -0
  107. package/dist/resources/questions.d.ts +38 -0
  108. package/dist/resources/questions.d.ts.map +1 -0
  109. package/dist/resources/questions.js +15 -0
  110. package/dist/resources/questions.js.map +1 -0
  111. package/dist/resources/runs.d.ts +43 -0
  112. package/dist/resources/runs.d.ts.map +1 -0
  113. package/dist/resources/runs.js +72 -0
  114. package/dist/resources/runs.js.map +1 -0
  115. package/dist/resources/session-sync.d.ts +38 -0
  116. package/dist/resources/session-sync.d.ts.map +1 -0
  117. package/dist/resources/session-sync.js +97 -0
  118. package/dist/resources/session-sync.js.map +1 -0
  119. package/dist/resources/sessions.d.ts +46 -0
  120. package/dist/resources/sessions.d.ts.map +1 -0
  121. package/dist/resources/sessions.js +70 -0
  122. package/dist/resources/sessions.js.map +1 -0
  123. package/dist/resources/tasks.d.ts +19 -0
  124. package/dist/resources/tasks.d.ts.map +1 -0
  125. package/dist/resources/tasks.js +53 -0
  126. package/dist/resources/tasks.js.map +1 -0
  127. package/dist/resources/trace.d.ts +43 -0
  128. package/dist/resources/trace.d.ts.map +1 -0
  129. package/dist/resources/trace.js +65 -0
  130. package/dist/resources/trace.js.map +1 -0
  131. package/dist/resources/usage.d.ts +10 -0
  132. package/dist/resources/usage.d.ts.map +1 -0
  133. package/dist/resources/usage.js +10 -0
  134. package/dist/resources/usage.js.map +1 -0
  135. package/dist/resources/workflows.d.ts +20 -0
  136. package/dist/resources/workflows.d.ts.map +1 -0
  137. package/dist/resources/workflows.js +43 -0
  138. package/dist/resources/workflows.js.map +1 -0
  139. package/dist/settings.d.ts +44 -0
  140. package/dist/settings.d.ts.map +1 -0
  141. package/dist/settings.js +2 -0
  142. package/dist/settings.js.map +1 -0
  143. package/dist/sse.d.ts +26 -0
  144. package/dist/sse.d.ts.map +1 -0
  145. package/dist/sse.js +244 -0
  146. package/dist/sse.js.map +1 -0
  147. package/dist/sync.d.ts +34 -0
  148. package/dist/sync.d.ts.map +1 -0
  149. package/dist/sync.js +143 -0
  150. package/dist/sync.js.map +1 -0
  151. package/dist/transport.d.ts +37 -0
  152. package/dist/transport.d.ts.map +1 -0
  153. package/dist/transport.js +134 -0
  154. package/dist/transport.js.map +1 -0
  155. package/dist/types.d.ts +574 -0
  156. package/dist/types.d.ts.map +1 -0
  157. package/dist/types.js +2 -0
  158. package/dist/types.js.map +1 -0
  159. package/openapi.yaml +3434 -0
  160. package/package.json +42 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leader.d.ts","sourceRoot":"","sources":["../../src/resources/leader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAEnC,MAAM,CAAC,GAAG,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,IAAI,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAKrL,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;CAIxF"}
@@ -0,0 +1,18 @@
1
+ export class LeaderResource {
2
+ t;
3
+ constructor(t) {
4
+ this.t = t;
5
+ }
6
+ async create(req, opts) {
7
+ void this.t;
8
+ void req;
9
+ void opts;
10
+ throw new Error("TODO(M3+): leader.create → POST /v1/leader (gated v2 pipeline; NOT the door-B brain)");
11
+ }
12
+ async get(leaderRunId, _opts) {
13
+ void this.t;
14
+ void leaderRunId;
15
+ throw new Error("TODO(M3+): leader.get → GET /v1/leader/:id");
16
+ }
17
+ }
18
+ //# sourceMappingURL=leader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leader.js","sourceRoot":"","sources":["../../src/resources/leader.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;IAAG,CAAC;IAE7C,KAAK,CAAC,MAAM,CAAC,GAAoF,EAAE,IAA+D;QAChK,KAAK,IAAI,CAAC,CAAC,CAAC;QAAC,KAAK,GAAG,CAAC;QAAC,KAAK,IAAI,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;IAC1G,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,WAAmB,EAAE,KAAgC;QAC7D,KAAK,IAAI,CAAC,CAAC,CAAC;QAAC,KAAK,WAAW,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ import type { Transport } from "../transport.js";
2
+ import type { MemoryRecord, MemoryWriteAck } from "../types.js";
3
+ export declare class MemoryResource {
4
+ private readonly t;
5
+ constructor(t: Transport);
6
+ get(opts?: {
7
+ signal?: AbortSignal;
8
+ }): Promise<MemoryRecord>;
9
+ clear(opts?: {
10
+ signal?: AbortSignal;
11
+ }): Promise<{
12
+ ok: boolean;
13
+ scope: string;
14
+ }>;
15
+ append(sessionId: string, body: {
16
+ content: string;
17
+ }, opts?: {
18
+ signal?: AbortSignal;
19
+ }): Promise<MemoryWriteAck>;
20
+ edit(sessionId: string, noteId: string, body: {
21
+ content: string;
22
+ }, opts?: {
23
+ signal?: AbortSignal;
24
+ }): Promise<MemoryWriteAck>;
25
+ remove(sessionId: string, noteId: string, opts?: {
26
+ signal?: AbortSignal;
27
+ }): Promise<MemoryWriteAck>;
28
+ }
29
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/resources/memory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEhE,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAGnC,GAAG,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAM3D,KAAK,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAS/E,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAW9G,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAW5H,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;CAO1G"}
@@ -0,0 +1,36 @@
1
+ export class MemoryResource {
2
+ t;
3
+ constructor(t) {
4
+ this.t = t;
5
+ }
6
+ async get(opts) {
7
+ return this.t.request({ method: "GET", path: "/v1/memory", signal: opts?.signal });
8
+ }
9
+ async clear(opts) {
10
+ return this.t.request({ method: "DELETE", path: "/v1/memory", signal: opts?.signal });
11
+ }
12
+ async append(sessionId, body, opts) {
13
+ return this.t.request({
14
+ method: "POST",
15
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/memory`,
16
+ body,
17
+ signal: opts?.signal,
18
+ });
19
+ }
20
+ async edit(sessionId, noteId, body, opts) {
21
+ return this.t.request({
22
+ method: "PATCH",
23
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/memory/${encodeURIComponent(noteId)}`,
24
+ body,
25
+ signal: opts?.signal,
26
+ });
27
+ }
28
+ async remove(sessionId, noteId, opts) {
29
+ return this.t.request({
30
+ method: "DELETE",
31
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/memory/${encodeURIComponent(noteId)}`,
32
+ signal: opts?.signal,
33
+ });
34
+ }
35
+ }
36
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/resources/memory.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;IAAG,CAAC;IAG7C,KAAK,CAAC,GAAG,CAAC,IAA+B;QACvC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAe,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACnG,CAAC;IAID,KAAK,CAAC,KAAK,CAAC,IAA+B;QACzC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAiC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACxH,CAAC;IAOD,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,IAAyB,EAAE,IAA+B;QACxF,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAiB;YACpC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,SAAS;YAC5D,IAAI;YACJ,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAID,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,MAAc,EAAE,IAAyB,EAAE,IAA+B;QACtG,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAiB;YACpC,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,EAAE;YAC1F,IAAI;YACJ,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAID,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,MAAc,EAAE,IAA+B;QAC7E,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAiB;YACpC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,EAAE;YAC1F,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { Transport } from "../transport.js";
2
+ import type { ModelInfo } from "../types.js";
3
+ export declare class ModelsResource {
4
+ private readonly t;
5
+ constructor(t: Transport);
6
+ list(opts?: {
7
+ signal?: AbortSignal;
8
+ }): Promise<{
9
+ models: ModelInfo[];
10
+ default: string;
11
+ }>;
12
+ }
13
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/resources/models.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAMnC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAG/F"}
@@ -0,0 +1,10 @@
1
+ export class ModelsResource {
2
+ t;
3
+ constructor(t) {
4
+ this.t = t;
5
+ }
6
+ async list(opts) {
7
+ return this.t.request({ method: "GET", path: "/v1/models", signal: opts?.signal });
8
+ }
9
+ }
10
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/resources/models.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;IAAG,CAAC;IAM7C,KAAK,CAAC,IAAI,CAAC,IAA+B;QACxC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { Transport } from "../transport.js";
2
+ import type { PolicyInfo } from "../types.js";
3
+ export declare class PolicyResource {
4
+ private readonly t;
5
+ constructor(t: Transport);
6
+ get(opts?: {
7
+ signal?: AbortSignal;
8
+ }): Promise<PolicyInfo>;
9
+ }
10
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/resources/policy.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAGnC,GAAG,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;CAGhE"}
@@ -0,0 +1,10 @@
1
+ export class PolicyResource {
2
+ t;
3
+ constructor(t) {
4
+ this.t = t;
5
+ }
6
+ async get(opts) {
7
+ return this.t.request({ method: "GET", path: "/v1/policy", signal: opts?.signal });
8
+ }
9
+ }
10
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/resources/policy.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;IAAG,CAAC;IAG7C,KAAK,CAAC,GAAG,CAAC,IAA+B;QACvC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;CACF"}
@@ -0,0 +1,38 @@
1
+ import type { Transport } from "../transport.js";
2
+ export interface AskQuestionOption {
3
+ label: string;
4
+ description: string;
5
+ }
6
+ export interface AskQuestion {
7
+ question: string;
8
+ header: string;
9
+ options: AskQuestionOption[];
10
+ multiSelect?: boolean;
11
+ }
12
+ export interface QuestionFrame {
13
+ type: "question" | "question_complete";
14
+ questionId: string;
15
+ questions?: AskQuestion[];
16
+ outcome?: "answered" | "unanswered";
17
+ [k: string]: unknown;
18
+ }
19
+ export interface QuestionAnswerItem {
20
+ header: string;
21
+ selected: string[];
22
+ note?: string;
23
+ }
24
+ export interface QuestionAnswer {
25
+ answers: QuestionAnswerItem[];
26
+ }
27
+ export interface QuestionRespondAck {
28
+ questionId: string;
29
+ delivery: "applied";
30
+ }
31
+ export declare class QuestionsResource {
32
+ private readonly t;
33
+ constructor(t: Transport);
34
+ respond(id: string, answer: QuestionAnswer, opts?: {
35
+ signal?: AbortSignal;
36
+ }): Promise<QuestionRespondAck>;
37
+ }
38
+ //# sourceMappingURL=questions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/resources/questions.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,MAAM,WAAW,iBAAiB;IAEhC,KAAK,EAAE,MAAM,CAAC;IAEd,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,WAAW;IAE1B,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAE7B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAKD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAAC;IAEvC,UAAU,EAAE,MAAM,CAAC;IAGnB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAG1B,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACpC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAKD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IAGf,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAKD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAGD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAWnC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAQhH"}
@@ -0,0 +1,15 @@
1
+ export class QuestionsResource {
2
+ t;
3
+ constructor(t) {
4
+ this.t = t;
5
+ }
6
+ async respond(id, answer, opts) {
7
+ return this.t.request({
8
+ method: "POST",
9
+ path: `/v1/questions/${encodeURIComponent(id)}/respond`,
10
+ body: answer,
11
+ signal: opts?.signal,
12
+ });
13
+ }
14
+ }
15
+ //# sourceMappingURL=questions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/resources/questions.ts"],"names":[],"mappings":"AAqFA,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;IAAG,CAAC;IAW7C,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,MAAsB,EAAE,IAA+B;QAC/E,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAqB;YACxC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,iBAAiB,kBAAkB,CAAC,EAAE,CAAC,UAAU;YACvD,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,43 @@
1
+ import type { Transport } from "../transport.js";
2
+ import type { TaskRequest, RunReceipt, RunRecord, CancelAck } from "../types.js";
3
+ import type { AgentEvent } from "../events.js";
4
+ export interface SubagentSteerReceipt {
5
+ taskId: string;
6
+ target: string;
7
+ status?: string;
8
+ delivery?: string;
9
+ note?: string;
10
+ }
11
+ export declare class RunsResource {
12
+ private readonly t;
13
+ constructor(t: Transport);
14
+ create(req: TaskRequest, opts?: {
15
+ idempotencyKey?: string | null;
16
+ signal?: AbortSignal;
17
+ }): Promise<RunReceipt>;
18
+ get(taskId: string, opts?: {
19
+ signal?: AbortSignal;
20
+ }): Promise<RunRecord>;
21
+ cancel(taskId: string, opts?: {
22
+ signal?: AbortSignal;
23
+ }): Promise<CancelAck>;
24
+ detach(taskId: string, toolCallId: string, opts?: {
25
+ signal?: AbortSignal;
26
+ }): Promise<unknown>;
27
+ steer(taskId: string, steer: {
28
+ text: string;
29
+ mode?: "all" | "one-at-a-time";
30
+ }, opts?: {
31
+ signal?: AbortSignal;
32
+ }): Promise<unknown>;
33
+ steerSubagent(taskId: string, target: string, steer: {
34
+ content: string;
35
+ }, opts?: {
36
+ signal?: AbortSignal;
37
+ }): Promise<SubagentSteerReceipt>;
38
+ events(taskId: string, opts?: {
39
+ signal?: AbortSignal;
40
+ lastEventId?: string;
41
+ }): AsyncGenerator<AgentEvent>;
42
+ }
43
+ //# sourceMappingURL=runs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/resources/runs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAEnC,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAW9G,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAWxE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAe3E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB7F,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,GAAG,eAAe,CAAA;KAAE,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBjI,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAC1B,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAYzB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,UAAU,CAAC;CAiBjH"}
@@ -0,0 +1,72 @@
1
+ import { parseSse } from "../sse.js";
2
+ export class RunsResource {
3
+ t;
4
+ constructor(t) {
5
+ this.t = t;
6
+ }
7
+ async create(req, opts) {
8
+ return this.t.request({
9
+ method: "POST",
10
+ path: "/v1/runs",
11
+ body: req,
12
+ submit: true,
13
+ idempotencyKey: opts?.idempotencyKey,
14
+ signal: opts?.signal,
15
+ });
16
+ }
17
+ async get(taskId, opts) {
18
+ return this.t.request({
19
+ method: "GET",
20
+ path: `/v1/runs/${encodeURIComponent(taskId)}`,
21
+ signal: opts?.signal,
22
+ });
23
+ }
24
+ async cancel(taskId, opts) {
25
+ return this.t.request({
26
+ method: "POST",
27
+ path: `/v1/runs/${encodeURIComponent(taskId)}/cancel`,
28
+ signal: opts?.signal,
29
+ });
30
+ }
31
+ async detach(taskId, toolCallId, opts) {
32
+ return this.t.request({
33
+ method: "POST",
34
+ path: `/v1/runs/${encodeURIComponent(taskId)}/detach`,
35
+ body: { toolCallId },
36
+ signal: opts?.signal,
37
+ });
38
+ }
39
+ async steer(taskId, steer, opts) {
40
+ return this.t.request({
41
+ method: "POST",
42
+ path: `/v1/runs/${encodeURIComponent(taskId)}/steer`,
43
+ body: steer,
44
+ signal: opts?.signal,
45
+ });
46
+ }
47
+ async steerSubagent(taskId, target, steer, opts) {
48
+ return this.t.request({
49
+ method: "POST",
50
+ path: `/v1/runs/${encodeURIComponent(taskId)}/subagents/${encodeURIComponent(target)}/steer`,
51
+ body: steer,
52
+ signal: opts?.signal,
53
+ });
54
+ }
55
+ async *events(taskId, opts) {
56
+ let first = opts?.lastEventId;
57
+ yield* parseSse((lastEventId) => {
58
+ const id = lastEventId ?? first;
59
+ first = undefined;
60
+ const o = {
61
+ method: "GET",
62
+ path: `/v1/runs/${encodeURIComponent(taskId)}/events`,
63
+ };
64
+ if (id)
65
+ o.lastEventId = id;
66
+ if (opts?.signal)
67
+ o.signal = opts.signal;
68
+ return this.t.openStream(o);
69
+ }, opts?.signal ? { signal: opts.signal } : undefined);
70
+ }
71
+ }
72
+ //# sourceMappingURL=runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/resources/runs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { Transport } from "../transport.js";
2
+ import type { SessionManifest, SyncEntry, SyncSnapshot, SessionRulesRecord, SyncAnchor, SyncRelation, ImportStaged, ImportCommitted } from "../types.js";
3
+ export declare class SessionSyncResource {
4
+ private readonly t;
5
+ constructor(t: Transport);
6
+ manifest(sessionId: string, opts?: {
7
+ signal?: AbortSignal;
8
+ }): Promise<SessionManifest>;
9
+ entries(sessionId: string, params?: {
10
+ afterSeq?: number;
11
+ }, opts?: {
12
+ signal?: AbortSignal;
13
+ }): AsyncGenerator<SyncEntry>;
14
+ getBlob(sessionId: string, key: string, hash: string, opts?: {
15
+ signal?: AbortSignal;
16
+ }): Promise<Uint8Array>;
17
+ putBlob(sessionId: string, hash: string, bytes: Uint8Array, opts?: {
18
+ signal?: AbortSignal;
19
+ }): Promise<void>;
20
+ plan(sessionId: string, body: {
21
+ entryIds: string[];
22
+ }, opts?: {
23
+ signal?: AbortSignal;
24
+ }): Promise<SyncRelation>;
25
+ import(sessionId: string, body: {
26
+ entryIds: string[];
27
+ snapshots: SyncSnapshot[];
28
+ policy: SessionRulesRecord[];
29
+ anchors: SyncAnchor[];
30
+ resolution?: "overwrite-dst";
31
+ }, opts?: {
32
+ signal?: AbortSignal;
33
+ }): Promise<ImportStaged>;
34
+ importEntries(sessionId: string, stagingId: string, entries: Iterable<SyncEntry> | AsyncIterable<SyncEntry>, opts?: {
35
+ signal?: AbortSignal;
36
+ }): Promise<ImportCommitted>;
37
+ }
38
+ //# sourceMappingURL=session-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-sync.d.ts","sourceRoot":"","sources":["../../src/resources/session-sync.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EAChB,MAAM,aAAa,CAAC;AAMrB,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAQnC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBrF,OAAO,CACZ,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAC9B,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,cAAc,CAAC,SAAS,CAAC;IAatB,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,UAAU,CAAC;IAmBhB,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,UAAU,EACjB,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,IAAI,CAAC;IAkBV,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,EAC5B,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,YAAY,CAAC;IAkBlB,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,EAAE,YAAY,EAAE,CAAC;QAC1B,MAAM,EAAE,kBAAkB,EAAE,CAAC;QAC7B,OAAO,EAAE,UAAU,EAAE,CAAC;QACtB,UAAU,CAAC,EAAE,eAAe,CAAC;KAC9B,EACD,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,YAAY,CAAC;IAiBlB,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,EACvD,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,eAAe,CAAC;CAY5B"}
@@ -0,0 +1,97 @@
1
+ import { toApiError } from "../errors.js";
2
+ import { parseNdjsonEntries } from "../sse.js";
3
+ const SHA256_HEX_RE = /^[0-9a-f]{64}$/;
4
+ export class SessionSyncResource {
5
+ t;
6
+ constructor(t) {
7
+ this.t = t;
8
+ }
9
+ async manifest(sessionId, opts) {
10
+ const out = await this.t.request({
11
+ method: "GET",
12
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/sync/manifest`,
13
+ signal: opts?.signal,
14
+ });
15
+ return out.manifest;
16
+ }
17
+ async *entries(sessionId, params, opts) {
18
+ let path = `/v1/sessions/${encodeURIComponent(sessionId)}/sync/entries`;
19
+ if (params?.afterSeq !== undefined)
20
+ path += `?afterSeq=${encodeURIComponent(String(params.afterSeq))}`;
21
+ const res = await this.t.openRaw({ method: "GET", path, accept: "application/x-ndjson", signal: opts?.signal });
22
+ if (!res.ok)
23
+ throw toApiError(res.status, await safeJson(res));
24
+ yield* parseNdjsonEntries(res, opts?.signal);
25
+ }
26
+ async getBlob(sessionId, key, hash, opts) {
27
+ if (!SHA256_HEX_RE.test(hash))
28
+ throw toApiError(400, { error: "blob hash must be 64 lowercase-hex chars" });
29
+ const res = await this.t.openRaw({
30
+ method: "GET",
31
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/sync/snapshots/${encodeURIComponent(key)}/blobs/${encodeURIComponent(hash)}`,
32
+ accept: "application/octet-stream",
33
+ signal: opts?.signal,
34
+ });
35
+ if (!res.ok)
36
+ throw toApiError(res.status, await safeJson(res));
37
+ return new Uint8Array(await res.arrayBuffer());
38
+ }
39
+ async putBlob(sessionId, hash, bytes, opts) {
40
+ if (!SHA256_HEX_RE.test(hash))
41
+ throw toApiError(400, { error: "blob hash must be 64 lowercase-hex chars" });
42
+ const res = await this.t.openRaw({
43
+ method: "PUT",
44
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/sync/blobs/${encodeURIComponent(hash)}`,
45
+ rawBody: bytes,
46
+ contentType: "application/octet-stream",
47
+ signal: opts?.signal,
48
+ });
49
+ if (!res.ok)
50
+ throw toApiError(res.status, await safeJson(res));
51
+ }
52
+ async plan(sessionId, body, opts) {
53
+ return this.t.request({
54
+ method: "POST",
55
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/sync/plan`,
56
+ body,
57
+ signal: opts?.signal,
58
+ });
59
+ }
60
+ async import(sessionId, body, opts) {
61
+ return this.t.request({
62
+ method: "POST",
63
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/sync/import`,
64
+ body,
65
+ signal: opts?.signal,
66
+ });
67
+ }
68
+ async importEntries(sessionId, stagingId, entries, opts) {
69
+ const ndjson = await toNdjson(entries);
70
+ const res = await this.t.openRaw({
71
+ method: "POST",
72
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/sync/import/${encodeURIComponent(stagingId)}/entries`,
73
+ rawBody: ndjson,
74
+ contentType: "application/x-ndjson",
75
+ signal: opts?.signal,
76
+ });
77
+ if (!res.ok)
78
+ throw toApiError(res.status, await safeJson(res));
79
+ return (await res.json());
80
+ }
81
+ }
82
+ async function toNdjson(entries) {
83
+ let body = "";
84
+ for await (const e of entries)
85
+ body += `${JSON.stringify(e)}\n`;
86
+ return body;
87
+ }
88
+ async function safeJson(res) {
89
+ try {
90
+ const text = await res.text();
91
+ return text ? JSON.parse(text) : {};
92
+ }
93
+ catch {
94
+ return {};
95
+ }
96
+ }
97
+ //# sourceMappingURL=session-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-sync.js","sourceRoot":"","sources":["../../src/resources/session-sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { Transport } from "../transport.js";
2
+ import { SessionSyncResource } from "./session-sync.js";
3
+ import type { SessionRecord, SessionListPage, StoredSessionRules, SessionPermissionRules, McpStatusPanel } from "../types.js";
4
+ export declare class SessionsResource {
5
+ private readonly t;
6
+ readonly sync: SessionSyncResource;
7
+ constructor(t: Transport);
8
+ get(sessionId: string, opts?: {
9
+ signal?: AbortSignal;
10
+ }): Promise<SessionRecord>;
11
+ list(params?: {
12
+ limit?: number;
13
+ cursor?: string;
14
+ owner?: string;
15
+ q?: string;
16
+ }, opts?: {
17
+ signal?: AbortSignal;
18
+ }): Promise<SessionListPage>;
19
+ fork(sessionId: string, opts?: {
20
+ signal?: AbortSignal;
21
+ }): Promise<{
22
+ sessionId: string;
23
+ }>;
24
+ delete(sessionId: string, opts?: {
25
+ signal?: AbortSignal;
26
+ }): Promise<{
27
+ deleted: boolean;
28
+ }>;
29
+ getPolicy(sessionId: string, opts?: {
30
+ signal?: AbortSignal;
31
+ }): Promise<{
32
+ rules: StoredSessionRules;
33
+ }>;
34
+ putPolicy(sessionId: string, body: {
35
+ rules: SessionPermissionRules;
36
+ expectedRev?: number;
37
+ }, opts?: {
38
+ signal?: AbortSignal;
39
+ }): Promise<{
40
+ rules: StoredSessionRules;
41
+ }>;
42
+ mcp(sessionId: string, opts?: {
43
+ signal?: AbortSignal;
44
+ }): Promise<McpStatusPanel>;
45
+ }
46
+ //# sourceMappingURL=sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/resources/sessions.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,qBAAa,gBAAgB;IAMf,OAAO,CAAC,QAAQ,CAAC,CAAC;IAF9B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;gBAEN,CAAC,EAAE,SAAS;IAMnC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAa/E,IAAI,CACR,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EACxE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,eAAe,CAAC;IAmBrB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAaxF,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAazF,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC;IAcrG,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;QAAE,KAAK,EAAE,sBAAsB,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAC7D,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC;IAcnC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;CAOvF"}
@@ -0,0 +1,70 @@
1
+ import { SessionSyncResource } from "./session-sync.js";
2
+ export class SessionsResource {
3
+ t;
4
+ sync;
5
+ constructor(t) {
6
+ this.t = t;
7
+ this.sync = new SessionSyncResource(t);
8
+ }
9
+ async get(sessionId, opts) {
10
+ return this.t.request({
11
+ method: "GET",
12
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}`,
13
+ signal: opts?.signal,
14
+ });
15
+ }
16
+ async list(params, opts) {
17
+ const q = new URLSearchParams();
18
+ if (params?.limit !== undefined)
19
+ q.set("limit", String(params.limit));
20
+ if (params?.cursor)
21
+ q.set("cursor", params.cursor);
22
+ if (params?.owner)
23
+ q.set("owner", params.owner);
24
+ if (params?.q)
25
+ q.set("q", params.q);
26
+ const qs = q.toString();
27
+ return this.t.request({
28
+ method: "GET",
29
+ path: `/v1/sessions${qs ? `?${qs}` : ""}`,
30
+ signal: opts?.signal,
31
+ });
32
+ }
33
+ async fork(sessionId, opts) {
34
+ return this.t.request({
35
+ method: "POST",
36
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/fork`,
37
+ signal: opts?.signal,
38
+ });
39
+ }
40
+ async delete(sessionId, opts) {
41
+ return this.t.request({
42
+ method: "DELETE",
43
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}`,
44
+ signal: opts?.signal,
45
+ });
46
+ }
47
+ async getPolicy(sessionId, opts) {
48
+ return this.t.request({
49
+ method: "GET",
50
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/policy`,
51
+ signal: opts?.signal,
52
+ });
53
+ }
54
+ async putPolicy(sessionId, body, opts) {
55
+ return this.t.request({
56
+ method: "PUT",
57
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/policy`,
58
+ body,
59
+ signal: opts?.signal,
60
+ });
61
+ }
62
+ async mcp(sessionId, opts) {
63
+ return this.t.request({
64
+ method: "GET",
65
+ path: `/v1/sessions/${encodeURIComponent(sessionId)}/mcp`,
66
+ signal: opts?.signal,
67
+ });
68
+ }
69
+ }
70
+ //# sourceMappingURL=sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/resources/sessions.ts"],"names":[],"mappings":"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"}