@pennixrv/trellis-core 0.7.0-beta.8 → 0.7.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.
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/mem/adapters/claude.d.ts +1 -1
- package/dist/mem/adapters/claude.js +1 -1
- package/dist/mem/adapters/codex.d.ts +1 -1
- package/dist/mem/adapters/codex.js +1 -1
- package/dist/mem/adapters/devin.d.ts +1 -1
- package/dist/mem/adapters/devin.js +1 -1
- package/dist/mem/adapters/grok.d.ts +1 -1
- package/dist/mem/adapters/grok.js +1 -1
- package/dist/mem/adapters/zcode.d.ts +1 -1
- package/dist/mem/adapters/zcode.js +1 -1
- package/dist/mem/index.d.ts +3 -3
- package/dist/mem/index.js +3 -3
- package/dist/mem/phase.d.ts +4 -4
- package/dist/mem/phase.d.ts.map +1 -1
- package/dist/mem/phase.js +23 -26
- package/dist/mem/phase.js.map +1 -1
- package/dist/mem/sessions.js +2 -2
- package/dist/mem/sessions.js.map +1 -1
- package/dist/mem/types.d.ts +6 -6
- package/dist/mem/types.d.ts.map +1 -1
- package/dist/mem/types.js +3 -3
- package/dist/task/index.d.ts +2 -2
- package/dist/task/index.d.ts.map +1 -1
- package/dist/task/index.js +2 -2
- package/dist/task/index.js.map +1 -1
- package/dist/task/phase.d.ts +61 -26
- package/dist/task/phase.d.ts.map +1 -1
- package/dist/task/phase.js +152 -21
- package/dist/task/phase.js.map +1 -1
- package/dist/teamwork/api/assert.d.ts +3 -0
- package/dist/teamwork/api/assert.d.ts.map +1 -0
- package/dist/teamwork/api/assert.js +11 -0
- package/dist/teamwork/api/assert.js.map +1 -0
- package/dist/{channel → teamwork}/api/context.d.ts +8 -8
- package/dist/teamwork/api/context.d.ts.map +1 -0
- package/dist/{channel → teamwork}/api/context.js +32 -32
- package/dist/teamwork/api/context.js.map +1 -0
- package/dist/teamwork/api/coordination.d.ts +40 -0
- package/dist/teamwork/api/coordination.d.ts.map +1 -0
- package/dist/teamwork/api/coordination.js +50 -0
- package/dist/teamwork/api/coordination.js.map +1 -0
- package/dist/teamwork/api/create.d.ts +9 -0
- package/dist/teamwork/api/create.d.ts.map +1 -0
- package/dist/{channel → teamwork}/api/create.js +17 -20
- package/dist/teamwork/api/create.js.map +1 -0
- package/dist/{channel → teamwork}/api/inbox.d.ts +9 -9
- package/dist/teamwork/api/inbox.d.ts.map +1 -0
- package/dist/{channel → teamwork}/api/inbox.js +22 -22
- package/dist/teamwork/api/inbox.js.map +1 -0
- package/dist/{channel → teamwork}/api/interrupt.d.ts +5 -5
- package/dist/teamwork/api/interrupt.d.ts.map +1 -0
- package/dist/{channel → teamwork}/api/interrupt.js +10 -10
- package/dist/teamwork/api/interrupt.js.map +1 -0
- package/dist/{channel → teamwork}/api/post-thread.d.ts +4 -4
- package/dist/teamwork/api/post-thread.d.ts.map +1 -0
- package/dist/{channel → teamwork}/api/post-thread.js +13 -13
- package/dist/teamwork/api/post-thread.js.map +1 -0
- package/dist/teamwork/api/read.d.ts +17 -0
- package/dist/teamwork/api/read.d.ts.map +1 -0
- package/dist/{channel → teamwork}/api/read.js +17 -17
- package/dist/teamwork/api/read.js.map +1 -0
- package/dist/teamwork/api/resolve.d.ts +21 -0
- package/dist/teamwork/api/resolve.d.ts.map +1 -0
- package/dist/teamwork/api/resolve.js +28 -0
- package/dist/teamwork/api/resolve.js.map +1 -0
- package/dist/{channel → teamwork}/api/runtime.d.ts +4 -4
- package/dist/teamwork/api/runtime.d.ts.map +1 -0
- package/dist/teamwork/api/runtime.js.map +1 -0
- package/dist/teamwork/api/send.d.ts +4 -0
- package/dist/teamwork/api/send.d.ts.map +1 -0
- package/dist/{channel → teamwork}/api/send.js +7 -7
- package/dist/teamwork/api/send.js.map +1 -0
- package/dist/{channel → teamwork}/api/spawn.d.ts +1 -1
- package/dist/teamwork/api/spawn.d.ts.map +1 -0
- package/dist/teamwork/api/spawn.js +54 -0
- package/dist/teamwork/api/spawn.js.map +1 -0
- package/dist/teamwork/api/title.d.ts +5 -0
- package/dist/teamwork/api/title.d.ts.map +1 -0
- package/dist/{channel → teamwork}/api/title.js +12 -12
- package/dist/teamwork/api/title.js.map +1 -0
- package/dist/{channel → teamwork}/api/types.d.ts +11 -13
- package/dist/teamwork/api/types.d.ts.map +1 -0
- package/dist/{channel → teamwork}/api/types.js.map +1 -1
- package/dist/teamwork/api/watch-sessions.d.ts +40 -0
- package/dist/teamwork/api/watch-sessions.d.ts.map +1 -0
- package/dist/{channel/api/watch-channels.js → teamwork/api/watch-sessions.js} +16 -16
- package/dist/teamwork/api/watch-sessions.js.map +1 -0
- package/dist/teamwork/api/watch.d.ts +11 -0
- package/dist/teamwork/api/watch.d.ts.map +1 -0
- package/dist/{channel → teamwork}/api/watch.js +5 -5
- package/dist/teamwork/api/watch.js.map +1 -0
- package/dist/{channel → teamwork}/api/workers.d.ts +10 -10
- package/dist/teamwork/api/workers.d.ts.map +1 -0
- package/dist/{channel → teamwork}/api/workers.js +14 -14
- package/dist/teamwork/api/workers.js.map +1 -0
- package/dist/teamwork/index.d.ts +42 -0
- package/dist/teamwork/index.d.ts.map +1 -0
- package/dist/teamwork/index.js +25 -0
- package/dist/teamwork/index.js.map +1 -0
- package/dist/teamwork/internal/store/coordination.d.ts +64 -0
- package/dist/teamwork/internal/store/coordination.d.ts.map +1 -0
- package/dist/teamwork/internal/store/coordination.js +311 -0
- package/dist/teamwork/internal/store/coordination.js.map +1 -0
- package/dist/teamwork/internal/store/delivery.d.ts.map +1 -0
- package/dist/teamwork/internal/store/delivery.js.map +1 -0
- package/dist/teamwork/internal/store/events.d.ts +232 -0
- package/dist/teamwork/internal/store/events.d.ts.map +1 -0
- package/dist/{channel → teamwork}/internal/store/events.js +24 -21
- package/dist/teamwork/internal/store/events.js.map +1 -0
- package/dist/{channel → teamwork}/internal/store/filter.d.ts +5 -5
- package/dist/teamwork/internal/store/filter.d.ts.map +1 -0
- package/dist/{channel → teamwork}/internal/store/filter.js +1 -1
- package/dist/teamwork/internal/store/filter.js.map +1 -0
- package/dist/{channel → teamwork}/internal/store/inbox.d.ts +3 -3
- package/dist/teamwork/internal/store/inbox.d.ts.map +1 -0
- package/dist/{channel → teamwork}/internal/store/inbox.js +1 -1
- package/dist/teamwork/internal/store/inbox.js.map +1 -0
- package/dist/teamwork/internal/store/lock.d.ts.map +1 -0
- package/dist/{channel → teamwork}/internal/store/lock.js +1 -1
- package/dist/teamwork/internal/store/lock.js.map +1 -0
- package/dist/{channel → teamwork}/internal/store/paths.d.ts +17 -23
- package/dist/teamwork/internal/store/paths.d.ts.map +1 -0
- package/dist/{channel → teamwork}/internal/store/paths.js +44 -98
- package/dist/teamwork/internal/store/paths.js.map +1 -0
- package/dist/{channel → teamwork}/internal/store/schema.d.ts +12 -19
- package/dist/teamwork/internal/store/schema.d.ts.map +1 -0
- package/dist/{channel → teamwork}/internal/store/schema.js +4 -7
- package/dist/teamwork/internal/store/schema.js.map +1 -0
- package/dist/{channel → teamwork}/internal/store/seq.d.ts +2 -2
- package/dist/teamwork/internal/store/seq.d.ts.map +1 -0
- package/dist/{channel → teamwork}/internal/store/seq.js +3 -3
- package/dist/teamwork/internal/store/seq.js.map +1 -0
- package/dist/teamwork/internal/store/teamwork-session-metadata.d.ts +15 -0
- package/dist/teamwork/internal/store/teamwork-session-metadata.d.ts.map +1 -0
- package/dist/{channel/internal/store/channel-metadata.js → teamwork/internal/store/teamwork-session-metadata.js} +13 -27
- package/dist/teamwork/internal/store/teamwork-session-metadata.js.map +1 -0
- package/dist/{channel → teamwork}/internal/store/thread-state.d.ts +4 -4
- package/dist/teamwork/internal/store/thread-state.d.ts.map +1 -0
- package/dist/{channel → teamwork}/internal/store/thread-state.js +1 -1
- package/dist/teamwork/internal/store/thread-state.js.map +1 -0
- package/dist/teamwork/internal/store/watch.d.ts +10 -0
- package/dist/teamwork/internal/store/watch.d.ts.map +1 -0
- package/dist/{channel → teamwork}/internal/store/watch.js +6 -6
- package/dist/teamwork/internal/store/watch.js.map +1 -0
- package/dist/{channel → teamwork}/internal/store/worker-state.d.ts +7 -9
- package/dist/teamwork/internal/store/worker-state.d.ts.map +1 -0
- package/dist/{channel → teamwork}/internal/store/worker-state.js +6 -29
- package/dist/teamwork/internal/store/worker-state.js.map +1 -0
- package/package.json +7 -7
- package/dist/channel/api/assert.d.ts +0 -3
- package/dist/channel/api/assert.d.ts.map +0 -1
- package/dist/channel/api/assert.js +0 -11
- package/dist/channel/api/assert.js.map +0 -1
- package/dist/channel/api/context.d.ts.map +0 -1
- package/dist/channel/api/context.js.map +0 -1
- package/dist/channel/api/create.d.ts +0 -9
- package/dist/channel/api/create.d.ts.map +0 -1
- package/dist/channel/api/create.js.map +0 -1
- package/dist/channel/api/inbox.d.ts.map +0 -1
- package/dist/channel/api/inbox.js.map +0 -1
- package/dist/channel/api/interrupt.d.ts.map +0 -1
- package/dist/channel/api/interrupt.js.map +0 -1
- package/dist/channel/api/post-thread.d.ts.map +0 -1
- package/dist/channel/api/post-thread.js.map +0 -1
- package/dist/channel/api/read.d.ts +0 -17
- package/dist/channel/api/read.d.ts.map +0 -1
- package/dist/channel/api/read.js.map +0 -1
- package/dist/channel/api/resolve.d.ts +0 -21
- package/dist/channel/api/resolve.d.ts.map +0 -1
- package/dist/channel/api/resolve.js +0 -28
- package/dist/channel/api/resolve.js.map +0 -1
- package/dist/channel/api/runtime.d.ts.map +0 -1
- package/dist/channel/api/runtime.js.map +0 -1
- package/dist/channel/api/send.d.ts +0 -4
- package/dist/channel/api/send.d.ts.map +0 -1
- package/dist/channel/api/send.js.map +0 -1
- package/dist/channel/api/spawn.d.ts.map +0 -1
- package/dist/channel/api/spawn.js +0 -74
- package/dist/channel/api/spawn.js.map +0 -1
- package/dist/channel/api/title.d.ts +0 -5
- package/dist/channel/api/title.d.ts.map +0 -1
- package/dist/channel/api/title.js.map +0 -1
- package/dist/channel/api/types.d.ts.map +0 -1
- package/dist/channel/api/watch-channels.d.ts +0 -40
- package/dist/channel/api/watch-channels.d.ts.map +0 -1
- package/dist/channel/api/watch-channels.js.map +0 -1
- package/dist/channel/api/watch.d.ts +0 -11
- package/dist/channel/api/watch.d.ts.map +0 -1
- package/dist/channel/api/watch.js.map +0 -1
- package/dist/channel/api/workers.d.ts.map +0 -1
- package/dist/channel/api/workers.js.map +0 -1
- package/dist/channel/index.d.ts +0 -38
- package/dist/channel/index.d.ts.map +0 -1
- package/dist/channel/index.js +0 -23
- package/dist/channel/index.js.map +0 -1
- package/dist/channel/internal/store/channel-metadata.d.ts +0 -23
- package/dist/channel/internal/store/channel-metadata.d.ts.map +0 -1
- package/dist/channel/internal/store/channel-metadata.js.map +0 -1
- package/dist/channel/internal/store/delivery.d.ts.map +0 -1
- package/dist/channel/internal/store/delivery.js.map +0 -1
- package/dist/channel/internal/store/events.d.ts +0 -221
- package/dist/channel/internal/store/events.d.ts.map +0 -1
- package/dist/channel/internal/store/events.js.map +0 -1
- package/dist/channel/internal/store/filter.d.ts.map +0 -1
- package/dist/channel/internal/store/filter.js.map +0 -1
- package/dist/channel/internal/store/inbox.d.ts.map +0 -1
- package/dist/channel/internal/store/inbox.js.map +0 -1
- package/dist/channel/internal/store/lock.d.ts.map +0 -1
- package/dist/channel/internal/store/lock.js.map +0 -1
- package/dist/channel/internal/store/paths.d.ts.map +0 -1
- package/dist/channel/internal/store/paths.js.map +0 -1
- package/dist/channel/internal/store/schema.d.ts.map +0 -1
- package/dist/channel/internal/store/schema.js.map +0 -1
- package/dist/channel/internal/store/seq.d.ts.map +0 -1
- package/dist/channel/internal/store/seq.js.map +0 -1
- package/dist/channel/internal/store/thread-state.d.ts.map +0 -1
- package/dist/channel/internal/store/thread-state.js.map +0 -1
- package/dist/channel/internal/store/watch.d.ts +0 -10
- package/dist/channel/internal/store/watch.d.ts.map +0 -1
- package/dist/channel/internal/store/watch.js.map +0 -1
- package/dist/channel/internal/store/worker-state.d.ts.map +0 -1
- package/dist/channel/internal/store/worker-state.js.map +0 -1
- /package/dist/{channel → teamwork}/api/runtime.js +0 -0
- /package/dist/{channel → teamwork}/api/types.js +0 -0
- /package/dist/{channel → teamwork}/internal/store/delivery.d.ts +0 -0
- /package/dist/{channel → teamwork}/internal/store/delivery.js +0 -0
- /package/dist/{channel → teamwork}/internal/store/lock.d.ts +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { sessionDir, resolveTeamworkSessionProjectForCreate, resolveExistingTeamworkSession, } from "../internal/store/paths.js";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve a `TeamworkSessionRef` honoring `--scope`, an explicit `projectKey`,
|
|
4
|
+
* or cwd-derived defaults. Mirrors the CLI's scope-resolution rules so
|
|
5
|
+
* downstream consumers behave the same way.
|
|
6
|
+
*/
|
|
7
|
+
export function resolveTeamworkSession(opts) {
|
|
8
|
+
if (opts.projectKey) {
|
|
9
|
+
const project = opts.projectKey;
|
|
10
|
+
return {
|
|
11
|
+
name: opts.sessionId,
|
|
12
|
+
scope: opts.scope ?? "project",
|
|
13
|
+
project,
|
|
14
|
+
dir: sessionDir(opts.sessionId, project),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
if (opts.forCreate) {
|
|
18
|
+
return resolveTeamworkSessionProjectForCreate(opts.sessionId, {
|
|
19
|
+
scope: opts.scope,
|
|
20
|
+
cwd: opts.cwd,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return resolveExistingTeamworkSession(opts.sessionId, {
|
|
24
|
+
scope: opts.scope,
|
|
25
|
+
cwd: opts.cwd,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/teamwork/api/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,sCAAsC,EACtC,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AAoBpC;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAmC;IACxE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;QAChC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;YAC9B,OAAO;YACP,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;SACzC,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,sCAAsC,CAAC,IAAI,CAAC,SAAS,EAAE;YAC5D,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;IACL,CAAC;IACD,OAAO,8BAA8B,CAAC,IAAI,CAAC,SAAS,EAAE;QACpD,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
* {@link interruptWorker}.
|
|
9
9
|
*/
|
|
10
10
|
import type { InterruptMethod, InterruptOutcome, InterruptReason } from "../internal/store/events.js";
|
|
11
|
-
import type {
|
|
11
|
+
import type { TeamworkSessionRef, TeamworkSessionScope, InboxPolicy } from "../internal/store/schema.js";
|
|
12
12
|
export interface WorkerStartInput {
|
|
13
|
-
|
|
13
|
+
sessionId: TeamworkSessionRef;
|
|
14
14
|
workerId: string;
|
|
15
15
|
cwd: string;
|
|
16
16
|
systemPrompt: string;
|
|
@@ -52,8 +52,8 @@ export interface WorkerRuntime {
|
|
|
52
52
|
stop?(input: WorkerStopInput): Promise<WorkerStopResult>;
|
|
53
53
|
}
|
|
54
54
|
export interface SpawnWorkerInput {
|
|
55
|
-
|
|
56
|
-
scope?:
|
|
55
|
+
sessionId: string;
|
|
56
|
+
scope?: TeamworkSessionScope;
|
|
57
57
|
projectKey?: string;
|
|
58
58
|
cwd: string;
|
|
59
59
|
by: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACZ,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,SAAS,GAAG,iBAAiB,GAAG,QAAQ,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC7D,SAAS,CAAC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/teamwork/api/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAC;AAIrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAwD/B"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { appendEvent,
|
|
1
|
+
import { appendEvent, readTeamworkEvents, } from "../internal/store/events.js";
|
|
2
2
|
import { classifyDelivery } from "../internal/store/delivery.js";
|
|
3
3
|
import { reduceWorkerRegistry } from "../internal/store/worker-state.js";
|
|
4
|
-
import {
|
|
4
|
+
import { resolveTeamworkSession } from "./resolve.js";
|
|
5
5
|
export async function sendMessage(opts) {
|
|
6
|
-
const ref =
|
|
7
|
-
|
|
6
|
+
const ref = resolveTeamworkSession({
|
|
7
|
+
sessionId: opts.sessionId,
|
|
8
8
|
...(opts.scope !== undefined ? { scope: opts.scope } : {}),
|
|
9
9
|
...(opts.projectKey !== undefined ? { projectKey: opts.projectKey } : {}),
|
|
10
10
|
...(opts.cwd !== undefined ? { cwd: opts.cwd } : {}),
|
|
11
11
|
});
|
|
12
|
-
const event = (await appendEvent(opts.
|
|
12
|
+
const event = (await appendEvent(opts.sessionId, {
|
|
13
13
|
kind: "message",
|
|
14
14
|
by: opts.by,
|
|
15
15
|
...(opts.idempotencyKey !== undefined
|
|
@@ -27,11 +27,11 @@ export async function sendMessage(opts) {
|
|
|
27
27
|
const mode = opts.deliveryMode ?? "appendOnly";
|
|
28
28
|
if (mode !== "appendOnly" && event.to !== undefined) {
|
|
29
29
|
const targets = Array.isArray(event.to) ? event.to : [event.to];
|
|
30
|
-
const events = await
|
|
30
|
+
const events = await readTeamworkEvents(opts.sessionId, ref.project);
|
|
31
31
|
const registry = reduceWorkerRegistry(events);
|
|
32
32
|
const failures = classifyDelivery(registry, targets, mode);
|
|
33
33
|
for (const failure of failures) {
|
|
34
|
-
await appendEvent(opts.
|
|
34
|
+
await appendEvent(opts.sessionId, {
|
|
35
35
|
kind: "undeliverable",
|
|
36
36
|
by: opts.by,
|
|
37
37
|
...(opts.idempotencyKey !== undefined
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/teamwork/api/send.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { SpawnWorkerInput, WorkerRuntime } from "./runtime.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Spawn a worker through a provider-injected runtime.
|
|
5
5
|
*
|
|
6
|
-
* Core resolves the
|
|
6
|
+
* Core resolves the Teamwork Session, asks the injected runtime to start the
|
|
7
7
|
* worker process, appends the durable `spawned` event (with runtime
|
|
8
8
|
* metadata and the selected inbox policy), and returns the projected
|
|
9
9
|
* {@link WorkerState}. The runtime owns process launch details; core
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/spawn.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EAEd,MAAM,cAAc,CAAC;AAEtB;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,CAkDtB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { appendEvent, readTeamworkEvents, } from "../internal/store/events.js";
|
|
2
|
+
import { DEFAULT_INBOX_POLICY } from "../internal/store/inbox.js";
|
|
3
|
+
import { reduceWorkerRegistry, } from "../internal/store/worker-state.js";
|
|
4
|
+
import { resolveTeamworkSession } from "./resolve.js";
|
|
5
|
+
/**
|
|
6
|
+
* Spawn a worker through a provider-injected runtime.
|
|
7
|
+
*
|
|
8
|
+
* Core resolves the Teamwork Session, asks the injected runtime to start the
|
|
9
|
+
* worker process, appends the durable `spawned` event (with runtime
|
|
10
|
+
* metadata and the selected inbox policy), and returns the projected
|
|
11
|
+
* {@link WorkerState}. The runtime owns process launch details; core
|
|
12
|
+
* owns event writes and state projection.
|
|
13
|
+
*/
|
|
14
|
+
export async function spawnWorker(input, runtime) {
|
|
15
|
+
const ref = resolveTeamworkSession({
|
|
16
|
+
sessionId: input.sessionId,
|
|
17
|
+
...(input.scope !== undefined ? { scope: input.scope } : {}),
|
|
18
|
+
...(input.projectKey !== undefined
|
|
19
|
+
? { projectKey: input.projectKey }
|
|
20
|
+
: {}),
|
|
21
|
+
...(input.cwd !== undefined ? { cwd: input.cwd } : {}),
|
|
22
|
+
});
|
|
23
|
+
const startInput = {
|
|
24
|
+
sessionId: ref,
|
|
25
|
+
workerId: input.workerId,
|
|
26
|
+
cwd: input.cwd,
|
|
27
|
+
systemPrompt: input.systemPrompt,
|
|
28
|
+
...(input.model !== undefined ? { model: input.model } : {}),
|
|
29
|
+
...(input.resume !== undefined ? { resume: input.resume } : {}),
|
|
30
|
+
};
|
|
31
|
+
const handle = await runtime.start(startInput);
|
|
32
|
+
const inboxPolicy = input.inboxPolicy ?? DEFAULT_INBOX_POLICY;
|
|
33
|
+
await appendEvent(input.sessionId, {
|
|
34
|
+
kind: "spawned",
|
|
35
|
+
by: input.by,
|
|
36
|
+
as: input.workerId,
|
|
37
|
+
inboxPolicy,
|
|
38
|
+
...(input.provider ?? handle.provider
|
|
39
|
+
? { provider: input.provider ?? handle.provider }
|
|
40
|
+
: {}),
|
|
41
|
+
...(handle.pid !== undefined ? { pid: handle.pid } : {}),
|
|
42
|
+
...(input.agent !== undefined ? { agent: input.agent } : {}),
|
|
43
|
+
...(input.meta !== undefined ? { meta: input.meta } : {}),
|
|
44
|
+
}, ref.project);
|
|
45
|
+
const events = await readTeamworkEvents(input.sessionId, ref.project);
|
|
46
|
+
const registry = reduceWorkerRegistry(events, ref);
|
|
47
|
+
const state = registry.workers.find((w) => w.workerId === input.workerId);
|
|
48
|
+
if (!state) {
|
|
49
|
+
// Should never happen — we just appended the spawned event.
|
|
50
|
+
throw new Error(`spawnWorker: worker '${input.workerId}' missing from registry after spawn`);
|
|
51
|
+
}
|
|
52
|
+
return state;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=spawn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/teamwork/api/spawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type TeamworkMetadataEvent } from "../internal/store/events.js";
|
|
2
|
+
import type { ClearTeamworkSessionTitleOptions, SetTeamworkSessionTitleOptions } from "./types.js";
|
|
3
|
+
export declare function setTeamworkSessionTitle(opts: SetTeamworkSessionTitleOptions): Promise<TeamworkMetadataEvent>;
|
|
4
|
+
export declare function clearTeamworkSessionTitle(opts: ClearTeamworkSessionTitleOptions): Promise<TeamworkMetadataEvent>;
|
|
5
|
+
//# sourceMappingURL=title.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"title.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/title.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EACV,gCAAgC,EAChC,8BAA8B,EAC/B,MAAM,YAAY,CAAC;AAEpB,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,8BAA8B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAuBhC;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,gCAAgC,GACrC,OAAO,CAAC,qBAAqB,CAAC,CAoBhC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { appendEvent, } from "../internal/store/events.js";
|
|
2
|
-
import {
|
|
3
|
-
export async function
|
|
2
|
+
import { resolveTeamworkSession } from "./resolve.js";
|
|
3
|
+
export async function setTeamworkSessionTitle(opts) {
|
|
4
4
|
if (!opts.title || opts.title.length === 0) {
|
|
5
|
-
throw new Error("
|
|
5
|
+
throw new Error("Teamwork Session title must not be empty (use clearTeamworkSessionTitle)");
|
|
6
6
|
}
|
|
7
|
-
const ref =
|
|
8
|
-
|
|
7
|
+
const ref = resolveTeamworkSession({
|
|
8
|
+
sessionId: opts.sessionId,
|
|
9
9
|
...(opts.scope !== undefined ? { scope: opts.scope } : {}),
|
|
10
10
|
...(opts.projectKey !== undefined ? { projectKey: opts.projectKey } : {}),
|
|
11
11
|
...(opts.cwd !== undefined ? { cwd: opts.cwd } : {}),
|
|
12
12
|
});
|
|
13
|
-
const event = await appendEvent(opts.
|
|
14
|
-
kind: "
|
|
13
|
+
const event = await appendEvent(opts.sessionId, {
|
|
14
|
+
kind: "teamwork",
|
|
15
15
|
action: "title",
|
|
16
16
|
by: opts.by,
|
|
17
17
|
title: opts.title,
|
|
@@ -20,15 +20,15 @@ export async function setChannelTitle(opts) {
|
|
|
20
20
|
}, ref.project);
|
|
21
21
|
return event;
|
|
22
22
|
}
|
|
23
|
-
export async function
|
|
24
|
-
const ref =
|
|
25
|
-
|
|
23
|
+
export async function clearTeamworkSessionTitle(opts) {
|
|
24
|
+
const ref = resolveTeamworkSession({
|
|
25
|
+
sessionId: opts.sessionId,
|
|
26
26
|
...(opts.scope !== undefined ? { scope: opts.scope } : {}),
|
|
27
27
|
...(opts.projectKey !== undefined ? { projectKey: opts.projectKey } : {}),
|
|
28
28
|
...(opts.cwd !== undefined ? { cwd: opts.cwd } : {}),
|
|
29
29
|
});
|
|
30
|
-
const event = await appendEvent(opts.
|
|
31
|
-
kind: "
|
|
30
|
+
const event = await appendEvent(opts.sessionId, {
|
|
31
|
+
kind: "teamwork",
|
|
32
32
|
action: "title",
|
|
33
33
|
by: opts.by,
|
|
34
34
|
title: null,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"title.js","sourceRoot":"","sources":["../../../src/teamwork/api/title.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { DeliveryMode } from "../internal/store/delivery.js";
|
|
2
|
-
import type {
|
|
3
|
-
export interface
|
|
4
|
-
|
|
5
|
-
scope?:
|
|
2
|
+
import type { TeamworkSessionScope, ContextEntry, EventOrigin } from "../internal/store/schema.js";
|
|
3
|
+
export interface TeamworkSessionAddressOptions {
|
|
4
|
+
sessionId: string;
|
|
5
|
+
scope?: TeamworkSessionScope;
|
|
6
6
|
/** Storage project bucket key. Not the create-event `project` slug. */
|
|
7
7
|
projectKey?: string;
|
|
8
8
|
/** cwd used to derive the project bucket when scope is "project". */
|
|
@@ -13,7 +13,7 @@ export interface MutationCommonOptions {
|
|
|
13
13
|
origin?: EventOrigin;
|
|
14
14
|
meta?: Record<string, unknown>;
|
|
15
15
|
}
|
|
16
|
-
export interface
|
|
16
|
+
export interface CreateTeamworkSessionOptions extends TeamworkSessionAddressOptions, MutationCommonOptions {
|
|
17
17
|
type?: "chat" | "forum";
|
|
18
18
|
task?: string;
|
|
19
19
|
project?: string;
|
|
@@ -21,11 +21,9 @@ export interface CreateChannelOptions extends ChannelAddressOptions, MutationCom
|
|
|
21
21
|
description?: string;
|
|
22
22
|
context?: ContextEntry[];
|
|
23
23
|
ephemeral?: boolean;
|
|
24
|
-
/** Opaque main Codex session identity for read-only observability. */
|
|
25
|
-
ownerSessionId?: string;
|
|
26
24
|
force?: boolean;
|
|
27
25
|
}
|
|
28
|
-
export interface SendMessageOptions extends
|
|
26
|
+
export interface SendMessageOptions extends TeamworkSessionAddressOptions, MutationCommonOptions {
|
|
29
27
|
idempotencyKey?: string;
|
|
30
28
|
text: string;
|
|
31
29
|
to?: string | string[];
|
|
@@ -37,7 +35,7 @@ export interface SendMessageOptions extends ChannelAddressOptions, MutationCommo
|
|
|
37
35
|
*/
|
|
38
36
|
deliveryMode?: DeliveryMode;
|
|
39
37
|
}
|
|
40
|
-
export interface PostThreadOptions extends
|
|
38
|
+
export interface PostThreadOptions extends TeamworkSessionAddressOptions, MutationCommonOptions {
|
|
41
39
|
idempotencyKey?: string;
|
|
42
40
|
action: "opened" | "comment" | "status" | "labels" | "assignees" | "summary" | "processed";
|
|
43
41
|
thread: string;
|
|
@@ -50,18 +48,18 @@ export interface PostThreadOptions extends ChannelAddressOptions, MutationCommon
|
|
|
50
48
|
summary?: string;
|
|
51
49
|
context?: ContextEntry[];
|
|
52
50
|
}
|
|
53
|
-
export interface ContextMutationOptions extends
|
|
51
|
+
export interface ContextMutationOptions extends TeamworkSessionAddressOptions, MutationCommonOptions {
|
|
54
52
|
context: ContextEntry[];
|
|
55
53
|
}
|
|
56
54
|
export interface ThreadContextMutationOptions extends ContextMutationOptions {
|
|
57
55
|
thread: string;
|
|
58
56
|
}
|
|
59
|
-
export interface RenameThreadOptions extends
|
|
57
|
+
export interface RenameThreadOptions extends TeamworkSessionAddressOptions, MutationCommonOptions {
|
|
60
58
|
thread: string;
|
|
61
59
|
newThread: string;
|
|
62
60
|
}
|
|
63
|
-
export interface
|
|
61
|
+
export interface SetTeamworkSessionTitleOptions extends TeamworkSessionAddressOptions, MutationCommonOptions {
|
|
64
62
|
title: string;
|
|
65
63
|
}
|
|
66
|
-
export type
|
|
64
|
+
export type ClearTeamworkSessionTitleOptions = TeamworkSessionAddressOptions & MutationCommonOptions;
|
|
67
65
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EACV,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACZ,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,4BACf,SAAQ,6BAA6B,EACnC,qBAAqB;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CAEjB;AAED,MAAM,WAAW,kBACf,SAAQ,6BAA6B,EACnC,qBAAqB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,iBACf,SAAQ,6BAA6B,EACnC,qBAAqB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EACF,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,SAAS,GACT,WAAW,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,sBACf,SAAQ,6BAA6B,EACnC,qBAAqB;IACvB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,4BAA6B,SAAQ,sBAAsB;IAC1E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBACf,SAAQ,6BAA6B,EACnC,qBAAqB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,8BACf,SAAQ,6BAA6B,EACnC,qBAAqB;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,gCAAgC,GAAG,6BAA6B,GAC1E,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/teamwork/api/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { TeamworkEvent } from "../internal/store/events.js";
|
|
2
|
+
import type { TeamworkEventFilter } from "../internal/store/filter.js";
|
|
3
|
+
import { type TeamworkSessionRef } from "../internal/store/schema.js";
|
|
4
|
+
/** Stable per-session cursor key: `${scope}/${project}/${name}`. */
|
|
5
|
+
export type TeamworkSessionCursorKey = string;
|
|
6
|
+
/** Per-session resume cursor for the cross-session watcher. */
|
|
7
|
+
export type TeamworkSessionCursor = Record<TeamworkSessionCursorKey, number>;
|
|
8
|
+
export declare function teamworkSessionCursorKey(ref: TeamworkSessionRef): TeamworkSessionCursorKey;
|
|
9
|
+
export interface WatchTeamworkSessionsInput {
|
|
10
|
+
/** Project bucket scope, or the global bucket. */
|
|
11
|
+
scope: {
|
|
12
|
+
projectKey: string;
|
|
13
|
+
} | "global";
|
|
14
|
+
filter?: TeamworkEventFilter;
|
|
15
|
+
/** Per-session resume cursors keyed by {@link teamworkSessionCursorKey}. */
|
|
16
|
+
cursor?: TeamworkSessionCursor;
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
/**
|
|
19
|
+
* When a Teamwork Session is discovered after the watcher starts, read its
|
|
20
|
+
* backlog from seq 0. Default false (tail from end).
|
|
21
|
+
*/
|
|
22
|
+
fromStartNewTeamworkSessions?: boolean;
|
|
23
|
+
/** TeamworkSession-discovery poll interval in ms. Default 500. */
|
|
24
|
+
discoveryIntervalMs?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface CrossTeamworkEvent {
|
|
27
|
+
sessionId: TeamworkSessionRef;
|
|
28
|
+
event: TeamworkEvent;
|
|
29
|
+
/** Snapshot of the full cursor map after applying this event. */
|
|
30
|
+
cursor: TeamworkSessionCursor;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Watch every Teamwork Session in a project (or the global) scope and fan its
|
|
34
|
+
* events into a single stream. Sessions created inside the scope after
|
|
35
|
+
* the watcher starts are discovered dynamically. Each yielded event
|
|
36
|
+
* carries a snapshot of the per-session cursor map so consumers can
|
|
37
|
+
* checkpoint `(session ID, seq)` — delivery is at-least-once.
|
|
38
|
+
*/
|
|
39
|
+
export declare function watchTeamworkSessions(input: WatchTeamworkSessionsInput): AsyncGenerator<CrossTeamworkEvent, void, unknown>;
|
|
40
|
+
//# sourceMappingURL=watch-sessions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-sessions.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/watch-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAKvE,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,6BAA6B,CAAC;AAGrC,oEAAoE;AACpE,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE9C,+DAA+D;AAC/D,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;AAE7E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,kBAAkB,GAAG,wBAAwB,CAE1F;AAED,MAAM,WAAW,0BAA0B;IACzC,kDAAkD;IAClD,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,QAAQ,CAAC;IACzC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,4EAA4E;IAC5E,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,iEAAiE;IACjE,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAYD;;;;;;GAMG;AACH,wBAAuB,qBAAqB,CAC1C,KAAK,EAAE,0BAA0B,GAChC,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,OAAO,CAAC,CAgInD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { sessionDir, listSessionIdsInProject, } from "../internal/store/paths.js";
|
|
2
2
|
import { GLOBAL_PROJECT_KEY, } from "../internal/store/schema.js";
|
|
3
3
|
import { watchEvents } from "../internal/store/watch.js";
|
|
4
|
-
export function
|
|
4
|
+
export function teamworkSessionCursorKey(ref) {
|
|
5
5
|
return `${ref.scope}/${ref.project}/${ref.name}`;
|
|
6
6
|
}
|
|
7
7
|
function resolveScope(input) {
|
|
@@ -11,13 +11,13 @@ function resolveScope(input) {
|
|
|
11
11
|
return { project: input.scope.projectKey, scope: "project" };
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
|
-
* Watch every
|
|
15
|
-
* events into a single stream.
|
|
14
|
+
* Watch every Teamwork Session in a project (or the global) scope and fan its
|
|
15
|
+
* events into a single stream. Sessions created inside the scope after
|
|
16
16
|
* the watcher starts are discovered dynamically. Each yielded event
|
|
17
|
-
* carries a snapshot of the per-
|
|
18
|
-
* checkpoint `(
|
|
17
|
+
* carries a snapshot of the per-session cursor map so consumers can
|
|
18
|
+
* checkpoint `(session ID, seq)` — delivery is at-least-once.
|
|
19
19
|
*/
|
|
20
|
-
export async function*
|
|
20
|
+
export async function* watchTeamworkSessions(input) {
|
|
21
21
|
const { project, scope } = resolveScope(input);
|
|
22
22
|
const filter = input.filter ?? {};
|
|
23
23
|
const discoveryIntervalMs = input.discoveryIntervalMs ?? 500;
|
|
@@ -63,9 +63,9 @@ export async function* watchChannels(input) {
|
|
|
63
63
|
name,
|
|
64
64
|
scope,
|
|
65
65
|
project,
|
|
66
|
-
dir:
|
|
66
|
+
dir: sessionDir(name, project),
|
|
67
67
|
};
|
|
68
|
-
const key =
|
|
68
|
+
const key = teamworkSessionCursorKey(ref);
|
|
69
69
|
if (active.has(key))
|
|
70
70
|
return;
|
|
71
71
|
active.add(key);
|
|
@@ -78,17 +78,17 @@ export async function* watchChannels(input) {
|
|
|
78
78
|
watchOpts.sinceSeq = resume;
|
|
79
79
|
}
|
|
80
80
|
else {
|
|
81
|
-
// No prior cursor:
|
|
82
|
-
// discovered later follow `
|
|
81
|
+
// No prior cursor: newly discovered sessions read their backlog; sessions
|
|
82
|
+
// discovered later follow `fromStartNewTeamworkSessions`.
|
|
83
83
|
watchOpts.fromStart = initialScan
|
|
84
84
|
? true
|
|
85
|
-
: (input.
|
|
85
|
+
: (input.fromStartNewTeamworkSessions ?? false);
|
|
86
86
|
}
|
|
87
87
|
const task = (async () => {
|
|
88
88
|
try {
|
|
89
89
|
for await (const ev of watchEvents(name, filter, watchOpts)) {
|
|
90
90
|
cursor[key] = ev.seq;
|
|
91
|
-
queue.push({
|
|
91
|
+
queue.push({ sessionId: ref, event: ev, cursor: { ...cursor } });
|
|
92
92
|
notify();
|
|
93
93
|
}
|
|
94
94
|
}
|
|
@@ -106,14 +106,14 @@ export async function* watchChannels(input) {
|
|
|
106
106
|
tasks.delete(task);
|
|
107
107
|
});
|
|
108
108
|
};
|
|
109
|
-
for (const name of
|
|
109
|
+
for (const name of listSessionIdsInProject(project)) {
|
|
110
110
|
startWatcher(name);
|
|
111
111
|
}
|
|
112
112
|
initialScan = false;
|
|
113
113
|
discovery = setInterval(() => {
|
|
114
114
|
if (done)
|
|
115
115
|
return;
|
|
116
|
-
for (const name of
|
|
116
|
+
for (const name of listSessionIdsInProject(project)) {
|
|
117
117
|
startWatcher(name);
|
|
118
118
|
}
|
|
119
119
|
}, discoveryIntervalMs);
|
|
@@ -140,4 +140,4 @@ export async function* watchChannels(input) {
|
|
|
140
140
|
await Promise.allSettled([...tasks]);
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
|
-
//# sourceMappingURL=watch-
|
|
143
|
+
//# sourceMappingURL=watch-sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-sessions.js","sourceRoot":"","sources":["../../../src/teamwork/api/watch-sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type WatchFilter } from "../internal/store/watch.js";
|
|
2
|
+
import type { TeamworkEvent } from "../internal/store/events.js";
|
|
3
|
+
import type { TeamworkSessionAddressOptions } from "./types.js";
|
|
4
|
+
export interface WatchTeamworkSessionOptions extends TeamworkSessionAddressOptions {
|
|
5
|
+
filter?: WatchFilter;
|
|
6
|
+
signal?: AbortSignal;
|
|
7
|
+
fromStart?: boolean;
|
|
8
|
+
sinceSeq?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function watchTeamworkEvents(opts: WatchTeamworkSessionOptions): AsyncGenerator<TeamworkEvent, void, unknown>;
|
|
11
|
+
//# sourceMappingURL=watch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,WAAW,2BAA4B,SAAQ,6BAA6B;IAChF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,2BAA2B,GAChC,cAAc,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAa9C"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { watchEvents, } from "../internal/store/watch.js";
|
|
2
|
-
import {
|
|
3
|
-
export function
|
|
4
|
-
const ref =
|
|
5
|
-
|
|
2
|
+
import { resolveTeamworkSession } from "./resolve.js";
|
|
3
|
+
export function watchTeamworkEvents(opts) {
|
|
4
|
+
const ref = resolveTeamworkSession({
|
|
5
|
+
sessionId: opts.sessionId,
|
|
6
6
|
...(opts.scope !== undefined ? { scope: opts.scope } : {}),
|
|
7
7
|
...(opts.projectKey !== undefined ? { projectKey: opts.projectKey } : {}),
|
|
8
8
|
...(opts.cwd !== undefined ? { cwd: opts.cwd } : {}),
|
|
9
9
|
});
|
|
10
|
-
return watchEvents(opts.
|
|
10
|
+
return watchEvents(opts.sessionId, opts.filter ?? {}, {
|
|
11
11
|
project: ref.project,
|
|
12
12
|
...(opts.signal !== undefined ? { signal: opts.signal } : {}),
|
|
13
13
|
...(opts.fromStart !== undefined ? { fromStart: opts.fromStart } : {}),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/teamwork/api/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,GAEZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAUtD,MAAM,UAAU,mBAAmB,CACjC,IAAiC;IAEjC,MAAM,GAAG,GAAG,sBAAsB,CAAC;QACjC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE;QACpD,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type {
|
|
1
|
+
import { type TeamworkEvent } from "../internal/store/events.js";
|
|
2
|
+
import type { TeamworkSessionScope } from "../internal/store/schema.js";
|
|
3
3
|
import { type WorkerState } from "../internal/store/worker-state.js";
|
|
4
4
|
export interface ListWorkersInput {
|
|
5
|
-
|
|
6
|
-
scope?:
|
|
5
|
+
sessionId: string;
|
|
6
|
+
scope?: TeamworkSessionScope;
|
|
7
7
|
projectKey?: string;
|
|
8
8
|
cwd?: string;
|
|
9
9
|
/** Include `done` / `error` / `killed` / `crashed` workers. Default false. */
|
|
10
10
|
includeTerminal?: boolean;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
* Project the durable worker registry for a
|
|
13
|
+
* Project the durable worker registry for a Teamwork Session. Source of truth for CLI list /
|
|
14
14
|
* status, daemon runtime cards, and tests — do not reparse event logs
|
|
15
15
|
* independently.
|
|
16
16
|
*/
|
|
@@ -37,15 +37,15 @@ export interface WorkerRuntimeObservation {
|
|
|
37
37
|
source: "local-pid-files";
|
|
38
38
|
}
|
|
39
39
|
export interface ProbeWorkerRuntimeInput {
|
|
40
|
-
|
|
41
|
-
scope?:
|
|
40
|
+
sessionId: string;
|
|
41
|
+
scope?: TeamworkSessionScope;
|
|
42
42
|
projectKey?: string;
|
|
43
43
|
cwd?: string;
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
46
|
* Host-local runtime observation. Reads `<worker>.pid` /
|
|
47
47
|
* `<worker>.worker-pid` files and checks OS liveness. This is NOT
|
|
48
|
-
* durable
|
|
48
|
+
* durable event truth — `reduceWorkerRegistry` must never read pid
|
|
49
49
|
* files. Only valid on the machine that owns the supervisor files.
|
|
50
50
|
*/
|
|
51
51
|
export declare function probeWorkerRuntime(input: ProbeWorkerRuntimeInput): Promise<WorkerRuntimeObservation[]>;
|
|
@@ -56,8 +56,8 @@ export interface ReconcileWorkerLivenessInput extends ProbeWorkerRuntimeInput {
|
|
|
56
56
|
}
|
|
57
57
|
export interface ReconcileWorkerLivenessResult {
|
|
58
58
|
observations: WorkerRuntimeObservation[];
|
|
59
|
-
proposedEvents:
|
|
60
|
-
appended:
|
|
59
|
+
proposedEvents: TeamworkEvent[];
|
|
60
|
+
appended: TeamworkEvent[];
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
63
63
|
* Reconcile durable worker state against host-local pid files. Reports
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../../src/teamwork/api/workers.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,mCAAmC,CAAC;AAG3C,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAkBD;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,WAAW,EAAE,CAAC,CAOxB;AAED,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAuB,YAAY,CACjC,KAAK,EAAE,iBAAiB,GACvB,cAAc,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CA6B9C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAoBD,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,wBAAwB,EAAE,CAAC,CA2BrC;AAED,MAAM,WAAW,4BAA6B,SAAQ,uBAAuB;IAC3E,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,wBAAwB,EAAE,CAAC;IACzC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,6BAA6B,CAAC,CA4CxC"}
|