@vibesdotdev/code-sessions 0.0.0-stage → 1.0.0-rc.1

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 (217) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +165 -2
  3. package/dist/agent/coordinator.agent.descriptor.d.ts +69 -0
  4. package/dist/agent/coordinator.agent.descriptor.d.ts.map +1 -0
  5. package/dist/agent/coordinator.agent.descriptor.js +60 -0
  6. package/dist/agent/coordinator.agent.descriptor.js.map +1 -0
  7. package/dist/agent/coordinator.prompt.descriptor.d.ts +135 -0
  8. package/dist/agent/coordinator.prompt.descriptor.d.ts.map +1 -0
  9. package/dist/agent/coordinator.prompt.descriptor.js +29 -0
  10. package/dist/agent/coordinator.prompt.descriptor.js.map +1 -0
  11. package/dist/agent/coordinator.system-prompt.d.ts +3 -0
  12. package/dist/agent/coordinator.system-prompt.d.ts.map +1 -0
  13. package/dist/agent/coordinator.system-prompt.js +18 -0
  14. package/dist/agent/coordinator.system-prompt.js.map +1 -0
  15. package/dist/agent/developer.agent.descriptor.d.ts +74 -0
  16. package/dist/agent/developer.agent.descriptor.d.ts.map +1 -0
  17. package/dist/agent/developer.agent.descriptor.js +138 -0
  18. package/dist/agent/developer.agent.descriptor.js.map +1 -0
  19. package/dist/agent/developer.prompt.descriptor.d.ts +137 -0
  20. package/dist/agent/developer.prompt.descriptor.d.ts.map +1 -0
  21. package/dist/agent/developer.prompt.descriptor.js +29 -0
  22. package/dist/agent/developer.prompt.descriptor.js.map +1 -0
  23. package/dist/agent/reviewer.agent.descriptor.d.ts +69 -0
  24. package/dist/agent/reviewer.agent.descriptor.d.ts.map +1 -0
  25. package/dist/agent/reviewer.agent.descriptor.js +60 -0
  26. package/dist/agent/reviewer.agent.descriptor.js.map +1 -0
  27. package/dist/agent/reviewer.prompt.descriptor.d.ts +135 -0
  28. package/dist/agent/reviewer.prompt.descriptor.d.ts.map +1 -0
  29. package/dist/agent/reviewer.prompt.descriptor.js +29 -0
  30. package/dist/agent/reviewer.prompt.descriptor.js.map +1 -0
  31. package/dist/agent/reviewer.system-prompt.d.ts +3 -0
  32. package/dist/agent/reviewer.system-prompt.d.ts.map +1 -0
  33. package/dist/agent/reviewer.system-prompt.js +17 -0
  34. package/dist/agent/reviewer.system-prompt.js.map +1 -0
  35. package/dist/agent/system-prompt.d.ts +12 -0
  36. package/dist/agent/system-prompt.d.ts.map +1 -0
  37. package/dist/agent/system-prompt.js +28 -0
  38. package/dist/agent/system-prompt.js.map +1 -0
  39. package/dist/api/code-sessions.api-client.descriptor.d.ts +25 -0
  40. package/dist/api/code-sessions.api-client.descriptor.d.ts.map +1 -0
  41. package/dist/api/code-sessions.api-client.descriptor.js +26 -0
  42. package/dist/api/code-sessions.api-client.descriptor.js.map +1 -0
  43. package/dist/api/code-sessions.api-client.impl.d.ts +156 -0
  44. package/dist/api/code-sessions.api-client.impl.d.ts.map +1 -0
  45. package/dist/api/code-sessions.api-client.impl.js +852 -0
  46. package/dist/api/code-sessions.api-client.impl.js.map +1 -0
  47. package/dist/api/code-sessions.api-client.schemas.d.ts +2 -0
  48. package/dist/api/code-sessions.api-client.schemas.d.ts.map +1 -0
  49. package/dist/api/code-sessions.api-client.schemas.js +2 -0
  50. package/dist/api/code-sessions.api-client.schemas.js.map +1 -0
  51. package/dist/api/code-sessions.api-client.types.d.ts +252 -0
  52. package/dist/api/code-sessions.api-client.types.d.ts.map +1 -0
  53. package/dist/api/code-sessions.api-client.types.js +77 -0
  54. package/dist/api/code-sessions.api-client.types.js.map +1 -0
  55. package/dist/api/index.d.ts +13 -0
  56. package/dist/api/index.d.ts.map +1 -0
  57. package/dist/api/index.js +20 -0
  58. package/dist/api/index.js.map +1 -0
  59. package/dist/capability.d.ts +9 -0
  60. package/dist/capability.d.ts.map +1 -0
  61. package/dist/capability.js +9 -0
  62. package/dist/capability.js.map +1 -0
  63. package/dist/catalog/index.d.ts +2 -0
  64. package/dist/catalog/index.d.ts.map +1 -0
  65. package/dist/catalog/index.js +2 -0
  66. package/dist/catalog/index.js.map +1 -0
  67. package/dist/catalog/session-catalog.d.ts +131 -0
  68. package/dist/catalog/session-catalog.d.ts.map +1 -0
  69. package/dist/catalog/session-catalog.impl.consumer.worker.d.ts +113 -0
  70. package/dist/catalog/session-catalog.impl.consumer.worker.d.ts.map +1 -0
  71. package/dist/catalog/session-catalog.impl.consumer.worker.js +32 -0
  72. package/dist/catalog/session-catalog.impl.consumer.worker.js.map +1 -0
  73. package/dist/catalog/session-catalog.js +126 -0
  74. package/dist/catalog/session-catalog.js.map +1 -0
  75. package/dist/clock/clock.client.d.ts +18 -0
  76. package/dist/clock/clock.client.d.ts.map +1 -0
  77. package/dist/clock/clock.client.js +43 -0
  78. package/dist/clock/clock.client.js.map +1 -0
  79. package/dist/code-sessions.consumer.plugin.d.ts +4 -0
  80. package/dist/code-sessions.consumer.plugin.d.ts.map +1 -0
  81. package/dist/code-sessions.consumer.plugin.js +16 -0
  82. package/dist/code-sessions.consumer.plugin.js.map +1 -0
  83. package/dist/code-sessions.plugin.d.ts +15 -0
  84. package/dist/code-sessions.plugin.d.ts.map +1 -0
  85. package/dist/code-sessions.plugin.js +65 -0
  86. package/dist/code-sessions.plugin.js.map +1 -0
  87. package/dist/config/index.d.ts +9 -0
  88. package/dist/config/index.d.ts.map +1 -0
  89. package/dist/config/index.js +9 -0
  90. package/dist/config/index.js.map +1 -0
  91. package/dist/config/preparation.d.ts +2 -0
  92. package/dist/config/preparation.d.ts.map +1 -0
  93. package/dist/config/preparation.js +2 -0
  94. package/dist/config/preparation.js.map +1 -0
  95. package/dist/docs/code-sessions.docs.descriptor.d.ts +4 -0
  96. package/dist/docs/code-sessions.docs.descriptor.d.ts.map +1 -0
  97. package/dist/docs/code-sessions.docs.descriptor.js +241 -0
  98. package/dist/docs/code-sessions.docs.descriptor.js.map +1 -0
  99. package/dist/index.d.ts +26 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +28 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/pull-request-plan.d.ts +68 -0
  104. package/dist/pull-request-plan.d.ts.map +1 -0
  105. package/dist/pull-request-plan.js +94 -0
  106. package/dist/pull-request-plan.js.map +1 -0
  107. package/dist/schemas/preparation.d.ts +51 -0
  108. package/dist/schemas/preparation.d.ts.map +1 -0
  109. package/dist/schemas/preparation.js +20 -0
  110. package/dist/schemas/preparation.js.map +1 -0
  111. package/dist/schemas/requests.d.ts +411 -0
  112. package/dist/schemas/requests.d.ts.map +1 -0
  113. package/dist/schemas/requests.js +87 -0
  114. package/dist/schemas/requests.js.map +1 -0
  115. package/dist/schemas/responses.d.ts +275 -0
  116. package/dist/schemas/responses.d.ts.map +1 -0
  117. package/dist/schemas/responses.js +90 -0
  118. package/dist/schemas/responses.js.map +1 -0
  119. package/dist/svelte/actions.d.ts +70 -0
  120. package/dist/svelte/actions.d.ts.map +1 -0
  121. package/dist/svelte/actions.js +280 -0
  122. package/dist/svelte/clock.svelte.d.ts +6 -0
  123. package/dist/svelte/clock.svelte.d.ts.map +1 -0
  124. package/dist/svelte/clock.svelte.js +33 -0
  125. package/dist/svelte/components/CreateSessionDialog.svelte +470 -0
  126. package/dist/svelte/components/CreateSessionDialog.svelte.d.ts +57 -0
  127. package/dist/svelte/components/CreateSessionDialog.svelte.d.ts.map +1 -0
  128. package/dist/svelte/components/SessionCard.svelte +216 -0
  129. package/dist/svelte/components/SessionCard.svelte.d.ts +27 -0
  130. package/dist/svelte/components/SessionCard.svelte.d.ts.map +1 -0
  131. package/dist/svelte/components/SessionList.svelte +86 -0
  132. package/dist/svelte/components/SessionList.svelte.d.ts +23 -0
  133. package/dist/svelte/components/SessionList.svelte.d.ts.map +1 -0
  134. package/dist/svelte/components/SessionSeed.svelte +60 -0
  135. package/dist/svelte/components/SessionSeed.svelte.d.ts +9 -0
  136. package/dist/svelte/components/SessionSeed.svelte.d.ts.map +1 -0
  137. package/dist/svelte/components/TranscriptView.svelte +360 -0
  138. package/dist/svelte/components/TranscriptView.svelte.d.ts +26 -0
  139. package/dist/svelte/components/TranscriptView.svelte.d.ts.map +1 -0
  140. package/dist/svelte/create-session-form.d.ts +84 -0
  141. package/dist/svelte/create-session-form.d.ts.map +1 -0
  142. package/dist/svelte/create-session-form.js +107 -0
  143. package/dist/svelte/index.d.ts +20 -0
  144. package/dist/svelte/index.d.ts.map +1 -0
  145. package/dist/svelte/index.js +18 -0
  146. package/dist/svelte/live-session.d.ts +156 -0
  147. package/dist/svelte/live-session.d.ts.map +1 -0
  148. package/dist/svelte/live-session.js +152 -0
  149. package/dist/svelte/loaders.d.ts +74 -0
  150. package/dist/svelte/loaders.d.ts.map +1 -0
  151. package/dist/svelte/loaders.js +124 -0
  152. package/dist/svelte/outcome.d.ts +46 -0
  153. package/dist/svelte/outcome.d.ts.map +1 -0
  154. package/dist/svelte/outcome.js +49 -0
  155. package/dist/svelte/relative-time.d.ts +32 -0
  156. package/dist/svelte/relative-time.d.ts.map +1 -0
  157. package/dist/svelte/relative-time.js +51 -0
  158. package/dist/svelte/session-list-item.d.ts +23 -0
  159. package/dist/svelte/session-list-item.d.ts.map +1 -0
  160. package/dist/svelte/session-list-item.js +1 -0
  161. package/dist/svelte/styles.css +8 -0
  162. package/dist/svelte/transcript-input.d.ts +45 -0
  163. package/dist/svelte/transcript-input.d.ts.map +1 -0
  164. package/dist/svelte/transcript-input.js +188 -0
  165. package/dist/tui/code-sessions-tui.plugin.d.ts +10 -0
  166. package/dist/tui/code-sessions-tui.plugin.d.ts.map +1 -0
  167. package/dist/tui/code-sessions-tui.plugin.js +29 -0
  168. package/dist/tui/code-sessions-tui.plugin.js.map +1 -0
  169. package/dist/tui/code-sessions.tui-app.descriptor.d.ts +7 -0
  170. package/dist/tui/code-sessions.tui-app.descriptor.d.ts.map +1 -0
  171. package/dist/tui/code-sessions.tui-app.descriptor.js +30 -0
  172. package/dist/tui/code-sessions.tui-app.descriptor.js.map +1 -0
  173. package/dist/tui/code-sessions.tui-app.impl.consumer.d.ts +14 -0
  174. package/dist/tui/code-sessions.tui-app.impl.consumer.d.ts.map +1 -0
  175. package/dist/tui/code-sessions.tui-app.impl.consumer.js +453 -0
  176. package/dist/tui/code-sessions.tui-app.impl.consumer.js.map +1 -0
  177. package/dist/tui/code-sessions.tui-client.d.ts +22 -0
  178. package/dist/tui/code-sessions.tui-client.d.ts.map +1 -0
  179. package/dist/tui/code-sessions.tui-client.js +95 -0
  180. package/dist/tui/code-sessions.tui-client.js.map +1 -0
  181. package/dist/tui/code-sessions.tui-open.descriptor.d.ts +7 -0
  182. package/dist/tui/code-sessions.tui-open.descriptor.d.ts.map +1 -0
  183. package/dist/tui/code-sessions.tui-open.descriptor.js +16 -0
  184. package/dist/tui/code-sessions.tui-open.descriptor.js.map +1 -0
  185. package/dist/tui/code-sessions.tui-open.impl.consumer.d.ts +7 -0
  186. package/dist/tui/code-sessions.tui-open.impl.consumer.d.ts.map +1 -0
  187. package/dist/tui/code-sessions.tui-open.impl.consumer.js +11 -0
  188. package/dist/tui/code-sessions.tui-open.impl.consumer.js.map +1 -0
  189. package/dist/tui/code-sessions.tui-state.descriptor.d.ts +16 -0
  190. package/dist/tui/code-sessions.tui-state.descriptor.d.ts.map +1 -0
  191. package/dist/tui/code-sessions.tui-state.descriptor.js +50 -0
  192. package/dist/tui/code-sessions.tui-state.descriptor.js.map +1 -0
  193. package/dist/tui/code-sessions.tui-state.impl.consumer.d.ts +30 -0
  194. package/dist/tui/code-sessions.tui-state.impl.consumer.d.ts.map +1 -0
  195. package/dist/tui/code-sessions.tui-state.impl.consumer.js +533 -0
  196. package/dist/tui/code-sessions.tui-state.impl.consumer.js.map +1 -0
  197. package/dist/tui/code-sessions.tui-state.key.d.ts +322 -0
  198. package/dist/tui/code-sessions.tui-state.key.d.ts.map +1 -0
  199. package/dist/tui/code-sessions.tui-state.key.js +104 -0
  200. package/dist/tui/code-sessions.tui-state.key.js.map +1 -0
  201. package/dist/tui/index.d.ts +9 -0
  202. package/dist/tui/index.d.ts.map +1 -0
  203. package/dist/tui/index.js +8 -0
  204. package/dist/tui/index.js.map +1 -0
  205. package/dist/workspace/index.d.ts +2 -0
  206. package/dist/workspace/index.d.ts.map +1 -0
  207. package/dist/workspace/index.js +2 -0
  208. package/dist/workspace/index.js.map +1 -0
  209. package/dist/workspace/workspace-binding.d.ts +74 -0
  210. package/dist/workspace/workspace-binding.d.ts.map +1 -0
  211. package/dist/workspace/workspace-binding.impl.consumer.worker.d.ts +17 -0
  212. package/dist/workspace/workspace-binding.impl.consumer.worker.d.ts.map +1 -0
  213. package/dist/workspace/workspace-binding.impl.consumer.worker.js +134 -0
  214. package/dist/workspace/workspace-binding.impl.consumer.worker.js.map +1 -0
  215. package/dist/workspace/workspace-binding.js +72 -0
  216. package/dist/workspace/workspace-binding.js.map +1 -0
  217. package/package.json +238 -4
@@ -0,0 +1,131 @@
1
+ import { type RuntimeDescriptor } from '@vibesdotdev/kernel';
2
+ import * as z from 'zod/v4';
3
+ import type { CodeSessionListOptions, SessionWithCapability } from '../api/code-sessions.api-client.types.ts';
4
+ export declare const CODE_SESSIONS_CATALOG_KIND = "code-sessions/catalog";
5
+ export declare const CODE_SESSIONS_CATALOG_ID = "code-sessions.catalog";
6
+ export { ListOptionsSchema as CodeSessionListOptionsSchema } from '../schemas/requests.ts';
7
+ export declare const CodeSessionCatalogItemSchema: z.ZodUnion<readonly [z.ZodObject<{
8
+ sessionId: z.ZodString;
9
+ repositoryName: z.ZodNullable<z.ZodString>;
10
+ ephemeral: z.ZodOptional<z.ZodBoolean>;
11
+ status: z.ZodEnum<{
12
+ error: "error";
13
+ active: "active";
14
+ initializing: "initializing";
15
+ ended: "ended";
16
+ }>;
17
+ statusReason: z.ZodOptional<z.ZodString>;
18
+ previewUrl: z.ZodNullable<z.ZodString>;
19
+ checkoutRef: z.ZodNullable<z.ZodString>;
20
+ createdAt: z.ZodString;
21
+ lastActivityAt: z.ZodString;
22
+ hostTarget: z.ZodObject<{
23
+ kind: z.ZodLiteral<"host">;
24
+ hostId: z.ZodString;
25
+ }, z.core.$strip>;
26
+ capability: z.ZodLiteral<"interactive">;
27
+ execution: z.ZodLiteral<"local">;
28
+ }, z.core.$strict>, z.ZodObject<{
29
+ sessionId: z.ZodString;
30
+ repositoryName: z.ZodNullable<z.ZodString>;
31
+ ephemeral: z.ZodOptional<z.ZodBoolean>;
32
+ status: z.ZodEnum<{
33
+ error: "error";
34
+ active: "active";
35
+ initializing: "initializing";
36
+ ended: "ended";
37
+ }>;
38
+ statusReason: z.ZodOptional<z.ZodString>;
39
+ previewUrl: z.ZodNullable<z.ZodString>;
40
+ checkoutRef: z.ZodNullable<z.ZodString>;
41
+ createdAt: z.ZodString;
42
+ lastActivityAt: z.ZodString;
43
+ hostTarget: z.ZodObject<{
44
+ kind: z.ZodLiteral<"host">;
45
+ hostId: z.ZodString;
46
+ }, z.core.$strip>;
47
+ capability: z.ZodLiteral<"interactive">;
48
+ execution: z.ZodLiteral<"platform">;
49
+ }, z.core.$strict>, z.ZodObject<{
50
+ sessionId: z.ZodString;
51
+ repositoryName: z.ZodNullable<z.ZodString>;
52
+ ephemeral: z.ZodOptional<z.ZodBoolean>;
53
+ status: z.ZodEnum<{
54
+ error: "error";
55
+ active: "active";
56
+ initializing: "initializing";
57
+ ended: "ended";
58
+ }>;
59
+ statusReason: z.ZodOptional<z.ZodString>;
60
+ previewUrl: z.ZodNullable<z.ZodString>;
61
+ checkoutRef: z.ZodNullable<z.ZodString>;
62
+ createdAt: z.ZodString;
63
+ lastActivityAt: z.ZodString;
64
+ hostTarget: z.ZodObject<{
65
+ kind: z.ZodLiteral<"cloud">;
66
+ }, z.core.$strip>;
67
+ capability: z.ZodLiteral<"transcript">;
68
+ execution: z.ZodLiteral<"platform">;
69
+ }, z.core.$strict>]>;
70
+ export type CodeSessionCatalogItem = z.infer<typeof CodeSessionCatalogItemSchema>;
71
+ /**
72
+ * Deliberately copy only presentation facts. Canonical records also contain
73
+ * host-native paths and setup scripts; those remain inside the consumer worker.
74
+ */
75
+ export declare function projectCodeSessionCatalogItem(session: SessionWithCapability): CodeSessionCatalogItem;
76
+ export interface CodeSessionsCatalogCapability {
77
+ list(options?: CodeSessionListOptions): Promise<CodeSessionCatalogItem[]>;
78
+ get(sessionId: string): Promise<CodeSessionCatalogItem | null>;
79
+ }
80
+ export declare const codeSessionsCatalogKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<CodeSessionsCatalogCapability>;
81
+ export declare const codeSessionsCatalogDescriptor: RuntimeDescriptor;
82
+ export declare const codeSessionsCatalogExposure: {
83
+ protocolVersion: 1;
84
+ discoverable: boolean;
85
+ audiences: ("service" | "operator" | "consumer-renderer" | "consumer-cli" | "consumer-agent")[];
86
+ methods: Record<string, {
87
+ request: {
88
+ id: string;
89
+ version: number;
90
+ schema: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
91
+ };
92
+ result: {
93
+ id: string;
94
+ version: number;
95
+ schema: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
96
+ };
97
+ dataClassification: "secret" | "user" | "public" | "sensitive";
98
+ rendererView: "denied" | "raw" | "redacted";
99
+ retry: {
100
+ mode: "read";
101
+ retry: "safe";
102
+ } | {
103
+ mode: "idempotent";
104
+ operationIdRequired: true;
105
+ reconciliationMethod: string;
106
+ } | {
107
+ mode: "non-idempotent";
108
+ retry: "never";
109
+ };
110
+ cancellation: {
111
+ mode: "required" | "none" | "cooperative";
112
+ defaultDeadlineMs: number;
113
+ maxDeadlineMs: number;
114
+ };
115
+ maxRequestBytes: number;
116
+ maxResultBytes: number;
117
+ projectRenderer?: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> | undefined;
118
+ stream?: {
119
+ event: {
120
+ id: string;
121
+ version: number;
122
+ schema: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
123
+ };
124
+ maxEventBytes: number;
125
+ initialCredits: number;
126
+ maxCredits: number;
127
+ projectRenderer?: z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> | undefined;
128
+ } | undefined;
129
+ }>;
130
+ };
131
+ //# sourceMappingURL=session-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/session-catalog.ts"],"names":[],"mappings":"AAIA,OAAO,EAGN,KAAK,iBAAiB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EACX,sBAAsB,EACtB,qBAAqB,EACrB,MAAM,0CAA0C,CAAC;AAElD,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAClE,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAEhE,OAAO,EAAE,iBAAiB,IAAI,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAwB3F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAgBvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;;GAGG;AACH,wBAAgB,6BAA6B,CAC5C,OAAO,EAAE,qBAAqB,GAC5B,sBAAsB,CAexB;AAED,MAAM,WAAW,6BAA6B;IAC7C,IAAI,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC1E,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;CAC/D;AAED,eAAO,MAAM,uBAAuB,0FAMlC,CAAC;AAEH,eAAO,MAAM,6BAA6B,EAAE,iBAQ3C,CAAC;AAQF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CtC,CAAC"}
@@ -0,0 +1,113 @@
1
+ import type { KindContext, RuntimeDescriptor, VibesRuntime } from '@vibesdotdev/kernel';
2
+ import type { CodeSessionListOptions } from '../api/code-sessions.api-client.types.ts';
3
+ import { type CodeSessionsCatalogCapability } from './session-catalog.ts';
4
+ /**
5
+ * Credential-dark renderer projection.
6
+ *
7
+ * Local discovery requires the consumer host filesystem and cloud discovery
8
+ * may require a bearer credential. Both stay in the owning runtime; renderers
9
+ * receive only validated session records.
10
+ */
11
+ export default class ConsumerCodeSessionsCatalog implements CodeSessionsCatalogCapability {
12
+ private readonly runtime;
13
+ /** The kernel constructs every kind implementation with the resolving runtime in its context. */
14
+ constructor(_descriptor: RuntimeDescriptor, context: KindContext<VibesRuntime>);
15
+ private client;
16
+ list(options?: CodeSessionListOptions): Promise<({
17
+ sessionId: string;
18
+ repositoryName: string | null;
19
+ status: "error" | "active" | "initializing" | "ended";
20
+ previewUrl: string | null;
21
+ checkoutRef: string | null;
22
+ createdAt: string;
23
+ lastActivityAt: string;
24
+ hostTarget: {
25
+ kind: "host";
26
+ hostId: string;
27
+ };
28
+ capability: "interactive";
29
+ execution: "local";
30
+ ephemeral?: boolean | undefined;
31
+ statusReason?: string | undefined;
32
+ } | {
33
+ sessionId: string;
34
+ repositoryName: string | null;
35
+ status: "error" | "active" | "initializing" | "ended";
36
+ previewUrl: string | null;
37
+ checkoutRef: string | null;
38
+ createdAt: string;
39
+ lastActivityAt: string;
40
+ hostTarget: {
41
+ kind: "host";
42
+ hostId: string;
43
+ };
44
+ capability: "interactive";
45
+ execution: "platform";
46
+ ephemeral?: boolean | undefined;
47
+ statusReason?: string | undefined;
48
+ } | {
49
+ sessionId: string;
50
+ repositoryName: string | null;
51
+ status: "error" | "active" | "initializing" | "ended";
52
+ previewUrl: string | null;
53
+ checkoutRef: string | null;
54
+ createdAt: string;
55
+ lastActivityAt: string;
56
+ hostTarget: {
57
+ kind: "cloud";
58
+ };
59
+ capability: "transcript";
60
+ execution: "platform";
61
+ ephemeral?: boolean | undefined;
62
+ statusReason?: string | undefined;
63
+ })[]>;
64
+ get(sessionId: string): Promise<{
65
+ sessionId: string;
66
+ repositoryName: string | null;
67
+ status: "error" | "active" | "initializing" | "ended";
68
+ previewUrl: string | null;
69
+ checkoutRef: string | null;
70
+ createdAt: string;
71
+ lastActivityAt: string;
72
+ hostTarget: {
73
+ kind: "host";
74
+ hostId: string;
75
+ };
76
+ capability: "interactive";
77
+ execution: "local";
78
+ ephemeral?: boolean | undefined;
79
+ statusReason?: string | undefined;
80
+ } | {
81
+ sessionId: string;
82
+ repositoryName: string | null;
83
+ status: "error" | "active" | "initializing" | "ended";
84
+ previewUrl: string | null;
85
+ checkoutRef: string | null;
86
+ createdAt: string;
87
+ lastActivityAt: string;
88
+ hostTarget: {
89
+ kind: "host";
90
+ hostId: string;
91
+ };
92
+ capability: "interactive";
93
+ execution: "platform";
94
+ ephemeral?: boolean | undefined;
95
+ statusReason?: string | undefined;
96
+ } | {
97
+ sessionId: string;
98
+ repositoryName: string | null;
99
+ status: "error" | "active" | "initializing" | "ended";
100
+ previewUrl: string | null;
101
+ checkoutRef: string | null;
102
+ createdAt: string;
103
+ lastActivityAt: string;
104
+ hostTarget: {
105
+ kind: "cloud";
106
+ };
107
+ capability: "transcript";
108
+ execution: "platform";
109
+ ephemeral?: boolean | undefined;
110
+ statusReason?: string | undefined;
111
+ } | null>;
112
+ }
113
+ //# sourceMappingURL=session-catalog.impl.consumer.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-catalog.impl.consumer.worker.d.ts","sourceRoot":"","sources":["../../src/catalog/session-catalog.impl.consumer.worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,KAAK,EAEX,sBAAsB,EACtB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAEN,KAAK,6BAA6B,EAClC,MAAM,sBAAsB,CAAC;AAE9B;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA4B,YAAW,6BAA6B;IACxF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC,iGAAiG;gBACrF,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,CAAC,YAAY,CAAC;YAIhE,MAAM;IASd,IAAI,CAAC,OAAO,CAAC,EAAE,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKrC,GAAG,CAAC,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI3B"}
@@ -0,0 +1,32 @@
1
+ import { projectCodeSessionCatalogItem } from "./session-catalog.js";
2
+ /**
3
+ * Credential-dark renderer projection.
4
+ *
5
+ * Local discovery requires the consumer host filesystem and cloud discovery
6
+ * may require a bearer credential. Both stay in the owning runtime; renderers
7
+ * receive only validated session records.
8
+ */
9
+ export default class ConsumerCodeSessionsCatalog {
10
+ runtime;
11
+ /** The kernel constructs every kind implementation with the resolving runtime in its context. */
12
+ constructor(_descriptor, context) {
13
+ this.runtime = context.runtime;
14
+ }
15
+ async client() {
16
+ const client = await this.runtime
17
+ .query('runtime/client')
18
+ .withId('code-sessions')
19
+ .resolve();
20
+ await client.ensureLoaded();
21
+ return client;
22
+ }
23
+ async list(options) {
24
+ const sessions = await (await this.client()).list(options);
25
+ return sessions.map(projectCodeSessionCatalogItem);
26
+ }
27
+ async get(sessionId) {
28
+ const session = await (await this.client()).get(sessionId);
29
+ return session ? projectCodeSessionCatalogItem(session) : null;
30
+ }
31
+ }
32
+ //# sourceMappingURL=session-catalog.impl.consumer.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-catalog.impl.consumer.worker.js","sourceRoot":"","sources":["../../src/catalog/session-catalog.impl.consumer.worker.ts"],"names":[],"mappings":"AAKA,OAAO,EACN,6BAA6B,EAE7B,MAAM,sBAAsB,CAAC;AAE9B;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAC9B,OAAO,CAAe;IAEvC,iGAAiG;IACjG,YAAY,WAA8B,EAAE,OAAkC;QAC7E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,MAAM;QACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO;aAC/B,KAAK,CAAwC,gBAAgB,CAAC;aAC9D,MAAM,CAAC,eAAe,CAAC;aACvB,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgC;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,OAAO,QAAQ,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;CACD"}
@@ -0,0 +1,126 @@
1
+ import { CloudSessionHostTargetSchema, PlatformSessionHostTargetSchema } from '@vibesdotdev/agent-execution/code-session';
2
+ import { createRuntimeKind, RuntimeDescriptorSchema } from '@vibesdotdev/kernel';
3
+ import { defineRemoteExposure } from '@vibesdotdev/kernel/federation';
4
+ import * as z from 'zod/v4';
5
+ export const CODE_SESSIONS_CATALOG_KIND = 'code-sessions/catalog';
6
+ export const CODE_SESSIONS_CATALOG_ID = 'code-sessions.catalog';
7
+ export { ListOptionsSchema as CodeSessionListOptionsSchema } from "../schemas/requests.js";
8
+ import { ListOptionsSchema as CodeSessionListOptionsSchema } from "../schemas/requests.js";
9
+ /**
10
+ * Renderer-safe projection of the canonical Code Sessions record.
11
+ *
12
+ * The consumer runtime, not a file:// renderer, owns local discovery and cloud
13
+ * authentication. Keep this schema beside the capability so federation cannot
14
+ * accidentally widen what crosses into the renderer.
15
+ */
16
+ const CodeSessionCatalogItemBaseSchema = z
17
+ .object({
18
+ sessionId: z.string().min(1),
19
+ repositoryName: z.string().nullable(),
20
+ ephemeral: z.boolean().optional(),
21
+ status: z.enum(['initializing', 'active', 'error', 'ended']),
22
+ statusReason: z.string().optional(),
23
+ previewUrl: z.string().nullable(),
24
+ checkoutRef: z.string().nullable(),
25
+ createdAt: z.string(),
26
+ lastActivityAt: z.string()
27
+ })
28
+ .strict();
29
+ export const CodeSessionCatalogItemSchema = z.union([
30
+ CodeSessionCatalogItemBaseSchema.extend({
31
+ hostTarget: PlatformSessionHostTargetSchema,
32
+ capability: z.literal('interactive'),
33
+ execution: z.literal('local')
34
+ }).strict(),
35
+ CodeSessionCatalogItemBaseSchema.extend({
36
+ hostTarget: PlatformSessionHostTargetSchema,
37
+ capability: z.literal('interactive'),
38
+ execution: z.literal('platform')
39
+ }).strict(),
40
+ CodeSessionCatalogItemBaseSchema.extend({
41
+ hostTarget: CloudSessionHostTargetSchema,
42
+ capability: z.literal('transcript'),
43
+ execution: z.literal('platform')
44
+ }).strict()
45
+ ]);
46
+ /**
47
+ * Deliberately copy only presentation facts. Canonical records also contain
48
+ * host-native paths and setup scripts; those remain inside the consumer worker.
49
+ */
50
+ export function projectCodeSessionCatalogItem(session) {
51
+ return CodeSessionCatalogItemSchema.parse({
52
+ sessionId: session.sessionId,
53
+ repositoryName: session.repositoryName,
54
+ ephemeral: session.ephemeral,
55
+ hostTarget: session.hostTarget,
56
+ status: session.status,
57
+ statusReason: session.statusReason,
58
+ previewUrl: session.previewUrl,
59
+ checkoutRef: session.checkoutRef,
60
+ createdAt: session.createdAt,
61
+ lastActivityAt: session.lastActivityAt,
62
+ capability: session.capability,
63
+ execution: session.execution ?? 'platform'
64
+ });
65
+ }
66
+ export const codeSessionsCatalogKind = createRuntimeKind({
67
+ id: CODE_SESSIONS_CATALOG_KIND,
68
+ descriptorSchema: RuntimeDescriptorSchema
69
+ });
70
+ export const codeSessionsCatalogDescriptor = {
71
+ id: CODE_SESSIONS_CATALOG_ID,
72
+ kind: CODE_SESSIONS_CATALOG_KIND,
73
+ name: 'Code sessions catalog',
74
+ description: 'Renderer-safe local and cloud session facts resolved by the owning consumer runtime',
75
+ hardware: ['consumer'],
76
+ enabled: true
77
+ };
78
+ const readCancellation = {
79
+ mode: 'cooperative',
80
+ defaultDeadlineMs: 10_000,
81
+ maxDeadlineMs: 30_000
82
+ };
83
+ export const codeSessionsCatalogExposure = defineRemoteExposure({
84
+ protocolVersion: 1,
85
+ discoverable: true,
86
+ audiences: ['consumer-renderer'],
87
+ methods: {
88
+ list: {
89
+ request: {
90
+ id: 'code-sessions.catalog.list.request',
91
+ version: 1,
92
+ schema: z.union([z.tuple([]), z.tuple([CodeSessionListOptionsSchema])])
93
+ },
94
+ result: {
95
+ id: 'code-sessions.catalog.list.result',
96
+ version: 1,
97
+ schema: CodeSessionCatalogItemSchema.array()
98
+ },
99
+ dataClassification: 'user',
100
+ rendererView: 'raw',
101
+ retry: { mode: 'read', retry: 'safe' },
102
+ cancellation: readCancellation,
103
+ maxRequestBytes: 512,
104
+ maxResultBytes: 4 * 1024 * 1024
105
+ },
106
+ get: {
107
+ request: {
108
+ id: 'code-sessions.catalog.get.request',
109
+ version: 1,
110
+ schema: z.tuple([z.string().min(1).max(512)])
111
+ },
112
+ result: {
113
+ id: 'code-sessions.catalog.get.result',
114
+ version: 1,
115
+ schema: CodeSessionCatalogItemSchema.nullable()
116
+ },
117
+ dataClassification: 'user',
118
+ rendererView: 'raw',
119
+ retry: { mode: 'read', retry: 'safe' },
120
+ cancellation: readCancellation,
121
+ maxRequestBytes: 1_024,
122
+ maxResultBytes: 64 * 1024
123
+ }
124
+ }
125
+ });
126
+ //# sourceMappingURL=session-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-catalog.js","sourceRoot":"","sources":["../../src/catalog/session-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { BaseRuntimeClient } from '@vibesdotdev/kernel/client';
2
+ import type { VibesRuntime } from '@vibesdotdev/kernel';
3
+ /** Runtime-owned shared clock; activation alone never starts background work. */
4
+ export default class CodeSessionsClock extends BaseRuntimeClient<VibesRuntime> {
5
+ private listeners;
6
+ private stopTimer?;
7
+ private now;
8
+ protected onLoad(): Promise<void>;
9
+ private readonly clear;
10
+ get value(): number;
11
+ get subscriberCount(): number;
12
+ get timerRunning(): boolean;
13
+ subscribe(listener: (now: number) => void): () => void;
14
+ private tick;
15
+ private stop;
16
+ protected onDispose(): void;
17
+ }
18
+ //# sourceMappingURL=clock.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.client.d.ts","sourceRoot":"","sources":["../../src/clock/clock.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,iFAAiF;AACjF,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,iBAAiB,CAAC,YAAY,CAAC;IAC7E,OAAO,CAAC,SAAS,CAAkD;IACnE,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,GAAG,CAAc;cAEA,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkD;IAExE,IAAI,KAAK,IAAI,MAAM,CAAqB;IACxC,IAAI,eAAe,IAAI,MAAM,CAAgC;IAC7D,IAAI,YAAY,IAAI,OAAO,CAAyC;IAEpE,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IActD,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,IAAI;cAKO,SAAS,IAAI,IAAI;CAIpC"}
@@ -0,0 +1,43 @@
1
+ import { BaseRuntimeClient } from '@vibesdotdev/kernel/client';
2
+ /** Runtime-owned shared clock; activation alone never starts background work. */
3
+ export default class CodeSessionsClock extends BaseRuntimeClient {
4
+ listeners = new Set();
5
+ stopTimer;
6
+ now = Date.now();
7
+ async onLoad() {
8
+ this.runtime.lifecycle.signal.addEventListener('abort', this.clear, { once: true });
9
+ }
10
+ clear = () => { this.stop(); this.listeners.clear(); };
11
+ get value() { return this.now; }
12
+ get subscriberCount() { return this.listeners.size; }
13
+ get timerRunning() { return this.stopTimer !== undefined; }
14
+ subscribe(listener) {
15
+ if (this.runtime.lifecycle.signal.aborted)
16
+ return () => { };
17
+ const subscription = { listener };
18
+ this.listeners.add(subscription);
19
+ this.tick();
20
+ if (!this.stopTimer && this.runtime.declaredScope.lifecycle !== 'finite' && this.runtime.declaredScope.surface !== 'ssr') {
21
+ this.stopTimer = this.runtime.lifecycle.interval(() => this.tick(), 30_000);
22
+ }
23
+ return () => {
24
+ this.listeners.delete(subscription);
25
+ if (this.listeners.size === 0)
26
+ this.stop();
27
+ };
28
+ }
29
+ tick() {
30
+ this.now = Date.now();
31
+ for (const { listener } of this.listeners)
32
+ listener(this.now);
33
+ }
34
+ stop() {
35
+ this.stopTimer?.();
36
+ this.stopTimer = undefined;
37
+ }
38
+ onDispose() {
39
+ this.runtime.lifecycle.signal.removeEventListener('abort', this.clear);
40
+ this.clear();
41
+ }
42
+ }
43
+ //# sourceMappingURL=clock.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock.client.js","sourceRoot":"","sources":["../../src/clock/clock.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,iFAAiF;AACjF,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,iBAA+B;IACrE,SAAS,GAAG,IAAI,GAAG,EAAuC,CAAC;IAC3D,SAAS,CAAc;IACvB,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEN,KAAK,CAAC,MAAM;QAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;IAEgB,KAAK,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAExE,IAAI,KAAK,KAAa,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,IAAI,eAAe,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,IAAI,YAAY,KAAc,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;IAEpE,SAAS,CAAC,QAA+B;QACxC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,EAAE,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC1H,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,GAAG,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC,CAAC;IACH,CAAC;IAEO,IAAI;QACX,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IAEO,IAAI;QACX,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAEkB,SAAS;QAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;CACD"}
@@ -0,0 +1,4 @@
1
+ /** Trusted consumer worker composition; includes the universal contracts and client. */
2
+ export declare const codeSessionsConsumerPlugin: import("@vibesdotdev/kernel").RuntimePlugin;
3
+ export default codeSessionsConsumerPlugin;
4
+ //# sourceMappingURL=code-sessions.consumer.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-sessions.consumer.plugin.d.ts","sourceRoot":"","sources":["../src/code-sessions.consumer.plugin.ts"],"names":[],"mappings":"AAKA,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,6CAYrC,CAAC;AACH,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { createRuntimePlugin, loader } from '@vibesdotdev/kernel';
2
+ import codeSessionsPlugin from "./code-sessions.plugin.js";
3
+ import { CODE_SESSION_WORKSPACE_BINDING_ID, CODE_SESSION_WORKSPACE_BINDING_KIND } from "./workspace/workspace-binding.js";
4
+ import { CODE_SESSIONS_CATALOG_ID, CODE_SESSIONS_CATALOG_KIND } from "./catalog/session-catalog.js";
5
+ /** Trusted consumer worker composition; includes the universal contracts and client. */
6
+ export const codeSessionsConsumerPlugin = createRuntimePlugin({
7
+ id: 'code-sessions.consumer',
8
+ name: 'Code Sessions Consumer',
9
+ onRegister: async (runtime) => { await runtime.registerPlugin(codeSessionsPlugin); },
10
+ loaders: [
11
+ loader(CODE_SESSION_WORKSPACE_BINDING_ID, { kind: CODE_SESSION_WORKSPACE_BINDING_KIND, scope: 'consumer.worker' }, () => import("./workspace/workspace-binding.impl.consumer.worker.js")),
12
+ loader(CODE_SESSIONS_CATALOG_ID, { kind: CODE_SESSIONS_CATALOG_KIND, scope: 'consumer.worker' }, () => import("./catalog/session-catalog.impl.consumer.worker.js"))
13
+ ]
14
+ });
15
+ export default codeSessionsConsumerPlugin;
16
+ //# sourceMappingURL=code-sessions.consumer.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-sessions.consumer.plugin.js","sourceRoot":"","sources":["../src/code-sessions.consumer.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,kBAAkB,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iCAAiC,EAAE,mCAAmC,EAAE,MAAM,kCAAkC,CAAC;AAC1H,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAEpG,wFAAwF;AACxF,MAAM,CAAC,MAAM,0BAA0B,GAAG,mBAAmB,CAAC;IAC7D,EAAE,EAAE,wBAAwB;IAC5B,IAAI,EAAE,wBAAwB;IAC9B,UAAU,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAClF,OAAO,EAAE;QACR,MAAM,CAAC,iCAAiC,EACvC,EAAE,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,iBAAiB,EAAE,EACvE,GAAG,EAAE,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC;QACvE,MAAM,CAAC,wBAAwB,EAC9B,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAC9D,GAAG,EAAE,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAC;KACnE;CACD,CAAC,CAAC;AACH,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Code Sessions runtime plugin.
3
+ *
4
+ * Registers the canonical `runtime/client` descriptor + scope-gated loader for
5
+ * `id: 'code-sessions'`. Consumers resolve via
6
+ * `getVibesClient<CodeSessionsClient>('code-sessions', runtime)`.
7
+ *
8
+ * Session data lives in platform-web's D1 (`platform.code-sessions` descriptor)
9
+ * and is exposed through `apps/platform-web/src/routes/api/code-sessions/*`.
10
+ * No cloud in-process variant: all callers — hq-web (SvelteKit SSR), consumer
11
+ * hq (local worker), CLI — reach platform.vibes.dev over HTTP.
12
+ */
13
+ export declare const codeSessionsPlugin: import("@vibesdotdev/kernel").RuntimePlugin;
14
+ export default codeSessionsPlugin;
15
+ //# sourceMappingURL=code-sessions.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-sessions.plugin.d.ts","sourceRoot":"","sources":["../src/code-sessions.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA0BH,eAAO,MAAM,kBAAkB,6CA4C7B,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Code Sessions runtime plugin.
3
+ *
4
+ * Registers the canonical `runtime/client` descriptor + scope-gated loader for
5
+ * `id: 'code-sessions'`. Consumers resolve via
6
+ * `getVibesClient<CodeSessionsClient>('code-sessions', runtime)`.
7
+ *
8
+ * Session data lives in platform-web's D1 (`platform.code-sessions` descriptor)
9
+ * and is exposed through `apps/platform-web/src/routes/api/code-sessions/*`.
10
+ * No cloud in-process variant: all callers — hq-web (SvelteKit SSR), consumer
11
+ * hq (local worker), CLI — reach platform.vibes.dev over HTTP.
12
+ */
13
+ import { createRuntimePlugin, loader } from '@vibesdotdev/kernel';
14
+ import codeSessionsApiClientDescriptor from "./api/code-sessions.api-client.descriptor.js";
15
+ import codeSessionsDocsDescriptor from "./docs/code-sessions.docs.descriptor.js";
16
+ import { CODE_SESSION_WORKSPACE_BINDING_ID, CODE_SESSION_WORKSPACE_BINDING_KIND, codeSessionWorkspaceBindingDescriptor, codeSessionWorkspaceBindingExposure, codeSessionWorkspaceBindingKind } from "./workspace/workspace-binding.js";
17
+ import { CODE_SESSIONS_CATALOG_ID, CODE_SESSIONS_CATALOG_KIND, codeSessionsCatalogDescriptor, codeSessionsCatalogExposure, codeSessionsCatalogKind } from "./catalog/session-catalog.js";
18
+ import developerAgentDescriptor from "./agent/developer.agent.descriptor.js";
19
+ import reviewerAgentDescriptor from "./agent/reviewer.agent.descriptor.js";
20
+ import coordinatorAgentDescriptor from "./agent/coordinator.agent.descriptor.js";
21
+ import developerPromptManifestDescriptor from "./agent/developer.prompt.descriptor.js";
22
+ import reviewerPromptManifestDescriptor from "./agent/reviewer.prompt.descriptor.js";
23
+ import coordinatorPromptManifestDescriptor from "./agent/coordinator.prompt.descriptor.js";
24
+ export const codeSessionsPlugin = createRuntimePlugin({
25
+ id: 'code-sessions-api-client',
26
+ name: 'Code Sessions Client',
27
+ description: "Canonical runtime/client for code-session management. All surfaces resolve via getVibesClient<CodeSessionsClient>('code-sessions', runtime).",
28
+ dependencies: ['runtime-client'],
29
+ kinds: [codeSessionWorkspaceBindingKind, codeSessionsCatalogKind],
30
+ descriptors: [
31
+ codeSessionsApiClientDescriptor,
32
+ { id: 'code-sessions.clock', kind: 'runtime/client', name: 'Code Sessions Clock' },
33
+ codeSessionsDocsDescriptor,
34
+ codeSessionWorkspaceBindingDescriptor,
35
+ codeSessionsCatalogDescriptor,
36
+ // Pure metadata — a descriptor, not an implementation — so this stays
37
+ // importable in every scope and the agent is discoverable wherever
38
+ // code-sessions is composed, cloud and consumer alike.
39
+ developerAgentDescriptor,
40
+ reviewerAgentDescriptor,
41
+ coordinatorAgentDescriptor,
42
+ // Each system agent's identity prompt on the one prompts kind; the native loop resolves it by agent id.
43
+ developerPromptManifestDescriptor,
44
+ reviewerPromptManifestDescriptor,
45
+ coordinatorPromptManifestDescriptor
46
+ ],
47
+ loaders: [
48
+ loader('code-sessions.clock', { kind: 'runtime/client' }, () => import("./clock/clock.client.js")),
49
+ loader('code-sessions', { kind: 'runtime/client' }, () => import("./api/code-sessions.api-client.impl.js"))
50
+ ],
51
+ remoteExposures: [
52
+ {
53
+ kindId: CODE_SESSION_WORKSPACE_BINDING_KIND,
54
+ assetId: CODE_SESSION_WORKSPACE_BINDING_ID,
55
+ exposure: codeSessionWorkspaceBindingExposure
56
+ },
57
+ {
58
+ kindId: CODE_SESSIONS_CATALOG_KIND,
59
+ assetId: CODE_SESSIONS_CATALOG_ID,
60
+ exposure: codeSessionsCatalogExposure
61
+ }
62
+ ]
63
+ });
64
+ export default codeSessionsPlugin;
65
+ //# sourceMappingURL=code-sessions.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-sessions.plugin.js","sourceRoot":"","sources":["../src/code-sessions.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,+BAA+B,MAAM,8CAA8C,CAAC;AAC3F,OAAO,0BAA0B,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACN,iCAAiC,EACjC,mCAAmC,EACnC,qCAAqC,EACrC,mCAAmC,EACnC,+BAA+B,EAC/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACN,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,2BAA2B,EAC3B,uBAAuB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,wBAAwB,MAAM,uCAAuC,CAAC;AAC7E,OAAO,uBAAuB,MAAM,sCAAsC,CAAC;AAC3E,OAAO,0BAA0B,MAAM,yCAAyC,CAAC;AACjF,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AACvF,OAAO,gCAAgC,MAAM,uCAAuC,CAAC;AACrF,OAAO,mCAAmC,MAAM,0CAA0C,CAAC;AAE3F,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;IACrD,EAAE,EAAE,0BAA0B;IAC9B,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACV,8IAA8I;IAC/I,YAAY,EAAE,CAAC,gBAAgB,CAAC;IAChC,KAAK,EAAE,CAAC,+BAA+B,EAAE,uBAAuB,CAAC;IACjE,WAAW,EAAE;QACZ,+BAA+B;QAC/B,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,qBAAqB,EAAE;QAClF,0BAA0B;QAC1B,qCAAqC;QACrC,6BAA6B;QAC7B,sEAAsE;QACtE,mEAAmE;QACnE,uDAAuD;QACvD,wBAAwB;QACxB,uBAAuB;QACvB,0BAA0B;QAC1B,wGAAwG;QACxG,iCAAiC;QACjC,gCAAgC;QAChC,mCAAmC;KACnC;IACD,OAAO,EAAE;QACR,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAClG,MAAM,CACL,eAAe,EACf,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAC1B,GAAG,EAAE,CAAC,MAAM,CAAC,wCAAwC,CAAC,CACtD;KACD;IACD,eAAe,EAAE;QAChB;YACC,MAAM,EAAE,mCAAmC;YAC3C,OAAO,EAAE,iCAAiC;YAC1C,QAAQ,EAAE,mCAAmC;SAC7C;QACD;YACC,MAAM,EAAE,0BAA0B;YAClC,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,2BAA2B;SACrC;KACD;CACD,CAAC,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @vibesdotdev/code-sessions — config barrel.
3
+ *
4
+ * Re-exports the session capability resolver so callers can derive the UI path
5
+ * without importing the full client impl.
6
+ */
7
+ export { resolveSessionCapability } from '../capability.ts';
8
+ export { codeSessionPreparationSchema, preparedCodeSessionSchema, type CodeSessionPreparationInput, type PreparedCodeSession } from './preparation.ts';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACN,4BAA4B,EAC5B,yBAAyB,EACzB,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @vibesdotdev/code-sessions — config barrel.
3
+ *
4
+ * Re-exports the session capability resolver so callers can derive the UI path
5
+ * without importing the full client impl.
6
+ */
7
+ export { resolveSessionCapability } from "../capability.js";
8
+ export { codeSessionPreparationSchema, preparedCodeSessionSchema } from "./preparation.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACN,4BAA4B,EAC5B,yBAAyB,EAGzB,MAAM,kBAAkB,CAAC"}