@tickernelz/paperclip-pro-server 2026.925.0 → 2026.925.2

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 (152) hide show
  1. package/dist/adapters/registry.d.ts.map +1 -1
  2. package/dist/adapters/registry.js +6 -3
  3. package/dist/adapters/registry.js.map +1 -1
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/app.js +4 -0
  6. package/dist/app.js.map +1 -1
  7. package/dist/build-info.json +1 -1
  8. package/dist/middleware/agent-authority-audit.d.ts +4 -0
  9. package/dist/middleware/agent-authority-audit.d.ts.map +1 -0
  10. package/dist/middleware/agent-authority-audit.js +51 -0
  11. package/dist/middleware/agent-authority-audit.js.map +1 -0
  12. package/dist/middleware/auth.d.ts.map +1 -1
  13. package/dist/middleware/auth.js +4 -0
  14. package/dist/middleware/auth.js.map +1 -1
  15. package/dist/onboarding-assets/ceo/AGENTS.md +2 -2
  16. package/dist/onboarding-assets/ceo/HEARTBEAT.md +7 -7
  17. package/dist/onboarding-assets/default/AGENTS.md +3 -3
  18. package/dist/redaction.js +1 -1
  19. package/dist/redaction.js.map +1 -1
  20. package/dist/routes/access.d.ts.map +1 -1
  21. package/dist/routes/access.js +43 -13
  22. package/dist/routes/access.js.map +1 -1
  23. package/dist/routes/adapters.js +5 -5
  24. package/dist/routes/adapters.js.map +1 -1
  25. package/dist/routes/agents.d.ts.map +1 -1
  26. package/dist/routes/agents.js +105 -46
  27. package/dist/routes/agents.js.map +1 -1
  28. package/dist/routes/ai-connections.d.ts.map +1 -1
  29. package/dist/routes/ai-connections.js +3 -5
  30. package/dist/routes/ai-connections.js.map +1 -1
  31. package/dist/routes/approvals.d.ts.map +1 -1
  32. package/dist/routes/approvals.js +42 -17
  33. package/dist/routes/approvals.js.map +1 -1
  34. package/dist/routes/authz.d.ts +5 -1
  35. package/dist/routes/authz.d.ts.map +1 -1
  36. package/dist/routes/authz.js +63 -0
  37. package/dist/routes/authz.js.map +1 -1
  38. package/dist/routes/companies.d.ts.map +1 -1
  39. package/dist/routes/companies.js +11 -14
  40. package/dist/routes/companies.js.map +1 -1
  41. package/dist/routes/costs.d.ts.map +1 -1
  42. package/dist/routes/costs.js +13 -9
  43. package/dist/routes/costs.js.map +1 -1
  44. package/dist/routes/decisions.js +2 -3
  45. package/dist/routes/decisions.js.map +1 -1
  46. package/dist/routes/instance-settings.js +2 -2
  47. package/dist/routes/instance-settings.js.map +1 -1
  48. package/dist/routes/issue-tree-control.js +7 -7
  49. package/dist/routes/issue-tree-control.js.map +1 -1
  50. package/dist/routes/issues.d.ts.map +1 -1
  51. package/dist/routes/issues.js +12 -12
  52. package/dist/routes/issues.js.map +1 -1
  53. package/dist/routes/llms.d.ts.map +1 -1
  54. package/dist/routes/llms.js +5 -4
  55. package/dist/routes/llms.js.map +1 -1
  56. package/dist/routes/managed-agent-profiles.d.ts.map +1 -1
  57. package/dist/routes/managed-agent-profiles.js +3 -5
  58. package/dist/routes/managed-agent-profiles.js.map +1 -1
  59. package/dist/routes/openapi.d.ts.map +1 -1
  60. package/dist/routes/openapi.js +25 -0
  61. package/dist/routes/openapi.js.map +1 -1
  62. package/dist/routes/paperclip-mcp.d.ts +4 -0
  63. package/dist/routes/paperclip-mcp.d.ts.map +1 -0
  64. package/dist/routes/paperclip-mcp.js +85 -0
  65. package/dist/routes/paperclip-mcp.js.map +1 -0
  66. package/dist/routes/projects.js +2 -2
  67. package/dist/routes/projects.js.map +1 -1
  68. package/dist/routes/remote-agent-profiles.d.ts.map +1 -1
  69. package/dist/routes/remote-agent-profiles.js +3 -5
  70. package/dist/routes/remote-agent-profiles.js.map +1 -1
  71. package/dist/routes/routines.d.ts.map +1 -1
  72. package/dist/routes/routines.js +5 -5
  73. package/dist/routes/routines.js.map +1 -1
  74. package/dist/services/agent-authority-escalation.d.ts +17 -0
  75. package/dist/services/agent-authority-escalation.d.ts.map +1 -0
  76. package/dist/services/agent-authority-escalation.js +57 -0
  77. package/dist/services/agent-authority-escalation.js.map +1 -0
  78. package/dist/services/agent-conversations.d.ts +1 -1
  79. package/dist/services/agent-conversations.d.ts.map +1 -1
  80. package/dist/services/agent-conversations.js +3 -3
  81. package/dist/services/agents.d.ts +10 -10
  82. package/dist/services/authorization.d.ts +10 -2
  83. package/dist/services/authorization.d.ts.map +1 -1
  84. package/dist/services/authorization.js +44 -1
  85. package/dist/services/authorization.js.map +1 -1
  86. package/dist/services/heartbeat.d.ts.map +1 -1
  87. package/dist/services/heartbeat.js +107 -7
  88. package/dist/services/heartbeat.js.map +1 -1
  89. package/dist/services/native-runtime/runner-api-reference.js +1 -1
  90. package/dist/services/native-runtime/runner-api-reference.js.map +1 -1
  91. package/dist/services/pipeline-case-outputs.js +2 -2
  92. package/dist/services/pipeline-case-outputs.js.map +1 -1
  93. package/dist/services/pipeline-conversation-context.js +2 -2
  94. package/dist/services/pipeline-conversation-context.js.map +1 -1
  95. package/dist/services/pipelines.js +2 -2
  96. package/dist/services/pipelines.js.map +1 -1
  97. package/dist/services/secret-proposal-notifications.js +1 -1
  98. package/dist/services/secret-proposal-notifications.js.map +1 -1
  99. package/dist/services/status-card-update-engine.d.ts +4 -4
  100. package/dist/services/status-card-update-engine.d.ts.map +1 -1
  101. package/dist/services/status-cards.d.ts.map +1 -1
  102. package/dist/services/status-cards.js +5 -3
  103. package/dist/services/status-cards.js.map +1 -1
  104. package/dist/services/tool-action-delivery.js +1 -1
  105. package/dist/services/tool-action-delivery.js.map +1 -1
  106. package/dist/vendor/paperclip-runner/generated/capability-contract.d.ts +2 -2
  107. package/dist/vendor/paperclip-runner/generated/capability-contract.js +2 -2
  108. package/node_modules/@types/node/README.md +1 -1
  109. package/node_modules/@types/node/crypto.d.ts +2 -2
  110. package/node_modules/@types/node/dgram.d.ts +1 -1
  111. package/node_modules/@types/node/package.json +2 -2
  112. package/node_modules/bare-fs/binding.c +53 -24
  113. package/node_modules/bare-fs/index.d.ts +12 -10
  114. package/node_modules/bare-fs/index.js +13 -4
  115. package/node_modules/bare-fs/package.json +2 -1
  116. package/node_modules/bare-fs/prebuilds/android-arm/bare-fs.bare +0 -0
  117. package/node_modules/bare-fs/prebuilds/android-arm64/bare-fs.bare +0 -0
  118. package/node_modules/bare-fs/prebuilds/android-ia32/bare-fs.bare +0 -0
  119. package/node_modules/bare-fs/prebuilds/android-x64/bare-fs.bare +0 -0
  120. package/node_modules/bare-fs/prebuilds/darwin-arm64/bare-fs.bare +0 -0
  121. package/node_modules/bare-fs/prebuilds/darwin-x64/bare-fs.bare +0 -0
  122. package/node_modules/bare-fs/prebuilds/ios-arm64/bare-fs.bare +0 -0
  123. package/node_modules/bare-fs/prebuilds/ios-arm64-simulator/bare-fs.bare +0 -0
  124. package/node_modules/bare-fs/prebuilds/ios-x64-simulator/bare-fs.bare +0 -0
  125. package/node_modules/bare-fs/prebuilds/linux-arm64/bare-fs.bare +0 -0
  126. package/node_modules/bare-fs/prebuilds/linux-x64/bare-fs.bare +0 -0
  127. package/node_modules/bare-fs/prebuilds/win32-arm64/bare-fs.bare +0 -0
  128. package/node_modules/bare-fs/prebuilds/win32-x64/bare-fs.bare +0 -0
  129. package/package.json +20 -19
  130. package/skills/paperclip/SKILL.md +123 -134
  131. package/skills/paperclip/references/api-reference.md +339 -376
  132. package/skills/paperclip/references/artifacts.md +54 -57
  133. package/skills/paperclip/references/cases.md +57 -68
  134. package/skills/paperclip/references/company-skills.md +66 -146
  135. package/skills/paperclip/references/issue-workspaces.md +28 -43
  136. package/skills/paperclip/references/routines.md +52 -44
  137. package/skills/paperclip/references/workflows.md +32 -46
  138. package/skills/paperclip-board/SKILL.md +141 -334
  139. package/skills/paperclip-create-agent/SKILL.md +45 -62
  140. package/skills/paperclip-create-agent/references/api-reference.md +30 -31
  141. package/ui-dist/assets/{Agents.production-BsKiBknO.js → Agents.production-C9UfcX_l.js} +2 -2
  142. package/ui-dist/assets/{CompanyActivity.production-Bp4gxpq3.js → CompanyActivity.production-BrGxzr9C.js} +1 -1
  143. package/ui-dist/assets/{CompanyExport-BvUhFYBr.js → CompanyExport-D-L3aIBA.js} +1 -1
  144. package/ui-dist/assets/{CompanySkills.production-htb9HH0N.js → CompanySkills.production-i-yIgrn5.js} +1 -1
  145. package/ui-dist/assets/{Costs.production-CzulNW6Y.js → Costs.production-Bds9QYE3.js} +1 -1
  146. package/ui-dist/assets/{OrgChart.production-DbBigpMZ.js → OrgChart.production-Cgr0byQj.js} +1 -1
  147. package/ui-dist/assets/{RoutineDetail.production-DJn3YZiR.js → RoutineDetail.production-BbeeGNoZ.js} +1 -1
  148. package/ui-dist/assets/{Routines.production-BBDkh1yN.js → Routines.production-Cx0jBxDn.js} +1 -1
  149. package/ui-dist/assets/{definition-qmfin__X.js → definition-C9sWnmbO.js} +1 -1
  150. package/ui-dist/assets/{index-ZrmXLuMX.js → index-CuZyHEwK.js} +58 -58
  151. package/ui-dist/index.html +1 -1
  152. package/ui-dist/sw.js +1 -1
@@ -25,7 +25,7 @@ import { logger } from "../middleware/logger.js";
25
25
  import { forbidden } from "../errors.js";
26
26
  import { isCloudManagedInstance } from "../services/cloud-instance.js";
27
27
  import { getHiddenSettings } from "../services/settings-visibility.js";
28
- import { assertBoardOrgAccess, assertInstanceAdmin } from "./authz.js";
28
+ import { assertBoardOrgOrAgentAuthority, assertInstanceAdmin } from "./authz.js";
29
29
  import { BUILTIN_ADAPTER_TYPES } from "../adapters/builtin-adapter-types.js";
30
30
  const execFileAsync = promisify(execFile);
31
31
  /**
@@ -177,7 +177,7 @@ export function adapterRoutes(options = {}) {
177
177
  // Adapter inventory is needed by ordinary board members when creating or
178
178
  // editing company agents. Mutating adapter management routes below remain
179
179
  // instance-admin only because they affect the whole server runtime.
180
- assertBoardOrgAccess(_req);
180
+ assertBoardOrgOrAgentAuthority(_req, "work:read");
181
181
  const registeredAdapters = listServerAdapters();
182
182
  const externalRecords = new Map(listAdapterPlugins().map((r) => [r.type, r]));
183
183
  const disabledSet = new Set(getDisabledAdapterTypes());
@@ -308,7 +308,7 @@ export function adapterRoutes(options = {}) {
308
308
  }
309
309
  });
310
310
  router.get("/adapters/:type", async (req, res) => {
311
- assertBoardOrgAccess(req);
311
+ assertBoardOrgOrAgentAuthority(req, "work:read");
312
312
  const adapterType = req.params.type;
313
313
  const adapter = findServerAdapter(adapterType);
314
314
  if (!adapter) {
@@ -545,7 +545,7 @@ export function adapterRoutes(options = {}) {
545
545
  router.get("/adapters/:type/config-schema", async (req, res) => {
546
546
  // Config schemas are read-only form metadata used when org members create
547
547
  // or edit agents; they do not install or execute new adapter code.
548
- assertBoardOrgAccess(req);
548
+ assertBoardOrgOrAgentAuthority(req, "work:read");
549
549
  const { type } = req.params;
550
550
  const adapter = findActiveServerAdapter(type);
551
551
  if (!adapter) {
@@ -582,7 +582,7 @@ export function adapterRoutes(options = {}) {
582
582
  router.get("/adapters/:type/ui-parser.js", (req, res) => {
583
583
  // UI parsers are read-only assets for displaying existing run output.
584
584
  // Runtime-changing adapter management routes above require instance admin.
585
- assertBoardOrgAccess(req);
585
+ assertBoardOrgOrAgentAuthority(req, "work:read");
586
586
  const { type } = req.params;
587
587
  const source = getOrExtractUiParserSource(type, findServerAdapter(type)?.uiParserPath);
588
588
  if (!source) {
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/routes/adapters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/routes/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EAEvB,qBAAqB,EACrB,kCAAkC,EAClC,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAO7C,OAAO,EAAE,0BAA0B,EAAqB,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAChJ,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,8BAA8B,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C;;;;;;;GAOG;AACH,SAAS,+BAA+B;IACtC,IAAI,sBAAsB,EAAE,EAAE,CAAC;QAC7B,MAAM,SAAS,CAAC,qEAAqE,EAAE;YACrF,IAAI,EAAE,kCAAkC;SACzC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,8BAA8B;IACrC,IAAI,iBAAiB,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACjD,MAAM,SAAS,CAAC,wEAAwE,EAAE;YACxF,IAAI,EAAE,2BAA2B;SAClC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AA0DD,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;GAEG;AACH,SAAS,wBAAwB,CAAC,MAA2B;IAC3D,OAAO,MAAM,CAAC,SAAS;QACrB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,SAAS,iCAAiC,CAAC,MAA2B;IACpE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QAClC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAA4B;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC;IACtC,OAAO;QACL,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,IAAI,KAAK;QACvE,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;QACjE,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,IAAI,KAAK;QAC7D,iCAAiC,EAAE,OAAO,CAAC,iCAAiC,IAAI,KAAK;QACrF,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;QACjC,GAAG,CAAC,KAAK;YACP,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;iBACnC;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAA4B,EAAE,cAA+C,EAAE,WAAwB;IAC/H,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,iCAAiC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,kFAAkF;QACvG,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC/C,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM;QAC1C,MAAM,EAAE,IAAI,EAAE,uCAAuC;QACrD,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;QACvC,YAAY,EAAE,wBAAwB,CAAC,OAAO,CAAC;QAC/C,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACvF,cAAc,EAAE,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACpG,6FAA6F;QAC7F,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,OAAO;QAC5C,WAAW,EAAE,cAAc,EAAE,WAAW;QACxC,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KAC1D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,kBAAkB,CAAC,OAAe;IAC/C,6CAA6C;IAC7C,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,6CAA6C;IAC7C,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACnE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,6CAA6C,CAAC,CAAC;YAC7E,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,6BAA6B,CAAC,OAA4B;IACjE,qBAAqB,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,UAAU,aAAa,CAAC,OAAO,GAEjC,EAAE;IACJ,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC1C,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,8BAA8B,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAElD,MAAM,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;QAChD,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,kBAAkB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAC7C,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACvD,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QACjG,IAAI,CAAC,mBAAmB;YAAE,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAkB,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/D,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAC1E,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE/C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClD,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACzB,+BAA+B,EAAE,CAAC;QAClC,8BAA8B,EAAE,CAAC;QAEjC,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAA6B,CAAC;QAExF,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+CAA+C,EAAE,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QAED,4EAA4E;QAC5E,wEAAwE;QACxE,IAAI,aAAa,GAAG,WAAW,CAAC;QAChC,IAAI,eAAe,GAAG,OAAO,CAAC;QAC9B,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC/D,IAAI,aAAa,EAAE,CAAC;YAClB,qEAAqE;YACrE,gDAAgD;YAChD,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,WAAW,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxC,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBAClD,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,IAAI,gBAAoC,CAAC;YACzC,IAAI,eAAmC,CAAC;YAExC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,yCAAyC;gBACzC,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;gBAErF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,oCAAoC,CAAC,CAAC;gBAExE,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE;oBACzD,GAAG,EAAE,UAAU;oBACf,OAAO,EAAE,OAAO;iBACjB,CAAC,CAAC;gBAEH,2CAA2C;gBAC3C,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;oBACzF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;oBACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oBAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;oBACtB,gBAAgB;wBACd,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC9E,CAAC;gBAAC,MAAM,CAAC;oBACP,gBAAgB,GAAG,eAAe,CAAC;gBACrC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,yEAAyE;gBACzE,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;oBACnF,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBACrC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACjD,gBAAgB,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,8DAA8D;gBAChE,CAAC;YACH,CAAC;YAED,wEAAwE;YACxE,MAAM,aAAa,GAAG,MAAM,0BAA0B,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YAEvF,uEAAuE;YACvE,2EAA2E;YAC3E,8DAA8D;YAE9D,8DAA8D;YAC9D,qEAAqE;YACrE,6DAA6D;YAC7D,2DAA2D;YAC3D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,sBAAsB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACtF,IAAI,QAAQ,EAAE,CAAC;gBACb,uBAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,+CAA+C,CAAC,CAAC;YAC7F,CAAC;YAED,2BAA2B;YAC3B,6BAA6B,CAAC,aAAa,CAAC,CAAC;YAE7C,gEAAgE;YAChE,MAAM,MAAM,GAAwB;gBAClC,WAAW,EAAE,aAAa;gBAC1B,SAAS,EAAE,eAAe;gBAC1B,OAAO,EAAE,gBAAgB,IAAI,eAAe;gBAC5C,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC;YACF,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAEzB,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,EACxD,2CAA2C,CAC5C,CAAC;YAEF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,WAAW,EAAE,aAAa;gBAC1B,OAAO,EAAE,gBAAgB,IAAI,eAAe;gBAC5C,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,eAAe,EAAE,WAAW;aAC7B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,oCAAoC,CAAC,CAAC;YAEzE,0CAA0C;YAC1C,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,OAAO,EAAE,EAAE,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/C,8BAA8B,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEjD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACpC,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,WAAW,sBAAsB,EAAE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjD,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAEzB,8BAA8B,EAAE,CAAC;QAEjC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACpC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAA8B,CAAC;QAExD,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yDAAyD,EAAE,CAAC,CAAC;YAC3F,OAAO;QACT,CAAC;QAED,gDAAgD;QAChD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,WAAW,sBAAsB,EAAE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAE1D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,0BAA0B,CAAC,CAAC;QAC3E,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1D,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAEzB,8BAA8B,EAAE,CAAC;QAEjC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACpC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAA4B,CAAC;QAEpD,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,WAAW,6BAA6B,EAAE,CAAC,CAAC;YACnF,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEvD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,yBAAyB,CAAC,CAAC;QAE/E,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClD,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACzB,8BAA8B,EAAE,CAAC;QAEjC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAEpC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,qEAAqE;QACrE,2DAA2D;QAC3D,IAAI,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,CAAC;YACnF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,mCAAmC,WAAW,IAAI;aAC1D,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,gDAAgD;QAChD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,YAAY,WAAW,sBAAsB;aACrD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,sCAAsC;QACtC,MAAM,cAAc,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,YAAY,WAAW,2CAA2C;aAC1E,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,6EAA6E;QAC7E,IAAI,cAAc,CAAC,WAAW,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;gBAC1C,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,EAAE;oBACpE,GAAG,EAAE,UAAU;oBACf,OAAO,EAAE,MAAM;iBAChB,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,WAAW,EAAE,EAC9D,8CAA8C,CAC/C,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,WAAW,EAAE,EACnE,uEAAuE,CACxE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAErC,mCAAmC;QACnC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAEjC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,2CAA2C,CAAC,CAAC;QAEhF,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACvD,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACzB,8BAA8B,EAAE,CAAC;QAEjC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAE7B,4EAA4E;QAC5E,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAEpD,0CAA0C;YAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,IAAI,2CAA2C,EAAE,CAAC,CAAC;gBAC7F,OAAO;YACT,CAAC;YAED,8BAA8B;YAC9B,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAC9B,6BAA6B,CAAC,SAAS,CAAC,CAAC;YACzC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE/B,0FAA0F;YAC1F,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,UAA8B,CAAC;YACnC,IAAI,MAAM,EAAE,CAAC;gBACX,UAAU,GAAG,iCAAiC,CAAC,MAAM,CAAC,CAAC;gBACvD,IAAI,UAAU,EAAE,CAAC;oBACf,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,sCAAsC,CAAC,CAAC;YAEnF,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,mCAAmC,CAAC,CAAC;YACjE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6BAA6B,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAC3E,0EAA0E;IAC1E,kEAAkE;IAClE,EAAE;IACF,oEAAoE;IACpE,iEAAiE;IACjE,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1D,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACzB,+BAA+B,EAAE,CAAC;QAClC,8BAA8B,EAAE,CAAC;QAEjC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAE7B,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,IAAI,2CAA2C,EAAE,CAAC,CAAC;YAC7F,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gEAAgE,EAAE,CAAC,CAAC;YAClG,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;YAE1C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,sCAAsC,CAAC,CAAC;YAE/F,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;gBACvE,GAAG,EAAE,UAAU;gBACf,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;YAEH,uCAAuC;YACvC,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAC,CAAC;gBACpF,OAAO;YACT,CAAC;YAED,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAC9B,6BAA6B,CAAC,SAAS,CAAC,CAAC;YACzC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE/B,+BAA+B;YAC/B,IAAI,UAA8B,CAAC;YACnC,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,aAAa,EAAE,CAAC;gBAClB,UAAU,GAAG,iCAAiC,CAAC,aAAa,CAAC,CAAC;gBAC9D,IAAI,UAAU,EAAE,CAAC;oBACf,gBAAgB,CAAC,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,8BAA8B,CAAC,CAAC;YAE3E,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,6BAA6B,CAAC,CAAC;YAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,OAAO,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,qEAAqE;IACrE,4EAA4E;IAC5E,gEAAgE;IAChE,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAI7B,CAAC;IACL,MAAM,oBAAoB,GAAG,MAAM,CAAC;IAEpC,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC7D,0EAA0E;QAC1E,mEAAmE;QACnE,8BAA8B,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACjD,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAE5B,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,IAAI,sBAAsB,EAAE,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,IAAI,qCAAqC,EAAE,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,oBAAoB,EAAE,CAAC;YACjG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;YAC/C,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,iCAAiC,CAAC,CAAC;YAC/D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oCAAoC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,6DAA6D;IAC7D,kEAAkE;IAClE,6CAA6C;IAC7C,EAAE;IACF,wEAAwE;IACxE,0EAA0E;IAC1E,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACtD,sEAAsE;QACtE,2EAA2E;QAC3E,8BAA8B,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACjD,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,MAAM,MAAM,GAAG,0BAA0B,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;QACvF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uCAAuC,IAAI,IAAI,EAAE,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/routes/agents.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AA2EvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAiEhF,OAAO,EACL,wBAAwB,EAWxB,KAAK,sBAAsB,EAE3B,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,sBAAsB,EAK5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACV,cAAc,EAUf,MAAM,kCAAkC,CAAC;AA2P1C,wBAAgB,WAAW,CACzB,EAAE,EAAE,EAAE,EACN,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,2BAA2B,GAAG,2BAA2B,CAAC,CAAC;IACrG,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,6EAA6E;IAC7E,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC;;;;;OAKG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACvE;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE;QAChB,OAAO,EAAE,6BAA6B,CAAC;QACvC,MAAM,EAAE,sBAAsB,CAAC;QAC/B,yEAAyE;QACzE,KAAK,CAAC,EAAE,sBAAsB,CAAC;QAC/B;;;WAGG;QACH,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;KAC7C,CAAC;CACE,8CAszNP"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/routes/agents.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AA4EvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAiEhF,OAAO,EACL,wBAAwB,EAWxB,KAAK,sBAAsB,EAE3B,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,sBAAsB,EAK5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACV,cAAc,EAUf,MAAM,kCAAkC,CAAC;AA2P1C,wBAAgB,WAAW,CACzB,EAAE,EAAE,EAAE,EACN,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,2BAA2B,GAAG,2BAA2B,CAAC,CAAC;IACrG,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,6EAA6E;IAC7E,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC;;;;;OAKG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACvE;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE;QAChB,OAAO,EAAE,6BAA6B,CAAC;QACvC,MAAM,EAAE,sBAAsB,CAAC;QAC/B,yEAAyE;QACzE,KAAK,CAAC,EAAE,sBAAsB,CAAC;QAC/B;;;WAGG;QACH,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;KAC7C,CAAC;CACE,8CAg3NP"}
@@ -1,4 +1,4 @@
1
- import { resolveAgentAppearance, agentAvatarUrl } from "@tickernelz/paperclip-pro-shared";
1
+ import { resolveAgentAppearance, agentAvatarUrl, agentAuthorityCapabilities } from "@tickernelz/paperclip-pro-shared";
2
2
  import { listOpenRouterModels } from "../services/openrouter-models.js";
3
3
  import { prepareManagedAiRuntime, assertManagedAiProjectAuth, stripAiAuthBindings } from "../services/ai-connection-runtime.js";
4
4
  import { ADAPTER_AUTH_MISSING_CHECK_CODE, AI_CONNECTION_CAPABILITIES, aiConnectionBindingSchema } from "@tickernelz/paperclip-pro-shared";
@@ -28,7 +28,8 @@ import { agentService, agentInstructionsService, accessService, approvalService,
28
28
  import { badRequest, conflict, forbidden, HttpError, notFound, unprocessable } from "../errors.js";
29
29
  import { ONBOARDING_FIRST_TASK_SKILL_KEY, PAPERCLIP_CORE_SKILL_KEYS } from "../services/company-skills.js";
30
30
  import { createRunSecretRedactionRegistry } from "../services/run-secret-redaction.js";
31
- import { assertAuthenticated, assertBoard, assertCompanyAccess, assertInstanceAdmin, buildActorSecretContext, getAccessibleResource, getActorInfo, hasCompanyAccess } from "./authz.js";
31
+ import { assertNoAgentAuthorityEscalation } from "../services/agent-authority-escalation.js";
32
+ import { assertAuthenticated, assertBoard, assertBoardOrAgentAuthority, assertCompanyAccess, assertInstanceAdmin, buildActorSecretContext, getAccessibleResource, getActorInfo, hasCompanyAccess } from "./authz.js";
32
33
  import { runAdapterLoginStartSpine } from "./adapter-login-route-spine.js";
33
34
  import { isLoginCommandSupportedAdapterType } from "../services/login-command.js";
34
35
  import { assertNoAgentHostWorkspaceCommandMutation, collectAgentAdapterWorkspaceCommandPaths, } from "./workspace-command-authz.js";
@@ -1358,8 +1359,7 @@ export function agentRoutes(db, options = {}) {
1358
1359
  return actorAgent;
1359
1360
  }
1360
1361
  async function assertBoardCanManageAgentsForCompany(req, companyId) {
1361
- assertBoard(req);
1362
- assertCompanyAccess(req, companyId);
1362
+ assertBoardOrAgentAuthority(req, "company:agents", companyId);
1363
1363
  const decision = await access.decide({
1364
1364
  actor: req.actor,
1365
1365
  action: "agents:create",
@@ -1370,10 +1370,9 @@ export function agentRoutes(db, options = {}) {
1370
1370
  throw forbidden(decision.explanation, authorizationDeniedDetails(decision));
1371
1371
  }
1372
1372
  async function assertBoardCanWakeAgent(req, agent) {
1373
- assertBoard(req);
1374
1373
  if (!hasCompanyAccess(req, agent.companyId))
1375
1374
  throw notFound("Agent not found");
1376
- assertCompanyAccess(req, agent.companyId);
1375
+ assertBoardOrAgentAuthority(req, "company:agents", agent.companyId);
1377
1376
  const decision = await access.decide({
1378
1377
  actor: req.actor, action: "agent:wake",
1379
1378
  resource: { type: "agent", companyId: agent.companyId, agentId: agent.id },
@@ -3368,6 +3367,7 @@ export function agentRoutes(db, options = {}) {
3368
3367
  title: agent.title,
3369
3368
  status: agent.status,
3370
3369
  keyScope: req.actor.keyScope,
3370
+ authorityCapabilities: agentAuthorityCapabilities(agent.role),
3371
3371
  });
3372
3372
  return;
3373
3373
  }
@@ -3377,10 +3377,16 @@ export function agentRoutes(db, options = {}) {
3377
3377
  return;
3378
3378
  }
3379
3379
  if (trustPreset.kind === "low_trust_review") {
3380
- res.json(buildLowTrustSelfView(agent));
3380
+ res.json({
3381
+ ...buildLowTrustSelfView(agent),
3382
+ authorityCapabilities: agentAuthorityCapabilities(agent.role),
3383
+ });
3381
3384
  return;
3382
3385
  }
3383
- res.json(await buildAgentDetail(agent));
3386
+ res.json({
3387
+ ...(await buildAgentDetail(agent)),
3388
+ authorityCapabilities: agentAuthorityCapabilities(agent.role),
3389
+ });
3384
3390
  });
3385
3391
  router.get("/agents/me/inbox-lite", async (req, res) => {
3386
3392
  if (req.actor.type !== "agent" || !req.actor.agentId || !req.actor.companyId) {
@@ -3563,7 +3569,7 @@ export function agentRoutes(db, options = {}) {
3563
3569
  res.json(redactAgentRowForResponse(updated));
3564
3570
  });
3565
3571
  router.get("/agents/:id/runtime-state", async (req, res) => {
3566
- assertBoard(req);
3572
+ assertBoardOrAgentAuthority(req, "company:agents");
3567
3573
  const id = req.params.id;
3568
3574
  const agent = await getAccessibleResource(req, res, svc.getById(id), "Agent not found");
3569
3575
  if (!agent)
@@ -3573,7 +3579,7 @@ export function agentRoutes(db, options = {}) {
3573
3579
  res.json(state);
3574
3580
  });
3575
3581
  router.get("/agents/:id/task-sessions", async (req, res) => {
3576
- assertBoard(req);
3582
+ assertBoardOrAgentAuthority(req, "company:agents");
3577
3583
  const id = req.params.id;
3578
3584
  const agent = await getAccessibleResource(req, res, svc.getById(id), "Agent not found");
3579
3585
  if (!agent)
@@ -3586,7 +3592,7 @@ export function agentRoutes(db, options = {}) {
3586
3592
  })));
3587
3593
  });
3588
3594
  router.post("/agents/:id/runtime-state/reset-session", validate(resetAgentSessionSchema), async (req, res) => {
3589
- assertBoard(req);
3595
+ assertBoardOrAgentAuthority(req, "company:agents");
3590
3596
  const id = req.params.id;
3591
3597
  const agent = await getAccessibleResource(req, res, svc.getById(id), "Agent not found");
3592
3598
  if (!agent)
@@ -3596,10 +3602,14 @@ export function agentRoutes(db, options = {}) {
3596
3602
  ? req.body.taskKey.trim()
3597
3603
  : null;
3598
3604
  const state = await heartbeat.resetRuntimeSession(id, { taskKey });
3605
+ const actor = getActorInfo(req);
3599
3606
  await logActivity(db, {
3600
3607
  companyId: agent.companyId,
3601
- actorType: "user",
3602
- actorId: req.actor.userId ?? "board",
3608
+ actorType: actor.actorType,
3609
+ actorId: actor.actorId,
3610
+ agentId: actor.agentId,
3611
+ runId: actor.runId,
3612
+ agentApiKeyId: actor.agentApiKeyId,
3603
3613
  action: "agent.runtime_session_reset",
3604
3614
  entityType: "agent",
3605
3615
  entityId: id,
@@ -3617,6 +3627,7 @@ export function agentRoutes(db, options = {}) {
3617
3627
  router.post("/companies/:companyId/agent-hires", validate(createAgentHireSchema), async (req, res) => {
3618
3628
  const companyId = req.params.companyId;
3619
3629
  await assertCanCreateAgentsForCompany(req, companyId);
3630
+ assertNoAgentAuthorityEscalation({ req, write: req.body, target: null });
3620
3631
  const sourceIssueIds = parseSourceIssueIds(req.body);
3621
3632
  const { desiredSkills: requestedDesiredSkills, instructionsBundle, sourceIssueId: _sourceIssueId, sourceIssueIds: _sourceIssueIds,
3622
3633
  // The stored-session claim is not an agent column. The server derives the
@@ -3852,6 +3863,7 @@ export function agentRoutes(db, options = {}) {
3852
3863
  router.post("/companies/:companyId/agents", validate(createAgentSchema), async (req, res) => {
3853
3864
  const companyId = req.params.companyId;
3854
3865
  await assertCanCreateAgentsForCompany(req, companyId);
3866
+ assertNoAgentAuthorityEscalation({ req, write: req.body, target: null });
3855
3867
  const company = await db
3856
3868
  .select()
3857
3869
  .from(companies)
@@ -3862,7 +3874,7 @@ export function agentRoutes(db, options = {}) {
3862
3874
  return;
3863
3875
  }
3864
3876
  if (company.requireBoardApprovalForNewAgents) {
3865
- throw conflict("Direct agent creation requires board approval. Use POST /api/companies/:companyId/agent-hires to create a pending hire approval.");
3877
+ throw conflict("Direct agent creation requires board approval. Use paperclipCreateAgentHire to create a pending hire approval.");
3866
3878
  }
3867
3879
  const { desiredSkills: requestedDesiredSkills, instructionsBundle,
3868
3880
  // The stored-session claim is not an agent column. The server derives the
@@ -3980,6 +3992,11 @@ export function agentRoutes(db, options = {}) {
3980
3992
  else {
3981
3993
  await assertBoardCanManageAgentsForCompany(req, existing.companyId);
3982
3994
  }
3995
+ assertNoAgentAuthorityEscalation({
3996
+ req,
3997
+ write: { permissions: req.body },
3998
+ target: { id: existing.id, role: existing.role ?? null, permissions: existing.permissions },
3999
+ });
3983
4000
  const agent = await svc.updatePermissions(id, req.body);
3984
4001
  if (!agent) {
3985
4002
  res.status(404).json({ error: "Agent not found" });
@@ -4208,6 +4225,11 @@ export function agentRoutes(db, options = {}) {
4208
4225
  const existing = await getAccessibleResource(req, res, svc.getById(id), "Agent not found");
4209
4226
  if (!existing)
4210
4227
  return;
4228
+ assertNoAgentAuthorityEscalation({
4229
+ req,
4230
+ write: req.body,
4231
+ target: { id: existing.id, role: existing.role ?? null, permissions: existing.permissions },
4232
+ });
4211
4233
  if (hasOwn(req.body, "permissions")) {
4212
4234
  res.status(422).json({ error: "Use /api/agents/:id/permissions for permission changes" });
4213
4235
  return;
@@ -4379,7 +4401,7 @@ export function agentRoutes(db, options = {}) {
4379
4401
  res.json(redactAgentRowForResponse(agent));
4380
4402
  });
4381
4403
  router.post("/agents/:id/pause", async (req, res) => {
4382
- assertBoard(req);
4404
+ assertBoardOrAgentAuthority(req, "company:agents");
4383
4405
  const id = req.params.id;
4384
4406
  if (!(await getAccessibleAgent(req, res, id))) {
4385
4407
  return;
@@ -4390,10 +4412,14 @@ export function agentRoutes(db, options = {}) {
4390
4412
  return;
4391
4413
  }
4392
4414
  await heartbeat.cancelActiveForAgent(id);
4415
+ const actor = getActorInfo(req);
4393
4416
  await logActivity(db, {
4394
4417
  companyId: agent.companyId,
4395
- actorType: "user",
4396
- actorId: req.actor.userId ?? "board",
4418
+ actorType: actor.actorType,
4419
+ actorId: actor.actorId,
4420
+ agentId: actor.agentId,
4421
+ runId: actor.runId,
4422
+ agentApiKeyId: actor.agentApiKeyId,
4397
4423
  action: "agent.paused",
4398
4424
  entityType: "agent",
4399
4425
  entityId: agent.id,
@@ -4433,7 +4459,7 @@ export function agentRoutes(db, options = {}) {
4433
4459
  res.json(redactAgentRowForResponse(agent));
4434
4460
  });
4435
4461
  router.post("/agents/:id/clear-error", async (req, res) => {
4436
- assertBoard(req);
4462
+ assertBoardOrAgentAuthority(req, "company:agents");
4437
4463
  const id = req.params.id;
4438
4464
  const existing = await getAccessibleAgent(req, res, id);
4439
4465
  if (!existing) {
@@ -4450,10 +4476,14 @@ export function agentRoutes(db, options = {}) {
4450
4476
  res.status(404).json({ error: "Agent not found" });
4451
4477
  return;
4452
4478
  }
4479
+ const actor = getActorInfo(req);
4453
4480
  await logActivity(db, {
4454
4481
  companyId: agent.companyId,
4455
- actorType: "user",
4456
- actorId: req.actor.userId ?? "board",
4482
+ actorType: actor.actorType,
4483
+ actorId: actor.actorId,
4484
+ agentId: actor.agentId,
4485
+ runId: actor.runId,
4486
+ agentApiKeyId: actor.agentApiKeyId,
4457
4487
  action: "agent.error_cleared",
4458
4488
  entityType: "agent",
4459
4489
  entityId: agent.id,
@@ -4461,7 +4491,7 @@ export function agentRoutes(db, options = {}) {
4461
4491
  res.json(redactAgentRowForResponse(agent));
4462
4492
  });
4463
4493
  router.post("/agents/:id/approve", async (req, res) => {
4464
- assertBoard(req);
4494
+ assertBoardOrAgentAuthority(req, "company:agents");
4465
4495
  const id = req.params.id;
4466
4496
  const existing = await getAccessibleAgent(req, res, id);
4467
4497
  if (!existing) {
@@ -4498,10 +4528,14 @@ export function agentRoutes(db, options = {}) {
4498
4528
  res.status(404).json({ error: "Agent not found" });
4499
4529
  return;
4500
4530
  }
4531
+ const actor = getActorInfo(req);
4501
4532
  await logActivity(db, {
4502
4533
  companyId: agent.companyId,
4503
- actorType: "user",
4504
- actorId: req.actor.userId ?? "board",
4534
+ actorType: actor.actorType,
4535
+ actorId: actor.actorId,
4536
+ agentId: actor.agentId,
4537
+ runId: actor.runId,
4538
+ agentApiKeyId: actor.agentApiKeyId,
4505
4539
  action: "agent.approved",
4506
4540
  entityType: "agent",
4507
4541
  entityId: agent.id,
@@ -4510,7 +4544,7 @@ export function agentRoutes(db, options = {}) {
4510
4544
  res.json(redactAgentRowForResponse(agent));
4511
4545
  });
4512
4546
  router.post("/agents/:id/terminate", async (req, res) => {
4513
- assertBoard(req);
4547
+ assertBoardOrAgentAuthority(req, "company:agents");
4514
4548
  const id = req.params.id;
4515
4549
  const existing = await getAccessibleAgent(req, res, id);
4516
4550
  if (!existing) {
@@ -4549,10 +4583,13 @@ export function agentRoutes(db, options = {}) {
4549
4583
  .where(eq(agentsTable.companyId, agent.companyId));
4550
4584
  const invalidOrgChainDescendantIds = listInvalidOrgChainDescendantIds(id, companyAgentRows);
4551
4585
  const cancellation = await heartbeat.cancelInvocationsForAgents([id, ...invalidOrgChainDescendantIds], "Cancelled because the agent was terminated or became invalid-org-chain under a terminated manager");
4586
+ const terminateActor = getActorInfo(req);
4552
4587
  await logActivity(db, {
4553
4588
  companyId: agent.companyId,
4554
- actorType: "user",
4555
- actorId: req.actor.userId ?? "board",
4589
+ actorType: terminateActor.actorType,
4590
+ actorId: terminateActor.actorId,
4591
+ agentId: terminateActor.agentId,
4592
+ runId: terminateActor.runId,
4556
4593
  action: "agent.terminated",
4557
4594
  entityType: "agent",
4558
4595
  entityId: agent.id,
@@ -4572,7 +4609,7 @@ export function agentRoutes(db, options = {}) {
4572
4609
  res.json(redactAgentRowForResponse(agent));
4573
4610
  });
4574
4611
  router.delete("/agents/:id", async (req, res) => {
4575
- assertBoard(req);
4612
+ assertBoardOrAgentAuthority(req, "company:agents");
4576
4613
  const id = req.params.id;
4577
4614
  if (!(await getAccessibleAgent(req, res, id))) {
4578
4615
  return;
@@ -4582,10 +4619,14 @@ export function agentRoutes(db, options = {}) {
4582
4619
  res.status(404).json({ error: "Agent not found" });
4583
4620
  return;
4584
4621
  }
4622
+ const actor = getActorInfo(req);
4585
4623
  await logActivity(db, {
4586
4624
  companyId: agent.companyId,
4587
- actorType: "user",
4588
- actorId: req.actor.userId ?? "board",
4625
+ actorType: actor.actorType,
4626
+ actorId: actor.actorId,
4627
+ agentId: actor.agentId,
4628
+ runId: actor.runId,
4629
+ agentApiKeyId: actor.agentApiKeyId,
4589
4630
  action: "agent.deleted",
4590
4631
  entityType: "agent",
4591
4632
  entityId: agent.id,
@@ -4593,7 +4634,7 @@ export function agentRoutes(db, options = {}) {
4593
4634
  res.json({ ok: true });
4594
4635
  });
4595
4636
  router.get("/agents/:id/keys", async (req, res) => {
4596
- assertBoard(req);
4637
+ assertBoardOrAgentAuthority(req, "company:agents");
4597
4638
  const id = req.params.id;
4598
4639
  const agent = await getAccessibleAgent(req, res, id);
4599
4640
  if (!agent) {
@@ -4603,19 +4644,22 @@ export function agentRoutes(db, options = {}) {
4603
4644
  res.json(keys);
4604
4645
  });
4605
4646
  router.post("/agents/:id/keys", validate(createAgentKeySchema), async (req, res) => {
4606
- assertBoard(req);
4647
+ assertBoardOrAgentAuthority(req, "company:agents");
4607
4648
  const id = req.params.id;
4608
4649
  const agent = await getAccessibleAgent(req, res, id);
4609
4650
  if (!agent) {
4610
4651
  return;
4611
4652
  }
4612
4653
  const key = await svc.createApiKey(id, req.body.name, req.body.scope, {
4613
- responsibleUserId: req.actor.userId ?? null,
4654
+ responsibleUserId: req.actor.userId ?? req.actor.onBehalfOfUserId ?? null,
4614
4655
  });
4656
+ const createActor = getActorInfo(req);
4615
4657
  await logActivity(db, {
4616
4658
  companyId: agent.companyId,
4617
- actorType: "user",
4618
- actorId: req.actor.userId ?? "board",
4659
+ actorType: createActor.actorType,
4660
+ actorId: createActor.actorId,
4661
+ agentId: createActor.agentId,
4662
+ runId: createActor.runId,
4619
4663
  action: "agent.key_created",
4620
4664
  entityType: "agent",
4621
4665
  entityId: agent.id,
@@ -4629,7 +4673,7 @@ export function agentRoutes(db, options = {}) {
4629
4673
  res.status(201).json(key);
4630
4674
  });
4631
4675
  router.delete("/agents/:id/keys/:keyId", async (req, res) => {
4632
- assertBoard(req);
4676
+ assertBoardOrAgentAuthority(req, "company:agents");
4633
4677
  const id = req.params.id;
4634
4678
  const keyId = req.params.keyId;
4635
4679
  const agent = await getAccessibleAgent(req, res, id);
@@ -4646,10 +4690,13 @@ export function agentRoutes(db, options = {}) {
4646
4690
  res.status(404).json({ error: "Key not found" });
4647
4691
  return;
4648
4692
  }
4693
+ const revokeActor = getActorInfo(req);
4649
4694
  await logActivity(db, {
4650
4695
  companyId: agent.companyId,
4651
- actorType: "user",
4652
- actorId: req.actor.userId ?? "board",
4696
+ actorType: revokeActor.actorType,
4697
+ actorId: revokeActor.actorId,
4698
+ agentId: revokeActor.agentId,
4699
+ runId: revokeActor.runId,
4653
4700
  action: "agent.key_revoked",
4654
4701
  entityType: "agent",
4655
4702
  entityId: agent.id,
@@ -5597,7 +5644,7 @@ export function agentRoutes(db, options = {}) {
5597
5644
  res.json(await runRedactions.redactForRun(run.companyId, run.id, redactCurrentUserValue({ ...decoratedRun, execution: await executionProjectionForRun(db, run.companyId, run.id), identityHistory: await listRunIdentityContexts(db, run.companyId, run.id), retryExhaustedReason, outputSilence: await heartbeat.buildRunOutputSilence(run) }, await getCurrentUserRedactionOptions())));
5598
5645
  });
5599
5646
  router.post("/heartbeat-runs/:runId/cancel", async (req, res) => {
5600
- assertBoard(req);
5647
+ assertBoardOrAgentAuthority(req, "company:agents");
5601
5648
  const runId = readHeartbeatRunId(req);
5602
5649
  const existing = await getAccessibleResource(req, res, heartbeat.getRun(runId), "Heartbeat run not found");
5603
5650
  if (!existing)
@@ -5612,10 +5659,14 @@ export function agentRoutes(db, options = {}) {
5612
5659
  },
5613
5660
  });
5614
5661
  if (run) {
5662
+ const actor = getActorInfo(req);
5615
5663
  await logActivity(db, {
5616
5664
  companyId: run.companyId,
5617
- actorType: "user",
5618
- actorId: req.actor.userId ?? "board",
5665
+ actorType: actor.actorType,
5666
+ actorId: actor.actorId,
5667
+ agentId: actor.agentId,
5668
+ runId: actor.runId,
5669
+ agentApiKeyId: actor.agentApiKeyId,
5619
5670
  action: "heartbeat.cancelled",
5620
5671
  entityType: "heartbeat_run",
5621
5672
  entityId: run.id,
@@ -5625,7 +5676,7 @@ export function agentRoutes(db, options = {}) {
5625
5676
  res.json(run);
5626
5677
  });
5627
5678
  router.post("/heartbeat-runs/:runId/runtime-requests/:requestId/resolve", async (req, res) => {
5628
- assertBoard(req);
5679
+ assertBoardOrAgentAuthority(req, "company:agents");
5629
5680
  const runId = readHeartbeatRunId(req);
5630
5681
  const requestId = req.params.requestId;
5631
5682
  const existing = await getAccessibleResource(req, res, heartbeat.getRun(runId), "Heartbeat run not found");
@@ -5760,10 +5811,14 @@ export function agentRoutes(db, options = {}) {
5760
5811
  resolution,
5761
5812
  });
5762
5813
  }
5814
+ const actor = getActorInfo(req);
5763
5815
  await logActivity(db, {
5764
5816
  companyId: existing.companyId,
5765
- actorType: "user",
5766
- actorId: req.actor.userId ?? "board",
5817
+ actorType: actor.actorType,
5818
+ actorId: actor.actorId,
5819
+ agentId: actor.agentId,
5820
+ runId: actor.runId,
5821
+ agentApiKeyId: actor.agentApiKeyId,
5767
5822
  action: "heartbeat.runtime_request_resolution_queued",
5768
5823
  entityType: "heartbeat_run",
5769
5824
  entityId: existing.id,
@@ -5842,7 +5897,7 @@ export function agentRoutes(db, options = {}) {
5842
5897
  res.json(inspection);
5843
5898
  });
5844
5899
  router.post("/heartbeat-runs/:runId/provider-trace/reproject-workspace-diffs", async (req, res) => {
5845
- assertBoard(req);
5900
+ assertBoardOrAgentAuthority(req, "company:agents");
5846
5901
  const runId = readHeartbeatRunId(req);
5847
5902
  const run = await getAccessibleResource(req, res, heartbeat.getRun(runId), "Heartbeat run not found");
5848
5903
  if (!run)
@@ -5877,10 +5932,14 @@ export function agentRoutes(db, options = {}) {
5877
5932
  agentId: run.agentId,
5878
5933
  projection: projectCodexWorkspaceDiffsFromTrace(entries),
5879
5934
  });
5935
+ const actor = getActorInfo(req);
5880
5936
  await logActivity(db, {
5881
5937
  companyId: run.companyId,
5882
- actorType: "user",
5883
- actorId: req.actor.userId ?? "local-board",
5938
+ actorType: actor.actorType,
5939
+ actorId: actor.actorId,
5940
+ agentId: actor.agentId,
5941
+ runId: actor.runId,
5942
+ agentApiKeyId: actor.agentApiKeyId,
5884
5943
  action: "provider_trace.workspace_diffs_reprojected",
5885
5944
  entityType: "heartbeat_run",
5886
5945
  entityId: run.id,