@selvakumaresra/specship 0.7.0 → 0.10.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/commands/ss-domain.md +98 -0
- package/commands/ss-triage.md +177 -0
- package/dist/bin/specship.js +308 -0
- package/dist/bin/specship.js.map +1 -1
- package/dist/db/migrations.d.ts +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +28 -1
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/schema.sql +26 -2
- package/dist/db/spec-queries.d.ts +29 -0
- package/dist/db/spec-queries.d.ts.map +1 -1
- package/dist/db/spec-queries.js +63 -0
- package/dist/db/spec-queries.js.map +1 -1
- package/dist/enforce/enforce.d.ts +70 -0
- package/dist/enforce/enforce.d.ts.map +1 -0
- package/dist/enforce/enforce.js +125 -0
- package/dist/enforce/enforce.js.map +1 -0
- package/dist/extraction/specs/markdown-spec-extractor.d.ts +21 -0
- package/dist/extraction/specs/markdown-spec-extractor.d.ts.map +1 -1
- package/dist/extraction/specs/markdown-spec-extractor.js +144 -0
- package/dist/extraction/specs/markdown-spec-extractor.js.map +1 -1
- package/dist/fitness/fitness.d.ts +75 -0
- package/dist/fitness/fitness.d.ts.map +1 -0
- package/dist/fitness/fitness.js +204 -0
- package/dist/fitness/fitness.js.map +1 -0
- package/dist/graph/maintainability.d.ts +101 -0
- package/dist/graph/maintainability.d.ts.map +1 -0
- package/dist/graph/maintainability.js +278 -0
- package/dist/graph/maintainability.js.map +1 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +149 -1
- package/dist/index.js.map +1 -1
- package/dist/installer/instructions-template.d.ts +5 -4
- package/dist/installer/instructions-template.d.ts.map +1 -1
- package/dist/installer/instructions-template.js +10 -4
- package/dist/installer/instructions-template.js.map +1 -1
- package/dist/installer/targets/claude.d.ts.map +1 -1
- package/dist/installer/targets/claude.js +4 -0
- package/dist/installer/targets/claude.js.map +1 -1
- package/dist/installer/targets/shared.d.ts.map +1 -1
- package/dist/installer/targets/shared.js +4 -0
- package/dist/installer/targets/shared.js.map +1 -1
- package/dist/mcp/fitness-tool.d.ts +12 -0
- package/dist/mcp/fitness-tool.d.ts.map +1 -0
- package/dist/mcp/fitness-tool.js +46 -0
- package/dist/mcp/fitness-tool.js.map +1 -0
- package/dist/mcp/maintainability-tool.d.ts +13 -0
- package/dist/mcp/maintainability-tool.d.ts.map +1 -0
- package/dist/mcp/maintainability-tool.js +64 -0
- package/dist/mcp/maintainability-tool.js.map +1 -0
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.d.ts.map +1 -1
- package/dist/mcp/server-instructions.js +3 -2
- package/dist/mcp/server-instructions.js.map +1 -1
- package/dist/mcp/spec-tools.d.ts.map +1 -1
- package/dist/mcp/spec-tools.js +115 -1
- package/dist/mcp/spec-tools.js.map +1 -1
- package/dist/mcp/tools.d.ts +13 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +75 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/reflect/apply.d.ts +31 -0
- package/dist/reflect/apply.d.ts.map +1 -0
- package/dist/reflect/apply.js +286 -0
- package/dist/reflect/apply.js.map +1 -0
- package/dist/reflect/hash.d.ts +20 -0
- package/dist/reflect/hash.d.ts.map +1 -0
- package/dist/reflect/hash.js +36 -0
- package/dist/reflect/hash.js.map +1 -0
- package/dist/reflect/index.d.ts +16 -0
- package/dist/reflect/index.d.ts.map +1 -0
- package/dist/reflect/index.js +43 -0
- package/dist/reflect/index.js.map +1 -0
- package/dist/reflect/miner.d.ts +21 -0
- package/dist/reflect/miner.d.ts.map +1 -0
- package/dist/reflect/miner.js +463 -0
- package/dist/reflect/miner.js.map +1 -0
- package/dist/reflect/store.d.ts +31 -0
- package/dist/reflect/store.d.ts.map +1 -0
- package/dist/reflect/store.js +101 -0
- package/dist/reflect/store.js.map +1 -0
- package/dist/reflect/sweep.d.ts +26 -0
- package/dist/reflect/sweep.d.ts.map +1 -0
- package/dist/reflect/sweep.js +42 -0
- package/dist/reflect/sweep.js.map +1 -0
- package/dist/reflect/targets.d.ts +52 -0
- package/dist/reflect/targets.d.ts.map +1 -0
- package/dist/reflect/targets.js +192 -0
- package/dist/reflect/targets.js.map +1 -0
- package/dist/reflect/types.d.ts +96 -0
- package/dist/reflect/types.d.ts.map +1 -0
- package/dist/reflect/types.js +13 -0
- package/dist/reflect/types.js.map +1 -0
- package/dist/resolution/domain-gap-seed.d.ts +60 -0
- package/dist/resolution/domain-gap-seed.d.ts.map +1 -0
- package/dist/resolution/domain-gap-seed.js +87 -0
- package/dist/resolution/domain-gap-seed.js.map +1 -0
- package/dist/resolution/spec-link-resolver.d.ts +46 -1
- package/dist/resolution/spec-link-resolver.d.ts.map +1 -1
- package/dist/resolution/spec-link-resolver.js +78 -0
- package/dist/resolution/spec-link-resolver.js.map +1 -1
- package/dist/server/routes/domain.js +0 -0
- package/dist/server/routes/events.js +20 -0
- package/dist/server/routes/maintainability.js +18 -0
- package/dist/server/routes/reflect.js +93 -0
- package/dist/server/server.js +6 -0
- package/dist/types.d.ts +4 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -1
- package/dist/web/chunk-EZZBWC7Z.js +1 -0
- package/dist/web/chunk-ITHLF4GI.js +1 -0
- package/dist/web/{chunk-UBOZGQNK.js → chunk-IZQXYQNQ.js} +1 -1
- package/dist/web/chunk-JBO7ZIPO.js +1 -0
- package/dist/web/chunk-JQXCRIK2.js +1 -0
- package/dist/web/{chunk-ASZ77FMZ.js → chunk-JT2YIHPL.js} +1 -1
- package/dist/web/{chunk-WLIMNDS3.js → chunk-ONKHTXHJ.js} +1 -1
- package/dist/web/{chunk-FHZHD2ZG.js → chunk-P5JX67LT.js} +1 -1
- package/dist/web/chunk-PDTQX2UL.js +6 -0
- package/dist/web/chunk-TPDB5GJN.js +1 -0
- package/dist/web/{chunk-RASJHUXS.js → chunk-XWDR6MPC.js} +1 -1
- package/dist/web/chunk-Y6WWDS4R.js +1 -0
- package/dist/web/chunk-Z5L3T5EO.js +1 -0
- package/dist/web/{chunk-D5OCNEJA.js → chunk-ZG7H3XPL.js} +1 -1
- package/dist/web/index.html +1 -1
- package/dist/web/main-GYPY5V5H.js +1 -0
- package/dist/workflows/executor.d.ts.map +1 -1
- package/dist/workflows/executor.js +3 -0
- package/dist/workflows/executor.js.map +1 -1
- package/dist/workflows/runners/prompt.d.ts +31 -8
- package/dist/workflows/runners/prompt.d.ts.map +1 -1
- package/dist/workflows/runners/prompt.js +117 -23
- package/dist/workflows/runners/prompt.js.map +1 -1
- package/dist/workflows/runners/types.d.ts +7 -1
- package/dist/workflows/runners/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/web/chunk-HGBF7AY5.js +0 -1
- package/dist/web/chunk-JQ534IB6.js +0 -6
- package/dist/web/chunk-MVOMVPYB.js +0 -1
- package/dist/web/chunk-NZEZCT65.js +0 -1
- package/dist/web/chunk-WQWYTRFN.js +0 -1
- package/dist/web/main-LHCYPOXF.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/workflows/executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/workflows/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,19 +8,42 @@
|
|
|
8
8
|
* - Per-node `allowed_tools` / `denied_tools` / `model` map cleanly to
|
|
9
9
|
* CLI flags.
|
|
10
10
|
*
|
|
11
|
+
* The agent runs with `--output-format stream-json`, so its activity streams
|
|
12
|
+
* out line-by-line. Each line is parsed and surfaced as a workflow event via
|
|
13
|
+
* `ctx.emitEvent` (WF-STREAM-DOC): a `tool_called` event per tool the agent
|
|
14
|
+
* invokes (name + short input) and an `agent_message` event per assistant text
|
|
15
|
+
* turn. The step's text output is the stream's terminal `result` — identical to
|
|
16
|
+
* what the old `--output-format json` produced. If the output isn't a parseable
|
|
17
|
+
* stream, we fall back to treating stdout as the result, so a run never breaks.
|
|
18
|
+
*
|
|
11
19
|
* Limitations (acceptable for v1):
|
|
12
|
-
* - Per-node MCP server config
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* - Per-node hooks (PreToolUse / PostToolUse) likewise inherit host-level
|
|
16
|
-
* hooks. v2 will write a per-run settings file.
|
|
17
|
-
* - Skills / agents passed via flags will need verification on Claude Code
|
|
18
|
-
* versions that support them.
|
|
20
|
+
* - Per-node MCP server config is NOT plumbed — prompt nodes inherit the host
|
|
21
|
+
* Claude Code session's MCP servers. v2 candidate.
|
|
22
|
+
* - Per-node hooks likewise inherit host-level hooks.
|
|
19
23
|
*
|
|
20
|
-
*
|
|
24
|
+
* Raw output also streams to `<logsDir>/<runId>-<nodeId>.jsonl`.
|
|
21
25
|
*/
|
|
22
26
|
import { DagNode } from '../schemas/workflow';
|
|
23
27
|
import { NodeRunner, NodeRunResult, RunnerContext } from './types';
|
|
28
|
+
import { WorkflowEventType } from '../../types';
|
|
29
|
+
/** Accumulated state while parsing the agent's stream-json output. */
|
|
30
|
+
export interface StreamParseState {
|
|
31
|
+
/** True once at least one line parsed as a known stream event. */
|
|
32
|
+
sawStream: boolean;
|
|
33
|
+
/** Final result text from the terminal `result` event, if seen. */
|
|
34
|
+
resultText: string | null;
|
|
35
|
+
/** Concatenated assistant text turns (fallback when there's no result event). */
|
|
36
|
+
assistantText: string;
|
|
37
|
+
}
|
|
38
|
+
export declare function newStreamState(): StreamParseState;
|
|
39
|
+
/** A short, single-line summary of a tool's input for the `tool_called` event. */
|
|
40
|
+
export declare function summarizeToolInput(input: unknown): string;
|
|
41
|
+
/**
|
|
42
|
+
* Parse one stream-json line, emit any activity events, and fold the result
|
|
43
|
+
* into `state`. Pure aside from the `emit` callback. Unknown / non-JSON lines
|
|
44
|
+
* are ignored. Extended-thinking blocks are intentionally NOT emitted.
|
|
45
|
+
*/
|
|
46
|
+
export declare function handleStreamLine(line: string, emit: (type: WorkflowEventType, data?: Record<string, unknown>) => void, state: StreamParseState): void;
|
|
24
47
|
export declare class PromptRunner implements NodeRunner {
|
|
25
48
|
readonly kind: "prompt";
|
|
26
49
|
run(rawNode: DagNode, ctx: RunnerContext): Promise<NodeRunResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/workflows/runners/prompt.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/workflows/runners/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAKH,OAAO,EAAE,OAAO,EAAc,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAWhD,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,SAAS,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAezD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EACvE,KAAK,EAAE,gBAAgB,GACtB,IAAI,CAiCN;AAED,qBAAa,YAAa,YAAW,UAAU;IAC7C,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAE5B,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;CA2JxE"}
|
|
@@ -9,16 +9,20 @@
|
|
|
9
9
|
* - Per-node `allowed_tools` / `denied_tools` / `model` map cleanly to
|
|
10
10
|
* CLI flags.
|
|
11
11
|
*
|
|
12
|
+
* The agent runs with `--output-format stream-json`, so its activity streams
|
|
13
|
+
* out line-by-line. Each line is parsed and surfaced as a workflow event via
|
|
14
|
+
* `ctx.emitEvent` (WF-STREAM-DOC): a `tool_called` event per tool the agent
|
|
15
|
+
* invokes (name + short input) and an `agent_message` event per assistant text
|
|
16
|
+
* turn. The step's text output is the stream's terminal `result` — identical to
|
|
17
|
+
* what the old `--output-format json` produced. If the output isn't a parseable
|
|
18
|
+
* stream, we fall back to treating stdout as the result, so a run never breaks.
|
|
19
|
+
*
|
|
12
20
|
* Limitations (acceptable for v1):
|
|
13
|
-
* - Per-node MCP server config
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* - Per-node hooks (PreToolUse / PostToolUse) likewise inherit host-level
|
|
17
|
-
* hooks. v2 will write a per-run settings file.
|
|
18
|
-
* - Skills / agents passed via flags will need verification on Claude Code
|
|
19
|
-
* versions that support them.
|
|
21
|
+
* - Per-node MCP server config is NOT plumbed — prompt nodes inherit the host
|
|
22
|
+
* Claude Code session's MCP servers. v2 candidate.
|
|
23
|
+
* - Per-node hooks likewise inherit host-level hooks.
|
|
20
24
|
*
|
|
21
|
-
*
|
|
25
|
+
* Raw output also streams to `<logsDir>/<runId>-<nodeId>.jsonl`.
|
|
22
26
|
*/
|
|
23
27
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
24
28
|
if (k2 === undefined) k2 = k;
|
|
@@ -55,6 +59,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
55
59
|
})();
|
|
56
60
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
61
|
exports.PromptRunner = void 0;
|
|
62
|
+
exports.newStreamState = newStreamState;
|
|
63
|
+
exports.summarizeToolInput = summarizeToolInput;
|
|
64
|
+
exports.handleStreamLine = handleStreamLine;
|
|
58
65
|
const child_process_1 = require("child_process");
|
|
59
66
|
const fs = __importStar(require("fs"));
|
|
60
67
|
const path = __importStar(require("path"));
|
|
@@ -66,6 +73,73 @@ const TRANSIENT_PATTERNS = [
|
|
|
66
73
|
/econn/i,
|
|
67
74
|
/etimedout/i,
|
|
68
75
|
];
|
|
76
|
+
function newStreamState() {
|
|
77
|
+
return { sawStream: false, resultText: null, assistantText: '' };
|
|
78
|
+
}
|
|
79
|
+
/** A short, single-line summary of a tool's input for the `tool_called` event. */
|
|
80
|
+
function summarizeToolInput(input) {
|
|
81
|
+
if (input == null)
|
|
82
|
+
return '';
|
|
83
|
+
let s;
|
|
84
|
+
if (typeof input === 'string') {
|
|
85
|
+
s = input;
|
|
86
|
+
}
|
|
87
|
+
else if (typeof input === 'object') {
|
|
88
|
+
const o = input;
|
|
89
|
+
const pick = o.file_path ?? o.path ?? o.command ?? o.pattern ?? o.query ?? o.url ?? o.prompt;
|
|
90
|
+
s = typeof pick === 'string' ? pick : JSON.stringify(o);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
s = String(input);
|
|
94
|
+
}
|
|
95
|
+
s = s.replace(/\s+/g, ' ').trim();
|
|
96
|
+
return s.length > 140 ? `${s.slice(0, 140)}…` : s;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Parse one stream-json line, emit any activity events, and fold the result
|
|
100
|
+
* into `state`. Pure aside from the `emit` callback. Unknown / non-JSON lines
|
|
101
|
+
* are ignored. Extended-thinking blocks are intentionally NOT emitted.
|
|
102
|
+
*/
|
|
103
|
+
function handleStreamLine(line, emit, state) {
|
|
104
|
+
const trimmed = line.trim();
|
|
105
|
+
if (!trimmed)
|
|
106
|
+
return;
|
|
107
|
+
let ev;
|
|
108
|
+
try {
|
|
109
|
+
ev = JSON.parse(trimmed);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return; // not JSON — ignore (keeps the fallback path intact)
|
|
113
|
+
}
|
|
114
|
+
if (!ev || typeof ev !== 'object')
|
|
115
|
+
return;
|
|
116
|
+
const e = ev;
|
|
117
|
+
if (e.type === 'assistant' && e.message && typeof e.message === 'object') {
|
|
118
|
+
state.sawStream = true;
|
|
119
|
+
const content = e.message.content;
|
|
120
|
+
if (Array.isArray(content)) {
|
|
121
|
+
for (const raw of content) {
|
|
122
|
+
const b = raw;
|
|
123
|
+
if (b?.type === 'tool_use') {
|
|
124
|
+
emit('tool_called', { name: b.name, input: summarizeToolInput(b.input) });
|
|
125
|
+
}
|
|
126
|
+
else if (b?.type === 'text' && typeof b.text === 'string' && b.text.trim()) {
|
|
127
|
+
state.assistantText += (state.assistantText ? '\n' : '') + b.text;
|
|
128
|
+
emit('agent_message', { text: b.text });
|
|
129
|
+
}
|
|
130
|
+
// 'thinking' blocks: deliberately skipped.
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else if (e.type === 'result') {
|
|
135
|
+
state.sawStream = true;
|
|
136
|
+
if (typeof e.result === 'string')
|
|
137
|
+
state.resultText = e.result;
|
|
138
|
+
}
|
|
139
|
+
else if (e.type === 'system') {
|
|
140
|
+
state.sawStream = true; // init/system frame — confirms we're on the stream path
|
|
141
|
+
}
|
|
142
|
+
}
|
|
69
143
|
class PromptRunner {
|
|
70
144
|
kind = 'prompt';
|
|
71
145
|
async run(rawNode, ctx) {
|
|
@@ -76,8 +150,10 @@ class PromptRunner {
|
|
|
76
150
|
const claudeBin = process.env.SPECSHIP_CLAUDE_BIN ?? 'claude';
|
|
77
151
|
const args = [];
|
|
78
152
|
args.push('--print');
|
|
79
|
-
//
|
|
80
|
-
|
|
153
|
+
// Stream the agent's activity as JSONL so we can surface tool calls and
|
|
154
|
+
// messages live. `--print` + `--output-format stream-json` requires
|
|
155
|
+
// `--verbose` (the CLI rejects the combination otherwise).
|
|
156
|
+
args.push('--output-format', 'stream-json', '--verbose');
|
|
81
157
|
if (node.model)
|
|
82
158
|
args.push('--model', node.model);
|
|
83
159
|
if (node.allowed_tools && node.allowed_tools.length > 0) {
|
|
@@ -89,7 +165,6 @@ class PromptRunner {
|
|
|
89
165
|
if (node.systemPromptAppend) {
|
|
90
166
|
args.push('--append-system-prompt', node.systemPromptAppend);
|
|
91
167
|
}
|
|
92
|
-
// Verbose output streaming.
|
|
93
168
|
const logPath = path.join(ctx.logsDir, `${ctx.runId}-${node.id}.jsonl`);
|
|
94
169
|
return new Promise((resolve) => {
|
|
95
170
|
let child;
|
|
@@ -110,6 +185,8 @@ class PromptRunner {
|
|
|
110
185
|
}
|
|
111
186
|
let stdout = '';
|
|
112
187
|
let stderr = '';
|
|
188
|
+
let lineBuf = '';
|
|
189
|
+
const state = newStreamState();
|
|
113
190
|
let logStream = null;
|
|
114
191
|
try {
|
|
115
192
|
logStream = fs.createWriteStream(logPath, { flags: 'a' });
|
|
@@ -119,8 +196,18 @@ class PromptRunner {
|
|
|
119
196
|
logStream = null;
|
|
120
197
|
}
|
|
121
198
|
child.stdout?.on('data', (chunk) => {
|
|
122
|
-
|
|
123
|
-
|
|
199
|
+
const s = chunk.toString();
|
|
200
|
+
stdout += s;
|
|
201
|
+
logStream?.write(`${JSON.stringify({ event: 'stdout', chunk: s, ts: Date.now() })}\n`);
|
|
202
|
+
// Parse complete lines as they arrive; emit events live.
|
|
203
|
+
lineBuf += s;
|
|
204
|
+
let idx;
|
|
205
|
+
while ((idx = lineBuf.indexOf('\n')) !== -1) {
|
|
206
|
+
const line = lineBuf.slice(0, idx);
|
|
207
|
+
lineBuf = lineBuf.slice(idx + 1);
|
|
208
|
+
if (ctx.emitEvent)
|
|
209
|
+
handleStreamLine(line, ctx.emitEvent, state);
|
|
210
|
+
}
|
|
124
211
|
});
|
|
125
212
|
child.stderr?.on('data', (chunk) => {
|
|
126
213
|
stderr += chunk.toString();
|
|
@@ -148,6 +235,9 @@ class PromptRunner {
|
|
|
148
235
|
child.on('close', (code) => {
|
|
149
236
|
if (killer)
|
|
150
237
|
clearTimeout(killer);
|
|
238
|
+
// Flush any trailing partial line.
|
|
239
|
+
if (lineBuf.trim() && ctx.emitEvent)
|
|
240
|
+
handleStreamLine(lineBuf, ctx.emitEvent, state);
|
|
151
241
|
logStream?.end();
|
|
152
242
|
if (code !== 0) {
|
|
153
243
|
const errMsg = (stderr || stdout || '').slice(0, 4000);
|
|
@@ -158,22 +248,29 @@ class PromptRunner {
|
|
|
158
248
|
});
|
|
159
249
|
return;
|
|
160
250
|
}
|
|
161
|
-
//
|
|
162
|
-
//
|
|
251
|
+
// Stream path: the terminal `result` is the node's output — identical
|
|
252
|
+
// to what `--output-format json` produced.
|
|
253
|
+
if (state.sawStream) {
|
|
254
|
+
const text = state.resultText ?? state.assistantText ?? stdout;
|
|
255
|
+
resolve({
|
|
256
|
+
status: 'completed',
|
|
257
|
+
output: { text, structured: state.resultText !== null ? { result: state.resultText } : undefined },
|
|
258
|
+
});
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
// Fallback: output wasn't a parseable stream (e.g. a single JSON blob or
|
|
262
|
+
// plain text). Preserve the pre-stream behavior so a run never breaks.
|
|
163
263
|
let text = stdout;
|
|
164
264
|
let structured;
|
|
165
265
|
try {
|
|
166
266
|
const parsed = JSON.parse(stdout);
|
|
167
267
|
if (parsed && typeof parsed === 'object') {
|
|
168
268
|
structured = parsed;
|
|
169
|
-
// Common shapes: { result, ... } or { content: [...] }
|
|
170
269
|
if (typeof structured.result === 'string') {
|
|
171
270
|
text = structured.result;
|
|
172
271
|
}
|
|
173
272
|
else if (Array.isArray(structured.content)) {
|
|
174
|
-
text = structured.content
|
|
175
|
-
.map((c) => c.text ?? '')
|
|
176
|
-
.join('');
|
|
273
|
+
text = structured.content.map((c) => c.text ?? '').join('');
|
|
177
274
|
}
|
|
178
275
|
else {
|
|
179
276
|
text = stdout;
|
|
@@ -183,10 +280,7 @@ class PromptRunner {
|
|
|
183
280
|
catch {
|
|
184
281
|
// Not JSON — keep raw stdout as text.
|
|
185
282
|
}
|
|
186
|
-
resolve({
|
|
187
|
-
status: 'completed',
|
|
188
|
-
output: { text, structured },
|
|
189
|
-
});
|
|
283
|
+
resolve({ status: 'completed', output: { text, structured } });
|
|
190
284
|
});
|
|
191
285
|
// Send the prompt on stdin.
|
|
192
286
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/workflows/runners/prompt.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/workflows/runners/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* - 'cancelled' → CancelNode fired; executor terminates the whole run
|
|
10
10
|
*/
|
|
11
11
|
import { DagNode } from '../schemas/workflow';
|
|
12
|
-
import { ApprovalContext } from '../../types';
|
|
12
|
+
import { ApprovalContext, WorkflowEventType } from '../../types';
|
|
13
13
|
import { NodeOutput } from '../condition-evaluator';
|
|
14
14
|
export interface RunnerContext {
|
|
15
15
|
/** Working directory for shell/script nodes (worktree path when isolated). */
|
|
@@ -27,6 +27,12 @@ export interface RunnerContext {
|
|
|
27
27
|
outputs: Map<string, NodeOutput>;
|
|
28
28
|
/** Verbose logging flag. */
|
|
29
29
|
verbose?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Emit a workflow event mid-step — used by the agent runner to stream its
|
|
32
|
+
* live activity (tool calls, message turns) into the run view. No-op when
|
|
33
|
+
* unset. The executor stamps the step id/kind; callers pass type + data.
|
|
34
|
+
*/
|
|
35
|
+
emitEvent?: (type: WorkflowEventType, data?: Record<string, unknown>) => void;
|
|
30
36
|
}
|
|
31
37
|
export type NodeRunResult = {
|
|
32
38
|
status: 'completed';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/workflows/runners/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/workflows/runners/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,+EAA+E;IAC/E,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC/E;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAC3C;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,GAC/C;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C,MAAM,WAAW,UAAU;IACzB,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,sGAAsG;IACtG,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAChE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@selvakumaresra/specship",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Supercharge Claude Code with semantic code intelligence. 94% fewer tool calls • 77% faster exploration • 100% local.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as D,b as N}from"./chunk-WQWYTRFN.js";import{a as z}from"./chunk-UYC52MBC.js";import{a as T}from"./chunk-SUZYBYDW.js";import{a as M}from"./chunk-E44X4RH2.js";import{Aa as r,Ga as C,I as u,Ia as c,Ka as P,M as S,N as E,Ta as b,Ua as g,Va as n,W as v,Wa as f,ea as o,ka as w,qa as m,ra as x,sa as _,ua as k,va as h,wa as y,xa as s,ya as e,za as t,zb as O}from"./chunk-PDN6QYGJ.js";import"./chunk-Q7L6LLAK.js";var B=(a,l)=>l.model;function j(a,l){a&1&&n(0," Enabled \u2014 popups fire while the dashboard is open or backgrounded ")}function A(a,l){a&1&&n(0," Blocked \u2014 re-enable notifications for this site in your browser settings ")}function V(a,l){a&1&&n(0," Not supported in this browser ")}function $(a,l){a&1&&n(0," Get a desktop popup when a run needs approval, finishes, or drift appears ")}function F(a,l){if(a&1){let p=C();e(0,"button",49),c("click",function(){S(p);let d=P();return E(d.enableNotifications())}),n(1,"Enable"),t()}}function L(a,l){a&1&&(e(0,"span",24),n(1,"\u25CF On"),t())}function H(a,l){a&1&&(e(0,"span",25),n(1,"\u2014"),t())}function W(a,l){if(a&1&&(e(0,"div",33)(1,"span",50),n(2),t(),r(3,"input",51)(4,"input",51),t()),a&2){let p=l.$implicit;o(2),f(p.model),o(),s("value",p.input),o(),s("value",p.output)}}function q(a,l){if(a&1&&(e(0,"option"),n(1),t()),a&2){let p=l.$implicit;o(),f(p)}}var I=class a{api=u(M);theme=u(D);notify=u(N);setTheme(l){this.theme.setPref(l)}enableNotifications(){this.notify.requestPermission()}ingest=v(!0);watch=v(!0);motion=v(!1);toggleIngest(){this.ingest.update(l=>!l)}toggleWatch(){this.watch.update(l=>!l)}toggleMotion(){this.motion.update(l=>!l)}replayIntro(){try{sessionStorage.removeItem("specship-booted")}catch{}window.location.reload()}themeOptions=[{value:"dark",label:"Dark"},{value:"light",label:"Light"},{value:"system",label:"System"}];editorOptions=["code (VS Code)","subl (Sublime)","cursor","nvim"];pricing=[{model:"claude-opus-4",input:"15.00",output:"75.00"},{model:"claude-sonnet-4",input:"3.00",output:"15.00"},{model:"claude-haiku-4",input:"0.80",output:"4.00"}];static \u0275fac=function(p){return new(p||a)};static \u0275cmp=w({type:a,selectors:[["app-settings"]],decls:175,vars:37,consts:[[1,"settings-page","scroll-y"],["icon","settings","title","Settings"],[1,"settings-body"],[1,"card","card-pad","section-card"],[1,"section-head","row","gap-8"],["name","folder",2,"color","var(--accent)",3,"size"],[1,"section-title"],[1,"field"],[1,"field-label"],["value","~/dev/specship","readonly","",1,"input","mono",2,"width","100%"],[1,"field-hint"],["value","specs/",1,"input","mono",2,"width","100%"],["value","node_modules/, dist/, .cg/wt/",1,"input","mono",2,"width","100%"],["name","sessions",2,"color","var(--accent)",3,"size"],["value","~/.claude/projects/",1,"input","mono",2,"width","100%"],[1,"toggle-row","row"],[1,"grow"],[1,"toggle-label"],[1,"muted",2,"font-size","11px"],["type","button","aria-label","Enable transcript ingest",1,"toggle-btn",3,"click"],[1,"toggle-thumb"],["type","button","aria-label","Real-time watch",1,"toggle-btn",3,"click"],["name","zap",2,"color","var(--accent)",3,"size"],["type","button",2,"height","30px","padding","0 12px","border-radius","6px","border","1px solid var(--accent)","background","var(--accent)","color","#fff","font-size","12px","cursor","pointer"],[2,"font-size","12px","color","var(--accent)"],[1,"muted",2,"font-size","12px"],["type","button","aria-label","Notify when a run needs approval",1,"toggle-btn",3,"click"],["type","button","aria-label","Notify when a run completes or fails",1,"toggle-btn",3,"click"],["type","button","aria-label","Notify when drift is detected",1,"toggle-btn",3,"click"],["name","dollar",2,"color","var(--accent)",3,"size"],[1,"muted",2,"font-size","11.5px","margin-bottom","12px"],[1,"pricing-header","row"],[1,"price-col"],[1,"pricing-row","row"],["name","sparkles",2,"color","var(--accent)",3,"size"],[3,"change","value","options"],["type","button","aria-label","Reduced motion",1,"toggle-btn",3,"click"],[1,"toggle-row","row",2,"border-top","1px solid var(--border-subtle)","margin-top","4px","padding-top","8px"],["type","button",1,"btn","btn-secondary","btn-sm",3,"click"],["name","refresh",3,"size"],["name","reveal",2,"color","var(--accent)",3,"size"],[1,"input",2,"width","200px"],["name","graph",2,"color","var(--accent)",3,"size"],[1,"about-grid"],[1,"about-row","row"],[1,"mono",2,"font-size","12px"],[1,"mono",2,"font-size","12px","color","var(--success)"],[1,"status-dot",2,"background","var(--success)"],[2,"height","30px"],["type","button",2,"height","30px","padding","0 12px","border-radius","6px","border","1px solid var(--accent)","background","var(--accent)","color","#fff","font-size","12px","cursor","pointer",3,"click"],[1,"mono","grow",2,"font-size","12px"],[1,"input","mono","tabular","price-input",3,"value"]],template:function(p,i){if(p&1&&(e(0,"div",0),r(1,"app-page-head",1),e(2,"div",2)(3,"section",3)(4,"div",4),r(5,"app-icon",5),e(6,"span",6),n(7,"Project"),t()(),e(8,"div",7)(9,"label",8),n(10,"Project root"),t(),r(11,"input",9),e(12,"div",10),n(13,"Set at app open \xB7 read-only"),t()(),e(14,"div",7)(15,"label",8),n(16,"Spec roots"),t(),r(17,"input",11),t(),e(18,"div",7)(19,"label",8),n(20,"Ignore patterns"),t(),r(21,"input",12),t()(),e(22,"section",3)(23,"div",4),r(24,"app-icon",13),e(25,"span",6),n(26,"Claude Code"),t()(),e(27,"div",7)(28,"label",8),n(29,"Transcripts path"),t(),r(30,"input",14),e(31,"div",10),n(32,"Auto-detected \xB7 overridable"),t()(),e(33,"div",15)(34,"div",16)(35,"div",17),n(36,"Enable transcript ingest"),t(),e(37,"div",18),n(38,"Read JSONL transcripts for analytics"),t()(),e(39,"button",19),c("click",function(){return i.toggleIngest()}),r(40,"span",20),t()(),e(41,"div",15)(42,"div",16)(43,"div",17),n(44,"Real-time watch"),t(),e(45,"div",18),n(46,"Tail new transcript lines as they're written"),t()(),e(47,"button",21),c("click",function(){return i.toggleWatch()}),r(48,"span",20),t()()(),e(49,"section",3)(50,"div",4),r(51,"app-icon",22),e(52,"span",6),n(53,"Notifications"),t()(),e(54,"div",15)(55,"div",16)(56,"div",17),n(57,"Desktop notifications"),t(),e(58,"div",18),x(59,j,1,0)(60,A,1,0)(61,V,1,0)(62,$,1,0),t()(),x(63,F,2,0,"button",23)(64,L,2,0,"span",24)(65,H,2,0,"span",25),t(),e(66,"div",15)(67,"div",16)(68,"div",17),n(69,"Run needs approval"),t(),e(70,"div",18),n(71,"A workflow run paused at an approval gate"),t()(),e(72,"button",26),c("click",function(){return i.notify.toggle("approval")}),r(73,"span",20),t()(),e(74,"div",15)(75,"div",16)(76,"div",17),n(77,"Run completed or failed"),t(),e(78,"div",18),n(79,"A workflow run finished or errored"),t()(),e(80,"button",27),c("click",function(){return i.notify.toggle("runDone")}),r(81,"span",20),t()(),e(82,"div",15)(83,"div",16)(84,"div",17),n(85,"Drift detected"),t(),e(86,"div",18),n(87,"Spec \u2192 code drift appeared"),t()(),e(88,"button",28),c("click",function(){return i.notify.toggle("drift")}),r(89,"span",20),t()()(),e(90,"section",3)(91,"div",4),r(92,"app-icon",29),e(93,"span",6),n(94,"Pricing table"),t()(),e(95,"div",30),n(96,"Per-million-token prices. Bump these when Anthropic publishes new tiers."),t(),e(97,"div",31)(98,"span",16),n(99,"Model"),t(),e(100,"span",32),n(101,"Input $/M"),t(),e(102,"span",32),n(103,"Output $/M"),t()(),h(104,W,5,3,"div",33,B),t(),e(106,"section",3)(107,"div",4),r(108,"app-icon",34),e(109,"span",6),n(110,"Appearance"),t()(),e(111,"div",7)(112,"label",8),n(113,"Theme"),t(),e(114,"app-segmented",35),c("change",function(R){return i.setTheme(R)}),t(),e(115,"div",10),n(116,"Now fully supported \u2014 dark, light, or follow your OS"),t()(),e(117,"div",15)(118,"div",16)(119,"div",17),n(120,"Reduced motion"),t(),e(121,"div",18),n(122,"Honor OS preference \u2014 instant transitions"),t()(),e(123,"button",36),c("click",function(){return i.toggleMotion()}),r(124,"span",20),t()(),e(125,"div",37)(126,"div",16)(127,"div",17),n(128,"Boot animation"),t(),e(129,"div",18),n(130,"The graph-assembly splash on app launch"),t()(),e(131,"button",38),c("click",function(){return i.replayIntro()}),r(132,"app-icon",39),n(133," Replay intro "),t()()(),e(134,"section",3)(135,"div",4),r(136,"app-icon",40),e(137,"span",6),n(138,"Editor"),t()(),e(139,"div",7)(140,"label",8),n(141,"Open files with"),t(),e(142,"select",41),h(143,q,2,1,"option",null,k),t(),e(145,"div",10),n(146,"Detected via code / subl / etc."),t()()(),e(147,"section",3)(148,"div",4),r(149,"app-icon",42),e(150,"span",6),n(151,"About"),t()(),e(152,"div",43)(153,"div",44)(154,"span",25),n(155,"Version"),t(),e(156,"span",45),n(157,"0.4.0"),t()(),e(158,"div",44)(159,"span",25),n(160,"MCP server"),t(),e(161,"span",46),r(162,"span",47),n(163,"running "),t()(),e(164,"div",44)(165,"span",25),n(166,"Backend"),t(),e(167,"span",45),n(168),t()(),e(169,"div",44)(170,"span",25),n(171,"Log path"),t(),e(172,"span",45),n(173,"~/.cg/logs/desktop.log"),t()()()(),r(174,"div",48),t()()),p&2){let d;o(5),s("size",15),o(19),s("size",15),o(15),g("on",i.ingest()),m("aria-pressed",i.ingest()),o(8),g("on",i.watch()),m("aria-pressed",i.watch()),o(4),s("size",15),o(8),_((d=i.notify.permission())==="granted"?59:d==="denied"?60:d==="unsupported"?61:62),o(4),_(i.notify.permission()==="default"?63:i.notify.permission()==="granted"?64:65),o(3),b("opacity",i.notify.granted()?"1":"0.5"),o(6),g("on",i.notify.enabled("approval")),m("aria-pressed",i.notify.enabled("approval")),o(2),b("opacity",i.notify.granted()?"1":"0.5"),o(6),g("on",i.notify.enabled("runDone")),m("aria-pressed",i.notify.enabled("runDone")),o(2),b("opacity",i.notify.granted()?"1":"0.5"),o(6),g("on",i.notify.enabled("drift")),m("aria-pressed",i.notify.enabled("drift")),o(4),s("size",15),o(12),y(i.pricing),o(4),s("size",15),o(6),s("value",i.theme.pref())("options",i.themeOptions),o(9),g("on",i.motion()),m("aria-pressed",i.motion()),o(9),s("size",13),o(4),s("size",15),o(7),y(i.editorOptions),o(6),s("size",15),o(19),f(i.api.isConfigured?i.api.apiBase:"not configured")}},dependencies:[O,z,T],styles:["[_nghost-%COMP%]{display:flex;flex:1;min-height:0}.settings-page[_ngcontent-%COMP%]{flex:1;padding:18px;overflow-y:auto}.settings-body[_ngcontent-%COMP%]{max-width:720px}.section-card[_ngcontent-%COMP%]{margin-bottom:14px}.section-head[_ngcontent-%COMP%]{align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.section-title[_ngcontent-%COMP%]{font-weight:600;font-size:13.5px}.field[_ngcontent-%COMP%]{margin-bottom:16px}.field-label[_ngcontent-%COMP%]{display:block;font-size:12.5px;font-weight:500;margin-bottom:6px;color:var(--text-primary)}.field-hint[_ngcontent-%COMP%]{color:var(--text-muted);font-size:11px;margin-top:5px}.toggle-row[_ngcontent-%COMP%]{align-items:center;padding:8px 0}.toggle-label[_ngcontent-%COMP%]{font-size:12.5px;font-weight:500}.toggle-btn[_ngcontent-%COMP%]{width:36px;height:20px;border-radius:999px;border:none;cursor:pointer;padding:2px;background:var(--bg-elevated);display:flex;justify-content:flex-start;align-items:center;transition:background .12s;flex-shrink:0}.toggle-btn.on[_ngcontent-%COMP%]{background:var(--accent);justify-content:flex-end}.toggle-btn[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toggle-thumb[_ngcontent-%COMP%]{width:16px;height:16px;border-radius:50%;background:#fff;flex-shrink:0}.pricing-header[_ngcontent-%COMP%]{font-size:10.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:6px}.pricing-row[_ngcontent-%COMP%]{padding:6px 0;border-top:1px solid var(--border-subtle);align-items:center;gap:10px}.price-col[_ngcontent-%COMP%]{width:110px;text-align:right}.price-input[_ngcontent-%COMP%]{width:100px;text-align:right;padding:4px 8px}.about-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.about-row[_ngcontent-%COMP%]{justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--border-subtle)}.status-dot[_ngcontent-%COMP%]{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:middle}.muted[_ngcontent-%COMP%]{color:var(--text-muted)}.mono[_ngcontent-%COMP%]{font-family:var(--font-mono)}.grow[_ngcontent-%COMP%]{flex:1}"],changeDetection:0})};export{I as Settings};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{a as ne}from"./chunk-G7VZT5KB.js";import{a as ie}from"./chunk-EMGMOEVR.js";import{a as oe}from"./chunk-X2HTISHL.js";import{a as te}from"./chunk-R5W2MDZN.js";import{a as Z}from"./chunk-WDU3WICG.js";import{a as W,b as ee}from"./chunk-HZA6NEAB.js";import{a as Y,c as N}from"./chunk-GR72OOCN.js";import{c as K}from"./chunk-SHPTC4RL.js";import{a as J}from"./chunk-7RNS77UP.js";import{a as X}from"./chunk-E44X4RH2.js";import{Aa as c,Ga as y,I as w,Ia as v,Ka as s,M as b,N as C,Oa as G,Pa as Q,Qa as U,R as q,T as S,Ta as V,Ua as $,Va as d,W as x,Wa as m,Xa as h,aa as D,ea as o,ka as k,lb as f,ra as u,sa as g,va as z,wa as I,xa as p,ya as a,yb as B,za as r,zb as E}from"./chunk-PDN6QYGJ.js";import"./chunk-Q7L6LLAK.js";var L=null,ge="self.onmessage = () => {};";function re(){return L||(typeof window<"u"&&!window.MonacoEnvironment&&(window.MonacoEnvironment={getWorker:(n,t)=>{let e=new Blob([ge],{type:"text/javascript"}),i=URL.createObjectURL(e);return new Worker(i,{name:t||"monaco-noop"})}}),L=import("./chunk-FMV5PXRC.js"),L)}var ae=!1;function le(n){ae||(ae=!0,_e(n))}function de(n,t){let e=[],i=t.getValue().split(`
|
|
2
|
-
`),l=null,_=new Map,P=/<!--\s*id\s*:\s*([^\s-][^\s]*)\s*-->/,ue=/^#{1,6}\s+/;for(let O=0;O<i.length;O++){let T=i[O]??"",R=O+1,F=T.match(P);if(F&&F[1]){l!==null&&e.push({severity:n.MarkerSeverity.Warning,message:`Stranded <!-- id: ${l.id} -->: no heading follows on line ${l.line+1}.`,startLineNumber:l.line+1,startColumn:1,endLineNumber:l.line+1,endColumn:(i[l.line]??"").length+1,code:"spec_stranded_id"});let M=F[1];l={id:M,line:O};let H=_.get(M);H!==void 0?e.push({severity:n.MarkerSeverity.Warning,message:`Duplicate spec ID "${M}" \u2014 first seen on line ${H+1}. The second occurrence will be silently lost by the parser.`,startLineNumber:R,startColumn:T.indexOf(M)+1,endLineNumber:R,endColumn:T.indexOf(M)+M.length+1,code:"spec_duplicate_id"}):_.set(M,O);continue}ue.test(T)&&(l===null?e.push({severity:n.MarkerSeverity.Error,message:"This heading has no embedded ID. Add `<!-- id: REQ-X -->` on the line above it \u2014 required by the SpecShip parser.",startLineNumber:R,startColumn:1,endLineNumber:R,endColumn:T.length+1,code:"spec_missing_id"}):l=null)}n.editor.setModelMarkers(t,"specship-spec",e)}function _e(n){n.languages.registerCompletionItemProvider("markdown",{provideCompletionItems:(t,e)=>{let i=t.getWordUntilPosition(e),l={startLineNumber:e.lineNumber,endLineNumber:e.lineNumber,startColumn:i.startColumn,endColumn:i.endColumn},_=n.languages.CompletionItemKind,P=n.languages.CompletionItemInsertTextRule;return{suggestions:[{label:"req",kind:_.Snippet,insertText:["<!-- id: REQ-${1:AREA}-${2:001} -->","## ${3:Title MUST be concrete}","","${4:Body \u2014 describe the contract, not the implementation.}","","## Acceptance","<!-- id: REQ-${1:AREA}-${2:001}.A1 -->","- ${5:First testable acceptance criterion}","$0"].join(`
|
|
3
|
-
`),insertTextRules:P.InsertAsSnippet,documentation:"Insert a full requirement (heading + acceptance) with embedded IDs.",detail:"SpecShip \xB7 requirement",range:l},{label:"doc",kind:_.Snippet,insertText:["---","id: ${1:AREA}-DOC","title: ${2:Title}","owner: ${3:team-or-person}","priority: ${4|high,medium,low|}","---","","<!-- id: ${1:AREA}-DOC -->","# ${2:Title}","","${5:One-paragraph summary of what this document covers.}","$0"].join(`
|
|
4
|
-
`),insertTextRules:P.InsertAsSnippet,documentation:"Insert a new spec document with frontmatter.",detail:"SpecShip \xB7 document",range:l},{label:"accept",kind:_.Snippet,insertText:["## Acceptance","<!-- id: ${1:REQ-X}.A1 -->","- ${2:First testable acceptance criterion}","<!-- id: ${1:REQ-X}.A2 -->","- ${3:Second testable acceptance criterion}","$0"].join(`
|
|
5
|
-
`),insertTextRules:P.InsertAsSnippet,documentation:"Insert an Acceptance section with two ID-d bullets.",detail:"SpecShip \xB7 acceptance",range:l},{label:"impl",kind:_.Snippet,insertText:["implementations:"," - ${1:src/path/to/file.ts}:${2:QualifiedSymbol}","$0"].join(`
|
|
6
|
-
`),insertTextRules:P.InsertAsSnippet,documentation:"Insert an implementations block linking the spec to code.",detail:"SpecShip \xB7 implementations",range:l}]}},triggerCharacters:["r","d","a","i"]})}var xe=["host"];function ve(n,t){if(n&1&&(a(0,"span",5),d(1),r()),n&2){let e=s();p("title",e.path),o(),m(e.path)}}function fe(n,t){n&1&&(a(0,"div",15),d(1,"Loading editor\u2026"),r())}var j=class n{sanitizer=w(B);destroyRef=w(q);value="";path="";valueChange=new S;validationChange=new S;save=new S;cancel=new S;hostRef;loading=x(!0);currentValue=x("");errorCount=x(0);warningCount=x(0);dirty=x(!1);previewHtml=f(()=>this.sanitizer.bypassSecurityTrustHtml(ne(this.currentValue()||"")));tokenCount=f(()=>Math.max(1,Math.round((this.currentValue()||"").length/4)));statusLabel=f(()=>{let t=this.errorCount(),e=this.warningCount();return t>0?`${t} error${t===1?"":"s"}`:e>0?`${e} warning${e===1?"":"s"}`:"clean"});statusKind=f(()=>this.errorCount()>0?"error":this.warningCount()>0?"warn":"ok");monaco=null;editor=null;model=null;diagnosticsTimer=null;async ngAfterViewInit(){this.currentValue.set(this.value);try{let t=await re();this.monaco=t,le(t),this.model=t.editor.createModel(this.value,"markdown"),this.editor=t.editor.create(this.hostRef.nativeElement,{model:this.model,theme:this.preferDark()?"vs-dark":"vs",automaticLayout:!0,wordWrap:"on",minimap:{enabled:!1},scrollBeyondLastLine:!1,renderWhitespace:"none",fontSize:13,lineNumbers:"on",folding:!1,tabSize:2,insertSpaces:!0,contextmenu:!1}),this.editor.onDidChangeModelContent(()=>this.handleEdit()),this.runDiagnosticsNow(),this.loading.set(!1)}catch(t){console.error("[spec-editor] failed to load Monaco",t),this.loading.set(!1)}this.destroyRef.onDestroy(()=>this.dispose())}ngOnDestroy(){this.dispose()}onSave(){this.save.emit()}onCancel(){this.cancel.emit()}handleEdit(){if(!this.model)return;let t=this.model.getValue();this.currentValue.set(t),this.dirty.set(t!==this.value),this.valueChange.emit(t),this.diagnosticsTimer!==null&&clearTimeout(this.diagnosticsTimer),this.diagnosticsTimer=setTimeout(()=>this.runDiagnosticsNow(),500)}runDiagnosticsNow(){if(!this.monaco||!this.model)return;de(this.monaco,this.model);let t=this.monaco.editor.getModelMarkers({resource:this.model.uri,owner:"specship-spec"}),e=t.filter(l=>l.severity===this.monaco.MarkerSeverity.Error).length,i=t.filter(l=>l.severity===this.monaco.MarkerSeverity.Warning).length;this.errorCount.set(e),this.warningCount.set(i),this.validationChange.emit({errors:e,warnings:i})}preferDark(){if(typeof window>"u")return!1;try{return window.matchMedia("(prefers-color-scheme: dark)").matches}catch{return!1}}dispose(){this.diagnosticsTimer!==null&&(clearTimeout(this.diagnosticsTimer),this.diagnosticsTimer=null),this.editor?.dispose(),this.editor=null,this.model?.dispose(),this.model=null}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=k({type:n,selectors:[["app-spec-editor"]],viewQuery:function(e,i){if(e&1&&G(xe,7),e&2){let l;Q(l=U())&&(i.hostRef=l.first)}},inputs:{value:"value",path:"path"},outputs:{valueChange:"valueChange",validationChange:"validationChange",save:"save",cancel:"cancel"},decls:23,vars:16,consts:[["host",""],[1,"editor-shell","col"],[1,"toolbar","row","gap-8"],["name","memory",3,"size"],[1,"title"],[1,"path","mono",3,"title"],[1,"grow"],[1,"status-pill"],[1,"dot"],[1,"tokens","mono","tabular","muted",3,"title"],["type","button",1,"btn","btn-secondary","btn-sm",3,"click"],["type","button",1,"btn","btn-primary","btn-sm",3,"click","disabled","title"],["name","check",3,"size"],[1,"panes","row"],[1,"editor-pane"],[1,"loading"],[1,"monaco-host"],[1,"preview-pane","md-content",3,"innerHTML"]],template:function(e,i){e&1&&(a(0,"div",1)(1,"div",2),c(2,"app-icon",3),a(3,"span",4),d(4,"Spec editor"),r(),u(5,ve,2,2,"span",5),c(6,"span",6),a(7,"span",7),c(8,"span",8),d(9),r(),a(10,"span",9),d(11),r(),a(12,"button",10),v("click",function(){return i.onCancel()}),d(13," Cancel "),r(),a(14,"button",11),v("click",function(){return i.onSave()}),c(15,"app-icon",12),d(16," Save "),r()(),a(17,"div",13)(18,"div",14),u(19,fe,2,0,"div",15),c(20,"div",16,0),r(),c(22,"div",17),r()()),e&2&&(o(2),p("size",14),o(3),g(i.path?5:-1),o(2),$("ok",i.statusKind()==="ok")("warn",i.statusKind()==="warn")("error",i.statusKind()==="error"),o(2),h(" ",i.statusLabel()," "),o(),p("title","~"+i.tokenCount()+" tokens (rough estimate)"),o(),h(" ~",i.tokenCount(),"t "),o(3),p("disabled",!i.dirty()||i.errorCount()>0)("title",i.errorCount()>0?"Fix errors before saving":i.dirty()?"Save changes":"No changes to save"),o(),p("size",13),o(4),g(i.loading()?19:-1),o(3),p("innerHTML",i.previewHtml(),D))},dependencies:[E],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:flex;flex:1;min-height:0}.editor-shell[_ngcontent-%COMP%]{flex:1;min-height:0;border:1px solid var(--border-subtle);border-radius:10px;overflow:hidden;background:var(--bg-panel)}.toolbar[_ngcontent-%COMP%]{align-items:center;padding:8px 12px;border-bottom:1px solid var(--border-subtle);background:var(--bg-panel);flex-wrap:wrap;row-gap:6px}.toolbar[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:12.5px;font-weight:650;color:var(--text-primary)}.toolbar[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.toolbar[_ngcontent-%COMP%] .tokens[_ngcontent-%COMP%]{font-size:10.5px;color:var(--text-muted)}.status-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}.status-pill[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{width:7px;height:7px;border-radius:50%}.status-pill.ok[_ngcontent-%COMP%]{color:var(--success);background:var(--success-soft)}.status-pill.ok[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{background:var(--success)}.status-pill.warn[_ngcontent-%COMP%]{color:var(--warn);background:var(--warn-soft)}.status-pill.warn[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{background:var(--warn)}.status-pill.error[_ngcontent-%COMP%]{color:var(--error);background:var(--error-soft)}.status-pill.error[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{background:var(--error)}.panes[_ngcontent-%COMP%]{flex:1;min-height:0}.editor-pane[_ngcontent-%COMP%]{flex:1;min-width:0;min-height:0;position:relative;border-right:1px solid var(--border-subtle)}.loading[_ngcontent-%COMP%]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:12px;background:var(--bg-canvas);z-index:1}.monaco-host[_ngcontent-%COMP%]{position:absolute;inset:0}.preview-pane[_ngcontent-%COMP%]{flex:1;min-width:0;min-height:0;padding:14px 18px;overflow:auto;background:var(--bg-canvas)}.preview-pane.md-content[_ngcontent-%COMP%] .md-h1[_ngcontent-%COMP%]{font-size:15px;font-weight:650;color:var(--text-primary);letter-spacing:-.01em;margin:0 0 10px}.preview-pane.md-content[_ngcontent-%COMP%] .md-h2[_ngcontent-%COMP%]{font-size:13px;font-weight:650;color:var(--text-primary);letter-spacing:-.005em;margin:18px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--border-subtle)}.preview-pane.md-content[_ngcontent-%COMP%] .md-h3[_ngcontent-%COMP%]{font-size:12px;font-weight:650;color:var(--text-primary);margin:14px 0 6px}.preview-pane.md-content[_ngcontent-%COMP%] .md-h4[_ngcontent-%COMP%]{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:12px 0 4px}.preview-pane.md-content[_ngcontent-%COMP%] .md-p[_ngcontent-%COMP%]{font-size:12.5px;line-height:1.6;color:var(--text-secondary);margin:0 0 4px;overflow-wrap:anywhere}.preview-pane.md-content[_ngcontent-%COMP%] .md-p[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-primary)}.preview-pane.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%], .preview-pane.md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%]{padding:0;margin:4px 0 6px}.preview-pane.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .preview-pane.md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{position:relative;padding:2px 0 2px 22px;font-size:12.5px;line-height:1.6;color:var(--text-secondary);overflow-wrap:anywhere}.preview-pane.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .preview-pane.md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%] li[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-primary)}.preview-pane.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%]{list-style:none}.preview-pane.md-content[_ngcontent-%COMP%] .md-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:before{content:"\\2022";position:absolute;left:6px;top:2px;color:var(--text-faint)}.preview-pane.md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%]{list-style:none;counter-reset:md-ol}.preview-pane.md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{counter-increment:md-ol}.preview-pane.md-content[_ngcontent-%COMP%] .md-ol[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:before{content:counter(md-ol) ".";position:absolute;left:0;top:2px;color:var(--text-faint);font-family:var(--font-mono);font-size:11.5px;min-width:18px;text-align:right}.preview-pane.md-content[_ngcontent-%COMP%] .md-spacer[_ngcontent-%COMP%]{height:6px}.preview-pane.md-content[_ngcontent-%COMP%] .md-import[_ngcontent-%COMP%]{display:inline-block;font-size:11.5px;color:var(--node-route);background:var(--node-route-soft);padding:2px 8px;border-radius:5px;margin:4px 0}.preview-pane.md-content[_ngcontent-%COMP%] .md-inline-code[_ngcontent-%COMP%]{font-size:11.5px;background:var(--bg-canvas);padding:1px 6px;border-radius:4px;border:1px solid var(--border-subtle);color:var(--node-spec)}.preview-pane.md-content[_ngcontent-%COMP%] .md-blockquote[_ngcontent-%COMP%]{margin:6px 0;padding:8px 12px;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--text-secondary);font-size:12.5px;line-height:1.55;border-radius:0 6px 6px 0}.preview-pane.md-content[_ngcontent-%COMP%] .md-pre[_ngcontent-%COMP%]{position:relative;margin:8px 0 10px;padding:12px 14px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:8px;overflow-x:auto}.preview-pane.md-content[_ngcontent-%COMP%] .md-pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{display:block;font-size:11.5px;line-height:1.55;color:var(--text-primary);white-space:pre}.preview-pane.md-content[_ngcontent-%COMP%] .md-pre-lang[_ngcontent-%COMP%]{position:absolute;top:6px;right:10px;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:lowercase;background:var(--bg-canvas);padding:1px 6px;border-radius:4px;border:1px solid var(--border-subtle)}.preview-pane.md-content[_ngcontent-%COMP%] .md-table-scroll[_ngcontent-%COMP%]{overflow-x:auto;margin:10px 0;border:1px solid var(--border-subtle);border-radius:8px}.preview-pane.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;font-size:11.5px}.preview-pane.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .preview-pane.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:8px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border-subtle)}.preview-pane.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background:var(--bg-panel);font-weight:650;color:var(--text-primary);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-strong);white-space:nowrap}.preview-pane.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{color:var(--text-secondary)}.preview-pane.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%]{border-bottom:0}.preview-pane.md-content[_ngcontent-%COMP%] .md-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.preview-pane.md-content[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:first-child{margin-top:0}'],changeDetection:0})};function be(n,t){n&1&&(a(0,"div",14),d(1),r()),n&2&&(o(),m(t))}function Ce(n,t){if(n&1){let e=y();a(0,"div",0),v("click",function(){b(e);let l=s();return C(l.onBackdropClick())}),r(),a(1,"div",1)(2,"header",2)(3,"div",3)(4,"div",4),d(5,"Draft a new spec with Claude"),r(),a(6,"div",5),d(7,"Describe the feature in one sentence. Claude takes it from there."),r()(),a(8,"button",6),v("click",function(){b(e);let l=s();return C(l.onCloseClick())}),c(9,"app-icon",7),r()(),a(10,"div",8)(11,"label",9),d(12,"Feature description"),r(),a(13,"textarea",10),v("input",function(l){b(e);let _=s();return C(_.onDescriptionInput(l))}),r(),a(14,"div",11),d(15,"This will run in Claude Code:"),r(),a(16,"pre",12),d(17),r()(),a(18,"footer",13),u(19,be,2,1,"div",14),c(20,"span",15),a(21,"button",16),v("click",function(){b(e);let l=s();return C(l.onCopyToClipboard())}),c(22,"app-icon",17),d(23," Copy prompt "),r(),a(24,"button",18),v("click",function(){b(e);let l=s();return C(l.onOpenInClaude())}),c(25,"app-icon",19),d(26," Open in Claude Code "),r()()()}if(n&2){let e,i=s();o(9),p("size",16),o(4),p("value",i.description()),o(4),m(i.slashCommand()),o(2),g((e=i.toast())?19:-1,e),o(2),p("disabled",!i.canSubmit()),o(),p("size",13),o(2),p("disabled",!i.canSubmit()),o(),p("size",13)}}var A=class n{open=!1;close=new S;description=x("");toast=x(null);slashCommand=f(()=>{let t=this.description().trim();return t?`/ss-spec-author "${t.replace(/"/g,'\\"')}"`:"/ss-spec-author"});canSubmit=f(()=>this.description().trim().length>0);onDescriptionInput(t){let e=t.target;this.description.set(e.value)}onBackdropClick(){this.dismiss()}onCloseClick(){this.dismiss()}async onOpenInClaude(){if(!this.canSubmit())return;let t=this.slashCommand();await this.writeToClipboard(t);try{window.location.href=`claude://prompt?text=${encodeURIComponent(t)}`,this.flashToast("Opening Claude Code\u2026 (also copied to clipboard)")}catch{this.flashToast("Claude Code handler unavailable \u2014 prompt copied to clipboard.")}}async onCopyToClipboard(){if(!this.canSubmit())return;let t=this.slashCommand(),e=await this.writeToClipboard(t);this.flashToast(e?"Copied! Switch to Claude Code and paste.":"Could not access clipboard \u2014 copy the prompt manually.")}async writeToClipboard(t){if(!navigator.clipboard)return!1;try{return await navigator.clipboard.writeText(t),!0}catch{return!1}}flashToast(t){this.toast.set(t),setTimeout(()=>this.toast.set(null),2500)}dismiss(){this.description.set(""),this.toast.set(null),this.close.emit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=k({type:n,selectors:[["app-draft-with-claude-modal"]],inputs:{open:"open"},outputs:{close:"close"},decls:1,vars:1,consts:[["role","presentation",1,"backdrop",3,"click"],["role","dialog","aria-labelledby","draft-modal-title","aria-modal","true",1,"modal"],[1,"head"],[1,"title-block"],["id","draft-modal-title",1,"title"],[1,"sub"],["type","button","aria-label","Close",1,"close",3,"click"],["name","x",3,"size"],[1,"body"],["for","draft-description",1,"field-label"],["id","draft-description","rows","3","placeholder","e.g. Failed payment retries should back off with T+1d, T+3d, T+7d then downgrade the account.","autofocus","",1,"field",3,"input","value"],[1,"preview-label"],[1,"preview","mono"],[1,"foot"],[1,"toast"],[1,"grow"],["type","button",1,"btn","btn-secondary","btn-sm",3,"click","disabled"],["name","copy",3,"size"],["type","button",1,"btn","btn-primary","btn-sm",3,"click","disabled"],["name","external",3,"size"]],template:function(e,i){e&1&&u(0,Ce,27,8),e&2&&g(i.open?0:-1)},dependencies:[E],styles:[".backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;background:#00000080;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal[_ngcontent-%COMP%]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,100vw - 32px);max-height:calc(100vh - 64px);background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:12px;box-shadow:0 24px 48px #0006;z-index:101;display:flex;flex-direction:column;overflow:hidden}.head[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border-subtle)}.head[_ngcontent-%COMP%] .title-block[_ngcontent-%COMP%]{flex:1;min-width:0}.head[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:14.5px;font-weight:650;color:var(--text-primary);letter-spacing:-.01em}.head[_ngcontent-%COMP%] .sub[_ngcontent-%COMP%]{font-size:12px;color:var(--text-secondary);margin-top:2px;line-height:1.45}.head[_ngcontent-%COMP%] .close[_ngcontent-%COMP%]{appearance:none;background:transparent;border:0;width:28px;height:28px;border-radius:6px;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.head[_ngcontent-%COMP%] .close[_ngcontent-%COMP%]:hover{background:var(--bg-hover);color:var(--text-primary)}.head[_ngcontent-%COMP%] .close[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.body[_ngcontent-%COMP%]{padding:16px 18px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.field-label[_ngcontent-%COMP%]{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.field[_ngcontent-%COMP%]{width:100%;box-sizing:border-box;padding:10px 12px;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);font-family:var(--font-ui);font-size:13px;line-height:1.5;resize:vertical}.field[_ngcontent-%COMP%]:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.preview-label[_ngcontent-%COMP%]{font-size:11px;color:var(--text-muted);margin-top:4px}.preview[_ngcontent-%COMP%]{margin:0;padding:10px 12px;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:8px;font-size:11.5px;line-height:1.5;color:var(--node-spec);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all}.foot[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid var(--border-subtle);background:var(--bg-canvas);flex-wrap:wrap}.foot[_ngcontent-%COMP%] .grow[_ngcontent-%COMP%]{flex:1}.toast[_ngcontent-%COMP%]{font-size:11.5px;color:var(--success);background:var(--success-soft);padding:4px 10px;border-radius:999px;white-space:nowrap}"],changeDetection:0})};var he=(n,t)=>t.path,me=(n,t)=>t.id,ye=(n,t)=>t.briefId;function we(n,t){n&1&&c(0,"app-pick-project-empty",0)}function Me(n,t){if(n&1&&(c(0,"span",6),a(1,"span",17),d(2),r()),n&2){let e=s();o(2),h("",e.summary.conflicts," \u26A0")}}function Se(n,t){if(n&1&&(a(0,"div",8)(1,"span")(2,"b",15),d(3),r(),d(4," ideas"),r(),a(5,"span",16),d(6,"\u2192"),r(),a(7,"span")(8,"b",15),d(9),r(),d(10," specs"),r(),a(11,"span",16),d(12,"\u2192"),r(),a(13,"span")(14,"b",15),d(15),r(),d(16," impl \xB7 "),a(17,"b",15),d(18),r(),d(19," ver"),r(),u(20,Me,3,1),r()),n&2){let e=t;o(3),m(e.summary.ideas),o(6),m(e.summary.specified),o(6),m(e.summary.links.implemented),o(3),m(e.summary.links.verified),o(2),g(e.summary.conflicts>0?20:-1)}}function Pe(n,t){n&1&&c(0,"app-empty",10)}function Oe(n,t){if(n&1&&(a(0,"span",22),d(1),r()),n&2){let e=s().$implicit,i=s(2);o(),h(" ",i.driftCountForGroup(e)," ")}}function ke(n,t){if(n&1){let e=y();a(0,"div",25),v("click",function(){let l=b(e).$implicit,_=s(4);return C(_.select(l.id))}),c(1,"span",26),a(2,"div",27)(3,"div",28),d(4),r(),a(5,"div",29),d(6),r()()()}if(n&2){let e=t.$implicit,i=s(4);$("selected",i.sel()===e.id),o(),V("background",i.stateColorFor(e.kind)),o(2),V("color",i.sel()===e.id?"var(--accent)":"var(--text-primary)"),o(),m(e.id),o(2),m(e.title)}}function Ee(n,t){if(n&1&&(a(0,"div",23),z(1,ke,7,8,"div",24,me),r()),n&2){let e=s().$implicit;o(),I(e.specs)}}function Te(n,t){if(n&1){let e=y();a(0,"div",18),v("click",function(){let l=b(e).$implicit,_=s(2);return C(_.toggleGroup(l.path))}),c(1,"app-icon",19)(2,"app-icon",20),a(3,"span",21),d(4),r(),u(5,Oe,2,1,"span",22),r(),u(6,Ee,3,0,"div",23)}if(n&2){let e=t.$implicit,i=s(2);o(),p("name",i.isGroupOpen(e.path)?"chevronDown":"chevronRight")("size",12),o(),p("size",13),o(2),m(e.title),o(),g(i.driftCountForGroup(e)>0?5:-1),o(),g(i.isGroupOpen(e.path)?6:-1)}}function De(n,t){if(n&1){let e=y();a(0,"div",25),v("click",function(){let l=b(e).$implicit,_=s(3);return C(_.select(l.briefId))}),c(1,"span",33),a(2,"div",27)(3,"div",29),d(4),r()()()}if(n&2){let e=t.$implicit,i=s(3);$("selected",i.sel()===e.briefId),o(4),m(e.title)}}function ze(n,t){if(n&1&&(a(0,"div",30)(1,"span",31),d(2,"IDEAS"),r(),a(3,"span",32),d(4),r()(),z(5,De,5,3,"div",24,ye)),n&2){let e=s(2);o(4),m(e.ideas().length),o(),I(e.ideas())}}function Ie(n,t){if(n&1&&(a(0,"div",34),d(1),r()),n&2){let e=s();o(),h("Loading source for ",e.id,"\u2026")}}function $e(n,t){if(n&1){let e=y();a(0,"app-spec-editor",38),v("valueChange",function(l){b(e);let _=s(4);return C(_.onEditorValueChange(l))})("save",function(){b(e);let l=s(4);return C(l.onEditorSave())})("cancel",function(){b(e);let l=s(4);return C(l.onEditorCancel())}),r()}if(n&2){let e=s(),i=s(3);p("value",i.editingSource())("path",e.sourcePath)}}function Ne(n,t){n&1&&(a(0,"div",36),d(1),r()),n&2&&(o(),m(t))}function Re(n,t){n&1&&(a(0,"div",37),d(1,"Saving\u2026"),r())}function Ve(n,t){if(n&1&&(u(0,Ie,2,1,"div",34)(1,$e,1,2,"app-spec-editor",35),u(2,Ne,2,1,"div",36),u(3,Re,2,0,"div",37)),n&2){let e,i=s(3);g(i.editingSource()===null?0:1),o(2),g((e=i.saveError())?2:-1,e),o(),g(i.saving()?3:-1)}}function Le(n,t){if(n&1&&u(0,Ve,4,3),n&2){let e,i=s(2);g((e=i.selectedSpec())?0:-1,e)}}function je(n,t){if(n&1&&(a(0,"app-pill"),d(1),r()),n&2){let e=s();o(),m(e.priority)}}function Ae(n,t){if(n&1&&(a(0,"div",45)(1,"div",46),d(2,"Owner"),r(),a(3,"div",47),d(4),r()()),n&2){let e=s();o(4),m(e.owner)}}function Fe(n,t){if(n&1&&(a(0,"details",50)(1,"summary",63),d(2,"Brainstorm"),r(),c(3,"div",64),r()),n&2){let e=s(3);o(3),p("innerHTML",e.briefHtml(),D)}}function We(n,t){n&1&&c(0,"div",51)}function He(n,t){if(n&1&&(a(0,"app-pill",67),d(1),r()),n&2){let e=s().$implicit;o(),h("",e.driftAxis," drift")}}function qe(n,t){if(n&1&&(a(0,"div",66),c(1,"app-state-pill",42),u(2,He,2,1,"app-pill",67),a(3,"span",68),d(4),r(),a(5,"app-pill"),d(6),r(),a(7,"button",69),c(8,"app-icon",60),d(9," Reveal "),r()()),n&2){let e=t.$implicit,i=t.$index;V("border-top",i>0?"1px solid var(--border-subtle)":"none"),o(),p("state",e.state),o(),g(e.driftAxis?2:-1),o(2),m(e.targetQualifiedName),o(2),m(e.provenance),o(2),p("size",12)}}function Ge(n,t){if(n&1&&(a(0,"div",52),z(1,qe,10,7,"div",65,me),r()),n&2){let e=s(3);o(),I(e.selectedLinks())}}function Qe(n,t){n&1&&(a(0,"div",53),c(1,"app-icon",70),a(2,"div",71),d(3," Orphaned \u2014 no code implements this requirement yet "),r()()),n&2&&(o(),p("size",16))}function Ue(n,t){n&1&&(a(0,"div",62),d(1),r()),n&2&&(o(),m(t))}function Be(n,t){if(n&1){let e=y();a(0,"div",12)(1,"div",39)(2,"span",40),d(3),r(),c(4,"app-copy-btn",41)(5,"div",6)(6,"app-state-pill",42),u(7,je,2,1,"app-pill"),r(),a(8,"h1",43),d(9),r(),a(10,"div",44)(11,"div",45)(12,"div",46),d(13,"Kind"),r(),a(14,"div",47),d(15),r()(),u(16,Ae,5,1,"div",45),a(17,"div",45)(18,"div",46),d(19,"Doc"),r(),a(20,"div",47),d(21),r()(),a(22,"div",45)(23,"div",46),d(24,"Siblings"),r(),a(25,"div",47),d(26),r()(),a(27,"div",45)(28,"div",46),d(29,"Links"),r(),a(30,"div",47),d(31),r()()(),a(32,"div",48),d(33,"Requirement"),r(),c(34,"div",49),u(35,Fe,4,1,"details",50),a(36,"div",48),d(37,"Linked code"),r(),u(38,We,1,0,"div",51)(39,Ge,3,0,"div",52)(40,Qe,4,1,"div",53),a(41,"div",54)(42,"button",55),c(43,"app-icon",56),d(44," Implement "),r(),a(45,"button",57),c(46,"app-icon",58),d(47," Verify "),r(),a(48,"button",59),v("click",function(){b(e);let l=s(2);return C(l.onEditClick())}),c(49,"app-icon",60),d(50," Edit spec "),r(),a(51,"button",59),v("click",function(){let l=b(e),_=s(2);return C(_.goToGraph(l.id))}),c(52,"app-icon",61),d(53," Show in graph "),r()(),u(54,Ue,2,1,"div",62),r()}if(n&2){let e,i=t,l=s(2);o(3),m(i.id),o(),p("text",i.id),o(2),p("state",i.kind),o(),g(i.priority?7:-1),o(2),m(i.title),o(6),m(i.kind),o(),g(i.owner?16:-1),o(5),m(i.sourcePath.replace("specs/","")),o(5),h("",l.selectedSiblings().length," reqs"),o(5),m(l.selectedLinks().length),o(3),p("innerHTML",l.mdHtml(i.body),D),o(),g(l.briefResource.state().data?35:-1),o(3),g(l.detailResource.state().loading?38:l.selectedLinks().length>0?39:40),o(5),p("size",13),o(3),p("size",13),o(3),p("size",13),o(3),p("size",13),o(2),g((e=l.saveError())?54:-1,e)}}function Ke(n,t){n&1&&(a(0,"app-empty",13)(1,"code",72),d(2,"specship init -i"),r()())}function Xe(n,t){if(n&1){let e=y();a(0,"div",1)(1,"div",2)(2,"div",3),c(3,"app-icon",4),a(4,"span",5),d(5,"Specs"),r(),c(6,"span",6),a(7,"span",7),d(8),r()(),u(9,Se,21,5,"div",8),a(10,"div",9),u(11,Pe,1,0,"app-empty",10),z(12,Te,7,6,null,null,he),u(14,ze,7,1),r()(),a(15,"div",11),u(16,Le,1,1)(17,Be,55,18,"div",12)(18,Ke,3,0,"app-empty",13),r()(),a(19,"app-draft-with-claude-modal",14),v("close",function(){b(e);let l=s();return C(l.onDraftModalClose())}),r()}if(n&2){let e,i,l=s();o(3),p("size",15),o(5),h(" ",l.resource.state().loading?"\u2026":l.totalCount()+" reqs"," "),o(),g((e=l.funnel())?9:-1,e),o(2),g(l.groups().length===0&&!l.resource.state().loading?11:-1),o(),I(l.groups()),o(2),g(l.ideas().length>0?14:-1),o(2),g(l.editing()?16:(i=l.selectedSpec())?17:18,i),o(3),p("open",l.draftModalOpen())}}function Je(n){return n.replace(/&/g,"&").replace(/</g,"<").replace(/\*\*(.+?)\*\*/g,"<strong style='color:var(--text-primary)'>$1</strong>").replace(/`(.+?)`/g,"<code class='mono' style='font-size:12px;background:var(--bg-canvas);padding:1px 5px;border-radius:4px;border:1px solid var(--border-subtle)'>$1</code>")}var pe=class n{api=w(X);projects=w(J);router=w(K);conn=w(Y);resource=N(this.api,()=>`/api/specs${this.projects.projectQuery()}`);funnelResource=N(this.api,()=>`/api/spec/funnel${this.projects.projectQuery()}`);funnel=f(()=>this.funnelResource.state().data??null);ideas=f(()=>this.funnel()?.ideas??[]);detailResource=N(this.api,()=>{let t=this.sel();return t?`/api/spec/${encodeURIComponent(t)}${this.projects.projectQuery()}`:null});briefResource=N(this.api,()=>{let t=this.sel();return t?`/api/spec/${encodeURIComponent(t)}/brief${this.projects.projectQuery()}`:null});briefHtml=f(()=>this.mdHtml(this.briefResource.state().data?.markdown??""));sel=x(null);expandedGroups=x(new Set);editing=x(!1);editingSource=x(null);editingDirty=x(!1);saving=x(!1);saveError=x(null);draftModalOpen=x(!1);STATE=W;groups=f(()=>{let t=(this.resource.state().data?.specs??[]).filter(i=>i.kind!=="brief"),e=new Map;for(let i of t){let l=i.sourcePath||"(unknown)";e.has(l)||e.set(l,{path:l,title:l.replace(/^specs\//,""),specs:[]}),e.get(l).specs.push(i)}return[...e.values()]});totalCount=f(()=>this.groups().reduce((t,e)=>t+e.specs.length,0));selectedSpec=f(()=>{let t=this.sel();return t?(this.resource.state().data?.specs??[]).find(i=>i.id===t)??null:null});selectedLinks=f(()=>this.detailResource.state().data?.links??[]);selectedSiblings=f(()=>{let t=this.selectedSpec();if(!t)return[];let e=this.groups().find(i=>i.path===t.sourcePath);return e?e.specs.filter(i=>i.id!==t.id):[]});isGroupOpen(t){return!this.expandedGroups().has("closed:"+t)}toggleGroup(t){this.expandedGroups.update(e=>{let i="closed:"+t,l=new Set(e);return l.has(i)?l.delete(i):l.add(i),l})}driftCountForGroup(t){let e=this.selectedSpec();return!e||e.sourcePath!==t.path?0:this.selectedLinks().filter(i=>["drifted","broken","orphaned"].includes(i.state)).length}stateColorFor(t){return W[t]?.color??"var(--node-spec)"}select(t){this.editing()&&(this.editing.set(!1),this.editingSource.set(null),this.editingDirty.set(!1)),this.sel.set(t)}mdHtml(t){return Je(t)}goToGraph(t){this.router.navigate(["/graph"],{queryParams:{focus:"spec:"+t}})}async onEditClick(){let t=this.selectedSpec();if(t){this.saveError.set(null),this.editing.set(!0),this.editingSource.set(null);try{let e=this.projects.projectQuery(),i=await this.api.get(`/api/spec/${encodeURIComponent(t.id)}${e}`);this.editingSource.set(i.source??t.body)}catch(e){this.saveError.set(`Couldn't load source: ${e instanceof Error?e.message:String(e)}`),this.editing.set(!1)}}}onEditorValueChange(t){this.editingSource.set(t),this.editingDirty.set(!0)}async onEditorSave(){let t=this.selectedSpec(),e=this.editingSource();if(!(!t||e===null)){if(!this.conn.online()){this.saveError.set("Offline \u2014 reconnect to save your changes");return}this.saving.set(!0),this.saveError.set(null);try{let i=this.projects.projectQuery();await this.api.put(`/api/spec/${encodeURIComponent(t.id)}${i}`,{content:e}),this.editing.set(!1),this.editingDirty.set(!1),this.editingSource.set(null),this.resource.refetch()}catch(i){this.saveError.set(`Save failed: ${i instanceof Error?i.message:String(i)}`)}finally{this.saving.set(!1)}}}onEditorCancel(){this.editingDirty()&&!window.confirm("Discard unsaved changes?")||(this.editing.set(!1),this.editingSource.set(null),this.editingDirty.set(!1),this.saveError.set(null))}onDraftWithClaudeClick(){this.draftModalOpen.set(!0)}onDraftModalClose(){this.draftModalOpen.set(!1)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=k({type:n,selectors:[["app-specs"]],decls:2,vars:1,consts:[["surface","Specs"],[1,"specs-shell"],[1,"tree-col"],[1,"tree-header","row","gap-8"],["name","book",2,"color","var(--accent)",3,"size"],[2,"font-weight","600","font-size","13px"],[1,"grow"],[1,"muted","tabular",2,"font-size","11px"],["aria-label","Spec lifecycle funnel",1,"row","gap-8",2,"padding","6px 12px","border-bottom","1px solid var(--border-subtle)","font-size","11px","color","var(--text-secondary)"],[1,"scroll-y","tree-scroll"],["icon","book","title","No specs found","body","Run specship init -i against a project with a specs/ directory."],[1,"detail-col","col"],[1,"scroll-y","detail-scroll"],["icon","book","title","Pick a spec from the tree","body","Or run specship init -i to index your specs/ folder if you haven't yet."],[3,"close","open"],[2,"color","var(--text-primary)"],[2,"color","var(--text-muted)"],[2,"color","var(--warn)"],[1,"doc-row","row","gap-6",3,"click"],[2,"color","var(--text-muted)",3,"name","size"],["name","book",2,"color","var(--node-spec)",3,"size"],[1,"mono","grow","doc-name"],[1,"pill",2,"font-size","9.5px","color","var(--warn)","background","var(--warn-soft)"],[1,"group-body"],[1,"req-row","row","gap-6",3,"selected"],[1,"req-row","row","gap-6",3,"click"],[1,"pill-dot",2,"flex-shrink","0"],[1,"grow",2,"min-width","0"],[1,"mono","req-id"],[1,"muted","req-title"],[1,"row","gap-6",2,"padding","10px 12px 2px","font-size","11px","color","var(--text-muted)"],[1,"mono","grow",2,"letter-spacing","0.5px"],[1,"tabular",2,"font-size","10.5px"],[1,"pill-dot",2,"background","var(--text-muted)","flex-shrink","0"],[1,"loading-detail"],[3,"value","path"],[1,"save-error"],[1,"save-status"],[3,"valueChange","save","cancel","value","path"],[1,"row","gap-8",2,"margin-bottom","4px"],[1,"mono",2,"font-size","12px","color","var(--node-spec)"],[3,"text"],[3,"state"],[1,"detail-title"],[1,"meta-row","row"],[1,"meta-item"],[1,"muted",2,"font-size","10.5px"],[1,"mono",2,"font-size","12.5px","margin-top","1px"],[1,"eyebrow",2,"margin-bottom","8px"],[1,"detail-body",3,"innerHTML"],[1,"brief-panel"],[1,"skel",2,"height","42px","border-radius","8px","margin-bottom","22px"],[1,"card",2,"overflow","hidden","margin-bottom","22px"],[1,"card","card-pad","orphan-card"],[1,"row","gap-8",2,"flex-wrap","wrap"],["type","button",1,"btn","btn-primary","btn-sm"],["name","play",3,"size"],["type","button",1,"btn","btn-secondary","btn-sm"],["name","check",3,"size"],["type","button",1,"btn","btn-secondary","btn-sm",3,"click"],["name","reveal",3,"size"],["name","graph",3,"size"],[1,"save-error",2,"margin-top","16px"],[1,"eyebrow","brief-summary"],[1,"detail-body","brief-body",3,"innerHTML"],[1,"row","gap-10","link-row",3,"border-top"],[1,"row","gap-10","link-row"],["color","var(--warn)","bg","var(--warn-soft)"],[1,"mono","grow","link-target"],["type","button",1,"btn","btn-ghost","btn-xs"],["name","drift",3,"size"],[2,"margin-top","6px","font-size","12.5px"],["action","",1,"mono",2,"font-size","11.5px","color","var(--accent)","background","var(--bg-canvas)","padding","5px 10px","border-radius","6px","border","1px solid var(--border-subtle)"]],template:function(e,i){e&1&&u(0,we,1,0,"app-pick-project-empty",0)(1,Xe,20,7),e&2&&g(i.resource.state().noProject?0:1)},dependencies:[Z,E,j,A,ie,ee,oe,te],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:contents}.specs-shell[_ngcontent-%COMP%]{flex:1;display:flex;min-height:0}.tree-col[_ngcontent-%COMP%]{width:280px;flex-shrink:0;border-right:1px solid var(--border-subtle);background:var(--bg-panel);display:flex;flex-direction:column;min-height:0}.tree-header[_ngcontent-%COMP%]{padding:11px 12px;border-bottom:1px solid var(--border-subtle);align-items:center}.tree-scroll[_ngcontent-%COMP%]{flex:1;padding:6px}.doc-row[_ngcontent-%COMP%]{padding:6px 8px;border-radius:6px;cursor:pointer;color:var(--text-secondary);align-items:center}.doc-row[_ngcontent-%COMP%]:hover{background:var(--bg-hover)}.doc-name[_ngcontent-%COMP%]{font-size:12px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-body[_ngcontent-%COMP%]{margin-left:14px;border-left:1px solid var(--border-subtle);padding-left:6px}.req-row[_ngcontent-%COMP%]{padding:5px 8px;border-radius:6px;cursor:pointer;align-items:flex-start;background:transparent}.req-row[_ngcontent-%COMP%]:not(.selected):hover{background:var(--bg-hover)}.req-row.selected[_ngcontent-%COMP%]{background:var(--accent-soft)}.req-id[_ngcontent-%COMP%]{font-size:11px}.req-title[_ngcontent-%COMP%]{font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-col[_ngcontent-%COMP%]{flex:1;min-width:0}.detail-scroll[_ngcontent-%COMP%]{flex:1;padding:22px}.detail-title[_ngcontent-%COMP%]{font-size:22px;font-weight:650;letter-spacing:-.01em;margin:2px 0 14px;text-wrap:pretty}.meta-row[_ngcontent-%COMP%]{gap:18px;padding:10px 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);margin-bottom:18px;flex-wrap:wrap}.detail-body[_ngcontent-%COMP%]{font-size:13.5px;line-height:1.65;color:var(--text-secondary);margin-bottom:22px;text-wrap:pretty}.brief-panel[_ngcontent-%COMP%]{border:1px solid var(--border-subtle);border-radius:8px;padding:0 12px;margin-bottom:22px;background:var(--bg-panel)}.brief-summary[_ngcontent-%COMP%]{padding:10px 0;cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none;margin-bottom:0}.brief-summary[_ngcontent-%COMP%]::-webkit-details-marker{display:none}.brief-summary[_ngcontent-%COMP%]:before{content:"\\25b6";font-size:8px;color:var(--text-muted);transition:transform .15s}details[open][_ngcontent-%COMP%] > .brief-summary[_ngcontent-%COMP%]:before{transform:rotate(90deg)}.brief-body[_ngcontent-%COMP%]{margin-bottom:12px}.link-row[_ngcontent-%COMP%]{padding:10px 12px}.link-target[_ngcontent-%COMP%]{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.orphan-card[_ngcontent-%COMP%]{text-align:center;color:var(--error);margin-bottom:22px;border-color:#f2555a4d}.loading-detail[_ngcontent-%COMP%]{padding:40px 18px;color:var(--text-muted);font-size:13px;text-align:center}.save-error[_ngcontent-%COMP%]{padding:10px 14px;border:1px solid rgba(255,90,90,.35);background:var(--error-soft);color:var(--error);border-radius:8px;font-size:12.5px;line-height:1.5}.save-status[_ngcontent-%COMP%]{margin-top:8px;color:var(--text-muted);font-size:12px}'],changeDetection:0})};export{pe as Specs};
|