@stigmer/mcp-server 3.11.1-dev.20260812192248 → 3.12.1

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 (115) hide show
  1. package/README.md +4 -22
  2. package/cli/mcp-server-stigmer.js +11 -11
  3. package/config.d.ts +1 -5
  4. package/config.d.ts.map +1 -1
  5. package/config.js +2 -2
  6. package/config.js.map +1 -1
  7. package/domains/agents/apply.d.ts.map +1 -1
  8. package/domains/agents/apply.js +4 -1
  9. package/domains/agents/apply.js.map +1 -1
  10. package/domains/apply-visibility.d.ts +19 -0
  11. package/domains/apply-visibility.d.ts.map +1 -0
  12. package/domains/apply-visibility.js +34 -0
  13. package/domains/apply-visibility.js.map +1 -0
  14. package/domains/environments/apply.d.ts.map +1 -1
  15. package/domains/environments/apply.js +4 -1
  16. package/domains/environments/apply.js.map +1 -1
  17. package/domains/mcpservers/apply.d.ts.map +1 -1
  18. package/domains/mcpservers/apply.js +4 -1
  19. package/domains/mcpservers/apply.js.map +1 -1
  20. package/domains/resourceuri.d.ts.map +1 -1
  21. package/domains/resourceuri.js +0 -1
  22. package/domains/resourceuri.js.map +1 -1
  23. package/domains/search/tools.d.ts.map +1 -1
  24. package/domains/search/tools.js +4 -5
  25. package/domains/search/tools.js.map +1 -1
  26. package/domains/workflows/apply.d.ts.map +1 -1
  27. package/domains/workflows/apply.js +4 -1
  28. package/domains/workflows/apply.js.map +1 -1
  29. package/gen/agent.d.ts +0 -56
  30. package/gen/agent.d.ts.map +1 -1
  31. package/gen/agent.js +2 -25
  32. package/gen/agent.js.map +1 -1
  33. package/gen/environment.js +1 -1
  34. package/gen/environment.js.map +1 -1
  35. package/gen/mcpserver.js +1 -1
  36. package/gen/mcpserver.js.map +1 -1
  37. package/gen/workflow.d.ts +2 -2
  38. package/gen/workflow.js +1 -1
  39. package/gen/workflow.js.map +1 -1
  40. package/index.d.ts +1 -1
  41. package/index.d.ts.map +1 -1
  42. package/index.js +1 -1
  43. package/index.js.map +1 -1
  44. package/package.json +3 -3
  45. package/server.d.ts +6 -18
  46. package/server.d.ts.map +1 -1
  47. package/server.js +6 -36
  48. package/server.js.map +1 -1
  49. package/src/config.ts +3 -7
  50. package/src/domains/agents/apply.ts +10 -1
  51. package/src/domains/apply-visibility.ts +47 -0
  52. package/src/domains/apply.integration.test.ts +58 -41
  53. package/src/domains/deletes.integration.test.ts +1 -25
  54. package/src/domains/environments/apply.ts +10 -1
  55. package/src/domains/mcpservers/apply.ts +10 -1
  56. package/src/domains/reads.integration.test.ts +1 -18
  57. package/src/domains/resources.integration.test.ts +0 -18
  58. package/src/domains/resourceuri.test.ts +0 -2
  59. package/src/domains/resourceuri.ts +0 -1
  60. package/src/domains/search/search.integration.test.ts +3 -5
  61. package/src/domains/search/tools.ts +4 -5
  62. package/src/domains/workflows/apply.ts +10 -1
  63. package/src/gen/agent.ts +2 -29
  64. package/src/gen/environment.ts +1 -1
  65. package/src/gen/mcpserver.ts +1 -1
  66. package/src/gen/workflow.ts +1 -1
  67. package/src/http.integration.test.ts +2 -3
  68. package/src/index.ts +0 -2
  69. package/src/server.ts +6 -36
  70. package/domains/datastores/apply.d.ts +0 -4
  71. package/domains/datastores/apply.d.ts.map +0 -1
  72. package/domains/datastores/apply.js +0 -28
  73. package/domains/datastores/apply.js.map +0 -1
  74. package/domains/datastores/delete.d.ts +0 -3
  75. package/domains/datastores/delete.d.ts.map +0 -1
  76. package/domains/datastores/delete.js +0 -38
  77. package/domains/datastores/delete.js.map +0 -1
  78. package/domains/datastores/fetch.d.ts +0 -3
  79. package/domains/datastores/fetch.d.ts.map +0 -1
  80. package/domains/datastores/fetch.js +0 -23
  81. package/domains/datastores/fetch.js.map +0 -1
  82. package/domains/datastores/resources.d.ts +0 -5
  83. package/domains/datastores/resources.d.ts.map +0 -1
  84. package/domains/datastores/resources.js +0 -16
  85. package/domains/datastores/resources.js.map +0 -1
  86. package/domains/datastores/tools.d.ts +0 -5
  87. package/domains/datastores/tools.d.ts.map +0 -1
  88. package/domains/datastores/tools.js +0 -46
  89. package/domains/datastores/tools.js.map +0 -1
  90. package/domains/records/calls.d.ts +0 -48
  91. package/domains/records/calls.d.ts.map +0 -1
  92. package/domains/records/calls.js +0 -118
  93. package/domains/records/calls.js.map +0 -1
  94. package/domains/records/errors.d.ts +0 -24
  95. package/domains/records/errors.d.ts.map +0 -1
  96. package/domains/records/errors.js +0 -79
  97. package/domains/records/errors.js.map +0 -1
  98. package/domains/records/tools.d.ts +0 -7
  99. package/domains/records/tools.d.ts.map +0 -1
  100. package/domains/records/tools.js +0 -139
  101. package/domains/records/tools.js.map +0 -1
  102. package/gen/datastore.d.ts +0 -861
  103. package/gen/datastore.d.ts.map +0 -1
  104. package/gen/datastore.js +0 -267
  105. package/gen/datastore.js.map +0 -1
  106. package/src/domains/datastores/apply.ts +0 -33
  107. package/src/domains/datastores/delete.ts +0 -47
  108. package/src/domains/datastores/fetch.ts +0 -32
  109. package/src/domains/datastores/resources.ts +0 -21
  110. package/src/domains/datastores/tools.ts +0 -76
  111. package/src/domains/records/calls.ts +0 -209
  112. package/src/domains/records/errors.ts +0 -98
  113. package/src/domains/records/records.integration.test.ts +0 -313
  114. package/src/domains/records/tools.ts +0 -210
  115. package/src/gen/datastore.ts +0 -264
package/src/gen/agent.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  import { generateSlug, visibilityFromString } from "./apply-runtime.js";
7
7
  import { create } from "@bufbuild/protobuf";
8
8
  import { AgentSchema, type Agent } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
9
- import { AgentSpecSchema, ToolApprovalOverrideSchema, McpServerUsageSchema, McpAccessSchema, SubAgentSchema, DatastoreUsageSchema } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/spec_pb";
9
+ import { AgentSpecSchema, ToolApprovalOverrideSchema, McpServerUsageSchema, McpAccessSchema, SubAgentSchema } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/spec_pb";
10
10
  import { EnvVarDeclarationSchema } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/spec_pb";
11
11
  import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
12
12
  import { ApiResourceReferenceSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/io_pb";
@@ -18,7 +18,7 @@ export const AgentInputShape = {
18
18
  name: z.string().describe("Human-readable name of the resource."),
19
19
  slug: z.string().optional().describe("URL-friendly identifier (lowercase alphanumeric with hyphens). Auto-generated from name if omitted."),
20
20
  org: z.string().describe("Organization that owns this resource (e.g. acme)."),
21
- visibility: z.string().optional().describe("Resource visibility: PRIVATE or PUBLIC. Omit to leave unchanged on updates."),
21
+ visibility: z.string().optional().describe("Resource visibility: PRIVATE or PUBLIC. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged."),
22
22
  labels: z.record(z.string()).optional().describe("Key-value labels for organization and filtering."),
23
23
  tags: z.array(z.string()).optional().describe("Tags for categorization and discovery."),
24
24
  description: z.string().optional().describe("Human-readable description for UI and marketplace display."),
@@ -28,7 +28,6 @@ export const AgentInputShape = {
28
28
  skill_refs: z.array(z.lazy(() => SkillRefInputSchema)).optional().describe("Skill resources providing additional knowledge to the agent."),
29
29
  sub_agents: z.array(z.lazy(() => SubAgentInputSchema)).optional().describe("Sub-agents that can be delegated to. Sub-agents can access a subset of the parent's MCP servers and tools."),
30
30
  env: z.record(z.lazy(() => EnvVarDeclarationInputSchema)).optional().describe("Environment variable declarations for this agent. Keys are variable names; values describe their metadata and optionality."),
31
- datastore_usages: z.array(z.lazy(() => DatastoreUsageInputSchema)).optional().describe("Datastores this agent can use. Each entry must reference a Datastore resource by slug."),
32
31
  } as const;
33
32
 
34
33
  export const AgentInputSchema = z.object(AgentInputShape);
@@ -84,17 +83,6 @@ const EnvVarDeclarationInputSchema = z.object({
84
83
  });
85
84
  type EnvVarDeclarationInput = z.infer<typeof EnvVarDeclarationInputSchema>;
86
85
 
87
- const DatastoreRefInputSchema = z.object({
88
- org: z.string().optional().describe("Organization that owns the referenced resource. When non-empty: must be a valid org slug (lowercase alphanumeric with hyphens, starts with a letter, 1-63 characters). Example: 'stigmer', 'acme-corp'. When empty: the reference is relative — the server resolves it to the parent resource's organization at write time. All stored and returned references always have org populated (absolute form). Use empty org for same-org references (the common case). Use explicit org for cross-org references (e.g., marketplace resources)."),
89
- slug: z.string().describe("Resource slug (user-friendly identifier, unique within org). Format: lowercase alphanumeric with hyphens, must start with a letter and end with a letter or digit (e.g., 'web-search', 'code-reviewer'). Length: 2-63 characters."),
90
- });
91
- type DatastoreRefInput = z.infer<typeof DatastoreRefInputSchema>;
92
-
93
- const DatastoreUsageInputSchema = z.object({
94
- datastore_ref: z.lazy(() => DatastoreRefInputSchema).describe("Reference to the Datastore resource."),
95
- });
96
- type DatastoreUsageInput = z.infer<typeof DatastoreUsageInputSchema>;
97
-
98
86
 
99
87
  /** Build the fully-formed Agent proto from the flat MCP apply input. */
100
88
  export function agentInputToProto(input: AgentInput): Agent {
@@ -109,7 +97,6 @@ export function agentInputToProto(input: AgentInput): Agent {
109
97
  if (input.env !== undefined) {
110
98
  for (const [k, v] of Object.entries(input.env)) spec.env[k] = envVarDeclarationInputToProto(v);
111
99
  }
112
- if (input.datastore_usages !== undefined) spec.datastoreUsages = input.datastore_usages.map(datastoreUsageInputToProto);
113
100
  return Object.assign(create(AgentSchema), {
114
101
  apiVersion: "agentic.stigmer.ai/v1",
115
102
  kind: "Agent",
@@ -184,17 +171,3 @@ function envVarDeclarationInputToProto(input: EnvVarDeclarationInput) {
184
171
  return result;
185
172
  }
186
173
 
187
- function datastoreRefInputToProto(input: DatastoreRefInput) {
188
- return create(ApiResourceReferenceSchema, {
189
- org: input.org,
190
- slug: input.slug,
191
- kind: ApiResourceKind.datastore,
192
- });
193
- }
194
-
195
- function datastoreUsageInputToProto(input: DatastoreUsageInput) {
196
- const result = create(DatastoreUsageSchema);
197
- if (input.datastore_ref !== undefined) result.datastoreRef = datastoreRefInputToProto(input.datastore_ref);
198
- return result;
199
- }
200
-
@@ -15,7 +15,7 @@ export const EnvironmentInputShape = {
15
15
  name: z.string().describe("Human-readable name of the resource."),
16
16
  slug: z.string().optional().describe("URL-friendly identifier (lowercase alphanumeric with hyphens). Auto-generated from name if omitted."),
17
17
  org: z.string().describe("Organization that owns this resource (e.g. acme)."),
18
- visibility: z.string().optional().describe("Resource visibility: PRIVATE or PUBLIC. Omit to leave unchanged on updates."),
18
+ visibility: z.string().optional().describe("Resource visibility: PRIVATE or PUBLIC. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged."),
19
19
  labels: z.record(z.string()).optional().describe("Key-value labels for organization and filtering."),
20
20
  tags: z.array(z.string()).optional().describe("Tags for categorization and discovery."),
21
21
  description: z.string().optional().describe("Human-readable description for UI and listing display."),
@@ -18,7 +18,7 @@ export const McpServerInputShape = {
18
18
  name: z.string().describe("Human-readable name of the resource."),
19
19
  slug: z.string().optional().describe("URL-friendly identifier (lowercase alphanumeric with hyphens). Auto-generated from name if omitted."),
20
20
  org: z.string().describe("Organization that owns this resource (e.g. acme)."),
21
- visibility: z.string().optional().describe("Resource visibility: PRIVATE or PUBLIC. Omit to leave unchanged on updates."),
21
+ visibility: z.string().optional().describe("Resource visibility: PRIVATE or PUBLIC. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged."),
22
22
  labels: z.record(z.string()).optional().describe("Key-value labels for organization and filtering."),
23
23
  tags: z.array(z.string()).optional().describe("Tags for categorization and discovery."),
24
24
  description: z.string().optional().describe("Human-readable description for marketplace display and documentation. Should explain what this MCP server does and its primary use cases. Example: 'GitHub MCP server for repository operations, code search, and PR management'"),
@@ -45,7 +45,7 @@ export const WorkflowInputShape = {
45
45
  name: z.string().describe("Human-readable name of the resource."),
46
46
  slug: z.string().optional().describe("URL-friendly identifier (lowercase alphanumeric with hyphens). Auto-generated from name if omitted."),
47
47
  org: z.string().describe("Organization that owns this resource (e.g. acme)."),
48
- visibility: z.string().optional().describe("Resource visibility: PRIVATE or PUBLIC. Omit to leave unchanged on updates."),
48
+ visibility: z.string().optional().describe("Resource visibility: PRIVATE or PUBLIC. Applied at create; on updates a changed value is landed through the guarded UpdateVisibility RPC. Omit to leave unchanged."),
49
49
  labels: z.record(z.string()).optional().describe("Key-value labels for organization and filtering."),
50
50
  tags: z.array(z.string()).optional().describe("Tags for categorization and discovery."),
51
51
  description: z.string().optional().describe("Human-readable description for UI and marketplace display."),
@@ -50,8 +50,8 @@ beforeAll(async () => {
50
50
  };
51
51
  controller = new AbortController();
52
52
  // The REAL route dispatch, so these tests hold the production route
53
- // table: full roster on "/", records on "/records", channels on
54
- // "/channels", 404 anywhere else.
53
+ // table: full roster on "/", channels on "/channels", conversation on
54
+ // "/conversation", 404 anywhere else.
55
55
  serving = serveHttp(
56
56
  routedServerFactory({ serverAddress: cfg.stigmerServerAddress, apiKey: "" }),
57
57
  cfg,
@@ -172,7 +172,6 @@ function initialize(path: string): Promise<Response> {
172
172
  describe("HTTP route dispatch (the closed route table)", () => {
173
173
  it.each([
174
174
  ["/", "mcp-server-stigmer"],
175
- ["/records", "mcp-server-stigmer-records"],
176
175
  ["/channels", "mcp-server-stigmer-channels"],
177
176
  ["/conversation", "mcp-server-stigmer-conversation"],
178
177
  ])("serves the %s roster as %s", async (path, serverName) => {
package/src/index.ts CHANGED
@@ -23,10 +23,8 @@ export {
23
23
  CONVERSATION_ROUTE,
24
24
  createChannelsServer,
25
25
  createConversationServer,
26
- createRecordsServer,
27
26
  createServer,
28
27
  FULL_ROUTE,
29
- RECORDS_ROUTE,
30
28
  SERVER_VERSION,
31
29
  } from "./server.js";
32
30
 
package/src/server.ts CHANGED
@@ -25,14 +25,11 @@ import { registerAgentTools } from "./domains/agents/tools.js";
25
25
  import { registerChannelTools } from "./domains/channels/tools.js";
26
26
  import type { BackendTarget } from "./domains/client.js";
27
27
  import { registerConversationTools } from "./domains/conversation/tools.js";
28
- import { registerDatastoreResources } from "./domains/datastores/resources.js";
29
- import { registerDatastoreTools } from "./domains/datastores/tools.js";
30
28
  import { registerEnvironmentResources } from "./domains/environments/resources.js";
31
29
  import { registerEnvironmentTools } from "./domains/environments/tools.js";
32
30
  import { registerExecutionControlTools } from "./domains/executions/tools.js";
33
31
  import { registerMcpServerResources } from "./domains/mcpservers/resources.js";
34
32
  import { registerMcpServerTools } from "./domains/mcpservers/tools.js";
35
- import { registerRecordTools } from "./domains/records/tools.js";
36
33
  import { registerSearchTools } from "./domains/search/tools.js";
37
34
  import { registerSkillResources } from "./domains/skills/resources.js";
38
35
  import { registerSkillTools } from "./domains/skills/tools.js";
@@ -69,22 +66,6 @@ export function createServer(target: BackendTarget): McpServer {
69
66
  return server;
70
67
  }
71
68
 
72
- /**
73
- * Build a records-only MCP server: the five record tools with the
74
- * agent-facing argument surface, and nothing else (T05 R1). This is
75
- * the roster the runner-synthesized datastore attachment connects to —
76
- * a structural guarantee that an agent session never sees the
77
- * management tools (apply/delete/…) its empty approval maps would make
78
- * approval-free. Served on the /records HTTP route and as the stdio
79
- * roster when STIGMER_MCP_ROSTER=records.
80
- */
81
- export function createRecordsServer(target: BackendTarget): McpServer {
82
- const server = new McpServer({ name: "mcp-server-stigmer-records", version: SERVER_VERSION });
83
- const tools = registerRecordTools(server, target, "agent");
84
- log.info("tools registered (records roster)", { count: tools.length, tools });
85
- return server;
86
- }
87
-
88
69
  /**
89
70
  * Build a channels-only MCP server: send_channel_message with the
90
71
  * agent-facing argument surface, and nothing else (proactive-messaging
@@ -143,11 +124,6 @@ function registerTools(server: McpServer, target: BackendTarget): void {
143
124
  ...registerWorkflowExecutionTools(server, target),
144
125
  ...registerExecutionControlTools(server, target),
145
126
  ...registerEnvironmentTools(server, target),
146
- ...registerDatastoreTools(server, target),
147
- // The record tools also serve external MCP clients — as direct
148
- // principals with the org argument and honest annotations (the
149
- // agent-facing variant lives on the records-only roster).
150
- ...registerRecordTools(server, target, "direct"),
151
127
  ];
152
128
  log.info("tools registered", { count: tools.length, tools });
153
129
  }
@@ -164,7 +140,6 @@ function registerResources(server: McpServer, target: BackendTarget): void {
164
140
  ...registerSkillResources(server, target),
165
141
  ...registerWorkflowResources(server, target),
166
142
  ...registerEnvironmentResources(server, target),
167
- ...registerDatastoreResources(server, target),
168
143
  ];
169
144
  log.info("resources registered", { count: resources.length, resources });
170
145
  }
@@ -211,9 +186,6 @@ export type RouteServerFactory = (path: string) => McpServer | undefined;
211
186
  /** HTTP route serving the full roster: the bare origin every published config uses. */
212
187
  export const FULL_ROUTE = "/";
213
188
 
214
- /** HTTP route serving the records-only roster (T05 R1). */
215
- export const RECORDS_ROUTE = "/records";
216
-
217
189
  /** HTTP route serving the channels-only roster (DD-006 D8). */
218
190
  export const CHANNELS_ROUTE = "/channels";
219
191
 
@@ -222,9 +194,9 @@ export const CONVERSATION_ROUTE = "/conversation";
222
194
 
223
195
  /**
224
196
  * The standard HTTP route dispatch: the full roster on {@link FULL_ROUTE},
225
- * the records-only roster on {@link RECORDS_ROUTE}, the channels-only
226
- * roster on {@link CHANNELS_ROUTE}, the conversation-only roster on
227
- * {@link CONVERSATION_ROUTE} — and NOTHING anywhere else.
197
+ * the channels-only roster on {@link CHANNELS_ROUTE}, the
198
+ * conversation-only roster on {@link CONVERSATION_ROUTE} — and NOTHING
199
+ * anywhere else.
228
200
  *
229
201
  * The closed route table is load-bearing, not tidiness. This dispatch
230
202
  * once fell through to the full roster for any unrecognized path, and a
@@ -239,7 +211,6 @@ export const CONVERSATION_ROUTE = "/conversation";
239
211
  export function routedServerFactory(target: BackendTarget): RouteServerFactory {
240
212
  return (path) => {
241
213
  if (path === FULL_ROUTE) return createServer(target);
242
- if (path === RECORDS_ROUTE) return createRecordsServer(target);
243
214
  if (path === CHANNELS_ROUTE) return createChannelsServer(target);
244
215
  if (path === CONVERSATION_ROUTE) return createConversationServer(target);
245
216
  return undefined;
@@ -431,12 +402,11 @@ async function routeRequest(
431
402
  }
432
403
 
433
404
  /**
434
- * The stdio server for the configured roster: the records-only or
435
- * channels-only roster when STIGMER_MCP_ROSTER names one (what the OSS
436
- * runner-synthesized attachments spawn), the full roster otherwise.
405
+ * The stdio server for the configured roster: the channels-only roster
406
+ * when STIGMER_MCP_ROSTER names it (what the OSS runner-synthesized
407
+ * attachment spawns), the full roster otherwise.
437
408
  */
438
409
  export function stdioServer(target: BackendTarget, cfg: Config): McpServer {
439
- if (cfg.roster === "records") return createRecordsServer(target);
440
410
  if (cfg.roster === "channels") return createChannelsServer(target);
441
411
  return createServer(target);
442
412
  }
@@ -1,4 +0,0 @@
1
- import { type DatastoreInput } from "../../gen/datastore.js";
2
- /** Create or update a datastore, returning the persisted resource as protojson. */
3
- export declare function applyDatastore(serverAddress: string, token: string, input: DatastoreInput): Promise<string>;
4
- //# sourceMappingURL=apply.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/domains/datastores/apply.ts"],"names":[],"mappings":"AAWA,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKpF,mFAAmF;AACnF,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"}
@@ -1,28 +0,0 @@
1
- // Datastore apply path: create-or-update via DatastoreCommandController.apply.
2
- // The flat MCP input is projected into a fully-formed Datastore proto by the
3
- // generated datastoreInputToProto bridge (codegen, src/gen/datastore.ts).
4
- //
5
- // The manifest is authoritative for structure, never for data: schema changes
6
- // sync on apply (the server enforces its additive-plus change matrix), and
7
- // records enter exclusively through the record tools.
8
- import { DatastoreSchema } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/api_pb";
9
- import { DatastoreCommandController } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/command_pb";
10
- import { datastoreInputToProto } from "../../gen/datastore.js";
11
- import { withClient } from "../client.js";
12
- import { toProtoJson } from "../marshal.js";
13
- import { rpcError } from "../rpcerr.js";
14
- /** Create or update a datastore, returning the persisted resource as protojson. */
15
- export async function applyDatastore(serverAddress, token, input) {
16
- const datastore = datastoreInputToProto(input);
17
- const desc = `datastore "${datastore.metadata?.slug ?? ""}" in org "${datastore.metadata?.org ?? ""}"`;
18
- return withClient(DatastoreCommandController, serverAddress, token, async (client, callOptions) => {
19
- try {
20
- const result = await client.apply(datastore, callOptions);
21
- return toProtoJson(DatastoreSchema, result);
22
- }
23
- catch (err) {
24
- throw rpcError(err, desc);
25
- }
26
- });
27
- }
28
- //# sourceMappingURL=apply.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/domains/datastores/apply.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6EAA6E;AAC7E,0EAA0E;AAC1E,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,sDAAsD;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4DAA4D,CAAC;AAExG,OAAO,EAAE,qBAAqB,EAAuB,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,KAAa,EACb,KAAqB;IAErB,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,cAAc,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,aAAa,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC;IACvG,OAAO,UAAU,CAAC,0BAA0B,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;QAChG,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAC1D,OAAO,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +0,0 @@
1
- /** Delete a datastore by org and slug, returning the deleted resource as protojson. */
2
- export declare function deleteDatastore(serverAddress: string, token: string, org: string, slug: string): Promise<string>;
3
- //# sourceMappingURL=delete.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/domains/datastores/delete.ts"],"names":[],"mappings":"AAiBA,uFAAuF;AACvF,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
@@ -1,38 +0,0 @@
1
- // Datastore delete path: resolve org/slug → id via the Query controller, then
2
- // delete via the Command controller, both over a single shared transport. Like
3
- // McpServer, the command controller takes ApiResourceDeleteInput{resource_id}.
4
- //
5
- // This is the only path that destroys collections — record tools can delete
6
- // individual records but never structure.
7
- import { createClient } from "@connectrpc/connect";
8
- import { DatastoreSchema } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/api_pb";
9
- import { DatastoreCommandController } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/command_pb";
10
- import { DatastoreQueryController } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/query_pb";
11
- import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
12
- import { withTransport } from "../client.js";
13
- import { toProtoJson } from "../marshal.js";
14
- import { rpcError } from "../rpcerr.js";
15
- /** Delete a datastore by org and slug, returning the deleted resource as protojson. */
16
- export async function deleteDatastore(serverAddress, token, org, slug) {
17
- const desc = `datastore "${slug}" in org "${org}"`;
18
- return withTransport(serverAddress, token, async (transport, callOptions) => {
19
- const query = createClient(DatastoreQueryController, transport);
20
- let id;
21
- try {
22
- const datastore = await query.getByReference({ org, kind: ApiResourceKind.datastore, slug }, callOptions);
23
- id = datastore.metadata?.id ?? "";
24
- }
25
- catch (err) {
26
- throw rpcError(err, desc);
27
- }
28
- const command = createClient(DatastoreCommandController, transport);
29
- try {
30
- const deleted = await command.delete({ resourceId: id }, callOptions);
31
- return toProtoJson(DatastoreSchema, deleted);
32
- }
33
- catch (err) {
34
- throw rpcError(err, desc);
35
- }
36
- });
37
- }
38
- //# sourceMappingURL=delete.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/domains/datastores/delete.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,EAAE;AACF,4EAA4E;AAC5E,0CAA0C;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4DAA4D,CAAC;AACxG,OAAO,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,aAAqB,EACrB,KAAa,EACb,GAAW,EACX,IAAY;IAEZ,MAAM,IAAI,GAAG,cAAc,IAAI,aAAa,GAAG,GAAG,CAAC;IACnD,OAAO,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;QAC1E,MAAM,KAAK,GAAG,YAAY,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;QAChE,IAAI,EAAU,CAAC;QACf,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,cAAc,CAC1C,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,EAC9C,WAAW,CACZ,CAAC;YACF,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;YACtE,OAAO,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +0,0 @@
1
- /** Retrieve a datastore by org and slug, returning its protojson representation. */
2
- export declare function fetchDatastore(serverAddress: string, token: string, org: string, slug: string): Promise<string>;
3
- //# sourceMappingURL=fetch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/domains/datastores/fetch.ts"],"names":[],"mappings":"AAaA,oFAAoF;AACpF,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAYjB"}
@@ -1,23 +0,0 @@
1
- // Datastore-definition read path: the single RPC both the get_datastore tool
2
- // and the datastore resource template delegate to. This is the *structure*
3
- // surface (collections, constraints, grants); living records are served by the
4
- // record tools (records/), whose agent-facing summary is describe_datastore.
5
- import { DatastoreSchema } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/api_pb";
6
- import { DatastoreQueryController } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/query_pb";
7
- import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
8
- import { withClient } from "../client.js";
9
- import { toProtoJson } from "../marshal.js";
10
- import { rpcError } from "../rpcerr.js";
11
- /** Retrieve a datastore by org and slug, returning its protojson representation. */
12
- export async function fetchDatastore(serverAddress, token, org, slug) {
13
- return withClient(DatastoreQueryController, serverAddress, token, async (client, callOptions) => {
14
- try {
15
- const datastore = await client.getByReference({ org, kind: ApiResourceKind.datastore, slug }, callOptions);
16
- return toProtoJson(DatastoreSchema, datastore);
17
- }
18
- catch (err) {
19
- throw rpcError(err, `datastore "${slug}" in org "${org}"`);
20
- }
21
- });
22
- }
23
- //# sourceMappingURL=fetch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/domains/datastores/fetch.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,6EAA6E;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,KAAa,EACb,GAAW,EACX,IAAY;IAEZ,OAAO,UAAU,CAAC,wBAAwB,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;QAC9F,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,cAAc,CAC3C,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,EAC9C,WAAW,CACZ,CAAC;YACF,OAAO,WAAW,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,GAAG,EAAE,cAAc,IAAI,aAAa,GAAG,GAAG,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import type { BackendTarget } from "../client.js";
3
- /** Register the datastore resource template; returns the registered resource names. */
4
- export declare function registerDatastoreResources(server: McpServer, target: BackendTarget): string[];
5
- //# sourceMappingURL=resources.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/domains/datastores/resources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,uFAAuF;AACvF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAW7F"}
@@ -1,16 +0,0 @@
1
- // Datastore resource template (stigmer://datastores/{org}/{slug}).
2
- import { registerResource } from "../resourcehandler.js";
3
- import { fetchDatastore } from "./fetch.js";
4
- /** Register the datastore resource template; returns the registered resource names. */
5
- export function registerDatastoreResources(server, target) {
6
- registerResource(server, target, {
7
- name: "stigmer_datastore",
8
- title: "Stigmer Datastore",
9
- description: "Full definition of a Stigmer datastore (collections, constraints, grants), " +
10
- "identified by organization and slug.",
11
- template: "stigmer://datastores/{org}/{slug}",
12
- fetch: fetchDatastore,
13
- });
14
- return ["stigmer_datastore"];
15
- }
16
- //# sourceMappingURL=resources.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/domains/datastores/resources.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAKnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,uFAAuF;AACvF,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,MAAqB;IACjF,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE;QAC/B,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,6EAA6E;YAC7E,sCAAsC;QACxC,QAAQ,EAAE,mCAAmC;QAC7C,KAAK,EAAE,cAAc;KACtB,CAAC,CAAC;IACH,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC/B,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import { type BackendTarget } from "../client.js";
3
- /** Register every Datastore-domain tool; returns the registered tool names. */
4
- export declare function registerDatastoreTools(server: McpServer, target: BackendTarget): string[];
5
- //# sourceMappingURL=tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/domains/datastores/tools.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAMhE,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CA0DzF"}
@@ -1,46 +0,0 @@
1
- // MCP tools for the Datastore *definition* domain — the structure surface
2
- // (collections, fields, constraints, roles, grants). The record tools
3
- // (records/tools.ts) operate on the living data inside these structures;
4
- // before this domain existed, an assistant could insert records into a
5
- // datastore it had no way to create.
6
- import { z } from "zod";
7
- import { DatastoreInputShape } from "../../gen/datastore.js";
8
- import { resolveToken } from "../client.js";
9
- import { textOrError } from "../toolresult.js";
10
- import { applyDatastore } from "./apply.js";
11
- import { deleteDatastore } from "./delete.js";
12
- import { fetchDatastore } from "./fetch.js";
13
- /** Register every Datastore-domain tool; returns the registered tool names. */
14
- export function registerDatastoreTools(server, target) {
15
- server.registerTool("get_datastore", {
16
- description: "Get the full definition of a Stigmer datastore by its org and slug: collections, field " +
17
- "declarations, constraints, roles, and grants. For the record-facing view of the same " +
18
- "structure (allowed verbs, readable fields), use describe_datastore; for the data " +
19
- "itself, use the record tools.",
20
- inputSchema: {
21
- org: z.string().describe("Organization slug that owns the datastore (e.g. stigmer)."),
22
- slug: z
23
- .string()
24
- .describe("Datastore slug — the unique identifier within the org (e.g. clinic-bookings)."),
25
- },
26
- }, (args, extra) => textOrError(() => fetchDatastore(target.serverAddress, resolveToken(extra, target.apiKey), args.org, args.slug)));
27
- server.registerTool("apply_datastore", {
28
- description: "Create or update a Stigmer datastore definition (idempotent). The manifest is " +
29
- "authoritative for structure only — schema changes sync on apply (the server enforces " +
30
- "its additive-plus change rules), and records are never touched; use the record tools " +
31
- "to manage data.",
32
- inputSchema: DatastoreInputShape,
33
- }, (args, extra) => textOrError(() => applyDatastore(target.serverAddress, resolveToken(extra, target.apiKey), args)));
34
- server.registerTool("delete_datastore", {
35
- description: "Delete a Stigmer datastore by its org and slug, destroying its collections and all " +
36
- "records in them. This is irreversible. Returns the deleted datastore definition.",
37
- inputSchema: {
38
- org: z.string().describe("Organization slug that owns the datastore (e.g. stigmer)."),
39
- slug: z
40
- .string()
41
- .describe("Datastore slug — the unique identifier within the org (e.g. clinic-bookings)."),
42
- },
43
- }, (args, extra) => textOrError(() => deleteDatastore(target.serverAddress, resolveToken(extra, target.apiKey), args.org, args.slug)));
44
- return ["get_datastore", "apply_datastore", "delete_datastore"];
45
- }
46
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/domains/datastores/tools.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,sEAAsE;AACtE,yEAAyE;AACzE,uEAAuE;AACvE,qCAAqC;AAGrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAsB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,+EAA+E;AAC/E,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAqB;IAC7E,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,yFAAyF;YACzF,uFAAuF;YACvF,mFAAmF;YACnF,+BAA+B;QACjC,WAAW,EAAE;YACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;YACrF,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,+EAA+E,CAAC;SAC7F;KACF,EACD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,WAAW,CAAC,GAAG,EAAE,CACf,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAC9F,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,gFAAgF;YAChF,uFAAuF;YACvF,uFAAuF;YACvF,iBAAiB;QACnB,WAAW,EAAE,mBAAmB;KACjC,EACD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,WAAW,CAAC,GAAG,EAAE,CACf,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAC/E,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,qFAAqF;YACrF,kFAAkF;QACpF,WAAW,EAAE;YACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;YACrF,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,+EAA+E,CAAC;SAC7F;KACF,EACD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,WAAW,CAAC,GAAG,EAAE,CACf,eAAe,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAC/F,CACJ,CAAC;IAEF,OAAO,CAAC,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;AAClE,CAAC"}
@@ -1,48 +0,0 @@
1
- /**
2
- * A filter condition as the model supplies it. `op` uses the natural
3
- * spelling "in" (the proto enum's `is_in` exists only because `in` is
4
- * reserved in Java/Python — a substrate detail the model never sees).
5
- */
6
- export interface ConditionArg {
7
- field: string;
8
- op: string;
9
- value?: string | number | boolean | null;
10
- values?: (string | number | boolean)[];
11
- }
12
- export interface FindArgs {
13
- datastore: string;
14
- org?: string;
15
- collection: string;
16
- conditions?: ConditionArg[];
17
- order_by?: {
18
- field: string;
19
- direction?: string;
20
- };
21
- limit?: number;
22
- offset?: number;
23
- }
24
- export declare function findRecords(serverAddress: string, token: string, args: FindArgs): Promise<string>;
25
- export declare function insertRecord(serverAddress: string, token: string, args: {
26
- datastore: string;
27
- org?: string;
28
- collection: string;
29
- record: Record<string, unknown>;
30
- }): Promise<string>;
31
- export declare function updateRecord(serverAddress: string, token: string, args: {
32
- datastore: string;
33
- org?: string;
34
- collection: string;
35
- id: string;
36
- fields: Record<string, unknown>;
37
- }): Promise<string>;
38
- export declare function deleteRecord(serverAddress: string, token: string, args: {
39
- datastore: string;
40
- org?: string;
41
- collection: string;
42
- id: string;
43
- }): Promise<string>;
44
- export declare function describeDatastore(serverAddress: string, token: string, args: {
45
- datastore: string;
46
- org?: string;
47
- }): Promise<string>;
48
- //# sourceMappingURL=calls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../../src/domains/records/calls.ts"],"names":[],"mappings":"AAyCA;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgBD,wBAAsB,WAAW,CAC/B,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC7F,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,GACA,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACxE,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACxC,OAAO,CAAC,MAAM,CAAC,CAQjB"}