crewly 1.20.307 → 1.20.309
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/config/hooks/agent-status/report.sh +5 -5
- package/dist/backend/backend/src/constants.d.ts +80 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +80 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +9 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +161 -2
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/board/board-activity.normalizer.d.ts +17 -0
- package/dist/backend/backend/src/services/board/board-activity.normalizer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/board/board-activity.normalizer.js +8 -5
- package/dist/backend/backend/src/services/board/board-activity.normalizer.js.map +1 -1
- package/dist/backend/backend/src/services/board/board-activity.tracker.d.ts +5 -0
- package/dist/backend/backend/src/services/board/board-activity.tracker.d.ts.map +1 -1
- package/dist/backend/backend/src/services/board/board-activity.tracker.js +25 -1
- package/dist/backend/backend/src/services/board/board-activity.tracker.js.map +1 -1
- package/dist/backend/backend/src/services/board/board-interaction-hooks.d.ts +34 -0
- package/dist/backend/backend/src/services/board/board-interaction-hooks.d.ts.map +1 -0
- package/dist/backend/backend/src/services/board/board-interaction-hooks.js +60 -0
- package/dist/backend/backend/src/services/board/board-interaction-hooks.js.map +1 -0
- package/dist/backend/backend/src/services/board/board-interactions.d.ts +54 -0
- package/dist/backend/backend/src/services/board/board-interactions.d.ts.map +1 -0
- package/dist/backend/backend/src/services/board/board-interactions.js +92 -0
- package/dist/backend/backend/src/services/board/board-interactions.js.map +1 -0
- package/dist/backend/backend/src/services/board/board-links.d.ts +51 -0
- package/dist/backend/backend/src/services/board/board-links.d.ts.map +1 -0
- package/dist/backend/backend/src/services/board/board-links.js +168 -0
- package/dist/backend/backend/src/services/board/board-links.js.map +1 -0
- package/dist/backend/backend/src/services/board/board-push.service.d.ts +28 -3
- package/dist/backend/backend/src/services/board/board-push.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/board/board-push.service.js +108 -9
- package/dist/backend/backend/src/services/board/board-push.service.js.map +1 -1
- package/dist/backend/backend/src/services/board/board-snapshot.builder.d.ts +39 -2
- package/dist/backend/backend/src/services/board/board-snapshot.builder.d.ts.map +1 -1
- package/dist/backend/backend/src/services/board/board-snapshot.builder.js +85 -8
- package/dist/backend/backend/src/services/board/board-snapshot.builder.js.map +1 -1
- package/dist/backend/backend/src/services/board/board.sources.d.ts.map +1 -1
- package/dist/backend/backend/src/services/board/board.sources.js +27 -1
- package/dist/backend/backend/src/services/board/board.sources.js.map +1 -1
- package/dist/backend/backend/src/services/board/board.types.d.ts +48 -0
- package/dist/backend/backend/src/services/board/board.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/board/board.types.js +9 -1
- package/dist/backend/backend/src/services/board/board.types.js.map +1 -1
- package/dist/backend/backend/src/services/board/canvas/canvas-inbound.service.d.ts +122 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-inbound.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-inbound.service.js +339 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-inbound.service.js.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-redact.d.ts +44 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-redact.d.ts.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-redact.js +161 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-redact.js.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-step.normalizer.d.ts +57 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-step.normalizer.d.ts.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-step.normalizer.js +164 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-step.normalizer.js.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-step.stream.d.ts +140 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-step.stream.d.ts.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-step.stream.js +300 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-step.stream.js.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-terminal.service.d.ts +99 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-terminal.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-terminal.service.js +223 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-terminal.service.js.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-transcript.tail.d.ts +126 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-transcript.tail.d.ts.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-transcript.tail.js +385 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-transcript.tail.js.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-wiring.d.ts +103 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-wiring.js +124 -0
- package/dist/backend/backend/src/services/board/canvas/canvas-wiring.js.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas.types.d.ts +88 -0
- package/dist/backend/backend/src/services/board/canvas/canvas.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/board/canvas/canvas.types.js +8 -0
- package/dist/backend/backend/src/services/board/canvas/canvas.types.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.js +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +2 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +80 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +80 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts +1 -1
- package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
- package/dist/cli/backend/src/services/cloud/cloud-sync.types.js +1 -0
- package/dist/cli/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
- package/package.json +1 -1
|
@@ -30,6 +30,8 @@ export interface ToolInput {
|
|
|
30
30
|
filePath?: string;
|
|
31
31
|
command?: string;
|
|
32
32
|
url?: string;
|
|
33
|
+
/** A web search query (WebSearch only); the canvas shows it, scrubbed */
|
|
34
|
+
query?: string;
|
|
33
35
|
}
|
|
34
36
|
/** Context for path relativization. */
|
|
35
37
|
export interface NormalizeContext {
|
|
@@ -43,6 +45,21 @@ export interface NormalizeContext {
|
|
|
43
45
|
* @returns Only the three known string fields, capped; `{}` for anything else
|
|
44
46
|
*/
|
|
45
47
|
export declare function parseToolInput(raw: unknown): ToolInput;
|
|
48
|
+
/** Skills by what they do for the owner. */
|
|
49
|
+
export declare const MESSAGING_SKILLS: Set<string>;
|
|
50
|
+
export declare const BROWSING_SKILLS: Set<string>;
|
|
51
|
+
/** Writing skills and what to call the place they write to. */
|
|
52
|
+
export declare const WRITING_SKILLS: Record<string, string>;
|
|
53
|
+
/** A chat / channel name as it may be shown: `#name`-like, short, no tokens. */
|
|
54
|
+
export declare const CHANNEL_NAME: RegExp;
|
|
55
|
+
/**
|
|
56
|
+
* The value after a flag in a skill's arguments.
|
|
57
|
+
*
|
|
58
|
+
* @param args - Words after the script
|
|
59
|
+
* @param flags - Accepted flag spellings
|
|
60
|
+
* @returns The value, or undefined
|
|
61
|
+
*/
|
|
62
|
+
export declare function flagValue(args: readonly string[], flags: readonly string[]): string | undefined;
|
|
46
63
|
/**
|
|
47
64
|
* Normalize one tool call.
|
|
48
65
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-activity.normalizer.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/board/board-activity.normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,6BAA6B;AAC7B,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;CACb;AAED,0GAA0G;AAC1G,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"board-activity.normalizer.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/board/board-activity.normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,6BAA6B;AAC7B,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;CACb;AAED,0GAA0G;AAC1G,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAChC,qDAAqD;IACrD,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAKD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CActD;AAQD,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,aAG3B,CAAC;AACH,eAAO,MAAM,eAAe,aAA+E,CAAC;AAC5G,+DAA+D;AAC/D,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiBjD,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,YAAY,QAAgC,CAAC;AAE1D;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAK/F;AA0DD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,SAAc,EAAE,GAAG,GAAE,gBAAqB,GAAG,kBAAkB,CA0CxH;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAIrF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAGpE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAGnE;AAED,gDAAgD;AAChD,eAAO,MAAM,QAAQ,EAAE,kBAA+E,CAAC"}
|
|
@@ -34,6 +34,9 @@ export function parseToolInput(raw) {
|
|
|
34
34
|
const filePath = pick('filePath');
|
|
35
35
|
const command = pick('command');
|
|
36
36
|
const url = pick('url');
|
|
37
|
+
const query = pick('query');
|
|
38
|
+
if (query)
|
|
39
|
+
out.query = query.slice(0, 300);
|
|
37
40
|
if (filePath)
|
|
38
41
|
out.filePath = filePath;
|
|
39
42
|
if (command)
|
|
@@ -48,13 +51,13 @@ const done = (type, detail, text) => ({
|
|
|
48
51
|
text: clip(scrubText(text) || type),
|
|
49
52
|
});
|
|
50
53
|
/** Skills by what they do for the owner. */
|
|
51
|
-
const MESSAGING_SKILLS = new Set([
|
|
54
|
+
export const MESSAGING_SKILLS = new Set([
|
|
52
55
|
'reply-chat', 'reply', 'reply-channel', 'send-chat-response', 'reply-slack', 'slack-post', 'slack-file', 'send-message', 'send-file', 'gmail-send',
|
|
53
56
|
'whatsapp-send', 'whatsapp-draft', 'reply-gchat', 'reply-remote', 'broadcast', 'broadcast-to-org', 'ask-owner',
|
|
54
57
|
]);
|
|
55
|
-
const BROWSING_SKILLS = new Set(['remote-browser', 'web-search', 'browse-stealth', 'chrome-attach']);
|
|
58
|
+
export const BROWSING_SKILLS = new Set(['remote-browser', 'web-search', 'browse-stealth', 'chrome-attach']);
|
|
56
59
|
/** Writing skills and what to call the place they write to. */
|
|
57
|
-
const WRITING_SKILLS = {
|
|
60
|
+
export const WRITING_SKILLS = {
|
|
58
61
|
'docs-write': 'Google Docs',
|
|
59
62
|
'docs-comment': 'Google Docs',
|
|
60
63
|
'sheets-write': 'Google Sheets',
|
|
@@ -73,7 +76,7 @@ const WRITING_SKILLS = {
|
|
|
73
76
|
'update-team-norm': 'team norms',
|
|
74
77
|
};
|
|
75
78
|
/** A chat / channel name as it may be shown: `#name`-like, short, no tokens. */
|
|
76
|
-
const CHANNEL_NAME = /^#?[A-Za-z0-9][\w.-]{0,38}$/;
|
|
79
|
+
export const CHANNEL_NAME = /^#?[A-Za-z0-9][\w.-]{0,38}$/;
|
|
77
80
|
/**
|
|
78
81
|
* The value after a flag in a skill's arguments.
|
|
79
82
|
*
|
|
@@ -81,7 +84,7 @@ const CHANNEL_NAME = /^#?[A-Za-z0-9][\w.-]{0,38}$/;
|
|
|
81
84
|
* @param flags - Accepted flag spellings
|
|
82
85
|
* @returns The value, or undefined
|
|
83
86
|
*/
|
|
84
|
-
function flagValue(args, flags) {
|
|
87
|
+
export function flagValue(args, flags) {
|
|
85
88
|
for (let i = 0; i < args.length - 1; i += 1) {
|
|
86
89
|
if (flags.includes(args[i]))
|
|
87
90
|
return args[i + 1];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-activity.normalizer.js","sourceRoot":"","sources":["../../../../../../backend/src/services/board/board-activity.normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"board-activity.normalizer.js","sourceRoot":"","sources":["../../../../../../backend/src/services/board/board-activity.normalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* @module services/board/board-activity.tracker
|
|
12
12
|
*/
|
|
13
13
|
import { type ToolInput } from './board-activity.normalizer.js';
|
|
14
|
+
import { StepStream } from './canvas/canvas-step.stream.js';
|
|
14
15
|
import type { BoardActivity, BoardTimelineEvent } from './board.types.js';
|
|
15
16
|
/** Called when a session's board row may have changed. */
|
|
16
17
|
export type BoardChangeListener = (session: string) => void;
|
|
@@ -31,6 +32,8 @@ export declare class BoardActivityTracker {
|
|
|
31
32
|
private readonly listeners;
|
|
32
33
|
/** Project roots by session, for relative paths */
|
|
33
34
|
private rootsOf;
|
|
35
|
+
/** The canvas step stream: the same events, one line per tool call with its duration */
|
|
36
|
+
readonly steps: StepStream;
|
|
34
37
|
/** @returns The process-wide tracker */
|
|
35
38
|
static getInstance(): BoardActivityTracker;
|
|
36
39
|
/** Drop the process-wide tracker (tests). */
|
|
@@ -98,6 +101,8 @@ export declare class BoardActivityTracker {
|
|
|
98
101
|
* @param session - Agent session
|
|
99
102
|
*/
|
|
100
103
|
clearOwnerWait(session: string): void;
|
|
104
|
+
/** The wait on the owner is over: its canvas step ends. */
|
|
105
|
+
private endWaitStep;
|
|
101
106
|
/** Make `activity` current and the last action; notify when the row changed. */
|
|
102
107
|
private show;
|
|
103
108
|
private pushTimeline;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-activity.tracker.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/board/board-activity.tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAQN,KAAK,SAAS,EACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAI1E,0DAA0D;AAC1D,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"board-activity.tracker.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/board/board-activity.tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { BOARD_CONSTANTS } from '../../constants.js';
|
|
14
14
|
import { normalizeBrowserAction, normalizeMessage, normalizeOwnerWait, normalizeToolUse, THINKING, } from './board-activity.normalizer.js';
|
|
15
|
+
import { StepStream } from './canvas/canvas-step.stream.js';
|
|
16
|
+
import { stepOfBrowserAction, stepOfMessage, stepOfOwnerWait, stepOfTool } from './canvas/canvas-step.normalizer.js';
|
|
15
17
|
const C = BOARD_CONSTANTS;
|
|
16
18
|
/**
|
|
17
19
|
* Per-session board activity.
|
|
@@ -22,6 +24,8 @@ export class BoardActivityTracker {
|
|
|
22
24
|
listeners = new Set();
|
|
23
25
|
/** Project roots by session, for relative paths */
|
|
24
26
|
rootsOf = () => [];
|
|
27
|
+
/** The canvas step stream: the same events, one line per tool call with its duration */
|
|
28
|
+
steps = new StepStream();
|
|
25
29
|
/** @returns The process-wide tracker */
|
|
26
30
|
static getInstance() {
|
|
27
31
|
if (!BoardActivityTracker.instance)
|
|
@@ -63,7 +67,7 @@ export class BoardActivityTracker {
|
|
|
63
67
|
get(session) {
|
|
64
68
|
let s = this.sessions.get(session);
|
|
65
69
|
if (!s) {
|
|
66
|
-
s = { open: new Map(), current: null, last: null, ownerWait: null, timeline: [], unsent: [], seq: 0 };
|
|
70
|
+
s = { open: new Map(), current: null, last: null, ownerWait: null, timeline: [], unsent: [], seq: 0, waitStep: null };
|
|
67
71
|
this.sessions.set(session, s);
|
|
68
72
|
}
|
|
69
73
|
return s;
|
|
@@ -87,7 +91,9 @@ export class BoardActivityTracker {
|
|
|
87
91
|
const roots = this.safeRoots(session);
|
|
88
92
|
const activity = normalizeToolUse(info.toolName, info.toolInput ?? {}, { roots });
|
|
89
93
|
s.open.set(info.toolUseId ?? `anon-${(s.seq += 1)}`, now);
|
|
94
|
+
this.endWaitStep(session, s, now);
|
|
90
95
|
s.ownerWait = null;
|
|
96
|
+
this.steps.start(session, stepOfTool(info.toolName, info.toolInput ?? {}, { roots }), { ...(info.toolUseId ? { id: info.toolUseId } : {}) }, now);
|
|
91
97
|
this.show(session, s, activity, now);
|
|
92
98
|
return;
|
|
93
99
|
}
|
|
@@ -98,19 +104,25 @@ export class BoardActivityTracker {
|
|
|
98
104
|
s.open.delete(s.open.keys().next().value);
|
|
99
105
|
if (s.current)
|
|
100
106
|
s.current.lastEventAt = now;
|
|
107
|
+
this.endWaitStep(session, s, now);
|
|
101
108
|
s.ownerWait = null;
|
|
109
|
+
this.steps.finish(session, info.toolUseId, 'done', now);
|
|
102
110
|
return;
|
|
103
111
|
}
|
|
104
112
|
case 'UserPromptSubmit':
|
|
105
113
|
case 'SessionStart':
|
|
106
114
|
s.open.clear();
|
|
115
|
+
this.endWaitStep(session, s, now);
|
|
107
116
|
s.ownerWait = null;
|
|
117
|
+
this.steps.closeAll(session, now);
|
|
108
118
|
s.current = { activity: THINKING, since: now, lastEventAt: now };
|
|
109
119
|
this.emit(session);
|
|
110
120
|
return;
|
|
111
121
|
case 'Stop':
|
|
112
122
|
s.open.clear();
|
|
123
|
+
this.endWaitStep(session, s, now);
|
|
113
124
|
s.ownerWait = null;
|
|
125
|
+
this.steps.closeAll(session, now);
|
|
114
126
|
s.current = null;
|
|
115
127
|
this.emit(session);
|
|
116
128
|
return;
|
|
@@ -137,6 +149,7 @@ export class BoardActivityTracker {
|
|
|
137
149
|
*/
|
|
138
150
|
recordBrowser(session, tool, url, now = Date.now()) {
|
|
139
151
|
const s = this.get(session);
|
|
152
|
+
this.steps.instant(session, stepOfBrowserAction(tool, url), now);
|
|
140
153
|
this.show(session, s, normalizeBrowserAction(tool, url), now);
|
|
141
154
|
}
|
|
142
155
|
/**
|
|
@@ -148,6 +161,7 @@ export class BoardActivityTracker {
|
|
|
148
161
|
*/
|
|
149
162
|
recordMessage(session, channel, now = Date.now()) {
|
|
150
163
|
const s = this.get(session);
|
|
164
|
+
this.steps.instant(session, stepOfMessage(channel), now);
|
|
151
165
|
this.show(session, s, normalizeMessage(channel), now);
|
|
152
166
|
}
|
|
153
167
|
/**
|
|
@@ -163,6 +177,7 @@ export class BoardActivityTracker {
|
|
|
163
177
|
return;
|
|
164
178
|
const activity = normalizeOwnerWait(what);
|
|
165
179
|
s.ownerWait = { activity, since: now };
|
|
180
|
+
s.waitStep = this.steps.start(session, stepOfOwnerWait(what), {}, now);
|
|
166
181
|
this.pushTimeline(s, session, activity, now);
|
|
167
182
|
this.emit(session);
|
|
168
183
|
}
|
|
@@ -175,9 +190,17 @@ export class BoardActivityTracker {
|
|
|
175
190
|
const s = this.sessions.get(session);
|
|
176
191
|
if (!s?.ownerWait)
|
|
177
192
|
return;
|
|
193
|
+
this.endWaitStep(session, s, Date.now());
|
|
178
194
|
s.ownerWait = null;
|
|
179
195
|
this.emit(session);
|
|
180
196
|
}
|
|
197
|
+
/** The wait on the owner is over: its canvas step ends. */
|
|
198
|
+
endWaitStep(session, s, now) {
|
|
199
|
+
if (!s.waitStep)
|
|
200
|
+
return;
|
|
201
|
+
this.steps.finish(session, s.waitStep, 'done', now);
|
|
202
|
+
s.waitStep = null;
|
|
203
|
+
}
|
|
181
204
|
/** Make `activity` current and the last action; notify when the row changed. */
|
|
182
205
|
show(session, s, activity, now) {
|
|
183
206
|
const prev = s.current;
|
|
@@ -309,6 +332,7 @@ export class BoardActivityTracker {
|
|
|
309
332
|
*/
|
|
310
333
|
forget(session) {
|
|
311
334
|
this.sessions.delete(session);
|
|
335
|
+
this.steps.forget(session);
|
|
312
336
|
}
|
|
313
337
|
}
|
|
314
338
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-activity.tracker.js","sourceRoot":"","sources":["../../../../../../backend/src/services/board/board-activity.tracker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"board-activity.tracker.js","sourceRoot":"","sources":["../../../../../../backend/src/services/board/board-activity.tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the board learns that one agent talked to another (canvas
|
|
3
|
+
* `messaging` links): a middleware on the terminal-write API (what the
|
|
4
|
+
* `send-message` skill calls) and a chat-message listener for agent messages
|
|
5
|
+
* that @mention another agent (rooms, DMs, Slack mirrored into chat).
|
|
6
|
+
* Only sender, receiver and time are kept.
|
|
7
|
+
*
|
|
8
|
+
* @module services/board/board-interaction-hooks
|
|
9
|
+
*/
|
|
10
|
+
import type { NextFunction, Request, Response } from 'express';
|
|
11
|
+
import { type AgentInteractionRecorder } from './board-interactions.js';
|
|
12
|
+
/**
|
|
13
|
+
* Middleware (mounted on `/api`): an agent's successful write to another
|
|
14
|
+
* agent's terminal is a message.
|
|
15
|
+
*
|
|
16
|
+
* @param recorder - Where to record (default: process-wide)
|
|
17
|
+
* @returns Express middleware; never blocks or throws
|
|
18
|
+
*/
|
|
19
|
+
export declare function recordTerminalWrites(recorder?: AgentInteractionRecorder): (req: Request, res: Response, next: NextFunction) => void;
|
|
20
|
+
/** The parts of a chat message the board reads. */
|
|
21
|
+
export interface MentionMessage {
|
|
22
|
+
senderType: string;
|
|
23
|
+
senderId: string;
|
|
24
|
+
mentions?: string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* An agent's chat message that @mentions other agents.
|
|
28
|
+
*
|
|
29
|
+
* @param message - Chat message
|
|
30
|
+
* @param resolve - Member id or session -> session (undefined for a team or the owner)
|
|
31
|
+
* @param recorder - Where to record
|
|
32
|
+
*/
|
|
33
|
+
export declare function recordChatMentions(message: MentionMessage, resolve: (idOrSession: string) => string | undefined, recorder?: AgentInteractionRecorder): void;
|
|
34
|
+
//# sourceMappingURL=board-interaction-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-interaction-hooks.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/board/board-interaction-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAwB,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAI9F;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,GAAE,wBAAiD,IACvF,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,CAmB9D;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAE,wBAAiD,GAAG,IAAI,CAOnL"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the board learns that one agent talked to another (canvas
|
|
3
|
+
* `messaging` links): a middleware on the terminal-write API (what the
|
|
4
|
+
* `send-message` skill calls) and a chat-message listener for agent messages
|
|
5
|
+
* that @mention another agent (rooms, DMs, Slack mirrored into chat).
|
|
6
|
+
* Only sender, receiver and time are kept.
|
|
7
|
+
*
|
|
8
|
+
* @module services/board/board-interaction-hooks
|
|
9
|
+
*/
|
|
10
|
+
import { readAgentSessionHeader } from '../../utils/agent-caller.utils.js';
|
|
11
|
+
import { getAgentInteractions } from './board-interactions.js';
|
|
12
|
+
const WRITE_PATH = /^\/terminal\/([^/]+)\/write\/?$/;
|
|
13
|
+
/**
|
|
14
|
+
* Middleware (mounted on `/api`): an agent's successful write to another
|
|
15
|
+
* agent's terminal is a message.
|
|
16
|
+
*
|
|
17
|
+
* @param recorder - Where to record (default: process-wide)
|
|
18
|
+
* @returns Express middleware; never blocks or throws
|
|
19
|
+
*/
|
|
20
|
+
export function recordTerminalWrites(recorder = getAgentInteractions()) {
|
|
21
|
+
return (req, res, next) => {
|
|
22
|
+
try {
|
|
23
|
+
if (req.method === 'POST') {
|
|
24
|
+
const match = WRITE_PATH.exec(req.path);
|
|
25
|
+
if (match) {
|
|
26
|
+
const from = readAgentSessionHeader(req);
|
|
27
|
+
const to = decodeURIComponent(match[1]);
|
|
28
|
+
if (from && to && from !== to) {
|
|
29
|
+
res.once('finish', () => {
|
|
30
|
+
if (res.statusCode >= 200 && res.statusCode < 300)
|
|
31
|
+
recorder.record(from, to);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
/* observing never breaks the request */
|
|
39
|
+
}
|
|
40
|
+
next();
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* An agent's chat message that @mentions other agents.
|
|
45
|
+
*
|
|
46
|
+
* @param message - Chat message
|
|
47
|
+
* @param resolve - Member id or session -> session (undefined for a team or the owner)
|
|
48
|
+
* @param recorder - Where to record
|
|
49
|
+
*/
|
|
50
|
+
export function recordChatMentions(message, resolve, recorder = getAgentInteractions()) {
|
|
51
|
+
if (message.senderType !== 'agent' || !message.mentions || message.mentions.length === 0)
|
|
52
|
+
return;
|
|
53
|
+
const from = resolve(message.senderId) ?? message.senderId;
|
|
54
|
+
for (const m of message.mentions.slice(0, 10)) {
|
|
55
|
+
const to = resolve(m);
|
|
56
|
+
if (to && to !== from)
|
|
57
|
+
recorder.record(from, to);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=board-interaction-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-interaction-hooks.js","sourceRoot":"","sources":["../../../../../../backend/src/services/board/board-interaction-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAiC,MAAM,yBAAyB,CAAC;AAE9F,MAAM,UAAU,GAAG,iCAAiC,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAqC,oBAAoB,EAAE;IAC/F,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;QAChE,IAAI,CAAC;YACJ,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,KAAK,EAAE,CAAC;oBACX,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;oBACzC,MAAM,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxC,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;wBAC/B,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;4BACvB,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;gCAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC9E,CAAC,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,wCAAwC;QACzC,CAAC;QACD,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;AACH,CAAC;AASD;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAuB,EAAE,OAAoD,EAAE,WAAqC,oBAAoB,EAAE;IAC5K,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjG,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI;YAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Who messaged whom (crewly#1247 canvas links): a small in-memory record of
|
|
3
|
+
* agent-to-agent messages, kept for the last two hours. The board turns it into
|
|
4
|
+
* `messaging` links. Contents are never kept, only sender, receiver and time.
|
|
5
|
+
*
|
|
6
|
+
* @module services/board/board-interactions
|
|
7
|
+
*/
|
|
8
|
+
/** One sender -> receiver pair as the board reads it. */
|
|
9
|
+
export interface InteractionPair {
|
|
10
|
+
from: string;
|
|
11
|
+
to: string;
|
|
12
|
+
/** Messages in the window */
|
|
13
|
+
count: number;
|
|
14
|
+
firstAt: number;
|
|
15
|
+
lastAt: number;
|
|
16
|
+
}
|
|
17
|
+
/** Records agent-to-agent messages. */
|
|
18
|
+
export declare class AgentInteractionRecorder {
|
|
19
|
+
private readonly pairs;
|
|
20
|
+
private readonly listeners;
|
|
21
|
+
/**
|
|
22
|
+
* Note a message.
|
|
23
|
+
*
|
|
24
|
+
* @param from - Sender session (`<session>@<instanceId>` when on another machine)
|
|
25
|
+
* @param to - Receiver session
|
|
26
|
+
* @param now - Clock (tests)
|
|
27
|
+
*/
|
|
28
|
+
record(from: string, to: string, now?: number): void;
|
|
29
|
+
/**
|
|
30
|
+
* Be told about each message (the push marks the sender dirty).
|
|
31
|
+
*
|
|
32
|
+
* @param listener - Called with sender and receiver
|
|
33
|
+
* @returns Unsubscribe
|
|
34
|
+
*/
|
|
35
|
+
onRecord(listener: (from: string, to: string) => void): () => void;
|
|
36
|
+
/**
|
|
37
|
+
* Pairs with a message in the window; older entries are forgotten.
|
|
38
|
+
*
|
|
39
|
+
* @param now - Clock
|
|
40
|
+
* @returns Pairs
|
|
41
|
+
*/
|
|
42
|
+
pairsNow(now?: number): InteractionPair[];
|
|
43
|
+
/** Forget everything (tests). */
|
|
44
|
+
clear(): void;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The process-wide recorder.
|
|
48
|
+
*
|
|
49
|
+
* @returns The recorder
|
|
50
|
+
*/
|
|
51
|
+
export declare function getAgentInteractions(): AgentInteractionRecorder;
|
|
52
|
+
/** Drop the process-wide recorder (tests). */
|
|
53
|
+
export declare function resetAgentInteractions(): void;
|
|
54
|
+
//# sourceMappingURL=board-interactions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-interactions.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/board/board-interactions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,uCAAuC;AACvC,qBAAa,wBAAwB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoE;IAC1F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiD;IAE3E;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI;IAmBhE;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAKlE;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,GAAE,MAAmB,GAAG,eAAe,EAAE;IAerD,iCAAiC;IACjC,KAAK,IAAI,IAAI;CAGb;AAID;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,wBAAwB,CAG/D;AAED,8CAA8C;AAC9C,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Who messaged whom (crewly#1247 canvas links): a small in-memory record of
|
|
3
|
+
* agent-to-agent messages, kept for the last two hours. The board turns it into
|
|
4
|
+
* `messaging` links. Contents are never kept, only sender, receiver and time.
|
|
5
|
+
*
|
|
6
|
+
* @module services/board/board-interactions
|
|
7
|
+
*/
|
|
8
|
+
import { BOARD_CONSTANTS } from '../../constants.js';
|
|
9
|
+
const C = BOARD_CONSTANTS;
|
|
10
|
+
/** Records agent-to-agent messages. */
|
|
11
|
+
export class AgentInteractionRecorder {
|
|
12
|
+
pairs = new Map();
|
|
13
|
+
listeners = new Set();
|
|
14
|
+
/**
|
|
15
|
+
* Note a message.
|
|
16
|
+
*
|
|
17
|
+
* @param from - Sender session (`<session>@<instanceId>` when on another machine)
|
|
18
|
+
* @param to - Receiver session
|
|
19
|
+
* @param now - Clock (tests)
|
|
20
|
+
*/
|
|
21
|
+
record(from, to, now = Date.now()) {
|
|
22
|
+
if (!from || !to || from === to)
|
|
23
|
+
return;
|
|
24
|
+
const key = `${from}\u0000${to}`;
|
|
25
|
+
let pair = this.pairs.get(key);
|
|
26
|
+
if (!pair) {
|
|
27
|
+
pair = { from, to, times: [] };
|
|
28
|
+
this.pairs.set(key, pair);
|
|
29
|
+
}
|
|
30
|
+
pair.times.push(now);
|
|
31
|
+
if (pair.times.length > C.LINK_MESSAGING_MAX_PER_PAIR)
|
|
32
|
+
pair.times.splice(0, pair.times.length - C.LINK_MESSAGING_MAX_PER_PAIR);
|
|
33
|
+
for (const l of this.listeners) {
|
|
34
|
+
try {
|
|
35
|
+
l(from, to);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
/* a listener never breaks the sender */
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Be told about each message (the push marks the sender dirty).
|
|
44
|
+
*
|
|
45
|
+
* @param listener - Called with sender and receiver
|
|
46
|
+
* @returns Unsubscribe
|
|
47
|
+
*/
|
|
48
|
+
onRecord(listener) {
|
|
49
|
+
this.listeners.add(listener);
|
|
50
|
+
return () => this.listeners.delete(listener);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Pairs with a message in the window; older entries are forgotten.
|
|
54
|
+
*
|
|
55
|
+
* @param now - Clock
|
|
56
|
+
* @returns Pairs
|
|
57
|
+
*/
|
|
58
|
+
pairsNow(now = Date.now()) {
|
|
59
|
+
const out = [];
|
|
60
|
+
const cutoff = now - C.LINK_MESSAGING_WINDOW_MS;
|
|
61
|
+
for (const [key, pair] of this.pairs) {
|
|
62
|
+
const first = pair.times.findIndex((t) => t >= cutoff);
|
|
63
|
+
if (first < 0) {
|
|
64
|
+
this.pairs.delete(key);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (first > 0)
|
|
68
|
+
pair.times.splice(0, first);
|
|
69
|
+
out.push({ from: pair.from, to: pair.to, count: pair.times.length, firstAt: pair.times[0], lastAt: pair.times[pair.times.length - 1] });
|
|
70
|
+
}
|
|
71
|
+
return out;
|
|
72
|
+
}
|
|
73
|
+
/** Forget everything (tests). */
|
|
74
|
+
clear() {
|
|
75
|
+
this.pairs.clear();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
let instance = null;
|
|
79
|
+
/**
|
|
80
|
+
* The process-wide recorder.
|
|
81
|
+
*
|
|
82
|
+
* @returns The recorder
|
|
83
|
+
*/
|
|
84
|
+
export function getAgentInteractions() {
|
|
85
|
+
instance ??= new AgentInteractionRecorder();
|
|
86
|
+
return instance;
|
|
87
|
+
}
|
|
88
|
+
/** Drop the process-wide recorder (tests). */
|
|
89
|
+
export function resetAgentInteractions() {
|
|
90
|
+
instance = null;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=board-interactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-interactions.js","sourceRoot":"","sources":["../../../../../../backend/src/services/board/board-interactions.ts"],"names":[],"mappings":"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"}
|