@jaggerxtrm/specialists 3.9.0 → 3.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/config/mandatory-rules/README.md +4 -0
- package/config/mandatory-rules/gitnexus-required.md +12 -1
- package/config/mandatory-rules/serena-cheatsheet.md +41 -0
- package/config/specialists/debugger.specialist.json +2 -1
- package/config/specialists/executor.specialist.json +2 -1
- package/config/specialists/explorer.specialist.json +2 -1
- package/config/specialists/memory-processor.specialist.json +6 -1
- package/config/specialists/overthinker.specialist.json +2 -1
- package/config/specialists/planner.specialist.json +6 -1
- package/config/specialists/researcher.specialist.json +2 -1
- package/config/specialists/reviewer.specialist.json +2 -1
- package/config/specialists/specialists-creator.specialist.json +7 -1
- package/config/specialists/sync-docs.specialist.json +2 -1
- package/config/specialists/test-runner.specialist.json +2 -1
- package/dist/index.js +998 -533
- package/dist/lib.js +13219 -0
- package/dist/types/cli/attach.d.ts +2 -0
- package/dist/types/cli/attach.d.ts.map +1 -0
- package/dist/types/cli/clean.d.ts +2 -0
- package/dist/types/cli/clean.d.ts.map +1 -0
- package/dist/types/cli/config.d.ts +2 -0
- package/dist/types/cli/config.d.ts.map +1 -0
- package/dist/types/cli/db.d.ts +2 -0
- package/dist/types/cli/db.d.ts.map +1 -0
- package/dist/types/cli/doctor.d.ts +15 -0
- package/dist/types/cli/doctor.d.ts.map +1 -0
- package/dist/types/cli/edit.d.ts +2 -0
- package/dist/types/cli/edit.d.ts.map +1 -0
- package/dist/types/cli/end.d.ts +2 -0
- package/dist/types/cli/end.d.ts.map +1 -0
- package/dist/types/cli/epic.d.ts +8 -0
- package/dist/types/cli/epic.d.ts.map +1 -0
- package/dist/types/cli/feed.d.ts +19 -0
- package/dist/types/cli/feed.d.ts.map +1 -0
- package/dist/types/cli/follow-up.d.ts +2 -0
- package/dist/types/cli/follow-up.d.ts.map +1 -0
- package/dist/types/cli/format-helpers.d.ts +108 -0
- package/dist/types/cli/format-helpers.d.ts.map +1 -0
- package/dist/types/cli/help.d.ts +2 -0
- package/dist/types/cli/help.d.ts.map +1 -0
- package/dist/types/cli/init.d.ts +10 -0
- package/dist/types/cli/init.d.ts.map +1 -0
- package/dist/types/cli/install.d.ts +2 -0
- package/dist/types/cli/install.d.ts.map +1 -0
- package/dist/types/cli/list-rules.d.ts +2 -0
- package/dist/types/cli/list-rules.d.ts.map +1 -0
- package/dist/types/cli/list.d.ts +13 -0
- package/dist/types/cli/list.d.ts.map +1 -0
- package/dist/types/cli/memory.d.ts +2 -0
- package/dist/types/cli/memory.d.ts.map +1 -0
- package/dist/types/cli/merge.d.ts +79 -0
- package/dist/types/cli/merge.d.ts.map +1 -0
- package/dist/types/cli/models.d.ts +2 -0
- package/dist/types/cli/models.d.ts.map +1 -0
- package/dist/types/cli/node.d.ts +2 -0
- package/dist/types/cli/node.d.ts.map +1 -0
- package/dist/types/cli/poll.d.ts +25 -0
- package/dist/types/cli/poll.d.ts.map +1 -0
- package/dist/types/cli/ps.d.ts +2 -0
- package/dist/types/cli/ps.d.ts.map +1 -0
- package/dist/types/cli/quickstart.d.ts +2 -0
- package/dist/types/cli/quickstart.d.ts.map +1 -0
- package/dist/types/cli/result.d.ts +2 -0
- package/dist/types/cli/result.d.ts.map +1 -0
- package/dist/types/cli/resume.d.ts +2 -0
- package/dist/types/cli/resume.d.ts.map +1 -0
- package/dist/types/cli/run.d.ts +2 -0
- package/dist/types/cli/run.d.ts.map +1 -0
- package/dist/types/cli/script.d.ts +23 -0
- package/dist/types/cli/script.d.ts.map +1 -0
- package/dist/types/cli/serve.d.ts +17 -0
- package/dist/types/cli/serve.d.ts.map +1 -0
- package/dist/types/cli/setup.d.ts +2 -0
- package/dist/types/cli/setup.d.ts.map +1 -0
- package/dist/types/cli/status.d.ts +4 -0
- package/dist/types/cli/status.d.ts.map +1 -0
- package/dist/types/cli/steer.d.ts +2 -0
- package/dist/types/cli/steer.d.ts.map +1 -0
- package/dist/types/cli/stop.d.ts +2 -0
- package/dist/types/cli/stop.d.ts.map +1 -0
- package/dist/types/cli/tmux-utils.d.ts +23 -0
- package/dist/types/cli/tmux-utils.d.ts.map +1 -0
- package/dist/types/cli/validate.d.ts +11 -0
- package/dist/types/cli/validate.d.ts.map +1 -0
- package/dist/types/cli/version.d.ts +2 -0
- package/dist/types/cli/version.d.ts.map +1 -0
- package/dist/types/cli/view.d.ts +2 -0
- package/dist/types/cli/view.d.ts.map +1 -0
- package/dist/types/constants.d.ts +140 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib.d.ts +5 -0
- package/dist/types/lib.d.ts.map +1 -0
- package/dist/types/pi/backendMap.d.ts +3 -0
- package/dist/types/pi/backendMap.d.ts.map +1 -0
- package/dist/types/pi/session.d.ts +209 -0
- package/dist/types/pi/session.d.ts.map +1 -0
- package/dist/types/server.d.ts +10 -0
- package/dist/types/server.d.ts.map +1 -0
- package/dist/types/specialist/beads.d.ts +60 -0
- package/dist/types/specialist/beads.d.ts.map +1 -0
- package/dist/types/specialist/chain-identity.d.ts +18 -0
- package/dist/types/specialist/chain-identity.d.ts.map +1 -0
- package/dist/types/specialist/epic-lifecycle.d.ts +57 -0
- package/dist/types/specialist/epic-lifecycle.d.ts.map +1 -0
- package/dist/types/specialist/epic-readiness.d.ts +55 -0
- package/dist/types/specialist/epic-readiness.d.ts.map +1 -0
- package/dist/types/specialist/epic-reconciler.d.ts +35 -0
- package/dist/types/specialist/epic-reconciler.d.ts.map +1 -0
- package/dist/types/specialist/hooks.d.ts +44 -0
- package/dist/types/specialist/hooks.d.ts.map +1 -0
- package/dist/types/specialist/job-control.d.ts +29 -0
- package/dist/types/specialist/job-control.d.ts.map +1 -0
- package/dist/types/specialist/job-file-output.d.ts +4 -0
- package/dist/types/specialist/job-file-output.d.ts.map +1 -0
- package/dist/types/specialist/job-root.d.ts +21 -0
- package/dist/types/specialist/job-root.d.ts.map +1 -0
- package/dist/types/specialist/jobRegistry.d.ts +69 -0
- package/dist/types/specialist/jobRegistry.d.ts.map +1 -0
- package/dist/types/specialist/json-output.d.ts +2 -0
- package/dist/types/specialist/json-output.d.ts.map +1 -0
- package/dist/types/specialist/loader.d.ts +48 -0
- package/dist/types/specialist/loader.d.ts.map +1 -0
- package/dist/types/specialist/mandatory-rules.d.ts +41 -0
- package/dist/types/specialist/mandatory-rules.d.ts.map +1 -0
- package/dist/types/specialist/memory-retrieval.d.ts +34 -0
- package/dist/types/specialist/memory-retrieval.d.ts.map +1 -0
- package/dist/types/specialist/model-display.d.ts +4 -0
- package/dist/types/specialist/model-display.d.ts.map +1 -0
- package/dist/types/specialist/node-contract.d.ts +343 -0
- package/dist/types/specialist/node-contract.d.ts.map +1 -0
- package/dist/types/specialist/node-resolve.d.ts +5 -0
- package/dist/types/specialist/node-resolve.d.ts.map +1 -0
- package/dist/types/specialist/node-supervisor.d.ts +198 -0
- package/dist/types/specialist/node-supervisor.d.ts.map +1 -0
- package/dist/types/specialist/observability-db.d.ts +19 -0
- package/dist/types/specialist/observability-db.d.ts.map +1 -0
- package/dist/types/specialist/observability-sqlite.d.ts +218 -0
- package/dist/types/specialist/observability-sqlite.d.ts.map +1 -0
- package/dist/types/specialist/pipeline.d.ts +23 -0
- package/dist/types/specialist/pipeline.d.ts.map +1 -0
- package/dist/types/specialist/process-liveness.d.ts +2 -0
- package/dist/types/specialist/process-liveness.d.ts.map +1 -0
- package/dist/types/specialist/runner.d.ts +98 -0
- package/dist/types/specialist/runner.d.ts.map +1 -0
- package/dist/types/specialist/schema.d.ts +2875 -0
- package/dist/types/specialist/schema.d.ts.map +1 -0
- package/dist/types/specialist/script-runner.d.ts +47 -0
- package/dist/types/specialist/script-runner.d.ts.map +1 -0
- package/dist/types/specialist/supervisor.d.ts +142 -0
- package/dist/types/specialist/supervisor.d.ts.map +1 -0
- package/dist/types/specialist/templateEngine.d.ts +2 -0
- package/dist/types/specialist/templateEngine.d.ts.map +1 -0
- package/dist/types/specialist/timeline-events.d.ts +563 -0
- package/dist/types/specialist/timeline-events.d.ts.map +1 -0
- package/dist/types/specialist/timeline-query.d.ts +129 -0
- package/dist/types/specialist/timeline-query.d.ts.map +1 -0
- package/dist/types/specialist/worktree-gc.d.ts +24 -0
- package/dist/types/specialist/worktree-gc.d.ts.map +1 -0
- package/dist/types/specialist/worktree.d.ts +69 -0
- package/dist/types/specialist/worktree.d.ts.map +1 -0
- package/dist/types/tools/specialist/feed_specialist.tool.d.ts +51 -0
- package/dist/types/tools/specialist/feed_specialist.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/list_specialists.tool.d.ts +28 -0
- package/dist/types/tools/specialist/list_specialists.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/resume_specialist.tool.d.ts +46 -0
- package/dist/types/tools/specialist/resume_specialist.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/specialist_init.tool.d.ts +26 -0
- package/dist/types/tools/specialist/specialist_init.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/specialist_status.tool.d.ts +33 -0
- package/dist/types/tools/specialist/specialist_status.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/steer_specialist.tool.d.ts +38 -0
- package/dist/types/tools/specialist/steer_specialist.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/stop_specialist.tool.d.ts +31 -0
- package/dist/types/tools/specialist/stop_specialist.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/use_specialist.tool.d.ts +93 -0
- package/dist/types/tools/specialist/use_specialist.tool.d.ts.map +1 -0
- package/dist/types/utils/circuitBreaker.d.ts +19 -0
- package/dist/types/utils/circuitBreaker.d.ts.map +1 -0
- package/dist/types/utils/logger.d.ts +11 -0
- package/dist/types/utils/logger.d.ts.map +1 -0
- package/package.json +13 -2
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type EpicState } from './epic-lifecycle.js';
|
|
2
|
+
import { type EpicReadinessSummary } from './epic-readiness.js';
|
|
3
|
+
import type { ObservabilitySqliteClient } from './observability-sqlite.js';
|
|
4
|
+
interface DriftReport {
|
|
5
|
+
stale_chain_refs: string[];
|
|
6
|
+
dead_jobs_blocking_readiness: string[];
|
|
7
|
+
integrity_flags: string[];
|
|
8
|
+
stale_redirect_markers: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface EpicSyncResult {
|
|
11
|
+
epic_id: string;
|
|
12
|
+
apply: boolean;
|
|
13
|
+
drift: DriftReport;
|
|
14
|
+
repairs: {
|
|
15
|
+
dead_jobs_marked_error: string[];
|
|
16
|
+
stale_chain_refs_pruned: string[];
|
|
17
|
+
readiness_resynced: boolean;
|
|
18
|
+
redirect_markers_cleared: boolean;
|
|
19
|
+
};
|
|
20
|
+
readiness_before: EpicReadinessSummary;
|
|
21
|
+
readiness_after: EpicReadinessSummary;
|
|
22
|
+
}
|
|
23
|
+
export interface EpicAbandonResult {
|
|
24
|
+
epic_id: string;
|
|
25
|
+
from_state: EpicState;
|
|
26
|
+
to_state: 'abandoned';
|
|
27
|
+
forced: boolean;
|
|
28
|
+
reason: string;
|
|
29
|
+
live_member_job_ids: string[];
|
|
30
|
+
}
|
|
31
|
+
export declare function withEpicAdvisoryLock<T>(epicId: string, action: () => T): T;
|
|
32
|
+
export declare function syncEpicState(sqlite: ObservabilitySqliteClient, epicId: string, apply: boolean): EpicSyncResult;
|
|
33
|
+
export declare function abandonEpic(sqlite: ObservabilitySqliteClient, epicId: string, reason: string, force: boolean): EpicAbandonResult;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=epic-reconciler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epic-reconciler.d.ts","sourceRoot":"","sources":["../../../src/specialist/epic-reconciler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiD,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAwD,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEtH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAK3E,UAAU,WAAW;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE;QACP,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACjC,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,kBAAkB,EAAE,OAAO,CAAC;QAC5B,wBAAwB,EAAE,OAAO,CAAC;KACnC,CAAC;IACF,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,eAAe,EAAE,oBAAoB,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AASD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CA4B1E;AAkFD,wBAAgB,aAAa,CAAC,MAAM,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,CAyD/G;AAgCD,wBAAgB,WAAW,CAAC,MAAM,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAiChI"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
type HookType = 'pre_render' | 'post_render' | 'pre_execute' | 'post_execute';
|
|
2
|
+
type CBState = 'CLOSED' | 'HALF_OPEN' | 'OPEN';
|
|
3
|
+
interface HookPayloads {
|
|
4
|
+
pre_render: {
|
|
5
|
+
variables_keys: string[];
|
|
6
|
+
backend_resolved: string;
|
|
7
|
+
fallback_used: boolean;
|
|
8
|
+
circuit_breaker_state: CBState;
|
|
9
|
+
scope: string;
|
|
10
|
+
};
|
|
11
|
+
post_render: {
|
|
12
|
+
prompt_hash: string;
|
|
13
|
+
prompt_length_chars: number;
|
|
14
|
+
estimated_tokens: number;
|
|
15
|
+
system_prompt_present: boolean;
|
|
16
|
+
};
|
|
17
|
+
pre_execute: {
|
|
18
|
+
backend: string;
|
|
19
|
+
model: string;
|
|
20
|
+
timeout_ms: number;
|
|
21
|
+
permission_level: string;
|
|
22
|
+
};
|
|
23
|
+
post_execute: {
|
|
24
|
+
status: 'COMPLETE' | 'IN_PROGRESS' | 'BLOCKED' | 'ERROR' | 'CANCELLED';
|
|
25
|
+
duration_ms: number;
|
|
26
|
+
output_valid: boolean;
|
|
27
|
+
error?: {
|
|
28
|
+
type: string;
|
|
29
|
+
message: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export declare class HookEmitter {
|
|
34
|
+
private tracePath;
|
|
35
|
+
private customHandlers;
|
|
36
|
+
private ready;
|
|
37
|
+
constructor(options: {
|
|
38
|
+
tracePath: string;
|
|
39
|
+
});
|
|
40
|
+
emit<T extends HookType>(hook: T, invocationId: string, specialistName: string, specialistVersion: string, payload: HookPayloads[T]): Promise<void>;
|
|
41
|
+
onHook(hook: HookType, handler: (event: unknown) => void): void;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/specialist/hooks.ts"],"names":[],"mappings":"AAIA,KAAK,QAAQ,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;AAC9E,KAAK,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;AAE/C,UAAU,YAAY;IACpB,UAAU,EAAE;QACV,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,OAAO,CAAC;QACvB,qBAAqB,EAAE,OAAO,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;QACzB,qBAAqB,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;QACvE,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,OAAO,CAAC;QACtB,KAAK,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C,CAAC;CACH;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAwD;IAC9E,OAAO,CAAC,KAAK,CAAgB;gBAEjB,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IAKpC,IAAI,CAAC,CAAC,SAAS,QAAQ,EAC3B,IAAI,EAAE,CAAC,EACP,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,IAAI,CAAC;IAgBhB,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;CAIhE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { RunOptions, SpecialistRunner } from './runner.js';
|
|
2
|
+
import { type SupervisorStatus } from './supervisor.js';
|
|
3
|
+
export interface JobControlOptions {
|
|
4
|
+
runner: SpecialistRunner;
|
|
5
|
+
runOptions: RunOptions;
|
|
6
|
+
jobsDir?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class JobControl {
|
|
9
|
+
private supervisor;
|
|
10
|
+
private jobId;
|
|
11
|
+
private readonly runner;
|
|
12
|
+
private readonly baseRunOptions;
|
|
13
|
+
private readonly jobsDir;
|
|
14
|
+
private readonly sqliteClient;
|
|
15
|
+
constructor(opts: JobControlOptions);
|
|
16
|
+
startJob(opts: {
|
|
17
|
+
nodeId: string;
|
|
18
|
+
memberId: string;
|
|
19
|
+
}): Promise<string>;
|
|
20
|
+
resumeJob(jobId: string, prompt: string): Promise<void>;
|
|
21
|
+
steerJob(jobId: string, message: string): Promise<void>;
|
|
22
|
+
stopJob(jobId: string): Promise<void>;
|
|
23
|
+
readStatus(jobId: string): SupervisorStatus | null;
|
|
24
|
+
readResult(jobId: string): string | null;
|
|
25
|
+
waitForTerminal(jobId: string, timeoutMs?: number): Promise<SupervisorStatus>;
|
|
26
|
+
private writeFifoMessage;
|
|
27
|
+
private resultPath;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=job-control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-control.d.ts","sourceRoot":"","sources":["../../../src/specialist/job-control.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMpE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAa;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;gBAEpD,IAAI,EAAE,iBAAiB;IAY7B,QAAQ,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAiCrE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3C,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAIlD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAkBlC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuBnF,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,UAAU;CAGnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-file-output.d.ts","sourceRoot":"","sources":["../../../src/specialist/job-file-output.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,KAAK,CAAC;AAM7C,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,iBAAiB,CAK/F;AAED,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEpF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the git common root — the directory that contains the shared `.git/` dir.
|
|
3
|
+
* In a regular checkout this is the repo root. In a worktree it is still the main
|
|
4
|
+
* repo root, not the worktree directory, so all worktrees converge on the same root.
|
|
5
|
+
*
|
|
6
|
+
* `git rev-parse --git-common-dir` emits the path to the shared object store
|
|
7
|
+
* (e.g. `/repo/.git` from a worktree vs. `.git` from the main checkout). Taking
|
|
8
|
+
* `dirname` of its resolved form gives us the common project root in both cases.
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveCommonGitRoot(cwd: string): string | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Returns the absolute path to `.specialists/jobs/` rooted at the git common root.
|
|
13
|
+
* Falls back to `cwd/.specialists/jobs/` when git is unavailable (e.g. non-git dirs).
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveJobsDir(cwd?: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Returns the current branch name from `cwd`, or `undefined` when git is unavailable
|
|
18
|
+
* or HEAD is detached.
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveCurrentBranch(cwd?: string): string | undefined;
|
|
21
|
+
//# sourceMappingURL=job-root.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-root.d.ts","sourceRoot":"","sources":["../../../src/specialist/job-root.ts"],"names":[],"mappings":"AAOA;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWpE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,SAAgB,GAAG,MAAM,CAG1D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,SAAgB,GAAG,MAAM,GAAG,SAAS,CAU5E"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { RunResult } from './runner.js';
|
|
2
|
+
export interface JobSnapshot {
|
|
3
|
+
job_id: string;
|
|
4
|
+
status: 'running' | 'done' | 'error' | 'cancelled' | 'waiting';
|
|
5
|
+
/** Full output — populated only when status === 'done'. Empty string while running or on error/cancel. */
|
|
6
|
+
output: string;
|
|
7
|
+
/** New content since the provided cursor (for incremental mid-run polling). */
|
|
8
|
+
delta: string;
|
|
9
|
+
/** Pass as cursor on next poll to receive only new content. */
|
|
10
|
+
next_cursor: number;
|
|
11
|
+
/** Last pi event type seen: starting | thinking | toolcall | tool_execution | text | done | error | cancelled */
|
|
12
|
+
current_event: string;
|
|
13
|
+
backend: string;
|
|
14
|
+
model: string;
|
|
15
|
+
specialist_version: string;
|
|
16
|
+
duration_ms: number;
|
|
17
|
+
error?: string;
|
|
18
|
+
/** Beads issue ID linked to this job, if beads tracking is enabled. */
|
|
19
|
+
beadId?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare class JobRegistry {
|
|
22
|
+
private jobs;
|
|
23
|
+
register(id: string, meta: {
|
|
24
|
+
backend: string;
|
|
25
|
+
model: string;
|
|
26
|
+
specialistVersion?: string;
|
|
27
|
+
}): void;
|
|
28
|
+
appendOutput(id: string, text: string): void;
|
|
29
|
+
setCurrentEvent(id: string, eventType: string): void;
|
|
30
|
+
/** Update backend/model from the first assistant message_start event. */
|
|
31
|
+
setMeta(id: string, meta: {
|
|
32
|
+
backend: string;
|
|
33
|
+
model: string;
|
|
34
|
+
}): void;
|
|
35
|
+
/** Store the beads issue ID for this job. */
|
|
36
|
+
setBeadId(id: string, beadId: string): void;
|
|
37
|
+
/** Register the kill function for this job. If job was already cancelled, invokes immediately. */
|
|
38
|
+
setKillFn(id: string, killFn: () => void): void;
|
|
39
|
+
/** Register the steer function for this job. */
|
|
40
|
+
setSteerFn(id: string, steerFn: (msg: string) => Promise<void>): void;
|
|
41
|
+
/** Register resume/close functions for a keep-alive job. Sets status to 'waiting'. */
|
|
42
|
+
setResumeFn(id: string, resumeFn: (msg: string) => Promise<string>, closeFn: () => Promise<void>): void;
|
|
43
|
+
/** Send a follow-up prompt to a waiting keep-alive job. */
|
|
44
|
+
followUp(id: string, message: string): Promise<{
|
|
45
|
+
ok: boolean;
|
|
46
|
+
output?: string;
|
|
47
|
+
error?: string;
|
|
48
|
+
}>;
|
|
49
|
+
/** Close a keep-alive session and mark the job done. */
|
|
50
|
+
closeSession(id: string): Promise<{
|
|
51
|
+
ok: boolean;
|
|
52
|
+
error?: string;
|
|
53
|
+
}>;
|
|
54
|
+
/** Send a mid-run steering message to the Pi agent for this job. */
|
|
55
|
+
steer(id: string, message: string): Promise<{
|
|
56
|
+
ok: boolean;
|
|
57
|
+
error?: string;
|
|
58
|
+
}>;
|
|
59
|
+
complete(id: string, result: RunResult): void;
|
|
60
|
+
fail(id: string, err: Error): void;
|
|
61
|
+
/** Kill the pi process and mark the job as cancelled. */
|
|
62
|
+
cancel(id: string): {
|
|
63
|
+
status: 'cancelled';
|
|
64
|
+
duration_ms: number;
|
|
65
|
+
} | undefined;
|
|
66
|
+
snapshot(id: string, cursor?: number): JobSnapshot | undefined;
|
|
67
|
+
delete(id: string): void;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=jobRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobRegistry.d.ts","sourceRoot":"","sources":["../../../src/specialist/jobRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-output.d.ts","sourceRoot":"","sources":["../../../src/specialist/json-output.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type ScriptEntry, type Specialist } from './schema.js';
|
|
2
|
+
export interface StallDetectionConfig {
|
|
3
|
+
running_silence_warn_ms?: number;
|
|
4
|
+
running_silence_error_ms?: number;
|
|
5
|
+
waiting_stale_ms?: number;
|
|
6
|
+
tool_duration_warn_ms?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface SpecialistSummary {
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
category: string;
|
|
12
|
+
version: string;
|
|
13
|
+
model: string;
|
|
14
|
+
permission_required: 'READ_ONLY' | 'LOW' | 'MEDIUM' | 'HIGH';
|
|
15
|
+
interactive: boolean;
|
|
16
|
+
thinking_level?: 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
|
|
17
|
+
skills: string[];
|
|
18
|
+
scripts: ScriptEntry[];
|
|
19
|
+
scope: 'user' | 'default' | 'package';
|
|
20
|
+
/**
|
|
21
|
+
* Scope says where override came from.
|
|
22
|
+
* user = repo authoring layer, default = repo-managed mirror, package = upstream fallback.
|
|
23
|
+
*/
|
|
24
|
+
source: 'user' | 'default-mirror' | 'package-fallback' | 'legacy';
|
|
25
|
+
filePath: string;
|
|
26
|
+
updated?: string;
|
|
27
|
+
filestoWatch?: string[];
|
|
28
|
+
staleThresholdDays?: number;
|
|
29
|
+
stallDetection?: StallDetectionConfig;
|
|
30
|
+
}
|
|
31
|
+
/** Returns STALE, AGED, or OK based on file mtimes vs metadata.updated */
|
|
32
|
+
export declare function checkStaleness(summary: SpecialistSummary): Promise<'OK' | 'STALE' | 'AGED'>;
|
|
33
|
+
interface LoaderOptions {
|
|
34
|
+
projectDir?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare class SpecialistLoader {
|
|
37
|
+
private cache;
|
|
38
|
+
private projectDir;
|
|
39
|
+
constructor(options?: LoaderOptions);
|
|
40
|
+
private getScanDirs;
|
|
41
|
+
private toJson;
|
|
42
|
+
private resolveSpecialistPath;
|
|
43
|
+
list(category?: string): Promise<SpecialistSummary[]>;
|
|
44
|
+
get(name: string): Promise<Specialist>;
|
|
45
|
+
invalidateCache(name?: string): void;
|
|
46
|
+
}
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/specialist/loader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjF,MAAM,WAAW,oBAAoB;IACnC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,WAAW,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC7D,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACzE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACtC;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,QAAQ,CAAC;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC;AAED,0EAA0E;AAC1E,wBAAsB,cAAc,CAClC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC,CAiBlC;AAED,UAAU,aAAa;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,GAAE,aAAkB;IAIvC,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,qBAAqB;IAcvB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAmDrD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgC5C,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;CAIrC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface MandatoryRule {
|
|
2
|
+
id: string;
|
|
3
|
+
level: string;
|
|
4
|
+
text: string;
|
|
5
|
+
when?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface MandatoryRuleSet {
|
|
8
|
+
id: string;
|
|
9
|
+
rules: MandatoryRule[];
|
|
10
|
+
}
|
|
11
|
+
export interface SpecialistMandatoryRulesConfig {
|
|
12
|
+
template_sets?: string[];
|
|
13
|
+
disable_default_globals?: boolean;
|
|
14
|
+
inline_rules?: MandatoryRule[];
|
|
15
|
+
}
|
|
16
|
+
interface MandatoryRulesIndex {
|
|
17
|
+
required_template_sets?: string[];
|
|
18
|
+
default_template_sets?: string[];
|
|
19
|
+
}
|
|
20
|
+
export interface MandatoryRulesInjection {
|
|
21
|
+
block: string;
|
|
22
|
+
setsLoaded: string[];
|
|
23
|
+
ruleCount: number;
|
|
24
|
+
inlineRulesCount: number;
|
|
25
|
+
globalsDisabled: boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare function loadMandatoryRulesIndex(cwd: string): MandatoryRulesIndex | null;
|
|
28
|
+
export declare function buildMandatoryRulesInjection(specialistConfig: {
|
|
29
|
+
cwd?: string;
|
|
30
|
+
specialist?: {
|
|
31
|
+
mandatory_rules?: SpecialistMandatoryRulesConfig;
|
|
32
|
+
};
|
|
33
|
+
}): MandatoryRulesInjection;
|
|
34
|
+
export declare function buildMandatoryRulesBlock(specialistConfig: {
|
|
35
|
+
cwd?: string;
|
|
36
|
+
specialist?: {
|
|
37
|
+
mandatory_rules?: SpecialistMandatoryRulesConfig;
|
|
38
|
+
};
|
|
39
|
+
}): string;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=mandatory-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mandatory-rules.d.ts","sourceRoot":"","sources":["../../../src/specialist/mandatory-rules.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC7C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC;CAChC;AAED,UAAU,mBAAmB;IAC3B,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAsBD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAgB/E;AA8JD,wBAAgB,4BAA4B,CAC1C,gBAAgB,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,8BAA8B,CAAA;KAAE,CAAA;CAAE,GACpG,uBAAuB,CA4BzB;AAED,wBAAgB,wBAAwB,CAAC,gBAAgB,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,8BAA8B,CAAA;KAAE,CAAA;CAAE,GAAG,MAAM,CAEtJ"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type MemoryCacheInputRecord } from './observability-sqlite.js';
|
|
2
|
+
export declare const STATIC_WORKFLOW_RULES_BLOCK: string;
|
|
3
|
+
export interface MemoryRecord {
|
|
4
|
+
key: string;
|
|
5
|
+
value: string;
|
|
6
|
+
}
|
|
7
|
+
export interface MemoryInjectionResult {
|
|
8
|
+
block: string;
|
|
9
|
+
memories: MemoryRecord[];
|
|
10
|
+
estimatedTokens: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function extractMemoryKeywords(title: string, description?: string): string[];
|
|
13
|
+
export declare function parseMemoriesPayload(jsonText: string): MemoryCacheInputRecord[];
|
|
14
|
+
export declare function shouldRefreshCache(args: {
|
|
15
|
+
nowMs: number;
|
|
16
|
+
cacheCount: number | null;
|
|
17
|
+
cacheLastSyncAtMs: number | null;
|
|
18
|
+
sourceCount: number;
|
|
19
|
+
}): boolean;
|
|
20
|
+
export declare function syncMemoriesCacheFromBd(cwd: string, nowMs?: number, forceFullSync?: boolean): {
|
|
21
|
+
synced: boolean;
|
|
22
|
+
memoryCount: number;
|
|
23
|
+
};
|
|
24
|
+
export declare function invalidateAndRefreshMemoriesCache(cwd: string, nowMs?: number): {
|
|
25
|
+
synced: boolean;
|
|
26
|
+
memoryCount: number;
|
|
27
|
+
};
|
|
28
|
+
export declare function buildFilteredMemoryInjection(args: {
|
|
29
|
+
cwd: string;
|
|
30
|
+
beadTitle: string;
|
|
31
|
+
beadDescription?: string;
|
|
32
|
+
}): MemoryInjectionResult;
|
|
33
|
+
export declare function estimateInjectedTokens(text: string): number;
|
|
34
|
+
//# sourceMappingURL=memory-retrieval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-retrieval.d.ts","sourceRoot":"","sources":["../../../src/specialist/memory-retrieval.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,sBAAsB,EAE5B,MAAM,2BAA2B,CAAC;AAanC,eAAO,MAAM,2BAA2B,QAWhC,CAAC;AAET,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;CACzB;AAiBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBnF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAyB/E;AAuBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAIV;AAMD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB,EAAE,aAAa,GAAE,OAAe,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAyBzJ;AAED,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAanI;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,qBAAqB,CAwDxB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function extractModelId(model?: string): string | undefined;
|
|
2
|
+
export declare function toModelAlias(model?: string): string | undefined;
|
|
3
|
+
export declare function formatSpecialistModel(specialist: string, model?: string): string;
|
|
4
|
+
//# sourceMappingURL=model-display.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-display.d.ts","sourceRoot":"","sources":["../../../src/specialist/model-display.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKjE;AAED,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS/D;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhF"}
|