@yadsh/dsh-qa-surface 0.15.6 → 0.15.7

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.
@@ -2,6 +2,7 @@ import type { Agent } from "@deepseek-ai/dsh-agent";
2
2
  import type { Context } from "@deepseek-ai/cordis";
3
3
  import type { PluginLogger } from "@yadsh/dsh-plugin-log";
4
4
  import { type QaSessionFacts } from "./accounts/store.js";
5
+ import type { QaIntegrationPrincipalBindings } from "./integration-principals.js";
5
6
  import type { QaResolvedSessionPolicy } from "./access/service.js";
6
7
  import { type QaSessionModelPolicy } from "./access/model-policy.js";
7
8
  import type { QaLockdownProof, ResolvedQaSurfaceConfig } from "./types.js";
@@ -52,6 +53,15 @@ export declare class QaPolicyAdmission {
52
53
  * the answer a stand that keeps roles elsewhere still gets.
53
54
  */
54
55
  private readonly modelPolicy?;
56
+ /**
57
+ * The runtime proof that a session was attested by its own account, which is
58
+ * what lets `@yadsh/dsh-qa-integrations` resolve a QA principal for a chat.
59
+ * The browser path fills it at its own remote, where the caller's identity is
60
+ * the token being compared (and an administrator reading a foreign chat is
61
+ * deliberately not a delegation); {@link secureSessionForUser} has no token
62
+ * to compare, so it fills it here, against the ownership record it checked.
63
+ */
64
+ private readonly principals?;
55
65
  private readonly appliedPolicies;
56
66
  /** Host-trusted principal-scoped plugin tools enabled outside static config. */
57
67
  private readonly principalScopedTools;
@@ -96,7 +106,16 @@ export declare class QaPolicyAdmission {
96
106
  * the chat to. Without a resolver the deployment pair is the whole of it —
97
107
  * the answer a stand that keeps roles elsewhere still gets.
98
108
  */
99
- modelPolicy?: ((sessionId: string) => QaSessionModelPolicy) | undefined);
109
+ modelPolicy?: ((sessionId: string) => QaSessionModelPolicy) | undefined,
110
+ /**
111
+ * The runtime proof that a session was attested by its own account, which is
112
+ * what lets `@yadsh/dsh-qa-integrations` resolve a QA principal for a chat.
113
+ * The browser path fills it at its own remote, where the caller's identity is
114
+ * the token being compared (and an administrator reading a foreign chat is
115
+ * deliberately not a delegation); {@link secureSessionForUser} has no token
116
+ * to compare, so it fills it here, against the ownership record it checked.
117
+ */
118
+ principals?: QaIntegrationPrincipalBindings | undefined);
100
119
  /**
101
120
  * Add tools whose own executor resolves the QA principal server-side.
102
121
  * Enabling the contributing plugin is the operator decision; model arguments
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yadsh/dsh-qa-surface",
3
- "version": "0.15.6",
3
+ "version": "0.15.7",
4
4
  "description": "A focused end-user QA surface backed by native DeepSeek Harness sessions",
5
5
  "repository": {
6
6
  "type": "git",
@@ -135,10 +135,10 @@
135
135
  "dependencies": {
136
136
  "yaml": "^2.9.0",
137
137
  "zod": "^4.4.3",
138
- "@yadsh/dsh-audit-ui": "^0.1.2",
139
138
  "@yadsh/dsh-audit-core": "^0.1.1",
140
- "@yadsh/dsh-plugin-log": "^0.4.1",
141
139
  "@yadsh/dsh-plugin-kit": "^0.5.0",
140
+ "@yadsh/dsh-audit-ui": "^0.1.2",
141
+ "@yadsh/dsh-plugin-log": "^0.4.1",
142
142
  "@yadsh/dsh-documents": "^0.6.3"
143
143
  },
144
144
  "devDependencies": {