@rudderhq/server 0.7.12 → 0.7.14
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/bootstrap/types.d.ts +5 -0
- package/dist/bootstrap/types.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/routes/agents.management-routes.d.ts.map +1 -1
- package/dist/routes/agents.management-routes.js +15 -9
- package/dist/routes/agents.management-routes.js.map +1 -1
- package/dist/routes/chats.d.ts.map +1 -1
- package/dist/routes/chats.js +57 -14
- package/dist/routes/chats.js.map +1 -1
- package/dist/routes/goals.d.ts.map +1 -1
- package/dist/routes/goals.js +24 -0
- package/dist/routes/goals.js.map +1 -1
- package/dist/routes/issues.d.ts.map +1 -1
- package/dist/routes/issues.js +4 -5
- package/dist/routes/issues.js.map +1 -1
- package/dist/routes/run-intelligence.d.ts.map +1 -1
- package/dist/routes/run-intelligence.js +1 -0
- package/dist/routes/run-intelligence.js.map +1 -1
- package/dist/services/agent-issue-creation.d.ts +1 -1
- package/dist/services/agent-run-context.d.ts +1 -1
- package/dist/services/agent-run-context.d.ts.map +1 -1
- package/dist/services/agent-run-context.js +6 -12
- package/dist/services/agent-run-context.js.map +1 -1
- package/dist/services/agent-startup-context.d.ts.map +1 -1
- package/dist/services/agent-startup-context.js +7 -6
- package/dist/services/agent-startup-context.js.map +1 -1
- package/dist/services/agents.d.ts +35 -0
- package/dist/services/agents.d.ts.map +1 -1
- package/dist/services/automations.js +2 -2
- package/dist/services/automations.js.map +1 -1
- package/dist/services/chat-agent-runs.d.ts +1 -0
- package/dist/services/chat-agent-runs.d.ts.map +1 -1
- package/dist/services/chat-agent-runs.js +16 -2
- package/dist/services/chat-agent-runs.js.map +1 -1
- package/dist/services/chat-assistant.d.ts.map +1 -1
- package/dist/services/chat-assistant.helpers.d.ts +2 -2
- package/dist/services/chat-assistant.helpers.d.ts.map +1 -1
- package/dist/services/chat-assistant.helpers.js +3 -0
- package/dist/services/chat-assistant.helpers.js.map +1 -1
- package/dist/services/chat-assistant.js +5 -1
- package/dist/services/chat-assistant.js.map +1 -1
- package/dist/services/chats.d.ts +2 -1
- package/dist/services/chats.d.ts.map +1 -1
- package/dist/services/chats.js +2 -2
- package/dist/services/chats.js.map +1 -1
- package/dist/services/finance.d.ts +1 -1
- package/dist/services/goals.d.ts +11 -7
- package/dist/services/goals.d.ts.map +1 -1
- package/dist/services/goals.js +54 -33
- package/dist/services/goals.js.map +1 -1
- package/dist/services/issue-assignment-wakeup.d.ts +1 -0
- package/dist/services/issue-assignment-wakeup.d.ts.map +1 -1
- package/dist/services/issue-assignment-wakeup.js +2 -0
- package/dist/services/issue-assignment-wakeup.js.map +1 -1
- package/dist/services/issues.d.ts +6 -3
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.js +134 -5
- package/dist/services/issues.js.map +1 -1
- package/dist/services/knowledge-portability/organization-portability.js +1 -1
- package/dist/services/knowledge-portability/organization-portability.js.map +1 -1
- package/dist/services/projects.d.ts +1 -1
- package/dist/services/run-intelligence.d.ts +1 -0
- package/dist/services/run-intelligence.d.ts.map +1 -1
- package/dist/services/run-intelligence.js +6 -0
- package/dist/services/run-intelligence.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.d.ts +19 -1
- package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.js +53 -4
- package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.d.ts +9 -0
- package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.js +17 -0
- package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.js +17 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.release.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.release.js +1 -0
- package/dist/services/runtime-kernel/heartbeat.release.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.sessions.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.sessions.js +10 -2
- package/dist/services/runtime-kernel/heartbeat.sessions.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.terminal.d.ts +8 -0
- package/dist/services/runtime-kernel/heartbeat.terminal.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.wakeup.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.wakeup.js +28 -0
- package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -1
- package/package.json +14 -14
- package/resources/bundled-skills/rudder-docs/references/agent-creation.md +5 -2
- package/resources/bundled-skills/rudder-docs/references/api-reference.md +6 -4
- package/resources/bundled-skills/rudder-docs/references/cli-reference.md +1 -1
- package/skills/rudder-docs/references/agent-creation.md +5 -2
- package/skills/rudder-docs/references/api-reference.md +6 -4
- package/skills/rudder-docs/references/cli-reference.md +1 -1
- package/ui-dist/assets/{LibraryLiveSurface-tCWxJKp5.js → LibraryLiveSurface-Dl_mRBqL.js} +1 -1
- package/ui-dist/assets/{abnfDiagram-VRR7QNED-BcCms-hs.js → abnfDiagram-VRR7QNED-4MIrDcN0.js} +1 -1
- package/ui-dist/assets/{addon-fit-CH3xNHN4.js → addon-fit-DaLbwAfQ.js} +1 -1
- package/ui-dist/assets/{arc-h5W-EkRK.js → arc-DrbWjUWY.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-Bdehm1PB.js → architectureDiagram-ZJ3FMSHR-Bt-JYYfG.js} +1 -1
- package/ui-dist/assets/{blockDiagram-677ZJIJ3-BJ3W91Su.js → blockDiagram-677ZJIJ3-OXUbGv47.js} +1 -1
- package/ui-dist/assets/{c4Diagram-LMCZKHZV-Bnft_fRy.js → c4Diagram-LMCZKHZV-C_EcNhSw.js} +1 -1
- package/ui-dist/assets/channel-DL45J6-6.js +1 -0
- package/ui-dist/assets/{chunk-2Q5K7J3B-w1SF0tSk.js → chunk-2Q5K7J3B-DY-Rya7u.js} +1 -1
- package/ui-dist/assets/{chunk-32BRIVSS-C1UzXTFZ.js → chunk-32BRIVSS-CTrRcC7g.js} +1 -1
- package/ui-dist/assets/{chunk-5VM5RSS4-COVI3rNd.js → chunk-5VM5RSS4-CFfB2lwI.js} +1 -1
- package/ui-dist/assets/{chunk-EX3LRPZG-DxQOLy7z.js → chunk-EX3LRPZG-C0nNM3QW.js} +1 -1
- package/ui-dist/assets/{chunk-JWPE2WC7-KTwmElcL.js → chunk-JWPE2WC7-Bzqz4lCp.js} +1 -1
- package/ui-dist/assets/{chunk-MOJQB5TN-BynL4lzA.js → chunk-MOJQB5TN-B7JFd8bM.js} +1 -1
- package/ui-dist/assets/{chunk-RYQCIY6F-CJksBfuJ.js → chunk-RYQCIY6F-a5E8W5cO.js} +1 -1
- package/ui-dist/assets/{chunk-V7JOEXUC-C_zED5WJ.js → chunk-V7JOEXUC-lhKPx7D_.js} +1 -1
- package/ui-dist/assets/{chunk-VR4S4FIN-BHDtMeiT.js → chunk-VR4S4FIN-bZBK3VoP.js} +1 -1
- package/ui-dist/assets/{chunk-XXDRQBXY-C0VvJgte.js → chunk-XXDRQBXY-Di3ho8vJ.js} +1 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-DuHN7Tz9.js +1 -0
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-DuHN7Tz9.js +1 -0
- package/ui-dist/assets/{cose-bilkent-JH36ORCC-DsTTzpP7.js → cose-bilkent-JH36ORCC-CGSlPnRr.js} +1 -1
- package/ui-dist/assets/{cynefin-VYW2F7L2-BfULw90s.js → cynefin-VYW2F7L2-BfELv7kL.js} +1 -1
- package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-BukSzKVC.js → cynefinDiagram-TSTJHNR4-iMVux7wr.js} +1 -1
- package/ui-dist/assets/{dagre-VKFMJZFB-BbZY_Ipf.js → dagre-VKFMJZFB-imUTNZ-g.js} +1 -1
- package/ui-dist/assets/{diagram-FQU43EPY-BTYIYn2p.js → diagram-FQU43EPY-i0bYfkK2.js} +1 -1
- package/ui-dist/assets/{diagram-G47NLZAW-CikY_FKi.js → diagram-G47NLZAW-CN7P8lGu.js} +1 -1
- package/ui-dist/assets/{diagram-NH7WQ7WH-BfZ7AlT8.js → diagram-NH7WQ7WH-BJ4dmUnA.js} +1 -1
- package/ui-dist/assets/{diagram-OA4YK3LP-f5AikxJj.js → diagram-OA4YK3LP-DDWgQGqt.js} +1 -1
- package/ui-dist/assets/{diagram-WEI45ONY-BCbG5yas.js → diagram-WEI45ONY-3At0yiVq.js} +1 -1
- package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-DT-3mJLY.js → ebnfDiagram-CCIWWBDH-Dk6Q1_n0.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q63AITRT-BsfOhDfe.js → erDiagram-Q63AITRT-DIQXCD2C.js} +1 -1
- package/ui-dist/assets/{flowDiagram-23GEKE2U-BfaeQCsg.js → flowDiagram-23GEKE2U-D19_Ed2R.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-NO4QXBWP-CgPQruVz.js → ganttDiagram-NO4QXBWP-JdDX_faf.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-CNrBFzjY.js → gitGraphDiagram-IHSO6WYX-D1H6mGeL.js} +1 -1
- package/ui-dist/assets/{graph-QqDTzUUJ.js → graph-BG22o1KD.js} +1 -1
- package/ui-dist/assets/{index-Dc_DUpPj.js → index-BDNVVxYy.js} +1 -1
- package/ui-dist/assets/{index-BAt16m_U.js → index-BRGW3KLv.js} +1 -1
- package/ui-dist/assets/{index-sFJMMyA3.js → index-BxHKdZbS.js} +1 -1
- package/ui-dist/assets/{index-DZ4gAeDM.js → index-C0wGrz8h.js} +1 -1
- package/ui-dist/assets/{index-2cYcOpZB.js → index-CVu9lnBy.js} +1 -1
- package/ui-dist/assets/{index-BY8xCKIE.js → index-CqaANx_i.js} +1 -1
- package/ui-dist/assets/{index-CQ92CxVC.js → index-CwdDPdqf.js} +1 -1
- package/ui-dist/assets/{index-CQFwlD-o.js → index-D3lUbbsS.js} +1 -1
- package/ui-dist/assets/{index-Befy20DN.js → index-DDIA_6o8.js} +1 -1
- package/ui-dist/assets/{index-BuIyK71w.js → index-DL6O5Ix-.js} +553 -554
- package/ui-dist/assets/{index-2ZQZC89T.js → index-DXA-HNO5.js} +1 -1
- package/ui-dist/assets/{index-Dqv46mWS.js → index-KZiKwV4T.js} +1 -1
- package/ui-dist/assets/{index-BogOyxlk.js → index-MrGb7TRh.js} +1 -1
- package/ui-dist/assets/{index-BfAP3xNl.js → index-inavbYTa.js} +1 -1
- package/ui-dist/assets/index-rHP5bnon.css +32 -0
- package/ui-dist/assets/{index-Cu4qo_D7.js → index-uHZfZjdL.js} +1 -1
- package/ui-dist/assets/{infoDiagram-FWYZ7A6U-BJHuaNA9.js → infoDiagram-FWYZ7A6U-CVUn5UCu.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-CmsA1Knp.js → ishikawaDiagram-FXEZZL3T-5BbuWr6T.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-5HDEW3XC-iV_Nt9d4.js → journeyDiagram-5HDEW3XC-DoCwetKy.js} +1 -1
- package/ui-dist/assets/{kanban-definition-HUTT4EX6-D45s70Ny.js → kanban-definition-HUTT4EX6-BNDYA9Vo.js} +1 -1
- package/ui-dist/assets/{layout-DDC-iOzY.js → layout-DUhTcIiA.js} +1 -1
- package/ui-dist/assets/{linear-DCTJ7Pq3.js → linear-CCEHbSzg.js} +1 -1
- package/ui-dist/assets/{map-RGy5k616.js → map-C8V41jZb.js} +1 -1
- package/ui-dist/assets/{mermaid.core-6MH04cvi.js → mermaid.core-UAa_NJSl.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-LN4V7U3C-CA2LFmda.js → mindmap-definition-LN4V7U3C-C_ygOwPG.js} +1 -1
- package/ui-dist/assets/{pegDiagram-2B236MQR-DDsUr2du.js → pegDiagram-2B236MQR-Dz0Nw1iK.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ENE6RG2P-D7jEL8xK.js → pieDiagram-ENE6RG2P-DSn9W4hM.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-BsJxgVLb.js → quadrantDiagram-ABIIQ3AL-D6cn2p2u.js} +1 -1
- package/ui-dist/assets/{railroadDiagram-RFXS5EU6-CBI457f6.js → railroadDiagram-RFXS5EU6-DkQOZUbI.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-TGXJPOKE-_GAc0NOO.js → requirementDiagram-TGXJPOKE-CVxaeOzG.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-DNIaj5hu.js → sankeyDiagram-HTMAVEWB-DsCkJ9Sr.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-BHDZs2dc.js → sequenceDiagram-DBY2YBRQ-DSVgeeYC.js} +1 -1
- package/ui-dist/assets/{sizeCapture-X5ZJPWSS-DwKT6aTP.js → sizeCapture-X5ZJPWSS-jYNNSFFN.js} +1 -1
- package/ui-dist/assets/{stateDiagram-2N3HPSRC-D2hDsltG.js → stateDiagram-2N3HPSRC-HMmvTfZO.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-Ij5NPf9Z.js +1 -0
- package/ui-dist/assets/{swimlanes-5IMT3BWC-BV8xA0iq.js → swimlanes-5IMT3BWC-B7lpTS-P.js} +2 -2
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-VbzuYi16.js +8 -0
- package/ui-dist/assets/{timeline-definition-FHXFAJF6-BPJMubhV.js → timeline-definition-FHXFAJF6-CfjkTbE1.js} +1 -1
- package/ui-dist/assets/{vennDiagram-L72KCM5P-CY76J0Px.js → vennDiagram-L72KCM5P-gK5ZOhfi.js} +1 -1
- package/ui-dist/assets/{wardleyDiagram-EHGQE667-pmNWLdE_.js → wardleyDiagram-EHGQE667-ClAgPp4O.js} +1 -1
- package/ui-dist/assets/{xterm-UByodpzD.js → xterm-CI3dnrG9.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-FW5EYKEG-BWZC7gWV.js → xychartDiagram-FW5EYKEG-CMu8n5xR.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/ui-dist/assets/channel-G6qIOCiV.js +0 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-D15_PFCL.js +0 -1
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-D15_PFCL.js +0 -1
- package/ui-dist/assets/index-DRuC5g8V.css +0 -32
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-CMTeJdkk.js +0 -1
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-ChF8QLeM.js +0 -8
|
@@ -12,12 +12,12 @@ export declare function financeService(db: Db): {
|
|
|
12
12
|
id: string;
|
|
13
13
|
model: string | null;
|
|
14
14
|
direction: string;
|
|
15
|
+
goalId: string | null;
|
|
15
16
|
orgId: string;
|
|
16
17
|
description: string | null;
|
|
17
18
|
createdAt: Date;
|
|
18
19
|
provider: string | null;
|
|
19
20
|
eventKind: string;
|
|
20
|
-
goalId: string | null;
|
|
21
21
|
billingCode: string | null;
|
|
22
22
|
occurredAt: Date;
|
|
23
23
|
heartbeatRunId: string | null;
|
package/dist/services/goals.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import type { Db } from "@rudderhq/db";
|
|
15
15
|
import { agents, goalActivities, goalChangeProposals, goalCheckpoints, goalFeedbackEntries, goalOwnerAssignments, goalPlans, goalResultProposals, goals } from "@rudderhq/db";
|
|
16
|
-
import type { AcceptGoalResultProposal, ActivateGoal, AssignGoalOwner, CreateGoalActivity, CreateGoalChangeProposal, CreateGoalFeedback, CreateGoalResultProposal, DecideGoalChangeProposal, EvaluateGoal, GoalCheckpointInput, GoalContractPatch, GoalContractSnapshot, GoalDependencies, GoalEvaluationCandidate, GoalHistoryItem, GoalHistoryPage, GoalResultProposal, GoalResultReducerPreflight, GoalStartPreview, IssueAssigneeAgentRuntimeOverrides, PreviewGoalStart, PublicGoal, PublicGoalActivity, PublicGoalChangeProposal, PublicGoalOwnerAssignment, PublicGoalPlan, PublicGoalResultProposal, RejectGoalResultProposal, StartGoal, UpdateGoalPlan } from "@rudderhq/shared";
|
|
16
|
+
import type { AcceptGoalResultProposal, ActivateGoal, AssignGoalOwner, CreateGoalActivity, CreateGoalChangeProposal, CreateGoalFeedback, CreateGoalResultProposal, DecideGoalChangeProposal, EvaluateGoal, GoalActivityTimelinePage, GoalCheckpointInput, GoalContractPatch, GoalContractSnapshot, GoalDependencies, GoalEvaluationCandidate, GoalHistoryItem, GoalHistoryPage, GoalResultProposal, GoalResultReducerPreflight, GoalStartPreview, IssueAssigneeAgentRuntimeOverrides, PreviewGoalStart, PublicGoal, PublicGoalActivity, PublicGoalChangeProposal, PublicGoalOwnerAssignment, PublicGoalPlan, PublicGoalResultProposal, RejectGoalResultProposal, StartGoal, UpdateGoalPlan } from "@rudderhq/shared";
|
|
17
17
|
type GoalRow = typeof goals.$inferSelect;
|
|
18
18
|
type GoalWakeupActor = {
|
|
19
19
|
actorType: "user" | "agent" | "system";
|
|
@@ -1432,6 +1432,10 @@ export declare function goalService(db: Db): {
|
|
|
1432
1432
|
changeProposals: PublicGoalChangeProposal[];
|
|
1433
1433
|
resultProposals: PublicGoalResultProposal[];
|
|
1434
1434
|
}>;
|
|
1435
|
+
timeline: (id: string, options?: {
|
|
1436
|
+
cursor?: string | null;
|
|
1437
|
+
limit?: number;
|
|
1438
|
+
}) => Promise<GoalActivityTimelinePage>;
|
|
1435
1439
|
workspaceCards: (orgId: string) => Promise<{
|
|
1436
1440
|
id: string;
|
|
1437
1441
|
orgId: string;
|
|
@@ -1686,10 +1690,10 @@ export declare function goalService(db: Db): {
|
|
|
1686
1690
|
id: string;
|
|
1687
1691
|
updatedAt: Date;
|
|
1688
1692
|
summary: string;
|
|
1693
|
+
goalId: string;
|
|
1689
1694
|
orgId: string;
|
|
1690
1695
|
createdAt: Date;
|
|
1691
1696
|
revision: number;
|
|
1692
|
-
goalId: string;
|
|
1693
1697
|
hypotheses: unknown[];
|
|
1694
1698
|
selectedPaths: unknown[];
|
|
1695
1699
|
rejectedPaths: unknown[];
|
|
@@ -1703,10 +1707,10 @@ export declare function goalService(db: Db): {
|
|
|
1703
1707
|
id: string;
|
|
1704
1708
|
runId: string;
|
|
1705
1709
|
summary: string;
|
|
1710
|
+
goalId: string;
|
|
1706
1711
|
orgId: string;
|
|
1707
1712
|
ownerAgentId: string;
|
|
1708
1713
|
createdAt: Date;
|
|
1709
|
-
goalId: string;
|
|
1710
1714
|
wakeCondition: string | null;
|
|
1711
1715
|
evidenceRefs: string[];
|
|
1712
1716
|
idempotencyKey: string;
|
|
@@ -2223,9 +2227,9 @@ export declare function goalService(db: Db): {
|
|
|
2223
2227
|
activityKind: string | null;
|
|
2224
2228
|
id: string;
|
|
2225
2229
|
summary: string;
|
|
2230
|
+
goalId: string;
|
|
2226
2231
|
orgId: string;
|
|
2227
2232
|
createdAt: Date;
|
|
2228
|
-
goalId: string;
|
|
2229
2233
|
evidenceRefs: unknown[];
|
|
2230
2234
|
idempotencyKey: string | null;
|
|
2231
2235
|
commitmentRef: string | null;
|
|
@@ -2257,9 +2261,9 @@ export declare function goalService(db: Db): {
|
|
|
2257
2261
|
status: "pending" | "superseded" | "approved" | "rejected" | "applied";
|
|
2258
2262
|
id: string;
|
|
2259
2263
|
updatedAt: Date;
|
|
2264
|
+
goalId: string;
|
|
2260
2265
|
orgId: string;
|
|
2261
2266
|
createdAt: Date;
|
|
2262
|
-
goalId: string;
|
|
2263
2267
|
approvalId: string;
|
|
2264
2268
|
evidenceRefs: string[];
|
|
2265
2269
|
idempotencyKey: string;
|
|
@@ -2296,9 +2300,9 @@ export declare function goalService(db: Db): {
|
|
|
2296
2300
|
status: "ready" | "superseded" | "rejected" | "inconclusive" | "accepted";
|
|
2297
2301
|
id: string;
|
|
2298
2302
|
updatedAt: Date;
|
|
2303
|
+
goalId: string;
|
|
2299
2304
|
orgId: string;
|
|
2300
2305
|
createdAt: Date;
|
|
2301
|
-
goalId: string;
|
|
2302
2306
|
idempotencyKey: string;
|
|
2303
2307
|
contractRevision: number;
|
|
2304
2308
|
riskSummary: string;
|
|
@@ -2404,9 +2408,9 @@ export declare function goalService(db: Db): {
|
|
|
2404
2408
|
assignOwner: (id: string, input: AssignGoalOwner, actorAgentId?: string | null) => Promise<{
|
|
2405
2409
|
agentId: string;
|
|
2406
2410
|
id: string;
|
|
2411
|
+
goalId: string;
|
|
2407
2412
|
orgId: string;
|
|
2408
2413
|
createdAt: Date;
|
|
2409
|
-
goalId: string;
|
|
2410
2414
|
assignmentRevision: number;
|
|
2411
2415
|
assignedByAuthorityRef: string | null;
|
|
2412
2416
|
startsAt: Date;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goals.d.ts","sourceRoot":"","sources":["../../src/services/goals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAEL,MAAM,EAQN,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EAEnB,KAAK,EAMN,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EACxB,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAEhB,uBAAuB,EAEvB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAE1B,gBAAgB,
|
|
1
|
+
{"version":3,"file":"goals.d.ts","sourceRoot":"","sources":["../../src/services/goals.ts"],"names":[],"mappings":"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"}
|
package/dist/services/goals.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { agentWakeupRequests, agents, approvals, assets, authUsers, automations, calendarEvents, costEvents, financeEvents, goalActivities, goalChangeProposals, goalCheckpoints, goalFeedbackEntries, goalOwnerAssignments, goalPlans, goalResultProposals, goalStartRequests, goals, heartbeatRuns, issues, organizations, projectGoals, projects, } from "@rudderhq/db";
|
|
2
|
-
import { activateGoalSchema, parseLibraryEntryMentionHref, parseLibraryFileMentionHref, parseShortRef, shortRefFor } from "@rudderhq/shared";
|
|
2
|
+
import { activateGoalSchema, parseLibraryEntryMentionHref, parseLibraryFileMentionHref, parseShortRef, shortRefFor, toAgentRuns } from "@rudderhq/shared";
|
|
3
3
|
import { and, asc, desc, eq, gt, inArray, isNotNull, isNull, lt, or, sql } from "drizzle-orm";
|
|
4
4
|
import { createHash, randomUUID } from "node:crypto";
|
|
5
5
|
import { badRequest, conflict, forbidden, notFound, unprocessable } from "../errors.js";
|
|
@@ -202,12 +202,17 @@ function goalRunAttentionReason(status) {
|
|
|
202
202
|
return "The Owner Agent's latest action timed out. Decide whether to retry or adjust the Goal.";
|
|
203
203
|
return null;
|
|
204
204
|
}
|
|
205
|
-
const GOAL_HISTORY_KINDS = ["activity", "feedback", "change_proposal", "result_proposal"];
|
|
205
|
+
const GOAL_HISTORY_KINDS = ["activity", "feedback", "change_proposal", "result_proposal", "agent_run"];
|
|
206
206
|
function encodeGoalHistoryCursor(item) {
|
|
207
207
|
const createdAt = item.createdAt instanceof Date ? item.createdAt.toISOString() : new Date(item.createdAt).toISOString();
|
|
208
208
|
return Buffer.from(JSON.stringify({ version: 1, createdAt, kind: item.kind, id: item.id }))
|
|
209
209
|
.toString("base64url");
|
|
210
210
|
}
|
|
211
|
+
function encodeGoalActivityTimelineCursor(item) {
|
|
212
|
+
const createdAt = item.createdAt instanceof Date ? item.createdAt.toISOString() : new Date(item.createdAt).toISOString();
|
|
213
|
+
return Buffer.from(JSON.stringify({ version: 1, createdAt, kind: item.kind, id: item.id }))
|
|
214
|
+
.toString("base64url");
|
|
215
|
+
}
|
|
211
216
|
function decodeGoalHistoryCursor(value) {
|
|
212
217
|
if (!value)
|
|
213
218
|
return null;
|
|
@@ -407,6 +412,7 @@ export function publicGoalActivity(activity, options = {}) {
|
|
|
407
412
|
}),
|
|
408
413
|
occurredAt: activity.occurredAt,
|
|
409
414
|
createdAt: activity.createdAt,
|
|
415
|
+
runId: activity.runRef,
|
|
410
416
|
};
|
|
411
417
|
}
|
|
412
418
|
export function publicGoalCheckpoint(checkpoint) {
|
|
@@ -1230,20 +1236,9 @@ export function goalService(db) {
|
|
|
1230
1236
|
resultJson: heartbeatRuns.resultJson,
|
|
1231
1237
|
resultSummaryJson: heartbeatRuns.resultSummaryJson,
|
|
1232
1238
|
error: heartbeatRuns.error,
|
|
1233
|
-
}).from(heartbeatRuns).where(and(eq(heartbeatRuns.orgId, goal.orgId), eq(heartbeatRuns.agentId, goal.ownerAgentId),
|
|
1239
|
+
}).from(heartbeatRuns).where(and(eq(heartbeatRuns.orgId, goal.orgId), eq(heartbeatRuns.agentId, goal.ownerAgentId), eq(heartbeatRuns.goalId, goal.id)))
|
|
1234
1240
|
: Promise.resolve([]),
|
|
1235
1241
|
]);
|
|
1236
|
-
const runIds = [...new Set(issueFacts.flatMap((issue) => [issue.checkoutRunId, issue.executionRunId]).filter((id) => Boolean(id)))];
|
|
1237
|
-
const runFacts = runIds.length > 0
|
|
1238
|
-
? await db.select({
|
|
1239
|
-
id: heartbeatRuns.id,
|
|
1240
|
-
status: heartbeatRuns.status,
|
|
1241
|
-
updatedAt: heartbeatRuns.updatedAt,
|
|
1242
|
-
resultJson: heartbeatRuns.resultJson,
|
|
1243
|
-
resultSummaryJson: heartbeatRuns.resultSummaryJson,
|
|
1244
|
-
error: heartbeatRuns.error,
|
|
1245
|
-
}).from(heartbeatRuns).where(and(eq(heartbeatRuns.orgId, goal.orgId), inArray(heartbeatRuns.id, runIds)))
|
|
1246
|
-
: [];
|
|
1247
1242
|
const relatedFacts = [
|
|
1248
1243
|
...issueFacts.map((issue) => ({
|
|
1249
1244
|
id: `work-status:issue:${issue.id}`,
|
|
@@ -1265,19 +1260,8 @@ export function goalService(db) {
|
|
|
1265
1260
|
runStatus: null,
|
|
1266
1261
|
evidenceRefs: [],
|
|
1267
1262
|
})),
|
|
1268
|
-
...runFacts.map((run) => ({
|
|
1269
|
-
id: `work-status:run:${run.id}`,
|
|
1270
|
-
kind: "work_status",
|
|
1271
|
-
summary: publicRunSummary(run),
|
|
1272
|
-
occurredAt: run.updatedAt,
|
|
1273
|
-
sourceId: run.id,
|
|
1274
|
-
sourceRunId: run.id,
|
|
1275
|
-
runStatus: run.status,
|
|
1276
|
-
evidenceRefs: [],
|
|
1277
|
-
})),
|
|
1278
1263
|
];
|
|
1279
1264
|
const directFacts = directRunFacts
|
|
1280
|
-
.filter((run) => !runFacts.some((linkedRun) => linkedRun.id === run.id))
|
|
1281
1265
|
.map((run) => ({
|
|
1282
1266
|
id: `work-status:run:${run.id}`,
|
|
1283
1267
|
kind: "work_status",
|
|
@@ -1340,6 +1324,7 @@ export function goalService(db) {
|
|
|
1340
1324
|
orgId: heartbeatRuns.orgId,
|
|
1341
1325
|
agentId: heartbeatRuns.agentId,
|
|
1342
1326
|
status: heartbeatRuns.status,
|
|
1327
|
+
goalId: heartbeatRuns.goalId,
|
|
1343
1328
|
contextSnapshot: heartbeatRuns.contextSnapshot,
|
|
1344
1329
|
}).from(heartbeatRuns).where(eq(heartbeatRuns.id, runId)).then((rows) => rows[0] ?? null);
|
|
1345
1330
|
if (!run || run.orgId !== goal.orgId) {
|
|
@@ -1348,14 +1333,7 @@ export function goalService(db) {
|
|
|
1348
1333
|
if (actorAgentId && run.agentId !== actorAgentId) {
|
|
1349
1334
|
throw unprocessable("Goal Activity run must belong to the acting Agent");
|
|
1350
1335
|
}
|
|
1351
|
-
|
|
1352
|
-
if (context.goalId === goal.id)
|
|
1353
|
-
return run;
|
|
1354
|
-
const issueId = typeof context.issueId === "string" ? context.issueId : null;
|
|
1355
|
-
const linkedIssue = issueId
|
|
1356
|
-
? await database.select({ goalId: issues.goalId }).from(issues).where(and(eq(issues.id, issueId), eq(issues.orgId, goal.orgId))).then((rows) => rows[0] ?? null)
|
|
1357
|
-
: null;
|
|
1358
|
-
if (linkedIssue?.goalId === goal.id)
|
|
1336
|
+
if (run.goalId === goal.id)
|
|
1359
1337
|
return run;
|
|
1360
1338
|
throw unprocessable("Goal Activity run must be linked to this Goal");
|
|
1361
1339
|
}
|
|
@@ -1527,6 +1505,7 @@ export function goalService(db) {
|
|
|
1527
1505
|
actorId: activity.submittedByAgentId,
|
|
1528
1506
|
actorName: actorName(actorType, activity.submittedByAgentId),
|
|
1529
1507
|
attachments: [],
|
|
1508
|
+
runId: activity.runRef,
|
|
1530
1509
|
};
|
|
1531
1510
|
}),
|
|
1532
1511
|
...feedbackRows.map((entry) => ({
|
|
@@ -1596,6 +1575,47 @@ export function goalService(db) {
|
|
|
1596
1575
|
: null,
|
|
1597
1576
|
};
|
|
1598
1577
|
}
|
|
1578
|
+
async function activityTimelineFor(id, options = {}) {
|
|
1579
|
+
const goal = await requireGoal(db, id);
|
|
1580
|
+
const limit = options.limit ?? GOAL_HISTORY_DEFAULT_LIMIT;
|
|
1581
|
+
if (!Number.isInteger(limit) || limit < 1 || limit > GOAL_HISTORY_MAX_LIMIT) {
|
|
1582
|
+
throw badRequest(`Goal activity timeline limit must be between 1 and ${GOAL_HISTORY_MAX_LIMIT}`);
|
|
1583
|
+
}
|
|
1584
|
+
const cursor = decodeGoalHistoryCursor(options.cursor);
|
|
1585
|
+
const [historyPage, runRows, liveRunRows] = await Promise.all([
|
|
1586
|
+
historyFor(id, { cursor: options.cursor, limit }),
|
|
1587
|
+
db.select().from(heartbeatRuns).where(and(eq(heartbeatRuns.orgId, goal.orgId), eq(heartbeatRuns.goalId, id), historyCursorCondition(heartbeatRuns.createdAt, heartbeatRuns.id, "agent_run", cursor))).orderBy(desc(heartbeatRuns.createdAt), asc(heartbeatRuns.id)).limit(limit + 1),
|
|
1588
|
+
db.select({ id: heartbeatRuns.id }).from(heartbeatRuns).where(and(eq(heartbeatRuns.orgId, goal.orgId), eq(heartbeatRuns.goalId, id), inArray(heartbeatRuns.status, ["queued", "running"]))).limit(1),
|
|
1589
|
+
]);
|
|
1590
|
+
const runs = toAgentRuns(runRows);
|
|
1591
|
+
const items = [
|
|
1592
|
+
...historyPage.items.map((item) => ({ source: "goal-history", item })),
|
|
1593
|
+
...runs.map((item) => ({ source: "agent-run", item })),
|
|
1594
|
+
].sort((left, right) => {
|
|
1595
|
+
const timeDifference = new Date(right.item.createdAt).getTime() - new Date(left.item.createdAt).getTime();
|
|
1596
|
+
if (timeDifference !== 0)
|
|
1597
|
+
return timeDifference;
|
|
1598
|
+
const leftKind = left.source === "agent-run" ? "agent_run" : left.item.kind;
|
|
1599
|
+
const rightKind = right.source === "agent-run" ? "agent_run" : right.item.kind;
|
|
1600
|
+
const kindDifference = leftKind.localeCompare(rightKind);
|
|
1601
|
+
return kindDifference !== 0 ? kindDifference : left.item.id.localeCompare(right.item.id);
|
|
1602
|
+
});
|
|
1603
|
+
const pageItems = items.slice(0, limit);
|
|
1604
|
+
const hasMore = historyPage.nextCursor !== null || items.length > limit;
|
|
1605
|
+
const last = pageItems[pageItems.length - 1];
|
|
1606
|
+
const nextCursor = hasMore && last
|
|
1607
|
+
? encodeGoalActivityTimelineCursor({
|
|
1608
|
+
createdAt: last.item.createdAt,
|
|
1609
|
+
kind: last.source === "agent-run" ? "agent_run" : last.item.kind,
|
|
1610
|
+
id: last.item.id,
|
|
1611
|
+
})
|
|
1612
|
+
: null;
|
|
1613
|
+
return {
|
|
1614
|
+
items: pageItems,
|
|
1615
|
+
nextCursor,
|
|
1616
|
+
hasLiveRuns: liveRunRows.length > 0,
|
|
1617
|
+
};
|
|
1618
|
+
}
|
|
1599
1619
|
async function workspaceFor(id) {
|
|
1600
1620
|
const goal = await requireGoal(db, id);
|
|
1601
1621
|
const orgUrlKey = await organizationUrlKey(db, goal.orgId);
|
|
@@ -1886,6 +1906,7 @@ export function goalService(db) {
|
|
|
1886
1906
|
});
|
|
1887
1907
|
},
|
|
1888
1908
|
workspace: workspaceFor,
|
|
1909
|
+
timeline: activityTimelineFor,
|
|
1889
1910
|
workspaceCards: async (orgId) => {
|
|
1890
1911
|
const organizationGoals = await db.select().from(goals).where(eq(goals.orgId, orgId))
|
|
1891
1912
|
.orderBy(asc(goals.createdAt));
|