arc-1 0.9.18 → 0.9.19

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 (92) hide show
  1. package/README.md +26 -26
  2. package/dist/adt/config.d.ts +1 -1
  3. package/dist/adt/config.d.ts.map +1 -1
  4. package/dist/adt/http.d.ts +1 -1
  5. package/dist/adt/http.d.ts.map +1 -1
  6. package/dist/adt/http.js.map +1 -1
  7. package/dist/authz/policy.d.ts +6 -0
  8. package/dist/authz/policy.d.ts.map +1 -1
  9. package/dist/authz/policy.js +20 -0
  10. package/dist/authz/policy.js.map +1 -1
  11. package/dist/cli.js +21 -3
  12. package/dist/cli.js.map +1 -1
  13. package/dist/handlers/dispatch.d.ts +3 -0
  14. package/dist/handlers/dispatch.d.ts.map +1 -1
  15. package/dist/handlers/dispatch.js +71 -53
  16. package/dist/handlers/dispatch.js.map +1 -1
  17. package/dist/handlers/schemas.d.ts +4 -4
  18. package/dist/plugins/manifest-interpreter.d.ts +25 -0
  19. package/dist/plugins/manifest-interpreter.d.ts.map +1 -0
  20. package/dist/plugins/manifest-interpreter.js +124 -0
  21. package/dist/plugins/manifest-interpreter.js.map +1 -0
  22. package/dist/public/define-tool.d.ts +9 -0
  23. package/dist/public/define-tool.d.ts.map +1 -0
  24. package/dist/public/define-tool.js +25 -0
  25. package/dist/public/define-tool.js.map +1 -0
  26. package/dist/public/index.d.ts +9 -0
  27. package/dist/public/index.d.ts.map +1 -0
  28. package/dist/public/index.js +10 -0
  29. package/dist/public/index.js.map +1 -0
  30. package/dist/public/testing.d.ts +26 -0
  31. package/dist/public/testing.d.ts.map +1 -0
  32. package/dist/public/testing.js +39 -0
  33. package/dist/public/testing.js.map +1 -0
  34. package/dist/public/types.d.ts +87 -0
  35. package/dist/public/types.d.ts.map +1 -0
  36. package/dist/public/types.js +4 -0
  37. package/dist/public/types.js.map +1 -0
  38. package/dist/registry/tool-registry.d.ts +74 -0
  39. package/dist/registry/tool-registry.d.ts.map +1 -0
  40. package/dist/registry/tool-registry.js +59 -0
  41. package/dist/registry/tool-registry.js.map +1 -0
  42. package/dist/server/app-url.d.ts +31 -0
  43. package/dist/server/app-url.d.ts.map +1 -0
  44. package/dist/server/app-url.js +50 -0
  45. package/dist/server/app-url.js.map +1 -0
  46. package/dist/server/audit.d.ts +4 -0
  47. package/dist/server/audit.d.ts.map +1 -1
  48. package/dist/server/audit.js.map +1 -1
  49. package/dist/server/config.d.ts.map +1 -1
  50. package/dist/server/config.js +19 -0
  51. package/dist/server/config.js.map +1 -1
  52. package/dist/server/http.d.ts +15 -46
  53. package/dist/server/http.d.ts.map +1 -1
  54. package/dist/server/http.js +105 -375
  55. package/dist/server/http.js.map +1 -1
  56. package/dist/server/logger.d.ts +22 -0
  57. package/dist/server/logger.d.ts.map +1 -1
  58. package/dist/server/logger.js +22 -0
  59. package/dist/server/logger.js.map +1 -1
  60. package/dist/server/plugin-loader.d.ts +19 -0
  61. package/dist/server/plugin-loader.d.ts.map +1 -0
  62. package/dist/server/plugin-loader.js +162 -0
  63. package/dist/server/plugin-loader.js.map +1 -0
  64. package/dist/server/safe-http-client.d.ts +38 -0
  65. package/dist/server/safe-http-client.d.ts.map +1 -0
  66. package/dist/server/safe-http-client.js +129 -0
  67. package/dist/server/safe-http-client.js.map +1 -0
  68. package/dist/server/server.d.ts +2 -2
  69. package/dist/server/server.d.ts.map +1 -1
  70. package/dist/server/server.js +36 -7
  71. package/dist/server/server.js.map +1 -1
  72. package/dist/server/types.d.ts +8 -0
  73. package/dist/server/types.d.ts.map +1 -1
  74. package/dist/server/types.js +2 -0
  75. package/dist/server/types.js.map +1 -1
  76. package/package.json +24 -8
  77. package/dist/adt/btp.d.ts +0 -140
  78. package/dist/adt/btp.d.ts.map +0 -1
  79. package/dist/adt/btp.js +0 -427
  80. package/dist/adt/btp.js.map +0 -1
  81. package/dist/server/oauth-state.d.ts +0 -92
  82. package/dist/server/oauth-state.d.ts.map +0 -1
  83. package/dist/server/oauth-state.js +0 -163
  84. package/dist/server/oauth-state.js.map +0 -1
  85. package/dist/server/stateless-client-store.d.ts +0 -173
  86. package/dist/server/stateless-client-store.d.ts.map +0 -1
  87. package/dist/server/stateless-client-store.js +0 -503
  88. package/dist/server/stateless-client-store.js.map +0 -1
  89. package/dist/server/xsuaa.d.ts +0 -188
  90. package/dist/server/xsuaa.d.ts.map +0 -1
  91. package/dist/server/xsuaa.js +0 -464
  92. package/dist/server/xsuaa.js.map +0 -1
@@ -19,6 +19,7 @@ import { AdtApiError, AdtNetworkError, AdtSafetyError, classifySapDomainError }
19
19
  * getActionPolicy, hasRequiredScope). This module routes through them.
20
20
  */
21
21
  import { getActionPolicy, hasRequiredScope as hasScopeHelper } from '../authz/policy.js';
22
+ import { ToolRegistry } from '../registry/tool-registry.js';
22
23
  import { sanitizeArgs } from '../server/audit.js';
23
24
  import { generateRequestId, requestContext } from '../server/context.js';
24
25
  import { logger } from '../server/logger.js';
@@ -373,6 +374,44 @@ function classifyError(err) {
373
374
  return err.constructor.name;
374
375
  return 'Unknown';
375
376
  }
377
+ // ─── Tool registry (FEAT-61) ─────────────────────────────────────────
378
+ // The 12 built-ins register through the same ToolRegistry that plugin (Custom_*) tools use. Each
379
+ // built-in `invoke` is a thin adapter over its existing handler — the shared pipeline (rate-limit,
380
+ // scope, deny, Zod, audit) stays in handleToolCall; the registry only owns the inner dispatch that
381
+ // used to be a `switch`. See docs/research/extension-framework-spec.md §4.
382
+ let _toolRegistry;
383
+ /** The process-wide tool registry, lazily seeded with the built-ins. Exported for tests. */
384
+ export function getToolRegistry() {
385
+ if (_toolRegistry)
386
+ return _toolRegistry;
387
+ const r = new ToolRegistry();
388
+ const reg = (name, invoke) => {
389
+ const policy = getActionPolicy(name);
390
+ if (!policy)
391
+ throw new Error(`Built-in tool '${name}' has no ACTION_POLICY entry`);
392
+ r.register({ name, source: 'builtin', policy, invoke });
393
+ };
394
+ reg('SAPRead', (ctx) => handleSAPRead(ctx.client, ctx.args, ctx.cache, ctx.cacheSecurity));
395
+ reg('SAPSearch', (ctx) => handleSAPSearch(ctx.client, ctx.args));
396
+ reg('SAPQuery', (ctx) => handleSAPQuery(ctx.client, ctx.args));
397
+ reg('SAPWrite', (ctx) => handleSAPWrite(ctx.client, ctx.args, ctx.config, ctx.cache, ctx.cacheSecurity));
398
+ reg('SAPActivate', (ctx) => handleSAPActivate(ctx.client, ctx.args, ctx.cache, ctx.cacheSecurity));
399
+ reg('SAPNavigate', (ctx) => handleSAPNavigate(ctx.client, ctx.args));
400
+ reg('SAPLint', (ctx) => handleSAPLint(ctx.client, ctx.args, ctx.config));
401
+ reg('SAPDiagnose', (ctx) => handleSAPDiagnose(ctx.client, ctx.args));
402
+ reg('SAPTransport', (ctx) => handleSAPTransport(ctx.client, ctx.args));
403
+ reg('SAPGit', (ctx) => handleSAPGit(ctx.client, ctx.args, ctx.authInfo));
404
+ reg('SAPContext', (ctx) => handleSAPContext(ctx.client, ctx.args, ctx.cache, ctx.cacheSecurity));
405
+ reg('SAPManage', (ctx) => handleSAPManage(ctx.client, ctx.config, ctx.args, ctx.cache, ctx.isPerUserClient));
406
+ reg('SAP', async (ctx) => {
407
+ const expanded = expandHyperfocusedArgs(ctx.args);
408
+ if ('error' in expanded)
409
+ return errorResult(expanded.error);
410
+ return handleToolCall(ctx.client, ctx.config, expanded.toolName, expanded.expandedArgs, ctx.authInfo, ctx.server, ctx.cache, ctx.isPerUserClient);
411
+ });
412
+ _toolRegistry = r;
413
+ return r;
414
+ }
376
415
  /**
377
416
  * Handle an MCP tool call.
378
417
  *
@@ -387,6 +426,8 @@ export async function handleToolCall(client, config, toolName, args, authInfo, _
387
426
  // Build user context for audit logging
388
427
  const user = authInfo?.extra?.userName;
389
428
  const clientId = authInfo?.clientId;
429
+ // For plugin (Custom_*) tools, tag every audit event with the contributing plugin (spec §9).
430
+ const pluginName = getToolRegistry().get(toolName)?.pluginName;
390
431
  // Emit tool_call_start audit event
391
432
  logger.emitAudit({
392
433
  timestamp: new Date().toISOString(),
@@ -396,6 +437,7 @@ export async function handleToolCall(client, config, toolName, args, authInfo, _
396
437
  user,
397
438
  clientId,
398
439
  tool: toolName,
440
+ pluginName,
399
441
  args: sanitizeArgs(args),
400
442
  });
401
443
  // ─── Layer 2: per-user MCP tool-call rate limit ─────────────────────
@@ -471,7 +513,9 @@ export async function handleToolCall(client, config, toolName, args, authInfo, _
471
513
  actionOrType = `tadir_lookup_${src}`;
472
514
  }
473
515
  }
474
- const policy = getActionPolicy(toolName, actionOrType);
516
+ // Built-in policy from ACTION_POLICY; plugin (Custom_*) policy from the registry (FEAT-61).
517
+ // Kept here (not inside getActionPolicy) so validate-action-policy.ts stays built-ins-only.
518
+ const policy = getActionPolicy(toolName, actionOrType) ?? getToolRegistry().get(toolName)?.policy;
475
519
  if (authInfo && policy) {
476
520
  if (!hasRequiredScope(authInfo, policy.scope)) {
477
521
  logger.emitAudit({
@@ -534,59 +578,31 @@ export async function handleToolCall(client, config, toolName, args, authInfo, _
534
578
  // Run within request context so HTTP-level logs get the requestId
535
579
  return requestContext.run({ requestId: reqId, user, tool: toolName }, async () => {
536
580
  try {
537
- let result;
538
581
  const cacheSecurity = buildCacheSecurityContext(authInfo, isPerUserClient);
539
- switch (toolName) {
540
- case 'SAPRead':
541
- result = await handleSAPRead(client, args, cachingLayer, cacheSecurity);
542
- break;
543
- case 'SAPSearch':
544
- result = await handleSAPSearch(client, args);
545
- break;
546
- case 'SAPQuery':
547
- result = await handleSAPQuery(client, args);
548
- break;
549
- case 'SAPWrite':
550
- result = await handleSAPWrite(client, args, config, cachingLayer, cacheSecurity);
551
- break;
552
- case 'SAPActivate':
553
- result = await handleSAPActivate(client, args, cachingLayer, cacheSecurity);
554
- break;
555
- case 'SAPNavigate':
556
- result = await handleSAPNavigate(client, args);
557
- break;
558
- case 'SAPLint':
559
- result = await handleSAPLint(client, args, config);
560
- break;
561
- case 'SAPDiagnose':
562
- result = await handleSAPDiagnose(client, args);
563
- break;
564
- case 'SAPTransport':
565
- result = await handleSAPTransport(client, args);
566
- break;
567
- case 'SAPGit':
568
- result = await handleSAPGit(client, args, authInfo);
569
- break;
570
- case 'SAPContext':
571
- result = await handleSAPContext(client, args, cachingLayer, cacheSecurity);
572
- break;
573
- case 'SAPManage':
574
- result = await handleSAPManage(client, config, args, cachingLayer, isPerUserClient);
575
- break;
576
- case 'SAP': {
577
- // Hyperfocused mode: route to the appropriate handler
578
- const expanded = expandHyperfocusedArgs(args);
579
- if ('error' in expanded) {
580
- result = errorResult(expanded.error);
581
- break;
582
- }
583
- // Delegate to the real handler (recursive call, but with the mapped tool name)
584
- // The concrete tool/action policy is enforced by the recursive call.
585
- result = await handleToolCall(client, config, expanded.toolName, expanded.expandedArgs, authInfo, _server, cachingLayer, isPerUserClient);
586
- break;
587
- }
588
- default:
589
- result = errorResult(`Unknown tool: ${toolName}`);
582
+ // FEAT-61: inner dispatch is owned by the ToolRegistry (built-ins + plugin Custom_* tools).
583
+ // The shared pipeline above (rate-limit, scope, deny, Zod, audit) is unchanged; the registry
584
+ // only replaces the former `switch (toolName)`. See extension-framework-spec.md §4.
585
+ const entry = getToolRegistry().get(toolName);
586
+ let result;
587
+ // Plugin (Custom_*) tools are out of scope for hyperfocused mode (spec §1): hidden from
588
+ // tools/list AND not directly invocable, so a client that knows a Custom_ name can't reach a
589
+ // plugin tool here either. Built-ins (incl. the `SAP` wrapper) dispatch normally.
590
+ if (!entry || (config.toolMode === 'hyperfocused' && entry.source === 'plugin')) {
591
+ result = errorResult(`Unknown tool: ${toolName}`);
592
+ }
593
+ else {
594
+ const dispatchCtx = {
595
+ client,
596
+ config,
597
+ args,
598
+ cache: cachingLayer,
599
+ authInfo,
600
+ isPerUserClient,
601
+ cacheSecurity,
602
+ server: _server,
603
+ requestId: reqId,
604
+ };
605
+ result = await entry.invoke(dispatchCtx);
590
606
  }
591
607
  const durationMs = Date.now() - start;
592
608
  const fullText = result.content.map((c) => c.text).join('');
@@ -600,6 +616,7 @@ export async function handleToolCall(client, config, toolName, args, authInfo, _
600
616
  user,
601
617
  clientId,
602
618
  tool: toolName,
619
+ pluginName,
603
620
  durationMs,
604
621
  status: result.isError ? 'error' : 'success',
605
622
  errorMessage: result.isError ? result.content[0]?.text : undefined,
@@ -620,6 +637,7 @@ export async function handleToolCall(client, config, toolName, args, authInfo, _
620
637
  user,
621
638
  clientId,
622
639
  tool: toolName,
640
+ pluginName,
623
641
  durationMs,
624
642
  status: 'error',
625
643
  errorClass: classifyError(err),
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"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"}
@@ -301,8 +301,8 @@ export declare const SAPWriteSchema: z.ZodObject<{
301
301
  V4: "V4";
302
302
  }>>;
303
303
  category: z.ZodOptional<z.ZodEnum<{
304
- 0: "0";
305
304
  1: "1";
305
+ 0: "0";
306
306
  }>>;
307
307
  version: z.ZodOptional<z.ZodString>;
308
308
  lintBeforeWrite: z.ZodOptional<z.ZodPreprocess<z.ZodBoolean>>;
@@ -404,8 +404,8 @@ export declare const SAPWriteSchema: z.ZodObject<{
404
404
  V4: "V4";
405
405
  }>>;
406
406
  category: z.ZodOptional<z.ZodEnum<{
407
- 0: "0";
408
407
  1: "1";
408
+ 0: "0";
409
409
  }>>;
410
410
  version: z.ZodOptional<z.ZodString>;
411
411
  parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -521,8 +521,8 @@ export declare const SAPWriteSchemaBtp: z.ZodObject<{
521
521
  V4: "V4";
522
522
  }>>;
523
523
  category: z.ZodOptional<z.ZodEnum<{
524
- 0: "0";
525
524
  1: "1";
525
+ 0: "0";
526
526
  }>>;
527
527
  version: z.ZodOptional<z.ZodString>;
528
528
  lintBeforeWrite: z.ZodOptional<z.ZodPreprocess<z.ZodBoolean>>;
@@ -620,8 +620,8 @@ export declare const SAPWriteSchemaBtp: z.ZodObject<{
620
620
  V4: "V4";
621
621
  }>>;
622
622
  category: z.ZodOptional<z.ZodEnum<{
623
- 0: "0";
624
623
  1: "1";
624
+ 0: "0";
625
625
  }>>;
626
626
  version: z.ZodOptional<z.ZodString>;
627
627
  parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -0,0 +1,25 @@
1
+ import type { OperationTypeCode } from '../adt/safety.js';
2
+ import type { Scope } from '../authz/policy.js';
3
+ import type { ToolRegistry } from '../registry/tool-registry.js';
4
+ export interface ManifestTool {
5
+ name: string;
6
+ description: string;
7
+ scope: Scope;
8
+ opType?: OperationTypeCode;
9
+ inputSchema: Record<string, unknown>;
10
+ request: {
11
+ method: 'GET';
12
+ path: string;
13
+ pathParams?: Record<string, string>;
14
+ query?: Record<string, string>;
15
+ accept?: string;
16
+ };
17
+ response?: {
18
+ maxBytes?: number;
19
+ };
20
+ }
21
+ /** Validate a manifest's shape + security invariants. Throws on any violation (fail-fast). */
22
+ export declare function validateManifest(obj: unknown): ManifestTool;
23
+ /** Build + register a registry entry from a manifest object. */
24
+ export declare function registerManifestTool(registry: ToolRegistry, pluginName: string, manifestObj: unknown): void;
25
+ //# sourceMappingURL=manifest-interpreter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-interpreter.d.ts","sourceRoot":"","sources":["../../src/plugins/manifest-interpreter.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAsC,YAAY,EAAc,MAAM,8BAA8B,CAAC;AAKjH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE;QACP,MAAM,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC;AA8CD,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAwB3D;AAED,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,IAAI,CA8C3G"}
@@ -0,0 +1,124 @@
1
+ // Manifest interpreter — the declarative (JSON, no JavaScript) plugin tier. FEAT-61 PR4.
2
+ //
3
+ // A *.tool.json manifest declares a read-only tool whose handler is a single, fixed HTTP GET
4
+ // against the already-authenticated client (no host — paths only). The interpreter renders the
5
+ // request from validated args and runs it through the SAME gated SafeHttpClient as code plugins.
6
+ // v1 scope: GET only; POST/body + response extraction are a fast-follow.
7
+ // Security per docs/research/extension-framework-spec.md §8.1.
8
+ import { Ajv2020 } from 'ajv/dist/2020.js';
9
+ import { createSafeHttpClient } from '../server/safe-http-client.js';
10
+ const SCOPES = new Set(['read', 'write', 'data', 'sql', 'transports', 'git', 'admin']);
11
+ /** Resolve a `$.field` reference against the validated args (top-level fields only in v1). */
12
+ function resolveRef(ref, args) {
13
+ const m = /^\$\.([A-Za-z_]\w*)$/.exec(ref);
14
+ if (!m)
15
+ throw new Error(`manifest: unsupported reference '${ref}' (use "$.field")`);
16
+ return args[m[1]];
17
+ }
18
+ /** Validate + percent-encode a single path segment value (anti-traversal). */
19
+ function safeSegment(value, key) {
20
+ if (typeof value !== 'string' || value.length === 0) {
21
+ throw new Error(`manifest: path param '${key}' must be a non-empty string`);
22
+ }
23
+ // Reject traversal, control chars, and scheme/host smuggling. `/` IS allowed (SAP namespaced
24
+ // names) but is percent-encoded below, so it can't introduce extra path segments.
25
+ if (value.includes('..') || [...value].some((c) => c.charCodeAt(0) < 0x20) || value.includes('://')) {
26
+ throw new Error(`manifest: path param '${key}' contains a forbidden sequence`);
27
+ }
28
+ return encodeURIComponent(value);
29
+ }
30
+ function renderPath(template, pathParams, args) {
31
+ return template.replace(/\{([A-Za-z_]\w*)\}/g, (_full, key) => {
32
+ const ref = pathParams?.[key];
33
+ if (!ref)
34
+ throw new Error(`manifest: path placeholder '{${key}}' has no pathParams mapping`);
35
+ return safeSegment(resolveRef(ref, args), key);
36
+ });
37
+ }
38
+ function renderQuery(query, args) {
39
+ if (!query)
40
+ return '';
41
+ const usp = new URLSearchParams();
42
+ for (const [k, ref] of Object.entries(query)) {
43
+ const v = resolveRef(ref, args);
44
+ if (v === undefined || v === null || v === '')
45
+ continue; // omit-if-absent
46
+ usp.set(k, String(v));
47
+ }
48
+ const s = usp.toString();
49
+ return s ? `?${s}` : '';
50
+ }
51
+ /** Validate a manifest's shape + security invariants. Throws on any violation (fail-fast). */
52
+ export function validateManifest(obj) {
53
+ const m = obj;
54
+ if (!m || typeof m.name !== 'string' || !m.name.startsWith('Custom_')) {
55
+ throw new Error(`manifest: 'name' must be a string starting with 'Custom_' (got '${m?.name}')`);
56
+ }
57
+ if (!m.description || typeof m.description !== 'string') {
58
+ throw new Error(`manifest '${m.name}': 'description' is required`);
59
+ }
60
+ if (!m.scope || !SCOPES.has(m.scope)) {
61
+ throw new Error(`manifest '${m.name}': 'scope' must be one of ${[...SCOPES].join('/')}`);
62
+ }
63
+ if (!m.inputSchema || typeof m.inputSchema !== 'object') {
64
+ throw new Error(`manifest '${m.name}': 'inputSchema' (JSON Schema) is required`);
65
+ }
66
+ if (m.inputSchema.additionalProperties !== false) {
67
+ throw new Error(`manifest '${m.name}': inputSchema must set "additionalProperties": false`);
68
+ }
69
+ if (m.request?.method !== 'GET') {
70
+ throw new Error(`manifest '${m.name}': only request.method "GET" is supported in v1`);
71
+ }
72
+ if (typeof m.request.path !== 'string' || !m.request.path.startsWith('/') || m.request.path.includes('://')) {
73
+ throw new Error(`manifest '${m.name}': request.path must be an absolute SAP path with no host`);
74
+ }
75
+ return m;
76
+ }
77
+ /** Build + register a registry entry from a manifest object. */
78
+ export function registerManifestTool(registry, pluginName, manifestObj) {
79
+ const m = validateManifest(manifestObj);
80
+ const ajv = new Ajv2020({ strict: false, allErrors: true });
81
+ const validate = ajv.compile(m.inputSchema);
82
+ const opType = m.opType ?? 'R'; // GET → Read
83
+ const entry = {
84
+ name: m.name,
85
+ source: 'plugin',
86
+ pluginName,
87
+ policy: { scope: m.scope, opType },
88
+ listing: { description: m.description, inputSchema: m.inputSchema },
89
+ invoke: async (ctx) => {
90
+ const args = ctx.args;
91
+ if (!validate(args)) {
92
+ return {
93
+ content: [{ type: 'text', text: `Invalid arguments for ${m.name}: ${ajv.errorsText(validate.errors)}` }],
94
+ isError: true,
95
+ };
96
+ }
97
+ let path;
98
+ try {
99
+ // Anti-traversal / ref-resolution failures surface as an isError result (parity with the
100
+ // ajv branch above), not a thrown exception out of invoke.
101
+ path = renderPath(m.request.path, m.request.pathParams, args) + renderQuery(m.request.query, args);
102
+ }
103
+ catch (err) {
104
+ return {
105
+ content: [
106
+ {
107
+ type: 'text',
108
+ text: `Invalid arguments for ${m.name}: ${err instanceof Error ? err.message : String(err)}`,
109
+ },
110
+ ],
111
+ isError: true,
112
+ };
113
+ }
114
+ const http = createSafeHttpClient(ctx.client.http, ctx.client.safety, m.name);
115
+ const headers = m.request.accept ? { Accept: m.request.accept } : undefined;
116
+ const res = await http.get(path, headers);
117
+ const max = m.response?.maxBytes ?? 100_000;
118
+ const body = res.body.length > max ? `${res.body.slice(0, max)}\n…[truncated ${res.body.length - max} bytes]` : res.body;
119
+ return { content: [{ type: 'text', text: body }] };
120
+ },
121
+ };
122
+ registry.register(entry);
123
+ }
124
+ //# sourceMappingURL=manifest-interpreter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-interpreter.js","sourceRoot":"","sources":["../../src/plugins/manifest-interpreter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { PluginToolDefinition } from './types.js';
2
+ /**
3
+ * Identity helper for authoring a plugin tool — returns the definition unchanged but validates
4
+ * its shape eagerly (at module load) so authors get a clear error instead of a late runtime
5
+ * failure or a silently-dropped tool. The registry enforces the same invariants at registration;
6
+ * this is the friendly first line of defence.
7
+ */
8
+ export declare function defineTool(def: PluginToolDefinition): PluginToolDefinition;
9
+ //# sourceMappingURL=define-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-tool.d.ts","sourceRoot":"","sources":["../../src/public/define-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,oBAAoB,GAAG,oBAAoB,CAiB1E"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Identity helper for authoring a plugin tool — returns the definition unchanged but validates
3
+ * its shape eagerly (at module load) so authors get a clear error instead of a late runtime
4
+ * failure or a silently-dropped tool. The registry enforces the same invariants at registration;
5
+ * this is the friendly first line of defence.
6
+ */
7
+ export function defineTool(def) {
8
+ if (!def || typeof def.name !== 'string' || !def.name.startsWith('Custom_')) {
9
+ throw new Error(`defineTool: tool name must start with 'Custom_' (got '${def?.name}')`);
10
+ }
11
+ if (!def.description) {
12
+ throw new Error(`defineTool: '${def.name}' needs a description`);
13
+ }
14
+ if (!def.schema) {
15
+ throw new Error(`defineTool: '${def.name}' needs a Zod 'schema'`);
16
+ }
17
+ if (!def.policy?.scope || !def.policy.opType) {
18
+ throw new Error(`defineTool: '${def.name}' needs policy.scope + policy.opType`);
19
+ }
20
+ if (typeof def.handler !== 'function') {
21
+ throw new Error(`defineTool: '${def.name}' needs a 'handler' function`);
22
+ }
23
+ return def;
24
+ }
25
+ //# sourceMappingURL=define-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-tool.js","sourceRoot":"","sources":["../../src/public/define-tool.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAyB;IAClD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,yDAAyD,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,uBAAuB,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,wBAAwB,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,sCAAsC,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,8BAA8B,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { AdtApiError, AdtNetworkError, AdtSafetyError } from '../adt/errors.js';
2
+ export type { AdtResponse } from '../adt/http.js';
3
+ export { OperationType, type OperationTypeCode } from '../adt/safety.js';
4
+ export type { Scope } from '../authz/policy.js';
5
+ export type { ToolResult } from '../registry/tool-registry.js';
6
+ export type { SafeHttpClient } from '../server/safe-http-client.js';
7
+ export { defineTool } from './define-tool.js';
8
+ export type { ElicitOutcome, Plugin, PluginLogger, PluginToolDefinition, ReadOnlyAdtClient, ToolContext, } from './types.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzE,YAAY,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EACV,aAAa,EACb,MAAM,EACN,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,GACZ,MAAM,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ // `arc-1/public` — the @experimental extension API surface.
2
+ //
3
+ // Stability: this API may break in ANY release. A plugin declares `apiVersion` (a single integer
4
+ // fuse); the loader rejects a mismatch. No semver guarantee until the feature graduates.
5
+ // See docs/research/extension-framework-spec.md §2.
6
+ export { AdtApiError, AdtNetworkError, AdtSafetyError } from '../adt/errors.js';
7
+ // Re-exported building blocks (stable shapes plugins reference):
8
+ export { OperationType } from '../adt/safety.js';
9
+ export { defineTool } from './define-tool.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/public/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,iGAAiG;AACjG,yFAAyF;AACzF,oDAAoD;AAEpD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGhF,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAA0B,MAAM,kBAAkB,CAAC;AAIzE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { ToolContext } from './types.js';
2
+ export interface MockHttpCall {
3
+ method: 'GET' | 'HEAD';
4
+ path: string;
5
+ }
6
+ export interface MockToolContext extends ToolContext {
7
+ /** Every `ctx.http` call the handler made, in order. */
8
+ httpCalls: MockHttpCall[];
9
+ /** Every class name passed to `ctx.run.classRun`, in order. */
10
+ classRunCalls: string[];
11
+ }
12
+ export interface MockToolContextOptions {
13
+ /** Body returned by every `ctx.http` call (unless overridden per-path by `responses`). */
14
+ responseBody?: string;
15
+ /** Per-path response bodies; falls back to `responseBody` then ''. */
16
+ responses?: Record<string, string>;
17
+ /** Scopes on `ctx.authInfo` (default `['read']`). */
18
+ scopes?: string[];
19
+ requestId?: string;
20
+ /** Partial `ctx.client` for handlers that call high-level read methods. */
21
+ client?: Partial<ToolContext['client']>;
22
+ /** Console output returned by `ctx.run.classRun` (default ''). The mock never gates. */
23
+ classRunOutput?: string;
24
+ }
25
+ export declare function createMockToolContext(options?: MockToolContextOptions): MockToolContext;
26
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/public/testing.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,wDAAwD;IACxD,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,+DAA+D;IAC/D,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,eAAe,CAmC3F"}