@abyssinia-labs/wake-convex 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +6 -5
  2. package/dist/client/index.d.ts +61 -2
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js +23 -2
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/component/_generated/api.d.ts +4 -0
  7. package/dist/component/_generated/api.d.ts.map +1 -1
  8. package/dist/component/_generated/api.js.map +1 -1
  9. package/dist/component/_generated/component.d.ts +55 -0
  10. package/dist/component/_generated/component.d.ts.map +1 -1
  11. package/dist/component/runs.d.ts +36 -0
  12. package/dist/component/runs.d.ts.map +1 -0
  13. package/dist/component/runs.js +38 -0
  14. package/dist/component/runs.js.map +1 -0
  15. package/dist/component/schema.d.ts +37 -1
  16. package/dist/component/schema.d.ts.map +1 -1
  17. package/dist/component/schema.js +11 -0
  18. package/dist/component/schema.js.map +1 -1
  19. package/dist/component/shape.d.ts +5 -0
  20. package/dist/component/shape.d.ts.map +1 -1
  21. package/dist/component/shape.js +6 -0
  22. package/dist/component/shape.js.map +1 -1
  23. package/dist/component/summonses.d.ts +14 -0
  24. package/dist/component/summonses.d.ts.map +1 -1
  25. package/dist/component/summonses.js +3 -25
  26. package/dist/component/summonses.js.map +1 -1
  27. package/dist/component/views.d.ts +90 -0
  28. package/dist/component/views.d.ts.map +1 -0
  29. package/dist/component/views.js +40 -0
  30. package/dist/component/views.js.map +1 -0
  31. package/dist/component/wire.d.ts +14 -0
  32. package/dist/component/wire.d.ts.map +1 -1
  33. package/dist/component/wire.js +37 -1
  34. package/dist/component/wire.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/client/index.ts +24 -2
  37. package/src/component/_generated/api.ts +4 -0
  38. package/src/component/_generated/component.ts +55 -0
  39. package/src/component/runs.ts +36 -0
  40. package/src/component/schema.ts +11 -0
  41. package/src/component/shape.ts +8 -0
  42. package/src/component/summonses.ts +3 -26
  43. package/src/component/views.ts +42 -0
  44. package/src/component/wire.ts +36 -1
@@ -5,8 +5,9 @@
5
5
  import { v } from "convex/values";
6
6
  import { internal } from "./_generated/api.js";
7
7
  import { internalMutation, mutation, query } from "./_generated/server.js";
8
- import { state, target } from "./schema.js";
8
+ import { target } from "./schema.js";
9
9
  import { checkSummons } from "./shape.js";
10
+ import { summonsView, viewOf } from "./views.js";
10
11
  /** The spec's "nothing has claimed it in thirty minutes". */
11
12
  export const UNCLAIMED_MS = 30 * 60_000;
12
13
  const LIVE = ["asking", "open", "claimed"];
@@ -114,18 +115,6 @@ export const settle = mutation({
114
115
  return ended;
115
116
  },
116
117
  });
117
- const summonsView = v.object({
118
- id: v.string(),
119
- agent: v.string(),
120
- owner: v.string(),
121
- askedBy: v.string(),
122
- kind: v.string(),
123
- state,
124
- at: v.number(),
125
- updatedAt: v.number(),
126
- reason: v.optional(v.string()),
127
- unclaimed: v.boolean(),
128
- });
129
118
  /** Each agent's latest summons about `subject`, for the host to show where it was made. */
130
119
  export const forSubject = query({
131
120
  args: { subject: v.string() },
@@ -141,18 +130,7 @@ export const forSubject = query({
141
130
  if (!seen || row.updatedAt > seen.updatedAt)
142
131
  latest.set(row.agent, row);
143
132
  }
144
- return [...latest.values()].map((row) => ({
145
- id: row._id,
146
- agent: row.agent,
147
- owner: row.owner,
148
- askedBy: row.askedBy,
149
- kind: row.kind,
150
- state: row.state,
151
- at: row.at,
152
- updatedAt: row.updatedAt,
153
- ...(row.reason === undefined ? {} : { reason: row.reason }),
154
- unclaimed: row.state === "open" && row.noticedAt !== undefined,
155
- }));
133
+ return [...latest.values()].map(viewOf);
156
134
  },
157
135
  });
158
136
  /** Half an hour after it opened: if nothing has claimed it, it says so (`unclaimed`). */
@@ -1 +1 @@
1
- {"version":3,"file":"summonses.js","sourceRoot":"","sources":["../../src/component/summonses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summonses.js","sourceRoot":"","sources":["../../src/component/summonses.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import type { Doc } from "./_generated/dataModel.js";
2
+ export declare const summonsView: import("convex/values").VObject<{
3
+ agent: string;
4
+ askedBy: string;
5
+ at: number;
6
+ id: string;
7
+ kind: string;
8
+ owner: string;
9
+ reason?: string | undefined;
10
+ run?: {
11
+ machine: string;
12
+ name: string;
13
+ session?: string | undefined;
14
+ startedAt: number;
15
+ tool: "claude" | "codex" | "cursor";
16
+ } | undefined;
17
+ scope?: string | undefined;
18
+ state: "asking" | "claimed" | "done" | "dropped" | "failed" | "open";
19
+ subject: string;
20
+ target: {
21
+ kind: string;
22
+ ref: string;
23
+ url: string;
24
+ };
25
+ unclaimed: boolean;
26
+ updatedAt: number;
27
+ }, {
28
+ id: import("convex/values").VString<string, "required">;
29
+ agent: import("convex/values").VString<string, "required">;
30
+ owner: import("convex/values").VString<string, "required">;
31
+ askedBy: import("convex/values").VString<string, "required">;
32
+ scope: import("convex/values").VString<string | undefined, "optional">;
33
+ subject: import("convex/values").VString<string, "required">;
34
+ kind: import("convex/values").VString<string, "required">;
35
+ target: import("convex/values").VObject<{
36
+ kind: string;
37
+ ref: string;
38
+ url: string;
39
+ }, {
40
+ kind: import("convex/values").VString<string, "required">;
41
+ ref: import("convex/values").VString<string, "required">;
42
+ url: import("convex/values").VString<string, "required">;
43
+ }, "required", "kind" | "ref" | "url">;
44
+ state: import("convex/values").VUnion<"asking" | "claimed" | "done" | "dropped" | "failed" | "open", [import("convex/values").VLiteral<"asking", "required">, import("convex/values").VLiteral<"open", "required">, import("convex/values").VLiteral<"claimed", "required">, import("convex/values").VLiteral<"done", "required">, import("convex/values").VLiteral<"failed", "required">, import("convex/values").VLiteral<"dropped", "required">], "required", never>;
45
+ at: import("convex/values").VFloat64<number, "required">;
46
+ updatedAt: import("convex/values").VFloat64<number, "required">;
47
+ reason: import("convex/values").VString<string | undefined, "optional">;
48
+ unclaimed: import("convex/values").VBoolean<boolean, "required">;
49
+ /** Its run once Wake said it started. `session` is the owner's to see. */
50
+ run: import("convex/values").VObject<{
51
+ machine: string;
52
+ name: string;
53
+ session?: string | undefined;
54
+ startedAt: number;
55
+ tool: "claude" | "codex" | "cursor";
56
+ } | undefined, {
57
+ name: import("convex/values").VString<string, "required">;
58
+ tool: import("convex/values").VUnion<"claude" | "codex" | "cursor", [import("convex/values").VLiteral<"claude", "required">, import("convex/values").VLiteral<"codex", "required">, import("convex/values").VLiteral<"cursor", "required">], "required", never>;
59
+ session: import("convex/values").VString<string | undefined, "optional">;
60
+ machine: import("convex/values").VString<string, "required">;
61
+ startedAt: import("convex/values").VFloat64<number, "required">;
62
+ }, "optional", "machine" | "name" | "session" | "startedAt" | "tool">;
63
+ }, "required", "agent" | "askedBy" | "at" | "id" | "kind" | "owner" | "reason" | "run" | "run.machine" | "run.name" | "run.session" | "run.startedAt" | "run.tool" | "scope" | "state" | "subject" | "target" | "target.kind" | "target.ref" | "target.url" | "unclaimed" | "updatedAt">;
64
+ export declare function viewOf(row: Doc<"summonses">): {
65
+ id: import("convex/values").GenericId<"summonses">;
66
+ agent: string;
67
+ owner: string;
68
+ askedBy: string;
69
+ scope?: string | undefined;
70
+ subject: string;
71
+ kind: string;
72
+ target: {
73
+ kind: string;
74
+ ref: string;
75
+ url: string;
76
+ };
77
+ state: "asking" | "claimed" | "done" | "dropped" | "failed" | "open";
78
+ at: number;
79
+ updatedAt: number;
80
+ reason?: string | undefined;
81
+ unclaimed: boolean;
82
+ run?: {
83
+ machine: string;
84
+ name: string;
85
+ session?: string | undefined;
86
+ startedAt: number;
87
+ tool: "claude" | "codex" | "cursor";
88
+ } | undefined;
89
+ };
90
+ //# sourceMappingURL=views.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/component/views.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGrD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IActB,0EAA0E;;;;;;;;;;;;;;wRAE1E,CAAC;AAEH,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;EAiB3C"}
@@ -0,0 +1,40 @@
1
+ // A summons as the host reads it back: the same shape from `forSubject`
2
+ // (where it was made) and `runs.forOwner` (what a person's agents did).
3
+ import { v } from "convex/values";
4
+ import { run, state, target } from "./schema.js";
5
+ export const summonsView = v.object({
6
+ id: v.string(),
7
+ agent: v.string(),
8
+ owner: v.string(),
9
+ askedBy: v.string(),
10
+ scope: v.optional(v.string()),
11
+ subject: v.string(),
12
+ kind: v.string(),
13
+ target,
14
+ state,
15
+ at: v.number(),
16
+ updatedAt: v.number(),
17
+ reason: v.optional(v.string()),
18
+ unclaimed: v.boolean(),
19
+ /** Its run once Wake said it started. `session` is the owner's to see. */
20
+ run: v.optional(run),
21
+ });
22
+ export function viewOf(row) {
23
+ return {
24
+ id: row._id,
25
+ agent: row.agent,
26
+ owner: row.owner,
27
+ askedBy: row.askedBy,
28
+ ...(row.scope === undefined ? {} : { scope: row.scope }),
29
+ subject: row.subject,
30
+ kind: row.kind,
31
+ target: row.target,
32
+ state: row.state,
33
+ at: row.at,
34
+ updatedAt: row.updatedAt,
35
+ ...(row.reason === undefined ? {} : { reason: row.reason }),
36
+ unclaimed: row.state === "open" && row.noticedAt !== undefined,
37
+ ...(row.run === undefined ? {} : { run: row.run }),
38
+ };
39
+ }
40
+ //# sourceMappingURL=views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/component/views.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,wEAAwE;AACxE,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM;IACN,KAAK;IACL,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,0EAA0E;IAC1E,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,UAAU,MAAM,CAAC,GAAqB;IAC1C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,GAAG;QACX,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;QACxD,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3D,SAAS,EAAE,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;QAC9D,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC"}
@@ -28,6 +28,20 @@ export declare const claim: import("convex/server").RegisteredMutation<"public",
28
28
  prompt: string;
29
29
  };
30
30
  }>>;
31
+ /**
32
+ * wake:started: the agent is running, under a name people see and the
33
+ * session its owner resumes. A later call for the same run replaces the
34
+ * first (the session id of Codex and Cursor comes after they start).
35
+ */
36
+ export declare const started: import("convex/server").RegisteredMutation<"public", {
37
+ id: string;
38
+ key: string;
39
+ run: {
40
+ name: string;
41
+ session?: string | undefined;
42
+ tool: "claude" | "codex" | "cursor";
43
+ };
44
+ }, Promise<null>>;
31
45
  /** wake:finish: what became of a run this place claimed. */
32
46
  export declare const finish: import("convex/server").RegisteredMutation<"public", {
33
47
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/component/wire.ts"],"names":[],"mappings":"AAkCA,+EAA+E;AAC/E,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;KAkBlB,CAAC;AAEH,4EAA4E;AAC5E,eAAO,MAAM,KAAK;;;;;;;;;QAoB0B,MAAM;;GAEhD,CAAC;AAEH,4DAA4D;AAC5D,eAAO,MAAM,MAAM;;;;;iBAwBjB,CAAC"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/component/wire.ts"],"names":[],"mappings":"AAmCA,+EAA+E;AAC/E,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;KAkBlB,CAAC;AAEH,4EAA4E;AAC5E,eAAO,MAAM,KAAK;;;;;;;;;QAoB0B,MAAM;;GAEhD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,OAAO;;;;;;;;iBA2BlB,CAAC;AAEH,4DAA4D;AAC5D,eAAO,MAAM,MAAM;;;;;iBAwBjB,CAAC"}
@@ -5,7 +5,8 @@
5
5
  import { ConvexError, v } from "convex/values";
6
6
  import { mutation, query } from "./_generated/server.js";
7
7
  import { hashSecret, KEY_SHAPE } from "./keys.js";
8
- import { target } from "./schema.js";
8
+ import { target, tool } from "./schema.js";
9
+ import { isRunReport } from "./shape.js";
9
10
  /** Oldest first, at most this many: Wake runs two at a time. */
10
11
  const PENDING_LIMIT = 50;
11
12
  async function placeOf(ctx, key) {
@@ -70,6 +71,41 @@ export const claim = mutation({
70
71
  return { claimed: true, run: { prompt: row.prompt } };
71
72
  },
72
73
  });
74
+ /**
75
+ * wake:started: the agent is running, under a name people see and the
76
+ * session its owner resumes. A later call for the same run replaces the
77
+ * first (the session id of Codex and Cursor comes after they start).
78
+ */
79
+ export const started = mutation({
80
+ args: {
81
+ key: v.string(),
82
+ id: v.string(),
83
+ run: v.object({ name: v.string(), tool, session: v.optional(v.string()) }),
84
+ },
85
+ returns: v.null(),
86
+ handler: async (ctx, args) => {
87
+ const place = await placeOf(ctx, args.key);
88
+ const id = ctx.db.normalizeId("summonses", args.id);
89
+ const row = id ? await ctx.db.get(id) : null;
90
+ if (!row || row.place !== place._id || row.state !== "claimed")
91
+ return null;
92
+ if (!isRunReport(args.run))
93
+ return null;
94
+ const now = Date.now();
95
+ await ctx.db.patch(row._id, {
96
+ run: {
97
+ name: args.run.name,
98
+ tool: args.run.tool,
99
+ ...(args.run.session === undefined ? {} : { session: args.run.session }),
100
+ machine: place.machine,
101
+ startedAt: row.run?.startedAt ?? now,
102
+ },
103
+ updatedAt: now,
104
+ });
105
+ await ctx.db.patch(place._id, { lastSeenAt: now });
106
+ return null;
107
+ },
108
+ });
73
109
  /** wake:finish: what became of a run this place claimed. */
74
110
  export const finish = mutation({
75
111
  args: {
@@ -1 +1 @@
1
- {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/component/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/component/wire.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abyssinia-labs/wake-convex",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "The server half of wake/v1 as a Convex component: let Wake start your users' agents",
5
5
  "keywords": [
6
6
  "convex",
@@ -120,6 +120,15 @@ export class Wake {
120
120
  return await ctx.runQuery(this.component.summonses.forSubject, { subject });
121
121
  }
122
122
 
123
+ /**
124
+ * What a person's agents were asked and did, newest first, without the
125
+ * dropped: for a runs list outside the comments. Check the caller is
126
+ * `owner` first; `session` in each `run` is theirs alone.
127
+ */
128
+ async forOwner(ctx: RunQuery, o: { owner: string; scope?: string; limit?: number }) {
129
+ return await ctx.runQuery(this.component.runs.forOwner, o);
130
+ }
131
+
123
132
  /** An agent's paired machines. */
124
133
  async places(ctx: RunQuery, agent: string) {
125
134
  return await ctx.runQuery(this.component.places.list, { agent });
@@ -145,9 +154,10 @@ export class Wake {
145
154
  }
146
155
 
147
156
  /**
148
- * wake:pending, wake:claim and wake:finish, for the host's `convex/wake.ts`:
157
+ * wake:pending, wake:claim, wake:started and wake:finish, for the host's
158
+ * `convex/wake.ts`:
149
159
  *
150
- * export const { pending, claim, finish } = exposeApi(components.wake, { app: "acme" });
160
+ * export const { pending, claim, started, finish } = exposeApi(components.wake, { app: "acme" });
151
161
  *
152
162
  * They take no auth: the place key is the credential (the spec), and the
153
163
  * component checks it.
@@ -164,6 +174,18 @@ export function exposeApi(component: ComponentApi, options: WakeOptions) {
164
174
  args: { key: v.string(), id: v.string() },
165
175
  handler: async (ctx, args) => await ctx.runMutation(component.wire.claim, args),
166
176
  }),
177
+ started: mutationGeneric({
178
+ args: {
179
+ key: v.string(),
180
+ id: v.string(),
181
+ run: v.object({
182
+ name: v.string(),
183
+ tool: v.union(v.literal("claude"), v.literal("codex"), v.literal("cursor")),
184
+ session: v.optional(v.string()),
185
+ }),
186
+ },
187
+ handler: async (ctx, args) => await ctx.runMutation(component.wire.started, args),
188
+ }),
167
189
  finish: mutationGeneric({
168
190
  args: {
169
191
  key: v.string(),
@@ -10,9 +10,11 @@
10
10
 
11
11
  import type * as keys from "../keys.js";
12
12
  import type * as places from "../places.js";
13
+ import type * as runs from "../runs.js";
13
14
  import type * as scopes from "../scopes.js";
14
15
  import type * as shape from "../shape.js";
15
16
  import type * as summonses from "../summonses.js";
17
+ import type * as views from "../views.js";
16
18
  import type * as wire from "../wire.js";
17
19
 
18
20
  import type {
@@ -25,9 +27,11 @@ import { anyApi, componentsGeneric } from "convex/server";
25
27
  const fullApi: ApiFromModules<{
26
28
  keys: typeof keys;
27
29
  places: typeof places;
30
+ runs: typeof runs;
28
31
  scopes: typeof scopes;
29
32
  shape: typeof shape;
30
33
  summonses: typeof summonses;
34
+ views: typeof views;
31
35
  wire: typeof wire;
32
36
  }> = anyApi as any;
33
37
 
@@ -91,6 +91,36 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
91
91
  Name
92
92
  >;
93
93
  };
94
+ runs: {
95
+ forOwner: FunctionReference<
96
+ "query",
97
+ "internal",
98
+ { limit?: number; owner: string; scope?: string },
99
+ Array<{
100
+ agent: string;
101
+ askedBy: string;
102
+ at: number;
103
+ id: string;
104
+ kind: string;
105
+ owner: string;
106
+ reason?: string;
107
+ run?: {
108
+ machine: string;
109
+ name: string;
110
+ session?: string;
111
+ startedAt: number;
112
+ tool: "claude" | "codex" | "cursor";
113
+ };
114
+ scope?: string;
115
+ state: "asking" | "open" | "claimed" | "done" | "failed" | "dropped";
116
+ subject: string;
117
+ target: { kind: string; ref: string; url: string };
118
+ unclaimed: boolean;
119
+ updatedAt: number;
120
+ }>,
121
+ Name
122
+ >;
123
+ };
94
124
  scopes: {
95
125
  deleteScope: FunctionReference<
96
126
  "mutation",
@@ -120,7 +150,17 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
120
150
  kind: string;
121
151
  owner: string;
122
152
  reason?: string;
153
+ run?: {
154
+ machine: string;
155
+ name: string;
156
+ session?: string;
157
+ startedAt: number;
158
+ tool: "claude" | "codex" | "cursor";
159
+ };
160
+ scope?: string;
123
161
  state: "asking" | "open" | "claimed" | "done" | "failed" | "dropped";
162
+ subject: string;
163
+ target: { kind: string; ref: string; url: string };
124
164
  unclaimed: boolean;
125
165
  updatedAt: number;
126
166
  }>,
@@ -193,5 +233,20 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
193
233
  }>,
194
234
  Name
195
235
  >;
236
+ started: FunctionReference<
237
+ "mutation",
238
+ "internal",
239
+ {
240
+ id: string;
241
+ key: string;
242
+ run: {
243
+ name: string;
244
+ session?: string;
245
+ tool: "claude" | "codex" | "cursor";
246
+ };
247
+ },
248
+ null,
249
+ Name
250
+ >;
196
251
  };
197
252
  };
@@ -0,0 +1,36 @@
1
+ // What a person's agents were asked and did, newest first, across every
2
+ // subject: for a host's own "runs" list (a top bar, later a phone), where a
3
+ // run's name, state and session sit outside the comment that asked.
4
+ import { v } from "convex/values";
5
+ import { query } from "./_generated/server.js";
6
+ import { summonsView, viewOf } from "./views.js";
7
+
8
+ const MOST = 50;
9
+ /** Rows read at most, so a person with many dropped or other-scope summonses costs a bounded read. */
10
+ const SCAN = 500;
11
+
12
+ /**
13
+ * The owner's latest summonses, newest change first, at most `limit` (50),
14
+ * in one scope when given. Dropped ones are left out: nothing ran. The
15
+ * host checks the caller is `owner` first.
16
+ */
17
+ export const forOwner = query({
18
+ args: { owner: v.string(), scope: v.optional(v.string()), limit: v.optional(v.number()) },
19
+ returns: v.array(summonsView),
20
+ handler: async (ctx, args) => {
21
+ const limit = Math.max(1, Math.min(args.limit ?? 20, MOST));
22
+ const out = [];
23
+ const rows = await ctx.db
24
+ .query("summonses")
25
+ .withIndex("by_owner_updated", (q) => q.eq("owner", args.owner))
26
+ .order("desc")
27
+ .take(SCAN);
28
+ for (const row of rows) {
29
+ if (row.state === "dropped") continue;
30
+ if (args.scope !== undefined && row.scope !== args.scope) continue;
31
+ out.push(viewOf(row));
32
+ if (out.length >= limit) break;
33
+ }
34
+ return out;
35
+ },
36
+ });
@@ -14,6 +14,14 @@ export const state = v.union(
14
14
  v.literal("dropped"),
15
15
  );
16
16
  export const target = v.object({ kind: v.string(), ref: v.string(), url: v.string() });
17
+ /** What `wake:started` says about a claimed summons's run. */
18
+ export const run = v.object({
19
+ name: v.string(),
20
+ tool,
21
+ session: v.optional(v.string()),
22
+ machine: v.string(),
23
+ startedAt: v.number(),
24
+ });
17
25
 
18
26
  export default defineSchema({
19
27
  // Wake on one machine, paired to one agent. Its key is kept as a hash.
@@ -71,10 +79,13 @@ export default defineSchema({
71
79
  noticedAt: v.optional(v.number()),
72
80
  place: v.optional(v.id("places")),
73
81
  claimedAt: v.optional(v.number()),
82
+ /** Its run, once Wake says the agent is running (`wake:started`). */
83
+ run: v.optional(run),
74
84
  finishedAt: v.optional(v.number()),
75
85
  })
76
86
  .index("by_subject_agent", ["subject", "agent", "state"])
77
87
  .index("by_agent_state", ["agent", "state", "at"])
78
88
  .index("by_owner_state", ["owner", "state", "at"])
89
+ .index("by_owner_updated", ["owner", "updatedAt"])
79
90
  .index("by_scope", ["scope"]),
80
91
  });
@@ -55,3 +55,11 @@ export function checkSummons(s: SummonsShape): void {
55
55
  if (s.branch !== undefined && !isBranch(s.branch)) bad("branch");
56
56
  if (s.prompt.trim() === "" || s.prompt.length > MAX_PROMPT) bad("prompt");
57
57
  }
58
+
59
+ const RUN_NAME = /^[a-z]{1,16}-[a-z]{1,16}$/;
60
+ const SESSION = /^[A-Za-z0-9_-]{1,128}$/;
61
+
62
+ /** `wake:started`'s rules: a call that breaks one is ignored, not stored. */
63
+ export function isRunReport(r: { name: string; session?: string }): boolean {
64
+ return RUN_NAME.test(r.name) && (r.session === undefined || SESSION.test(r.session));
65
+ }
@@ -6,8 +6,9 @@ import { v } from "convex/values";
6
6
  import { internal } from "./_generated/api.js";
7
7
  import type { Doc, Id } from "./_generated/dataModel.js";
8
8
  import { internalMutation, type MutationCtx, mutation, query } from "./_generated/server.js";
9
- import { state, target } from "./schema.js";
9
+ import { target } from "./schema.js";
10
10
  import { checkSummons } from "./shape.js";
11
+ import { summonsView, viewOf } from "./views.js";
11
12
 
12
13
  /** The spec's "nothing has claimed it in thirty minutes". */
13
14
  export const UNCLAIMED_MS = 30 * 60_000;
@@ -123,19 +124,6 @@ export const settle = mutation({
123
124
  },
124
125
  });
125
126
 
126
- const summonsView = v.object({
127
- id: v.string(),
128
- agent: v.string(),
129
- owner: v.string(),
130
- askedBy: v.string(),
131
- kind: v.string(),
132
- state,
133
- at: v.number(),
134
- updatedAt: v.number(),
135
- reason: v.optional(v.string()),
136
- unclaimed: v.boolean(),
137
- });
138
-
139
127
  /** Each agent's latest summons about `subject`, for the host to show where it was made. */
140
128
  export const forSubject = query({
141
129
  args: { subject: v.string() },
@@ -150,18 +138,7 @@ export const forSubject = query({
150
138
  const seen = latest.get(row.agent);
151
139
  if (!seen || row.updatedAt > seen.updatedAt) latest.set(row.agent, row);
152
140
  }
153
- return [...latest.values()].map((row) => ({
154
- id: row._id,
155
- agent: row.agent,
156
- owner: row.owner,
157
- askedBy: row.askedBy,
158
- kind: row.kind,
159
- state: row.state,
160
- at: row.at,
161
- updatedAt: row.updatedAt,
162
- ...(row.reason === undefined ? {} : { reason: row.reason }),
163
- unclaimed: row.state === "open" && row.noticedAt !== undefined,
164
- }));
141
+ return [...latest.values()].map(viewOf);
165
142
  },
166
143
  });
167
144