@tickernelz/paperclip-pro-server 2026.930.1 → 2026.930.3

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 (77) hide show
  1. package/dist/build-info.json +1 -1
  2. package/dist/modules/run-dispatch/adapters/postgres.d.ts +5 -1
  3. package/dist/modules/run-dispatch/adapters/postgres.d.ts.map +1 -1
  4. package/dist/modules/run-dispatch/adapters/postgres.js +2 -1
  5. package/dist/modules/run-dispatch/adapters/postgres.js.map +1 -1
  6. package/dist/modules/run-dispatch/index.d.ts +2 -0
  7. package/dist/modules/run-dispatch/index.d.ts.map +1 -1
  8. package/dist/modules/run-dispatch/index.js +1 -1
  9. package/dist/modules/run-dispatch/index.js.map +1 -1
  10. package/dist/modules/wake-queue/adapters/postgres.d.ts.map +1 -1
  11. package/dist/modules/wake-queue/adapters/postgres.js +16 -3
  12. package/dist/modules/wake-queue/adapters/postgres.js.map +1 -1
  13. package/dist/modules/wake-queue/adapters/postgres.test.js +33 -0
  14. package/dist/modules/wake-queue/adapters/postgres.test.js.map +1 -1
  15. package/dist/modules/wake-queue/application/ports.d.ts +3 -0
  16. package/dist/modules/wake-queue/application/ports.d.ts.map +1 -1
  17. package/dist/modules/wake-queue/application/ports.js.map +1 -1
  18. package/dist/modules/wake-queue/application/use-cases.d.ts.map +1 -1
  19. package/dist/modules/wake-queue/application/use-cases.js +6 -3
  20. package/dist/modules/wake-queue/application/use-cases.js.map +1 -1
  21. package/dist/modules/wake-queue/application/use-cases.test.js +52 -2
  22. package/dist/modules/wake-queue/application/use-cases.test.js.map +1 -1
  23. package/dist/routes/issues.d.ts +6 -0
  24. package/dist/routes/issues.d.ts.map +1 -1
  25. package/dist/routes/issues.js +323 -90
  26. package/dist/routes/issues.js.map +1 -1
  27. package/dist/routes/openapi.js +1 -1
  28. package/dist/routes/openapi.js.map +1 -1
  29. package/dist/services/heartbeat.d.ts +1 -0
  30. package/dist/services/heartbeat.d.ts.map +1 -1
  31. package/dist/services/heartbeat.js +100 -20
  32. package/dist/services/heartbeat.js.map +1 -1
  33. package/dist/services/native-runtime/native-session-executor.d.ts +7 -2
  34. package/dist/services/native-runtime/native-session-executor.d.ts.map +1 -1
  35. package/dist/services/native-runtime/native-session-executor.js +35 -14
  36. package/dist/services/native-runtime/native-session-executor.js.map +1 -1
  37. package/dist/services/native-runtime/native-session-executor.test.js +25 -2
  38. package/dist/services/native-runtime/native-session-executor.test.js.map +1 -1
  39. package/dist/services/recovery/service.d.ts +1 -0
  40. package/dist/services/recovery/service.d.ts.map +1 -1
  41. package/dist/services/recovery/service.js +32 -0
  42. package/dist/services/recovery/service.js.map +1 -1
  43. package/dist/services/run-identity.d.ts +1 -0
  44. package/dist/services/run-identity.d.ts.map +1 -1
  45. package/dist/services/run-identity.js +13 -3
  46. package/dist/services/run-identity.js.map +1 -1
  47. package/dist/services/steering-acknowledgements.d.ts +1 -0
  48. package/dist/services/steering-acknowledgements.d.ts.map +1 -1
  49. package/dist/services/steering-acknowledgements.js +6 -0
  50. package/dist/services/steering-acknowledgements.js.map +1 -1
  51. package/dist/services/systemd-notify.d.ts.map +1 -1
  52. package/dist/services/systemd-notify.js +6 -2
  53. package/dist/services/systemd-notify.js.map +1 -1
  54. package/dist/services/systemd-notify.test.d.ts +2 -0
  55. package/dist/services/systemd-notify.test.d.ts.map +1 -0
  56. package/dist/services/systemd-notify.test.js +35 -0
  57. package/dist/services/systemd-notify.test.js.map +1 -0
  58. package/package.json +21 -21
  59. package/skills/paperclip/SKILL.md +3 -1
  60. package/skills/paperclip/references/api-reference.md +2 -0
  61. package/ui-dist/assets/{Agents.production-BDXEK4Q0.js → Agents.production-VItybUXr.js} +2 -2
  62. package/ui-dist/assets/{CompanyActivity.production-AoQ1Xzp6.js → CompanyActivity.production-CwZwgQQV.js} +1 -1
  63. package/ui-dist/assets/{CompanyExport-Bgynl5QC.js → CompanyExport-DD7Rya_d.js} +1 -1
  64. package/ui-dist/assets/{CompanySkills.production-BtKXe0Dw.js → CompanySkills.production-Bwg9FRuw.js} +1 -1
  65. package/ui-dist/assets/{Costs.production-dqa_yTCM.js → Costs.production-lULBU1r3.js} +1 -1
  66. package/ui-dist/assets/{MarkdownEditor-DfrwLv1M.js → MarkdownEditor-BN7aGwIv.js} +1 -1
  67. package/ui-dist/assets/{OrgChart.production-Ca77vSHO.js → OrgChart.production-C7exT9VZ.js} +1 -1
  68. package/ui-dist/assets/{RoutineDetail.production-BBuPjKy1.js → RoutineDetail.production-DsZSvOON.js} +1 -1
  69. package/ui-dist/assets/{RoutineRunVariablesDialog-B1KRZJIl.js → RoutineRunVariablesDialog-DO1hY6dt.js} +1 -1
  70. package/ui-dist/assets/{Routines.production-C5HqDjoO.js → Routines.production-BsmVAcGo.js} +1 -1
  71. package/ui-dist/assets/{checkbox-757DLJRS.js → checkbox-D66RYMkN.js} +1 -1
  72. package/ui-dist/assets/{definition-Cfy5D9lX.js → definition-RMjpvqXu.js} +1 -1
  73. package/ui-dist/assets/{index-B3vYH8Jq.js → index-DU74KtHt.js} +6 -6
  74. package/ui-dist/assets/{label-BueB30Ch.js → label-BjzFqp93.js} +1 -1
  75. package/ui-dist/assets/{sheet-CQJe5sfn.js → sheet-ASM5ba9D.js} +1 -1
  76. package/ui-dist/index.html +6 -6
  77. package/ui-dist/sw.js +1 -1
@@ -74,6 +74,7 @@ export declare function recoveryService(db: Db, deps: {
74
74
  has(id: string): boolean;
75
75
  }>;
76
76
  beforeOrphanedRunTerminalWrite?: (runId: string) => Promise<void>;
77
+ continueProcessGoneRun?: (run: typeof heartbeatRuns.$inferSelect) => Promise<void>;
77
78
  }): {
78
79
  buildRunOutputSilence: (run: Pick<typeof heartbeatRuns.$inferSelect, "id" | "companyId" | "status" | "lastOutputAt" | "lastOutputSeq" | "lastOutputStream" | "processStartedAt" | "startedAt" | "createdAt">, now?: Date) => Promise<RunOutputSilenceSummary>;
79
80
  escalateStrandedRecoveryIssueInPlace: (input: {
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/recovery/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/recovery/service.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAcvD,OAAO,EASL,aAAa,EAOb,MAAM,EAKP,MAAM,8BAA8B,CAAC;AA8DtC,OAAO,EAGL,mCAAmC,EAKpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAML,KAAK,0BAA0B,EAChC,MAAM,sBAAsB,CAAC;AAY9B,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC3B,MAAM,4CAA4C,CAAC;AAapD,eAAO,MAAM,wCAAwC,QAAiB,CAAC;AACvE,eAAO,MAAM,uCAAuC,QAAqB,CAAC;AAC1E,eAAO,MAAM,mCAAmC,QAAiB,CAAC;AAkBlE,eAAO,MAAM,qCAAqC,QAGjD,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,MAAM,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;IAC7D,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACnD,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE;QAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,KAAK,cAAc,GAAG,CACpB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,qBAAqB,KACzB,OAAO,CAAC,OAAO,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAEvD,KAAK,oCAAoC,GACvC,+BAA+B,GAAG,oBAAoB,CAAC;AAEzD,KAAK,qCAAqC,GAAG;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,oCAAoC,CAAC;CAC/C,CAAC;AAEF,KAAK,cAAc,GACf,CAAC,IAAI,CACH,OAAO,aAAa,CAAC,YAAY,EAC/B,IAAI,GACJ,SAAS,GACT,QAAQ,GACR,OAAO,GACP,WAAW,GACX,iBAAiB,GACjB,eAAe,GACf,WAAW,GACX,WAAW,CACd,GAAG;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC,GACF,IAAI,CAAC;AAKT,MAAM,MAAM,qBAAqB,GAC7B,yBAAyB,GACzB,gCAAgC,GAChC,cAAc,GACd,gBAAgB,GAChB,iCAAiC,GACjC,6BAA6B,GAC7B,0BAA0B,GAC1B,4BAA4B,GAC5B,8BAA8B,GAC9B,2BAA2B,GAC3B,0BAA0B,GAC1B,uCAAuC,GACvC,OAAO,mCAAmC,CAAC;AAS/C,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAOT;AAED,KAAK,sBAAsB,GAAG,MAAM,GAAG,aAAa,GAAG,WAAW,CAAC;AAEnE,KAAK,oCAAoC,GAAG;IAC1C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAkKF,YAAY,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,CAAC;AAsF/D,eAAO,MAAM,0CAA0C,QAAiB,CAAC;AAOzE,MAAM,MAAM,oCAAoC,GAC5C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,IAAI,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,GACpC,IAAI,CAAC;AA+ET,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,IAAI,CACb,WAAW,CAAC,cAAc,CAAC,EAC3B,OAAO,GAAG,WAAW,GAAG,YAAY,CACrC,EACD,GAAG,OAAa,GACf,oCAAoC,CAiEtC;AAED,KAAK,+BAA+B,GAAG;IACrC,IAAI,EACA,iBAAiB,GACjB,eAAe,GACf,gCAAgC,GAChC,SAAS,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,cAAc,GACxB,+BAA+B,CAgCjC;AA2KD,wBAAgB,eAAe,CAC7B,EAAE,EAAE,EAAE,EACN,IAAI,EAAE;IACJ,aAAa,EAAE,cAAc,CAAC;IAC9B,qBAAqB,CAAC,EAAE,CACtB,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,OAAO,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACvD;;;;;;OAMG;IACH,yBAAyB,CAAC,EAAE,CAC1B,GAAG,EAAE,OAAO,aAAa,CAAC,YAAY,KACnC,OAAO,CAAC;IACb,iBAAiB,CAAC,EAAE,QAAQ,CAAC;QAAE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3D,8BAA8B,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,sBAAsB,CAAC,EAAE,CACvB,GAAG,EAAE,OAAO,aAAa,CAAC,YAAY,KACnC,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;iCAs0CM,IAAI,CACP,OAAO,aAAa,CAAC,YAAY,EAC/B,IAAI,GACJ,WAAW,GACX,QAAQ,GACR,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,kBAAkB,GAClB,WAAW,GACX,WAAW,CACd,iBAEA,OAAO,CAAC,uBAAuB,CAAC;kDA+cwB;QACzD,KAAK,EAAE,OAAO,MAAM,CAAC,YAAY,CAAC;QAClC,cAAc,EAAE,sBAAsB,CAAC;QACvC,SAAS,EAAE,cAAc,CAAC;KAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAkiCmD;QAClD,KAAK,EAAE,OAAO,MAAM,CAAC,YAAY,CAAC;QAClC,cAAc,EAAE,sBAAsB,CAAC;QACvC,SAAS,EAAE,cAAc,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;QAC3C,aAAa,CAAC,EAAE,qBAAqB,CAAC;QACtC,4BAA4B,CAAC,EAAE,oCAAoC,GAAG,IAAI,CAAC;KAC5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA79C4C;QAC3C,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,qBAAqB,CAAC;QAC7B,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,0BAA0B,CAAC;QAC7D,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,IAAI,CAAC;KACZ;kCAjB0C;QACzC,GAAG,CAAC,EAAE,IAAI,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;KACjC;6CA84DqD;QACpD,iBAAiB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;KACjC;;;;;;;;;;;;;;;;;;;kBAuCmB,MAAM,EAAE;;;;kBA6sDR,MAAM,EAAE;4BACE,MAAM,EAAE;;qDAtkB7B,qCAAqC;;;;;;;;;;;kBAa1B,MAAM,EAAE;;uCAoRc,OAAO,YAAY,MAAM;EAgdpE"}
@@ -1,3 +1,4 @@
1
+ import { CONVERSATION_CONTINUATION_POLICY, runUsedConversationAdapter } from "../conversation-continuation.js";
1
2
  import { settleSlackConversation } from "../slack-conversation-lifecycle.js";
2
3
  import { externalConversationStateSql } from "../slack-conversation-state.js";
3
4
  import { hasLiveLegacyController } from "../legacy-controller-lease.js";
@@ -4158,6 +4159,22 @@ export function recoveryService(db, deps) {
4158
4159
  const message = authority === "issue_terminal"
4159
4160
  ? "run terminalized by recovery backstop: issue reached a terminal status while heartbeat_runs.status stayed live"
4160
4161
  : "run terminalized by recovery backstop: process and sandbox gone while heartbeat_runs.status stayed live";
4162
+ const runResult = parseObject(run.resultJson);
4163
+ const continuationIssue = authority === "process_gone" &&
4164
+ run.runtimeMode === "legacy" &&
4165
+ (!run.errorCode || run.errorCode === "process_detached") &&
4166
+ runResult.executionCancellation === undefined &&
4167
+ runResult.startupCancellation === undefined &&
4168
+ issueId
4169
+ ? await db
4170
+ .select({ conversationAgentId: issues.conversationAgentId })
4171
+ .from(issues)
4172
+ .where(and(eq(issues.id, issueId), eq(issues.companyId, run.companyId)))
4173
+ .then((rows) => rows[0] ?? null)
4174
+ : null;
4175
+ const conversationContinuation = continuationIssue !== null &&
4176
+ !continuationIssue.conversationAgentId &&
4177
+ (await runUsedConversationAdapter(db, run));
4161
4178
  await deps.beforeOrphanedRunTerminalWrite?.(run.id);
4162
4179
  const now = new Date();
4163
4180
  const updated = await db
@@ -4168,6 +4185,13 @@ export function recoveryService(db, deps) {
4168
4185
  error: run.error ?? (terminalStatus === "interrupted" ? message : null),
4169
4186
  errorCode: run.errorCode ??
4170
4187
  (terminalStatus === "interrupted" ? errorCode : null),
4188
+ ...(conversationContinuation
4189
+ ? {
4190
+ resultJson: sql `coalesce(${heartbeatRuns.resultJson}, '{}'::jsonb) || ${JSON.stringify({
4191
+ conversationContinuation: CONVERSATION_CONTINUATION_POLICY,
4192
+ })}::jsonb`,
4193
+ }
4194
+ : {}),
4171
4195
  updatedAt: now,
4172
4196
  })
4173
4197
  .where(and(eq(heartbeatRuns.id, run.id), eq(heartbeatRuns.status, "running"), eq(heartbeatRuns.runtimeMode, run.runtimeMode), nativeRunnerOwnershipNotHeldCondition(),
@@ -4226,6 +4250,14 @@ export function recoveryService(db, deps) {
4226
4250
  pid,
4227
4251
  processGroupId,
4228
4252
  }, "terminalized orphaned running heartbeat run in stale-lock sweep");
4253
+ if (conversationContinuation && deps.continueProcessGoneRun) {
4254
+ try {
4255
+ await deps.continueProcessGoneRun(updated);
4256
+ }
4257
+ catch (error) {
4258
+ logger.error({ err: error, runId: run.id, issueId }, "failed to schedule a continuation for a process-gone run; the sweep still clears the lock");
4259
+ }
4260
+ }
4229
4261
  return { terminalized: true, status: updated.status };
4230
4262
  }
4231
4263
  // Backstop sweeper: clears stale lock columns on issues whose checkoutRunId