@rcrsr/claude-code-runner 0.9.1 → 0.11.0
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 +13 -10
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +25 -4
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/docs.d.ts +9 -0
- package/dist/cli/docs.d.ts.map +1 -0
- package/dist/cli/docs.js +55 -0
- package/dist/cli/docs.js.map +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/dist/output/colors.d.ts +33 -1
- package/dist/output/colors.d.ts.map +1 -1
- package/dist/output/colors.js +119 -1
- package/dist/output/colors.js.map +1 -1
- package/dist/output/formatter.d.ts +6 -0
- package/dist/output/formatter.d.ts.map +1 -1
- package/dist/output/formatter.js +72 -34
- package/dist/output/formatter.js.map +1 -1
- package/dist/output/ui-components.d.ts +34 -0
- package/dist/output/ui-components.d.ts.map +1 -0
- package/dist/output/ui-components.js +158 -0
- package/dist/output/ui-components.js.map +1 -0
- package/dist/output/ui-renderer.d.ts +18 -0
- package/dist/output/ui-renderer.d.ts.map +1 -0
- package/dist/output/ui-renderer.js +75 -0
- package/dist/output/ui-renderer.js.map +1 -0
- package/dist/output/ui-state.d.ts +71 -0
- package/dist/output/ui-state.d.ts.map +1 -0
- package/dist/output/ui-state.js +131 -0
- package/dist/output/ui-state.js.map +1 -0
- package/dist/rill/context.d.ts +2 -0
- package/dist/rill/context.d.ts.map +1 -1
- package/dist/rill/context.js +84 -13
- package/dist/rill/context.js.map +1 -1
- package/dist/rill/runner.d.ts.map +1 -1
- package/dist/rill/runner.js +56 -1
- package/dist/rill/runner.js.map +1 -1
- package/dist/types/runner.d.ts +12 -3
- package/dist/types/runner.d.ts.map +1 -1
- package/dist/types/runner.js.map +1 -1
- package/dist/utils/constants.d.ts +4 -0
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +5 -0
- package/dist/utils/constants.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI state management for parallel agent display
|
|
3
|
+
*/
|
|
4
|
+
import type { ActiveTask } from '../types/runner.js';
|
|
5
|
+
/**
|
|
6
|
+
* Entry in the main execution log
|
|
7
|
+
*/
|
|
8
|
+
export interface LogEntry {
|
|
9
|
+
timestamp: Date;
|
|
10
|
+
agentLabel: string;
|
|
11
|
+
agentName: string;
|
|
12
|
+
type: 'invocation' | 'tool' | 'completion';
|
|
13
|
+
content: string;
|
|
14
|
+
duration?: number;
|
|
15
|
+
messageCount?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Individual tool call record
|
|
19
|
+
*/
|
|
20
|
+
export interface ToolCallEntry {
|
|
21
|
+
toolName: string;
|
|
22
|
+
args: string;
|
|
23
|
+
timestamp: Date;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* State for a single agent/task
|
|
27
|
+
*/
|
|
28
|
+
export interface AgentState {
|
|
29
|
+
id: string;
|
|
30
|
+
name: string;
|
|
31
|
+
description: string;
|
|
32
|
+
label: string;
|
|
33
|
+
toolCalls: ToolCallEntry[];
|
|
34
|
+
messageCount: number;
|
|
35
|
+
startTime: number;
|
|
36
|
+
status: 'running' | 'complete';
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Overall UI state for parallel agent display
|
|
40
|
+
*/
|
|
41
|
+
export interface UIState {
|
|
42
|
+
agents: Map<string, AgentState>;
|
|
43
|
+
mainLog: LogEntry[];
|
|
44
|
+
renderStartTime: number;
|
|
45
|
+
spinnerFrame: number;
|
|
46
|
+
/** Callback invoked when first agent is registered */
|
|
47
|
+
onFirstAgent?: () => void;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create initial UI state with empty agents and log
|
|
51
|
+
*/
|
|
52
|
+
export declare function createUIState(): UIState;
|
|
53
|
+
/**
|
|
54
|
+
* Register a new agent in the UI state
|
|
55
|
+
* @throws {Error} if agent count exceeds UI_MAX_AGENTS
|
|
56
|
+
* @throws {Error} if agent ID already registered
|
|
57
|
+
*/
|
|
58
|
+
export declare function registerAgent(state: UIState, task: ActiveTask, description: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* Record a tool call for an agent
|
|
61
|
+
* @throws {Error} if agent ID not found
|
|
62
|
+
* @throws {Error} if tool name empty
|
|
63
|
+
*/
|
|
64
|
+
export declare function recordToolCall(state: UIState, agentId: string, toolName: string, args: string): void;
|
|
65
|
+
/**
|
|
66
|
+
* Mark agent complete and add completion entry to main log
|
|
67
|
+
* @throws {Error} if agent ID not found
|
|
68
|
+
* @throws {Error} if agent already complete
|
|
69
|
+
*/
|
|
70
|
+
export declare function completeAgent(state: UIState, agentId: string): void;
|
|
71
|
+
//# sourceMappingURL=ui-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-state.d.ts","sourceRoot":"","sources":["../../src/output/ui-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOrD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,YAAY,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAOvC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,MAAM,GAClB,IAAI,CAkDN;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,IAAI,CAqCN;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA8BnE"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI state management for parallel agent display
|
|
3
|
+
*/
|
|
4
|
+
import { UI_MAX_AGENTS, UI_MAX_DESCRIPTION_LENGTH, UI_MAX_VISIBLE_TOOLS, } from '../utils/constants.js';
|
|
5
|
+
/**
|
|
6
|
+
* Create initial UI state with empty agents and log
|
|
7
|
+
*/
|
|
8
|
+
export function createUIState() {
|
|
9
|
+
return {
|
|
10
|
+
agents: new Map(),
|
|
11
|
+
mainLog: [],
|
|
12
|
+
renderStartTime: Date.now(),
|
|
13
|
+
spinnerFrame: 0,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Register a new agent in the UI state
|
|
18
|
+
* @throws {Error} if agent count exceeds UI_MAX_AGENTS
|
|
19
|
+
* @throws {Error} if agent ID already registered
|
|
20
|
+
*/
|
|
21
|
+
export function registerAgent(state, task, description) {
|
|
22
|
+
// EC-1: Check agent count limit
|
|
23
|
+
if (state.agents.size >= UI_MAX_AGENTS) {
|
|
24
|
+
throw new Error('Maximum 10 concurrent agents exceeded');
|
|
25
|
+
}
|
|
26
|
+
// EC-2: Check for duplicate agent ID
|
|
27
|
+
if (state.agents.has(task.id)) {
|
|
28
|
+
throw new Error(`Agent ${task.id} already registered`);
|
|
29
|
+
}
|
|
30
|
+
// Truncate description to 40 characters
|
|
31
|
+
const truncatedDescription = description.length > UI_MAX_DESCRIPTION_LENGTH
|
|
32
|
+
? description.slice(0, UI_MAX_DESCRIPTION_LENGTH)
|
|
33
|
+
: description;
|
|
34
|
+
// Create agent state
|
|
35
|
+
const agentState = {
|
|
36
|
+
id: task.id,
|
|
37
|
+
name: task.name,
|
|
38
|
+
description: truncatedDescription,
|
|
39
|
+
label: task.label,
|
|
40
|
+
toolCalls: [],
|
|
41
|
+
messageCount: 0,
|
|
42
|
+
startTime: Date.now(),
|
|
43
|
+
status: 'running',
|
|
44
|
+
};
|
|
45
|
+
// Check if this is the first agent (trigger callback before adding)
|
|
46
|
+
const isFirstAgent = state.agents.size === 0;
|
|
47
|
+
// Add to agents map
|
|
48
|
+
state.agents.set(task.id, agentState);
|
|
49
|
+
// Trigger callback for first agent
|
|
50
|
+
if (isFirstAgent && state.onFirstAgent) {
|
|
51
|
+
state.onFirstAgent();
|
|
52
|
+
}
|
|
53
|
+
// Add invocation entry to main log
|
|
54
|
+
const logEntry = {
|
|
55
|
+
timestamp: new Date(),
|
|
56
|
+
agentLabel: task.label,
|
|
57
|
+
agentName: task.name,
|
|
58
|
+
type: 'invocation',
|
|
59
|
+
content: truncatedDescription,
|
|
60
|
+
};
|
|
61
|
+
state.mainLog.push(logEntry);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Record a tool call for an agent
|
|
65
|
+
* @throws {Error} if agent ID not found
|
|
66
|
+
* @throws {Error} if tool name empty
|
|
67
|
+
*/
|
|
68
|
+
export function recordToolCall(state, agentId, toolName, args) {
|
|
69
|
+
// EC-3: Check agent ID exists
|
|
70
|
+
const agent = state.agents.get(agentId);
|
|
71
|
+
if (!agent) {
|
|
72
|
+
throw new Error(`Unknown agent: ${agentId}`);
|
|
73
|
+
}
|
|
74
|
+
// EC-4: Check tool name not empty
|
|
75
|
+
if (!toolName || toolName.trim().length === 0) {
|
|
76
|
+
throw new Error('Tool name required');
|
|
77
|
+
}
|
|
78
|
+
// Create tool call entry
|
|
79
|
+
const toolCall = {
|
|
80
|
+
toolName,
|
|
81
|
+
args,
|
|
82
|
+
timestamp: new Date(),
|
|
83
|
+
};
|
|
84
|
+
// Add to agent's tool calls (FIFO management for max 5 visible)
|
|
85
|
+
agent.toolCalls.push(toolCall);
|
|
86
|
+
// AC-8: Remove oldest if exceeds max visible tools
|
|
87
|
+
if (agent.toolCalls.length > UI_MAX_VISIBLE_TOOLS) {
|
|
88
|
+
agent.toolCalls.shift();
|
|
89
|
+
}
|
|
90
|
+
// Add tool call entry to main log
|
|
91
|
+
const logEntry = {
|
|
92
|
+
timestamp: new Date(),
|
|
93
|
+
agentLabel: agent.label,
|
|
94
|
+
agentName: agent.name,
|
|
95
|
+
type: 'tool',
|
|
96
|
+
content: `${toolName}(${args})`,
|
|
97
|
+
};
|
|
98
|
+
state.mainLog.push(logEntry);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Mark agent complete and add completion entry to main log
|
|
102
|
+
* @throws {Error} if agent ID not found
|
|
103
|
+
* @throws {Error} if agent already complete
|
|
104
|
+
*/
|
|
105
|
+
export function completeAgent(state, agentId) {
|
|
106
|
+
// EC-5: Check agent ID exists
|
|
107
|
+
const agent = state.agents.get(agentId);
|
|
108
|
+
if (!agent) {
|
|
109
|
+
throw new Error(`Unknown agent: ${agentId}`);
|
|
110
|
+
}
|
|
111
|
+
// EC-6: Check agent not already complete
|
|
112
|
+
if (agent.status === 'complete') {
|
|
113
|
+
throw new Error(`Agent ${agentId} already completed`);
|
|
114
|
+
}
|
|
115
|
+
// Calculate duration from agent start time to current time
|
|
116
|
+
const duration = Date.now() - agent.startTime;
|
|
117
|
+
// Set agent status to 'complete' for renderer to remove box
|
|
118
|
+
agent.status = 'complete';
|
|
119
|
+
// Add completion entry to main log with duration and message count
|
|
120
|
+
const logEntry = {
|
|
121
|
+
timestamp: new Date(),
|
|
122
|
+
agentLabel: agent.label,
|
|
123
|
+
agentName: agent.name,
|
|
124
|
+
type: 'completion',
|
|
125
|
+
content: 'Complete',
|
|
126
|
+
duration,
|
|
127
|
+
messageCount: agent.messageCount,
|
|
128
|
+
};
|
|
129
|
+
state.mainLog.push(logEntry);
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=ui-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-state.js","sourceRoot":"","sources":["../../src/output/ui-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAkD/B;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,MAAM,EAAE,IAAI,GAAG,EAAE;QACjB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE;QAC3B,YAAY,EAAE,CAAC;KAChB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAc,EACd,IAAgB,EAChB,WAAmB;IAEnB,gCAAgC;IAChC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,aAAa,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,qCAAqC;IACrC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACzD,CAAC;IAED,wCAAwC;IACxC,MAAM,oBAAoB,GACxB,WAAW,CAAC,MAAM,GAAG,yBAAyB;QAC5C,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC;QACjD,CAAC,CAAC,WAAW,CAAC;IAElB,qBAAqB;IACrB,MAAM,UAAU,GAAe;QAC7B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,oBAAoB;QACjC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,oEAAoE;IACpE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;IAE7C,oBAAoB;IACpB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAEtC,mCAAmC;IACnC,IAAI,YAAY,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,KAAK,CAAC,YAAY,EAAE,CAAC;IACvB,CAAC;IAED,mCAAmC;IACnC,MAAM,QAAQ,GAAa;QACzB,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,UAAU,EAAE,IAAI,CAAC,KAAK;QACtB,SAAS,EAAE,IAAI,CAAC,IAAI;QACpB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,oBAAoB;KAC9B,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAc,EACd,OAAe,EACf,QAAgB,EAChB,IAAY;IAEZ,8BAA8B;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,yBAAyB;IACzB,MAAM,QAAQ,GAAkB;QAC9B,QAAQ;QACR,IAAI;QACJ,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC;IAEF,gEAAgE;IAChE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE/B,mDAAmD;IACnD,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QAClD,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,kCAAkC;IAClC,MAAM,QAAQ,GAAa;QACzB,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,UAAU,EAAE,KAAK,CAAC,KAAK;QACvB,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,GAAG,QAAQ,IAAI,IAAI,GAAG;KAChC,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,OAAe;IAC3D,8BAA8B;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,yCAAyC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,oBAAoB,CAAC,CAAC;IACxD,CAAC;IAED,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;IAE9C,4DAA4D;IAC5D,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;IAE1B,mEAAmE;IACnE,MAAM,QAAQ,GAAa;QACzB,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,UAAU,EAAE,KAAK,CAAC,KAAK;QACvB,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,UAAU;QACnB,QAAQ;QACR,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/rill/context.d.ts
CHANGED
|
@@ -36,6 +36,8 @@ export interface RunnerContextOptions {
|
|
|
36
36
|
signal?: AbortSignal | undefined;
|
|
37
37
|
/** Regex patterns that halt execution when output matches */
|
|
38
38
|
autoExceptions?: string[] | undefined;
|
|
39
|
+
/** Callback for state changes from ccr::state host function */
|
|
40
|
+
onStateChange?: ((text: string | null) => void) | undefined;
|
|
39
41
|
}
|
|
40
42
|
/**
|
|
41
43
|
* Create a Rill runtime context for Claude Code Runner workflows
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/rill/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAkBrB,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,MAAM,cAAc,GAAG,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,0CAA0C;AAC1C,MAAM,WAAW,oBAAoB;IACnC,yBAAyB;IACzB,aAAa,EAAE,cAAc,CAAC;IAC9B,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC;IAClD,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACzC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IAClD,uDAAuD;IACvD,aAAa,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACnD,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/rill/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAkBrB,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,MAAM,cAAc,GAAG,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,0CAA0C;AAC1C,MAAM,WAAW,oBAAoB;IACnC,yBAAyB;IACzB,aAAa,EAAE,cAAc,CAAC;IAC9B,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC;IAClD,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACzC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IAClD,uDAAuD;IACvD,aAAa,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACnD,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC,+DAA+D;IAC/D,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC7D;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,cAAc,CA6ShB"}
|
package/dist/rill/context.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { createRuntimeContext, } from '@rcrsr/rill';
|
|
6
6
|
import * as fs from 'fs';
|
|
7
|
-
import { printRunner } from '../output/colors.js';
|
|
7
|
+
import { printRunner, stripAnsi } from '../output/colors.js';
|
|
8
8
|
import { loadCommandTemplate as loadCommandTemplateFile, parseGenericFrontmatter, } from '../templates/command.js';
|
|
9
9
|
import { CCR_RESULT_SELF_CLOSING_PATTERN, CCR_RESULT_WITH_CONTENT_PATTERN, } from '../utils/constants.js';
|
|
10
10
|
import { formatRillValue } from '../utils/formatting.js';
|
|
@@ -15,7 +15,7 @@ import { formatRillValue } from '../utils/formatting.js';
|
|
|
15
15
|
* Create a Rill runtime context for Claude Code Runner workflows
|
|
16
16
|
*/
|
|
17
17
|
export function createRunnerContext(options) {
|
|
18
|
-
const { executeClause, namedArgs = {}, rawArgs = [], env = process.env, commandsDir = '.claude/commands', defaultModel, callbacks = {}, observability, timeout, signal, autoExceptions, } = options;
|
|
18
|
+
const { executeClause, namedArgs = {}, rawArgs = [], env = process.env, commandsDir = '.claude/commands', defaultModel, callbacks = {}, observability, timeout, signal, autoExceptions, onStateChange: _onStateChange, } = options;
|
|
19
19
|
// Create ccr:: namespaced functions
|
|
20
20
|
const functions = {
|
|
21
21
|
/**
|
|
@@ -23,9 +23,19 @@ export function createRunnerContext(options) {
|
|
|
23
23
|
* Usage: ccr::prompt("analyze this code", "haiku")
|
|
24
24
|
*/
|
|
25
25
|
'ccr::prompt': {
|
|
26
|
+
description: 'Execute a prompt with Claude and return output',
|
|
26
27
|
params: [
|
|
27
|
-
{
|
|
28
|
-
|
|
28
|
+
{
|
|
29
|
+
name: 'text',
|
|
30
|
+
type: 'string',
|
|
31
|
+
description: 'Prompt text to send to Claude',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'model',
|
|
35
|
+
type: 'string',
|
|
36
|
+
defaultValue: '',
|
|
37
|
+
description: 'Model override (sonnet, opus, haiku)',
|
|
38
|
+
},
|
|
29
39
|
],
|
|
30
40
|
fn: async (args) => {
|
|
31
41
|
const text = args[0];
|
|
@@ -39,9 +49,15 @@ export function createRunnerContext(options) {
|
|
|
39
49
|
* Usage: ccr::command("create-spec", ["arg1", "arg2"])
|
|
40
50
|
*/
|
|
41
51
|
'ccr::command': {
|
|
52
|
+
description: 'Execute a command template by name',
|
|
42
53
|
params: [
|
|
43
|
-
{ name: 'name', type: 'string' },
|
|
44
|
-
{
|
|
54
|
+
{ name: 'name', type: 'string', description: 'Command template name' },
|
|
55
|
+
{
|
|
56
|
+
name: 'args',
|
|
57
|
+
type: 'list',
|
|
58
|
+
defaultValue: [],
|
|
59
|
+
description: 'Arguments to pass to template',
|
|
60
|
+
},
|
|
45
61
|
],
|
|
46
62
|
fn: async (args, ctx) => {
|
|
47
63
|
const name = args[0];
|
|
@@ -58,9 +74,19 @@ export function createRunnerContext(options) {
|
|
|
58
74
|
* Usage: ccr::skill("commit", ["--amend"])
|
|
59
75
|
*/
|
|
60
76
|
'ccr::skill': {
|
|
77
|
+
description: 'Execute a Claude Code skill (slash command)',
|
|
61
78
|
params: [
|
|
62
|
-
{
|
|
63
|
-
|
|
79
|
+
{
|
|
80
|
+
name: 'name',
|
|
81
|
+
type: 'string',
|
|
82
|
+
description: 'Skill name (without leading /)',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'args',
|
|
86
|
+
type: 'list',
|
|
87
|
+
defaultValue: [],
|
|
88
|
+
description: 'Arguments to pass to skill',
|
|
89
|
+
},
|
|
64
90
|
],
|
|
65
91
|
fn: async (args, ctx) => {
|
|
66
92
|
const name = args[0];
|
|
@@ -76,9 +102,34 @@ export function createRunnerContext(options) {
|
|
|
76
102
|
* Usage: ccr::file_exists("path/to/file") -> boolean
|
|
77
103
|
*/
|
|
78
104
|
'ccr::file_exists': {
|
|
79
|
-
|
|
105
|
+
description: 'Check if a file exists at the given path',
|
|
106
|
+
params: [
|
|
107
|
+
{ name: 'path', type: 'string', description: 'File path to check' },
|
|
108
|
+
],
|
|
80
109
|
fn: (args) => fs.existsSync(args[0]),
|
|
81
110
|
},
|
|
111
|
+
/**
|
|
112
|
+
* Set script status line text
|
|
113
|
+
* Usage: ccr::state("Processing file 3/10")
|
|
114
|
+
*/
|
|
115
|
+
'ccr::state': {
|
|
116
|
+
description: 'Set script status line text',
|
|
117
|
+
params: [{ name: 'text', type: 'string' }],
|
|
118
|
+
fn: (args) => {
|
|
119
|
+
let text = args[0];
|
|
120
|
+
// Strip ANSI escape sequences
|
|
121
|
+
text = stripAnsi(text);
|
|
122
|
+
// Strip newlines to single line
|
|
123
|
+
text = text.replace(/[\r\n]+/g, ' ');
|
|
124
|
+
// Check if empty or whitespace-only
|
|
125
|
+
const trimmed = text.trim();
|
|
126
|
+
// Invoke callback if provided
|
|
127
|
+
if (_onStateChange) {
|
|
128
|
+
_onStateChange(trimmed || null);
|
|
129
|
+
}
|
|
130
|
+
return null;
|
|
131
|
+
},
|
|
132
|
+
},
|
|
82
133
|
/**
|
|
83
134
|
* Extract result from text
|
|
84
135
|
* Usage: ccr::get_result($text) -> { type: "...", ...attrs } or {}
|
|
@@ -86,7 +137,14 @@ export function createRunnerContext(options) {
|
|
|
86
137
|
* Returns empty dict if no result found (Rill doesn't support null)
|
|
87
138
|
*/
|
|
88
139
|
'ccr::get_result': {
|
|
89
|
-
|
|
140
|
+
description: 'Extract ccr:result XML tag from text',
|
|
141
|
+
params: [
|
|
142
|
+
{
|
|
143
|
+
name: 'text',
|
|
144
|
+
type: 'string',
|
|
145
|
+
description: 'Text containing ccr:result tag',
|
|
146
|
+
},
|
|
147
|
+
],
|
|
90
148
|
fn: (args) => {
|
|
91
149
|
const text = args[0];
|
|
92
150
|
let attrs;
|
|
@@ -127,7 +185,14 @@ export function createRunnerContext(options) {
|
|
|
127
185
|
* Usage: ccr::has_result(text) -> boolean
|
|
128
186
|
*/
|
|
129
187
|
'ccr::has_result': {
|
|
130
|
-
|
|
188
|
+
description: 'Check if text contains a ccr:result tag',
|
|
189
|
+
params: [
|
|
190
|
+
{
|
|
191
|
+
name: 'text',
|
|
192
|
+
type: 'string',
|
|
193
|
+
description: 'Text to search for ccr:result tag',
|
|
194
|
+
},
|
|
195
|
+
],
|
|
131
196
|
fn: (args) => {
|
|
132
197
|
const text = args[0];
|
|
133
198
|
return (CCR_RESULT_SELF_CLOSING_PATTERN.test(text) ||
|
|
@@ -139,7 +204,10 @@ export function createRunnerContext(options) {
|
|
|
139
204
|
* Usage: ccr::has_frontmatter(path) -> boolean
|
|
140
205
|
*/
|
|
141
206
|
'ccr::has_frontmatter': {
|
|
142
|
-
|
|
207
|
+
description: 'Check if a file has YAML frontmatter',
|
|
208
|
+
params: [
|
|
209
|
+
{ name: 'path', type: 'string', description: 'File path to check' },
|
|
210
|
+
],
|
|
143
211
|
fn: (args) => {
|
|
144
212
|
const filePath = args[0];
|
|
145
213
|
if (!fs.existsSync(filePath)) {
|
|
@@ -155,7 +223,10 @@ export function createRunnerContext(options) {
|
|
|
155
223
|
* Usage: ccr::get_frontmatter("path/to/file.md")
|
|
156
224
|
*/
|
|
157
225
|
'ccr::get_frontmatter': {
|
|
158
|
-
|
|
226
|
+
description: 'Parse and return YAML frontmatter from a file',
|
|
227
|
+
params: [
|
|
228
|
+
{ name: 'path', type: 'string', description: 'File path to parse' },
|
|
229
|
+
],
|
|
159
230
|
fn: (args) => {
|
|
160
231
|
const filePath = args[0];
|
|
161
232
|
if (!fs.existsSync(filePath)) {
|
package/dist/rill/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/rill/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,oBAAoB,GAMrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/rill/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/rill/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/rill/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQvD,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2BAA2B;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,kDAAkD;AAClD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,iCAAiC;IACjC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;CACjC;AAwDD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;CACtB,CAyBA;AAMD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,aAAa,CAAC,CAqPxB;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD"}
|
package/dist/rill/runner.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { AbortError, execute, parse, ParseError, RuntimeError, TimeoutError, } from '@rcrsr/rill';
|
|
8
8
|
import * as fs from 'fs';
|
|
9
|
-
import { colors, printRunner } from '../output/colors.js';
|
|
9
|
+
import { bindFormatterState, clearStatusLine, colors, printRunner, renderStatusLine, unbindFormatterState, } from '../output/colors.js';
|
|
10
10
|
import { finalizeStepStats } from '../output/formatter.js';
|
|
11
11
|
import { spawnClaude } from '../process/pty.js';
|
|
12
12
|
import { parseFrontmatter } from '../templates/command.js';
|
|
@@ -179,6 +179,32 @@ export async function runRillScript(options) {
|
|
|
179
179
|
logger.log(`[LOG] ${text}`);
|
|
180
180
|
},
|
|
181
181
|
};
|
|
182
|
+
// State change callback for ccr::state host function
|
|
183
|
+
const onStateChange = (text) => {
|
|
184
|
+
// Update formatter state
|
|
185
|
+
formatterState.currentStatusText = text;
|
|
186
|
+
// Skip rendering in quiet mode
|
|
187
|
+
if (config.verbosity === 'quiet') {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
// Render or clear status line
|
|
191
|
+
if (text !== null) {
|
|
192
|
+
renderStatusLine(text, process.stderr);
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
clearStatusLine(process.stderr);
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
// Terminal resize handler - re-renders status line with updated columns
|
|
199
|
+
const handleResize = () => {
|
|
200
|
+
if (formatterState.currentStatusText !== null) {
|
|
201
|
+
renderStatusLine(formatterState.currentStatusText, process.stderr);
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
// Attach resize listener if not in quiet mode
|
|
205
|
+
if (config.verbosity !== 'quiet') {
|
|
206
|
+
process.stderr.on('resize', handleResize);
|
|
207
|
+
}
|
|
182
208
|
// Create Rill runtime context
|
|
183
209
|
const ctx = createRunnerContext({
|
|
184
210
|
executeClause,
|
|
@@ -188,7 +214,10 @@ export async function runRillScript(options) {
|
|
|
188
214
|
commandsDir: '.claude/commands',
|
|
189
215
|
defaultModel: effectiveModel ?? undefined,
|
|
190
216
|
callbacks,
|
|
217
|
+
onStateChange,
|
|
191
218
|
});
|
|
219
|
+
// Bind formatter state so terminalLog re-renders the status line
|
|
220
|
+
bindFormatterState(formatterState);
|
|
192
221
|
// Parse and execute the script
|
|
193
222
|
try {
|
|
194
223
|
logger.logEvent({ event: 'rill_script_start', runId, file: scriptFile });
|
|
@@ -204,14 +233,28 @@ export async function runRillScript(options) {
|
|
|
204
233
|
runId,
|
|
205
234
|
success: true,
|
|
206
235
|
});
|
|
236
|
+
// Remove resize listener and unbind state before exit
|
|
237
|
+
unbindFormatterState();
|
|
238
|
+
if (config.verbosity !== 'quiet') {
|
|
239
|
+
process.stderr.off('resize', handleResize);
|
|
240
|
+
clearStatusLine(process.stderr);
|
|
241
|
+
}
|
|
207
242
|
return {
|
|
208
243
|
success: true,
|
|
209
244
|
lastOutput: state.lastOutput,
|
|
210
245
|
};
|
|
211
246
|
}
|
|
212
247
|
catch (error) {
|
|
248
|
+
// Remove resize listener and unbind state before error handling
|
|
249
|
+
unbindFormatterState();
|
|
250
|
+
if (config.verbosity !== 'quiet') {
|
|
251
|
+
process.stderr.off('resize', handleResize);
|
|
252
|
+
}
|
|
213
253
|
// Handle specific Rill error types
|
|
214
254
|
if (error instanceof AbortError) {
|
|
255
|
+
if (config.verbosity !== 'quiet') {
|
|
256
|
+
clearStatusLine(process.stderr);
|
|
257
|
+
}
|
|
215
258
|
printRunner(`${colors.yellow}Script cancelled${colors.reset}`);
|
|
216
259
|
logger.logEvent({ event: 'rill_script_cancelled', runId });
|
|
217
260
|
return {
|
|
@@ -220,12 +263,18 @@ export async function runRillScript(options) {
|
|
|
220
263
|
};
|
|
221
264
|
}
|
|
222
265
|
if (error instanceof TimeoutError) {
|
|
266
|
+
if (config.verbosity !== 'quiet') {
|
|
267
|
+
clearStatusLine(process.stderr);
|
|
268
|
+
}
|
|
223
269
|
const msg = `Timeout: ${error.message}`;
|
|
224
270
|
printRunner(`${colors.red}${msg}${colors.reset}`);
|
|
225
271
|
logger.logEvent({ event: 'rill_script_timeout', runId, error: msg });
|
|
226
272
|
return { success: false, lastOutput: state.lastOutput };
|
|
227
273
|
}
|
|
228
274
|
if (error instanceof ParseError) {
|
|
275
|
+
if (config.verbosity !== 'quiet') {
|
|
276
|
+
clearStatusLine(process.stderr);
|
|
277
|
+
}
|
|
229
278
|
const location = error.location
|
|
230
279
|
? ` at ${scriptFile}:${error.location.line}:${error.location.column}`
|
|
231
280
|
: '';
|
|
@@ -235,6 +284,9 @@ export async function runRillScript(options) {
|
|
|
235
284
|
return { success: false, lastOutput: state.lastOutput };
|
|
236
285
|
}
|
|
237
286
|
if (error instanceof RuntimeError) {
|
|
287
|
+
if (config.verbosity !== 'quiet') {
|
|
288
|
+
clearStatusLine(process.stderr);
|
|
289
|
+
}
|
|
238
290
|
const location = error.location
|
|
239
291
|
? ` at ${scriptFile}:${error.location.line}:${error.location.column}`
|
|
240
292
|
: '';
|
|
@@ -248,6 +300,9 @@ export async function runRillScript(options) {
|
|
|
248
300
|
return { success: false, lastOutput: state.lastOutput };
|
|
249
301
|
}
|
|
250
302
|
// Generic error fallback
|
|
303
|
+
if (config.verbosity !== 'quiet') {
|
|
304
|
+
clearStatusLine(process.stderr);
|
|
305
|
+
}
|
|
251
306
|
const msg = error instanceof Error ? error.message : String(error);
|
|
252
307
|
printRunner(`${colors.red}Script error:${colors.reset} ${msg}`);
|
|
253
308
|
logger.logEvent({ event: 'rill_script_error', runId, error: msg });
|
package/dist/rill/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/rill/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,UAAU,EACV,OAAO,EACP,KAAK,EACL,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/rill/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/types/runner.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Runner configuration and state types
|
|
3
3
|
*/
|
|
4
4
|
export type Verbosity = 'quiet' | 'normal' | 'verbose';
|
|
5
|
-
export type Subcommand = 'prompt' | 'command' | 'script' | 'skill';
|
|
5
|
+
export type Subcommand = 'prompt' | 'command' | 'script' | 'skill' | 'docs';
|
|
6
6
|
/**
|
|
7
7
|
* Result of running a single Claude invocation
|
|
8
8
|
*/
|
|
@@ -26,6 +26,13 @@ export interface RunnerConfig {
|
|
|
26
26
|
* Default runner configuration
|
|
27
27
|
*/
|
|
28
28
|
export declare const DEFAULT_CONFIG: RunnerConfig;
|
|
29
|
+
/**
|
|
30
|
+
* Docs subcommand options
|
|
31
|
+
*/
|
|
32
|
+
export interface DocsOptions {
|
|
33
|
+
functionsOnly: boolean;
|
|
34
|
+
languageOnly: boolean;
|
|
35
|
+
}
|
|
29
36
|
/**
|
|
30
37
|
* Parsed CLI arguments
|
|
31
38
|
*/
|
|
@@ -38,6 +45,8 @@ export interface ParsedArgs {
|
|
|
38
45
|
scriptFile: string | null;
|
|
39
46
|
/** Script arguments */
|
|
40
47
|
scriptArgs: string[];
|
|
48
|
+
/** Docs options (for docs subcommand) */
|
|
49
|
+
docsOptions?: DocsOptions | undefined;
|
|
41
50
|
}
|
|
42
51
|
/**
|
|
43
52
|
* Tool call tracking
|
|
@@ -54,8 +63,8 @@ export interface ActiveTask {
|
|
|
54
63
|
name: string;
|
|
55
64
|
description: string;
|
|
56
65
|
id: string;
|
|
57
|
-
/**
|
|
58
|
-
|
|
66
|
+
/** Index for agent marker color (0-7, cycles) */
|
|
67
|
+
colorIndex: number;
|
|
59
68
|
}
|
|
60
69
|
/**
|
|
61
70
|
* Noise patterns to filter from output
|