@groundnuty/macf-channel-server 0.2.21 → 0.2.23
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/notify-peer.d.ts +3 -1
- package/dist/notify-peer.d.ts.map +1 -1
- package/dist/notify-peer.js +28 -4
- package/dist/notify-peer.js.map +1 -1
- package/dist/tracing.d.ts +25 -0
- package/dist/tracing.d.ts.map +1 -1
- package/dist/tracing.js +39 -0
- package/dist/tracing.js.map +1 -1
- package/package.json +2 -2
package/dist/notify-peer.d.ts
CHANGED
|
@@ -48,7 +48,9 @@ export interface NotifyPeerResult {
|
|
|
48
48
|
* which cut off mid-receiver-wake; comfortable margin even after
|
|
49
49
|
* Finding 2's Option (d) makes /notify return ~5ms for peer_notification).
|
|
50
50
|
*
|
|
51
|
-
* macf#267 Finding 3: wraps in OTel CLIENT span (
|
|
51
|
+
* macf#267 Finding 3: wraps in OTel CLIENT span (post-macf#369:
|
|
52
|
+
* `invoke_agent {target}` per OTel GenAI Agent Spans semconv; was
|
|
53
|
+
* `macf.tool.notify_peer` pre-#369)
|
|
52
54
|
* with attributes (target, event, peers_attempted, peers_delivered) so
|
|
53
55
|
* sender-side latency + outcome are visible in Phase D / Claim 1b traces.
|
|
54
56
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify-peer.d.ts","sourceRoot":"","sources":["../src/notify-peer.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,qBAAqB;;;;;;;;;;CASxB,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;CASzB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAmHD
|
|
1
|
+
{"version":3,"file":"notify-peer.d.ts","sourceRoot":"","sources":["../src/notify-peer.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,qBAAqB;;;;;;;;;;CASxB,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;CASzB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAmHD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAyG3B"}
|
package/dist/notify-peer.js
CHANGED
|
@@ -34,7 +34,7 @@ import { z } from 'zod';
|
|
|
34
34
|
// the per-call CLIENT span. See @opentelemetry/api 1.x propagation
|
|
35
35
|
// API (canonical, verified at impl time).
|
|
36
36
|
import { context, propagation, SpanKind, SpanStatusCode, trace } from '@opentelemetry/api';
|
|
37
|
-
import {
|
|
37
|
+
import { buildInvokeAgentSpanName, Attr, GenAiAttr } from './tracing.js';
|
|
38
38
|
import { getNotifyPeerCounter, MetricAttr } from './metrics.js';
|
|
39
39
|
export const NotifyPeerInputSchema = {
|
|
40
40
|
to: z.string().optional()
|
|
@@ -165,7 +165,9 @@ function postToPeer(deps, peer, payload, timeoutMs) {
|
|
|
165
165
|
* which cut off mid-receiver-wake; comfortable margin even after
|
|
166
166
|
* Finding 2's Option (d) makes /notify return ~5ms for peer_notification).
|
|
167
167
|
*
|
|
168
|
-
* macf#267 Finding 3: wraps in OTel CLIENT span (
|
|
168
|
+
* macf#267 Finding 3: wraps in OTel CLIENT span (post-macf#369:
|
|
169
|
+
* `invoke_agent {target}` per OTel GenAI Agent Spans semconv; was
|
|
170
|
+
* `macf.tool.notify_peer` pre-#369)
|
|
169
171
|
* with attributes (target, event, peers_attempted, peers_delivered) so
|
|
170
172
|
* sender-side latency + outcome are visible in Phase D / Claim 1b traces.
|
|
171
173
|
*
|
|
@@ -175,11 +177,33 @@ function postToPeer(deps, peer, payload, timeoutMs) {
|
|
|
175
177
|
*/
|
|
176
178
|
export async function notifyPeer(deps, input) {
|
|
177
179
|
const tracer = trace.getTracer('macf');
|
|
178
|
-
|
|
180
|
+
// macf#369 (A2A Phase 0): outbound CLIENT-kind span follows OTel
|
|
181
|
+
// GenAI Agent Spans semconv for `invoke_agent` operations. Span name
|
|
182
|
+
// is dynamic per target peer (`invoke_agent <target>` for single-peer
|
|
183
|
+
// mode; bare `invoke_agent` for broadcast per spec fallback). The
|
|
184
|
+
// per-span `gen_ai.agent.name` attribute carries the TARGET peer
|
|
185
|
+
// (distinct from the per-resource `gen_ai.agent.name` set by
|
|
186
|
+
// env.telemetry — which is the EMITTING agent). TraceQL queries
|
|
187
|
+
// disambiguate via `resource.` vs `span.` prefix (devops-agent
|
|
188
|
+
// 2026-05-18 confirmation on #369; observability-snapshot.sh
|
|
189
|
+
// queries get dual-scope examples post-merge).
|
|
190
|
+
//
|
|
191
|
+
// Receiver-side incoming-span operation name (peer_notify) is set
|
|
192
|
+
// independently in https.ts onNotify via operationNameForNotifyType()
|
|
193
|
+
// — sender-side and receiver-side spans carry different GenAI
|
|
194
|
+
// operation semantics and that's correct under the spec.
|
|
195
|
+
return tracer.startActiveSpan(buildInvokeAgentSpanName(input.to), {
|
|
179
196
|
kind: SpanKind.CLIENT,
|
|
180
197
|
attributes: {
|
|
181
198
|
[GenAiAttr.System]: 'macf',
|
|
182
|
-
[GenAiAttr.OperationName]: '
|
|
199
|
+
[GenAiAttr.OperationName]: 'invoke_agent',
|
|
200
|
+
// Per-span gen_ai.agent.name = the TARGET peer being invoked.
|
|
201
|
+
// Omitted entirely on broadcast (no single target). See OTel
|
|
202
|
+
// GenAI Agent Spans spec § "Span name" + § "Recommended
|
|
203
|
+
// attributes" (conditionally required).
|
|
204
|
+
...(input.to !== undefined && input.to.length > 0
|
|
205
|
+
? { [GenAiAttr.AgentName]: input.to }
|
|
206
|
+
: {}),
|
|
183
207
|
[Attr.NotifyType]: 'peer_notification',
|
|
184
208
|
[Attr.NotifyEvent]: input.event,
|
|
185
209
|
[Attr.NotifyTarget]: input.to ?? 'broadcast',
|
package/dist/notify-peer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify-peer.js","sourceRoot":"","sources":["../src/notify-peer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAGrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,iEAAiE;AACjE,qEAAqE;AACrE,qEAAqE;AACrE,mEAAmE;AACnE,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"notify-peer.js","sourceRoot":"","sources":["../src/notify-peer.ts"],"names":[],"mappings":"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"}
|
package/dist/tracing.d.ts
CHANGED
|
@@ -15,6 +15,22 @@ export declare const SpanNames: {
|
|
|
15
15
|
readonly ToolNotifyPeer: "macf.tool.notify_peer";
|
|
16
16
|
readonly ToolCheckpointToMemory: "macf.tool.checkpoint_to_memory";
|
|
17
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* Build the span name for an outbound `invoke_agent` operation per OTel
|
|
20
|
+
* GenAI Agent Spans semconv (CLIENT-kind variant).
|
|
21
|
+
*
|
|
22
|
+
* Spec: "Span name SHOULD be `invoke_agent {gen_ai.agent.name}` if
|
|
23
|
+
* available, else `invoke_agent`."
|
|
24
|
+
* (https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-agent-spans/)
|
|
25
|
+
*
|
|
26
|
+
* The `{gen_ai.agent.name}` placeholder is the TARGET agent (the one
|
|
27
|
+
* being invoked) — not the emitting agent. For MACF's `notify_peer`,
|
|
28
|
+
* single-peer mode passes `input.to`; broadcast mode (no target peer)
|
|
29
|
+
* falls back to the bare `invoke_agent` form.
|
|
30
|
+
*
|
|
31
|
+
* macf#369 — A2A Phase 0 (OTel GenAI semconv alignment).
|
|
32
|
+
*/
|
|
33
|
+
export declare function buildInvokeAgentSpanName(target?: string): string;
|
|
18
34
|
/** MACF-specific attribute keys (not covered by OTEL semconv). */
|
|
19
35
|
export declare const Attr: {
|
|
20
36
|
readonly NotifyType: "macf.notify.type";
|
|
@@ -42,6 +58,15 @@ export declare const GenAiAttr: {
|
|
|
42
58
|
* Map NotifyPayload.type to the experimental GenAI `operation.name`
|
|
43
59
|
* vocabulary. If the type isn't one we've classified, returns
|
|
44
60
|
* `'notify'` as a catch-all so the span still has a reasonable value.
|
|
61
|
+
*
|
|
62
|
+
* **Scope (post-macf#369)**: this mapping is for the RECEIVER-side
|
|
63
|
+
* incoming-span operation only (SERVER-kind `NotifyReceived` span in
|
|
64
|
+
* https.ts onNotify). The SENDER-side outbound `invoke_agent` span
|
|
65
|
+
* (CLIENT-kind, notify-peer.ts) hard-codes `operation.name='invoke_agent'`
|
|
66
|
+
* per OTel GenAI Agent Spans semconv — sender and receiver carry
|
|
67
|
+
* different GenAI operation semantics, and that's correct under the
|
|
68
|
+
* spec (the CLIENT span IS the invoke; the SERVER span is the
|
|
69
|
+
* receive-and-process).
|
|
45
70
|
*/
|
|
46
71
|
export declare function operationNameForNotifyType(type: NotifyPayload['type']): string;
|
|
47
72
|
//# sourceMappingURL=tracing.d.ts.map
|
package/dist/tracing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../src/tracing.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,gEAAgE;AAChE,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,uDAAuD;AACvD,eAAO,MAAM,SAAS;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../src/tracing.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,gEAAgE;AAChE,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,uDAAuD;AACvD,eAAO,MAAM,SAAS;;;;;;;;;;;CA4BZ,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED,kEAAkE;AAClE,eAAO,MAAM,IAAI;;;;;;;;;;;;;;CAqBP,CAAC;AAEX,mDAAmD;AACnD,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CA0B9E"}
|
package/dist/tracing.js
CHANGED
|
@@ -37,12 +37,42 @@ export const SpanNames = {
|
|
|
37
37
|
// visibility for Phase D / Claim 1b cell-effect measurement +
|
|
38
38
|
// parent-child relationship to receiver's NotifyReceived span via
|
|
39
39
|
// W3C traceparent propagation.
|
|
40
|
+
//
|
|
41
|
+
// **DEPRECATED literal as of macf#369 (A2A Phase 0)**: the sender-
|
|
42
|
+
// side outbound span has been renamed to `invoke_agent {gen_ai.agent.name}`
|
|
43
|
+
// per OTel GenAI Agent Spans semconv (CLIENT-kind variant; see
|
|
44
|
+
// https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-agent-spans/).
|
|
45
|
+
// The legacy literal `macf.tool.notify_peer` is kept here ONLY for
|
|
46
|
+
// grep-traceability + as a Tempo dashboard reference during the
|
|
47
|
+
// transition; it is NOT emitted as a span name anymore. New emission
|
|
48
|
+
// sites should use `buildInvokeAgentSpanName(target)` below.
|
|
40
49
|
ToolNotifyPeer: 'macf.tool.notify_peer',
|
|
41
50
|
// macf#271: PreCompact-driven checkpoint_to_memory span. INTERNAL-kind
|
|
42
51
|
// (purely local filesystem write). Attributes: trigger (manual|auto),
|
|
43
52
|
// written (bool), deduplicated (bool). DR-023 §UC-3 telemetry pattern.
|
|
44
53
|
ToolCheckpointToMemory: 'macf.tool.checkpoint_to_memory',
|
|
45
54
|
};
|
|
55
|
+
/**
|
|
56
|
+
* Build the span name for an outbound `invoke_agent` operation per OTel
|
|
57
|
+
* GenAI Agent Spans semconv (CLIENT-kind variant).
|
|
58
|
+
*
|
|
59
|
+
* Spec: "Span name SHOULD be `invoke_agent {gen_ai.agent.name}` if
|
|
60
|
+
* available, else `invoke_agent`."
|
|
61
|
+
* (https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-agent-spans/)
|
|
62
|
+
*
|
|
63
|
+
* The `{gen_ai.agent.name}` placeholder is the TARGET agent (the one
|
|
64
|
+
* being invoked) — not the emitting agent. For MACF's `notify_peer`,
|
|
65
|
+
* single-peer mode passes `input.to`; broadcast mode (no target peer)
|
|
66
|
+
* falls back to the bare `invoke_agent` form.
|
|
67
|
+
*
|
|
68
|
+
* macf#369 — A2A Phase 0 (OTel GenAI semconv alignment).
|
|
69
|
+
*/
|
|
70
|
+
export function buildInvokeAgentSpanName(target) {
|
|
71
|
+
if (target !== undefined && target.length > 0) {
|
|
72
|
+
return `invoke_agent ${target}`;
|
|
73
|
+
}
|
|
74
|
+
return 'invoke_agent';
|
|
75
|
+
}
|
|
46
76
|
/** MACF-specific attribute keys (not covered by OTEL semconv). */
|
|
47
77
|
export const Attr = {
|
|
48
78
|
NotifyType: 'macf.notify.type',
|
|
@@ -77,6 +107,15 @@ export const GenAiAttr = {
|
|
|
77
107
|
* Map NotifyPayload.type to the experimental GenAI `operation.name`
|
|
78
108
|
* vocabulary. If the type isn't one we've classified, returns
|
|
79
109
|
* `'notify'` as a catch-all so the span still has a reasonable value.
|
|
110
|
+
*
|
|
111
|
+
* **Scope (post-macf#369)**: this mapping is for the RECEIVER-side
|
|
112
|
+
* incoming-span operation only (SERVER-kind `NotifyReceived` span in
|
|
113
|
+
* https.ts onNotify). The SENDER-side outbound `invoke_agent` span
|
|
114
|
+
* (CLIENT-kind, notify-peer.ts) hard-codes `operation.name='invoke_agent'`
|
|
115
|
+
* per OTel GenAI Agent Spans semconv — sender and receiver carry
|
|
116
|
+
* different GenAI operation semantics, and that's correct under the
|
|
117
|
+
* spec (the CLIENT span IS the invoke; the SERVER span is the
|
|
118
|
+
* receive-and-process).
|
|
80
119
|
*/
|
|
81
120
|
export function operationNameForNotifyType(type) {
|
|
82
121
|
switch (type) {
|
package/dist/tracing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../src/tracing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3C,gEAAgE;AAChE,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,cAAc,EAAE,6BAA6B;IAC7C,OAAO,EAAE,sBAAsB;IAC/B,eAAe,EAAE,sBAAsB;IACvC,qBAAqB,EAAE,6BAA6B;IACpD,OAAO,EAAE,eAAe;IACxB,eAAe,EAAE,wBAAwB;IACzC,oBAAoB,EAAE,6BAA6B;IACnD,SAAS,EAAE,iBAAiB;IAC5B,kEAAkE;IAClE,+DAA+D;IAC/D,8DAA8D;IAC9D,kEAAkE;IAClE,+BAA+B;IAC/B,cAAc,EAAE,uBAAuB;IACvC,uEAAuE;IACvE,sEAAsE;IACtE,uEAAuE;IACvE,sBAAsB,EAAE,gCAAgC;CAChD,CAAC;AAEX,kEAAkE;AAClE,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,UAAU,EAAE,kBAAkB;IAC9B,WAAW,EAAE,mBAAmB;IAChC,SAAS,EAAE,iBAAiB;IAC5B,QAAQ,EAAE,gBAAgB;IAC1B,UAAU,EAAE,kBAAkB;IAC9B,WAAW,EAAE,mBAAmB;IAChC,sEAAsE;IACtE,wEAAwE;IACxE,sEAAsE;IACtE,gCAAgC;IAChC,YAAY,EAAE,oBAAoB;IAClC,WAAW,EAAE,mBAAmB;IAChC,cAAc,EAAE,6BAA6B;IAC7C,cAAc,EAAE,6BAA6B;IAC7C,qEAAqE;IACrE,mEAAmE;IACnE,6BAA6B;IAC7B,iBAAiB,EAAE,yBAAyB;IAC5C,iBAAiB,EAAE,yBAAyB;IAC5C,sBAAsB,EAAE,8BAA8B;CAC9C,CAAC;AAEX,mDAAmD;AACnD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,mBAAmB;IAC9B,OAAO,EAAE,iBAAiB;IAC1B,aAAa,EAAE,uBAAuB;IACtC,MAAM,EAAE,eAAe;CACf,CAAC;AAEX
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../src/tracing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3C,gEAAgE;AAChE,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,cAAc,EAAE,6BAA6B;IAC7C,OAAO,EAAE,sBAAsB;IAC/B,eAAe,EAAE,sBAAsB;IACvC,qBAAqB,EAAE,6BAA6B;IACpD,OAAO,EAAE,eAAe;IACxB,eAAe,EAAE,wBAAwB;IACzC,oBAAoB,EAAE,6BAA6B;IACnD,SAAS,EAAE,iBAAiB;IAC5B,kEAAkE;IAClE,+DAA+D;IAC/D,8DAA8D;IAC9D,kEAAkE;IAClE,+BAA+B;IAC/B,EAAE;IACF,mEAAmE;IACnE,4EAA4E;IAC5E,+DAA+D;IAC/D,2EAA2E;IAC3E,mEAAmE;IACnE,gEAAgE;IAChE,qEAAqE;IACrE,6DAA6D;IAC7D,cAAc,EAAE,uBAAuB;IACvC,uEAAuE;IACvE,sEAAsE;IACtE,uEAAuE;IACvE,sBAAsB,EAAE,gCAAgC;CAChD,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAe;IACtD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,gBAAgB,MAAM,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,UAAU,EAAE,kBAAkB;IAC9B,WAAW,EAAE,mBAAmB;IAChC,SAAS,EAAE,iBAAiB;IAC5B,QAAQ,EAAE,gBAAgB;IAC1B,UAAU,EAAE,kBAAkB;IAC9B,WAAW,EAAE,mBAAmB;IAChC,sEAAsE;IACtE,wEAAwE;IACxE,sEAAsE;IACtE,gCAAgC;IAChC,YAAY,EAAE,oBAAoB;IAClC,WAAW,EAAE,mBAAmB;IAChC,cAAc,EAAE,6BAA6B;IAC7C,cAAc,EAAE,6BAA6B;IAC7C,qEAAqE;IACrE,mEAAmE;IACnE,6BAA6B;IAC7B,iBAAiB,EAAE,yBAAyB;IAC5C,iBAAiB,EAAE,yBAAyB;IAC5C,sBAAsB,EAAE,8BAA8B;CAC9C,CAAC;AAEX,mDAAmD;AACnD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,mBAAmB;IAC9B,OAAO,EAAE,iBAAiB;IAC1B,aAAa,EAAE,uBAAuB;IACtC,MAAM,EAAE,eAAe;CACf,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAA2B;IACpE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,cAAc,CAAC;QACxB,KAAK,cAAc;YACjB,OAAO,SAAS,CAAC;QACnB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC;QAClB,kEAAkE;QAClE,oEAAoE;QACpE,oEAAoE;QACpE,sEAAsE;QACtE,8DAA8D;QAC9D,KAAK,mBAAmB;YACtB,OAAO,aAAa,CAAC;QACvB,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,gEAAgE;QAChE,mEAAmE;QACnE,kEAAkE;QAClE,+CAA+C;QAC/C,KAAK,iBAAiB;YACpB,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@groundnuty/macf-channel-server",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.23",
|
|
4
4
|
"description": "MCP channel server for the Multi-Agent Coordination Framework. HTTPS + mTLS endpoint agents connect to for inter-agent messaging (notify), CI-completion routing, and /sign certificate issuance. Invoked by Claude Code's plugin via `npx -y @groundnuty/macf-channel-server` per DR-022.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"test:e2e": "vitest run --config vitest.e2e.config.ts"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@groundnuty/macf-core": "0.2.
|
|
35
|
+
"@groundnuty/macf-core": "0.2.23",
|
|
36
36
|
"@modelcontextprotocol/sdk": "~1.29.0",
|
|
37
37
|
"@opentelemetry/api": "1.9.1",
|
|
38
38
|
"@opentelemetry/exporter-metrics-otlp-proto": "0.215.0",
|