dsh-super-code 0.1.1 → 0.1.3

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/lib/core/teams.js CHANGED
@@ -3,10 +3,10 @@ export const TEAM_NAMES = ['research', 'design', 'develop', 'verify', 'optimize'
3
3
  export const METHODS = Object.freeze({
4
4
  investigation: 'Start from the exact question, revision and observed failure. For competing causes, predict different observable outcomes and run the cheapest discriminating check; a result compatible with both proves neither. Use a minimal reproduction for broad failures, a matched good/bad run for regressions, and bisection only with a reliable pass/fail signal. Hold other conditions fixed and trace the first divergence through callers and data flow. If a check disproves the cause, change the hypothesis rather than expanding the patch. Stop at supported facts or explicit missing evidence; diagnosis alone does not authorize edits.',
5
5
  product: 'Turn the requested outcome into a small end-to-end usable slice and verify it before expanding. Check actual users, inputs, normal/empty/error/cancel paths, persistence and existing conventions. Design interactions around user decisions, not internal machinery. Use existing interfaces and include only adjacent cases necessary for the outcome. Ask only when a missing product decision changes correctness or scope.',
6
- bugfix: 'Reproduce the failing input and locate the first incorrect state before editing. Compare the same failing check on the baseline before attributing it to the environment. For async bugs, trace creation, update, invalidation, cancellation, late results and resource release. Control completion order with barriers instead of sleeps; test a late result after cancellation or replacement. Add a regression that fails before the fix at the causal boundary. If the patch expands, revisit the cause. Check affected callers and preserve unaffected behavior. Deliver the fix and actual checks, or name a concrete blocker; a passing mock is not live evidence.',
6
+ bugfix: 'Reproduce the failing input and locate the first incorrect state before editing. For recovery bugs, start from persisted in-progress state, not only a fresh run. Compare the same failing check on the baseline before attributing it to the environment. For async bugs, trace creation, update, invalidation, cancellation, late results and resource release. Control completion order with barriers instead of sleeps; test a late result after cancellation or replacement. Add a regression that fails before the fix at the causal boundary. If the patch expands, revisit the cause. Check affected callers and preserve unaffected behavior. Deliver the fix and actual checks, or name a concrete blocker; a passing mock is not live evidence.',
7
7
  architecture: 'Map responsibilities, contracts, ownership, data lifetime and failure propagation. Choose the simplest boundary that resolves the demonstrated problem. Follow changed return types to callers, changed state to serialization/defaults/restoration, and changed async ownership to cancellation/cleanup. Search actual consumers; avoid building a repository-wide dependency graph for a local change. State migration/rollback costs and verify affected boundaries. Refactor only authorized scope; fewer lines or new abstractions do not prove improvement.',
8
8
  algorithm: 'State input size, invariants, objective and correctness argument. Examine asymptotic time/space, numerical stability and adversarial cases. When correctness is hard to inspect, compare a simple reference on exhaustive small inputs or deterministic generated cases, then test representative large inputs. Minimize mismatches into regressions. A reference must be independent of the candidate, not the same algorithm copied twice. Prefer better algorithms/data structures before tuning constants; constant-factor gains do not prove better complexity. Report quality/accuracy tradeoffs.',
9
- testing: 'Derive checks from behavior and the actual diff, not implementation text. Prioritize changed contracts and their callers, persisted state and restoration, async cancellation/late completion, or algorithm boundaries and scale. Cover relevant empty/invalid input, duplicates and failures. A regression must fail on the broken behavior and pass on the fix; use an independent reference for tricky algorithms. Confirm intended tests executed on the changed workspace: unchanged HEAD does not imply unchanged files; zero or entirely skipped tests are not passing evidence. Report commands and limits; no extra reviewer unless risk warrants it.',
9
+ testing: 'Compare the actual diff with requested behavior and affected existing contracts. Derive checks from these contracts, not implementation text. For changed stateful behavior, probe the relevant initialization, failure or restart boundary; a normal run does not verify recovery. Prioritize changed contracts and their callers, persisted state and restoration, async cancellation/late completion, or algorithm boundaries and scale. Cover relevant empty/invalid input, duplicates and failures. A regression must fail on the broken behavior and pass on the fix; use an independent reference for tricky algorithms. Confirm intended tests executed on the changed workspace: unchanged HEAD does not imply unchanged files; zero or entirely skipped tests are not passing evidence. Report commands and limits; no extra reviewer unless risk warrants it.',
10
10
  performance: 'Measure a comparable baseline and locate the bottleneck before changing code. Fix workload, versions, resource allocation and warm/cold conditions. Inspect CPU, I/O, allocations, algorithmic scaling and contention. Compare repeated measurements and tail behavior, preserving correctness and recovery. Keep benchmarks isolated from competing jobs. Without comparable measurements, report a hypothesis, not a speedup. Stop at the target/budget or when no supported hypothesis remains.',
11
11
  integration: 'Confirm the actual entry point, loaded package/build, deployed versions and effective configuration before diagnosing an integration. Inspect both sides of the contract: serialization, errors, timeouts, idempotency, cancellation and permissions. Verify one bounded end-to-end slice through the real entry point; source edits or a passing mock do not prove the installed artifact works. Distinguish local, mocked and live evidence, and name unavailable dependencies. Retain a recovery path for schema/data migrations; external writes still require authorization.',
12
12
  quality: 'Define a fixed, representative evaluation set and acceptance criteria before candidates. Bind results to data, model/code and evaluator versions. Count failed attempts and all member/tool costs. Compare matched samples; investigate category regressions and hard cases. Do not tune against hidden tests, cherry-pick best runs or relax gates after observing failure.',
@@ -19,13 +19,13 @@ export const TEAMS = Object.freeze({
19
19
  optimize: { outcome: 'Demonstrated improvement and an adoption or rollback recommendation.', approach: 'Select goals separately from methods: latency, throughput, memory, cost, quality or maintainability.', evidence: 'Matched baseline/candidate measurements plus non-regression checks and stopping criteria.', methods: ['performance', 'algorithm', 'architecture', 'quality'] },
20
20
  });
21
21
  /** Stable, compact instructions; the host logs selected methods as tool results. */
22
- export const SUPER_CODE_INSTRUCTIONS = `You are super-code, responsible for completing the user's coding work.
23
- Choose by deliverable: research (facts), design (plan), develop (code), verify (checks), optimize (measured gains). Teams are specialties, not stages or resident agents. Use super_code_method only for missing expertise. No routing call or mandatory reflection loop.
24
- Explanation/design does not authorize edits; methods/teammates grant no permission. Ask only for decisions affecting correctness or scope. Finish and validate by risk; distinguish delivery, validation limits and blockers. Diagnosis is not a fix; stop without unrelated additions.
25
- For long/interleaved work, use super_code_task for user-sourced requirements, acceptance, decisions/evidence and next dependency. Record material changes before switching/compaction, not every action. Preserve unaffected constraints; user corrections outrank old records. Never truncate hard requirements. Resume from current context; read only missing details and recheck mutable evidence. Focus/status questions do not cancel work.
26
- Parallelize independent tools first. Delegate independent deliverables only for clear time or verification value. Reuse members only for related scope with valid context; never delegate recursively. Continue locally; one writer per file or isolated workspaces. For recorded tasks, delegate binds scope/ownership/versions; validate_member precedes lead review. Neither starts workers nor enforces runtime token budgets. Check key evidence, reject stale returns, count all attempts; unknown-stop is not success.
27
- Resolve unclear APIs from requirements and callers, not guessed test names or aliases. Attribute failures to the environment only with baseline evidence; never assume later tests repair them. For hard problems, use a discriminating experiment, smaller reproduction or independent reference before expanding scope.
28
- Minimize total request cost. Reuse valid context; batch independent reads; avoid round trips for tiny savings. Keep required checks; inspect scaling and resource release. Report artifacts, actual checks and gaps briefly; no forced format or unmeasured gains.`;
22
+ export const SUPER_CODE_INSTRUCTIONS = `You are super-code, completing the user's authorized coding work.
23
+ Choose by deliverable: research, design, develop, verify, optimize. Teams are specialties, not stages. Use super_code_method when causes remain indistinguishable, failures repeat or state/recovery behavior is unclear; reuse loaded guidance. No mandatory routing or reflection loop.
24
+ Explanation/design does not authorize edits; methods/teammates grant no permission. Ask only for decisions affecting correctness or scope. Diagnosis is not a fix.
25
+ For long/interleaved work, use super_code_task to preserve user-sourced requirements, acceptance, decisions/evidence and next dependency before switching or compaction, not each action. Corrections replace affected constraints only. Never truncate hard requirements. Resume from current context; read missing details and recheck mutable evidence. Status questions do not cancel work.
26
+ Batch independent tools first. Delegate independent deliverables for time or verification value; reuse members for related scope, never recursively. Continue locally; one writer per file or isolated workspaces. For recorded tasks, delegate binds ownership/versions; validate_member precedes lead review. Neither starts workers nor enforces token budgets. Reject stale returns; count all attempts; unknown-stop is not success.
27
+ Resolve APIs from visible contracts and callers, never guessed tests or aliases. Before finishing, compare the diff with requirements and affected existing behavior. Check changed recovery/state paths, not just the happy path. An unresolved failure stays unresolved unless baseline evidence or an explicit contract change explains it; future tests cannot establish success. When stuck, change the hypothesis or reduce the reproduction before expanding scope.
28
+ Minimize request cost: reuse context, read targeted ranges, batch independent checks. Keep full verbose logs in task files; report exit status, executed test counts, failure context and file references. Do not hide errors or skip required checks to save tokens. Inspect scaling and resource release. Report delivery, checks and gaps; no unmeasured gains.`;
29
29
  /** Read exactly the selected team/method; caller chooses using task meaning. */
30
30
  export function readTeamMethod(team, method) {
31
31
  const definition = TEAMS[team];
@@ -1 +1 @@
1
- {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/core/teams.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAA;AAa1F,MAAM,CAAC,MAAM,OAAO,GAAyC,MAAM,CAAC,MAAM,CAAC;IACzE,aAAa,EAAE,inBAAinB;IAChoB,OAAO,EAAE,iaAAia;IAC1a,MAAM,EAAE,2oBAA2oB;IACnpB,YAAY,EAAE,miBAAmiB;IACjjB,SAAS,EAAE,ykBAAykB;IACplB,OAAO,EAAE,goBAAgoB;IACzoB,WAAW,EAAE,oeAAoe;IACjf,WAAW,EAAE,mjBAAmjB;IAChkB,OAAO,EAAE,8WAA8W;CAC/W,CAAC,CAAA;AAEX,MAAM,CAAC,MAAM,KAAK,GAA+C,MAAM,CAAC,MAAM,CAAC;IAC7E,QAAQ,EAAE,EAAE,OAAO,EAAE,mDAAmD,EAAE,QAAQ,EAAE,kFAAkF,EAAE,QAAQ,EAAE,0EAA0E,EAAE,OAAO,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE;IACzS,MAAM,EAAE,EAAE,OAAO,EAAE,wEAAwE,EAAE,QAAQ,EAAE,8EAA8E,EAAE,QAAQ,EAAE,sFAAsF,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE;IAC5U,OAAO,EAAE,EAAE,OAAO,EAAE,iEAAiE,EAAE,QAAQ,EAAE,wFAAwF,EAAE,QAAQ,EAAE,sEAAsE,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE;IAC5U,MAAM,EAAE,EAAE,OAAO,EAAE,2DAA2D,EAAE,QAAQ,EAAE,iFAAiF,EAAE,QAAQ,EAAE,iFAAiF,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE;IAC/S,QAAQ,EAAE,EAAE,OAAO,EAAE,sEAAsE,EAAE,QAAQ,EAAE,sGAAsG,EAAE,QAAQ,EAAE,2FAA2F,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE;CACzX,CAAC,CAAA;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;mQAM4N,CAAA;AAEnQ,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,IAAc,EAAE,MAAmB;IAChE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;IACzD,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;IACzG,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC,OAAO,KAAK,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;IAChG,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,QAAQ,eAAe,UAAU,CAAC,QAAQ,cAAc,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AAC9I,CAAC"}
1
+ {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/core/teams.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAA;AAa1F,MAAM,CAAC,MAAM,OAAO,GAAyC,MAAM,CAAC,MAAM,CAAC;IACzE,aAAa,EAAE,inBAAinB;IAChoB,OAAO,EAAE,iaAAia;IAC1a,MAAM,EAAE,4tBAA4tB;IACpuB,YAAY,EAAE,miBAAmiB;IACjjB,SAAS,EAAE,ykBAAykB;IACplB,OAAO,EAAE,00BAA00B;IACn1B,WAAW,EAAE,oeAAoe;IACjf,WAAW,EAAE,mjBAAmjB;IAChkB,OAAO,EAAE,8WAA8W;CAC/W,CAAC,CAAA;AAEX,MAAM,CAAC,MAAM,KAAK,GAA+C,MAAM,CAAC,MAAM,CAAC;IAC7E,QAAQ,EAAE,EAAE,OAAO,EAAE,mDAAmD,EAAE,QAAQ,EAAE,kFAAkF,EAAE,QAAQ,EAAE,0EAA0E,EAAE,OAAO,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE;IACzS,MAAM,EAAE,EAAE,OAAO,EAAE,wEAAwE,EAAE,QAAQ,EAAE,8EAA8E,EAAE,QAAQ,EAAE,sFAAsF,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE;IAC5U,OAAO,EAAE,EAAE,OAAO,EAAE,iEAAiE,EAAE,QAAQ,EAAE,wFAAwF,EAAE,QAAQ,EAAE,sEAAsE,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE;IAC5U,MAAM,EAAE,EAAE,OAAO,EAAE,2DAA2D,EAAE,QAAQ,EAAE,iFAAiF,EAAE,QAAQ,EAAE,iFAAiF,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE;IAC/S,QAAQ,EAAE,EAAE,OAAO,EAAE,sEAAsE,EAAE,QAAQ,EAAE,sGAAsG,EAAE,QAAQ,EAAE,2FAA2F,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE;CACzX,CAAC,CAAA;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;mWAM4T,CAAA;AAEnW,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,IAAc,EAAE,MAAmB;IAChE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;IACzD,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;IACzG,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC,OAAO,KAAK,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;IAChG,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,QAAQ,eAAe,UAAU,CAAC,QAAQ,cAAc,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AAC9I,CAAC"}
@@ -1,21 +1,32 @@
1
1
  import type { Context } from '@deepseek-ai/cordis';
2
2
  import { type AgentPresets } from '@deepseek-ai/dsh-agent-presets';
3
+ import { type DisplayBaseline } from './preset-metadata.js';
3
4
  import type { SettingsScope } from '@deepseek-ai/dsh-settings';
4
5
  import { TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
5
6
  interface InstallationSettings {
6
7
  checked: boolean;
7
8
  installedId: string;
9
+ installation?: {
10
+ id: string;
11
+ path: string;
12
+ token: string;
13
+ dev: number;
14
+ ino: number;
15
+ };
16
+ display?: Record<string, DisplayBaseline>;
17
+ pendingDisplay?: Record<string, DisplayBaseline>;
8
18
  }
9
19
  export interface PresetInstallationStatus {
10
20
  state: 'available' | 'installed' | 'conflict' | 'missing' | 'broken';
11
21
  id: string;
22
+ name?: string;
12
23
  authorable: boolean;
13
24
  userConflict: boolean;
14
25
  }
15
26
  export interface PresetInstallationResult {
16
27
  ok: boolean;
17
28
  status: PresetInstallationStatus;
18
- error?: 'invalid-name' | 'name-taken' | 'no-user-root' | 'install-failed';
29
+ error?: 'ownership-unverified' | 'invalid-name' | 'invalid-display-name' | 'name-taken' | 'no-user-root' | 'install-failed';
19
30
  }
20
31
  /** Serialized writes protect double clicks; mkdir claims only an unoccupied name. */
21
32
  export declare class PresetInstaller {
@@ -27,7 +38,11 @@ export declare class PresetInstaller {
27
38
  constructor(roster: Pick<AgentPresets, 'list' | 'roots'>, settings: SettingsScope<InstallationSettings>, bundledRoot?: string, baseUrl?: string);
28
39
  status(): Promise<PresetInstallationStatus>;
29
40
  initialize(): Promise<void>;
30
- install(id: unknown): Promise<PresetInstallationResult>;
41
+ synchronize(language: string): Promise<{
42
+ changed: boolean;
43
+ }>;
44
+ install(id: unknown, name?: string): Promise<PresetInstallationResult>;
45
+ reinstall(previousId: string, id: unknown, name?: string): Promise<PresetInstallationResult>;
31
46
  private occupied;
32
47
  private installNow;
33
48
  private enqueue;
@@ -36,7 +51,11 @@ export declare class SuperCodePresets extends TypertRemoteService {
36
51
  private readonly installer;
37
52
  constructor(ctx: Context, installer: PresetInstaller);
38
53
  status(): Promise<PresetInstallationStatus>;
39
- installPreset(id: unknown): Promise<PresetInstallationResult>;
54
+ installPreset(id: unknown, name?: string): Promise<PresetInstallationResult>;
55
+ reinstallPreset(previousId: string, id: unknown, name?: string): Promise<PresetInstallationResult>;
56
+ synchronize(language: string): Promise<{
57
+ changed: boolean;
58
+ }>;
40
59
  }
41
60
  export declare function applyPresetInstallation(ctx: Context): void;
42
61
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"preset-installation.d.ts","sourceRoot":"","sources":["../../src/dsh/preset-installation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAkD,KAAK,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAClH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAU,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAE9E,UAAU,oBAAoB;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AACD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAA;IACpE,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;CACtB;AACD,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,wBAAwB,CAAA;IAChC,KAAK,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,gBAAgB,CAAA;CAC1E;AAWD,qFAAqF;AACrF,qBAAa,eAAe;IAGxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,IAAI,CAAsC;gBAE/B,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,EAC5C,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC7C,WAAW,GAAE,MAAmB,EAChC,OAAO,GAAE,MAAwC;IAG9D,MAAM,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAgB3C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,OAAO,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;YAI/C,QAAQ;YAOR,UAAU;IAoCxB,OAAO,CAAC,OAAO;CAKhB;AAED,qBAAa,gBAAiB,SAAQ,mBAAmB;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;gBAC/B,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe;IAKpD,MAAM,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAE3C,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAC9D;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAY1D"}
1
+ {"version":3,"file":"preset-installation.d.ts","sourceRoot":"","sources":["../../src/dsh/preset-installation.ts"],"names":[],"mappings":"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"}
@@ -33,13 +33,16 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
33
33
  done = true;
34
34
  };
35
35
  /** Host-only preset discovery repair; never part of a model's tool surface. */
36
- import { cp, lstat, mkdir, mkdtemp, readdir, rm } from 'node:fs/promises';
36
+ import { cp, lstat, mkdir, mkdtemp, readdir, rm, readFile, writeFile, rename, realpath } from 'node:fs/promises';
37
+ import { randomUUID } from 'node:crypto';
37
38
  import { join, resolve } from 'node:path';
38
39
  import { fileURLToPath, pathToFileURL } from 'node:url';
39
40
  import s from '@deepseek-ai/schemastery';
40
41
  import { copyComposition, discoverPresets, writableRoot } from '@deepseek-ai/dsh-agent-presets';
42
+ import { displayCopy, migrateMetadata } from './preset-metadata.js';
41
43
  import { Remote, TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
42
44
  const sourceRoot = fileURLToPath(new URL('../../presets/', import.meta.url));
45
+ const ownershipFile = '.super-code-installation.json';
43
46
  const validId = /^[a-z0-9][a-z0-9-]{0,63}$/;
44
47
  async function exists(path) {
45
48
  try {
@@ -75,7 +78,7 @@ export class PresetInstaller {
75
78
  const userConflict = occupied && this.settings.get().installedId !== id;
76
79
  if (preset) {
77
80
  const owned = preset.trust === 'system' && resolve(preset.path) === join(this.bundledRoot, 'super-code', 'agent.cordis.yml');
78
- return { id, authorable, userConflict, state: preset.broken ? 'broken' : owned ? 'available'
81
+ return { id, name: preset.name, authorable, userConflict, state: preset.broken ? 'broken' : owned ? 'available'
79
82
  : preset.trust === 'user' && this.settings.get().installedId === id ? 'installed' : 'conflict' };
80
83
  }
81
84
  return { id, authorable, userConflict, state: occupied ? 'conflict' : 'missing' };
@@ -92,8 +95,116 @@ export class PresetInstaller {
92
95
  await this.installNow('super-code');
93
96
  });
94
97
  }
95
- async install(id) {
96
- return await this.enqueue(() => this.installNow(id));
98
+ async synchronize(language) {
99
+ if (!/^[a-z]{2,8}(?:-[a-z0-9]{1,8})*$/i.test(language))
100
+ throw new Error('Invalid language');
101
+ return await this.enqueue(async () => {
102
+ const stored = this.settings.get();
103
+ const display = { ...stored.display };
104
+ const pendingDisplay = { ...stored.pendingDisplay };
105
+ let changed = false;
106
+ for (const preset of await this.roster.list()) {
107
+ const bundled = preset.trust === 'system' && resolve(preset.path) === join(this.bundledRoot, 'super-code', 'agent.cordis.yml');
108
+ const owned = preset.trust === 'user' && (preset.id === stored.installedId || Object.hasOwn(display, preset.path));
109
+ if (!bundled && !owned)
110
+ continue;
111
+ if ((await lstat(join(preset.path, '..'))).isSymbolicLink())
112
+ continue;
113
+ const metadata = join(preset.path, '..', 'preset.yml');
114
+ let previous = display[preset.path];
115
+ const pending = pendingDisplay[preset.path];
116
+ if (previous && pending) {
117
+ previous = { ...previous };
118
+ for (const field of ['name', 'description']) {
119
+ if (pending[field] !== undefined && preset[field] === pending[field])
120
+ previous[field] = pending[field];
121
+ }
122
+ }
123
+ const result = await migrateMetadata(metadata, preset.id, preset, previous, displayCopy(language), async (baseline) => {
124
+ pendingDisplay[preset.path] = baseline;
125
+ await this.settings.update({ pendingDisplay: { ...pendingDisplay } });
126
+ });
127
+ changed ||= result.changed;
128
+ display[preset.path] = result.baseline;
129
+ delete pendingDisplay[preset.path];
130
+ }
131
+ if (JSON.stringify(display) !== JSON.stringify(stored.display ?? {}) || JSON.stringify(pendingDisplay) !== JSON.stringify(this.settings.get().pendingDisplay ?? {})) {
132
+ await this.settings.update({ display, pendingDisplay });
133
+ }
134
+ return { changed };
135
+ });
136
+ }
137
+ async install(id, name) {
138
+ return await this.enqueue(() => this.installNow(id, name));
139
+ }
140
+ async reinstall(previousId, id, name) {
141
+ return await this.enqueue(async () => {
142
+ const reject = async (error) => ({ ok: false, error, status: await this.status() });
143
+ if (typeof id !== 'string' || !validId.test(id))
144
+ return reject('invalid-name');
145
+ if (name !== undefined && (typeof name !== 'string' || !name.trim() || name.length > 120))
146
+ return reject('invalid-display-name');
147
+ const stored = this.settings.get(), installation = stored.installation;
148
+ if (!installation || previousId !== stored.installedId || installation.id !== previousId)
149
+ return reject('ownership-unverified');
150
+ const roots = this.roster.roots.filter(root => root.trust === 'user');
151
+ const expected = await Promise.all(roots
152
+ .map(async (root) => {
153
+ try {
154
+ return join(await realpath(writableRoot([root], previousId)), previousId);
155
+ }
156
+ catch {
157
+ return '';
158
+ }
159
+ }));
160
+ if (!expected.includes(installation.path))
161
+ return reject('ownership-unverified');
162
+ const originalPath = join(writableRoot([roots[expected.indexOf(installation.path)]], previousId), previousId);
163
+ let backup = '';
164
+ try {
165
+ const directory = await lstat(installation.path);
166
+ const markerPath = join(installation.path, ownershipFile);
167
+ const markerStat = await lstat(markerPath);
168
+ if (!directory.isDirectory() || directory.isSymbolicLink() || !markerStat.isFile() || markerStat.isSymbolicLink()
169
+ || await realpath(installation.path) !== installation.path
170
+ || directory.dev !== installation.dev || directory.ino !== installation.ino)
171
+ return reject('ownership-unverified');
172
+ const marker = JSON.parse(await readFile(markerPath, 'utf8'));
173
+ if (marker.plugin !== 'dsh-super-code' || marker.token !== installation.token || marker.id !== previousId)
174
+ return reject('ownership-unverified');
175
+ if (id !== previousId && ((await this.roster.list()).some(row => row.id === id) || await this.occupied(id)))
176
+ return reject('name-taken');
177
+ // A container without agent.cordis.yml is not a discoverable preset.
178
+ // Retain it after success as a recovery copy of the removed preset.
179
+ backup = await mkdtemp(join(installation.path, '..', '.super-code-backup-'));
180
+ await rename(installation.path, join(backup, previousId));
181
+ const moved = await lstat(join(backup, previousId));
182
+ if (!moved.isDirectory() || moved.dev !== installation.dev || moved.ino !== installation.ino) {
183
+ if (!await exists(installation.path))
184
+ await rename(join(backup, previousId), installation.path);
185
+ return reject('ownership-unverified');
186
+ }
187
+ }
188
+ catch {
189
+ return reject('ownership-unverified');
190
+ }
191
+ try {
192
+ const result = await this.installNow(id, name, originalPath);
193
+ if (result.ok)
194
+ return result;
195
+ if (await exists(installation.path))
196
+ return reject('install-failed');
197
+ await rename(join(backup, previousId), installation.path);
198
+ await rm(backup, { recursive: true, force: true });
199
+ return { ...result, status: await this.status() };
200
+ }
201
+ catch {
202
+ // Never overwrite a directory created by another actor during repair.
203
+ if (!await exists(installation.path))
204
+ await rename(join(backup, previousId), installation.path);
205
+ return reject('install-failed');
206
+ }
207
+ });
97
208
  }
98
209
  async occupied(id) {
99
210
  for (const root of this.roster.roots.filter(root => root.trust === 'user')) {
@@ -102,11 +213,13 @@ export class PresetInstaller {
102
213
  }
103
214
  return false;
104
215
  }
105
- async installNow(value) {
216
+ async installNow(value, name, replacedPath) {
106
217
  const reject = async (error) => ({ ok: false, error, status: await this.status() });
107
218
  if (typeof value !== 'string' || !validId.test(value))
108
219
  return reject('invalid-name');
109
220
  const id = value;
221
+ if (name !== undefined && (typeof name !== 'string' || !name.trim() || name.length > 120))
222
+ return reject('invalid-display-name');
110
223
  if (!this.roster.roots.some(root => root.trust === 'user'))
111
224
  return reject('no-user-root');
112
225
  if ((await this.roster.list()).some(row => row.id === id) || await this.occupied(id))
@@ -124,15 +237,31 @@ export class PresetInstaller {
124
237
  staging = await mkdtemp(join(root, '.super-code-install-'));
125
238
  // The host copy helper can clean up its destination on failure. Isolate
126
239
  // it from user-owned paths, then exclusively claim the final directory.
127
- const prepared = await copyComposition([{ path: staging, trust: 'user' }], source, id, id);
240
+ const prepared = await copyComposition([{ path: staging, trust: 'user' }], source, id, name?.trim() ?? 'Super Code');
128
241
  await mkdir(target, { mode: 0o700 });
129
242
  claimed = true;
130
243
  for (const entry of await readdir(prepared)) {
131
244
  await cp(join(prepared, entry), join(target, entry), { recursive: true, force: false, errorOnExist: true });
132
245
  }
133
- await this.settings.update({ checked: true, installedId: id });
246
+ const token = randomUUID();
247
+ await writeFile(join(target, ownershipFile), JSON.stringify({ plugin: 'dsh-super-code', id, token }), { flag: 'wx', mode: 0o600 });
248
+ const directory = await lstat(target);
249
+ const installation = { id, path: await realpath(target), token, dev: directory.dev, ino: directory.ino };
250
+ const display = { ...this.settings.get().display }, pendingDisplay = { ...this.settings.get().pendingDisplay };
251
+ if (replacedPath) {
252
+ delete display[join(replacedPath, 'agent.cordis.yml')];
253
+ delete pendingDisplay[join(replacedPath, 'agent.cordis.yml')];
254
+ }
255
+ const status = { id, authorable: true, userConflict: false, state: 'installed' };
256
+ await this.settings.update({ checked: true, installedId: id, installation, pendingDisplay, display: {
257
+ ...display,
258
+ [join(target, 'agent.cordis.yml')]: {
259
+ ...(name === undefined ? { name: 'Super Code' } : {}),
260
+ ...(source.description === undefined ? {} : { description: source.description }),
261
+ },
262
+ } });
134
263
  claimed = false;
135
- return { ok: true, status: await this.status() };
264
+ return { ok: true, status };
136
265
  }
137
266
  catch (error) {
138
267
  if (claimed)
@@ -155,13 +284,19 @@ let SuperCodePresets = (() => {
155
284
  let _instanceExtraInitializers = [];
156
285
  let _status_decorators;
157
286
  let _installPreset_decorators;
287
+ let _reinstallPreset_decorators;
288
+ let _synchronize_decorators;
158
289
  return class SuperCodePresets extends _classSuper {
159
290
  static {
160
291
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
161
292
  _status_decorators = [Remote];
162
293
  _installPreset_decorators = [Remote];
294
+ _reinstallPreset_decorators = [Remote];
295
+ _synchronize_decorators = [Remote];
163
296
  __esDecorate(this, null, _status_decorators, { kind: "method", name: "status", static: false, private: false, access: { has: obj => "status" in obj, get: obj => obj.status }, metadata: _metadata }, null, _instanceExtraInitializers);
164
297
  __esDecorate(this, null, _installPreset_decorators, { kind: "method", name: "installPreset", static: false, private: false, access: { has: obj => "installPreset" in obj, get: obj => obj.installPreset }, metadata: _metadata }, null, _instanceExtraInitializers);
298
+ __esDecorate(this, null, _reinstallPreset_decorators, { kind: "method", name: "reinstallPreset", static: false, private: false, access: { has: obj => "reinstallPreset" in obj, get: obj => obj.reinstallPreset }, metadata: _metadata }, null, _instanceExtraInitializers);
299
+ __esDecorate(this, null, _synchronize_decorators, { kind: "method", name: "synchronize", static: false, private: false, access: { has: obj => "synchronize" in obj, get: obj => obj.synchronize }, metadata: _metadata }, null, _instanceExtraInitializers);
165
300
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
166
301
  }
167
302
  installer = __runInitializers(this, _instanceExtraInitializers);
@@ -170,7 +305,9 @@ let SuperCodePresets = (() => {
170
305
  this.installer = installer;
171
306
  }
172
307
  status() { return this.installer.status(); }
173
- installPreset(id) { return this.installer.install(id); }
308
+ installPreset(id, name) { return this.installer.install(id, name === '' ? undefined : name); }
309
+ reinstallPreset(previousId, id, name) { return this.installer.reinstall(previousId, id, name === '' ? undefined : name); }
310
+ synchronize(language) { return this.installer.synchronize(language); }
174
311
  };
175
312
  })();
176
313
  export { SuperCodePresets };
@@ -179,11 +316,17 @@ export function applyPresetInstallation(ctx) {
179
316
  const settings = owner.settings.register('super-code', s.object({
180
317
  checked: s.boolean().default(false),
181
318
  installedId: s.string().default(''),
319
+ installation: s.object({ id: s.string(), path: s.string(), token: s.string(), dev: s.number(), ino: s.number() }).required(false),
320
+ pendingDisplay: s.dict(s.object({ name: s.string().required(false), description: s.string().required(false) })).default({}),
321
+ display: s.dict(s.object({ name: s.string().required(false), description: s.string().required(false) })).default({}),
182
322
  }));
183
323
  const installer = new PresetInstaller(owner.agentPresets, settings, sourceRoot, owner.baseUrl);
184
324
  new SuperCodePresets(owner, installer);
185
325
  try {
186
326
  await installer.initialize();
327
+ const language = owner.settings.get('locale');
328
+ if (language?.preference)
329
+ await installer.synchronize(language.preference);
187
330
  }
188
331
  catch {
189
332
  owner.logger.warn('Super Code preset installation unavailable; retry in plugin settings.');
@@ -1 +1 @@
1
- {"version":3,"file":"preset-installation.js","sourceRoot":"","sources":["../../src/dsh/preset-installation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preset-installation.js","sourceRoot":"","sources":["../../src/dsh/preset-installation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface DisplayBaseline {
2
+ name?: string;
3
+ description?: string;
4
+ }
5
+ export interface DisplayCopy {
6
+ name: string;
7
+ description: string;
8
+ }
9
+ export declare function displayCopy(language: string): DisplayCopy;
10
+ export interface MetadataMigration {
11
+ changed: boolean;
12
+ baseline: DisplayBaseline;
13
+ }
14
+ export declare function migrateMetadata(path: string, id: string, current: DisplayBaseline, previous: DisplayBaseline | undefined, copy: DisplayCopy, beforeWrite?: (baseline: DisplayBaseline) => Promise<void>): Promise<MetadataMigration>;
15
+ //# sourceMappingURL=preset-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-metadata.d.ts","sourceRoot":"","sources":["../../src/dsh/preset-metadata.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AACD,MAAM,WAAW,WAAW;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AAClE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAIzD;AAQD,MAAM,WAAW,iBAAiB;IAAG,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAE;AAClF,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,GAAG,SAAS,EAAE,IAAI,EAAE,WAAW,EAC5G,WAAW,GAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAkB,GACzE,OAAO,CAAC,iBAAiB,CAAC,CAgD5B"}
@@ -0,0 +1,83 @@
1
+ /** Update only recognized or previously managed display fields, preserving YAML around them. */
2
+ import { lstat, readFile, open, mkdtemp, rename, rm } from 'node:fs/promises';
3
+ import { constants } from 'node:fs';
4
+ import { dirname, join } from 'node:path';
5
+ import { readPresetMetadata } from '@deepseek-ai/dsh-agent-presets';
6
+ export function displayCopy(language) {
7
+ return language.toLowerCase().startsWith('zh')
8
+ ? { name: 'Super Code 模式', description: '更快、更省、更聪明的编码模式。' }
9
+ : { name: 'Super Code', description: 'A faster, more efficient, smarter coding mode.' };
10
+ }
11
+ const legacyDescriptions = [
12
+ 'Coding with on-demand research, design, development, testing and optimization expertise.',
13
+ 'A faster, more efficient, smarter coding mode.',
14
+ '更快、更省、更聪明的编码模式。',
15
+ '按需协同调研、设计、开发、测试与优化的编码助手。',
16
+ ];
17
+ export async function migrateMetadata(path, id, current, previous, copy, beforeWrite = async () => { }) {
18
+ const baseline = {};
19
+ let original;
20
+ try {
21
+ if (!(await lstat(path)).isFile())
22
+ return { changed: false, baseline: previous ?? {} };
23
+ original = await readFile(path, 'utf8');
24
+ }
25
+ catch (error) {
26
+ if (error.code === 'ENOENT')
27
+ return { changed: false, baseline: previous ?? {} };
28
+ throw error;
29
+ }
30
+ // Discovery may predate a user edit; re-read the metadata before deciding ownership.
31
+ current = await readPresetMetadata(dirname(path));
32
+ let updated = original;
33
+ for (const field of ['name', 'description']) {
34
+ const value = current[field];
35
+ const managed = previous === undefined
36
+ ? value !== undefined && (field === 'name'
37
+ ? [id, 'Super Code', 'Super Code 模式', '超级编码'].includes(value)
38
+ : legacyDescriptions.includes(value))
39
+ : previous[field] !== undefined && value === previous[field];
40
+ if (!managed)
41
+ continue;
42
+ // A single top-level scalar only: preserve comments/unknown fields; leave
43
+ // aliases, multiline values and duplicate keys untouched for user review.
44
+ const pattern = new RegExp(`^${field}:[ \\t]*([^\\r\\n]*)$`, 'gm');
45
+ const matches = [...updated.matchAll(pattern)];
46
+ const match = matches[0];
47
+ if (matches.length !== 1 || !match || /^[>|&*]/.test(match[1].trim()))
48
+ continue;
49
+ baseline[field] = copy[field];
50
+ if (value === copy[field])
51
+ continue;
52
+ const comment = match[1].match(/\s+#.*$/)?.[0] ?? '';
53
+ updated = updated.replace(pattern, () => `${field}: ${JSON.stringify(copy[field])}${comment}`);
54
+ }
55
+ if (updated === original)
56
+ return { changed: false, baseline };
57
+ // Stage beside the original so interruption cannot leave a partial YAML file.
58
+ const staging = await mkdtemp(join(dirname(path), '.super-code-metadata-'));
59
+ try {
60
+ const temporary = join(staging, 'preset.yml');
61
+ const file = await open(temporary, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY, 0o600);
62
+ try {
63
+ await file.writeFile(updated);
64
+ await file.sync();
65
+ }
66
+ finally {
67
+ await file.close();
68
+ }
69
+ if (!(await lstat(path)).isFile() || await readFile(path, 'utf8') !== original) {
70
+ throw new Error('Preset metadata changed during migration');
71
+ }
72
+ await beforeWrite(baseline);
73
+ // Persistence can await I/O; check once more before replacing the file.
74
+ if (await readFile(path, 'utf8') !== original)
75
+ throw new Error('Preset metadata changed during migration');
76
+ await rename(temporary, path);
77
+ }
78
+ finally {
79
+ await rm(staging, { recursive: true, force: true });
80
+ }
81
+ return { changed: true, baseline };
82
+ }
83
+ //# sourceMappingURL=preset-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-metadata.js","sourceRoot":"","sources":["../../src/dsh/preset-metadata.ts"],"names":[],"mappings":"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"}
@@ -89,7 +89,7 @@ export function apply(ctx, config = {}) {
89
89
  } });
90
90
  ctx.tools.register(defineTool({
91
91
  name: 'super_code_method',
92
- description: 'Read missing expertise, not a routine prerequisite. Select a known method directly; omit method only to inspect a team. Reuse guidance in context; batch with independent reads when useful.',
92
+ description: 'Read expertise when causes remain indistinguishable, failures repeat or recovery/state behavior is unclear. Select a method directly; omit it only to inspect a team. Reuse loaded guidance; batch with independent reads. Not a routine prerequisite.',
93
93
  parameters: { team: { type: 'string', enum: TEAM_NAMES, required: true }, method: { type: 'string', enum: Object.keys(METHODS) },
94
94
  recipe: { type: 'string', enum: EXPERIMENT_RECIPES, description: 'Optional runnable Shell example for a hard problem: failure reduction, differential oracle, controlled async interleavings or contract relation. Omit when unnecessary.' } },
95
95
  output: { schema: { type: 'string' }, render: (_args, value) => [{ type: 'text', text: value }] },