@xenosystem/acp-agent 0.2.0 → 0.2.2

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 (67) hide show
  1. package/dist/acpAgentServer.d.ts +1 -0
  2. package/dist/acpAgentServer.d.ts.map +1 -1
  3. package/dist/acpAgentServer.js +164 -3
  4. package/dist/acpAgentServer.js.map +1 -1
  5. package/dist/cli.js +22 -1
  6. package/dist/cli.js.map +1 -1
  7. package/dist/config/providerPolicySchema.d.ts.map +1 -1
  8. package/dist/config/providerPolicySchema.js +3 -1
  9. package/dist/config/providerPolicySchema.js.map +1 -1
  10. package/dist/index.d.ts +2 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/providers/claudeLocalProvider.d.ts +3 -1
  15. package/dist/providers/claudeLocalProvider.d.ts.map +1 -1
  16. package/dist/providers/claudeLocalProvider.js +48 -5
  17. package/dist/providers/claudeLocalProvider.js.map +1 -1
  18. package/dist/providers/claudeStreamJsonParser.d.ts +36 -0
  19. package/dist/providers/claudeStreamJsonParser.d.ts.map +1 -1
  20. package/dist/providers/claudeStreamJsonParser.js +117 -3
  21. package/dist/providers/claudeStreamJsonParser.js.map +1 -1
  22. package/dist/providers/codexExecJsonParser.d.ts +2 -0
  23. package/dist/providers/codexExecJsonParser.d.ts.map +1 -1
  24. package/dist/providers/codexExecJsonParser.js +26 -3
  25. package/dist/providers/codexExecJsonParser.js.map +1 -1
  26. package/dist/providers/codexLocalProvider.d.ts +4 -1
  27. package/dist/providers/codexLocalProvider.d.ts.map +1 -1
  28. package/dist/providers/codexLocalProvider.js +74 -10
  29. package/dist/providers/codexLocalProvider.js.map +1 -1
  30. package/dist/providers/fixtureProvider.d.ts.map +1 -1
  31. package/dist/providers/fixtureProvider.js +89 -0
  32. package/dist/providers/fixtureProvider.js.map +1 -1
  33. package/dist/providers/providerEvents.d.ts +29 -0
  34. package/dist/providers/providerEvents.d.ts.map +1 -1
  35. package/dist/providers/providerEvents.js +15 -1
  36. package/dist/providers/providerEvents.js.map +1 -1
  37. package/dist/providers/providerRegistry.d.ts +24 -1
  38. package/dist/providers/providerRegistry.d.ts.map +1 -1
  39. package/dist/providers/providerRegistry.js +314 -1
  40. package/dist/providers/providerRegistry.js.map +1 -1
  41. package/dist/providers/providerTypes.d.ts +121 -1
  42. package/dist/providers/providerTypes.d.ts.map +1 -1
  43. package/dist/providers/residentContextTokens.d.ts +41 -0
  44. package/dist/providers/residentContextTokens.d.ts.map +1 -0
  45. package/dist/providers/residentContextTokens.js +55 -0
  46. package/dist/providers/residentContextTokens.js.map +1 -0
  47. package/dist/providers/xenoLocalProvider.d.ts.map +1 -1
  48. package/dist/providers/xenoLocalProvider.js +23 -0
  49. package/dist/providers/xenoLocalProvider.js.map +1 -1
  50. package/dist/providers/xenoSdkProvider.d.ts.map +1 -1
  51. package/dist/providers/xenoSdkProvider.js +23 -0
  52. package/dist/providers/xenoSdkProvider.js.map +1 -1
  53. package/dist/security/authPolicy.d.ts.map +1 -1
  54. package/dist/security/authPolicy.js +4 -1
  55. package/dist/security/authPolicy.js.map +1 -1
  56. package/dist/security/secretBinding.d.ts.map +1 -1
  57. package/dist/security/secretBinding.js +3 -1
  58. package/dist/security/secretBinding.js.map +1 -1
  59. package/dist/security/securityTypes.d.ts +13 -1
  60. package/dist/security/securityTypes.d.ts.map +1 -1
  61. package/dist/security/securityTypes.js +13 -0
  62. package/dist/security/securityTypes.js.map +1 -1
  63. package/dist/types.d.ts +9 -1
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/version.d.ts +1 -1
  66. package/dist/version.js +1 -1
  67. package/package.json +14 -28
@@ -68,7 +68,21 @@ export function providerEventToAcpUpdate(event) {
68
68
  }
69
69
  case "usage": {
70
70
  const p = event.payload;
71
- return { sessionUpdate: "usage_update", used: p.used, size: p.size };
71
+ // ⚠️ `_meta` ONLY when there is something to say. Attaching an empty envelope on every usage
72
+ // update would change the shape of a message every consumer already parses, for no signal —
73
+ // and would break the conformance test that pins this object exactly, which is precisely the
74
+ // check that tells us whether a change is additive.
75
+ return p.compaction
76
+ ? {
77
+ sessionUpdate: "usage_update",
78
+ used: p.used,
79
+ size: p.size,
80
+ // The XENO extension namespace, same convention as the steer and context-inject
81
+ // capabilities. ACP itself has no compaction vocabulary, so this is the sanctioned way
82
+ // to carry one without inventing a session-update type nobody else understands.
83
+ _meta: { "xeno.dev": { compaction: p.compaction } },
84
+ }
85
+ : { sessionUpdate: "usage_update", used: p.used, size: p.size };
72
86
  }
73
87
  // Terminal + diagnostic events do not map to ACP session/update notifications.
74
88
  case "completed":
@@ -1 +1 @@
1
- {"version":3,"file":"providerEvents.js","sourceRoot":"","sources":["../../src/providers/providerEvents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providerEvents.js","sourceRoot":"","sources":["../../src/providers/providerEvents.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  * returns a safe error. It does NOT import or depend on XENO Hub.
10
10
  */
11
11
  import { type SafetyResult } from "./providerSafety.js";
12
- import type { ProviderDefinition, ProviderRuntime, ProviderRuntimeConfig } from "./providerTypes.js";
12
+ import type { ProviderDefinition, ProviderNativeLauncherDescriptor, ProviderNativeLauncherRequest, ProviderRuntime, ProviderRuntimeConfig, ProviderSessionCapabilities, ProviderSessionCapabilityContext } from "./providerTypes.js";
13
13
  export declare class ProviderRegistry {
14
14
  private readonly defs;
15
15
  register(def: ProviderDefinition): this;
@@ -19,6 +19,20 @@ export declare class ProviderRegistry {
19
19
  safetyOf(id: string): SafetyResult | undefined;
20
20
  /** A provider is runnable only if it is enabled AND passes the full capability gate. */
21
21
  isRunnable(id: string): boolean;
22
+ /**
23
+ * Resolve effective session capabilities for a provider, guaranteeing advertisement
24
+ * cannot drift from implementation (native attach requires factory presence + durable exact resume + non-empty resumeCompatibilityKey).
25
+ */
26
+ sessionCapabilitiesOf(id: string, context?: ProviderSessionCapabilityContext): ProviderSessionCapabilities | undefined;
27
+ /**
28
+ * Build a typed native TUI launcher descriptor for an enabled provider with native attach capability.
29
+ * Throws a safe ProviderError if the provider is unknown, disabled, or lacks a native launcher factory.
30
+ */
31
+ createNativeLauncher(id: string, request: ProviderNativeLauncherRequest): ProviderNativeLauncherDescriptor;
32
+ /**
33
+ * Resolve a typed native TUI launcher descriptor, or return undefined if unsupported/unavailable.
34
+ */
35
+ resolveNativeLauncher(id: string, request: ProviderNativeLauncherRequest): ProviderNativeLauncherDescriptor | undefined;
22
36
  /** Build a runtime, or throw a SAFE ProviderError (unknown / not-implemented / blocked). */
23
37
  createRuntime(id: string, config?: ProviderRuntimeConfig): ProviderRuntime;
24
38
  }
@@ -28,4 +42,13 @@ export declare function createPlaceholderDefinitions(): ProviderDefinition[];
28
42
  * (XACP-014 — real but approval-gated), and the disabled third-party placeholders.
29
43
  */
30
44
  export declare function createDefaultRegistry(): ProviderRegistry;
45
+ export declare function isValidNativeSessionId(locator: unknown): locator is string;
46
+ export declare function validateNativeSessionId(locator: unknown): string;
47
+ export declare function validateNativeLauncherCwd(cwd: unknown): string | undefined;
48
+ export declare function validateModelId(modelId: unknown): string;
49
+ export declare function validateConfigurationFingerprint(fingerprint: unknown): string;
50
+ export declare function validateSessionCapabilityContext(context: unknown): ProviderSessionCapabilityContext;
51
+ export declare function validateNativeLauncherRequest(request: unknown): ProviderNativeLauncherRequest;
52
+ export declare function resolveProviderResumeCompatibilityKey(def: ProviderDefinition, context?: ProviderSessionCapabilityContext): string | undefined;
53
+ export declare function resolveProviderSessionCapabilities(def: ProviderDefinition, context?: ProviderSessionCapabilityContext): ProviderSessionCapabilities;
31
54
  //# sourceMappingURL=providerRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"providerRegistry.d.ts","sourceRoot":"","sources":["../../src/providers/providerRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,EAA0B,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUhF,OAAO,KAAK,EAEV,kBAAkB,EAGlB,eAAe,EACf,qBAAqB,EAEtB,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyC;IAE9D,QAAQ,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI;IAKvC,IAAI,IAAI,kBAAkB,EAAE;IAG5B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAG/C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAK9C,wFAAwF;IACxF,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAK/B,4FAA4F;IAC5F,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,qBAAqB,GAAG,eAAe;CAuC3E;AAkID,wBAAgB,4BAA4B,IAAI,kBAAkB,EAAE,CAsBnE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CASxD"}
1
+ {"version":3,"file":"providerRegistry.d.ts","sourceRoot":"","sources":["../../src/providers/providerRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EAA0B,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUhF,OAAO,KAAK,EAGV,kBAAkB,EAGlB,gCAAgC,EAChC,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,gCAAgC,EAEjC,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyC;IAE9D,QAAQ,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI;IAKvC,IAAI,IAAI,kBAAkB,EAAE;IAG5B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAG/C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAK9C,wFAAwF;IACxF,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAK/B;;;OAGG;IACH,qBAAqB,CACnB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,gCAAgC,GACzC,2BAA2B,GAAG,SAAS;IAM1C;;;OAGG;IACH,oBAAoB,CAClB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,6BAA6B,GACrC,gCAAgC;IA6BnC;;OAEG;IACH,qBAAqB,CACnB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,6BAA6B,GACrC,gCAAgC,GAAG,SAAS;IAQ/C,4FAA4F;IAC5F,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,qBAAqB,GAAG,eAAe;CAuC3E;AAkID,wBAAgB,4BAA4B,IAAI,kBAAkB,EAAE,CA6BnE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CASxD;AACD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,MAAM,CAM1E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CA4BhE;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CA6B1E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CA4BxD;AAED,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CA4B7E;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,gCAAgC,CAUnG;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,6BAA6B,CAkD7F;AAED,wBAAgB,qCAAqC,CACnD,GAAG,EAAE,kBAAkB,EACvB,OAAO,CAAC,EAAE,gCAAgC,GACzC,MAAM,GAAG,SAAS,CAUpB;AAED,wBAAgB,kCAAkC,CAChD,GAAG,EAAE,kBAAkB,EACvB,OAAO,CAAC,EAAE,gCAAgC,GACzC,2BAA2B,CAyD7B"}
@@ -8,7 +8,8 @@
8
8
  * implemented. The registry never falls back to fixture for an unknown/blocked provider - it
9
9
  * returns a safe error. It does NOT import or depend on XENO Hub.
10
10
  */
11
- import { ProviderNotImplementedError, ProviderSafetyViolationError, ProviderUnavailableError, } from "./providerErrors.js";
11
+ import { isAbsolute } from "node:path";
12
+ import { ProviderConfigurationError, ProviderNotImplementedError, ProviderSafetyViolationError, ProviderUnavailableError, } from "./providerErrors.js";
12
13
  import { validateProviderSafety } from "./providerSafety.js";
13
14
  import { createFixtureProviderDefinition } from "./fixtureProvider.js";
14
15
  import { createXenoLocalDefinition } from "./xenoLocalProvider.js";
@@ -41,6 +42,59 @@ export class ProviderRegistry {
41
42
  const def = this.defs.get(id);
42
43
  return Boolean(def && def.enabled && isGateAllowed(def));
43
44
  }
45
+ /**
46
+ * Resolve effective session capabilities for a provider, guaranteeing advertisement
47
+ * cannot drift from implementation (native attach requires factory presence + durable exact resume + non-empty resumeCompatibilityKey).
48
+ */
49
+ sessionCapabilitiesOf(id, context) {
50
+ const def = this.defs.get(id);
51
+ if (!def)
52
+ return undefined;
53
+ return resolveProviderSessionCapabilities(def, context);
54
+ }
55
+ /**
56
+ * Build a typed native TUI launcher descriptor for an enabled provider with native attach capability.
57
+ * Throws a safe ProviderError if the provider is unknown, disabled, or lacks a native launcher factory.
58
+ */
59
+ createNativeLauncher(id, request) {
60
+ if (typeof id !== "string" || !id.trim()) {
61
+ throw new ProviderUnavailableError({
62
+ safeMessage: "providerId must be a non-empty string",
63
+ });
64
+ }
65
+ const def = this.defs.get(id.trim());
66
+ if (!def) {
67
+ throw new ProviderUnavailableError({
68
+ safeMessage: `unknown provider: ${id}`,
69
+ providerId: id,
70
+ });
71
+ }
72
+ if (!def.enabled) {
73
+ throw new ProviderNotImplementedError({
74
+ safeMessage: `provider '${id}' is not implemented (blocked)`,
75
+ providerId: id,
76
+ });
77
+ }
78
+ if (typeof def.createNativeLauncher !== "function") {
79
+ throw new ProviderUnavailableError({
80
+ safeMessage: `provider '${id}' does not support native TUI launch`,
81
+ providerId: id,
82
+ });
83
+ }
84
+ const validated = validateNativeLauncherRequest(request);
85
+ return def.createNativeLauncher(validated);
86
+ }
87
+ /**
88
+ * Resolve a typed native TUI launcher descriptor, or return undefined if unsupported/unavailable.
89
+ */
90
+ resolveNativeLauncher(id, request) {
91
+ try {
92
+ return this.createNativeLauncher(id, request);
93
+ }
94
+ catch {
95
+ return undefined;
96
+ }
97
+ }
44
98
  /** Build a runtime, or throw a SAFE ProviderError (unknown / not-implemented / blocked). */
45
99
  createRuntime(id, config) {
46
100
  const def = this.defs.get(id);
@@ -210,6 +264,13 @@ export function createPlaceholderDefinitions() {
210
264
  authPolicy: authPolicyFor(s.secretId, s.secretLabel, s.secretKind),
211
265
  egressPolicy: egressPolicyFor(s.host),
212
266
  metadata: s.metadata,
267
+ sessionCapabilities: {
268
+ chatExecution: { status: "unsupported", source: "policy", reason: `Placeholder for ${s.displayName} is not implemented` },
269
+ durableResume: { status: "unsupported", source: "policy", reason: `Placeholder for ${s.displayName} is not implemented` },
270
+ nativeTuiAttach: { status: "unsupported", source: "policy", reason: `Placeholder for ${s.displayName} is not implemented` },
271
+ reconciliation: { status: "unsupported", source: "policy", reason: `Placeholder for ${s.displayName} is not implemented` },
272
+ modelSwitchInPlace: { status: "unsupported", source: "policy", reason: `Placeholder for ${s.displayName} is not implemented` },
273
+ },
213
274
  createRuntime() {
214
275
  throw new ProviderNotImplementedError({
215
276
  safeMessage: `provider '${s.id}' is not implemented (blocked)`,
@@ -233,4 +294,256 @@ export function createDefaultRegistry() {
233
294
  registry.register(p);
234
295
  return registry;
235
296
  }
297
+ export function isValidNativeSessionId(locator) {
298
+ if (typeof locator !== "string")
299
+ return false;
300
+ const trimmed = locator.trim();
301
+ if (trimmed.length === 0 || trimmed.length > 256)
302
+ return false;
303
+ if (trimmed.startsWith("-"))
304
+ return false;
305
+ return /^[a-zA-Z0-9_.:-]+$/.test(trimmed);
306
+ }
307
+ export function validateNativeSessionId(locator) {
308
+ if (typeof locator !== "string") {
309
+ throw new ProviderConfigurationError({
310
+ safeMessage: "nativeSessionId must be a non-empty string",
311
+ });
312
+ }
313
+ const trimmed = locator.trim();
314
+ if (trimmed.length === 0) {
315
+ throw new ProviderConfigurationError({
316
+ safeMessage: "nativeSessionId cannot be empty",
317
+ });
318
+ }
319
+ if (trimmed.length > 256) {
320
+ throw new ProviderConfigurationError({
321
+ safeMessage: "nativeSessionId exceeds maximum allowed length of 256 characters",
322
+ });
323
+ }
324
+ if (trimmed.startsWith("-")) {
325
+ throw new ProviderConfigurationError({
326
+ safeMessage: "nativeSessionId cannot start with a hyphen (flag injection prevention)",
327
+ });
328
+ }
329
+ if (!/^[a-zA-Z0-9_.:-]+$/.test(trimmed)) {
330
+ throw new ProviderConfigurationError({
331
+ safeMessage: "nativeSessionId contains invalid characters; must match /^[a-zA-Z0-9_.:-]+$/",
332
+ });
333
+ }
334
+ return trimmed;
335
+ }
336
+ export function validateNativeLauncherCwd(cwd) {
337
+ if (cwd === undefined)
338
+ return undefined;
339
+ if (typeof cwd !== "string") {
340
+ throw new ProviderConfigurationError({
341
+ safeMessage: "cwd must be a string",
342
+ });
343
+ }
344
+ const trimmed = cwd.trim();
345
+ if (trimmed.length === 0) {
346
+ throw new ProviderConfigurationError({
347
+ safeMessage: "cwd cannot be empty",
348
+ });
349
+ }
350
+ if (trimmed.length > 4096) {
351
+ throw new ProviderConfigurationError({
352
+ safeMessage: "cwd exceeds maximum allowed length of 4096 characters",
353
+ });
354
+ }
355
+ if (!isAbsolute(trimmed)) {
356
+ throw new ProviderConfigurationError({
357
+ safeMessage: "cwd must be an absolute path",
358
+ });
359
+ }
360
+ if (/[\u0000-\u001f\u007f\r\n]/.test(trimmed)) {
361
+ throw new ProviderConfigurationError({
362
+ safeMessage: "cwd cannot contain control characters or newlines",
363
+ });
364
+ }
365
+ return trimmed;
366
+ }
367
+ export function validateModelId(modelId) {
368
+ if (typeof modelId !== "string") {
369
+ throw new ProviderConfigurationError({
370
+ safeMessage: "modelId must be a string",
371
+ });
372
+ }
373
+ const trimmed = modelId.trim();
374
+ if (trimmed.length === 0) {
375
+ throw new ProviderConfigurationError({
376
+ safeMessage: "modelId cannot be empty",
377
+ });
378
+ }
379
+ if (trimmed.length > 256) {
380
+ throw new ProviderConfigurationError({
381
+ safeMessage: "modelId exceeds maximum allowed length of 256 characters",
382
+ });
383
+ }
384
+ if (trimmed.startsWith("-")) {
385
+ throw new ProviderConfigurationError({
386
+ safeMessage: "modelId cannot start with a hyphen (flag injection prevention)",
387
+ });
388
+ }
389
+ if (!/^[a-zA-Z0-9_.:/@-]+$/.test(trimmed)) {
390
+ throw new ProviderConfigurationError({
391
+ safeMessage: "modelId contains invalid characters; must match /^[a-zA-Z0-9_.:/@-]+$/",
392
+ });
393
+ }
394
+ return trimmed;
395
+ }
396
+ export function validateConfigurationFingerprint(fingerprint) {
397
+ if (typeof fingerprint !== "string") {
398
+ throw new ProviderConfigurationError({
399
+ safeMessage: "configurationFingerprint must be a string",
400
+ });
401
+ }
402
+ const trimmed = fingerprint.trim();
403
+ if (trimmed.length === 0) {
404
+ throw new ProviderConfigurationError({
405
+ safeMessage: "configurationFingerprint cannot be empty",
406
+ });
407
+ }
408
+ if (trimmed.length > 256) {
409
+ throw new ProviderConfigurationError({
410
+ safeMessage: "configurationFingerprint exceeds maximum allowed length of 256 characters",
411
+ });
412
+ }
413
+ if (trimmed.startsWith("-")) {
414
+ throw new ProviderConfigurationError({
415
+ safeMessage: "configurationFingerprint cannot start with a hyphen (flag injection prevention)",
416
+ });
417
+ }
418
+ if (!/^[a-zA-Z0-9_.:/@-]+$/.test(trimmed)) {
419
+ throw new ProviderConfigurationError({
420
+ safeMessage: "configurationFingerprint contains invalid characters; must match /^[a-zA-Z0-9_.:/@-]+$/",
421
+ });
422
+ }
423
+ return trimmed;
424
+ }
425
+ export function validateSessionCapabilityContext(context) {
426
+ if (typeof context !== "object" || context === null || Array.isArray(context)) {
427
+ throw new ProviderConfigurationError({
428
+ safeMessage: "session capability context must be an object with modelId and configurationFingerprint",
429
+ });
430
+ }
431
+ const raw = context;
432
+ const modelId = validateModelId(raw.modelId);
433
+ const configurationFingerprint = validateConfigurationFingerprint(raw.configurationFingerprint);
434
+ return { modelId, configurationFingerprint };
435
+ }
436
+ export function validateNativeLauncherRequest(request) {
437
+ if (typeof request !== "object" || request === null || Array.isArray(request)) {
438
+ throw new ProviderConfigurationError({
439
+ safeMessage: "native launcher request must be an object with a valid nativeSessionId",
440
+ });
441
+ }
442
+ const raw = request;
443
+ if (raw.configuredExecutable !== undefined) {
444
+ throw new ProviderConfigurationError({
445
+ safeMessage: "configuredExecutable is not permitted; executable resolution is provider-owned",
446
+ });
447
+ }
448
+ if (raw.configuredArgs !== undefined) {
449
+ throw new ProviderConfigurationError({
450
+ safeMessage: "configuredArgs is not permitted; argument resolution is provider-owned",
451
+ });
452
+ }
453
+ if (raw.command !== undefined) {
454
+ throw new ProviderConfigurationError({
455
+ safeMessage: "command is not permitted; launchers return typed argv descriptors",
456
+ });
457
+ }
458
+ if (raw.certified !== undefined || raw.certificationStatus !== undefined) {
459
+ throw new ProviderConfigurationError({
460
+ safeMessage: "client-attested certification flags are not permitted",
461
+ });
462
+ }
463
+ if (raw.providerId !== undefined || raw.expectedProviderId !== undefined) {
464
+ throw new ProviderConfigurationError({
465
+ safeMessage: "caller-supplied providerId alias overrides are not permitted in launcher requests",
466
+ });
467
+ }
468
+ if (raw.env !== undefined) {
469
+ throw new ProviderConfigurationError({
470
+ safeMessage: "env is not permitted in launcher requests; host/PTY layer owns environment",
471
+ });
472
+ }
473
+ if (raw.authoritySnapshot !== undefined) {
474
+ throw new ProviderConfigurationError({
475
+ safeMessage: "authoritySnapshot is not permitted in launcher requests; host/PTY layer owns authority",
476
+ });
477
+ }
478
+ const nativeSessionId = validateNativeSessionId(raw.nativeSessionId);
479
+ const cwd = validateNativeLauncherCwd(raw.cwd);
480
+ return {
481
+ nativeSessionId,
482
+ ...(cwd ? { cwd } : {}),
483
+ };
484
+ }
485
+ export function resolveProviderResumeCompatibilityKey(def, context) {
486
+ if (!context)
487
+ return undefined;
488
+ const validated = validateSessionCapabilityContext(context);
489
+ if (typeof def.resolveResumeCompatibilityKey === "function") {
490
+ return def.resolveResumeCompatibilityKey(validated);
491
+ }
492
+ if (def.sessionCapabilities?.durableResume?.status === "available") {
493
+ return `${def.id}:${validated.modelId}:${validated.configurationFingerprint}`;
494
+ }
495
+ return undefined;
496
+ }
497
+ export function resolveProviderSessionCapabilities(def, context) {
498
+ const baseCaps = def.sessionCapabilities;
499
+ const hasFactory = typeof def.createNativeLauncher === "function";
500
+ const hasDurableResume = baseCaps?.durableResume?.status === "available";
501
+ let resumeKey;
502
+ if (context !== undefined) {
503
+ resumeKey = resolveProviderResumeCompatibilityKey(def, context)?.trim();
504
+ }
505
+ const hasResumeKey = Boolean(resumeKey && resumeKey.length > 0);
506
+ const nativeAttachAvailable = Boolean(def.enabled &&
507
+ hasFactory &&
508
+ hasDurableResume &&
509
+ hasResumeKey &&
510
+ baseCaps?.nativeTuiAttach?.status === "available");
511
+ const nativeTuiAttach = nativeAttachAvailable
512
+ ? (baseCaps?.nativeTuiAttach ?? { status: "available", source: "host" })
513
+ : {
514
+ status: "unsupported",
515
+ source: "policy",
516
+ reason: !def.enabled
517
+ ? `Provider '${def.id}' is disabled / not implemented`
518
+ : !hasFactory
519
+ ? `Provider '${def.id}' has no native launcher factory`
520
+ : !hasDurableResume
521
+ ? `Provider '${def.id}' does not support durable resume`
522
+ : !context
523
+ ? `Provider '${def.id}' requires session capability context (modelId and configurationFingerprint) to resolve native attach compatibility`
524
+ : !hasResumeKey
525
+ ? `Provider '${def.id}' has no resumeCompatibilityKey`
526
+ : (baseCaps?.nativeTuiAttach?.reason ?? `Provider '${def.id}' does not support native TUI attach`),
527
+ };
528
+ return {
529
+ chatExecution: baseCaps?.chatExecution ?? (def.enabled ? { status: "available", source: "provider" } : { status: "unsupported", source: "policy" }),
530
+ durableResume: baseCaps?.durableResume ?? {
531
+ status: "unsupported",
532
+ source: "policy",
533
+ reason: `Provider '${def.id}' does not support durable resume`,
534
+ },
535
+ nativeTuiAttach,
536
+ reconciliation: {
537
+ status: "unsupported",
538
+ source: "policy",
539
+ reason: "Structured reconciliation adapter is not yet implemented",
540
+ },
541
+ modelSwitchInPlace: baseCaps?.modelSwitchInPlace ?? {
542
+ status: "unsupported",
543
+ source: "policy",
544
+ reason: `Provider '${def.id}' does not support in-place model switching`,
545
+ },
546
+ ...(hasResumeKey ? { resumeCompatibilityKey: resumeKey } : {}),
547
+ };
548
+ }
236
549
  //# sourceMappingURL=providerRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"providerRegistry.js","sourceRoot":"","sources":["../../src/providers/providerRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providerRegistry.js","sourceRoot":"","sources":["../../src/providers/providerRegistry.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,41 @@ export interface ProviderIoAuthority {
37
37
  filesystem: IoAuthorityLevel;
38
38
  terminal: IoAuthorityLevel;
39
39
  }
40
+ export type ProviderCapabilityStatus = "available" | "degraded" | "blocked" | "unsupported";
41
+ export type ProviderCapabilitySource = "provider" | "host" | "policy";
42
+ export interface ProviderCapabilityDescriptor {
43
+ status: ProviderCapabilityStatus;
44
+ source: ProviderCapabilitySource;
45
+ reason?: string;
46
+ version?: string;
47
+ }
48
+ export interface ProviderSessionCapabilityContext {
49
+ modelId: string;
50
+ configurationFingerprint: string;
51
+ }
52
+ export type ProviderResumeCompatibilityKeyResolver = (context: ProviderSessionCapabilityContext) => string;
53
+ export interface ProviderSessionCapabilities {
54
+ chatExecution?: ProviderCapabilityDescriptor;
55
+ durableResume?: ProviderCapabilityDescriptor;
56
+ nativeTuiAttach?: ProviderCapabilityDescriptor;
57
+ reconciliation?: ProviderCapabilityDescriptor;
58
+ modelSwitchInPlace?: ProviderCapabilityDescriptor;
59
+ resumeCompatibilityKey?: string;
60
+ }
61
+ export interface ProviderNativeTuiLauncherDescriptor {
62
+ kind: "native-tui";
63
+ providerId: string;
64
+ executable: string;
65
+ args: string[];
66
+ cwd?: string;
67
+ }
68
+ export type ProviderNativeLauncherDescriptor = ProviderNativeTuiLauncherDescriptor;
69
+ export type ProviderNativeTuiLauncher = ProviderNativeTuiLauncherDescriptor;
70
+ export interface ProviderNativeLauncherRequest {
71
+ nativeSessionId: string;
72
+ cwd?: string;
73
+ }
74
+ export type ProviderNativeLauncherFactory = (request: ProviderNativeLauncherRequest) => ProviderNativeLauncherDescriptor;
40
75
  export interface ProviderRuntimeConfig {
41
76
  /** Provider-specific options (e.g. fixture's delayMs/fail/stderrTest). */
42
77
  options?: Record<string, unknown>;
@@ -47,6 +82,12 @@ export interface ProviderSession {
47
82
  sessionId: string;
48
83
  createdAt: string;
49
84
  }
85
+ export interface ProviderSessionStartOptions {
86
+ /** ACP session id allocated by the embedding agent endpoint. */
87
+ sessionId?: string;
88
+ /** Validated native continuation id supplied through XENO session-resume metadata. */
89
+ nativeSessionId?: string;
90
+ }
50
91
  export interface ProviderPromptRequest {
51
92
  sessionId: string;
52
93
  requestId: string;
@@ -68,6 +109,11 @@ export interface ProviderUsage {
68
109
  export interface ProviderPromptResult {
69
110
  disposition: ProviderDisposition;
70
111
  usage?: ProviderUsage;
112
+ /**
113
+ * Bounded, non-secret identifier for the provider's native conversation.
114
+ * Hosts may persist this only through the XENO session-resume metadata channel.
115
+ */
116
+ nativeSessionId?: string;
71
117
  /** Present when disposition === "failed"; carries a safe message. */
72
118
  error?: ProviderError;
73
119
  }
@@ -125,13 +171,81 @@ export interface ProviderRuntimeContext {
125
171
  /** Optional client-mediated host helpers exposed by XENO ACP extensions. */
126
172
  host?: ProviderHostContext;
127
173
  }
174
+ /**
175
+ * The outcome of a mid-turn correction.
176
+ *
177
+ * 🔴 `accepted: false` is a RESULT, not an error. A provider that is between tool calls, or
178
+ * whose upstream will not take input mid-stream, must be able to say so — and the client must be
179
+ * able to tell that apart from "delivered". A correction the user believes landed and did not is
180
+ * the worst outcome available here.
181
+ */
182
+ export interface ProviderSteerResult {
183
+ accepted: boolean;
184
+ /** Why not. Shown to the operator, so it must name something they can act on. */
185
+ reason?: string;
186
+ }
187
+ /**
188
+ * The outcome of a context injection — XENO SPAWN §2.2 pin-forward.
189
+ *
190
+ * 🔴 INJECTION IS NOT A PROMPT, AND THAT DISTINCTION IS THE WHOLE FEATURE. §2.2 makes every canvas
191
+ * node addressable so any node can be pushed back into any agent's context on demand — the canvas
192
+ * becoming the memory the agents are missing. Sending that node as `session/prompt` instead would
193
+ * make the agent ANSWER it: a pinned design decision arrives as a user message and gets a reply
194
+ * nobody asked for, and the timeline records a turn the user did not intend.
195
+ *
196
+ * `messageId` is what the content became, so a caller can correlate the node it pinned with the
197
+ * message the agent now holds. §3 makes the graph a RECORD, and a re-injection that left no trace
198
+ * would break "what did this agent know?" — which is the backward-reachable set from a spawn point
199
+ * and is only answerable if every arrival into context is an edge.
200
+ */
201
+ export interface ProviderContextInjectResult {
202
+ accepted: boolean;
203
+ /** Why not. Shown to the operator, so it must name something they can act on. */
204
+ reason?: string;
205
+ /** What the injected content became in the session's history, when the provider can say. */
206
+ messageId?: string;
207
+ }
208
+ /** What a caller is asking to push back into an agent's context. */
209
+ export interface ProviderContextInjectRequest {
210
+ sessionId: string;
211
+ content: string;
212
+ /** Human-facing name of the pinned node, for the agent and for the timeline. */
213
+ label?: string;
214
+ /** The canvas node this came from (§2.2 addressability). Opaque to the provider. */
215
+ sourceNodeId?: string;
216
+ }
128
217
  /** A live provider instance. One per agent process; sessions/prompts run against it. */
129
218
  export interface ProviderRuntime {
130
219
  readonly definition: ProviderDefinition;
131
220
  initialize(): Promise<void> | void;
132
- createSession(): ProviderSession;
221
+ createSession(options?: ProviderSessionStartOptions): ProviderSession;
133
222
  prompt(request: ProviderPromptRequest, ctx: ProviderRuntimeContext): Promise<ProviderPromptResult>;
134
223
  cancel(sessionId: string): void;
224
+ /**
225
+ * Deliver a correction into a RUNNING prompt (ADE §5.5).
226
+ *
227
+ * ⚠️ OPTIONAL, and its presence IS the capability declaration — `acpAgentServer` derives what
228
+ * it advertises from `typeof runtime.steer === 'function'` rather than from a hand-written flag,
229
+ * so the advertisement cannot drift from the implementation.
230
+ *
231
+ * ⚠️ Deliberately NOT added to `ProviderCapabilitySet`: that is a required-field interface
232
+ * implemented by every provider definition, so a new field there would be a breaking change for
233
+ * a fact already derivable from this method.
234
+ */
235
+ steer?(sessionId: string, instruction: string): ProviderSteerResult | Promise<ProviderSteerResult>;
236
+ /**
237
+ * Push content back into a session's context WITHOUT it being a turn (XENO SPAWN §2.2).
238
+ *
239
+ * ⚠️ OPTIONAL, and its presence IS the capability declaration — exactly as `steer` above.
240
+ * `acpAgentServer` derives what it advertises from `typeof runtime.injectContext === 'function'`,
241
+ * so the advertisement cannot drift from the implementation.
242
+ *
243
+ * ⚠️ Unlike `steer`, this is NOT restricted to a running prompt. Pin-forward is normally a
244
+ * BETWEEN-turns act: the operator pins a node so the agent has it for whatever comes next.
245
+ * A provider that cannot accept content mid-prompt says so in its result rather than having the
246
+ * server guess on its behalf.
247
+ */
248
+ injectContext?(request: ProviderContextInjectRequest): ProviderContextInjectResult | Promise<ProviderContextInjectResult>;
135
249
  dispose(): Promise<void> | void;
136
250
  diagnostics(): Record<string, unknown>;
137
251
  }
@@ -156,6 +270,12 @@ export interface ProviderDefinition {
156
270
  metadata?: ProviderMetadata;
157
271
  /** Provider-owned model/default discovery metadata. Downstream UIs must not hardcode this. */
158
272
  modelDiscovery?: ProviderModelDiscovery;
273
+ /** Provider-owned session/lane capabilities (XACP foundation for cockpit lanes & native TUI). */
274
+ sessionCapabilities?: ProviderSessionCapabilities;
275
+ /** Optional provider-owned factory for interactive native TUI launch descriptors. */
276
+ createNativeLauncher?: ProviderNativeLauncherFactory;
277
+ /** Optional provider-owned resolver for exact resume compatibility keys. */
278
+ resolveResumeCompatibilityKey?: ProviderResumeCompatibilityKeyResolver;
159
279
  /** Build a runtime. MUST throw a `ProviderError` if the provider is not enabled. */
160
280
  createRuntime(config?: ProviderRuntimeConfig): ProviderRuntime;
161
281
  }