@dsh-enhanced/assistant-health 0.1.7 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -2
- package/lib/service.d.ts +17 -2
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +308 -11
- package/lib/service.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.d.ts.map +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -9,9 +9,48 @@ dsh plugin --profile web add @dsh-enhanced/assistant-health
|
|
|
9
9
|
dsh --profile web --dump-config
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
默认把 Policy、Memory、Wiki、Automations 设为 required;Evaluation、Preference Learning、Evolution、Delivery、Credentials、Event、Heartbeat、Lark 未安装不会让 core readiness
|
|
12
|
+
默认把 Policy、Memory、Wiki、Automations 设为 required;Evaluation、Preference Learning、Evolution、Growth Experiments、Delivery、Credentials、Event、Recovery、Heartbeat、Lark 未安装不会让 core readiness 失败。`supervised` 安装器会自动安装本插件,并把 Delivery、Evaluation、Preference Learning、Evolution、Growth Experiments、Recovery、Heartbeat、Lark Channel 连同四个核心 provider 写入 `requiredProviders`。v2 Recovery 已取代旧的 model maintenance Heartbeat;当前 Heartbeat 只承载独立、受限且有每日预算的 adoption analyst,因此仍属于 supervised readiness。配置和报告中的稳定公开 id 是 `preferenceLearning`,Health 会把它解析到 provider 实际注册的 Cordis service `assistantPreferenceLearning`。`ctx.assistantHealth.liveness()` 只表示进程内 service 活着;`readiness()` 只调用本地 content-free health seam,不调用模型、工具或外网。详细 `assistant_health` tool 还需目标 Agent 对 `tool:assistant-health` 的 `inspect` Policy 规则。
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
固定 Host runbook 只能调用明确无 scope 的 `hostGlobalSnapshot({ principal, operationId })`。该入口通过
|
|
15
|
+
固定 background subject `dsh-enhanced-assistant-recovery` 对全局资源
|
|
16
|
+
`tool:assistant-health:global/inspect` 做 Policy 授权,返回与详细报告相同的 content-free 白名单快照;
|
|
17
|
+
它没有任何 repair/execute 方法。此结果只可用于 run admission、全局 verification 与告警,不能作为
|
|
18
|
+
某个 workspace/preset 的 Preference/Evolution mutation 证据;scoped plan 必须分别读取对应插件的
|
|
19
|
+
exact branded Host API。入口拒绝携带 scope/workspace/preset,避免把其他 workspace 的故障误标成当前
|
|
20
|
+
scope 的动作依据。
|
|
21
|
+
|
|
22
|
+
技术可调用性与业务健康度分开表达:provider 的 `status` 仍只表示 health seam 是否存在、可调用且满足白名单;详细报告新增 `severity` 与低基数 `assessments`。Evaluation 公开 schema version、按 trust 分组的 outcome 数、自评数、task projection/冲突数及可选的最后发生时间;任务级 owner 判断冲突会产生 `evaluation-task-conflicts`,但不泄露原始 outcome。Preference Learning 只公开 enabled、signal/hypothesis 与各状态计数;两者都不暴露 situation、偏好值、evidence 或数据库路径。Evolution 另外分开展示 quality-eligible、operational 与 legacy-quarantined episode,不能再把 execution telemetry 误读成学习样本;这些新字段在 v4/v5 滚动升级中按全无(N-1)或全有(N)接受,partial projection 会 fail closed。Policy emergency stop 会让 readiness 失败;required Preference Learning disabled、required provider 缺失/异常以及 required Lark disabled/disconnected 也会失败。Automations 的 Evaluation dead-letter 当前积压、Delivery unknown/dead-letter backlog、Wiki lint error 和可选 Lark 断联会产生 degraded/unhealthy assessment,但不会一概把仍可服务的进程伪装成未就绪。历史累计值只作为指标展示,不用于判断当前健康;正常的短暂 pending 和最后发生时间是否过旧依赖部署工作负载,也不会在此使用固定阈值误报。
|
|
23
|
+
|
|
24
|
+
Delivery v9 的死信与 unknown 状态按 `actionable*` 指标判断;已经写入不可变 operator resolution
|
|
25
|
+
receipt 的 terminal 历史仍可审计,但不会永久污染健康。滚动升级期间若 Delivery 尚未提供这些新
|
|
26
|
+
指标,Health 会保守回退到原始 terminal 计数。Delivery v10 还原子投影
|
|
27
|
+
`pendingPresentations / deadPresentations`:前者表示审批实际终态或 incident 卡仍待原位更新,产生
|
|
28
|
+
degraded;后者表示更新已进入不可自动恢复的死信,产生 unhealthy。N-1 两字段全无仍接受,partial
|
|
29
|
+
pair 会 fail closed,避免把“领域已生效、owner 仍看到等待中”静默隐藏。
|
|
30
|
+
|
|
31
|
+
Automations 新版可增加 `openCircuits`;N-1 provider 缺该字段仍可滚动升级,N provider 一旦提供则必须是
|
|
32
|
+
nonnegative safe integer,非零产生 `open-circuit-backlog` degraded assessment。后续版本还能原子增加
|
|
33
|
+
`openIncidents / pendingIncidentAlerts`:两者必须全无或全有,partial/malformed projection fail closed;
|
|
34
|
+
非零分别产生 `open-incident-backlog` / `pending-incident-alerts` degraded assessment。指标均为计数,
|
|
35
|
+
不会透出 definition、错误正文或告警收件人。Assistant Recovery 整个
|
|
36
|
+
provider 可选;一旦以 `assistantRecovery` 安装,其 `runningRuns / failedRuns / unknownRuns /
|
|
37
|
+
incompleteSteps / staleRuns / staleSteps / lastSucceededAt / lastFailedAt` 八字段必须全部存在且合法,partial/malformed payload
|
|
38
|
+
整条 fail closed 为 provider error。新版还可原子增加 production-only 的 `latestProductionStatus /
|
|
39
|
+
consecutiveProductionFailures / lastProductionRunAt` 三字段;N-1 全无仍接受,N 必须全有且合法,preview
|
|
40
|
+
run 不得覆盖 production 状态。最新 production 为 `failed` / `unknown` 会产生 `incomplete-recovery`;只有
|
|
41
|
+
超过 Recovery 自己持久 deadline 的 run/step 才产生 `stale-recovery-intent`,正常正在执行的 step 不会被
|
|
42
|
+
自我标成故障。exact bootstrap 版本另外原子投影 `bootstrapGeneration / bootstrapAttestationValid /
|
|
43
|
+
bootstrapAttestationSetDigest`,并校验但不输出 attestation job/nonce/plan tuple;partial projection 会把
|
|
44
|
+
provider 标为 error,`succeeded` 却证明无效时产生 `bootstrap-attestation-invalid`,required 模式阻断
|
|
45
|
+
readiness。累计 failed/unknown 历史只保留可观测性,不会永久污染健康。本插件仍 detect-only,不据此执行修复。
|
|
46
|
+
|
|
47
|
+
Growth Experiments 只投影 `candidates / readyCandidates / activeExperiments / rollbackPending /
|
|
48
|
+
promoted / traceRevisions / currentTraces / exhaustedRollbacks` 和可选的低基数
|
|
49
|
+
`lastErrorCode`。回滚待处理会降级;回滚重试预算耗尽为 unhealthy,且当该 provider 被列为
|
|
50
|
+
required 时会阻断 readiness。Plugin Control Plane 只投影 `gaps / readyPlans /
|
|
51
|
+
activeActivations / failed / rollbackPending`;required control plane 尚有 activation rollback
|
|
52
|
+
未完成时 readiness fail closed。两种 provider 的路径、workflow、principal、命令、审批正文和
|
|
53
|
+
错误正文都不会进入报告,partial、负数或越界 payload 会把整个 provider 标为 error。
|
|
15
54
|
|
|
16
55
|
输出字段是逐 provider 白名单:未知 key、error message、content、prompt、cwd、vault/database path、消息、secret 和 tenant 标识不会透出。Provider 抛错只标记 `error`,不会包含异常正文。
|
|
17
56
|
|
package/lib/service.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Context, Service } from '@deepseek-ai/cordis';
|
|
2
2
|
import type { Agent } from '@deepseek-ai/dsh-agent';
|
|
3
3
|
import Schema from '@deepseek-ai/schemastery';
|
|
4
|
-
export declare const providerIds: readonly ["assistantPolicy", "personalMemory", "personalWiki", "assistantAutomations", "assistantEvaluation", "preferenceLearning", "assistantEvolution", "assistantDelivery", "credentialsKeychain", "eventTriggers", "assistantHeartbeat", "larkChannel"];
|
|
4
|
+
export declare const providerIds: readonly ["assistantPolicy", "personalMemory", "personalWiki", "assistantAutomations", "assistantEvaluation", "preferenceLearning", "assistantEvolution", "assistantDelivery", "credentialsKeychain", "eventTriggers", "assistantRecovery", "assistantGrowthExperiments", "pluginControlPlane", "assistantHeartbeat", "larkChannel"];
|
|
5
5
|
export type HealthProviderId = typeof providerIds[number];
|
|
6
6
|
export type HealthMetric = boolean | number | string;
|
|
7
7
|
export type HealthSeverity = 'healthy' | 'degraded' | 'unhealthy';
|
|
@@ -27,11 +27,19 @@ export interface AssistantHealthReport {
|
|
|
27
27
|
assessments: readonly HealthAssessment[];
|
|
28
28
|
warnings: readonly string[];
|
|
29
29
|
}
|
|
30
|
-
export type AssistantHealthErrorCode = 'disposed' | 'policy-denied';
|
|
30
|
+
export type AssistantHealthErrorCode = 'disposed' | 'invalid-input' | 'invalid-scope' | 'missing-principal' | 'policy-denied';
|
|
31
31
|
export declare class AssistantHealthError extends Error {
|
|
32
32
|
readonly code: AssistantHealthErrorCode;
|
|
33
33
|
constructor(code: AssistantHealthErrorCode, message: string);
|
|
34
34
|
}
|
|
35
|
+
/** Fixed Policy subject used by the non-model supervised-growth runbook. */
|
|
36
|
+
export declare const HOST_RECOVERY_BACKGROUND_ID = "dsh-enhanced-assistant-recovery";
|
|
37
|
+
export interface HealthHostGlobalOperation {
|
|
38
|
+
/** Authenticated owner identity supplied by the Host route, never a model. */
|
|
39
|
+
principal: string;
|
|
40
|
+
/** Exact fixed-run receipt/run identifier used for Policy budget idempotency. */
|
|
41
|
+
operationId: string;
|
|
42
|
+
}
|
|
35
43
|
declare module '@deepseek-ai/cordis' {
|
|
36
44
|
interface Context {
|
|
37
45
|
assistantHealth: AssistantHealthService;
|
|
@@ -55,6 +63,13 @@ export declare class AssistantHealthService extends Service {
|
|
|
55
63
|
warnings: string[];
|
|
56
64
|
};
|
|
57
65
|
report(agent: Agent | undefined): AssistantHealthReport;
|
|
66
|
+
/**
|
|
67
|
+
* Agent-free, content-free global snapshot for runbook admission and alerts.
|
|
68
|
+
* It is deliberately unscoped and cannot prove a workspace-local mutation.
|
|
69
|
+
* This remains detect-only: it does not expose or invoke any repair method.
|
|
70
|
+
*/
|
|
71
|
+
hostGlobalSnapshot(input: HealthHostGlobalOperation): AssistantHealthReport;
|
|
72
|
+
private snapshot;
|
|
58
73
|
private collect;
|
|
59
74
|
private assertActive;
|
|
60
75
|
}
|
package/lib/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/lib/service.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
1
2
|
import { Context, Service } from '@deepseek-ai/cordis';
|
|
2
3
|
import Schema from '@deepseek-ai/schemastery';
|
|
3
4
|
import { registerAssistantHealthTool } from './tools.js';
|
|
@@ -12,9 +13,35 @@ export const providerIds = [
|
|
|
12
13
|
'assistantDelivery',
|
|
13
14
|
'credentialsKeychain',
|
|
14
15
|
'eventTriggers',
|
|
16
|
+
'assistantRecovery',
|
|
17
|
+
'assistantGrowthExperiments',
|
|
18
|
+
'pluginControlPlane',
|
|
15
19
|
'assistantHeartbeat',
|
|
16
20
|
'larkChannel',
|
|
17
21
|
];
|
|
22
|
+
/**
|
|
23
|
+
* Public health ids are stable configuration/report vocabulary. They do not
|
|
24
|
+
* necessarily equal the Cordis service registration name exposed by a
|
|
25
|
+
* provider. Keep that runtime seam explicit so a renamed/public-facing id
|
|
26
|
+
* cannot silently turn an installed provider into `missing`.
|
|
27
|
+
*/
|
|
28
|
+
const providerServiceNames = Object.freeze({
|
|
29
|
+
assistantPolicy: 'assistantPolicy',
|
|
30
|
+
personalMemory: 'personalMemory',
|
|
31
|
+
personalWiki: 'personalWiki',
|
|
32
|
+
assistantAutomations: 'assistantAutomations',
|
|
33
|
+
assistantEvaluation: 'assistantEvaluation',
|
|
34
|
+
preferenceLearning: 'assistantPreferenceLearning',
|
|
35
|
+
assistantEvolution: 'assistantEvolution',
|
|
36
|
+
assistantDelivery: 'assistantDelivery',
|
|
37
|
+
credentialsKeychain: 'credentialsKeychain',
|
|
38
|
+
eventTriggers: 'eventTriggers',
|
|
39
|
+
assistantRecovery: 'assistantRecovery',
|
|
40
|
+
assistantGrowthExperiments: 'assistantGrowthExperiments',
|
|
41
|
+
pluginControlPlane: 'pluginControlPlane',
|
|
42
|
+
assistantHeartbeat: 'assistantHeartbeat',
|
|
43
|
+
larkChannel: 'larkChannel',
|
|
44
|
+
});
|
|
18
45
|
export class AssistantHealthError extends Error {
|
|
19
46
|
code;
|
|
20
47
|
constructor(code, message) {
|
|
@@ -28,6 +55,27 @@ const configSchema = Schema.object({
|
|
|
28
55
|
'assistantPolicy', 'personalMemory', 'personalWiki', 'assistantAutomations',
|
|
29
56
|
]),
|
|
30
57
|
});
|
|
58
|
+
/** Fixed Policy subject used by the non-model supervised-growth runbook. */
|
|
59
|
+
export const HOST_RECOVERY_BACKGROUND_ID = 'dsh-enhanced-assistant-recovery';
|
|
60
|
+
function hostText(value, label, maxBytes, code = 'invalid-input') {
|
|
61
|
+
if (typeof value !== 'string') {
|
|
62
|
+
throw new AssistantHealthError(code, `${label} must be a string`);
|
|
63
|
+
}
|
|
64
|
+
const normalized = value.normalize('NFC').trim();
|
|
65
|
+
if (normalized === '' || Buffer.byteLength(normalized, 'utf8') > maxBytes
|
|
66
|
+
|| hasControl(normalized)) {
|
|
67
|
+
throw new AssistantHealthError(code, `${label} is invalid`);
|
|
68
|
+
}
|
|
69
|
+
return normalized;
|
|
70
|
+
}
|
|
71
|
+
function hasControl(value) {
|
|
72
|
+
for (const character of value) {
|
|
73
|
+
const codePoint = character.codePointAt(0);
|
|
74
|
+
if (codePoint <= 0x1f || codePoint === 0x7f)
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
31
79
|
const keys = {
|
|
32
80
|
assistantPolicy: { emergencyStop: 'boolean', lastAuditSequence: 'number' },
|
|
33
81
|
personalMemory: { activeRecords: 'number', removedRecords: 'number', expiredRecords: 'number', pendingProposals: 'number' },
|
|
@@ -35,20 +83,46 @@ const keys = {
|
|
|
35
83
|
assistantAutomations: { activeAutomations: 'number', pausedAutomations: 'number', pendingTasks: 'number',
|
|
36
84
|
runningTasks: 'number', failedRuns: 'number', unknownRuns: 'number', pendingEvaluations: 'number',
|
|
37
85
|
retryingEvaluations: 'number', failedEvaluationAttempts: 'number', deadLetterEvaluations: 'number',
|
|
38
|
-
oldestPendingEvaluationAt: 'number'
|
|
86
|
+
oldestPendingEvaluationAt: 'number', openCircuits: 'optional-number',
|
|
87
|
+
openIncidents: 'optional-number', pendingIncidentAlerts: 'optional-number' },
|
|
39
88
|
assistantEvaluation: { ready: 'boolean', schemaVersion: 'number', outcomes: 'number',
|
|
40
89
|
trustedOutcomes: 'number', selfReportedOutcomes: 'number', externalOutcomes: 'number',
|
|
41
|
-
selfAssessments: 'number', latestOccurredAt: 'optional-number'
|
|
90
|
+
selfAssessments: 'number', latestOccurredAt: 'optional-number',
|
|
91
|
+
taskProjections: 'optional-number', conflictedTaskProjections: 'optional-number',
|
|
92
|
+
pendingProjections: 'optional-number', retryingProjections: 'optional-number',
|
|
93
|
+
projectionAttempts: 'optional-number', oldestPendingProjectionAt: 'optional-number' },
|
|
42
94
|
preferenceLearning: { ready: 'boolean', enabled: 'boolean', schemaVersion: 'number', signals: 'number',
|
|
43
95
|
hypotheses: 'number', active: 'number', shadow: 'number', proposed: 'number',
|
|
44
96
|
rolledBack: 'number', expired: 'number', lastRecordedAt: 'optional-number' },
|
|
45
97
|
assistantEvolution: { activeRules: 'number', retiredRules: 'number', pendingProposals: 'number',
|
|
46
98
|
conflictedProposals: 'number', trustedEpisodes: 'number', unattributedTrustedEpisodes: 'number',
|
|
47
|
-
lastTrustedEpisodeAt: 'number', lastReconciledAt: 'number', autonomousRollbacks: 'number'
|
|
99
|
+
lastTrustedEpisodeAt: 'number', lastReconciledAt: 'number', autonomousRollbacks: 'number',
|
|
100
|
+
qualityEligibleEpisodes: 'optional-number', operationalEpisodes: 'optional-number',
|
|
101
|
+
legacyQuarantinedEpisodes: 'optional-number', unattributedQualityEligibleEpisodes: 'optional-number',
|
|
102
|
+
lastQualityEligibleEpisodeAt: 'optional-number' },
|
|
48
103
|
assistantDelivery: { pendingInbox: 'number', deadLetterInbox: 'number', pendingOutbox: 'number',
|
|
49
|
-
deadLetterOutbox: 'number', unknownOutbox: 'number', adapters: 'number'
|
|
104
|
+
deadLetterOutbox: 'number', unknownOutbox: 'number', adapters: 'number',
|
|
105
|
+
actionableDeadLetterInbox: 'optional-number', resolvedDeadLetterInbox: 'optional-number',
|
|
106
|
+
actionableDeadLetterOutbox: 'optional-number', resolvedDeadLetterOutbox: 'optional-number',
|
|
107
|
+
actionableUnknownOutbox: 'optional-number', resolvedUnknownOutbox: 'optional-number',
|
|
108
|
+
pendingPresentations: 'optional-number', deadPresentations: 'optional-number' },
|
|
50
109
|
credentialsKeychain: { handles: 'number', activeLeases: 'number', failedLeases: 'number' },
|
|
51
110
|
eventTriggers: { pendingEvents: 'number', deliveredEvents: 'number', triggersObserved: 'number' },
|
|
111
|
+
assistantRecovery: { runningRuns: 'number', failedRuns: 'number', unknownRuns: 'number',
|
|
112
|
+
incompleteSteps: 'number', staleRuns: 'number', staleSteps: 'number',
|
|
113
|
+
lastSucceededAt: 'number', lastFailedAt: 'number',
|
|
114
|
+
latestProductionStatus: 'optional-production-status',
|
|
115
|
+
consecutiveProductionFailures: 'optional-number', lastProductionRunAt: 'optional-number',
|
|
116
|
+
bootstrapStatus: 'optional-bootstrap-status', bootstrapFailureCode: 'optional-code',
|
|
117
|
+
bootstrapGeneration: 'optional-number', bootstrapAttestationValid: 'optional-boolean',
|
|
118
|
+
bootstrapAttestationSetDigest: 'optional-digest',
|
|
119
|
+
bootstrapUpdatedAt: 'optional-number' },
|
|
120
|
+
assistantGrowthExperiments: { candidates: 'number', readyCandidates: 'number',
|
|
121
|
+
activeExperiments: 'number', rollbackPending: 'number', promoted: 'number',
|
|
122
|
+
traceRevisions: 'number', currentTraces: 'number', exhaustedRollbacks: 'number',
|
|
123
|
+
lastErrorCode: 'optional-code' },
|
|
124
|
+
pluginControlPlane: { gaps: 'number', readyPlans: 'number', activeActivations: 'number',
|
|
125
|
+
failed: 'number', rollbackPending: 'number' },
|
|
52
126
|
assistantHeartbeat: { active: 'number', paused: 'number', empty: 'number' },
|
|
53
127
|
larkChannel: { state: ['connected', 'connected-with-gap', 'connecting', 'disabled', 'disconnected', 'reconnecting'],
|
|
54
128
|
gapGeneration: 'number' },
|
|
@@ -63,7 +137,7 @@ function operationalAssessments(provider, required) {
|
|
|
63
137
|
output.push({ severity, code, ...(blocksReadiness ? { blocksReadiness: true } : {}) });
|
|
64
138
|
};
|
|
65
139
|
// Assess only current, actionable state. Lifetime ledger counters such as
|
|
66
|
-
// failedRuns
|
|
140
|
+
// Automations failedRuns/unknownRuns, failedEvaluationAttempts, conflictedProposals,
|
|
67
141
|
// and failedLeases remain observable metrics but cannot prove that the
|
|
68
142
|
// provider is unhealthy now.
|
|
69
143
|
switch (provider.id) {
|
|
@@ -75,14 +149,57 @@ function operationalAssessments(provider, required) {
|
|
|
75
149
|
break;
|
|
76
150
|
case 'assistantAutomations':
|
|
77
151
|
add(metric('deadLetterEvaluations') > 0, 'degraded', 'evaluation-dead-letter-backlog');
|
|
152
|
+
add(metric('openCircuits') !== undefined
|
|
153
|
+
&& metric('openCircuits') > 0, 'degraded', 'open-circuit-backlog');
|
|
154
|
+
add(metric('openIncidents') !== undefined
|
|
155
|
+
&& metric('openIncidents') > 0, 'degraded', 'open-incident-backlog');
|
|
156
|
+
add(metric('pendingIncidentAlerts') !== undefined
|
|
157
|
+
&& metric('pendingIncidentAlerts') > 0, 'degraded', 'pending-incident-alerts');
|
|
158
|
+
break;
|
|
159
|
+
case 'assistantEvaluation':
|
|
160
|
+
add(metric('retryingProjections') !== undefined
|
|
161
|
+
&& metric('retryingProjections') > 0, 'degraded', 'projection-retry-backlog');
|
|
162
|
+
add(metric('conflictedTaskProjections') !== undefined
|
|
163
|
+
&& metric('conflictedTaskProjections') > 0, 'degraded', 'evaluation-task-conflicts');
|
|
164
|
+
break;
|
|
165
|
+
case 'assistantRecovery':
|
|
166
|
+
add(metric('latestProductionStatus') === 'failed'
|
|
167
|
+
|| metric('latestProductionStatus') === 'unknown', 'degraded', 'incomplete-recovery');
|
|
168
|
+
// A currently running step is not itself unhealthy. Recovery owns the
|
|
169
|
+
// durable deadline/lease and will surface a terminal unknown/failed run;
|
|
170
|
+
// treating every started step as degraded makes final verification
|
|
171
|
+
// self-referential and permanently masks other provider failures.
|
|
172
|
+
add(metric('staleRuns') > 0 || metric('staleSteps') > 0, 'degraded', 'stale-recovery-intent');
|
|
173
|
+
add(metric('bootstrapStatus') === 'running', 'degraded', 'bootstrap-in-progress');
|
|
174
|
+
add(metric('bootstrapStatus') === 'failed', 'unhealthy', 'bootstrap-failed', true);
|
|
175
|
+
add(metric('bootstrapStatus') === 'succeeded'
|
|
176
|
+
&& metric('bootstrapAttestationValid') === false, 'unhealthy', 'bootstrap-attestation-invalid', required);
|
|
177
|
+
break;
|
|
178
|
+
case 'assistantGrowthExperiments':
|
|
179
|
+
add(metric('rollbackPending') > 0, 'degraded', 'growth-rollback-pending');
|
|
180
|
+
add(metric('exhaustedRollbacks') > 0, 'unhealthy', 'growth-rollback-exhausted', required);
|
|
181
|
+
add(metric('lastErrorCode') !== undefined, 'degraded', 'growth-runtime-error');
|
|
182
|
+
break;
|
|
183
|
+
case 'pluginControlPlane':
|
|
184
|
+
add(metric('rollbackPending') > 0, 'unhealthy', 'capability-rollback-pending', required);
|
|
78
185
|
break;
|
|
79
186
|
case 'preferenceLearning':
|
|
80
187
|
add(metric('enabled') === false && required, 'unhealthy', 'disabled', true);
|
|
81
188
|
break;
|
|
82
|
-
case 'assistantDelivery':
|
|
83
|
-
|
|
84
|
-
|
|
189
|
+
case 'assistantDelivery': {
|
|
190
|
+
// Delivery v9 distinguishes unresolved work from immutable terminal
|
|
191
|
+
// history. Fall back to v8 raw counters during rolling upgrades.
|
|
192
|
+
const actionableUnknown = metric('actionableUnknownOutbox') ?? metric('unknownOutbox');
|
|
193
|
+
const actionableInbox = metric('actionableDeadLetterInbox') ?? metric('deadLetterInbox');
|
|
194
|
+
const actionableOutbox = metric('actionableDeadLetterOutbox') ?? metric('deadLetterOutbox');
|
|
195
|
+
add(actionableUnknown > 0, 'unhealthy', 'unknown-outbox-backlog');
|
|
196
|
+
add(actionableInbox > 0 || actionableOutbox > 0, 'degraded', 'dead-letter-backlog');
|
|
197
|
+
add(metric('pendingPresentations') !== undefined
|
|
198
|
+
&& metric('pendingPresentations') > 0, 'degraded', 'presentation-backlog');
|
|
199
|
+
add(metric('deadPresentations') !== undefined
|
|
200
|
+
&& metric('deadPresentations') > 0, 'unhealthy', 'presentation-dead-letter');
|
|
85
201
|
break;
|
|
202
|
+
}
|
|
86
203
|
case 'larkChannel': {
|
|
87
204
|
const state = metric('state');
|
|
88
205
|
add(state === 'connected-with-gap', 'degraded', 'connected-with-gap');
|
|
@@ -135,14 +252,43 @@ function metrics(id, value) {
|
|
|
135
252
|
const output = {};
|
|
136
253
|
for (const [key, specification] of Object.entries(keys[id])) {
|
|
137
254
|
const current = input[key];
|
|
138
|
-
if (specification === 'optional-number'
|
|
255
|
+
if ((specification === 'optional-number' || specification === 'optional-boolean'
|
|
256
|
+
|| specification === 'optional-production-status'
|
|
257
|
+
|| specification === 'optional-bootstrap-status' || specification === 'optional-code'
|
|
258
|
+
|| specification === 'optional-digest')
|
|
259
|
+
&& current === undefined)
|
|
139
260
|
continue;
|
|
140
261
|
if (specification === 'number' || specification === 'optional-number') {
|
|
141
262
|
if (!Number.isSafeInteger(current) || current < 0)
|
|
142
263
|
throw new Error('invalid numeric health metric');
|
|
143
264
|
output[key] = current;
|
|
144
265
|
}
|
|
145
|
-
else if (specification === '
|
|
266
|
+
else if (specification === 'optional-production-status') {
|
|
267
|
+
if (typeof current !== 'string'
|
|
268
|
+
|| !['none', 'running', 'succeeded', 'failed', 'unknown'].includes(current)) {
|
|
269
|
+
throw new Error('invalid production health status');
|
|
270
|
+
}
|
|
271
|
+
output[key] = current;
|
|
272
|
+
}
|
|
273
|
+
else if (specification === 'optional-bootstrap-status') {
|
|
274
|
+
if (typeof current !== 'string' || !['idle', 'running', 'succeeded', 'failed'].includes(current)) {
|
|
275
|
+
throw new Error('invalid bootstrap health status');
|
|
276
|
+
}
|
|
277
|
+
output[key] = current;
|
|
278
|
+
}
|
|
279
|
+
else if (specification === 'optional-code') {
|
|
280
|
+
if (typeof current !== 'string' || !/^[a-z\d][a-z\d._-]{0,63}$/u.test(current)) {
|
|
281
|
+
throw new Error('invalid health reason code');
|
|
282
|
+
}
|
|
283
|
+
output[key] = current;
|
|
284
|
+
}
|
|
285
|
+
else if (specification === 'optional-digest') {
|
|
286
|
+
if (typeof current !== 'string' || !/^[a-f\d]{64}$/u.test(current)) {
|
|
287
|
+
throw new Error('invalid health digest');
|
|
288
|
+
}
|
|
289
|
+
output[key] = current;
|
|
290
|
+
}
|
|
291
|
+
else if (specification === 'boolean' || specification === 'optional-boolean') {
|
|
146
292
|
if (typeof current !== 'boolean')
|
|
147
293
|
throw new Error('invalid boolean health metric');
|
|
148
294
|
output[key] = current;
|
|
@@ -153,6 +299,121 @@ function metrics(id, value) {
|
|
|
153
299
|
output[key] = current;
|
|
154
300
|
}
|
|
155
301
|
}
|
|
302
|
+
if (id === 'assistantEvolution') {
|
|
303
|
+
const projectionKeys = [
|
|
304
|
+
'qualityEligibleEpisodes', 'operationalEpisodes', 'legacyQuarantinedEpisodes',
|
|
305
|
+
'unattributedQualityEligibleEpisodes', 'lastQualityEligibleEpisodeAt',
|
|
306
|
+
];
|
|
307
|
+
const projectionCount = projectionKeys.filter(key => output[key] !== undefined).length;
|
|
308
|
+
if (projectionCount !== 0 && projectionCount !== projectionKeys.length) {
|
|
309
|
+
throw new Error('incomplete Evolution quality-evidence projection');
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
if (id === 'assistantEvaluation') {
|
|
313
|
+
const taskKeys = ['taskProjections', 'conflictedTaskProjections'];
|
|
314
|
+
const taskCount = taskKeys.filter(key => output[key] !== undefined).length;
|
|
315
|
+
if (taskCount !== 0 && taskCount !== taskKeys.length) {
|
|
316
|
+
throw new Error('incomplete Evaluation task projection health');
|
|
317
|
+
}
|
|
318
|
+
if (taskCount === taskKeys.length
|
|
319
|
+
&& output.conflictedTaskProjections > output.taskProjections) {
|
|
320
|
+
throw new Error('inconsistent Evaluation task projection health');
|
|
321
|
+
}
|
|
322
|
+
const projectionKeys = ['pendingProjections', 'retryingProjections', 'projectionAttempts'];
|
|
323
|
+
const projectionCount = projectionKeys.filter(key => output[key] !== undefined).length;
|
|
324
|
+
if (projectionCount !== 0 && projectionCount !== projectionKeys.length) {
|
|
325
|
+
throw new Error('incomplete Evaluation projection health');
|
|
326
|
+
}
|
|
327
|
+
if (output.oldestPendingProjectionAt !== undefined
|
|
328
|
+
&& (projectionCount === 0 || output.pendingProjections === 0)) {
|
|
329
|
+
throw new Error('inconsistent Evaluation oldest projection health');
|
|
330
|
+
}
|
|
331
|
+
if (projectionCount === projectionKeys.length
|
|
332
|
+
&& (output.retryingProjections > output.pendingProjections
|
|
333
|
+
|| output.projectionAttempts < output.retryingProjections)) {
|
|
334
|
+
throw new Error('inconsistent Evaluation projection health');
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
if (id === 'assistantAutomations') {
|
|
338
|
+
// openCircuits shipped one version earlier and remains independently
|
|
339
|
+
// optional. The later incident/alert projection is atomic: accepting a
|
|
340
|
+
// partial pair would make N and N-1 indistinguishable.
|
|
341
|
+
const projectionKeys = ['openIncidents', 'pendingIncidentAlerts'];
|
|
342
|
+
const projectionCount = projectionKeys.filter(key => output[key] !== undefined).length;
|
|
343
|
+
if (projectionCount !== 0 && projectionCount !== projectionKeys.length) {
|
|
344
|
+
throw new Error('incomplete Automations incident projection');
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
if (id === 'assistantDelivery') {
|
|
348
|
+
const projectionKeys = [
|
|
349
|
+
'actionableDeadLetterInbox', 'resolvedDeadLetterInbox',
|
|
350
|
+
'actionableDeadLetterOutbox', 'resolvedDeadLetterOutbox',
|
|
351
|
+
'actionableUnknownOutbox', 'resolvedUnknownOutbox',
|
|
352
|
+
];
|
|
353
|
+
const projectionCount = projectionKeys.filter(key => output[key] !== undefined).length;
|
|
354
|
+
if (projectionCount !== 0 && projectionCount !== projectionKeys.length) {
|
|
355
|
+
throw new Error('incomplete Delivery resolution projection');
|
|
356
|
+
}
|
|
357
|
+
if (projectionCount === projectionKeys.length) {
|
|
358
|
+
const partitions = [
|
|
359
|
+
['deadLetterInbox', 'actionableDeadLetterInbox', 'resolvedDeadLetterInbox'],
|
|
360
|
+
['deadLetterOutbox', 'actionableDeadLetterOutbox', 'resolvedDeadLetterOutbox'],
|
|
361
|
+
['unknownOutbox', 'actionableUnknownOutbox', 'resolvedUnknownOutbox'],
|
|
362
|
+
];
|
|
363
|
+
for (const [total, actionable, resolved] of partitions) {
|
|
364
|
+
if (output[actionable] + output[resolved] !== output[total]) {
|
|
365
|
+
throw new Error('inconsistent Delivery resolution projection');
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
const presentationKeys = ['pendingPresentations', 'deadPresentations'];
|
|
370
|
+
const presentationCount = presentationKeys.filter(key => output[key] !== undefined).length;
|
|
371
|
+
if (presentationCount !== 0 && presentationCount !== presentationKeys.length) {
|
|
372
|
+
throw new Error('incomplete Delivery presentation projection');
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
if (id === 'assistantRecovery') {
|
|
376
|
+
const projectionKeys = [
|
|
377
|
+
'latestProductionStatus', 'consecutiveProductionFailures', 'lastProductionRunAt',
|
|
378
|
+
];
|
|
379
|
+
const projectionCount = projectionKeys.filter(key => output[key] !== undefined).length;
|
|
380
|
+
if (projectionCount !== 0 && projectionCount !== projectionKeys.length) {
|
|
381
|
+
throw new Error('incomplete Recovery production projection');
|
|
382
|
+
}
|
|
383
|
+
const bootstrapStatus = output.bootstrapStatus;
|
|
384
|
+
const bootstrapUpdatedAt = output.bootstrapUpdatedAt;
|
|
385
|
+
const bootstrapFailureCode = output.bootstrapFailureCode;
|
|
386
|
+
if ((bootstrapStatus === undefined) !== (bootstrapUpdatedAt === undefined)
|
|
387
|
+
|| (bootstrapStatus === 'failed') !== (bootstrapFailureCode !== undefined)) {
|
|
388
|
+
throw new Error('incomplete Recovery bootstrap projection');
|
|
389
|
+
}
|
|
390
|
+
const attestationInputKeys = [
|
|
391
|
+
'bootstrapGeneration', 'bootstrapAttestationValid',
|
|
392
|
+
'bootstrapAttestationSetDigest', 'bootstrapAttestations',
|
|
393
|
+
];
|
|
394
|
+
const attestationInputCount = attestationInputKeys.filter(key => input[key] !== undefined).length;
|
|
395
|
+
if (attestationInputCount !== 0 && attestationInputCount !== attestationInputKeys.length) {
|
|
396
|
+
throw new Error('incomplete Recovery bootstrap attestation projection');
|
|
397
|
+
}
|
|
398
|
+
if (attestationInputCount === attestationInputKeys.length) {
|
|
399
|
+
const attestations = input.bootstrapAttestations;
|
|
400
|
+
if (!Array.isArray(attestations) || attestations.length > 1_000
|
|
401
|
+
|| attestations.some((attestation) => {
|
|
402
|
+
if (typeof attestation !== 'object' || attestation === null || Array.isArray(attestation))
|
|
403
|
+
return true;
|
|
404
|
+
const value = attestation;
|
|
405
|
+
return Object.keys(value).sort().join(',')
|
|
406
|
+
!== 'activationNonce,activationPlanDigest,activationState,automationId'
|
|
407
|
+
|| typeof value.automationId !== 'string'
|
|
408
|
+
|| typeof value.activationNonce !== 'string'
|
|
409
|
+
|| !['active', 'paused', 'preview'].includes(String(value.activationState))
|
|
410
|
+
|| typeof value.activationPlanDigest !== 'string'
|
|
411
|
+
|| !/^[a-f\d]{64}$/u.test(value.activationPlanDigest);
|
|
412
|
+
})) {
|
|
413
|
+
throw new Error('invalid Recovery bootstrap attestations');
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
}
|
|
156
417
|
return Object.freeze(output);
|
|
157
418
|
}
|
|
158
419
|
export class AssistantHealthService extends Service {
|
|
@@ -200,6 +461,42 @@ export class AssistantHealthService extends Service {
|
|
|
200
461
|
if (decision.effect !== 'allow') {
|
|
201
462
|
throw new AssistantHealthError('policy-denied', `assistant-health policy denied report: ${decision.reasonCode}`);
|
|
202
463
|
}
|
|
464
|
+
return this.snapshot();
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Agent-free, content-free global snapshot for runbook admission and alerts.
|
|
468
|
+
* It is deliberately unscoped and cannot prove a workspace-local mutation.
|
|
469
|
+
* This remains detect-only: it does not expose or invoke any repair method.
|
|
470
|
+
*/
|
|
471
|
+
hostGlobalSnapshot(input) {
|
|
472
|
+
this.assertActive();
|
|
473
|
+
if (typeof input !== 'object' || input === null || Array.isArray(input)
|
|
474
|
+
|| Object.keys(input).sort().join(',') !== 'operationId,principal') {
|
|
475
|
+
throw new AssistantHealthError('invalid-input', 'Host global health input accepts only principal and operationId');
|
|
476
|
+
}
|
|
477
|
+
const principal = hostText(input.principal, 'principal', 500, 'missing-principal');
|
|
478
|
+
const operationId = hostText(input.operationId, 'operationId', 500);
|
|
479
|
+
const digest = createHash('sha256').update(JSON.stringify([
|
|
480
|
+
HOST_RECOVERY_BACKGROUND_ID,
|
|
481
|
+
principal,
|
|
482
|
+
operationId,
|
|
483
|
+
])).digest('hex');
|
|
484
|
+
const decision = this.policy.authorize({
|
|
485
|
+
subject: {
|
|
486
|
+
kind: 'background',
|
|
487
|
+
id: HOST_RECOVERY_BACKGROUND_ID,
|
|
488
|
+
principal,
|
|
489
|
+
},
|
|
490
|
+
action: 'inspect',
|
|
491
|
+
resource: { kind: 'tool', id: 'assistant-health:global' },
|
|
492
|
+
context: { initiator: 'background' },
|
|
493
|
+
}, { idempotencyKey: `assistant-health-host:${digest}` });
|
|
494
|
+
if (decision.effect !== 'allow') {
|
|
495
|
+
throw new AssistantHealthError('policy-denied', `assistant-health policy denied Host global snapshot: ${decision.reasonCode}`);
|
|
496
|
+
}
|
|
497
|
+
return this.snapshot();
|
|
498
|
+
}
|
|
499
|
+
snapshot() {
|
|
203
500
|
const providers = this.collect();
|
|
204
501
|
const summary = summarize(providers, this.required);
|
|
205
502
|
return Object.freeze({
|
|
@@ -214,7 +511,7 @@ export class AssistantHealthService extends Service {
|
|
|
214
511
|
collect() {
|
|
215
512
|
const get = this.context.get.bind(this.context);
|
|
216
513
|
return providerIds.map(id => {
|
|
217
|
-
const provider = get(id);
|
|
514
|
+
const provider = get(providerServiceNames[id]);
|
|
218
515
|
if (provider === undefined)
|
|
219
516
|
return Object.freeze({ id, status: 'missing', metrics: Object.freeze({}) });
|
|
220
517
|
if (typeof provider.health !== 'function')
|
package/lib/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAE7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,sBAAsB;IACtB,qBAAqB;IACrB,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IACnB,qBAAqB;IACrB,eAAe;IACf,oBAAoB;IACpB,aAAa;CACL,CAAA;AAiCV,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACxB;IAArB,YAAqB,IAA8B,EAAE,OAAe;QAClE,KAAK,CAAC,OAAO,CAAC,CAAA;QADK,SAAI,GAAJ,IAAI,CAA0B;QAEjD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,CAAC;CACF;AAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;QACjE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,sBAAsB;KAC5E,CAAC;CACH,CAAmB,CAAA;AAIpB,MAAM,IAAI,GAAkF;IAC1F,eAAe,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE;IAC1E,cAAc,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE;IAC3H,YAAY,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE;IAC3G,oBAAoB,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ;QACtG,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ;QACjG,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,QAAQ;QAClG,yBAAyB,EAAE,QAAQ,EAAE;IACvC,mBAAmB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;QAClF,eAAe,EAAE,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ;QACrF,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE;IAClE,kBAAkB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;QACpG,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;QAC5E,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE;IAC9E,kBAAkB,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ;QAC7F,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,2BAA2B,EAAE,QAAQ;QAC/F,oBAAoB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE;IAC7F,iBAAiB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ;QAC7F,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAC3E,mBAAmB,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE;IAC1F,aAAa,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE;IACjG,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3E,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,CAAC;QACjH,aAAa,EAAE,QAAQ,EAAE;CAC5B,CAAA;AASD,SAAS,sBAAsB,CAC7B,QAAwB,EACxB,QAAiB;IAEjB,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,EAAE,CAAA;IAC1C,MAAM,MAAM,GAAG,CAAC,GAAW,EAA4B,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/E,MAAM,MAAM,GAIP,EAAE,CAAA;IACP,MAAM,GAAG,GAAG,CACV,SAAkB,EAClB,QAA4C,EAC5C,IAAY,EACZ,eAAe,GAAG,KAAK,EACvB,EAAE;QACF,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAChH,CAAC,CAAA;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,6BAA6B;IAC7B,QAAQ,QAAQ,CAAC,EAAE,EAAE,CAAC;QACpB,KAAK,iBAAiB;YACpB,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAA;YAC1E,MAAK;QACP,KAAK,cAAc;YACjB,GAAG,CAAE,MAAM,CAAC,YAAY,CAAY,GAAG,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;YACpE,MAAK;QACP,KAAK,sBAAsB;YACzB,GAAG,CAAE,MAAM,CAAC,uBAAuB,CAAY,GAAG,CAAC,EAAE,UAAU,EAAE,gCAAgC,CAAC,CAAA;YAClG,MAAK;QACP,KAAK,oBAAoB;YACvB,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;YAC3E,MAAK;QACP,KAAK,mBAAmB;YACtB,GAAG,CAAE,MAAM,CAAC,eAAe,CAAY,GAAG,CAAC,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAA;YACnF,GAAG,CAAE,MAAM,CAAC,iBAAiB,CAAY,GAAG,CAAC,IAAK,MAAM,CAAC,kBAAkB,CAAY,GAAG,CAAC,EACzF,UAAU,EAAE,qBAAqB,CAAC,CAAA;YACpC,MAAK;QACP,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;YAC7B,GAAG,CAAC,KAAK,KAAK,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAA;YACrE,GAAG,CAAC,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,cAAc,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAA;YAC7F,GAAG,CAAC,KAAK,KAAK,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAA;YAC5F,GAAG,CAAC,KAAK,KAAK,UAAU,IAAI,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;YACpE,MAAK;QACP,CAAC;QACD;YACE,MAAK;IACT,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,SAAS,CAAC,SAAoC,EAAE,QAAuC;IAC9F,MAAM,WAAW,GAAuB,EAAE,CAAA;IAC1C,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,KAAK,GAAG,IAAI,CAAA;IAChB,IAAI,QAAQ,GAAmB,SAAS,CAAA;IACxC,MAAM,MAAM,GAAG,CACb,UAA4B,EAC5B,KAAyC,EACzC,IAAY,EACZ,OAAe,EACf,eAAe,GAAG,KAAK,EACvB,EAAE;QACF,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACtE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtB,IAAI,KAAK,KAAK,WAAW;YAAE,QAAQ,GAAG,WAAW,CAAA;aAC5C,IAAI,QAAQ,KAAK,SAAS;YAAE,QAAQ,GAAG,UAAU,CAAA;QACtD,IAAI,eAAe;YAAE,KAAK,GAAG,KAAK,CAAA;IACpC,CAAC,CAAA;IAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,UAAU;gBAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,2BAA2B,EAC1E,oBAAoB,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;YAC1C,SAAQ;QACV,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,mBAAmB,EAC5E,UAAU,CAAC,CAAC,CAAC,kBAAkB,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,QAAQ,CAAC,EAAE,oBAAoB,EACnG,UAAU,CAAC,CAAA;YACb,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,EACtD,YAAY,UAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,EACnE,UAAU,CAAC,eAAe,KAAK,IAAI,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAA;AACnD,CAAC;AAMD,SAAS,OAAO,CAAC,EAAoB,EAAE,KAAc;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAClH,MAAM,KAAK,GAAG,KAAgC,CAAA;IAC9C,MAAM,MAAM,GAAiC,EAAE,CAAA;IAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,aAAa,KAAK,iBAAiB,IAAI,OAAO,KAAK,SAAS;YAAE,SAAQ;QAC1E,IAAI,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,iBAAiB,EAAE,CAAC;YACtE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAK,OAAkB,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;YAC/G,MAAM,CAAC,GAAG,CAAC,GAAG,OAAiB,CAAA;QACjC,CAAC;aAAM,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,OAAO,OAAO,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;YAClF,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;YACpH,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;QACvB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,OAAO,sBAAuB,SAAQ,OAAO;IACjD,MAAM,CAAC,MAAM,GAAG,YAAY,CAAA;IACX,OAAO,CAAS;IAChB,MAAM,CAAwB;IAC9B,QAAQ,CAA+B;IACvC,GAAG,CAAc;IAC1B,MAAM,GAAG,IAAI,CAAA;IAErB,YAAY,GAAY,EAAE,QAAgB,EAAE,EAAE,UAAkC,EAAE;QAChF,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;QAC7B,IAAI,MAAwB,CAAA;QAC5B,IAAI,CAAC;YAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAqB,CAAA;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,4CAA4C,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAChG,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;QAC7E,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAuC,CAAA;QAC/E,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;QAClG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACjD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;QAClC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,2BAA2B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;QAC9E,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAA;IAC7E,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IACxB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAChC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAA;IAC7D,CAAC;IAED,MAAM,CAAC,KAAwB;QAC7B,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAA;QACvG,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,oBAAoB,CAAC,eAAe,EAAE,0CAA0C,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QAClH,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAChC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;YACvB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YACnC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YAC/C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC1C,CAAC,CAAA;IACJ,CAAC;IAEO,OAAO;QACb,MAAM,GAAG,GAAI,IAAI,CAAC,OAAqD,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9F,OAAO,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,CAA2C,CAAA;YAClE,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAChH,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU;gBAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAgB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC7H,IAAI,CAAC;gBACH,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;YACjG,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAgB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACpF,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,oBAAoB,CAAC,UAAU,EAAE,sCAAsC,CAAC,CAAA;IACtG,CAAC;;AAGH,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "0.1.
|
|
1
|
+
export declare const version = "0.1.14";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/lib/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAA"}
|
package/lib/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '0.1.
|
|
1
|
+
export const version = '0.1.14';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/lib/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dsh-enhanced/assistant-health",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"description": "Policy-gated, content-free health and readiness aggregation for DSH assistant services.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -71,7 +71,8 @@
|
|
|
71
71
|
"@types/node": "22.20.0",
|
|
72
72
|
"typescript": "6.0.3",
|
|
73
73
|
"vitest": "4.1.8",
|
|
74
|
-
"@dsh-enhanced/assistant-policy": "0.1.
|
|
74
|
+
"@dsh-enhanced/assistant-policy": "0.1.14",
|
|
75
|
+
"@dsh-enhanced/preference-learning": "0.1.14"
|
|
75
76
|
},
|
|
76
77
|
"scripts": {
|
|
77
78
|
"build": "tsc -p tsconfig.build.json",
|