@penclipai/server 2026.605.0 → 2026.606.0-canary.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +2 -0
- package/dist/app.js.map +1 -1
- package/dist/attachment-types.d.ts.map +1 -1
- package/dist/attachment-types.js +2 -0
- package/dist/attachment-types.js.map +1 -1
- package/dist/lib/objects.d.ts +2 -0
- package/dist/lib/objects.d.ts.map +1 -0
- package/dist/lib/objects.js +6 -0
- package/dist/lib/objects.js.map +1 -0
- package/dist/routes/activity.d.ts.map +1 -1
- package/dist/routes/activity.js +41 -1
- package/dist/routes/activity.js.map +1 -1
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +126 -39
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/approvals.d.ts.map +1 -1
- package/dist/routes/approvals.js +21 -1
- package/dist/routes/approvals.js.map +1 -1
- package/dist/routes/companies.d.ts.map +1 -1
- package/dist/routes/companies.js +9 -2
- package/dist/routes/companies.js.map +1 -1
- package/dist/routes/costs.d.ts.map +1 -1
- package/dist/routes/costs.js +59 -1
- package/dist/routes/costs.js.map +1 -1
- package/dist/routes/execution-workspaces.d.ts.map +1 -1
- package/dist/routes/execution-workspaces.js +36 -1
- package/dist/routes/execution-workspaces.js.map +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +1 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/issues.d.ts.map +1 -1
- package/dist/routes/issues.js +664 -68
- package/dist/routes/issues.js.map +1 -1
- package/dist/routes/openapi.d.ts.map +1 -1
- package/dist/routes/openapi.js +56 -1
- package/dist/routes/openapi.js.map +1 -1
- package/dist/routes/projects.d.ts.map +1 -1
- package/dist/routes/projects.js +24 -2
- package/dist/routes/projects.js.map +1 -1
- package/dist/routes/teams-catalog.d.ts +3 -0
- package/dist/routes/teams-catalog.d.ts.map +1 -0
- package/dist/routes/teams-catalog.js +96 -0
- package/dist/routes/teams-catalog.js.map +1 -0
- package/dist/routes/workspace-runtime-service-authz.d.ts.map +1 -1
- package/dist/routes/workspace-runtime-service-authz.js +154 -7
- package/dist/routes/workspace-runtime-service-authz.js.map +1 -1
- package/dist/services/access.d.ts.map +1 -1
- package/dist/services/agent-permissions.js +1 -1
- package/dist/services/agent-permissions.js.map +1 -1
- package/dist/services/agents.d.ts +1 -1
- package/dist/services/agents.d.ts.map +1 -1
- package/dist/services/agents.js.map +1 -1
- package/dist/services/authorization.d.ts +7 -2
- package/dist/services/authorization.d.ts.map +1 -1
- package/dist/services/authorization.js +258 -2
- package/dist/services/authorization.js.map +1 -1
- package/dist/services/company-artifacts.d.ts +7 -0
- package/dist/services/company-artifacts.d.ts.map +1 -0
- package/dist/services/company-artifacts.js +385 -0
- package/dist/services/company-artifacts.js.map +1 -0
- package/dist/services/company-portability.d.ts.map +1 -1
- package/dist/services/company-portability.js +641 -424
- package/dist/services/company-portability.js.map +1 -1
- package/dist/services/company-search.d.ts.map +1 -1
- package/dist/services/company-search.js +55 -3
- package/dist/services/company-search.js.map +1 -1
- package/dist/services/company-skills.d.ts.map +1 -1
- package/dist/services/company-skills.js +23 -0
- package/dist/services/company-skills.js.map +1 -1
- package/dist/services/document-annotations.d.ts +6 -0
- package/dist/services/document-annotations.d.ts.map +1 -1
- package/dist/services/document-annotations.js +70 -2
- package/dist/services/document-annotations.js.map +1 -1
- package/dist/services/documents.d.ts +15 -0
- package/dist/services/documents.d.ts.map +1 -1
- package/dist/services/documents.js +9 -0
- package/dist/services/documents.js.map +1 -1
- package/dist/services/execution-workspace-policy.d.ts.map +1 -1
- package/dist/services/execution-workspace-policy.js +3 -0
- package/dist/services/execution-workspace-policy.js.map +1 -1
- package/dist/services/feedback.d.ts.map +1 -1
- package/dist/services/feedback.js +7 -2
- package/dist/services/feedback.js.map +1 -1
- package/dist/services/heartbeat.d.ts +129 -1
- package/dist/services/heartbeat.d.ts.map +1 -1
- package/dist/services/heartbeat.js +229 -84
- package/dist/services/heartbeat.js.map +1 -1
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/issue-continuation-summary.d.ts +3 -1
- package/dist/services/issue-continuation-summary.d.ts.map +1 -1
- package/dist/services/issue-continuation-summary.js +2 -0
- package/dist/services/issue-continuation-summary.js.map +1 -1
- package/dist/services/issue-execution-policy.d.ts.map +1 -1
- package/dist/services/issue-execution-policy.js +5 -1
- package/dist/services/issue-execution-policy.js.map +1 -1
- package/dist/services/issue-references.d.ts +1 -0
- package/dist/services/issue-references.d.ts.map +1 -1
- package/dist/services/issue-references.js +8 -1
- package/dist/services/issue-references.js.map +1 -1
- package/dist/services/issue-thread-interactions.d.ts.map +1 -1
- package/dist/services/issue-thread-interactions.js +16 -2
- package/dist/services/issue-thread-interactions.js.map +1 -1
- package/dist/services/issues.d.ts +65 -2
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.js +114 -4
- package/dist/services/issues.js.map +1 -1
- package/dist/services/low-trust-runtime-containment.d.ts +21 -0
- package/dist/services/low-trust-runtime-containment.d.ts.map +1 -0
- package/dist/services/low-trust-runtime-containment.js +86 -0
- package/dist/services/low-trust-runtime-containment.js.map +1 -0
- package/dist/services/plugin-registry.d.ts +2 -2
- package/dist/services/recovery/service.d.ts +2 -0
- package/dist/services/recovery/service.d.ts.map +1 -1
- package/dist/services/secrets.d.ts +3 -1
- package/dist/services/secrets.d.ts.map +1 -1
- package/dist/services/secrets.js +8 -2
- package/dist/services/secrets.js.map +1 -1
- package/dist/services/source-trust.d.ts +45 -0
- package/dist/services/source-trust.d.ts.map +1 -0
- package/dist/services/source-trust.js +123 -0
- package/dist/services/source-trust.js.map +1 -0
- package/dist/services/teams-catalog.d.ts +117 -0
- package/dist/services/teams-catalog.d.ts.map +1 -0
- package/dist/services/teams-catalog.js +801 -0
- package/dist/services/teams-catalog.js.map +1 -0
- package/dist/services/trust-preset-resolver.d.ts +51 -0
- package/dist/services/trust-preset-resolver.d.ts.map +1 -0
- package/dist/services/trust-preset-resolver.js +193 -0
- package/dist/services/trust-preset-resolver.js.map +1 -0
- package/dist/services/work-products.d.ts.map +1 -1
- package/dist/services/work-products.js +1 -0
- package/dist/services/work-products.js.map +1 -1
- package/package.json +17 -17
- package/ui-dist/assets/{_basePickBy-BFWIXmtd.js → _basePickBy-DPVBSUJz.js} +1 -1
- package/ui-dist/assets/{_baseUniq-C6vNKj5H.js → _baseUniq-DF-5qDZS.js} +1 -1
- package/ui-dist/assets/{arc-CQdHxm4i.js → arc-CWYo2FKr.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-VXUJARFQ-rO9sTvbm.js → architectureDiagram-VXUJARFQ-HuWbn3Cq.js} +1 -1
- package/ui-dist/assets/{blockDiagram-VD42YOAC-sCG4ZAzz.js → blockDiagram-VD42YOAC-ChlQnr7K.js} +1 -1
- package/ui-dist/assets/{browser-ponyfill-sV6cWdh5.js → browser-ponyfill-BAa3WSLN.js} +1 -1
- package/ui-dist/assets/{c4Diagram-YG6GDRKO-D7si1Knz.js → c4Diagram-YG6GDRKO-Bui3IC9F.js} +1 -1
- package/ui-dist/assets/channel-ChevpxSM.js +1 -0
- package/ui-dist/assets/{chunk-4BX2VUAB-DhkcJIfi.js → chunk-4BX2VUAB-CkyJWFzU.js} +1 -1
- package/ui-dist/assets/{chunk-55IACEB6-DNZerAYd.js → chunk-55IACEB6-LVj6KT4T.js} +1 -1
- package/ui-dist/assets/{chunk-B4BG7PRW-Bbb15yNm.js → chunk-B4BG7PRW-Ba_mu9uG.js} +1 -1
- package/ui-dist/assets/{chunk-DI55MBZ5-8mTLv_p_.js → chunk-DI55MBZ5-HRmXflXy.js} +1 -1
- package/ui-dist/assets/{chunk-FMBD7UC4-00AcDX23.js → chunk-FMBD7UC4-BIgedSzB.js} +1 -1
- package/ui-dist/assets/{chunk-QN33PNHL-BlOoxHOq.js → chunk-QN33PNHL-ipe0D6FG.js} +1 -1
- package/ui-dist/assets/{chunk-QZHKN3VN-oPP4yrMX.js → chunk-QZHKN3VN-BoFlOoVZ.js} +1 -1
- package/ui-dist/assets/{chunk-TZMSLE5B-DD6UJ8Hu.js → chunk-TZMSLE5B-B9jhCU_0.js} +1 -1
- package/ui-dist/assets/classDiagram-2ON5EDUG-ICd9EoYq.js +1 -0
- package/ui-dist/assets/classDiagram-v2-WZHVMYZB-ICd9EoYq.js +1 -0
- package/ui-dist/assets/clone-CinEVqUU.js +1 -0
- package/ui-dist/assets/{cose-bilkent-S5V4N54A-DakYlbC7.js → cose-bilkent-S5V4N54A-CkSjxQ3a.js} +1 -1
- package/ui-dist/assets/{dagre-6UL2VRFP-0xgv5amR.js → dagre-6UL2VRFP-D0rmAFhx.js} +1 -1
- package/ui-dist/assets/{diagram-PSM6KHXK-_2CVUDjo.js → diagram-PSM6KHXK-DmLYdP6S.js} +1 -1
- package/ui-dist/assets/{diagram-QEK2KX5R-CKKExbSI.js → diagram-QEK2KX5R-BAgtvbB8.js} +1 -1
- package/ui-dist/assets/{diagram-S2PKOQOG-Cdf_WPZK.js → diagram-S2PKOQOG-Dj_38LCU.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q2GNP2WA-SBYWf4Oc.js → erDiagram-Q2GNP2WA-CXVdNW5U.js} +1 -1
- package/ui-dist/assets/{flowDiagram-NV44I4VS-ySPYDBio.js → flowDiagram-NV44I4VS-DgKX56Jx.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-JELNMOA3-CCk0f2n6.js → ganttDiagram-JELNMOA3-sl8K8Enn.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-V2S2FVAM-BFL7rpB6.js → gitGraphDiagram-V2S2FVAM-YhBufAW9.js} +1 -1
- package/ui-dist/assets/{graph-CO7IWAAR.js → graph-C00musvm.js} +1 -1
- package/ui-dist/assets/{index-D8Hvgvc5.js → index--0oneTLD.js} +1 -1
- package/ui-dist/assets/{index-Dkbm4OQm.js → index-74Gku-q_.js} +1 -1
- package/ui-dist/assets/{index-CDeAOV-a.js → index-BBvVTvOy.js} +1 -1
- package/ui-dist/assets/index-BO245_h8.js +536 -0
- package/ui-dist/assets/{index-BruexH3t.js → index-BRfH8KTJ.js} +1 -1
- package/ui-dist/assets/{index-Ns8xbZUK.js → index-BT9yMUII.js} +1 -1
- package/ui-dist/assets/{index-EwIgrMU0.js → index-Bism6O5q.js} +1 -1
- package/ui-dist/assets/{index-DUzY6I8U.js → index-BwFyE4ef.js} +1 -1
- package/ui-dist/assets/{index-BthYthFn.js → index-C4cvcgts.js} +1 -1
- package/ui-dist/assets/{index-Td8k6jLa.js → index-CJqpSzqH.js} +1 -1
- package/ui-dist/assets/{index-C8azT7hq.js → index-CrAaPPhI.js} +1 -1
- package/ui-dist/assets/{index-eoBQz1uq.js → index-DHG4KXVc.js} +1 -1
- package/ui-dist/assets/{index-9CHSVj-4.js → index-DVyP0Lg3.js} +1 -1
- package/ui-dist/assets/{index-CDrMSnA8.js → index-DcFx9-kJ.js} +1 -1
- package/ui-dist/assets/{index-jJFj-41Z.js → index-DiIWaM69.js} +1 -1
- package/ui-dist/assets/index-DkMg77MF.css +1 -0
- package/ui-dist/assets/{index-BJrKmoy0.js → index-DpGtRc6l.js} +1 -1
- package/ui-dist/assets/{index-CHUAOuXk.js → index-Jdcfb-oP.js} +1 -1
- package/ui-dist/assets/{index-BIoot4O4.js → index-TaEGBUCy.js} +1 -1
- package/ui-dist/assets/{index-C2NRB1x5.js → index-aYrvF_8h.js} +1 -1
- package/ui-dist/assets/{index-D6Cmki1v.js → index-cBm1hiIr.js} +1 -1
- package/ui-dist/assets/{index-D1jNKxed.js → index-g0SQ6ZQU.js} +1 -1
- package/ui-dist/assets/{index-BqVXyIsq.js → index-iULVvdEd.js} +1 -1
- package/ui-dist/assets/{index-BXVWNYTH.js → index-qITi9eOR.js} +1 -1
- package/ui-dist/assets/{infoDiagram-HS3SLOUP-BTwihI0U.js → infoDiagram-HS3SLOUP-CmsxUWgz.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-XKPGCS4Q-BK9uzSbp.js → journeyDiagram-XKPGCS4Q-KLzuyDwb.js} +1 -1
- package/ui-dist/assets/{kanban-definition-3W4ZIXB7-Dq0xigv-.js → kanban-definition-3W4ZIXB7-BDNbpdkP.js} +1 -1
- package/ui-dist/assets/{layout-DBn8vhkN.js → layout-BAP1nfVq.js} +1 -1
- package/ui-dist/assets/{linear-ojhq_eAd.js → linear-DM9PsKNz.js} +1 -1
- package/ui-dist/assets/{mermaid.core-C9Z3z5xt.js → mermaid.core-DIC5Hdc9.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-VGOIOE7T-Ei2zTB0A.js → mindmap-definition-VGOIOE7T-B6ySsxIr.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ADFJNKIX-CntF4MRC.js → pieDiagram-ADFJNKIX-Cdy-1R0U.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-AYHSOK5B--GxaXjrs.js → quadrantDiagram-AYHSOK5B-DwlE7VDz.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-UZGBJVZJ-Dc9G7PuB.js → requirementDiagram-UZGBJVZJ-B9tiFbrU.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-TZEHDZUN-DeGQkaP5.js → sankeyDiagram-TZEHDZUN-DwZ12l0W.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-WL72ISMW-C7O7L0Zr.js → sequenceDiagram-WL72ISMW-ClpKcYUd.js} +1 -1
- package/ui-dist/assets/{stateDiagram-FKZM4ZOC-Atv64vNP.js → stateDiagram-FKZM4ZOC-Dzg-GnGY.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-N2h93VG2.js +1 -0
- package/ui-dist/assets/{timeline-definition-IT6M3QCI-CFiDM71j.js → timeline-definition-IT6M3QCI-ZClgu0SS.js} +1 -1
- package/ui-dist/assets/{treemap-GDKQZRPO-DJrBAq5A.js → treemap-GDKQZRPO-CW_84zWz.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-PRI3JC2R--CN3FALw.js → xychartDiagram-PRI3JC2R-DTDXhlnF.js} +1 -1
- package/ui-dist/index.html +3 -3
- package/ui-dist/locales/en/common.json +1 -0
- package/ui-dist/locales/zh-CN/common.json +1 -0
- package/ui-dist/assets/channel-DaMKSoHS.js +0 -1
- package/ui-dist/assets/classDiagram-2ON5EDUG-1GslEAOr.js +0 -1
- package/ui-dist/assets/classDiagram-v2-WZHVMYZB-1GslEAOr.js +0 -1
- package/ui-dist/assets/clone-BQAfBJYv.js +0 -1
- package/ui-dist/assets/index-C2j9MW3C.css +0 -1
- package/ui-dist/assets/index-D4oxL_9z.js +0 -536
- package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-YCe3a0ji.js +0 -1
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAU,KAAK,OAAO,IAAI,cAAc,EAAoC,MAAM,SAAS,CAAC;AAI5G,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAU,KAAK,OAAO,IAAI,cAAc,EAAoC,MAAM,SAAS,CAAC;AAI5G,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AA6BzD,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,uCAAuC,CAAC;AAW/C,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAa1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAMrE,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAqB7C,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAI1E;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIvE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAKnE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAGpE;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,GAAG,OAAO,CAKV;AAED,wBAAsB,SAAS,CAC7B,EAAE,EAAE,EAAE,EACN,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,qBAAqB,CAAC,EAAE;QACtB,0BAA0B,CAAC,KAAK,CAAC,EAAE;YACjC,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE,IAAI,CAAC;SACZ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtB,CAAC;IACF,qBAAqB,CAAC,EAAE,6BAA6B,CAAC;IACtD,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,sBAAsB,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;CACnF,wDAsXF"}
|
package/dist/app.js
CHANGED
|
@@ -9,6 +9,7 @@ import { privateHostnameGuard, resolvePrivateHostnameAllowSet } from "./middlewa
|
|
|
9
9
|
import { healthRoutes } from "./routes/health.js";
|
|
10
10
|
import { companyRoutes } from "./routes/companies.js";
|
|
11
11
|
import { companySkillRoutes } from "./routes/company-skills.js";
|
|
12
|
+
import { teamsCatalogRoutes } from "./routes/teams-catalog.js";
|
|
12
13
|
import { agentRoutes } from "./routes/agents.js";
|
|
13
14
|
import { projectRoutes } from "./routes/projects.js";
|
|
14
15
|
import { issueRoutes } from "./routes/issues.js";
|
|
@@ -162,6 +163,7 @@ export async function createApp(db, opts) {
|
|
|
162
163
|
api.use("/companies", companyRoutes(db, opts.storageService));
|
|
163
164
|
api.use(llmRoutes(db));
|
|
164
165
|
api.use(companySkillRoutes(db));
|
|
166
|
+
api.use(teamsCatalogRoutes(db));
|
|
165
167
|
api.use(agentRoutes(db, { pluginWorkerManager: workerManager }));
|
|
166
168
|
api.use(assetRoutes(db, opts.storageService));
|
|
167
169
|
api.use(projectRoutes(db));
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-types.d.ts","sourceRoot":"","sources":["../src/attachment-types.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"attachment-types.d.ts","sourceRoot":"","sources":["../src/attachment-types.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAiBlD,CAAC;AAEF,eAAO,MAAM,+BAA+B,6BAA6B,CAAC;AAC1E,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAChD,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAWpD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAOnE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAS1F;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGnF;AAED,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE1E;AAQD,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,eAAO,MAAM,oBAAoB,QACuC,CAAC;AAEzE,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAKzF"}
|
package/dist/attachment-types.js
CHANGED
|
@@ -31,6 +31,7 @@ export const DEFAULT_ALLOWED_TYPES = [
|
|
|
31
31
|
"video/mp4",
|
|
32
32
|
"video/webm",
|
|
33
33
|
"video/quicktime",
|
|
34
|
+
"video/x-m4v",
|
|
34
35
|
];
|
|
35
36
|
export const DEFAULT_ATTACHMENT_CONTENT_TYPE = "application/octet-stream";
|
|
36
37
|
export const SVG_CONTENT_TYPE = "image/svg+xml";
|
|
@@ -44,6 +45,7 @@ export const INLINE_ATTACHMENT_TYPES = [
|
|
|
44
45
|
"video/mp4",
|
|
45
46
|
"video/webm",
|
|
46
47
|
"video/quicktime",
|
|
48
|
+
"video/x-m4v",
|
|
47
49
|
];
|
|
48
50
|
/**
|
|
49
51
|
* Parse a comma-separated list of MIME type patterns into a normalised array.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-types.js","sourceRoot":"","sources":["../src/attachment-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EACL,oCAAoC,EACpC,gCAAgC,GACjC,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,WAAW;IACX,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,YAAY;IACZ,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,WAAW;IACX,YAAY;IACZ,iBAAiB;
|
|
1
|
+
{"version":3,"file":"attachment-types.js","sourceRoot":"","sources":["../src/attachment-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../../src/lib/objects.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAIzE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objects.js","sourceRoot":"","sources":["../../src/lib/objects.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAC,KAAgC;QAClC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/routes/activity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAkBxC,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/routes/activity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAkBxC,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,8CA2HpC"}
|
package/dist/routes/activity.js
CHANGED
|
@@ -4,7 +4,7 @@ import { normalizeIssueIdentifier } from "@penclipai/shared";
|
|
|
4
4
|
import { validate } from "../middleware/validate.js";
|
|
5
5
|
import { activityService, normalizeActivityLimit } from "../services/activity.js";
|
|
6
6
|
import { assertAuthenticated, assertBoard, assertCompanyAccess } from "./authz.js";
|
|
7
|
-
import { heartbeatService, issueService } from "../services/index.js";
|
|
7
|
+
import { accessService, heartbeatService, issueService } from "../services/index.js";
|
|
8
8
|
import { sanitizeRecord } from "../redaction.js";
|
|
9
9
|
const createActivitySchema = z.object({
|
|
10
10
|
actorType: z.enum(["agent", "user", "system", "plugin"]).optional().default("system"),
|
|
@@ -18,8 +18,40 @@ const createActivitySchema = z.object({
|
|
|
18
18
|
export function activityRoutes(db) {
|
|
19
19
|
const router = Router();
|
|
20
20
|
const svc = activityService(db);
|
|
21
|
+
const access = accessService(db);
|
|
21
22
|
const heartbeat = heartbeatService(db);
|
|
22
23
|
const issueSvc = issueService(db);
|
|
24
|
+
async function assertCompanyScopeReadAllowed(req, res, companyId) {
|
|
25
|
+
const decision = await access.decide({
|
|
26
|
+
actor: req.actor,
|
|
27
|
+
action: "company_scope:read",
|
|
28
|
+
resource: { type: "company", companyId },
|
|
29
|
+
});
|
|
30
|
+
if (decision.allowed)
|
|
31
|
+
return true;
|
|
32
|
+
res.status(403).json({ error: "Activity is outside this actor's authorization boundary" });
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
async function assertIssueReadAllowed(req, res, issue) {
|
|
36
|
+
const decision = await access.decide({
|
|
37
|
+
actor: req.actor,
|
|
38
|
+
action: "issue:read",
|
|
39
|
+
resource: {
|
|
40
|
+
type: "issue",
|
|
41
|
+
companyId: issue.companyId,
|
|
42
|
+
issueId: issue.id,
|
|
43
|
+
projectId: issue.projectId,
|
|
44
|
+
parentIssueId: issue.parentId,
|
|
45
|
+
assigneeAgentId: issue.assigneeAgentId,
|
|
46
|
+
assigneeUserId: issue.assigneeUserId,
|
|
47
|
+
status: issue.status,
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
if (decision.allowed)
|
|
51
|
+
return true;
|
|
52
|
+
res.status(403).json({ error: "Issue activity is outside this actor's authorization boundary" });
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
23
55
|
async function resolveIssueByRef(rawId) {
|
|
24
56
|
const identifier = normalizeIssueIdentifier(rawId);
|
|
25
57
|
if (identifier) {
|
|
@@ -30,6 +62,8 @@ export function activityRoutes(db) {
|
|
|
30
62
|
router.get("/companies/:companyId/activity", async (req, res) => {
|
|
31
63
|
const companyId = req.params.companyId;
|
|
32
64
|
assertCompanyAccess(req, companyId);
|
|
65
|
+
if (!(await assertCompanyScopeReadAllowed(req, res, companyId)))
|
|
66
|
+
return;
|
|
33
67
|
const filters = {
|
|
34
68
|
companyId,
|
|
35
69
|
agentId: req.query.agentId,
|
|
@@ -59,6 +93,8 @@ export function activityRoutes(db) {
|
|
|
59
93
|
return;
|
|
60
94
|
}
|
|
61
95
|
assertCompanyAccess(req, issue.companyId);
|
|
96
|
+
if (!(await assertIssueReadAllowed(req, res, issue)))
|
|
97
|
+
return;
|
|
62
98
|
const result = await svc.forIssue(issue.id);
|
|
63
99
|
res.json(result);
|
|
64
100
|
});
|
|
@@ -70,6 +106,8 @@ export function activityRoutes(db) {
|
|
|
70
106
|
return;
|
|
71
107
|
}
|
|
72
108
|
assertCompanyAccess(req, issue.companyId);
|
|
109
|
+
if (!(await assertIssueReadAllowed(req, res, issue)))
|
|
110
|
+
return;
|
|
73
111
|
const result = await svc.runsForIssue(issue.companyId, issue.id);
|
|
74
112
|
res.json(result);
|
|
75
113
|
});
|
|
@@ -82,6 +120,8 @@ export function activityRoutes(db) {
|
|
|
82
120
|
return;
|
|
83
121
|
}
|
|
84
122
|
assertCompanyAccess(req, run.companyId);
|
|
123
|
+
if (!(await assertCompanyScopeReadAllowed(req, res, run.companyId)))
|
|
124
|
+
return;
|
|
85
125
|
const result = await svc.issuesForRun(runId);
|
|
86
126
|
res.json(result);
|
|
87
127
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/routes/activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/routes/activity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/routes/agents.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/routes/agents.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAsDxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAyEhF,wBAAgB,WAAW,CACzB,EAAE,EAAE,EAAE,EACN,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAAO,8CAk3G5D"}
|
package/dist/routes/agents.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Router } from "express";
|
|
2
2
|
import { generateKeyPairSync, randomUUID } from "node:crypto";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import { agents as agentsTable, companies, heartbeatRuns, issues as issuesTable } from "@penclipai/db";
|
|
4
|
+
import { agents as agentsTable, companies, heartbeatRuns, issues as issuesTable, projects as projectsTable } from "@penclipai/db";
|
|
5
5
|
import { and, desc, eq, inArray, not, sql } from "drizzle-orm";
|
|
6
|
-
import { agentSkillSyncSchema, agentMineInboxQuerySchema, AGENT_DEFAULT_MAX_CONCURRENT_RUNS, createAgentKeySchema, createAgentHireSchema, createAgentSchema, deriveAgentUrlKey, isUuidLike, normalizeIssueIdentifier, resetAgentSessionSchema, testAdapterEnvironmentSchema, upsertAgentInstructionsFileSchema, updateAgentInstructionsBundleSchema, updateAgentPermissionsSchema, updateAgentInstructionsPathSchema, wakeAgentSchema, updateAgentSchema, supportedEnvironmentDriversForAdapter, } from "@penclipai/shared";
|
|
6
|
+
import { agentSkillSyncSchema, agentMineInboxQuerySchema, AGENT_DEFAULT_MAX_CONCURRENT_RUNS, createAgentKeySchema, createAgentHireSchema, createAgentSchema, deriveAgentUrlKey, isUuidLike, normalizeIssueIdentifier, resetAgentSessionSchema, testAdapterEnvironmentSchema, upsertAgentInstructionsFileSchema, updateAgentInstructionsBundleSchema, updateAgentPermissionsSchema, updateAgentInstructionsPathSchema, wakeAgentSchema, updateAgentSchema, supportedEnvironmentDriversForAdapter, LOW_TRUST_REVIEW_PRESET, } from "@penclipai/shared";
|
|
7
7
|
import { readPaperclipSkillSyncPreference, writePaperclipSkillSyncPreference, } from "@penclipai/adapter-utils/server-utils";
|
|
8
8
|
import { trackAgentCreated } from "@penclipai/shared/telemetry";
|
|
9
9
|
import { validate } from "../middleware/validate.js";
|
|
@@ -22,19 +22,18 @@ import { renderOrgChartSvg, renderOrgChartPng, ORG_CHART_STYLES } from "./org-ch
|
|
|
22
22
|
import { instanceSettingsService } from "../services/instance-settings.js";
|
|
23
23
|
import { resolveExplicitRequestUiLocale } from "../ui-locale.js";
|
|
24
24
|
import { runClaudeLogin } from "@penclipai/adapter-claude-local/server";
|
|
25
|
-
import { DEFAULT_CODEBUDDY_LOCAL_MODEL, } from "@penclipai/adapter-codebuddy-local";
|
|
26
25
|
import { DEFAULT_ACPX_LOCAL_AGENT, DEFAULT_ACPX_LOCAL_MODE, DEFAULT_ACPX_LOCAL_NON_INTERACTIVE_PERMISSIONS, DEFAULT_ACPX_LOCAL_PERMISSION_MODE, } from "@penclipai/adapter-acpx-local";
|
|
27
26
|
import { DEFAULT_CODEX_LOCAL_BYPASS_APPROVALS_AND_SANDBOX, DEFAULT_CODEX_LOCAL_MODEL, } from "@penclipai/adapter-codex-local";
|
|
28
27
|
import { DEFAULT_CURSOR_LOCAL_MODEL } from "@penclipai/adapter-cursor-local";
|
|
29
28
|
import { DEFAULT_GEMINI_LOCAL_MODEL } from "@penclipai/adapter-gemini-local";
|
|
30
29
|
import { DEFAULT_OPENCODE_LOCAL_MODEL } from "@penclipai/adapter-opencode-local";
|
|
31
|
-
import { DEFAULT_QWEN_LOCAL_MODEL } from "@penclipai/adapter-qwen-local";
|
|
32
|
-
import { ensureCodeBuddyModelConfiguredAndAvailable } from "@penclipai/adapter-codebuddy-local/server";
|
|
33
30
|
import { requireOpenCodeModelId } from "@penclipai/adapter-opencode-local/server";
|
|
34
31
|
import { loadDefaultAgentInstructionsBundle, resolveDefaultAgentInstructionsBundleRole, } from "../services/default-agent-instructions.js";
|
|
35
32
|
import { getTelemetryClient } from "../telemetry.js";
|
|
36
33
|
import { assertEnvironmentSelectionForCompany } from "./environment-selection.js";
|
|
37
34
|
import { recoveryService } from "../services/recovery/service.js";
|
|
35
|
+
import { resolveCoreTrustPreset } from "../services/trust-preset-resolver.js";
|
|
36
|
+
import { readObject } from "../lib/objects.js";
|
|
38
37
|
const RUN_LOG_DEFAULT_LIMIT_BYTES = 256_000;
|
|
39
38
|
const RUN_LOG_MAX_LIMIT_BYTES = 1024 * 1024;
|
|
40
39
|
function readRunLogLimitBytes(value) {
|
|
@@ -51,6 +50,14 @@ function readLiveRunsQueryInt(value, max, fallback = 0) {
|
|
|
51
50
|
return fallback;
|
|
52
51
|
return Math.min(max, Math.trunc(parsed));
|
|
53
52
|
}
|
|
53
|
+
function readRunIssueId(context) {
|
|
54
|
+
const directIssueId = context?.issueId;
|
|
55
|
+
if (typeof directIssueId === "string" && isUuidLike(directIssueId))
|
|
56
|
+
return directIssueId;
|
|
57
|
+
const paperclipIssue = readObject(context?.paperclipIssue);
|
|
58
|
+
const nestedIssueId = paperclipIssue?.id;
|
|
59
|
+
return typeof nestedIssueId === "string" && isUuidLike(nestedIssueId) ? nestedIssueId : null;
|
|
60
|
+
}
|
|
54
61
|
export function agentRoutes(db, options = {}) {
|
|
55
62
|
// Legacy hardcoded maps — used as fallback when adapter module does not
|
|
56
63
|
// declare capability flags explicitly.
|
|
@@ -58,14 +65,12 @@ export function agentRoutes(db, options = {}) {
|
|
|
58
65
|
acpx_local: "instructionsFilePath",
|
|
59
66
|
claude_local: "instructionsFilePath",
|
|
60
67
|
codex_local: "instructionsFilePath",
|
|
61
|
-
codebuddy_local: "instructionsFilePath",
|
|
62
68
|
droid_local: "instructionsFilePath",
|
|
63
69
|
gemini_local: "instructionsFilePath",
|
|
64
70
|
hermes_local: "instructionsFilePath",
|
|
65
71
|
opencode_local: "instructionsFilePath",
|
|
66
72
|
cursor: "instructionsFilePath",
|
|
67
73
|
pi_local: "instructionsFilePath",
|
|
68
|
-
qwen_local: "instructionsFilePath",
|
|
69
74
|
};
|
|
70
75
|
const DEFAULT_MANAGED_INSTRUCTIONS_ADAPTER_TYPES = new Set(Object.keys(DEFAULT_INSTRUCTIONS_PATH_KEYS));
|
|
71
76
|
/** Check if an adapter supports the managed instructions bundle. */
|
|
@@ -121,6 +126,30 @@ export function agentRoutes(db, options = {}) {
|
|
|
121
126
|
allowedDrivers: allowedEnvironmentDriversForAgent(adapterType),
|
|
122
127
|
});
|
|
123
128
|
}
|
|
129
|
+
async function decideAgentRead(req, agent) {
|
|
130
|
+
return access.decide({
|
|
131
|
+
actor: req.actor,
|
|
132
|
+
action: "agent:read",
|
|
133
|
+
resource: { type: "agent", companyId: agent.companyId, agentId: agent.id },
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
async function assertAgentReadAllowed(req, res, agent) {
|
|
137
|
+
const decision = await decideAgentRead(req, agent);
|
|
138
|
+
if (decision.allowed)
|
|
139
|
+
return true;
|
|
140
|
+
res.status(403).json({ error: "Agent is outside this actor's authorization boundary" });
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
async function filterAgentsForActor(req, rows, fallbackCompanyId) {
|
|
144
|
+
const decisions = await Promise.all(rows.map((agent) => {
|
|
145
|
+
const id = typeof agent.id === "string" ? agent.id : null;
|
|
146
|
+
const companyId = typeof agent.companyId === "string" ? agent.companyId : fallbackCompanyId ?? null;
|
|
147
|
+
if (!id || !companyId)
|
|
148
|
+
return Promise.resolve({ allowed: false });
|
|
149
|
+
return decideAgentRead(req, { id, companyId });
|
|
150
|
+
}));
|
|
151
|
+
return rows.filter((_, index) => decisions[index]?.allowed);
|
|
152
|
+
}
|
|
124
153
|
/**
|
|
125
154
|
* Resolve the execution target the adapter should run its test probes against.
|
|
126
155
|
*
|
|
@@ -431,6 +460,66 @@ export function agentRoutes(db, options = {}) {
|
|
|
431
460
|
access: accessState,
|
|
432
461
|
};
|
|
433
462
|
}
|
|
463
|
+
async function resolveAgentSelfTrustPreset(req, agent) {
|
|
464
|
+
if (req.actor.type !== "agent" || req.actor.agentId !== agent.id) {
|
|
465
|
+
return { kind: "standard" };
|
|
466
|
+
}
|
|
467
|
+
const run = req.actor.type === "agent" && req.actor.runId
|
|
468
|
+
? await db
|
|
469
|
+
.select({
|
|
470
|
+
companyId: heartbeatRuns.companyId,
|
|
471
|
+
agentId: heartbeatRuns.agentId,
|
|
472
|
+
contextSnapshot: heartbeatRuns.contextSnapshot,
|
|
473
|
+
})
|
|
474
|
+
.from(heartbeatRuns)
|
|
475
|
+
.where(and(eq(heartbeatRuns.id, req.actor.runId), eq(heartbeatRuns.companyId, agent.companyId)))
|
|
476
|
+
.then((rows) => rows[0] ?? null)
|
|
477
|
+
: null;
|
|
478
|
+
const runContext = run?.agentId === agent.id ? readObject(run.contextSnapshot) : null;
|
|
479
|
+
const runExecutionPolicy = readObject(runContext?.executionPolicy);
|
|
480
|
+
const runIssueId = readRunIssueId(runContext);
|
|
481
|
+
const runScopedIssue = runIssueId
|
|
482
|
+
? await db
|
|
483
|
+
.select({
|
|
484
|
+
companyId: issuesTable.companyId,
|
|
485
|
+
projectId: issuesTable.projectId,
|
|
486
|
+
executionPolicy: issuesTable.executionPolicy,
|
|
487
|
+
projectExecutionWorkspacePolicy: projectsTable.executionWorkspacePolicy,
|
|
488
|
+
})
|
|
489
|
+
.from(issuesTable)
|
|
490
|
+
.leftJoin(projectsTable, and(eq(projectsTable.id, issuesTable.projectId), eq(projectsTable.companyId, issuesTable.companyId)))
|
|
491
|
+
.where(and(eq(issuesTable.id, runIssueId), eq(issuesTable.companyId, agent.companyId)))
|
|
492
|
+
.then((rows) => rows[0] ?? null)
|
|
493
|
+
: null;
|
|
494
|
+
return resolveCoreTrustPreset({
|
|
495
|
+
companyId: agent.companyId,
|
|
496
|
+
agent,
|
|
497
|
+
project: runScopedIssue?.projectId
|
|
498
|
+
? {
|
|
499
|
+
companyId: runScopedIssue.companyId,
|
|
500
|
+
executionWorkspacePolicy: runScopedIssue.projectExecutionWorkspacePolicy,
|
|
501
|
+
}
|
|
502
|
+
: null,
|
|
503
|
+
issue: runScopedIssue
|
|
504
|
+
? {
|
|
505
|
+
companyId: runScopedIssue.companyId,
|
|
506
|
+
executionPolicy: runScopedIssue.executionPolicy,
|
|
507
|
+
}
|
|
508
|
+
: null,
|
|
509
|
+
run: runExecutionPolicy ? { companyId: agent.companyId, executionPolicy: runExecutionPolicy } : null,
|
|
510
|
+
});
|
|
511
|
+
}
|
|
512
|
+
function buildLowTrustSelfView(agent) {
|
|
513
|
+
return {
|
|
514
|
+
id: agent.id,
|
|
515
|
+
companyId: agent.companyId,
|
|
516
|
+
name: agent.name,
|
|
517
|
+
role: agent.role,
|
|
518
|
+
title: agent.title,
|
|
519
|
+
status: agent.status,
|
|
520
|
+
trustPreset: LOW_TRUST_REVIEW_PRESET,
|
|
521
|
+
};
|
|
522
|
+
}
|
|
434
523
|
async function applyDefaultAgentTaskAssignGrant(companyId, agentId, grantedByUserId) {
|
|
435
524
|
await access.ensureMembership(companyId, "agent", agentId, "member", "active");
|
|
436
525
|
await access.setPrincipalPermission(companyId, "agent", agentId, "tasks:assign", true, grantedByUserId);
|
|
@@ -754,7 +843,7 @@ export function agentRoutes(db, options = {}) {
|
|
|
754
843
|
}
|
|
755
844
|
async function normalizeMediatedAdapterConfigForPersistence(input) {
|
|
756
845
|
const normalizedAdapterConfig = await secretsSvc.normalizeAdapterConfigForPersistence(input.companyId, input.adapterConfig, { strictMode: strictSecretsMode });
|
|
757
|
-
await assertAdapterConfigConstraints(input.
|
|
846
|
+
await assertAdapterConfigConstraints(input.adapterType, input.constraintAdapterConfig
|
|
758
847
|
? { ...input.constraintAdapterConfig, ...normalizedAdapterConfig }
|
|
759
848
|
: normalizedAdapterConfig);
|
|
760
849
|
return normalizedAdapterConfig;
|
|
@@ -833,14 +922,6 @@ export function agentRoutes(db, options = {}) {
|
|
|
833
922
|
next.model = DEFAULT_GEMINI_LOCAL_MODEL;
|
|
834
923
|
return ensureGatewayDeviceKey(adapterType, next);
|
|
835
924
|
}
|
|
836
|
-
if (adapterType === "codebuddy_local" && !asNonEmptyString(next.model)) {
|
|
837
|
-
next.model = DEFAULT_CODEBUDDY_LOCAL_MODEL;
|
|
838
|
-
return ensureGatewayDeviceKey(adapterType, next);
|
|
839
|
-
}
|
|
840
|
-
if (adapterType === "qwen_local" && !asNonEmptyString(next.model)) {
|
|
841
|
-
next.model = DEFAULT_QWEN_LOCAL_MODEL;
|
|
842
|
-
return ensureGatewayDeviceKey(adapterType, next);
|
|
843
|
-
}
|
|
844
925
|
if (adapterType === "opencode_local" && !asNonEmptyString(next.model)) {
|
|
845
926
|
next.model = DEFAULT_OPENCODE_LOCAL_MODEL;
|
|
846
927
|
return ensureGatewayDeviceKey(adapterType, next);
|
|
@@ -850,24 +931,7 @@ export function agentRoutes(db, options = {}) {
|
|
|
850
931
|
}
|
|
851
932
|
return ensureGatewayDeviceKey(adapterType, next);
|
|
852
933
|
}
|
|
853
|
-
async function assertAdapterConfigConstraints(
|
|
854
|
-
if (adapterType === "codebuddy_local") {
|
|
855
|
-
const { config: runtimeConfig } = await secretsSvc.resolveAdapterConfigForRuntime(companyId, adapterConfig);
|
|
856
|
-
const runtimeEnv = asRecord(runtimeConfig.env) ?? {};
|
|
857
|
-
try {
|
|
858
|
-
await ensureCodeBuddyModelConfiguredAndAvailable({
|
|
859
|
-
model: runtimeConfig.model,
|
|
860
|
-
command: runtimeConfig.command,
|
|
861
|
-
cwd: runtimeConfig.cwd,
|
|
862
|
-
env: runtimeEnv,
|
|
863
|
-
});
|
|
864
|
-
}
|
|
865
|
-
catch (err) {
|
|
866
|
-
const reason = err instanceof Error ? err.message : String(err);
|
|
867
|
-
throw unprocessable(`Invalid codebuddy_local adapterConfig: ${reason}`);
|
|
868
|
-
}
|
|
869
|
-
return;
|
|
870
|
-
}
|
|
934
|
+
async function assertAdapterConfigConstraints(adapterType, adapterConfig) {
|
|
871
935
|
if (adapterType !== "opencode_local")
|
|
872
936
|
return;
|
|
873
937
|
try {
|
|
@@ -1127,7 +1191,7 @@ export function agentRoutes(db, options = {}) {
|
|
|
1127
1191
|
});
|
|
1128
1192
|
router.get("/companies/:companyId/adapters/:type/detect-model", async (req, res) => {
|
|
1129
1193
|
const companyId = req.params.companyId;
|
|
1130
|
-
|
|
1194
|
+
assertCompanyAccess(req, companyId);
|
|
1131
1195
|
const type = assertKnownAdapterType(req.params.type);
|
|
1132
1196
|
const detected = await detectAdapterModel(type);
|
|
1133
1197
|
res.json(detected);
|
|
@@ -1297,7 +1361,7 @@ export function agentRoutes(db, options = {}) {
|
|
|
1297
1361
|
});
|
|
1298
1362
|
return;
|
|
1299
1363
|
}
|
|
1300
|
-
const result = await svc.list(companyId);
|
|
1364
|
+
const result = await filterAgentsForActor(req, await svc.list(companyId));
|
|
1301
1365
|
const canReadConfigs = await actorCanReadConfigurationsForCompany(req, companyId);
|
|
1302
1366
|
if (canReadConfigs) {
|
|
1303
1367
|
res.json(result);
|
|
@@ -1364,7 +1428,7 @@ export function agentRoutes(db, options = {}) {
|
|
|
1364
1428
|
router.get("/companies/:companyId/org", async (req, res) => {
|
|
1365
1429
|
const companyId = req.params.companyId;
|
|
1366
1430
|
assertCompanyAccess(req, companyId);
|
|
1367
|
-
const tree = await svc.orgForCompany(companyId);
|
|
1431
|
+
const tree = await filterAgentsForActor(req, await svc.orgForCompany(companyId), companyId);
|
|
1368
1432
|
const leanTree = tree.map((node) => toLeanOrgNode(node));
|
|
1369
1433
|
res.json(leanTree);
|
|
1370
1434
|
});
|
|
@@ -1372,7 +1436,7 @@ export function agentRoutes(db, options = {}) {
|
|
|
1372
1436
|
const companyId = req.params.companyId;
|
|
1373
1437
|
assertCompanyAccess(req, companyId);
|
|
1374
1438
|
const style = (ORG_CHART_STYLES.includes(req.query.style) ? req.query.style : "warmth");
|
|
1375
|
-
const tree = await svc.orgForCompany(companyId);
|
|
1439
|
+
const tree = await filterAgentsForActor(req, await svc.orgForCompany(companyId), companyId);
|
|
1376
1440
|
const leanTree = tree.map((node) => toLeanOrgNode(node));
|
|
1377
1441
|
const svg = renderOrgChartSvg(leanTree, style);
|
|
1378
1442
|
res.setHeader("Content-Type", "image/svg+xml");
|
|
@@ -1383,7 +1447,7 @@ export function agentRoutes(db, options = {}) {
|
|
|
1383
1447
|
const companyId = req.params.companyId;
|
|
1384
1448
|
assertCompanyAccess(req, companyId);
|
|
1385
1449
|
const style = (ORG_CHART_STYLES.includes(req.query.style) ? req.query.style : "warmth");
|
|
1386
|
-
const tree = await svc.orgForCompany(companyId);
|
|
1450
|
+
const tree = await filterAgentsForActor(req, await svc.orgForCompany(companyId), companyId);
|
|
1387
1451
|
const leanTree = tree.map((node) => toLeanOrgNode(node));
|
|
1388
1452
|
const png = await renderOrgChartPng(leanTree, style);
|
|
1389
1453
|
res.setHeader("Content-Type", "image/png");
|
|
@@ -1406,6 +1470,15 @@ export function agentRoutes(db, options = {}) {
|
|
|
1406
1470
|
res.status(404).json({ error: "Agent not found" });
|
|
1407
1471
|
return;
|
|
1408
1472
|
}
|
|
1473
|
+
const trustPreset = await resolveAgentSelfTrustPreset(req, agent);
|
|
1474
|
+
if (trustPreset.kind === "denied") {
|
|
1475
|
+
res.status(403).json({ error: trustPreset.detail });
|
|
1476
|
+
return;
|
|
1477
|
+
}
|
|
1478
|
+
if (trustPreset.kind === "low_trust_review") {
|
|
1479
|
+
res.json(buildLowTrustSelfView(agent));
|
|
1480
|
+
return;
|
|
1481
|
+
}
|
|
1409
1482
|
res.json(await buildAgentDetail(agent));
|
|
1410
1483
|
});
|
|
1411
1484
|
router.get("/agents/me/inbox-lite", async (req, res) => {
|
|
@@ -1466,7 +1539,20 @@ export function agentRoutes(db, options = {}) {
|
|
|
1466
1539
|
return;
|
|
1467
1540
|
}
|
|
1468
1541
|
assertCompanyAccess(req, agent.companyId);
|
|
1542
|
+
if (!(await assertAgentReadAllowed(req, res, agent)))
|
|
1543
|
+
return;
|
|
1469
1544
|
const isSelf = req.actor.type === "agent" && req.actor.agentId === id;
|
|
1545
|
+
if (isSelf) {
|
|
1546
|
+
const trustPreset = await resolveAgentSelfTrustPreset(req, agent);
|
|
1547
|
+
if (trustPreset.kind === "denied") {
|
|
1548
|
+
res.status(403).json({ error: trustPreset.detail });
|
|
1549
|
+
return;
|
|
1550
|
+
}
|
|
1551
|
+
if (trustPreset.kind === "low_trust_review") {
|
|
1552
|
+
res.json(buildLowTrustSelfView(agent));
|
|
1553
|
+
return;
|
|
1554
|
+
}
|
|
1555
|
+
}
|
|
1470
1556
|
const canReadSensitiveDetail = isSelf
|
|
1471
1557
|
? true
|
|
1472
1558
|
: await actorCanReadConfigurationsForCompany(req, agent.companyId);
|
|
@@ -1846,6 +1932,7 @@ export function agentRoutes(db, options = {}) {
|
|
|
1846
1932
|
details: {
|
|
1847
1933
|
canCreateAgents: agent.permissions?.canCreateAgents ?? false,
|
|
1848
1934
|
canAssignTasks: effectiveCanAssignTasks,
|
|
1935
|
+
trustPreset: agent.permissions?.trustPreset ?? "standard",
|
|
1849
1936
|
},
|
|
1850
1937
|
});
|
|
1851
1938
|
res.json(await buildAgentDetail(agent));
|