@pikku/core 0.12.148 → 0.12.151

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 (139) hide show
  1. package/dist/function/function-runner.js +23 -0
  2. package/dist/function/trace-queue-service.d.ts +26 -0
  3. package/dist/function/trace-queue-service.js +48 -0
  4. package/dist/mesh.d.ts +2 -2
  5. package/dist/mesh.js +3 -3
  6. package/dist/middleware/index.d.ts +1 -1
  7. package/dist/middleware/index.js +1 -1
  8. package/dist/middleware/mesh-auth.d.ts +3 -2
  9. package/dist/middleware/mesh-auth.js +7 -2
  10. package/dist/middleware/remote-jobs-secret.d.ts +1 -1
  11. package/dist/middleware/require-origin.d.ts +19 -0
  12. package/dist/middleware/require-origin.js +36 -2
  13. package/dist/services/deployment-service.d.ts +1 -1
  14. package/dist/services/incoming-webhook-service.d.ts +4 -2
  15. package/dist/services/incoming-webhook-service.js +4 -3
  16. package/dist/services/queue-webhook-service.js +7 -1
  17. package/dist/services/remote-jobs.d.ts +6 -1
  18. package/dist/services/scheduler-service.d.ts +3 -1
  19. package/dist/services/webhook-service.d.ts +2 -0
  20. package/dist/services/workflow-service.d.ts +4 -1
  21. package/dist/testing/index.d.ts +4 -0
  22. package/dist/testing/index.js +2 -0
  23. package/dist/testing/queue-identity-transport-tests.d.ts +18 -0
  24. package/dist/testing/queue-identity-transport-tests.js +162 -0
  25. package/dist/testing/queue-trace-conformance.d.ts +26 -0
  26. package/dist/testing/queue-trace-conformance.js +259 -0
  27. package/dist/testing/service-tests/channel-store-tests.js +11 -0
  28. package/dist/testing/service-tests/queued-workflow-harness.d.ts +18 -1
  29. package/dist/testing/service-tests/queued-workflow-harness.js +19 -3
  30. package/dist/testing/service-tests/workflow-service-tests.js +12 -0
  31. package/dist/testing/trace-matrix/assertions.d.ts +3 -0
  32. package/dist/testing/trace-matrix/assertions.js +190 -0
  33. package/dist/testing/trace-matrix/chain-harness.d.ts +119 -0
  34. package/dist/testing/trace-matrix/chain-harness.js +777 -0
  35. package/dist/testing/trace-matrix/dimensions.d.ts +55 -0
  36. package/dist/testing/trace-matrix/dimensions.js +305 -0
  37. package/dist/testing/trace-matrix/pairwise.d.ts +20 -0
  38. package/dist/testing/trace-matrix/pairwise.js +75 -0
  39. package/dist/testing/trace-matrix/report.d.ts +1 -0
  40. package/dist/testing/trace-matrix/report.js +16 -0
  41. package/dist/testing/trace-matrix/transports.d.ts +19 -0
  42. package/dist/testing/trace-matrix/transports.js +27 -0
  43. package/dist/testing/trace-matrix/workflow-cases.d.ts +24 -0
  44. package/dist/testing/trace-matrix/workflow-cases.js +147 -0
  45. package/dist/trace.d.ts +66 -0
  46. package/dist/trace.js +97 -0
  47. package/dist/types/core.types.d.ts +6 -2
  48. package/dist/wirings/addon/addon-reach.d.ts +3 -0
  49. package/dist/wirings/addon/addon-reach.js +9 -0
  50. package/dist/wirings/addon/define-plugin.d.ts +16 -0
  51. package/dist/wirings/addon/wire-addon.js +5 -0
  52. package/dist/wirings/addon/wire-remote-addon.d.ts +11 -0
  53. package/dist/wirings/agent/agent-finalize.d.ts +2 -0
  54. package/dist/wirings/agent/agent-finalize.js +1 -1
  55. package/dist/wirings/agent/agent-prepare.d.ts +12 -2
  56. package/dist/wirings/agent/agent-prepare.js +38 -14
  57. package/dist/wirings/agent/agent-rpc.js +2 -1
  58. package/dist/wirings/agent/agent-runner.js +5 -6
  59. package/dist/wirings/agent/agent-stream.js +6 -6
  60. package/dist/wirings/agent/voice-input.d.ts +1 -1
  61. package/dist/wirings/agent/voice-output.d.ts +1 -1
  62. package/dist/wirings/agent-scorer/agent-scorer-live.d.ts +4 -2
  63. package/dist/wirings/agent-scorer/agent-scorer-live.js +2 -2
  64. package/dist/wirings/channel/channel-common.d.ts +4 -1
  65. package/dist/wirings/channel/channel-common.js +3 -1
  66. package/dist/wirings/channel/channel-handler.js +2 -0
  67. package/dist/wirings/channel/channel-host-rpc.d.ts +1 -1
  68. package/dist/wirings/channel/channel-host-rpc.js +2 -2
  69. package/dist/wirings/channel/channel-rpc-responder.d.ts +7 -1
  70. package/dist/wirings/channel/channel-rpc-responder.js +2 -2
  71. package/dist/wirings/channel/channel-rpc-service.d.ts +1 -1
  72. package/dist/wirings/channel/channel-rpc-service.js +2 -2
  73. package/dist/wirings/channel/channel-rpc.types.d.ts +5 -2
  74. package/dist/wirings/channel/channel-rpc.types.js +1 -1
  75. package/dist/wirings/channel/channel-store.d.ts +4 -2
  76. package/dist/wirings/channel/channel-store.js +2 -2
  77. package/dist/wirings/channel/channel.types.d.ts +3 -0
  78. package/dist/wirings/channel/local/local-channel-runner.js +16 -5
  79. package/dist/wirings/channel/pikku-abstract-channel-handler.d.ts +2 -0
  80. package/dist/wirings/channel/pikku-abstract-channel-handler.js +3 -1
  81. package/dist/wirings/channel/serverless/serverless-channel-runner.js +27 -4
  82. package/dist/wirings/gateway/gateway-runner.js +3 -1
  83. package/dist/wirings/http/http-runner.d.ts +4 -4
  84. package/dist/wirings/http/http-runner.js +14 -18
  85. package/dist/wirings/http/http.types.d.ts +3 -3
  86. package/dist/wirings/mcp/mcp-runner.js +15 -5
  87. package/dist/wirings/queue/in-memory-queue-service.d.ts +1 -1
  88. package/dist/wirings/queue/in-memory-queue-service.js +8 -2
  89. package/dist/wirings/queue/index.d.ts +1 -0
  90. package/dist/wirings/queue/index.js +1 -0
  91. package/dist/wirings/queue/queue-runner.d.ts +3 -4
  92. package/dist/wirings/queue/queue-runner.js +8 -7
  93. package/dist/wirings/queue/queue-trace.d.ts +18 -0
  94. package/dist/wirings/queue/queue-trace.js +42 -0
  95. package/dist/wirings/queue/queue.types.d.ts +7 -0
  96. package/dist/wirings/queue/remote-queue-job.d.ts +1 -1
  97. package/dist/wirings/queue/remote-queue-job.js +5 -3
  98. package/dist/wirings/rpc/rpc-runner.d.ts +7 -1
  99. package/dist/wirings/rpc/rpc-runner.js +43 -21
  100. package/dist/wirings/rpc/rpc-types.d.ts +2 -0
  101. package/dist/wirings/scheduler/remote-scheduled-job.d.ts +1 -1
  102. package/dist/wirings/scheduler/remote-scheduled-job.js +2 -2
  103. package/dist/wirings/scheduler/scheduler-runner.d.ts +4 -4
  104. package/dist/wirings/scheduler/scheduler-runner.js +7 -6
  105. package/dist/wirings/trigger/pikku-trigger-service.js +7 -4
  106. package/dist/wirings/trigger/webhook-source-runner.d.ts +7 -1
  107. package/dist/wirings/trigger/webhook-source-runner.js +11 -3
  108. package/dist/wirings/workflow/graph/graph-runner.d.ts +1 -1
  109. package/dist/wirings/workflow/graph/graph-runner.js +49 -30
  110. package/dist/wirings/workflow/index.d.ts +3 -1
  111. package/dist/wirings/workflow/index.js +1 -0
  112. package/dist/wirings/workflow/pikku-scenario-service.js +2 -0
  113. package/dist/wirings/workflow/pikku-workflow-service.d.ts +37 -40
  114. package/dist/wirings/workflow/pikku-workflow-service.js +122 -133
  115. package/dist/wirings/workflow/workflow-child-step.d.ts +2 -2
  116. package/dist/wirings/workflow/workflow-child-step.js +11 -4
  117. package/dist/wirings/workflow/workflow-compensation.d.ts +6 -0
  118. package/dist/wirings/workflow/workflow-compensation.js +15 -1
  119. package/dist/wirings/workflow/workflow-constants.d.ts +13 -0
  120. package/dist/wirings/workflow/workflow-constants.js +13 -0
  121. package/dist/wirings/workflow/workflow-dsl-pass.d.ts +2 -0
  122. package/dist/wirings/workflow/workflow-dsl-pass.js +27 -11
  123. package/dist/wirings/workflow/workflow-recovery.d.ts +131 -3
  124. package/dist/wirings/workflow/workflow-recovery.js +233 -7
  125. package/dist/wirings/workflow/workflow-run-engine.types.d.ts +1 -0
  126. package/dist/wirings/workflow/workflow-run-mirror.d.ts +4 -0
  127. package/dist/wirings/workflow/workflow-run-mirror.js +16 -0
  128. package/dist/wirings/workflow/workflow-run-status.d.ts +2 -0
  129. package/dist/wirings/workflow/workflow-run-status.js +13 -0
  130. package/dist/wirings/workflow/workflow-run-trace.d.ts +22 -0
  131. package/dist/wirings/workflow/workflow-run-trace.js +24 -0
  132. package/dist/wirings/workflow/workflow-step-claim.d.ts +18 -0
  133. package/dist/wirings/workflow/workflow-step-claim.js +47 -0
  134. package/dist/wirings/workflow/workflow-step-retry.d.ts +6 -2
  135. package/dist/wirings/workflow/workflow-step-retry.js +8 -3
  136. package/dist/wirings/workflow/workflow-wire.d.ts +12 -0
  137. package/dist/wirings/workflow/workflow-wire.js +33 -0
  138. package/dist/wirings/workflow/workflow.types.d.ts +16 -0
  139. package/package.json +2 -1
@@ -0,0 +1,119 @@
1
+ import { type TraceContext } from '../../trace.js';
2
+ import { QueuedWorkflowHarness } from '../service-tests/queued-workflow-harness.js';
3
+ import type { Hop, Inbound, Outcome, Start, Timing } from './dimensions.js';
4
+ import { type EncodedJob } from './transports.js';
5
+ import type { Adapter } from './dimensions.js';
6
+ /** Runtime-specific paths are not here: Workers and Lambda stay mocked in their own packages. */
7
+ export type ChainCombo = {
8
+ start: Start;
9
+ hop: Hop;
10
+ outcome: Outcome;
11
+ inbound?: Inbound;
12
+ timing?: Timing;
13
+ /** Chains to run at once, when two is not enough. */
14
+ instances?: number;
15
+ adapter?: Adapter;
16
+ workflow?: string;
17
+ step?: string;
18
+ };
19
+ export type LogEntry = {
20
+ level: 'info' | 'warn' | 'error' | 'debug';
21
+ /** The trace the logger was scoped to, if it was. */
22
+ scope?: string;
23
+ message: unknown;
24
+ };
25
+ /** What one started chain saw. A combo runs one, or two when timing overlaps them. */
26
+ export type Instance = {
27
+ index: number;
28
+ sent?: string;
29
+ /** The caller itself was told of a failure, not only a job behind it. */
30
+ callerRefused?: boolean;
31
+ /** The caller's own span, for a start that is called rather than delivered. */
32
+ caller?: TraceContext;
33
+ /** Spans between an entry and a target, such as a scheduler's worker. */
34
+ relays: TraceContext[];
35
+ /** The wire trace at every run of the next hop, in order. */
36
+ targets: TraceContext[];
37
+ /** The `traceparent` the hop put on the wire. */
38
+ outgoing: string[];
39
+ errorId?: string;
40
+ /** Every span the entry ran as: one per delivery of a job. */
41
+ entries: TraceContext[];
42
+ /** `errorId` from the far side of a mesh hop. */
43
+ calleeErrorId?: string;
44
+ failure?: unknown;
45
+ entryFinishedAt?: number;
46
+ targetStartedAt: number[];
47
+ runId?: string;
48
+ job?: EncodedJob;
49
+ };
50
+ /** Starts whose function runs before a failure can be told from the wire alone. */
51
+ export declare const inboundContinues: (start: Start, inbound: Inbound) => boolean;
52
+ /**
53
+ * Runs a chain — a start, one hop, an outcome — through the real runners, with
54
+ * brokers and the network replaced by in-process stand-ins that keep their wire
55
+ * format. Nothing here decides a trace: every id comes from the code under test.
56
+ */
57
+ export declare class TraceChain {
58
+ readonly combo: ChainCombo;
59
+ readonly logs: LogEntry[];
60
+ readonly h: QueuedWorkflowHarness;
61
+ readonly instances: Instance[];
62
+ private pending;
63
+ private scheduled;
64
+ /** Sleep wake-ups armed through the scheduler. */
65
+ readonly sleeps: Array<{
66
+ data: {
67
+ runId: string;
68
+ stepId: string;
69
+ };
70
+ traceparent?: string;
71
+ }>;
72
+ private settlers;
73
+ private readonly transport;
74
+ private readonly fetchBefore;
75
+ private jobIds;
76
+ readonly timing: Timing;
77
+ readonly inbound: Inbound;
78
+ private readonly outcome;
79
+ constructor(combo: ChainCombo);
80
+ private inboundFor;
81
+ private get usesFetch();
82
+ private logger;
83
+ private installServices;
84
+ private callMesh;
85
+ private installFetch;
86
+ /** Restores what the constructor replaced. Call in a `finally`. */
87
+ dispose(): void;
88
+ private wire;
89
+ /**
90
+ * Where the outcome lands: on the entry when the next hop runs nothing of
91
+ * ours, or when it is about the job the chain started as. Otherwise on the
92
+ * next function.
93
+ */
94
+ private get entryFails();
95
+ /** An HTTP route refusing a forged mesh token, before any function runs. */
96
+ get meshGuardsEntry(): boolean;
97
+ private get isSchemaOutcome();
98
+ private finishEntry;
99
+ private register;
100
+ private failTarget;
101
+ private wireStart;
102
+ private gatewayConfig;
103
+ private wireHop;
104
+ private hop;
105
+ private get jobOptions();
106
+ /** Runs the chain from its start, then every job and timer it left behind. */
107
+ run(): Promise<Instance[]>;
108
+ private settle;
109
+ private startInstance;
110
+ private drive;
111
+ private get startJobOptions();
112
+ private get singletons();
113
+ /** Delivers jobs and scheduled calls the way the adapter would. */
114
+ private deliver;
115
+ private deliverJob;
116
+ private deliveredOnce;
117
+ /** What a scheduler's worker does with a one-off `scheduleRPC`. */
118
+ private fire;
119
+ }