@skrr-ai/cli 0.1.104 → 0.1.106
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/dist/base-command.js +6 -2
- package/dist/commands/agenda/trigger/list.js +2 -0
- package/dist/commands/agents/chat.js +4 -1
- package/dist/commands/agents/operating-plan.js +5 -2
- package/dist/commands/agents/triggers/create.js +3 -1
- package/dist/commands/agents/triggers/fire.js +2 -0
- package/dist/commands/agents/triggers/replay.js +2 -0
- package/dist/commands/agents/triggers/update.js +12 -4
- package/dist/commands/commitments/action-history.js +7 -2
- package/dist/commands/commitments/cadence-decisions.js +6 -1
- package/dist/commands/commitments/cadence-requests/decide.d.ts +1 -1
- package/dist/commands/commitments/cadence-requests/decide.js +1 -1
- package/dist/commands/commitments/doctor.js +7 -1
- package/dist/commands/commitments/observations.js +7 -1
- package/dist/commands/commitments/operating-review.d.ts +15 -0
- package/dist/commands/commitments/operating-review.js +23 -2
- package/dist/commands/commitments/preflight.d.ts +12 -0
- package/dist/commands/commitments/preflight.js +23 -9
- package/dist/commands/commitments/reflection.js +6 -1
- package/dist/commands/commitments/show.js +3 -1
- package/dist/commands/commitments/trigger-status.js +2 -22
- package/dist/commands/commitments/wake-capabilities.d.ts +13 -0
- package/dist/commands/commitments/wake-capabilities.js +39 -3
- package/dist/commands/daemon/logs.d.ts +73 -3
- package/dist/commands/daemon/logs.js +304 -17
- package/dist/commands/followups/act.js +13 -1
- package/dist/commands/followups/checkin.js +11 -2
- package/dist/commands/followups/reschedule.js +13 -1
- package/dist/commands/proposals/discard.d.ts +1 -1
- package/dist/commands/proposals/keep.d.ts +1 -1
- package/dist/commands/proposals/list.d.ts +7 -0
- package/dist/commands/proposals/list.js +31 -5
- package/dist/commands/proposals/show.d.ts +2 -1
- package/dist/commands/proposals/show.js +31 -4
- package/dist/commands/proposals/snooze.d.ts +1 -1
- package/dist/commands/requests/create.js +8 -3
- package/dist/commands/spaces/workflows/create.js +3 -3
- package/dist/commands/tasks/complete.js +4 -0
- package/dist/commands/tasks/create.d.ts +2 -0
- package/dist/commands/tasks/create.js +17 -3
- package/dist/commands/tasks/deliverable/add.d.ts +2 -0
- package/dist/commands/tasks/deliverable/add.js +22 -7
- package/dist/commands/tasks/deliverable/list.d.ts +13 -0
- package/dist/commands/tasks/deliverable/list.js +34 -1
- package/dist/commands/tasks/economics-compare.js +7 -1
- package/dist/commands/tasks/expectations.d.ts +10 -0
- package/dist/commands/tasks/expectations.js +31 -3
- package/dist/commands/tasks/list.d.ts +9 -0
- package/dist/commands/tasks/list.js +40 -5
- package/dist/commands/tasks/report.js +1 -1
- package/dist/commands/tasks/result/show.d.ts +7 -0
- package/dist/commands/tasks/result/show.js +32 -1
- package/dist/commands/tasks/result/submit.js +1 -1
- package/dist/commands/tasks/retry-schedule.js +11 -1
- package/dist/commands/tasks/show.d.ts +6 -0
- package/dist/commands/tasks/show.js +23 -0
- package/dist/commands/tasks/update.d.ts +3 -0
- package/dist/commands/tasks/update.js +23 -3
- package/dist/commands/triggers/audit.js +6 -2
- package/dist/commands/triggers/create.js +3 -1
- package/dist/commands/triggers/fire.d.ts +1 -0
- package/dist/commands/triggers/fire.js +16 -1
- package/dist/commands/triggers/preflight.js +6 -5
- package/dist/commands/triggers/replay.js +2 -0
- package/dist/commands/triggers/update.js +12 -4
- package/dist/commands/workspaces/stewardship.js +5 -1
- package/dist/lib/agentic-stream.d.ts +9 -0
- package/dist/lib/agentic-stream.js +38 -18
- package/dist/lib/commitment-event-wakes.d.ts +8 -0
- package/dist/lib/commitment-event-wakes.js +39 -0
- package/dist/lib/commitment-ledgers.d.ts +9 -0
- package/dist/lib/commitment-ledgers.js +126 -0
- package/dist/lib/commitments.d.ts +102 -2
- package/dist/lib/commitments.js +208 -8
- package/dist/lib/delegated-cli.js +13 -2
- package/dist/lib/followups.d.ts +6 -0
- package/dist/lib/followups.js +12 -0
- package/dist/lib/message-content.d.ts +6 -0
- package/dist/lib/message-content.js +24 -0
- package/dist/lib/operating-plan-loops.d.ts +8 -0
- package/dist/lib/operating-plan-loops.js +32 -0
- package/dist/lib/preflight-copy.d.ts +27 -0
- package/dist/lib/preflight-copy.js +89 -0
- package/dist/lib/proposal-decision-command.d.ts +1 -1
- package/dist/lib/proposal-decision-command.js +27 -3
- package/dist/lib/proposals.d.ts +17 -0
- package/dist/lib/proposals.js +41 -0
- package/dist/lib/stewardship-output.js +57 -12
- package/dist/lib/task-economics-line.d.ts +30 -0
- package/dist/lib/task-economics-line.js +49 -0
- package/dist/lib/task-economics.d.ts +15 -0
- package/dist/lib/task-economics.js +73 -8
- package/dist/lib/task-recurrence-outcome.d.ts +19 -0
- package/dist/lib/task-recurrence-outcome.js +30 -0
- package/dist/lib/triggers.d.ts +42 -0
- package/dist/lib/triggers.js +136 -2
- package/dist/lib/widgetTerminalText.d.ts +8 -0
- package/dist/lib/widgetTerminalText.js +116 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/cliHandoffWire.d.ts +33 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/cliHandoffWire.js +27 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/telemetryRedaction.d.ts +28 -5
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/telemetryRedaction.js +50 -5
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/cliHandoffWire.d.ts +33 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/cliHandoffWire.js +26 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/telemetryRedaction.d.ts +28 -5
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/telemetryRedaction.js +50 -5
- package/dist/node_modules/@skrr-ai/auth-core/package.json +1 -1
- package/dist/node_modules/@skrr-ai/data-provider/index.js +7261 -7056
- package/docs/v1/operations.md +1 -1
- package/oclif.manifest.json +116 -72
- package/package.json +1 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.eventWakeLines = eventWakeLines;
|
|
4
|
+
/**
|
|
5
|
+
* The "Event wakes:" block, one renderer for `trigger-status` and `wake-capabilities`. The second
|
|
6
|
+
* used to word its own conclusion ("configured sources may wake the Agent", a column marked
|
|
7
|
+
* ACTIVE) and contradicted the first for the same Commitment (OSK-15428, OSK-15419); printing the
|
|
8
|
+
* same facts in the same words is the only way the two cannot disagree.
|
|
9
|
+
*/
|
|
10
|
+
function eventWakeLines(caps) {
|
|
11
|
+
const lines = [];
|
|
12
|
+
lines.push('Event wakes:');
|
|
13
|
+
lines.push(` requested: ${caps.requested ? 'yes' : 'no'}`);
|
|
14
|
+
lines.push(` configured sources: ${(caps.configuredSources ?? []).join(', ') || 'none'}`);
|
|
15
|
+
lines.push(` eligible sources: ${(caps.eligibleSources ?? []).join(', ') || 'none'}`);
|
|
16
|
+
lines.push(` materialized sources: ${(caps.materializedSources ?? []).join(', ') || 'none'}`);
|
|
17
|
+
if ((caps.dormantSources ?? []).length) {
|
|
18
|
+
lines.push(` dormant sources: ${caps.dormantSources.join(', ')} (configured, but no event wake is planned for them)`);
|
|
19
|
+
}
|
|
20
|
+
if ((caps.unroutableSources ?? []).length) {
|
|
21
|
+
lines.push(` unroutable sources: ${caps
|
|
22
|
+
.unroutableSources.map((item) => `${item.source} (${item.reason})`)
|
|
23
|
+
.join(', ')} — materialized but no upstream producer can deliver events`);
|
|
24
|
+
}
|
|
25
|
+
if ((caps.unverifiedSources ?? []).length) {
|
|
26
|
+
lines.push(` unverified sources: ${caps
|
|
27
|
+
.unverifiedSources.map((item) => `${item.source} (${item.reason})`)
|
|
28
|
+
.join(', ')} — the upstream producer could not be read, so delivery is unknown`);
|
|
29
|
+
}
|
|
30
|
+
if ((caps.permissionGaps ?? []).length) {
|
|
31
|
+
lines.push(` permission gaps: ${caps
|
|
32
|
+
.permissionGaps.map((gap) => `${gap.source} ${gap.capability ?? gap.permission}` +
|
|
33
|
+
` (${gap.impact === 'evidence_read' ? 'needed by' : 'blocks'} ${(gap.events ?? []).join(', ')})`)
|
|
34
|
+
.join('; ')} — the routing GitHub installation does not hold the permission`);
|
|
35
|
+
}
|
|
36
|
+
if (caps.degradedReason)
|
|
37
|
+
lines.push(` degraded: ${caps.degradedReason}`);
|
|
38
|
+
return lines;
|
|
39
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function renderActionHistory(page: {
|
|
2
|
+
data?: unknown[];
|
|
3
|
+
has_more?: boolean;
|
|
4
|
+
next_cursor?: string | null;
|
|
5
|
+
} | undefined, log: (line: string) => void): void;
|
|
6
|
+
export declare function renderReflection(review: Record<string, unknown> | undefined, log: (line: string) => void): void;
|
|
7
|
+
export declare function renderCadenceDecisions(list: {
|
|
8
|
+
data?: unknown[];
|
|
9
|
+
} | undefined, log: (line: string) => void): void;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderActionHistory = renderActionHistory;
|
|
4
|
+
exports.renderReflection = renderReflection;
|
|
5
|
+
exports.renderCadenceDecisions = renderCadenceDecisions;
|
|
6
|
+
/**
|
|
7
|
+
* Human views for three Commitment read commands that printed raw JSON without `--json`
|
|
8
|
+
* (OSK-15435): `action-history`, `reflection` and `cadence-decisions`. `--json` is unchanged; these
|
|
9
|
+
* only replace the default. An empty ledger is a sentence, not `"data": []`.
|
|
10
|
+
*/
|
|
11
|
+
const format_1 = require("./format");
|
|
12
|
+
const commitments_1 = require("./commitments");
|
|
13
|
+
const text = (value, fallback = '-') => typeof value === 'string' && value.trim()
|
|
14
|
+
? value
|
|
15
|
+
: typeof value === 'number'
|
|
16
|
+
? String(value)
|
|
17
|
+
: fallback;
|
|
18
|
+
/** First sentence-ish chunk of a message, bounded, so a table row stays a row. */
|
|
19
|
+
function brief(value, max = 80) {
|
|
20
|
+
const raw = text(value, '');
|
|
21
|
+
if (!raw)
|
|
22
|
+
return '';
|
|
23
|
+
const firstLine = raw.split('\n')[0];
|
|
24
|
+
return firstLine.length > max ? `${firstLine.slice(0, max - 1)}…` : firstLine;
|
|
25
|
+
}
|
|
26
|
+
function minutes(ms) {
|
|
27
|
+
if (typeof ms !== 'number' || !Number.isFinite(ms))
|
|
28
|
+
return '-';
|
|
29
|
+
const m = Math.round(ms / 60000);
|
|
30
|
+
if (m >= 1440 && m % 1440 === 0)
|
|
31
|
+
return `${m / 1440}d`;
|
|
32
|
+
if (m >= 60 && m % 60 === 0)
|
|
33
|
+
return `${m / 60}h`;
|
|
34
|
+
return `${m}m`;
|
|
35
|
+
}
|
|
36
|
+
function renderActionHistory(page, log) {
|
|
37
|
+
const rows = (Array.isArray(page?.data) ? page.data : []);
|
|
38
|
+
if (rows.length === 0) {
|
|
39
|
+
log('No actions recorded.');
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
(0, format_1.renderTable)(rows.map((row) => ({
|
|
43
|
+
when: text(row.occurredAt),
|
|
44
|
+
type: text(row.type),
|
|
45
|
+
status: text(row.status),
|
|
46
|
+
check: text(row.checkId),
|
|
47
|
+
// A failed or refused action's reason is the point of reading history.
|
|
48
|
+
why: [text(row.errorCode, ''), brief(row.errorMessage ?? row.reason)]
|
|
49
|
+
.filter(Boolean)
|
|
50
|
+
.join(' · '),
|
|
51
|
+
})), [
|
|
52
|
+
{ key: 'when', header: 'WHEN' },
|
|
53
|
+
{ key: 'type', header: 'ACTION' },
|
|
54
|
+
{ key: 'status', header: 'STATUS' },
|
|
55
|
+
{ key: 'check', header: 'CHECK' },
|
|
56
|
+
{ key: 'why', header: 'WHY', maxWidth: 100 },
|
|
57
|
+
], log);
|
|
58
|
+
}
|
|
59
|
+
(0, commitments_1.renderListPageHint)(page, log);
|
|
60
|
+
}
|
|
61
|
+
function renderReflection(review, log) {
|
|
62
|
+
const metrics = (review?.metrics ?? {});
|
|
63
|
+
const proposals = Array.isArray(review?.proposals) ? review.proposals : [];
|
|
64
|
+
if (proposals.length === 0) {
|
|
65
|
+
log('No reflection proposals recorded.');
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
log(`Reflection proposals: ${text(metrics.total, String(proposals.length))} total · ` +
|
|
69
|
+
`${text(metrics.awaitingApproval, '0')} awaiting approval · ${text(metrics.applied, '0')} applied · ` +
|
|
70
|
+
`${text(metrics.rejected, '0')} rejected · ${text(metrics.failed, '0')} failed`);
|
|
71
|
+
}
|
|
72
|
+
if (review?.lastReflectionAt)
|
|
73
|
+
log(`Last reflection: ${text(review.lastReflectionAt)}`);
|
|
74
|
+
const held = Array.isArray(review?.activeProposalKeys)
|
|
75
|
+
? review.activeProposalKeys
|
|
76
|
+
: [];
|
|
77
|
+
if (held.length > 0)
|
|
78
|
+
log(`Held proposal keys: ${held.map((key) => text(key)).join(', ')}`);
|
|
79
|
+
if (proposals.length === 0)
|
|
80
|
+
return;
|
|
81
|
+
(0, format_1.renderTable)(proposals.map((row) => {
|
|
82
|
+
const proposal = (row.proposal ?? {});
|
|
83
|
+
const decision = (row.decision ?? {});
|
|
84
|
+
return {
|
|
85
|
+
when: text(row.occurredAt),
|
|
86
|
+
status: text(row.status),
|
|
87
|
+
type: text(proposal.type),
|
|
88
|
+
subject: brief(proposal.subject, 60),
|
|
89
|
+
decision: [text(decision.decision, ''), brief(decision.reason, 50)]
|
|
90
|
+
.filter(Boolean)
|
|
91
|
+
.join(' · '),
|
|
92
|
+
check: text(row.checkId),
|
|
93
|
+
};
|
|
94
|
+
}), [
|
|
95
|
+
{ key: 'when', header: 'WHEN' },
|
|
96
|
+
{ key: 'status', header: 'STATUS' },
|
|
97
|
+
{ key: 'type', header: 'TYPE' },
|
|
98
|
+
{ key: 'subject', header: 'SUBJECT', maxWidth: 60 },
|
|
99
|
+
{ key: 'decision', header: 'DECISION', maxWidth: 70 },
|
|
100
|
+
{ key: 'check', header: 'CHECK' },
|
|
101
|
+
], log);
|
|
102
|
+
}
|
|
103
|
+
function renderCadenceDecisions(list, log) {
|
|
104
|
+
const rows = (Array.isArray(list?.data) ? list.data : []);
|
|
105
|
+
if (rows.length === 0) {
|
|
106
|
+
log('No cadence decisions recorded.');
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
(0, format_1.renderTable)(rows.map((row) => ({
|
|
110
|
+
when: text(row.decidedAt),
|
|
111
|
+
mode: text(row.mode),
|
|
112
|
+
disposition: text(row.disposition),
|
|
113
|
+
direction: text(row.direction),
|
|
114
|
+
interval: `${minutes(row.currentIntervalMs)} → ${minutes(row.candidateIntervalMs)}`,
|
|
115
|
+
confidence: typeof row.confidence === 'number' ? row.confidence.toFixed(2) : '-',
|
|
116
|
+
reason: brief(row.reason, 70),
|
|
117
|
+
})), [
|
|
118
|
+
{ key: 'when', header: 'DECIDED' },
|
|
119
|
+
{ key: 'mode', header: 'MODE' },
|
|
120
|
+
{ key: 'disposition', header: 'DISPOSITION' },
|
|
121
|
+
{ key: 'direction', header: 'DIRECTION' },
|
|
122
|
+
{ key: 'interval', header: 'INTERVAL' },
|
|
123
|
+
{ key: 'confidence', header: 'CONFIDENCE' },
|
|
124
|
+
{ key: 'reason', header: 'REASON', maxWidth: 70 },
|
|
125
|
+
], log);
|
|
126
|
+
}
|
|
@@ -18,7 +18,7 @@ import { type CommitmentObservationsQuery, type CommitmentObservationsResponse }
|
|
|
18
18
|
* "hold this state", derived from a Compass invariant — not authored here).
|
|
19
19
|
*/
|
|
20
20
|
import { COMMITMENT_WATCHED_SOURCES, COMMITMENT_TEMPLATE_IDS, COMMITMENT_CADENCE_MODES, COMMITMENT_CADENCE_TIME_PATTERN, COMMITMENT_CADENCE_MAX_TIMES, COMMITMENT_EXECUTION_ISOLATION_MODES, COMMITMENT_STATUSES, COMMITMENT_KIND_VALUES } from '@skrr-ai/data-provider';
|
|
21
|
-
import type { CommitmentCheck, CommitmentChecksResponse, Commitment, CommitmentActionProposal, CommitmentListResponse, CommitmentPlanResponse, CommitmentStatusResponse, CommitmentWorkLink, CommitmentExecutionReceiptListResponse, CommitmentExecutionReceiptQuarterlyMetricsResponse, CommitmentCapabilitySource, CommitmentDeliveryPatchResponse, CommitmentDeliveryBundleResponse, CommitmentCyclesResponse, CommitmentExplanationResponse, CommitmentRunPermissions, CommitmentLoopStatus, CommitmentRoster } from '@skrr-ai/data-provider';
|
|
21
|
+
import type { CommitmentCheck, CommitmentChecksResponse, Commitment, CommitmentActionProposal, CommitmentListResponse, CommitmentPlanResponse, CommitmentScheduleIssue, CommitmentStatusResponse, CommitmentWorkLink, CommitmentExecutionReceiptListResponse, CommitmentExecutionReceiptQuarterlyMetricsResponse, CommitmentCapabilitySource, CommitmentDeliveryPatchResponse, CommitmentDeliveryBundleResponse, CommitmentCyclesResponse, CommitmentExplanationResponse, CommitmentRunPermissions, CommitmentLoopStatus, CommitmentRoster } from '@skrr-ai/data-provider';
|
|
22
22
|
import { withQuery } from './triggers';
|
|
23
23
|
export { COMMITMENT_WATCHED_SOURCES, COMMITMENT_TEMPLATE_IDS, COMMITMENT_CADENCE_MODES, COMMITMENT_CADENCE_TIME_PATTERN, COMMITMENT_CADENCE_MAX_TIMES, COMMITMENT_STATUSES, COMMITMENT_KIND_VALUES, };
|
|
24
24
|
export type { CommitmentCheck, CommitmentChecksResponse, Commitment, CommitmentActionProposal, CommitmentListResponse, CommitmentPlanResponse, CommitmentStatusResponse, CommitmentWorkLink, };
|
|
@@ -105,6 +105,13 @@ export type CommitmentPreflightReport = {
|
|
|
105
105
|
* report it) prints nothing rather than a guess.
|
|
106
106
|
*/
|
|
107
107
|
export declare function permissionLines(permissions: CommitmentRunPermissions | null | undefined): string[];
|
|
108
|
+
/**
|
|
109
|
+
* The lines `show` prints for a stored schedule setting the engine cannot honour
|
|
110
|
+
* (OSK-15452): the cadence line above them reads as honoured while the daily times
|
|
111
|
+
* run on UTC. The sentence and the remedy are the server's; this only lays them out.
|
|
112
|
+
* An older server reports none, which prints nothing rather than a guess.
|
|
113
|
+
*/
|
|
114
|
+
export declare function scheduleIssueLines(issues: CommitmentScheduleIssue[] | null | undefined): string[];
|
|
108
115
|
/**
|
|
109
116
|
* One line naming fields that are still in the JSON but decide nothing any
|
|
110
117
|
* more. Deprecation, not removal: `--json` keeps them for scripts.
|
|
@@ -568,6 +575,36 @@ export interface CommitmentCostWindow {
|
|
|
568
575
|
unavailableRunCount?: number;
|
|
569
576
|
costStatus?: 'reported' | 'partial' | 'unavailable' | 'not_applicable';
|
|
570
577
|
}
|
|
578
|
+
/**
|
|
579
|
+
* The event-wake block of a Commitment's trigger status (`eventCapabilities`), as the server sends
|
|
580
|
+
* it. Rendered by `eventWakeLines` for both `trigger-status` and `wake-capabilities`.
|
|
581
|
+
*/
|
|
582
|
+
export type EventWakeCapabilities = {
|
|
583
|
+
requested?: boolean;
|
|
584
|
+
configuredSources?: string[];
|
|
585
|
+
eligibleSources?: string[];
|
|
586
|
+
materializedSources?: string[];
|
|
587
|
+
dormantSources?: string[];
|
|
588
|
+
unroutableSources?: {
|
|
589
|
+
source?: string;
|
|
590
|
+
reason?: string;
|
|
591
|
+
}[];
|
|
592
|
+
/** Sources whose upstream producer was positively verified to route events here. */
|
|
593
|
+
verifiedSources?: string[];
|
|
594
|
+
/** Sources whose upstream could not be read: "cannot see", never "fine" (OSK-16209). */
|
|
595
|
+
unverifiedSources?: {
|
|
596
|
+
source?: string;
|
|
597
|
+
reason?: string;
|
|
598
|
+
}[];
|
|
599
|
+
permissionGaps?: {
|
|
600
|
+
source?: string;
|
|
601
|
+
permission?: string;
|
|
602
|
+
capability?: string;
|
|
603
|
+
events?: string[];
|
|
604
|
+
impact?: string;
|
|
605
|
+
}[];
|
|
606
|
+
degradedReason?: string;
|
|
607
|
+
};
|
|
571
608
|
/** Shape of `GET /:id/wake-capabilities`. */
|
|
572
609
|
export interface CommitmentWakeCapabilities {
|
|
573
610
|
eligibleCapabilities: Array<{
|
|
@@ -580,6 +617,17 @@ export interface CommitmentWakeCapabilities {
|
|
|
580
617
|
kind?: string;
|
|
581
618
|
source?: string;
|
|
582
619
|
}>;
|
|
620
|
+
/**
|
|
621
|
+
* The event-wake facts `trigger-status` reports, verbatim, plus the Agent's own enabled event
|
|
622
|
+
* waits. Absent from a server that predates it, or when the status could not be read: "no
|
|
623
|
+
* statement", never "nothing is bound".
|
|
624
|
+
*/
|
|
625
|
+
standingEventWakes?: {
|
|
626
|
+
commitmentStatus: string;
|
|
627
|
+
cadenceMode?: string;
|
|
628
|
+
eventCapabilities: EventWakeCapabilities;
|
|
629
|
+
agentChosenEventWaits: number;
|
|
630
|
+
} | null;
|
|
583
631
|
}
|
|
584
632
|
/** One-tap check feedback. `handled` means "I dealt with it", not "good nudge". */
|
|
585
633
|
export declare const COMMITMENT_FEEDBACK_KINDS: readonly ["useful", "noisy", "wrong", "handled"];
|
|
@@ -624,6 +672,12 @@ export declare function commitmentConcurrencyEnvelopePatch({ rawValue, reason, a
|
|
|
624
672
|
reason?: string;
|
|
625
673
|
autonomous?: boolean;
|
|
626
674
|
}): Record<string, unknown> | undefined;
|
|
675
|
+
/**
|
|
676
|
+
* What `policy.evidenceGate.requireMaterialEvidenceForAutonomousRun` does to this Commitment's
|
|
677
|
+
* scheduled runs, in a line `show` can print (OSK-15417). It existed only in `show --json`: nothing
|
|
678
|
+
* in help, docs or any text view said whether a run on an unchanged day would be held back.
|
|
679
|
+
*/
|
|
680
|
+
export declare function describeEvidenceGate(commitment: CommitmentView): string;
|
|
627
681
|
export declare function describeCommitmentConcurrency(commitment: CommitmentView): string;
|
|
628
682
|
export declare function parseIntervalToMs(input: string): number;
|
|
629
683
|
/**
|
|
@@ -699,6 +753,11 @@ export declare function buildSuccessCriteria(labels: string[], opts?: {
|
|
|
699
753
|
measureId?: string;
|
|
700
754
|
source?: string;
|
|
701
755
|
}): SuccessCriterionInput[];
|
|
756
|
+
/**
|
|
757
|
+
* The cadence changes an Agent has proposed and nobody has decided. `cadence-requests decide` needs a request
|
|
758
|
+
* id, and `show` listed none, so a person could not find the id to pass (OSK-15422).
|
|
759
|
+
*/
|
|
760
|
+
export declare function pendingCadenceRequestLines(commitment: unknown): string[];
|
|
702
761
|
export declare function cadenceLabel(commitment: CommitmentView): string;
|
|
703
762
|
export declare function renderCommitmentList(commitments: CommitmentView[], log: (line: string) => void): void;
|
|
704
763
|
/**
|
|
@@ -741,6 +800,31 @@ export declare function extractStandstillFromCheck(check?: {
|
|
|
741
800
|
* null rather than printing a guess.
|
|
742
801
|
*/
|
|
743
802
|
export declare function describeExecutorBlocked(commitment: CommitmentView): string | null;
|
|
803
|
+
/**
|
|
804
|
+
* The Operation line's wording for a Commitment that is not running because of its lifecycle.
|
|
805
|
+
*
|
|
806
|
+
* The assessment reports `waiting` with reason `lifecycle_<status>` for a Commitment a person
|
|
807
|
+
* paused, and `show` printed that verbatim ("waiting — lifecycle_paused"): the word "waiting" and a
|
|
808
|
+
* raw code, indistinguishable from one waiting on a machine or an approval (OSK-15423). Any other
|
|
809
|
+
* operation and reason is printed as it always was.
|
|
810
|
+
*/
|
|
811
|
+
export declare function describeOperation(operation: string | null | undefined, reason: string | null | undefined): string;
|
|
812
|
+
/**
|
|
813
|
+
* What to do about an operation that is not running, from the operating state's
|
|
814
|
+
* first actionable blocker (`withLiveAssessment` carries it onto the view).
|
|
815
|
+
*
|
|
816
|
+
* `show` printed `Operation: blocked — typed_external_blocker` and nothing else,
|
|
817
|
+
* so the one line a reader acts on was a code; the remediation the server
|
|
818
|
+
* already composed sat only in `--json` and `doctor` (OSK-16212). Nothing is
|
|
819
|
+
* printed while the operation is ready or working, where a fix would contradict
|
|
820
|
+
* the line above it.
|
|
821
|
+
*/
|
|
822
|
+
export declare function describeOperationFix(commitment: CommitmentView, operation: string | null | undefined): string | null;
|
|
823
|
+
/**
|
|
824
|
+
* Who stopped a Commitment, and when and why, in one line. The server stores it as `stoppedBy`;
|
|
825
|
+
* `show` printed neither (OSK-15423), so a Commitment you paused did not say you had.
|
|
826
|
+
*/
|
|
827
|
+
export declare function describeStoppedBy(commitment: CommitmentView): string | null;
|
|
744
828
|
/**
|
|
745
829
|
* The commitment `show` should render: its stored contract, with the
|
|
746
830
|
* assessment replaced by the one the operating state recomputed for this read
|
|
@@ -751,6 +835,8 @@ export declare function describeExecutorBlocked(commitment: CommitmentView): str
|
|
|
751
835
|
*/
|
|
752
836
|
export declare function withLiveAssessment(commitment: CommitmentView, operatingState?: {
|
|
753
837
|
assessment?: unknown;
|
|
838
|
+
executorBlocked?: unknown;
|
|
839
|
+
firstActionableBlocker?: unknown;
|
|
754
840
|
} | null): CommitmentView;
|
|
755
841
|
export declare function renderCommitmentSummary(commitment: CommitmentView, log: (line: string) => void,
|
|
756
842
|
/**
|
|
@@ -765,7 +851,13 @@ latestCheck?: {
|
|
|
765
851
|
decision?: {
|
|
766
852
|
policyTrace?: Array<Record<string, unknown>>;
|
|
767
853
|
} | null;
|
|
768
|
-
} | null
|
|
854
|
+
} | null,
|
|
855
|
+
/**
|
|
856
|
+
* Stored schedule settings the engine cannot honour (OSK-15452), printed directly under the
|
|
857
|
+
* cadence they affect rather than after the free-text summary at the bottom. Optional for the
|
|
858
|
+
* same reason as `latestCheck`: only `show` reads them from the server.
|
|
859
|
+
*/
|
|
860
|
+
scheduleIssues?: CommitmentScheduleIssue[] | null): void;
|
|
769
861
|
/**
|
|
770
862
|
* Whether a check woke the agent, in plain words (OSK-4884).
|
|
771
863
|
*
|
|
@@ -820,6 +912,14 @@ export declare function renderListPageHint(page: {
|
|
|
820
912
|
* `other`. `--json` carries each artifact's `ref`, `locator` and `originalRef`.
|
|
821
913
|
*/
|
|
822
914
|
export declare function describeObservationArtifacts(artifacts: unknown): string;
|
|
915
|
+
/**
|
|
916
|
+
* What the observations table's terse columns mean, for the rows actually on screen (OSK-15432).
|
|
917
|
+
*
|
|
918
|
+
* The table shortens VALUE to fit with `…`, so a reading cut by the screen looked the same as one
|
|
919
|
+
* the platform truncated; `undeclared` / `DECLARED no` and CLAMPED were defined nowhere. Only the
|
|
920
|
+
* terms present in THESE rows are explained, so an ordinary table adds nothing.
|
|
921
|
+
*/
|
|
922
|
+
export declare function observationLegend(data: ReadModelRecord[]): string[];
|
|
823
923
|
export declare function renderCommitmentObservations(response: ReadModelRecord, log: (line: string) => void, options?: {
|
|
824
924
|
emptyMessage?: string;
|
|
825
925
|
}): void;
|