@stigmer/mcp-server 3.5.2 → 3.6.0

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/config.d.ts CHANGED
@@ -9,8 +9,12 @@ export type Transport = "stdio" | "http" | "both";
9
9
  * argument surface. This is what the runner-synthesized datastore
10
10
  * attachment spawns over stdio (T05 R1); over HTTP the same roster is
11
11
  * served on the /records route regardless of this setting.
12
+ * - "channels": only send_channel_message (proactive-messaging DD-006
13
+ * D8) with the agent-facing argument surface. This is what the
14
+ * runner-synthesized channel attachment spawns over stdio; over HTTP
15
+ * the same roster is served on the /channels route.
12
16
  */
13
- export type Roster = "full" | "records";
17
+ export type Roster = "full" | "records" | "channels";
14
18
  /**
15
19
  * OAuth 2.0 Protected Resource Metadata (RFC 9728) discovery settings.
16
20
  *
package/config.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,OAAO,EAAO,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjE,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,gDAAgD;AAChD,MAAM,WAAW,MAAM;IACrB,mEAAmE;IACnE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAOD,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAkB9E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAkDhD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,OAAO,EAAO,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjE,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,gDAAgD;AAChD,MAAM,WAAW,MAAM;IACrB,mEAAmE;IACnE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAOD,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAkB9E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAoDhD"}
package/config.js CHANGED
@@ -7,7 +7,7 @@
7
7
  // reproduces Go's hard-errors AND warnings, not just the defaults.
8
8
  import { log } from "./logger.js";
9
9
  const VALID_TRANSPORTS = ["stdio", "http", "both"];
10
- const VALID_ROSTERS = ["full", "records"];
10
+ const VALID_ROSTERS = ["full", "records", "channels"];
11
11
  const VALID_LOG_FORMATS = ["text", "json"];
12
12
  const VALID_LOG_LEVELS = ["debug", "info", "warn", "error"];
13
13
  /** Reads configuration from the process environment, applying defaults. */
@@ -41,7 +41,7 @@ export function validateConfig(cfg) {
41
41
  throw new Error(`invalid STIGMER_MCP_TRANSPORT "${cfg.transport}": must be stdio, http, or both`);
42
42
  }
43
43
  if (!VALID_ROSTERS.includes(cfg.roster)) {
44
- throw new Error(`invalid STIGMER_MCP_ROSTER "${cfg.roster}": must be full or records`);
44
+ throw new Error(`invalid STIGMER_MCP_ROSTER "${cfg.roster}": must be full, records, or channels`);
45
45
  }
46
46
  if (cfg.stigmerServerAddress === "") {
47
47
  throw new Error("STIGMER_SERVER_ADDRESS must not be empty");
package/config.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAC/E,2EAA2E;AAC3E,mEAAmE;AAEnE,OAAO,EAAE,GAAG,EAAiC,MAAM,aAAa,CAAC;AAmDjE,MAAM,gBAAgB,GAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACtE,MAAM,aAAa,GAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7D,MAAM,iBAAiB,GAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9D,MAAM,gBAAgB,GAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/E,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACpE,OAAO;QACL,oBAAoB,EAAE,KAAK,CAAC,GAAG,EAAE,wBAAwB,EAAE,gBAAgB,CAAC;QAC5E,MAAM,EAAE,GAAG,CAAC,eAAe,IAAI,EAAE;QACjC,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAe;QAClF,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC,WAAW,EAAY;QACxE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,uBAAuB,EAAE,MAAM,CAAC;QACrD,2DAA2D;QAC3D,eAAe,EAAE,KAAK,CAAC,GAAG,EAAE,+BAA+B,EAAE,MAAM,CAAC,KAAK,MAAM;QAC/E,KAAK,EAAE;YACL,OAAO,EAAE,GAAG,CAAC,yBAAyB,KAAK,MAAM;YACjD,QAAQ,EAAE,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACvD,oBAAoB,EAAE,SAAS,CAAC,GAAG,CAAC,uCAAuC,CAAC;YAC5E,eAAe,EAAE,SAAS,CAAC,GAAG,CAAC,kCAAkC,CAAC;SACnE;QACD,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,CAAC,CAAC,WAAW,EAAe;QAClF,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC,WAAW,EAAc;KAChF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,kCAAkC,GAAG,CAAC,SAAS,iCAAiC,CACjF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,4BAA4B,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,GAAG,CAAC,oBAAoB,KAAK,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,IAAI,CACN,6EAA6E;YAC3E,8DAA8D,EAChE,EAAE,KAAK,EAAE,GAAG,CAAC,oBAAoB,EAAE,CACpC,CAAC;IACJ,CAAC;SAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,IAAI,CACN,kGAAkG,EAClG,EAAE,KAAK,EAAE,GAAG,CAAC,oBAAoB,EAAE,CACpC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,SAAS,yBAAyB,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,kCAAkC,GAAG,CAAC,QAAQ,wCAAwC,CACvF,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,8GAA8G,CAC/G,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,GAAsB,EAAE,GAAW,EAAE,QAAgB;IAClE,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,sEAAsE;AACtE,SAAS,SAAS,CAAC,GAAuB;IACxC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IACzC,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,SAAiB;IACxC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,KAAK,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /** The template arm as the model supplies it (mirrors TemplatePayload). */
2
+ export interface TemplateArg {
3
+ name: string;
4
+ language?: string;
5
+ parameters?: Record<string, string>;
6
+ header_image_link?: string;
7
+ }
8
+ export interface SendArgs {
9
+ recipient: string;
10
+ text?: string;
11
+ template?: TemplateArg;
12
+ channel?: string;
13
+ }
14
+ export declare function sendChannelMessage(serverAddress: string, token: string, args: SendArgs): Promise<string>;
15
+ //# sourceMappingURL=calls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../../src/domains/channels/calls.ts"],"names":[],"mappings":"AA2BA,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,MAAM,CAAC,CAYjB"}
@@ -0,0 +1,54 @@
1
+ // Channel-messaging RPC invocations for the send_channel_message tool —
2
+ // a 1:1 projection of ChannelMessageCommandController.sendMessage
3
+ // (proactive-messaging DD-006 D5: the tool layer adds no semantics;
4
+ // reach, recipient policy, caps, and the template pre-check all live in
5
+ // the cloud handler, and the OSS edition refuses with the documented
6
+ // FAILED_PRECONDITION).
7
+ //
8
+ // The records-domain calls.ts shape: build request, call, marshal. The
9
+ // typed outcome (accepted/queued/refused + detail) rides back VERBATIM
10
+ // as proto JSON — a refusal is an ANSWER the model adapts to (DD-002
11
+ // D4), never a tool error.
12
+ import { create } from "@bufbuild/protobuf";
13
+ import { ChannelMessageCommandController, } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/message_command_pb";
14
+ import { ChannelOutboundPayloadSchema, SendChannelMessageInputSchema, SendChannelMessageOutputSchema, TemplatePayloadSchema, TextPayloadSchema, } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/message_io_pb";
15
+ import { withClient } from "../client.js";
16
+ import { toProtoJson } from "../marshal.js";
17
+ export async function sendChannelMessage(serverAddress, token, args) {
18
+ const request = create(SendChannelMessageInputSchema, {
19
+ channel: args.channel ?? "",
20
+ // org is deliberately never sent: a session-bound caller's org is
21
+ // server-derived, and an explicit value is rejected (the records
22
+ // T05 R3 rule applied to messaging).
23
+ recipient: args.recipient,
24
+ payload: buildPayload(args),
25
+ });
26
+ return withClient(ChannelMessageCommandController, serverAddress, token, async (client, opts) => toProtoJson(SendChannelMessageOutputSchema, await client.sendMessage(request, opts)));
27
+ }
28
+ /**
29
+ * The payload oneof from the tool's mutually exclusive arguments. The
30
+ * tool handler enforces exactly-one before calling; the server's
31
+ * required-oneof validation is the backstop.
32
+ */
33
+ function buildPayload(args) {
34
+ if (args.template !== undefined) {
35
+ return create(ChannelOutboundPayloadSchema, {
36
+ kind: {
37
+ case: "template",
38
+ value: create(TemplatePayloadSchema, {
39
+ name: args.template.name,
40
+ language: args.template.language ?? "",
41
+ parameters: args.template.parameters ?? {},
42
+ headerImageLink: args.template.header_image_link ?? "",
43
+ }),
44
+ },
45
+ });
46
+ }
47
+ return create(ChannelOutboundPayloadSchema, {
48
+ kind: {
49
+ case: "text",
50
+ value: create(TextPayloadSchema, { body: args.text ?? "" }),
51
+ },
52
+ });
53
+ }
54
+ //# sourceMappingURL=calls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../src/domains/channels/calls.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,kEAAkE;AAClE,oEAAoE;AACpE,wEAAwE;AACxE,qEAAqE;AACrE,wBAAwB;AACxB,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,qEAAqE;AACrE,2BAA2B;AAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,+BAA+B,GAChC,MAAM,uEAAuE,CAAC;AAC/E,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,8BAA8B,EAC9B,qBAAqB,EACrB,iBAAiB,GAElB,MAAM,kEAAkE,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAiB5C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,aAAqB,EACrB,KAAa,EACb,IAAc;IAEd,MAAM,OAAO,GAAG,MAAM,CAAC,6BAA6B,EAAE;QACpD,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;QAC3B,kEAAkE;QAClE,iEAAiE;QACjE,qCAAqC;QACrC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC;KAC5B,CAAC,CAAC;IACH,OAAO,UAAU,CAAC,+BAA+B,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAC9F,WAAW,CAAC,8BAA8B,EAAE,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CACrF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAc;IAClC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,4BAA4B,EAAE;YAC1C,IAAI,EAAE;gBACJ,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,MAAM,CAAC,qBAAqB,EAAE;oBACnC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;oBACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE;oBACtC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE;oBAC1C,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,EAAE;iBACvD,CAAC;aACH;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,4BAA4B,EAAE;QAC1C,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;SAC5D;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { ConnectError } from "@connectrpc/connect";
2
+ import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
3
+ /** The structured error payload channel tools return for domain errors. */
4
+ export interface ChannelToolError {
5
+ /** The server's relayable message, byte-for-byte. */
6
+ error: string;
7
+ /** gRPC status name in SCREAMING_SNAKE (e.g. PERMISSION_DENIED). */
8
+ code: string;
9
+ /** ErrorInfo reason (e.g. WHATSAPP_MANAGEMENT_SCOPE_MISSING), when present. */
10
+ reason?: string;
11
+ }
12
+ /**
13
+ * Run a channel-tool body: a string payload becomes a text result; a
14
+ * domain error becomes an isError JSON result carrying the verbatim
15
+ * message + ErrorInfo reason; a transport error delegates to the shared
16
+ * classifier. The only try/catch in this domain.
17
+ */
18
+ export declare function channelResult(toolContext: string, produce: () => Promise<string>): Promise<CallToolResult>;
19
+ /** Project a domain ConnectError into the structured tool payload. */
20
+ export declare function domainError(ce: ConnectError): ChannelToolError;
21
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/domains/channels/errors.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAQ,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAmBzE,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC7B,OAAO,CAAC,cAAc,CAAC,CAazB;AAED,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,gBAAgB,CAa9D"}
@@ -0,0 +1,77 @@
1
+ // The channels-domain error mapper — the records-domain sibling
2
+ // (DD-004 S-7's recorded posture: siblings share the idiom, never an
3
+ // abstraction over it; each domain documents its own contract).
4
+ //
5
+ // Channel-messaging domain errors carry agent-relayable messages that
6
+ // are contract bytes (proactive-messaging DD-002 D4's error table):
7
+ // "this agent has no proactive-messaging channel it can use", "channel
8
+ // is required: this agent serves multiple proactive-enabled channels:
9
+ // …", the OSS "proactive channel messaging requires Stigmer Cloud".
10
+ // The shared ../rpcerr.ts would rewrite them into transport advice and
11
+ // discard google.rpc.ErrorInfo; here the domain codes pass the server's
12
+ // message through VERBATIM as isError JSON `{error, code, reason}` so
13
+ // the model can self-correct (name the channel on INVALID_ARGUMENT;
14
+ // stop and relay on PERMISSION_DENIED). Transport codes still delegate
15
+ // to the shared helper, whose advice is right for them.
16
+ //
17
+ // Typed send outcomes (accepted/queued/refused) never reach this file:
18
+ // they are successful responses by design (DD-002 D4 — policy refusals
19
+ // are answers, not errors).
20
+ import { Code, ConnectError } from "@connectrpc/connect";
21
+ import { ErrorInfoSchema } from "@stigmer/protos/google/rpc/error_details_pb";
22
+ import { rpcError } from "../rpcerr.js";
23
+ import { errorResult, textResult } from "../toolresult.js";
24
+ /**
25
+ * The gRPC codes whose messages are the channel-messaging domain
26
+ * contract: reach denials (PERMISSION_DENIED, one fail-closed text per
27
+ * failure class), contract misuse with corrective copy
28
+ * (INVALID_ARGUMENT — ambiguous channel, ambiguous template language),
29
+ * and actionable preconditions (FAILED_PRECONDITION — the OSS refusal,
30
+ * not-installed, registry misconfiguration with its ErrorInfo reason).
31
+ */
32
+ const DOMAIN_CODES = new Set([
33
+ Code.PermissionDenied,
34
+ Code.InvalidArgument,
35
+ Code.FailedPrecondition,
36
+ ]);
37
+ /**
38
+ * Run a channel-tool body: a string payload becomes a text result; a
39
+ * domain error becomes an isError JSON result carrying the verbatim
40
+ * message + ErrorInfo reason; a transport error delegates to the shared
41
+ * classifier. The only try/catch in this domain.
42
+ */
43
+ export async function channelResult(toolContext, produce) {
44
+ try {
45
+ return textResult(await produce());
46
+ }
47
+ catch (err) {
48
+ const ce = ConnectError.from(err);
49
+ if (DOMAIN_CODES.has(ce.code)) {
50
+ return {
51
+ content: [{ type: "text", text: JSON.stringify(domainError(ce)) }],
52
+ isError: true,
53
+ };
54
+ }
55
+ return errorResult(rpcError(ce, toolContext));
56
+ }
57
+ }
58
+ /** Project a domain ConnectError into the structured tool payload. */
59
+ export function domainError(ce) {
60
+ const payload = {
61
+ error: ce.rawMessage,
62
+ code: grpcStatusName(ce.code),
63
+ };
64
+ // The messaging RPCs attach google.rpc.ErrorInfo to operator-actionable
65
+ // preconditions (DD-005 D8); absence means the message alone carries
66
+ // the contract.
67
+ const details = ce.findDetails(ErrorInfoSchema);
68
+ if (details.length > 0 && details[0].reason !== "") {
69
+ payload.reason = details[0].reason;
70
+ }
71
+ return payload;
72
+ }
73
+ /** Connect's PascalCase code name → the gRPC SCREAMING_SNAKE status name. */
74
+ function grpcStatusName(code) {
75
+ return Code[code].replace(/([a-z0-9])([A-Z])/g, "$1_$2").toUpperCase();
76
+ }
77
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/domains/channels/errors.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,qEAAqE;AACrE,gEAAgE;AAChE,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,uEAAuE;AACvE,sEAAsE;AACtE,oEAAoE;AACpE,uEAAuE;AACvE,wEAAwE;AACxE,sEAAsE;AACtE,oEAAoE;AACpE,uEAAuE;AACvE,wDAAwD;AACxD,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,4BAA4B;AAE5B,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,YAAY,GAAsB,IAAI,GAAG,CAAC;IAC9C,IAAI,CAAC,gBAAgB;IACrB,IAAI,CAAC,eAAe;IACpB,IAAI,CAAC,kBAAkB;CACxB,CAAC,CAAC;AAYH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,OAA8B;IAE9B,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAClE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,WAAW,CAAC,EAAgB;IAC1C,MAAM,OAAO,GAAqB;QAChC,KAAK,EAAE,EAAE,CAAC,UAAU;QACpB,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC;KAC9B,CAAC;IACF,wEAAwE;IACxE,qEAAqE;IACrE,gBAAgB;IAChB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6EAA6E;AAC7E,SAAS,cAAc,CAAC,IAAU;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACzE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { type BackendTarget } from "../client.js";
3
+ /** Register the channel messaging tool; returns the tool names. */
4
+ export declare function registerChannelTools(server: McpServer, target: BackendTarget): string[];
5
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/domains/channels/tools.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AA6BhE,mEAAmE;AACnE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CA2DvF"}
@@ -0,0 +1,88 @@
1
+ // The send_channel_message tool — the ONE tool of the channels roster
2
+ // (proactive-messaging DD-002 D7, arguments amended by DD-006 D5 to
3
+ // mirror the ChannelOutboundPayload oneof: `text` | `template`, exactly
4
+ // one).
5
+ //
6
+ // Agent audience only, by construction: this roster is what the
7
+ // runner-synthesized channel attachment connects to, and a session-bound
8
+ // caller's org derives from its token (an explicit org is rejected —
9
+ // the records T05 R3 rule), so no `org` argument exists to invite
10
+ // rejected calls. A direct-audience variant on the full roster is
11
+ // deliberately NOT registered: operators send through the console, CLI,
12
+ // and SDK, which carry the org+channel addressing the direct reach path
13
+ // requires.
14
+ //
15
+ // The typed outcome is the tool's answer, verbatim proto JSON:
16
+ // `accepted` (delivered to the provider), `queued` (transient failure —
17
+ // the platform retries in the background; do NOT resend), `refused`
18
+ // (terminal; `detail` says why — adapt, never retry the same send).
19
+ import { z } from "zod";
20
+ import { resolveToken } from "../client.js";
21
+ import { sendChannelMessage } from "./calls.js";
22
+ import { channelResult } from "./errors.js";
23
+ import { errorResult } from "../toolresult.js";
24
+ const templateShape = z.object({
25
+ name: z.string().describe("Approved template name on the channel's provider registry."),
26
+ language: z
27
+ .string()
28
+ .optional()
29
+ .describe("Template language code (e.g. en, en_US). Omit when the template exists in exactly one language."),
30
+ parameters: z
31
+ .record(z.string())
32
+ .optional()
33
+ .describe('Placeholder values. Positional templates key by position ("1", "2", …); ' +
34
+ 'named templates key by parameter name ("member_name").'),
35
+ header_image_link: z
36
+ .string()
37
+ .optional()
38
+ .describe("Public HTTPS URL for the image header. Required exactly when the template " +
39
+ "declares an image header."),
40
+ });
41
+ /** Register the channel messaging tool; returns the tool names. */
42
+ export function registerChannelTools(server, target) {
43
+ server.registerTool("send_channel_message", {
44
+ description: "Send a business-initiated message to a recipient on this agent's messaging channel " +
45
+ "(e.g. WhatsApp). Exactly one of text | template. Outside a 24-hour customer-service " +
46
+ "window the provider only accepts a pre-approved template, so prefer a template from " +
47
+ "<available_channel_templates>. The result carries a typed outcome: accepted (sent), " +
48
+ "queued (the platform retries in the background — do not resend), or refused " +
49
+ "(terminal; detail says why — adapt, never retry the same send).",
50
+ inputSchema: {
51
+ recipient: z
52
+ .string()
53
+ .describe("Recipient's key on the channel's provider (WhatsApp: the wa_id / phone number)."),
54
+ text: z
55
+ .string()
56
+ .optional()
57
+ .describe("Plain text body. Only deliverable inside an open 24-hour customer-service window."),
58
+ template: templateShape
59
+ .optional()
60
+ .describe("Pre-approved template send — required outside a 24-hour window."),
61
+ channel: z
62
+ .string()
63
+ .optional()
64
+ .describe("Channel slug. Only needed when this agent serves more than one " +
65
+ "proactive-messaging channel (a refusal will list them)."),
66
+ },
67
+ }, (args, extra) => {
68
+ // Exactly-one, checked here with corrective copy the model can act
69
+ // on immediately; the server's required-oneof validation is the
70
+ // backstop (DD-006 D5).
71
+ const hasText = args.text !== undefined && args.text !== "";
72
+ const hasTemplate = args.template !== undefined;
73
+ if (hasText === hasTemplate) {
74
+ return Promise.resolve(errorResult(hasText
75
+ ? "supply exactly one of text | template, not both"
76
+ : "supply exactly one of text | template — text for an open 24-hour window, " +
77
+ "template otherwise"));
78
+ }
79
+ return channelResult(`message to "${args.recipient}"`, () => sendChannelMessage(target.serverAddress, resolveToken(extra, target.apiKey), {
80
+ recipient: args.recipient,
81
+ text: args.text,
82
+ template: args.template,
83
+ channel: args.channel,
84
+ }));
85
+ });
86
+ return ["send_channel_message"];
87
+ }
88
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/domains/channels/tools.ts"],"names":[],"mappings":"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"}
package/gen/mcpserver.js CHANGED
@@ -24,7 +24,7 @@ export const McpServerInputShape = {
24
24
  stdio: z.lazy(() => StdioServerConfigInputSchema).optional().describe("stdio-based server (subprocess with stdin/stdout communication). Most common type - used for Node.js, Python, and other CLI-based MCP servers."),
25
25
  http: z.lazy(() => HttpServerConfigInputSchema).optional().describe("HTTP-based server (HTTP + Server-Sent Events communication). Used for remote/managed MCP services accessible over the network."),
26
26
  default_enabled_tools: z.array(z.string()).optional().describe("Default tools to enable from this MCP server. Empty list means all tools are enabled by default. @internal Tool names must match exactly what the MCP server reports via tools/list. Only names from discovered_capabilities.tools are valid here. Do NOT include names from discovered_capabilities.resource_templates — resource templates are read-only data endpoints, not callable tools. Including a resource template name here causes a fatal runtime error."),
27
- env: z.record(z.lazy(() => EnvVarDeclarationInputSchema)).optional().describe("Environment variable declarations for this MCP server. Keys are variable names; values describe their metadata and optionality."),
27
+ env: z.record(z.lazy(() => EnvVarDeclarationInputSchema)).optional().describe("Environment variable declarations for this MCP server. Keys are variable names; values describe their metadata and optionality. @internal Reserved platform keys — declared here like any other variable, but their values are injected by the runner per resolution context and are authoritative over same-named user env entries: STIGMER_CALLER_IDENTITY_KIND — the verified caller's kind token ('whatsapp_phone', 'slack_user_id', 'stigmer_user', 'anonymous') STIGMER_CALLER_IDENTITY_VALUE — the identity value (wa_id, user id, email); empty for anonymous STIGMER_SESSION_ID — the session the identity was resolved for; empty outside a session Reserved keys MUST be declared 'optional: true': they have no value at execution-create time, and a required declaration fails the pipeline's env-completeness validation before the runner ever injects them. Discovery (the connect workflow) runs with no session and injects the anonymous sentinel — a server consuming these keys must answer tools/list for anonymous callers and gate tool CALLS instead. The injected header is runner-asserted, not signed: pair it with a shared secret and treat it as trustworthy only for servers you operate."),
28
28
  pinned_tool_approvals: z.array(z.lazy(() => ToolApprovalPolicyInputSchema)).optional().describe("Manual tool approval overrides set by the MCP server owner. @internal These take precedence over system-generated 'McpServerStatus.tool_approvals'. Never auto-modified — only changed by explicit user action (apply/update). Use cases: - Force approval for a tool the classifier marked as auto-approve - Exempt a safe tool the classifier flagged as needing approval - Establish organization-wide safety policies for dangerous tools Policy chain (lowest to highest priority): 1. McpServerStatus.tool_approvals - System-generated defaults 2. McpServerSpec.pinned_tool_approvals - Manual overrides (this field) 3. Agent.McpServerUsage.tool_approval_overrides - Per-agent customization 4. AgentExecution.auto_approve_all - Runtime bypass"),
29
29
  repository_url: z.string().optional().describe("URL of the upstream source repository for this MCP server. Shown in the marketplace so users can inspect the implementation for trust and transparency. Example: 'https://github.com/modelcontextprotocol/servers'"),
30
30
  github_stars: z.number().optional().describe("GitHub star count at the time of curation. Used as a popularity signal in marketplace display. 0 if unknown or non-GitHub repository."),
@@ -38,7 +38,7 @@ const StdioServerConfigInputSchema = z.object({
38
38
  });
39
39
  const HttpServerConfigInputSchema = z.object({
40
40
  url: z.string().describe("Base URL of the MCP server endpoint. Must be a valid HTTP or HTTPS URL. Examples: - 'http://localhost:3000/mcp' - 'https://mcp.example.com/v1' - 'https://api.company.com/mcp/github'"),
41
- headers: z.record(z.string()).optional().describe("HTTP headers to include with every request. Use for authentication, API versioning, or custom routing. Header values can reference environment variables using ${VAR_NAME} syntax. These placeholders are resolved at runtime from AgentInstance's environment. Examples: 'Authorization': 'Bearer ${API_TOKEN}' 'X-API-Version': '2024-01' 'X-Tenant-ID': '${TENANT_ID}'"),
41
+ headers: z.record(z.string()).optional().describe("HTTP headers to include with every request. Use for authentication, API versioning, or custom routing. Header values can reference environment variables using ${VAR_NAME} syntax. These placeholders are resolved at runtime from AgentInstance's environment. Examples: 'Authorization': 'Bearer ${API_TOKEN}' 'X-API-Version': '2024-01' 'X-Tenant-ID': '${TENANT_ID}' @internal Templates may also reference the reserved caller-identity keys (STIGMER_CALLER_IDENTITY_KIND / _VALUE, STIGMER_SESSION_ID) when the server declares them in spec.env — see the env field's reserved-key contract. Placeholders resolve against the env FILTERED to declared keys, so an undeclared reserved key in a template fails resolution."),
42
42
  query_params: z.record(z.string()).optional().describe("Query parameters to append to the URL. Values can reference environment variables using ${VAR_NAME} syntax. Examples: 'region': '${AWS_REGION}' 'version': 'v1'"),
43
43
  timeout_seconds: z.number().optional().describe("Timeout for HTTP requests in seconds. Applies to both the initial connection and response streaming. Default: 30 seconds if not specified. Set higher values for MCP servers that perform long-running operations."),
44
44
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mcpserver.js","sourceRoot":"","sources":["../../src/gen/mcpserver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpserver.js","sourceRoot":"","sources":["../../src/gen/mcpserver.ts"],"names":[],"mappings":"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"}
package/gen/workflow.d.ts CHANGED
@@ -589,15 +589,15 @@ declare const NotificationTaskConfigInputSchema: z.ZodObject<{
589
589
  body: string;
590
590
  metadata?: Record<string, string> | undefined;
591
591
  subject?: string | undefined;
592
- recipients?: string[] | undefined;
593
592
  template?: string | undefined;
593
+ recipients?: string[] | undefined;
594
594
  }, {
595
595
  channel: string;
596
596
  body: string;
597
597
  metadata?: Record<string, string> | undefined;
598
598
  subject?: string | undefined;
599
- recipients?: string[] | undefined;
600
599
  template?: string | undefined;
600
+ recipients?: string[] | undefined;
601
601
  }>;
602
602
  type NotificationTaskConfigInput = z.infer<typeof NotificationTaskConfigInputSchema>;
603
603
  declare const RaiseTaskConfigInputSchema: z.ZodObject<{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigmer/mcp-server",
3
- "version": "3.5.2",
3
+ "version": "3.6.0",
4
4
  "description": "Model Context Protocol server for the Stigmer platform — exposes Stigmer agents, skills, MCP servers, and workflows as MCP tools and resources",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -35,8 +35,8 @@
35
35
  "@connectrpc/connect": "^2.0.0",
36
36
  "@connectrpc/connect-node": "^2.1.1",
37
37
  "@modelcontextprotocol/sdk": "^1.26.0",
38
- "@stigmer/protos": "3.5.2",
39
- "@stigmer/sdk": "3.5.2",
38
+ "@stigmer/protos": "3.6.0",
39
+ "@stigmer/sdk": "3.6.0",
40
40
  "yaml": "^2.8.2",
41
41
  "zod": "^3.25.0"
42
42
  }
package/server.d.ts CHANGED
@@ -21,6 +21,15 @@ export declare function createServer(target: BackendTarget): McpServer;
21
21
  * roster when STIGMER_MCP_ROSTER=records.
22
22
  */
23
23
  export declare function createRecordsServer(target: BackendTarget): McpServer;
24
+ /**
25
+ * Build a channels-only MCP server: send_channel_message with the
26
+ * agent-facing argument surface, and nothing else (proactive-messaging
27
+ * DD-006 D8 — the records-roster pattern). This is the roster the
28
+ * runner-synthesized channel attachment connects to; the structural
29
+ * guarantee mirrors the records roster's. Served on the /channels HTTP
30
+ * route and as the stdio roster when STIGMER_MCP_ROSTER=channels.
31
+ */
32
+ export declare function createChannelsServer(target: BackendTarget): McpServer;
24
33
  /**
25
34
  * Serve over stdin/stdout until the client disconnects or `signal` aborts.
26
35
  *
@@ -41,9 +50,12 @@ export type ServerFactory = () => McpServer;
41
50
  export type RouteServerFactory = (path: string) => McpServer;
42
51
  /** HTTP route serving the records-only roster (T05 R1). */
43
52
  export declare const RECORDS_ROUTE = "/records";
53
+ /** HTTP route serving the channels-only roster (DD-006 D8). */
54
+ export declare const CHANNELS_ROUTE = "/channels";
44
55
  /**
45
56
  * The standard HTTP route dispatch: the records-only roster on
46
- * {@link RECORDS_ROUTE}, the full roster everywhere else.
57
+ * {@link RECORDS_ROUTE}, the channels-only roster on
58
+ * {@link CHANNELS_ROUTE}, the full roster everywhere else.
47
59
  */
48
60
  export declare function routedServerFactory(target: BackendTarget): RouteServerFactory;
49
61
  /**
@@ -75,9 +87,9 @@ export declare function serveHttp(makeServer: RouteServerFactory, cfg: Config, s
75
87
  */
76
88
  export declare function serveBoth(target: BackendTarget, cfg: Config, signal: AbortSignal): Promise<void>;
77
89
  /**
78
- * The stdio server for the configured roster: the records-only roster
79
- * when STIGMER_MCP_ROSTER=records (what the OSS runner-synthesized
80
- * datastore attachment spawns), the full roster otherwise.
90
+ * The stdio server for the configured roster: the records-only or
91
+ * channels-only roster when STIGMER_MCP_ROSTER names one (what the OSS
92
+ * runner-synthesized attachments spawn), the full roster otherwise.
81
93
  */
82
94
  export declare function stdioServer(target: BackendTarget, cfg: Config): McpServer;
83
95
  /**
package/server.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAmBzD;;;GAGG;AACH,eAAO,MAAM,cAAc,QAA2C,CAAC;AAWvE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAK7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAKpE;AA8CD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBtF;AAED,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC;AAE7D,2DAA2D;AAC3D,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,kBAAkB,CAE7E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,kBAAkB,EAC9B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtG;AA6FD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAEzE;AAwGD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAWtD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAmBzD;;;GAGG;AACH,eAAO,MAAM,cAAc,QAA2C,CAAC;AAWvE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAK7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAKpE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAKrE;AA8CD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBtF;AAED,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC;AAE7D,2DAA2D;AAC3D,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC,+DAA+D;AAC/D,eAAO,MAAM,cAAc,cAAc,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,kBAAkB,CAM7E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,kBAAkB,EAC9B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtG;AA6FD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAIzE;AAwGD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAWtD"}
package/server.js CHANGED
@@ -17,6 +17,7 @@ import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
17
17
  import { registerAgentExecutionTools } from "./domains/agentexecutions/tools.js";
18
18
  import { registerAgentResources } from "./domains/agents/resources.js";
19
19
  import { registerAgentTools } from "./domains/agents/tools.js";
20
+ import { registerChannelTools } from "./domains/channels/tools.js";
20
21
  import { registerDatastoreResources } from "./domains/datastores/resources.js";
21
22
  import { registerDatastoreTools } from "./domains/datastores/tools.js";
22
23
  import { registerEnvironmentResources } from "./domains/environments/resources.js";
@@ -71,6 +72,20 @@ export function createRecordsServer(target) {
71
72
  log.info("tools registered (records roster)", { count: tools.length, tools });
72
73
  return server;
73
74
  }
75
+ /**
76
+ * Build a channels-only MCP server: send_channel_message with the
77
+ * agent-facing argument surface, and nothing else (proactive-messaging
78
+ * DD-006 D8 — the records-roster pattern). This is the roster the
79
+ * runner-synthesized channel attachment connects to; the structural
80
+ * guarantee mirrors the records roster's. Served on the /channels HTTP
81
+ * route and as the stdio roster when STIGMER_MCP_ROSTER=channels.
82
+ */
83
+ export function createChannelsServer(target) {
84
+ const server = new McpServer({ name: "mcp-server-stigmer-channels", version: SERVER_VERSION });
85
+ const tools = registerChannelTools(server, target);
86
+ log.info("tools registered (channels roster)", { count: tools.length, tools });
87
+ return server;
88
+ }
74
89
  /**
75
90
  * Wire up every domain's tools. Each domain returns the names it registered so
76
91
  * the startup log's count and roster cannot drift from what is actually wired,
@@ -138,12 +153,21 @@ export async function serveStdio(server, signal) {
138
153
  }
139
154
  /** HTTP route serving the records-only roster (T05 R1). */
140
155
  export const RECORDS_ROUTE = "/records";
156
+ /** HTTP route serving the channels-only roster (DD-006 D8). */
157
+ export const CHANNELS_ROUTE = "/channels";
141
158
  /**
142
159
  * The standard HTTP route dispatch: the records-only roster on
143
- * {@link RECORDS_ROUTE}, the full roster everywhere else.
160
+ * {@link RECORDS_ROUTE}, the channels-only roster on
161
+ * {@link CHANNELS_ROUTE}, the full roster everywhere else.
144
162
  */
145
163
  export function routedServerFactory(target) {
146
- return (path) => (path === RECORDS_ROUTE ? createRecordsServer(target) : createServer(target));
164
+ return (path) => {
165
+ if (path === RECORDS_ROUTE)
166
+ return createRecordsServer(target);
167
+ if (path === CHANNELS_ROUTE)
168
+ return createChannelsServer(target);
169
+ return createServer(target);
170
+ };
147
171
  }
148
172
  /**
149
173
  * Serve over Streamable HTTP until `signal` aborts.
@@ -295,12 +319,16 @@ async function routeRequest(req, res, sessions, makeServer, cfg) {
295
319
  await transport.handleRequest(req, res, body);
296
320
  }
297
321
  /**
298
- * The stdio server for the configured roster: the records-only roster
299
- * when STIGMER_MCP_ROSTER=records (what the OSS runner-synthesized
300
- * datastore attachment spawns), the full roster otherwise.
322
+ * The stdio server for the configured roster: the records-only or
323
+ * channels-only roster when STIGMER_MCP_ROSTER names one (what the OSS
324
+ * runner-synthesized attachments spawn), the full roster otherwise.
301
325
  */
302
326
  export function stdioServer(target, cfg) {
303
- return cfg.roster === "records" ? createRecordsServer(target) : createServer(target);
327
+ if (cfg.roster === "records")
328
+ return createRecordsServer(target);
329
+ if (cfg.roster === "channels")
330
+ return createChannelsServer(target);
331
+ return createServer(target);
304
332
  }
305
333
  /** Return a single header value, collapsing the array form Node may produce. */
306
334
  function headerValue(req, name) {