@tickernelz/paperclip-pro-server 2026.1002.2 → 2026.1002.4

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 (101) hide show
  1. package/dist/build-info.json +1 -1
  2. package/dist/routes/openapi.d.ts.map +1 -1
  3. package/dist/routes/openapi.js +18 -0
  4. package/dist/routes/openapi.js.map +1 -1
  5. package/dist/routes/pixels-office.d.ts.map +1 -1
  6. package/dist/routes/pixels-office.js +10 -1
  7. package/dist/routes/pixels-office.js.map +1 -1
  8. package/dist/services/pixels-office.d.ts +2 -1
  9. package/dist/services/pixels-office.d.ts.map +1 -1
  10. package/dist/services/pixels-office.js +291 -13
  11. package/dist/services/pixels-office.js.map +1 -1
  12. package/node_modules/@agentclientprotocol/sdk/dist/acp.d.ts +15 -1
  13. package/node_modules/@agentclientprotocol/sdk/dist/acp.js +15 -1
  14. package/node_modules/@agentclientprotocol/sdk/dist/acp.js.map +1 -1
  15. package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.d.ts +9 -2
  16. package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.js +6 -1
  17. package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.js.map +1 -1
  18. package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.test.js +58 -1
  19. package/node_modules/@agentclientprotocol/sdk/dist/protocol-router.test.js.map +1 -1
  20. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.d.ts +15 -1
  21. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.js +15 -1
  22. package/node_modules/@agentclientprotocol/sdk/dist/v2/acp.js.map +1 -1
  23. package/node_modules/@agentclientprotocol/sdk/package.json +1 -1
  24. package/package.json +21 -21
  25. package/ui-dist/assets/{AgentAvatar-DNN1aAlU.js → AgentAvatar-vHdJ_j8Q.js} +1 -1
  26. package/ui-dist/assets/{AgentIdentity-b3pzXoFU.js → AgentIdentity-DpavDfDR.js} +1 -1
  27. package/ui-dist/assets/{Agents.production-pRzt0Xrc.js → Agents.production-BvVBz6Bb.js} +2 -2
  28. package/ui-dist/assets/CompanyActivity.production-CkWIeGHA.js +1 -0
  29. package/ui-dist/assets/{CompanyExport-D2pxnEn7.js → CompanyExport-BlgUdPy3.js} +2 -2
  30. package/ui-dist/assets/{CompanySkills.production-oq53-C14.js → CompanySkills.production-Dw5EEbFS.js} +3 -3
  31. package/ui-dist/assets/{Costs.production-DEE29WUZ.js → Costs.production-B7xh4FKY.js} +1 -1
  32. package/ui-dist/assets/{EmptyState-DSAob43E.js → EmptyState-CkiAU2cy.js} +1 -1
  33. package/ui-dist/assets/{MarkdownBody-hSj7wMwK.js → MarkdownBody-Dc5pAWyT.js} +2 -2
  34. package/ui-dist/assets/{MarkdownEditor-DhOkCe8q.js → MarkdownEditor-CEjOwoOw.js} +1 -1
  35. package/ui-dist/assets/{OrgChart.production-D-Dqk_II.js → OrgChart.production-0bLYORRI.js} +1 -1
  36. package/ui-dist/assets/{PageSkeleton-Bb3gOnqb.js → PageSkeleton-C9GpVJ3b.js} +1 -1
  37. package/ui-dist/assets/{RoutineDetail.production-vAflKXPc.js → RoutineDetail.production-HhdCP-Xh.js} +1 -1
  38. package/ui-dist/assets/{RoutineRunVariablesDialog-B7IG454s.js → RoutineRunVariablesDialog-BxPUA-_s.js} +2 -2
  39. package/ui-dist/assets/{Routines.production-D1ezw3Gp.js → Routines.production-BXN9SzuM.js} +1 -1
  40. package/ui-dist/assets/{SidebarContext-CEonkVTc.js → SidebarContext-BzqYhcyf.js} +1 -1
  41. package/ui-dist/assets/{StatusIcon-Ce5Cymi0.js → StatusIcon-DZVfuu7f.js} +1 -1
  42. package/ui-dist/assets/{agents-EgopqlRF.js → agents-S2cJMIK7.js} +1 -1
  43. package/ui-dist/assets/{badge-BzDyxQA_.js → badge-CDo3gnAS.js} +1 -1
  44. package/ui-dist/assets/{bot-SnTe3UEj.js → bot-Ds68iyWW.js} +1 -1
  45. package/ui-dist/assets/{button-B88nBobN.js → button-L-o1dNjR.js} +1 -1
  46. package/ui-dist/assets/{card-C3xuBj9F.js → card-kuRnaECX.js} +1 -1
  47. package/ui-dist/assets/{check-DiTvqt9f.js → check-qnovnvSs.js} +1 -1
  48. package/ui-dist/assets/{checkbox-CLdcRGnx.js → checkbox-Be8I1-GR.js} +1 -1
  49. package/ui-dist/assets/{chevron-down-CSzK2utq.js → chevron-down-BT1C9igz.js} +1 -1
  50. package/ui-dist/assets/{chevron-right-CEAI_3f1.js → chevron-right-DI7co3UN.js} +1 -1
  51. package/ui-dist/assets/{clipboard-BNjohVM9.js → clipboard-Bo4IrVtO.js} +1 -1
  52. package/ui-dist/assets/{company-members-BLqmUhC_.js → company-members-Cs8yGeoI.js} +1 -1
  53. package/ui-dist/assets/{createLucideIcon-BY5zEeth.js → createLucideIcon-CLQ6uxcH.js} +30 -30
  54. package/ui-dist/assets/{definition-BvAFaoct.js → definition-BQZGnC0n.js} +1 -1
  55. package/ui-dist/assets/{dist-B6PG7LSl.js → dist-BbSVBEix.js} +1 -1
  56. package/ui-dist/assets/{dist-IkV7XjF6.js → dist-DrRrxz2U.js} +1 -1
  57. package/ui-dist/assets/{environments-Db-5PwTL.js → environments-XRhpXB-M.js} +1 -1
  58. package/ui-dist/assets/{external-link-C0fxPTmL.js → external-link-K3IGxvWK.js} +1 -1
  59. package/ui-dist/assets/{file-text-CFk8yuxg.js → file-text-KXVUI6i-.js} +1 -1
  60. package/ui-dist/assets/{health-uDuG_Kdk.js → health-Dnr6MCRc.js} +1 -1
  61. package/ui-dist/assets/{heartbeats-CY-OhSkI.js → heartbeats-CbpnptmQ.js} +1 -1
  62. package/ui-dist/assets/{index-DMwcu1Y-.js → index-BwUOm4Xq.js} +168 -167
  63. package/ui-dist/assets/index-D9x0wcjq.css +1 -0
  64. package/ui-dist/assets/{input-eETG1M5C.js → input-BoiP6orR.js} +1 -1
  65. package/ui-dist/assets/{label-CaB9H2SL.js → label-CELIzVlm.js} +1 -1
  66. package/ui-dist/assets/{loader-circle-GP19zXLR.js → loader-circle-SRrhJJNd.js} +1 -1
  67. package/ui-dist/assets/{mention-chips-DTyYiiiu.js → mention-chips-B3tFslbs.js} +9 -9
  68. package/ui-dist/assets/{octagon-alert-DX7KDHMN.js → octagon-alert-BK-ZgTBH.js} +1 -1
  69. package/ui-dist/assets/{rotate-ccw-AONvzlvS.js → rotate-ccw-C-migVv-.js} +1 -1
  70. package/ui-dist/assets/{router-D9K0z3tS.js → router-BF60R0zd.js} +2 -2
  71. package/ui-dist/assets/{save-DEgZPLfX.js → save-BiJVRX4n.js} +1 -1
  72. package/ui-dist/assets/{select-DK8w-ynH.js → select-C5wSYGXD.js} +1 -1
  73. package/ui-dist/assets/{sheet-gGD3j06A.js → sheet-DdVF0068.js} +1 -1
  74. package/ui-dist/assets/{skeleton-BLy6O28Y.js → skeleton-BqTPd9e1.js} +1 -1
  75. package/ui-dist/assets/{tabs-BfMGh_Jv.js → tabs-DA7s0b5p.js} +1 -1
  76. package/ui-dist/assets/{triangle-alert-xF2os76Q.js → triangle-alert-DLfImvPL.js} +1 -1
  77. package/ui-dist/assets/{use-adapter-capabilities-D5gIkuKA.js → use-adapter-capabilities-zxCr69V4.js} +1 -1
  78. package/ui-dist/assets/{useHiddenSettings-z0AwYeA9.js → useHiddenSettings-DmjgEkL4.js} +1 -1
  79. package/ui-dist/assets/{zap-C2Kg_IRl.js → zap-CeCCVOlg.js} +1 -1
  80. package/ui-dist/index.html +46 -46
  81. package/ui-dist/pixels/furniture/ALARM_LIGHT/ALARM_LIGHT.png +0 -0
  82. package/ui-dist/pixels/furniture/ALARM_LIGHT/ALARM_LIGHT_ON.png +0 -0
  83. package/ui-dist/pixels/furniture/ALARM_LIGHT/manifest.json +32 -0
  84. package/ui-dist/pixels/furniture/COIN_STACK/COIN_STACK.png +0 -0
  85. package/ui-dist/pixels/furniture/COIN_STACK/manifest.json +13 -0
  86. package/ui-dist/pixels/furniture/CONFETTI/CONFETTI.png +0 -0
  87. package/ui-dist/pixels/furniture/CONFETTI/manifest.json +13 -0
  88. package/ui-dist/pixels/furniture/DESK_LAMP/DESK_LAMP.png +0 -0
  89. package/ui-dist/pixels/furniture/DESK_LAMP/manifest.json +13 -0
  90. package/ui-dist/pixels/furniture/KANBAN_BOARD/KANBAN_BOARD.png +0 -0
  91. package/ui-dist/pixels/furniture/KANBAN_BOARD/manifest.json +13 -0
  92. package/ui-dist/pixels/furniture/MAILBOX/MAILBOX.png +0 -0
  93. package/ui-dist/pixels/furniture/MAILBOX/manifest.json +13 -0
  94. package/ui-dist/pixels/furniture/SMOKE/SMOKE_1.png +0 -0
  95. package/ui-dist/pixels/furniture/SMOKE/SMOKE_2.png +0 -0
  96. package/ui-dist/pixels/furniture/SMOKE/SMOKE_3.png +0 -0
  97. package/ui-dist/pixels/furniture/SMOKE/manifest.json +42 -0
  98. package/ui-dist/pixels/pixels-office-assets.json +1 -1
  99. package/ui-dist/sw.js +1 -1
  100. package/ui-dist/assets/CompanyActivity.production-gtrJLRmZ.js +0 -1
  101. package/ui-dist/assets/index-BTKFpILc.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pixels-office.d.ts","sourceRoot":"","sources":["../../src/routes/pixels-office.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAYvD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,8CAwDxC"}
1
+ {"version":3,"file":"pixels-office.d.ts","sourceRoot":"","sources":["../../src/routes/pixels-office.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAevD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,8CAiExC"}
@@ -1,5 +1,5 @@
1
1
  import { Router } from "express";
2
- import { pixelsOfficeSeatAssignmentsSchema } from "@tickernelz/paperclip-pro-shared";
2
+ import { pixelsOfficeSeatAssignmentsSchema, pixelsOfficeTimelineQuerySchema, } from "@tickernelz/paperclip-pro-shared";
3
3
  import { notFound } from "../errors.js";
4
4
  import { validate } from "../middleware/validate.js";
5
5
  import { accessService, instanceSettingsService, logActivity, pixelsOfficeService, } from "../services/index.js";
@@ -33,6 +33,15 @@ export function pixelsOfficeRoutes(db) {
33
33
  await assertPixelsOfficeEnabled();
34
34
  res.json(await service.snapshot(companyId));
35
35
  });
36
+ router.get("/companies/:companyId/pixels-office/timeline", async (req, res) => {
37
+ const companyId = req.params.companyId;
38
+ assertCompanyAccess(req, companyId);
39
+ if (!(await assertCompanyScopeReadAllowed(req, res, companyId)))
40
+ return;
41
+ await assertPixelsOfficeEnabled();
42
+ const query = pixelsOfficeTimelineQuerySchema.parse(req.query);
43
+ res.json(await service.timeline(companyId, query));
44
+ });
36
45
  router.put("/companies/:companyId/pixels-office/seats", validate(pixelsOfficeSeatAssignmentsSchema), async (req, res) => {
37
46
  const companyId = req.params.companyId;
38
47
  assertBoard(req);
@@ -1 +1 @@
1
- {"version":3,"file":"pixels-office.js","sourceRoot":"","sources":["../../src/routes/pixels-office.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pixels-office.js","sourceRoot":"","sources":["../../src/routes/pixels-office.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import type { Db } from "@tickernelz/paperclip-pro-db";
2
- import { type PixelsOfficeSeatAssignment, type PixelsOfficeSnapshot } from "@tickernelz/paperclip-pro-shared";
2
+ import { type PixelsOfficeSeatAssignment, type PixelsOfficeSnapshot, type PixelsOfficeTimeline, type PixelsOfficeTimelineQuery } from "@tickernelz/paperclip-pro-shared";
3
3
  export declare function pixelsOfficeService(db: Db): {
4
4
  snapshot: (companyId: string) => Promise<PixelsOfficeSnapshot>;
5
5
  replaceSeatAssignments: (companyId: string, assignments: PixelsOfficeSeatAssignment[]) => Promise<PixelsOfficeSeatAssignment[]>;
6
6
  listSeatAssignments: (companyId: string) => Promise<PixelsOfficeSeatAssignment[]>;
7
+ timeline: (companyId: string, query: PixelsOfficeTimelineQuery) => Promise<PixelsOfficeTimeline>;
7
8
  };
8
9
  //# sourceMappingURL=pixels-office.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pixels-office.d.ts","sourceRoot":"","sources":["../../src/services/pixels-office.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAEvD,OAAO,EAQL,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EAE1B,MAAM,kCAAkC,CAAC;AAwB1C,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE;0BACL,MAAM,KAAG,OAAO,CAAC,oBAAoB,CAAC;wCA8G5D,MAAM,eACJ,0BAA0B,EAAE,KACxC,OAAO,CAAC,0BAA0B,EAAE,CAAC;qCAwCM,MAAM,KAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;EAa7F"}
1
+ {"version":3,"file":"pixels-office.d.ts","sourceRoot":"","sources":["../../src/services/pixels-office.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AASvD,OAAO,EAWL,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EAEzB,KAAK,oBAAoB,EAEzB,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAmI1C,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE;0BACL,MAAM,KAAG,OAAO,CAAC,oBAAoB,CAAC;wCA6O5D,MAAM,eACJ,0BAA0B,EAAE,KACxC,OAAO,CAAC,0BAA0B,EAAE,CAAC;qCAwCM,MAAM,KAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;0BAa/E,MAAM,SACV,yBAAyB,KAC/B,OAAO,CAAC,oBAAoB,CAAC;EA8GjC"}
@@ -1,10 +1,27 @@
1
- import { and, desc, eq, inArray, ne, sql } from "drizzle-orm";
2
- import { agents, heartbeatRuns, issues, pixelsOfficeSeats } from "@tickernelz/paperclip-pro-db";
3
- import { AGENT_DEFAULT_MAX_CONCURRENT_RUNS, AGENT_MAX_MAX_CONCURRENT_RUNS, AGENT_MIN_MAX_CONCURRENT_RUNS, deriveAgentUrlKey, } from "@tickernelz/paperclip-pro-shared";
1
+ import { and, asc, desc, eq, gte, inArray, isNotNull, like, lt, ne, or, sql } from "drizzle-orm";
2
+ import { alias } from "drizzle-orm/pg-core";
3
+ import { activityLog, agents, heartbeatRuns, issues, issueThreadInteractions, pixelsOfficeSeats, } from "@tickernelz/paperclip-pro-db";
4
+ import { AGENT_DEFAULT_MAX_CONCURRENT_RUNS, AGENT_MAX_MAX_CONCURRENT_RUNS, AGENT_MIN_MAX_CONCURRENT_RUNS, deriveAgentUrlKey, PIXELS_OFFICE_TIMELINE_PAGE_LIMIT, } from "@tickernelz/paperclip-pro-shared";
4
5
  import { unprocessable } from "../errors.js";
6
+ import { evaluateAgentInvokability } from "./agent-invokability.js";
7
+ import { getHeartbeatRunRuntimeStatus } from "./heartbeat-run-runtime-status.js";
8
+ import { canonicalizeStoredResolverPolicy } from "./issue-thread-interaction-resolution.js";
5
9
  import { visibleIssueCondition } from "./issue-visibility.js";
6
10
  const OPEN_ISSUE_STATUSES = ["backlog", "todo", "in_progress", "in_review", "blocked"];
7
11
  const LIVE_RUN_STATUSES = ["queued", "running"];
12
+ const COLLABORATION_EDGE_LIMIT = 100;
13
+ const DELEGATION_WINDOW_MS = 24 * 60 * 60 * 1000;
14
+ const TIMELINE_INTERACTION_ACTIONS = [
15
+ "issue.thread_interaction_created",
16
+ "issue.thread_interaction_answered",
17
+ "issue.thread_interaction_accepted",
18
+ ];
19
+ const TIMELINE_ACTIONS = [
20
+ "issue.updated",
21
+ ...TIMELINE_INTERACTION_ACTIONS,
22
+ "routine.run_triggered",
23
+ "budget.hard_threshold_crossed",
24
+ ];
8
25
  function readMaxConcurrentRuns(runtimeConfig) {
9
26
  if (typeof runtimeConfig !== "object" || runtimeConfig === null) {
10
27
  return AGENT_DEFAULT_MAX_CONCURRENT_RUNS;
@@ -19,25 +36,112 @@ function readMaxConcurrentRuns(runtimeConfig) {
19
36
  return AGENT_DEFAULT_MAX_CONCURRENT_RUNS;
20
37
  return Math.max(AGENT_MIN_MAX_CONCURRENT_RUNS, Math.min(AGENT_MAX_MAX_CONCURRENT_RUNS, parsed));
21
38
  }
39
+ function awaitsHumanResolver(interaction, invokableAgentIds) {
40
+ const policy = canonicalizeStoredResolverPolicy(interaction.effectiveResolverPolicy, interaction.resolverPolicyProvenance);
41
+ if (policy === "human_only")
42
+ return true;
43
+ if (interaction.addresseeUserId !== null)
44
+ return true;
45
+ if (interaction.addresseeAgentId === null)
46
+ return true;
47
+ return !invokableAgentIds.has(interaction.addresseeAgentId);
48
+ }
49
+ function runtimeProgress(companyId, agentId, runId) {
50
+ if (!runId)
51
+ return null;
52
+ const status = getHeartbeatRunRuntimeStatus(runId, { companyId, agentId });
53
+ if (!status)
54
+ return null;
55
+ return {
56
+ runId: status.runId,
57
+ message: status.message.length > 0 ? status.message : null,
58
+ toolName: status.currentToolName,
59
+ updatedAt: status.updatedAt.toISOString(),
60
+ };
61
+ }
62
+ function decodeTimelineCursor(cursor) {
63
+ if (!cursor)
64
+ return null;
65
+ const key = Buffer.from(cursor, "base64url").toString("utf8");
66
+ const separator = key.indexOf("|");
67
+ const at = separator > 0 ? new Date(key.slice(0, separator)) : new Date(Number.NaN);
68
+ if (Number.isNaN(at.getTime()))
69
+ throw unprocessable("Timeline cursor is not readable");
70
+ return { at, key };
71
+ }
72
+ function readDetailString(details, key) {
73
+ const value = details?.[key];
74
+ return typeof value === "string" && value.length > 0 ? value : null;
75
+ }
76
+ function timelineEventFromActivity(row) {
77
+ const base = {
78
+ at: row.createdAt.toISOString(),
79
+ agentId: row.agentId,
80
+ ...(row.runId ? { runId: row.runId } : {}),
81
+ };
82
+ if (row.action === "issue.updated") {
83
+ const status = readDetailString(row.details, "status");
84
+ if (!status)
85
+ return null;
86
+ return { ...base, kind: "issue_status", issueId: row.entityId, status };
87
+ }
88
+ if (row.action.startsWith("issue.thread_interaction_")) {
89
+ const addressee = readDetailString(row.details, "addresseeAgentId");
90
+ return {
91
+ ...base,
92
+ kind: "interaction",
93
+ issueId: row.entityId,
94
+ ...(addressee ? { otherAgentId: addressee } : {}),
95
+ };
96
+ }
97
+ if (row.action.startsWith("approval.")) {
98
+ const status = readDetailString(row.details, "status");
99
+ return { ...base, kind: "approval", ...(status ? { status } : {}) };
100
+ }
101
+ if (row.action === "routine.run_triggered") {
102
+ const status = readDetailString(row.details, "status");
103
+ return { ...base, kind: "routine", ...(status ? { status } : {}) };
104
+ }
105
+ if (row.action === "budget.hard_threshold_crossed")
106
+ return { ...base, kind: "budget" };
107
+ return null;
108
+ }
22
109
  export function pixelsOfficeService(db) {
23
110
  async function snapshot(companyId) {
24
111
  const agentRows = await db
25
112
  .select({
26
113
  id: agents.id,
114
+ companyId: agents.companyId,
27
115
  name: agents.name,
28
116
  title: agents.title,
29
117
  role: agents.role,
30
118
  status: agents.status,
119
+ reportsTo: agents.reportsTo,
120
+ pauseReason: agents.pauseReason,
31
121
  runtimeConfig: agents.runtimeConfig,
32
122
  })
33
123
  .from(agents)
34
- .where(and(eq(agents.companyId, companyId), ne(agents.status, "terminated")))
124
+ .where(eq(agents.companyId, companyId))
35
125
  .orderBy(agents.name);
36
- if (agentRows.length === 0) {
37
- return { companyId, agents: [], assignments: [], generatedAt: new Date().toISOString() };
126
+ const liveAgentRows = agentRows.filter((row) => row.status !== "terminated");
127
+ if (liveAgentRows.length === 0) {
128
+ return {
129
+ companyId,
130
+ agents: [],
131
+ assignments: [],
132
+ collaboration: [],
133
+ generatedAt: new Date().toISOString(),
134
+ };
38
135
  }
39
- const agentIds = agentRows.map((row) => row.id);
40
- const [liveRunRows, openIssueRows, assignments] = await Promise.all([
136
+ const agentIds = liveAgentRows.map((row) => row.id);
137
+ const agentIdSet = new Set(agentIds);
138
+ const orgRows = agentRows;
139
+ const invokableAgentIds = new Set(agentRows
140
+ .filter((row) => evaluateAgentInvokability(row, orgRows).invokable)
141
+ .map((row) => row.id));
142
+ const parentIssues = alias(issues, "pixels_office_parent_issues");
143
+ const delegationSince = new Date(Date.now() - DELEGATION_WINDOW_MS);
144
+ const [liveRunRows, openIssueRows, assignments, interactionRows, delegationRows] = await Promise.all([
41
145
  db
42
146
  .select({
43
147
  id: heartbeatRuns.id,
@@ -60,6 +164,33 @@ export function pixelsOfficeService(db) {
60
164
  .where(and(eq(issues.companyId, companyId), inArray(issues.assigneeAgentId, agentIds), inArray(issues.status, [...OPEN_ISSUE_STATUSES]), visibleIssueCondition()))
61
165
  .orderBy(desc(issues.updatedAt)),
62
166
  listSeatAssignments(companyId),
167
+ db
168
+ .select({
169
+ issueAssigneeAgentId: issues.assigneeAgentId,
170
+ issueId: issueThreadInteractions.issueId,
171
+ createdByAgentId: issueThreadInteractions.createdByAgentId,
172
+ addresseeAgentId: issueThreadInteractions.addresseeAgentId,
173
+ addresseeUserId: issueThreadInteractions.addresseeUserId,
174
+ effectiveResolverPolicy: issueThreadInteractions.effectiveResolverPolicy,
175
+ resolverPolicyProvenance: issueThreadInteractions.resolverPolicyProvenance,
176
+ createdAt: issueThreadInteractions.createdAt,
177
+ })
178
+ .from(issueThreadInteractions)
179
+ .innerJoin(issues, eq(issues.id, issueThreadInteractions.issueId))
180
+ .where(and(eq(issueThreadInteractions.companyId, companyId), eq(issueThreadInteractions.status, "pending"), visibleIssueCondition()))
181
+ .orderBy(desc(issueThreadInteractions.createdAt)),
182
+ db
183
+ .select({
184
+ issueId: issues.id,
185
+ toAgentId: issues.assigneeAgentId,
186
+ fromAgentId: parentIssues.assigneeAgentId,
187
+ createdAt: issues.createdAt,
188
+ })
189
+ .from(issues)
190
+ .innerJoin(parentIssues, eq(parentIssues.id, issues.parentId))
191
+ .where(and(eq(issues.companyId, companyId), eq(parentIssues.companyId, companyId), inArray(issues.status, [...OPEN_ISSUE_STATUSES]), gte(issues.createdAt, delegationSince), isNotNull(issues.assigneeAgentId), isNotNull(parentIssues.assigneeAgentId), ne(issues.assigneeAgentId, parentIssues.assigneeAgentId), visibleIssueCondition()))
192
+ .orderBy(desc(issues.createdAt))
193
+ .limit(COLLABORATION_EDGE_LIMIT),
63
194
  ]);
64
195
  const runningRunByAgent = new Map();
65
196
  const queuedRunByAgent = new Map();
@@ -91,8 +222,58 @@ export function pixelsOfficeService(db) {
91
222
  });
92
223
  tasksByAgent.set(agentId, list);
93
224
  }
94
- const result = agentRows.map((row) => {
225
+ const pendingInteractionCounts = new Map();
226
+ const awaitingBoardCounts = new Map();
227
+ const collaboration = [];
228
+ const waitingAgentIds = new Set();
229
+ for (const interaction of interactionRows) {
230
+ waitingAgentIds.clear();
231
+ if (interaction.issueAssigneeAgentId && agentIdSet.has(interaction.issueAssigneeAgentId)) {
232
+ waitingAgentIds.add(interaction.issueAssigneeAgentId);
233
+ }
234
+ if (interaction.addresseeAgentId && agentIdSet.has(interaction.addresseeAgentId)) {
235
+ waitingAgentIds.add(interaction.addresseeAgentId);
236
+ }
237
+ for (const agentId of waitingAgentIds) {
238
+ pendingInteractionCounts.set(agentId, (pendingInteractionCounts.get(agentId) ?? 0) + 1);
239
+ }
240
+ const creatorId = interaction.createdByAgentId;
241
+ if (creatorId && agentIdSet.has(creatorId) && awaitsHumanResolver(interaction, invokableAgentIds)) {
242
+ awaitingBoardCounts.set(creatorId, (awaitingBoardCounts.get(creatorId) ?? 0) + 1);
243
+ }
244
+ if (creatorId
245
+ && interaction.addresseeAgentId
246
+ && creatorId !== interaction.addresseeAgentId
247
+ && agentIdSet.has(creatorId)
248
+ && agentIdSet.has(interaction.addresseeAgentId)) {
249
+ collaboration.push({
250
+ fromAgentId: creatorId,
251
+ toAgentId: interaction.addresseeAgentId,
252
+ kind: "interaction",
253
+ issueId: interaction.issueId,
254
+ since: interaction.createdAt.toISOString(),
255
+ });
256
+ }
257
+ }
258
+ for (const row of delegationRows) {
259
+ if (!row.fromAgentId || !row.toAgentId)
260
+ continue;
261
+ if (!agentIdSet.has(row.fromAgentId) || !agentIdSet.has(row.toAgentId))
262
+ continue;
263
+ collaboration.push({
264
+ fromAgentId: row.fromAgentId,
265
+ toAgentId: row.toAgentId,
266
+ kind: "delegation",
267
+ issueId: row.issueId,
268
+ since: row.createdAt.toISOString(),
269
+ });
270
+ }
271
+ collaboration.sort((left, right) => right.since.localeCompare(left.since));
272
+ collaboration.length = Math.min(collaboration.length, COLLABORATION_EDGE_LIMIT);
273
+ const result = liveAgentRows.map((row) => {
95
274
  const tasks = tasksByAgent.get(row.id) ?? [];
275
+ const activeRunId = runningRunByAgent.get(row.id) ?? null;
276
+ const queuedRunId = queuedRunByAgent.get(row.id) ?? null;
96
277
  return {
97
278
  id: row.id,
98
279
  name: row.name,
@@ -100,15 +281,25 @@ export function pixelsOfficeService(db) {
100
281
  role: row.role,
101
282
  status: row.status,
102
283
  urlKey: deriveAgentUrlKey(row.name, row.id),
103
- activeRunId: runningRunByAgent.get(row.id) ?? null,
104
- queuedRunId: queuedRunByAgent.get(row.id) ?? null,
284
+ activeRunId,
285
+ queuedRunId,
105
286
  activeTaskCount: tasks.filter((task) => task.active).length,
106
287
  queuedTaskCount: tasks.filter((task) => task.runStatus === "queued").length,
107
288
  maxConcurrentRuns: readMaxConcurrentRuns(row.runtimeConfig),
289
+ pendingInteractionCount: pendingInteractionCounts.get(row.id) ?? 0,
290
+ awaitingBoardCount: awaitingBoardCounts.get(row.id) ?? 0,
291
+ budgetPaused: row.status === "paused" && row.pauseReason === "budget",
292
+ progress: runtimeProgress(companyId, row.id, activeRunId ?? queuedRunId),
108
293
  tasks,
109
294
  };
110
295
  });
111
- return { companyId, agents: result, assignments, generatedAt: new Date().toISOString() };
296
+ return {
297
+ companyId,
298
+ agents: result,
299
+ assignments,
300
+ collaboration,
301
+ generatedAt: new Date().toISOString(),
302
+ };
112
303
  }
113
304
  async function replaceSeatAssignments(companyId, assignments) {
114
305
  const knownAgentIds = new Set((await db
@@ -152,6 +343,93 @@ export function pixelsOfficeService(db) {
152
343
  .where(eq(pixelsOfficeSeats.companyId, companyId));
153
344
  return rows;
154
345
  }
155
- return { snapshot, replaceSeatAssignments, listSeatAssignments };
346
+ async function timeline(companyId, query) {
347
+ const from = new Date(query.from);
348
+ const to = new Date(query.to);
349
+ const cursor = decodeTimelineCursor(query.cursor);
350
+ const lowerBound = cursor && cursor.at > from ? cursor.at : from;
351
+ const fetchLimit = PIXELS_OFFICE_TIMELINE_PAGE_LIMIT + 1;
352
+ const runOrder = sql `coalesce(${heartbeatRuns.startedAt}, ${heartbeatRuns.finishedAt})`;
353
+ const [runRows, activityRows] = await Promise.all([
354
+ db
355
+ .select({
356
+ id: heartbeatRuns.id,
357
+ agentId: heartbeatRuns.agentId,
358
+ status: heartbeatRuns.status,
359
+ startedAt: heartbeatRuns.startedAt,
360
+ finishedAt: heartbeatRuns.finishedAt,
361
+ issueId: sql `${heartbeatRuns.contextSnapshot} ->> 'issueId'`.as("issueId"),
362
+ })
363
+ .from(heartbeatRuns)
364
+ .where(and(eq(heartbeatRuns.companyId, companyId), or(and(gte(heartbeatRuns.startedAt, lowerBound), lt(heartbeatRuns.startedAt, to)), and(gte(heartbeatRuns.finishedAt, lowerBound), lt(heartbeatRuns.finishedAt, to)))))
365
+ .orderBy(asc(runOrder), asc(heartbeatRuns.id))
366
+ .limit(fetchLimit),
367
+ db
368
+ .select({
369
+ id: activityLog.id,
370
+ action: activityLog.action,
371
+ entityId: activityLog.entityId,
372
+ agentId: activityLog.agentId,
373
+ runId: activityLog.runId,
374
+ details: activityLog.details,
375
+ createdAt: activityLog.createdAt,
376
+ })
377
+ .from(activityLog)
378
+ .where(and(eq(activityLog.companyId, companyId), gte(activityLog.createdAt, lowerBound), lt(activityLog.createdAt, to), or(inArray(activityLog.action, [...TIMELINE_ACTIONS]), like(activityLog.action, "approval.%"))))
379
+ .orderBy(asc(activityLog.createdAt), asc(activityLog.id))
380
+ .limit(fetchLimit),
381
+ ]);
382
+ const ordered = [];
383
+ for (const run of runRows) {
384
+ if (run.startedAt && run.startedAt >= from && run.startedAt < to) {
385
+ const at = run.startedAt.toISOString();
386
+ ordered.push({
387
+ key: `${at}|r${run.id}s`,
388
+ event: {
389
+ at,
390
+ agentId: run.agentId,
391
+ kind: "run_started",
392
+ runId: run.id,
393
+ ...(run.issueId ? { issueId: run.issueId } : {}),
394
+ },
395
+ });
396
+ }
397
+ if (run.finishedAt && run.finishedAt >= from && run.finishedAt < to) {
398
+ const at = run.finishedAt.toISOString();
399
+ ordered.push({
400
+ key: `${at}|r${run.id}f`,
401
+ event: {
402
+ at,
403
+ agentId: run.agentId,
404
+ kind: "run_finished",
405
+ runId: run.id,
406
+ status: run.status,
407
+ ...(run.issueId ? { issueId: run.issueId } : {}),
408
+ },
409
+ });
410
+ }
411
+ }
412
+ for (const row of activityRows) {
413
+ const event = timelineEventFromActivity(row);
414
+ if (event)
415
+ ordered.push({ key: `${event.at}|a${row.id}`, event });
416
+ }
417
+ ordered.sort((left, right) => (left.key < right.key ? -1 : left.key > right.key ? 1 : 0));
418
+ const cursorKey = cursor?.key ?? null;
419
+ const remaining = cursorKey === null
420
+ ? ordered
421
+ : ordered.filter((entry) => entry.key > cursorKey);
422
+ const page = remaining.slice(0, PIXELS_OFFICE_TIMELINE_PAGE_LIMIT);
423
+ const nextCursor = remaining.length > page.length && page.length > 0
424
+ ? Buffer.from(page[page.length - 1].key, "utf8").toString("base64url")
425
+ : null;
426
+ return {
427
+ from: from.toISOString(),
428
+ to: to.toISOString(),
429
+ events: page.map((entry) => entry.event),
430
+ nextCursor,
431
+ };
432
+ }
433
+ return { snapshot, replaceSeatAssignments, listSeatAssignments, timeline };
156
434
  }
157
435
  //# sourceMappingURL=pixels-office.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pixels-office.js","sourceRoot":"","sources":["../../src/services/pixels-office.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pixels-office.js","sourceRoot":"","sources":["../../src/services/pixels-office.ts"],"names":[],"mappings":"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"}
@@ -649,7 +649,21 @@ export declare class AgentApp {
649
649
  * Registers a handler that runs when this agent app opens a connection.
650
650
  *
651
651
  * Use this for connection-scoped work that needs to call client-side ACP
652
- * methods outside an inbound request handler.
652
+ * methods outside an inbound request handler, or to set up per-connection
653
+ * state that the request handlers use.
654
+ *
655
+ * Handlers are called synchronously in registration order and are not
656
+ * awaited. A handler that throws or rejects closes the connection. When they
657
+ * are called depends on who opens the connection:
658
+ *
659
+ * - `connect(...)` and `connectWith(...)` call them before the connection
660
+ * handles its first inbound message, and so does the experimental
661
+ * `AgentProtocolRouter`'s `connect(...)` when it routes to this app. Only
662
+ * the work a handler does before its first `await` is guaranteed to come
663
+ * first.
664
+ * - The experimental `AcpServer` calls them after the client has completed
665
+ * `initialize`, so messages they send cannot replace the initialize
666
+ * response. Request handlers, including `initialize`, can run before them.
653
667
  */
654
668
  onConnect(handler: AgentConnectHandler): this;
655
669
  /**
@@ -777,7 +777,21 @@ export class AgentApp {
777
777
  * Registers a handler that runs when this agent app opens a connection.
778
778
  *
779
779
  * Use this for connection-scoped work that needs to call client-side ACP
780
- * methods outside an inbound request handler.
780
+ * methods outside an inbound request handler, or to set up per-connection
781
+ * state that the request handlers use.
782
+ *
783
+ * Handlers are called synchronously in registration order and are not
784
+ * awaited. A handler that throws or rejects closes the connection. When they
785
+ * are called depends on who opens the connection:
786
+ *
787
+ * - `connect(...)` and `connectWith(...)` call them before the connection
788
+ * handles its first inbound message, and so does the experimental
789
+ * `AgentProtocolRouter`'s `connect(...)` when it routes to this app. Only
790
+ * the work a handler does before its first `await` is guaranteed to come
791
+ * first.
792
+ * - The experimental `AcpServer` calls them after the client has completed
793
+ * `initialize`, so messages they send cannot replace the initialize
794
+ * response. Request handlers, including `initialize`, can run before them.
781
795
  */
782
796
  onConnect(handler) {
783
797
  this.connectHandlers.push(handler);