@dsh-enhanced/assistant-health 0.1.6 → 0.1.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.
package/README.md CHANGED
@@ -9,7 +9,9 @@ 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;Delivery、Credentials、Event、Heartbeat、Lark 未安装不会让 core readiness 失败。`ctx.assistantHealth.liveness()` 只表示进程内 service 活着;`readiness()` 只调用本地 content-free health seam,不调用模型、工具或外网。详细 `assistant_health` tool 还需目标 Agent 对 `tool:assistant-health` 的 `inspect` Policy 规则。
12
+ 默认把 Policy、Memory、Wiki、Automations 设为 required;Evaluation、Preference Learning、Evolution、Delivery、Credentials、Event、Heartbeat、Lark 未安装不会让 core readiness 失败。使用成长闭环的部署可把 `assistantEvaluation`、`preferenceLearning` 和 `assistantEvolution` 加进 `requiredProviders`。`ctx.assistantHealth.liveness()` 只表示进程内 service 活着;`readiness()` 只调用本地 content-free health seam,不调用模型、工具或外网。详细 `assistant_health` tool 还需目标 Agent 对 `tool:assistant-health` 的 `inspect` Policy 规则。
13
+
14
+ 技术可调用性与业务健康度分开表达:provider 的 `status` 仍只表示 health seam 是否存在、可调用且满足白名单;详细报告新增 `severity` 与低基数 `assessments`。Evaluation 公开 schema version、按 trust 分组的 outcome 数、自评数及可选的最后发生时间;Preference Learning 只公开 enabled、signal/hypothesis 与各状态计数;两者都不暴露 situation、偏好值、evidence 或数据库路径。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 和最后发生时间是否过旧依赖部署工作负载,也不会在此使用固定阈值误报。
13
15
 
14
16
  输出字段是逐 provider 白名单:未知 key、error message、content、prompt、cwd、vault/database path、消息、secret 和 tenant 标识不会透出。Provider 抛错只标记 `error`,不会包含异常正文。
15
17
 
package/lib/service.d.ts CHANGED
@@ -1,9 +1,10 @@
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", "assistantDelivery", "credentialsKeychain", "eventTriggers", "assistantHeartbeat", "larkChannel"];
4
+ export declare const providerIds: readonly ["assistantPolicy", "personalMemory", "personalWiki", "assistantAutomations", "assistantEvaluation", "preferenceLearning", "assistantEvolution", "assistantDelivery", "credentialsKeychain", "eventTriggers", "assistantHeartbeat", "larkChannel"];
5
5
  export type HealthProviderId = typeof providerIds[number];
6
6
  export type HealthMetric = boolean | number | string;
7
+ export type HealthSeverity = 'healthy' | 'degraded' | 'unhealthy';
7
8
  export interface Config {
8
9
  requiredProviders?: HealthProviderId[];
9
10
  }
@@ -12,10 +13,18 @@ export interface ProviderHealth {
12
13
  status: 'error' | 'missing' | 'ready';
13
14
  metrics: Readonly<Record<string, HealthMetric>>;
14
15
  }
16
+ export interface HealthAssessment {
17
+ providerId: HealthProviderId;
18
+ severity: Exclude<HealthSeverity, 'healthy'>;
19
+ /** Stable, low-cardinality reason code. */
20
+ code: string;
21
+ }
15
22
  export interface AssistantHealthReport {
16
23
  ready: boolean;
24
+ severity: HealthSeverity;
17
25
  generatedAt: number;
18
26
  providers: readonly ProviderHealth[];
27
+ assessments: readonly HealthAssessment[];
19
28
  warnings: readonly string[];
20
29
  }
21
30
  export type AssistantHealthErrorCode = 'disposed' | 'policy-denied';
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAI7C,eAAO,MAAM,WAAW,0LAUd,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAEpD,MAAM,WAAW,MAAM;IACrB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAA;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,gBAAgB,CAAA;IACpB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAA;IACrC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,SAAS,cAAc,EAAE,CAAA;IACpC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5B;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,eAAe,CAAA;AACnE,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,wBAAwB;gBAA9B,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM;CAIrE;AAuBD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QAAG,eAAe,EAAE,sBAAsB,CAAA;KAAE;CAC9D;AAsBD,qBAAa,sBAAuB,SAAQ,OAAO;IACjD,MAAM,CAAC,MAAM,iBAAe;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,MAAM,CAAO;gBAET,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,MAAW,EAAE,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;KAAO;IAmBlF,QAAQ,IAAI;QAAE,KAAK,EAAE,IAAI,CAAA;KAAE;IAK3B,SAAS,IAAI;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;IASnD,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,qBAAqB;IAkBvD,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,YAAY;CAGrB;AAED,eAAO,MAAM,MAAM,gBAAe,CAAA"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAI7C,eAAO,MAAM,WAAW,6PAad,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AACpD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAA;AAEjE,MAAM,WAAW,MAAM;IACrB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAA;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,gBAAgB,CAAA;IACpB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAA;IACrC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;CAChD;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,gBAAgB,CAAA;IAC5B,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;IAC5C,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,cAAc,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,SAAS,cAAc,EAAE,CAAA;IACpC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAA;IACxC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5B;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,eAAe,CAAA;AACnE,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,wBAAwB;gBAA9B,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM;CAIrE;AA4ID,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QAAG,eAAe,EAAE,sBAAsB,CAAA;KAAE;CAC9D;AAuBD,qBAAa,sBAAuB,SAAQ,OAAO;IACjD,MAAM,CAAC,MAAM,iBAAe;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,MAAM,CAAO;gBAET,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,MAAW,EAAE,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;KAAO;IAmBlF,QAAQ,IAAI;QAAE,KAAK,EAAE,IAAI,CAAA;KAAE;IAK3B,SAAS,IAAI;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;IAOnD,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,qBAAqB;IAkBvD,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,YAAY;CAGrB;AAED,eAAO,MAAM,MAAM,gBAAe,CAAA"}
package/lib/service.js CHANGED
@@ -6,6 +6,9 @@ export const providerIds = [
6
6
  'personalMemory',
7
7
  'personalWiki',
8
8
  'assistantAutomations',
9
+ 'assistantEvaluation',
10
+ 'preferenceLearning',
11
+ 'assistantEvolution',
9
12
  'assistantDelivery',
10
13
  'credentialsKeychain',
11
14
  'eventTriggers',
@@ -30,7 +33,18 @@ const keys = {
30
33
  personalMemory: { activeRecords: 'number', removedRecords: 'number', expiredRecords: 'number', pendingProposals: 'number' },
31
34
  personalWiki: { pages: 'number', lintErrors: 'number', lintWarnings: 'number', pendingProposals: 'number' },
32
35
  assistantAutomations: { activeAutomations: 'number', pausedAutomations: 'number', pendingTasks: 'number',
33
- runningTasks: 'number', failedRuns: 'number', unknownRuns: 'number' },
36
+ runningTasks: 'number', failedRuns: 'number', unknownRuns: 'number', pendingEvaluations: 'number',
37
+ retryingEvaluations: 'number', failedEvaluationAttempts: 'number', deadLetterEvaluations: 'number',
38
+ oldestPendingEvaluationAt: 'number' },
39
+ assistantEvaluation: { ready: 'boolean', schemaVersion: 'number', outcomes: 'number',
40
+ trustedOutcomes: 'number', selfReportedOutcomes: 'number', externalOutcomes: 'number',
41
+ selfAssessments: 'number', latestOccurredAt: 'optional-number' },
42
+ preferenceLearning: { ready: 'boolean', enabled: 'boolean', schemaVersion: 'number', signals: 'number',
43
+ hypotheses: 'number', active: 'number', shadow: 'number', proposed: 'number',
44
+ rolledBack: 'number', expired: 'number', lastRecordedAt: 'optional-number' },
45
+ assistantEvolution: { activeRules: 'number', retiredRules: 'number', pendingProposals: 'number',
46
+ conflictedProposals: 'number', trustedEpisodes: 'number', unattributedTrustedEpisodes: 'number',
47
+ lastTrustedEpisodeAt: 'number', lastReconciledAt: 'number', autonomousRollbacks: 'number' },
34
48
  assistantDelivery: { pendingInbox: 'number', deadLetterInbox: 'number', pendingOutbox: 'number',
35
49
  deadLetterOutbox: 'number', unknownOutbox: 'number', adapters: 'number' },
36
50
  credentialsKeychain: { handles: 'number', activeLeases: 'number', failedLeases: 'number' },
@@ -39,6 +53,81 @@ const keys = {
39
53
  larkChannel: { state: ['connected', 'connected-with-gap', 'connecting', 'disabled', 'disconnected', 'reconnecting'],
40
54
  gapGeneration: 'number' },
41
55
  };
56
+ function operationalAssessments(provider, required) {
57
+ if (provider.status !== 'ready')
58
+ return [];
59
+ const metric = (key) => provider.metrics[key];
60
+ const output = [];
61
+ const add = (condition, severity, code, blocksReadiness = false) => {
62
+ if (condition)
63
+ output.push({ severity, code, ...(blocksReadiness ? { blocksReadiness: true } : {}) });
64
+ };
65
+ // Assess only current, actionable state. Lifetime ledger counters such as
66
+ // failedRuns, unknownRuns, failedEvaluationAttempts, conflictedProposals,
67
+ // and failedLeases remain observable metrics but cannot prove that the
68
+ // provider is unhealthy now.
69
+ switch (provider.id) {
70
+ case 'assistantPolicy':
71
+ add(metric('emergencyStop') === true, 'unhealthy', 'emergency-stop', true);
72
+ break;
73
+ case 'personalWiki':
74
+ add(metric('lintErrors') > 0, 'degraded', 'lint-errors');
75
+ break;
76
+ case 'assistantAutomations':
77
+ add(metric('deadLetterEvaluations') > 0, 'degraded', 'evaluation-dead-letter-backlog');
78
+ break;
79
+ case 'preferenceLearning':
80
+ add(metric('enabled') === false && required, 'unhealthy', 'disabled', true);
81
+ break;
82
+ case 'assistantDelivery':
83
+ add(metric('unknownOutbox') > 0, 'unhealthy', 'unknown-outbox-backlog');
84
+ add(metric('deadLetterInbox') > 0 || metric('deadLetterOutbox') > 0, 'degraded', 'dead-letter-backlog');
85
+ break;
86
+ case 'larkChannel': {
87
+ const state = metric('state');
88
+ add(state === 'connected-with-gap', 'degraded', 'connected-with-gap');
89
+ add(state === 'connecting' || state === 'reconnecting', 'degraded', 'connection-in-progress');
90
+ add(state === 'disconnected', required ? 'unhealthy' : 'degraded', 'disconnected', required);
91
+ add(state === 'disabled' && required, 'unhealthy', 'disabled', true);
92
+ break;
93
+ }
94
+ default:
95
+ break;
96
+ }
97
+ return output;
98
+ }
99
+ function summarize(providers, required) {
100
+ const assessments = [];
101
+ const warnings = [];
102
+ let ready = true;
103
+ let severity = 'healthy';
104
+ const append = (providerId, level, code, warning, blocksReadiness = false) => {
105
+ assessments.push(Object.freeze({ providerId, severity: level, code }));
106
+ warnings.push(warning);
107
+ if (level === 'unhealthy')
108
+ severity = 'unhealthy';
109
+ else if (severity === 'healthy')
110
+ severity = 'degraded';
111
+ if (blocksReadiness)
112
+ ready = false;
113
+ };
114
+ for (const provider of providers) {
115
+ const isRequired = required.has(provider.id);
116
+ if (provider.status === 'missing') {
117
+ if (isRequired)
118
+ append(provider.id, 'unhealthy', 'required-provider-missing', `provider-missing:${provider.id}`, true);
119
+ continue;
120
+ }
121
+ if (provider.status === 'error') {
122
+ append(provider.id, isRequired ? 'unhealthy' : 'degraded', 'health-seam-error', isRequired ? `provider-error:${provider.id}` : `provider-degraded:${provider.id}:health-seam-error`, isRequired);
123
+ continue;
124
+ }
125
+ for (const assessment of operationalAssessments(provider, isRequired)) {
126
+ append(provider.id, assessment.severity, assessment.code, `provider-${assessment.severity}:${provider.id}:${assessment.code}`, assessment.blocksReadiness === true);
127
+ }
128
+ }
129
+ return { ready, severity, assessments, warnings };
130
+ }
42
131
  function metrics(id, value) {
43
132
  if (typeof value !== 'object' || value === null || Array.isArray(value))
44
133
  throw new Error('invalid health payload');
@@ -46,7 +135,9 @@ function metrics(id, value) {
46
135
  const output = {};
47
136
  for (const [key, specification] of Object.entries(keys[id])) {
48
137
  const current = input[key];
49
- if (specification === 'number') {
138
+ if (specification === 'optional-number' && current === undefined)
139
+ continue;
140
+ if (specification === 'number' || specification === 'optional-number') {
50
141
  if (!Number.isSafeInteger(current) || current < 0)
51
142
  throw new Error('invalid numeric health metric');
52
143
  output[key] = current;
@@ -100,10 +191,8 @@ export class AssistantHealthService extends Service {
100
191
  readiness() {
101
192
  this.assertActive();
102
193
  const providers = this.collect();
103
- const warnings = providers
104
- .filter(item => this.required.has(item.id) && item.status !== 'ready')
105
- .map(item => `provider-${item.status}:${item.id}`);
106
- return { ready: warnings.length === 0, warnings };
194
+ const summary = summarize(providers, this.required);
195
+ return { ready: summary.ready, warnings: summary.warnings };
107
196
  }
108
197
  report(agent) {
109
198
  this.assertActive();
@@ -112,14 +201,14 @@ export class AssistantHealthService extends Service {
112
201
  throw new AssistantHealthError('policy-denied', `assistant-health policy denied report: ${decision.reasonCode}`);
113
202
  }
114
203
  const providers = this.collect();
115
- const warnings = providers
116
- .filter(item => this.required.has(item.id) && item.status !== 'ready')
117
- .map(item => `provider-${item.status}:${item.id}`);
204
+ const summary = summarize(providers, this.required);
118
205
  return Object.freeze({
119
- ready: warnings.length === 0,
206
+ ready: summary.ready,
207
+ severity: summary.severity,
120
208
  generatedAt: this.now(),
121
209
  providers: Object.freeze(providers),
122
- warnings: Object.freeze(warnings),
210
+ assessments: Object.freeze(summary.assessments),
211
+ warnings: Object.freeze(summary.warnings),
123
212
  });
124
213
  }
125
214
  collect() {
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAE1D,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,GAAG,IAAI,CA8B/F"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAE1D,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAwC/F"}
package/lib/tools.js CHANGED
@@ -7,7 +7,15 @@ export function registerAssistantHealthTool(ctx, service) {
7
7
  output: {
8
8
  schema: { type: 'object', additionalProperties: false, properties: {
9
9
  ready: { type: 'boolean', required: true }, generatedAt: { type: 'integer', required: true },
10
+ severity: { type: 'string', required: true },
10
11
  warnings: { type: 'array', required: true, items: { type: 'string' } },
12
+ assessments: { type: 'array', required: true, items: {
13
+ type: 'object', additionalProperties: false, properties: {
14
+ providerId: { type: 'string', required: true },
15
+ severity: { type: 'string', required: true },
16
+ code: { type: 'string', required: true },
17
+ },
18
+ } },
11
19
  providers: { type: 'array', required: true, items: { type: 'object', additionalProperties: false, properties: {
12
20
  id: { type: 'string', required: true }, status: { type: 'string', required: true },
13
21
  metrics: { type: 'object', required: true, additionalProperties: true, properties: {} },
@@ -19,8 +27,10 @@ export function registerAssistantHealthTool(ctx, service) {
19
27
  const report = service.report(exec.agent);
20
28
  return {
21
29
  ready: report.ready,
30
+ severity: report.severity,
22
31
  generatedAt: report.generatedAt,
23
32
  warnings: [...report.warnings],
33
+ assessments: report.assessments.map(assessment => ({ ...assessment })),
24
34
  providers: report.providers.map(provider => ({
25
35
  id: provider.id,
26
36
  status: provider.status,
package/lib/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGnD,MAAM,UAAU,2BAA2B,CAAC,GAAY,EAAE,OAA+B;IACvF,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,+FAA+F;QAC5G,UAAU,EAAE,EAAE;QACd,MAAM,EAAE;YACN,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE;oBACjE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC5F,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;oBACtE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE;gCAC5G,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCAClF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE;6BACxF,EAAE,EAAE;iBACN,EAAE;YACH,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;SAC1E;QACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI;YACvB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzC,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC9B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC3C,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,OAAO,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE;iBACjC,CAAC,CAAC;aACJ,CAAA;QACH,CAAC;KACF,CAAC,CAAC,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGnD,MAAM,UAAU,2BAA2B,CAAC,GAAY,EAAE,OAA+B;IACvF,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,+FAA+F;QAC5G,UAAU,EAAE,EAAE;QACd,MAAM,EAAE;YACN,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE;oBACjE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC5F,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC5C,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;oBACtE,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;4BACnD,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE;gCACvD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCAC9C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCAC5C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;6BACzC;yBACF,EAAE;oBACH,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE;gCAC5G,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gCAClF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE;6BACxF,EAAE,EAAE;iBACN,EAAE;YACH,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;SAC1E;QACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI;YACvB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzC,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC9B,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;gBACtE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC3C,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,OAAO,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE;iBACjC,CAAC,CAAC;aACJ,CAAA;QACH,CAAC;KACF,CAAC,CAAC,CAAA;AACL,CAAC"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "0.1.6";
1
+ export declare const version = "0.1.7";
2
2
  //# sourceMappingURL=version.d.ts.map
package/lib/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '0.1.6';
1
+ export const version = '0.1.7';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dsh-enhanced/assistant-health",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
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,7 @@
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.6"
74
+ "@dsh-enhanced/assistant-policy": "0.1.7"
75
75
  },
76
76
  "scripts": {
77
77
  "build": "tsc -p tsconfig.build.json",